diff --git a/pages/order/index.vue b/pages/order/index.vue index c8355df..01cfb79 100644 --- a/pages/order/index.vue +++ b/pages/order/index.vue @@ -19,6 +19,7 @@ 订单号:{{ order.orderNo }} {{ OrderStatusMap[order.status]?.text }} + 归还设备 diff --git a/pages/return/index.vue b/pages/return/index.vue index 24879e0..9ffb142 100644 --- a/pages/return/index.vue +++ b/pages/return/index.vue @@ -98,11 +98,21 @@ export default { } const result = await queryById(this.orderInfo.orderId) - + if (result.code === 200 && result.data) { const orderData = result.data - // 格式化开始时间 - this.orderInfo.startTime = this.formatTime(new Date(orderData.createTime)) + const rawTime = orderData.startTime + console.log('原始时间:', rawTime) + const fixedTime = rawTime.replace(' ', 'T') + const date = new Date(fixedTime) + console.log('原始时间:', rawTime); + if (isNaN(date.getTime())) { + this.orderInfo.startTime = '时间解析错误' + } else { + console.log('原始时间:', rawTime); + + this.orderInfo.startTime = this.formatTime(date) + } // 计算使用时长 this.calculateUsedTime(orderData.createTime) // 设置当前费用 @@ -138,22 +148,10 @@ export default { return `${year}-${month}-${day} ${hour}:${minute}` }, - // 计算使用时长 - calculateUsedTime(startTime) { - const start = new Date(startTime) - const now = new Date() - const diffMs = now - start - - // 计算分钟数 - const minutes = Math.floor(diffMs / (1000 * 60)) - - if (minutes < 60) { - this.orderInfo.usedTime = `${minutes}分钟` - } else { - const hours = Math.floor(minutes / 60) - const remainMinutes = minutes % 60 - this.orderInfo.usedTime = `${hours}小时${remainMinutes}分钟` - } + // 使用后端返回的使用时长和费用数据 + updateOrderInfo(orderData) { + this.orderInfo.usedTime = orderData.usedTime || '0分钟'; + this.orderInfo.currentFee = orderData.currentFee || '0.00'; }, // 更新使用时长的定时器 diff --git a/unpackage/dist/cache/.vite/deps/_metadata.json b/unpackage/dist/cache/.vite/deps/_metadata.json index ee05a2a..509efcb 100644 --- a/unpackage/dist/cache/.vite/deps/_metadata.json +++ b/unpackage/dist/cache/.vite/deps/_metadata.json @@ -1,25 +1,15 @@ { - "hash": "cbb77b90", - "configHash": "02d49493", - "lockfileHash": "a9202ca1", - "browserHash": "41ab211e", + "hash": "eecc45c6", + "configHash": "e4fbd916", + "lockfileHash": "78df9316", + "browserHash": "8d847c28", "optimized": { - "axios": { - "src": "../../../../../node_modules/axios/index.js", - "file": "axios.js", - "fileHash": "a532ef26", - "needsInterop": false - }, - "uniapp-axios-adapter": { - "src": "../../../../../node_modules/uniapp-axios-adapter/lib/index.esm.js", - "file": "uniapp-axios-adapter.js", - "fileHash": "63f5b0fe", + "uview-ui": { + "src": "../../../../../node_modules/uview-ui/index.js", + "file": "uview-ui.js", + "fileHash": "b095c49f", "needsInterop": false } }, - "chunks": { - "chunk-U6PB43C6": { - "file": "chunk-U6PB43C6.js" - } - } + "chunks": {} } \ No newline at end of file diff --git a/unpackage/dist/cache/.vite/deps/axios.js b/unpackage/dist/cache/.vite/deps/axios.js deleted file mode 100644 index c4eb5c3..0000000 --- a/unpackage/dist/cache/.vite/deps/axios.js +++ /dev/null @@ -1,39 +0,0 @@ -import { - Axios, - AxiosError, - AxiosHeaders, - Cancel, - CancelToken, - CanceledError, - HttpStatusCode, - VERSION, - all, - axios_default, - formToJSON, - getAdapter, - isAxiosError, - isCancel, - mergeConfig, - spread, - toFormData -} from "./chunk-U6PB43C6.js"; -export { - Axios, - AxiosError, - AxiosHeaders, - Cancel, - CancelToken, - CanceledError, - HttpStatusCode, - VERSION, - all, - axios_default as default, - formToJSON, - getAdapter, - isAxiosError, - isCancel, - mergeConfig, - spread, - toFormData -}; -//# sourceMappingURL=axios.js.map diff --git a/unpackage/dist/cache/.vite/deps/axios.js.map b/unpackage/dist/cache/.vite/deps/axios.js.map deleted file mode 100644 index 9865211..0000000 --- a/unpackage/dist/cache/.vite/deps/axios.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "sourcesContent": [], - "mappings": "", - "names": [] -} diff --git a/unpackage/dist/cache/.vite/deps/chunk-U6PB43C6.js b/unpackage/dist/cache/.vite/deps/chunk-U6PB43C6.js deleted file mode 100644 index a7151a8..0000000 --- a/unpackage/dist/cache/.vite/deps/chunk-U6PB43C6.js +++ /dev/null @@ -1,2534 +0,0 @@ -var __defProp = Object.defineProperty; -var __export = (target, all3) => { - for (var name in all3) - __defProp(target, name, { get: all3[name], enumerable: true }); -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/bind.js -function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/utils.js -var { toString } = Object.prototype; -var { getPrototypeOf } = Object; -var kindOf = /* @__PURE__ */ ((cache) => (thing) => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); -})(/* @__PURE__ */ Object.create(null)); -var kindOfTest = (type) => { - type = type.toLowerCase(); - return (thing) => kindOf(thing) === type; -}; -var typeOfTest = (type) => (thing) => typeof thing === type; -var { isArray } = Array; -var isUndefined = typeOfTest("undefined"); -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); -} -var isArrayBuffer = kindOfTest("ArrayBuffer"); -function isArrayBufferView(val) { - let result; - if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; -} -var isString = typeOfTest("string"); -var isFunction = typeOfTest("function"); -var isNumber = typeOfTest("number"); -var isObject = (thing) => thing !== null && typeof thing === "object"; -var isBoolean = (thing) => thing === true || thing === false; -var isPlainObject = (val) => { - if (kindOf(val) !== "object") { - return false; - } - const prototype3 = getPrototypeOf(val); - return (prototype3 === null || prototype3 === Object.prototype || Object.getPrototypeOf(prototype3) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); -}; -var isDate = kindOfTest("Date"); -var isFile = kindOfTest("File"); -var isBlob = kindOfTest("Blob"); -var isFileList = kindOfTest("FileList"); -var isStream = (val) => isObject(val) && isFunction(val.pipe); -var isFormData = (thing) => { - let kind; - return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance - kind === "object" && isFunction(thing.toString) && thing.toString() === "[object FormData]")); -}; -var isURLSearchParams = kindOfTest("URLSearchParams"); -var [isReadableStream, isRequest, isResponse, isHeaders] = ["ReadableStream", "Request", "Response", "Headers"].map(kindOfTest); -var trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); -function forEach(obj, fn, { allOwnKeys = false } = {}) { - if (obj === null || typeof obj === "undefined") { - return; - } - let i; - let l; - if (typeof obj !== "object") { - obj = [obj]; - } - if (isArray(obj)) { - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } -} -function findKey(obj, key) { - key = key.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; -} -var _global = (() => { - if (typeof globalThis !== "undefined") - return globalThis; - return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global; -})(); -var isContextDefined = (context) => !isUndefined(context) && context !== _global; -function merge() { - const { caseless } = isContextDefined(this) && this || {}; - const result = {}; - const assignValue = (val, key) => { - const targetKey = caseless && findKey(result, key) || key; - if (isPlainObject(result[targetKey]) && isPlainObject(val)) { - result[targetKey] = merge(result[targetKey], val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else { - result[targetKey] = val; - } - }; - for (let i = 0, l = arguments.length; i < l; i++) { - arguments[i] && forEach(arguments[i], assignValue); - } - return result; -} -var extend = (a, b, thisArg, { allOwnKeys } = {}) => { - forEach(b, (val, key) => { - if (thisArg && isFunction(val)) { - a[key] = bind(val, thisArg); - } else { - a[key] = val; - } - }, { allOwnKeys }); - return a; -}; -var stripBOM = (content) => { - if (content.charCodeAt(0) === 65279) { - content = content.slice(1); - } - return content; -}; -var inherits = (constructor, superConstructor, props, descriptors2) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors2); - constructor.prototype.constructor = constructor; - Object.defineProperty(constructor, "super", { - value: superConstructor.prototype - }); - props && Object.assign(constructor.prototype, props); -}; -var toFlatObject = (sourceObj, destObj, filter2, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - destObj = destObj || {}; - if (sourceObj == null) - return destObj; - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter2 !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter2 || filter2(sourceObj, destObj)) && sourceObj !== Object.prototype); - return destObj; -}; -var endsWith = (str, searchString, position) => { - str = String(str); - if (position === void 0 || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -}; -var toArray = (thing) => { - if (!thing) - return null; - if (isArray(thing)) - return thing; - let i = thing.length; - if (!isNumber(i)) - return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -}; -var isTypedArray = /* @__PURE__ */ ((TypedArray) => { - return (thing) => { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array)); -var forEachEntry = (obj, fn) => { - const generator = obj && obj[Symbol.iterator]; - const iterator = generator.call(obj); - let result; - while ((result = iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } -}; -var matchAll = (regExp, str) => { - let matches; - const arr = []; - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - return arr; -}; -var isHTMLForm = kindOfTest("HTMLFormElement"); -var toCamelCase = (str) => { - return str.toLowerCase().replace( - /[-_\s]([a-z\d])(\w*)/g, - function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - } - ); -}; -var hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype); -var isRegExp = kindOfTest("RegExp"); -var reduceDescriptors = (obj, reducer) => { - const descriptors2 = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - forEach(descriptors2, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - Object.defineProperties(obj, reducedDescriptors); -}; -var freezeMethods = (obj) => { - reduceDescriptors(obj, (descriptor, name) => { - if (isFunction(obj) && ["arguments", "caller", "callee"].indexOf(name) !== -1) { - return false; - } - const value = obj[name]; - if (!isFunction(value)) - return; - descriptor.enumerable = false; - if ("writable" in descriptor) { - descriptor.writable = false; - return; - } - if (!descriptor.set) { - descriptor.set = () => { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); -}; -var toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - const define = (arr) => { - arr.forEach((value) => { - obj[value] = true; - }); - }; - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - return obj; -}; -var noop = () => { -}; -var toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite(value = +value) ? value : defaultValue; -}; -var ALPHA = "abcdefghijklmnopqrstuvwxyz"; -var DIGIT = "0123456789"; -var ALPHABET = { - DIGIT, - ALPHA, - ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT -}; -var generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { - let str = ""; - const { length } = alphabet; - while (size--) { - str += alphabet[Math.random() * length | 0]; - } - return str; -}; -function isSpecCompliantForm(thing) { - return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === "FormData" && thing[Symbol.iterator]); -} -var toJSONObject = (obj) => { - const stack = new Array(10); - const visit = (source, i) => { - if (isObject(source)) { - if (stack.indexOf(source) >= 0) { - return; - } - if (!("toJSON" in source)) { - stack[i] = source; - const target = isArray(source) ? [] : {}; - forEach(source, (value, key) => { - const reducedValue = visit(value, i + 1); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - stack[i] = void 0; - return target; - } - } - return source; - }; - return visit(obj, 0); -}; -var isAsyncFn = kindOfTest("AsyncFunction"); -var isThenable = (thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); -var _setImmediate = ((setImmediateSupported, postMessageSupported) => { - if (setImmediateSupported) { - return setImmediate; - } - return postMessageSupported ? ((token, callbacks) => { - _global.addEventListener("message", ({ source, data }) => { - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, false); - return (cb) => { - callbacks.push(cb); - _global.postMessage(token, "*"); - }; - })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb); -})( - typeof setImmediate === "function", - isFunction(_global.postMessage) -); -var asap = typeof queueMicrotask !== "undefined" ? queueMicrotask.bind(_global) : typeof process !== "undefined" && process.nextTick || _setImmediate; -var utils_default = { - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isBlob, - isRegExp, - isFunction, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, - // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - ALPHABET, - generateString, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable, - setImmediate: _setImmediate, - asap -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/AxiosError.js -function AxiosError(message, code, config, request, response) { - Error.call(this); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack; - } - this.message = message; - this.name = "AxiosError"; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status ? response.status : null; - } -} -utils_default.inherits(AxiosError, Error, { - toJSON: function toJSON() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: utils_default.toJSONObject(this.config), - code: this.code, - status: this.status - }; - } -}); -var prototype = AxiosError.prototype; -var descriptors = {}; -[ - "ERR_BAD_OPTION_VALUE", - "ERR_BAD_OPTION", - "ECONNABORTED", - "ETIMEDOUT", - "ERR_NETWORK", - "ERR_FR_TOO_MANY_REDIRECTS", - "ERR_DEPRECATED", - "ERR_BAD_RESPONSE", - "ERR_BAD_REQUEST", - "ERR_CANCELED", - "ERR_NOT_SUPPORT", - "ERR_INVALID_URL" - // eslint-disable-next-line func-names -].forEach((code) => { - descriptors[code] = { value: code }; -}); -Object.defineProperties(AxiosError, descriptors); -Object.defineProperty(prototype, "isAxiosError", { value: true }); -AxiosError.from = (error, code, config, request, response, customProps) => { - const axiosError = Object.create(prototype); - utils_default.toFlatObject(error, axiosError, function filter2(obj) { - return obj !== Error.prototype; - }, (prop) => { - return prop !== "isAxiosError"; - }); - AxiosError.call(axiosError, error.message, code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - customProps && Object.assign(axiosError, customProps); - return axiosError; -}; -var AxiosError_default = AxiosError; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/null.js -var null_default = null; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/toFormData.js -function isVisitable(thing) { - return utils_default.isPlainObject(thing) || utils_default.isArray(thing); -} -function removeBrackets(key) { - return utils_default.endsWith(key, "[]") ? key.slice(0, -2) : key; -} -function renderKey(path, key, dots) { - if (!path) - return key; - return path.concat(key).map(function each(token, i) { - token = removeBrackets(token); - return !dots && i ? "[" + token + "]" : token; - }).join(dots ? "." : ""); -} -function isFlatArray(arr) { - return utils_default.isArray(arr) && !arr.some(isVisitable); -} -var predicates = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); -}); -function toFormData(obj, formData, options) { - if (!utils_default.isObject(obj)) { - throw new TypeError("target must be an object"); - } - formData = formData || new (null_default || FormData)(); - options = utils_default.toFlatObject(options, { - metaTokens: true, - dots: false, - indexes: false - }, false, function defined(option, source) { - return !utils_default.isUndefined(source[option]); - }); - const metaTokens = options.metaTokens; - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || typeof Blob !== "undefined" && Blob; - const useBlob = _Blob && utils_default.isSpecCompliantForm(formData); - if (!utils_default.isFunction(visitor)) { - throw new TypeError("visitor must be a function"); - } - function convertValue(value) { - if (value === null) - return ""; - if (utils_default.isDate(value)) { - return value.toISOString(); - } - if (!useBlob && utils_default.isBlob(value)) { - throw new AxiosError_default("Blob is not supported. Use a Buffer instead."); - } - if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) { - return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value); - } - return value; - } - function defaultVisitor(value, key, path) { - let arr = value; - if (value && !path && typeof value === "object") { - if (utils_default.endsWith(key, "{}")) { - key = metaTokens ? key : key.slice(0, -2); - value = JSON.stringify(value); - } else if (utils_default.isArray(value) && isFlatArray(value) || (utils_default.isFileList(value) || utils_default.endsWith(key, "[]")) && (arr = utils_default.toArray(value))) { - key = removeBrackets(key); - arr.forEach(function each(el, index) { - !(utils_default.isUndefined(el) || el === null) && formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + "[]", - convertValue(el) - ); - }); - return false; - } - } - if (isVisitable(value)) { - return true; - } - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - const stack = []; - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable - }); - function build(value, path) { - if (utils_default.isUndefined(value)) - return; - if (stack.indexOf(value) !== -1) { - throw Error("Circular reference detected in " + path.join(".")); - } - stack.push(value); - utils_default.forEach(value, function each(el, key) { - const result = !(utils_default.isUndefined(el) || el === null) && visitor.call( - formData, - el, - utils_default.isString(key) ? key.trim() : key, - path, - exposedHelpers - ); - if (result === true) { - build(el, path ? path.concat(key) : [key]); - } - }); - stack.pop(); - } - if (!utils_default.isObject(obj)) { - throw new TypeError("data must be an object"); - } - build(obj); - return formData; -} -var toFormData_default = toFormData; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/AxiosURLSearchParams.js -function encode(str) { - const charMap = { - "!": "%21", - "'": "%27", - "(": "%28", - ")": "%29", - "~": "%7E", - "%20": "+", - "%00": "\0" - }; - return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { - return charMap[match]; - }); -} -function AxiosURLSearchParams(params, options) { - this._pairs = []; - params && toFormData_default(params, this, options); -} -var prototype2 = AxiosURLSearchParams.prototype; -prototype2.append = function append(name, value) { - this._pairs.push([name, value]); -}; -prototype2.toString = function toString2(encoder) { - const _encode = encoder ? function(value) { - return encoder.call(this, value, encode); - } : encode; - return this._pairs.map(function each(pair) { - return _encode(pair[0]) + "=" + _encode(pair[1]); - }, "").join("&"); -}; -var AxiosURLSearchParams_default = AxiosURLSearchParams; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/buildURL.js -function encode2(val) { - return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); -} -function buildURL(url, params, options) { - if (!params) { - return url; - } - const _encode = options && options.encode || encode2; - if (utils_default.isFunction(options)) { - options = { - serialize: options - }; - } - const serializeFn = options && options.serialize; - let serializedParams; - if (serializeFn) { - serializedParams = serializeFn(params, options); - } else { - serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, options).toString(_encode); - } - if (serializedParams) { - const hashmarkIndex = url.indexOf("#"); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams; - } - return url; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/InterceptorManager.js -var InterceptorManager = class { - constructor() { - this.handlers = []; - } - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; - } - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise - */ - eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - utils_default.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } -}; -var InterceptorManager_default = InterceptorManager; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/defaults/transitional.js -var transitional_default = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js -var URLSearchParams_default = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams_default; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/platform/browser/classes/FormData.js -var FormData_default = typeof FormData !== "undefined" ? FormData : null; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/platform/browser/classes/Blob.js -var Blob_default = typeof Blob !== "undefined" ? Blob : null; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/platform/browser/index.js -var browser_default = { - isBrowser: true, - classes: { - URLSearchParams: URLSearchParams_default, - FormData: FormData_default, - Blob: Blob_default - }, - protocols: ["http", "https", "file", "blob", "url", "data"] -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/platform/common/utils.js -var utils_exports = {}; -__export(utils_exports, { - hasBrowserEnv: () => hasBrowserEnv, - hasStandardBrowserEnv: () => hasStandardBrowserEnv, - hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv, - navigator: () => _navigator, - origin: () => origin -}); -var hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined"; -var _navigator = typeof navigator === "object" && navigator || void 0; -var hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ["ReactNative", "NativeScript", "NS"].indexOf(_navigator.product) < 0); -var hasStandardBrowserWebWorkerEnv = (() => { - return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && typeof self.importScripts === "function"; -})(); -var origin = hasBrowserEnv && window.location.href || "http://localhost"; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/platform/index.js -var platform_default = { - ...utils_exports, - ...browser_default -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/toURLEncodedForm.js -function toURLEncodedForm(data, options) { - return toFormData_default(data, new platform_default.classes.URLSearchParams(), Object.assign({ - visitor: function(value, key, path, helpers) { - if (platform_default.isNode && utils_default.isBuffer(value)) { - this.append(key, value.toString("base64")); - return false; - } - return helpers.defaultVisitor.apply(this, arguments); - } - }, options)); -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/formDataToJSON.js -function parsePropPath(name) { - return utils_default.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { - return match[0] === "[]" ? "" : match[1] || match[0]; - }); -} -function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; -} -function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - let name = path[index++]; - if (name === "__proto__") - return true; - const isNumericKey = Number.isFinite(+name); - const isLast = index >= path.length; - name = !name && utils_default.isArray(target) ? target.length : name; - if (isLast) { - if (utils_default.hasOwnProp(target, name)) { - target[name] = [target[name], value]; - } else { - target[name] = value; - } - return !isNumericKey; - } - if (!target[name] || !utils_default.isObject(target[name])) { - target[name] = []; - } - const result = buildPath(path, value, target[name], index); - if (result && utils_default.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - return !isNumericKey; - } - if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) { - const obj = {}; - utils_default.forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - return obj; - } - return null; -} -var formDataToJSON_default = formDataToJSON; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/defaults/index.js -function stringifySafely(rawValue, parser, encoder) { - if (utils_default.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils_default.trim(rawValue); - } catch (e) { - if (e.name !== "SyntaxError") { - throw e; - } - } - } - return (encoder || JSON.stringify)(rawValue); -} -var defaults = { - transitional: transitional_default, - adapter: ["xhr", "http", "fetch"], - transformRequest: [function transformRequest(data, headers) { - const contentType = headers.getContentType() || ""; - const hasJSONContentType = contentType.indexOf("application/json") > -1; - const isObjectPayload = utils_default.isObject(data); - if (isObjectPayload && utils_default.isHTMLForm(data)) { - data = new FormData(data); - } - const isFormData2 = utils_default.isFormData(data); - if (isFormData2) { - return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data)) : data; - } - if (utils_default.isArrayBuffer(data) || utils_default.isBuffer(data) || utils_default.isStream(data) || utils_default.isFile(data) || utils_default.isBlob(data) || utils_default.isReadableStream(data)) { - return data; - } - if (utils_default.isArrayBufferView(data)) { - return data.buffer; - } - if (utils_default.isURLSearchParams(data)) { - headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false); - return data.toString(); - } - let isFileList2; - if (isObjectPayload) { - if (contentType.indexOf("application/x-www-form-urlencoded") > -1) { - return toURLEncodedForm(data, this.formSerializer).toString(); - } - if ((isFileList2 = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) { - const _FormData = this.env && this.env.FormData; - return toFormData_default( - isFileList2 ? { "files[]": data } : data, - _FormData && new _FormData(), - this.formSerializer - ); - } - } - if (isObjectPayload || hasJSONContentType) { - headers.setContentType("application/json", false); - return stringifySafely(data); - } - return data; - }], - transformResponse: [function transformResponse(data) { - const transitional2 = this.transitional || defaults.transitional; - const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing; - const JSONRequested = this.responseType === "json"; - if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) { - return data; - } - if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) { - const silentJSONParsing = transitional2 && transitional2.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - try { - return JSON.parse(data); - } catch (e) { - if (strictJSONParsing) { - if (e.name === "SyntaxError") { - throw AxiosError_default.from(e, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response); - } - throw e; - } - } - } - return data; - }], - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - xsrfCookieName: "XSRF-TOKEN", - xsrfHeaderName: "X-XSRF-TOKEN", - maxContentLength: -1, - maxBodyLength: -1, - env: { - FormData: platform_default.classes.FormData, - Blob: platform_default.classes.Blob - }, - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - headers: { - common: { - "Accept": "application/json, text/plain, */*", - "Content-Type": void 0 - } - } -}; -utils_default.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => { - defaults.headers[method] = {}; -}); -var defaults_default = defaults; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/parseHeaders.js -var ignoreDuplicateOf = utils_default.toObjectSet([ - "age", - "authorization", - "content-length", - "content-type", - "etag", - "expires", - "from", - "host", - "if-modified-since", - "if-unmodified-since", - "last-modified", - "location", - "max-forwards", - "proxy-authorization", - "referer", - "retry-after", - "user-agent" -]); -var parseHeaders_default = (rawHeaders) => { - const parsed = {}; - let key; - let val; - let i; - rawHeaders && rawHeaders.split("\n").forEach(function parser(line) { - i = line.indexOf(":"); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - if (!key || parsed[key] && ignoreDuplicateOf[key]) { - return; - } - if (key === "set-cookie") { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ", " + val : val; - } - }); - return parsed; -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/AxiosHeaders.js -var $internals = Symbol("internals"); -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} -function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - return utils_default.isArray(value) ? value.map(normalizeValue) : String(value); -} -function parseTokens(str) { - const tokens = /* @__PURE__ */ Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - while (match = tokensRE.exec(str)) { - tokens[match[1]] = match[2]; - } - return tokens; -} -var isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); -function matchHeaderValue(context, value, header, filter2, isHeaderNameFilter) { - if (utils_default.isFunction(filter2)) { - return filter2.call(this, value, header); - } - if (isHeaderNameFilter) { - value = header; - } - if (!utils_default.isString(value)) - return; - if (utils_default.isString(filter2)) { - return value.indexOf(filter2) !== -1; - } - if (utils_default.isRegExp(filter2)) { - return filter2.test(value); - } -} -function formatHeader(header) { - return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); -} -function buildAccessors(obj, header) { - const accessorName = utils_default.toCamelCase(" " + header); - ["get", "set", "has"].forEach((methodName) => { - Object.defineProperty(obj, methodName + accessorName, { - value: function(arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true - }); - }); -} -var AxiosHeaders = class { - constructor(headers) { - headers && this.set(headers); - } - set(header, valueOrRewrite, rewrite) { - const self2 = this; - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - if (!lHeader) { - throw new Error("header name must be a non-empty string"); - } - const key = utils_default.findKey(self2, lHeader); - if (!key || self2[key] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key] !== false) { - self2[key || _header] = normalizeValue(_value); - } - } - const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - if (utils_default.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders_default(header), valueOrRewrite); - } else if (utils_default.isHeaders(header)) { - for (const [key, value] of header.entries()) { - setHeader(value, key, rewrite); - } - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - return this; - } - get(header, parser) { - header = normalizeHeader(header); - if (header) { - const key = utils_default.findKey(this, header); - if (key) { - const value = this[key]; - if (!parser) { - return value; - } - if (parser === true) { - return parseTokens(value); - } - if (utils_default.isFunction(parser)) { - return parser.call(this, value, key); - } - if (utils_default.isRegExp(parser)) { - return parser.exec(value); - } - throw new TypeError("parser must be boolean|regexp|function"); - } - } - } - has(header, matcher) { - header = normalizeHeader(header); - if (header) { - const key = utils_default.findKey(this, header); - return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher))); - } - return false; - } - delete(header, matcher) { - const self2 = this; - let deleted = false; - function deleteHeader(_header) { - _header = normalizeHeader(_header); - if (_header) { - const key = utils_default.findKey(self2, _header); - if (key && (!matcher || matchHeaderValue(self2, self2[key], key, matcher))) { - delete self2[key]; - deleted = true; - } - } - } - if (utils_default.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - return deleted; - } - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - while (i--) { - const key = keys[i]; - if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - return deleted; - } - normalize(format) { - const self2 = this; - const headers = {}; - utils_default.forEach(this, (value, header) => { - const key = utils_default.findKey(headers, header); - if (key) { - self2[key] = normalizeValue(value); - delete self2[header]; - return; - } - const normalized = format ? formatHeader(header) : String(header).trim(); - if (normalized !== header) { - delete self2[header]; - } - self2[normalized] = normalizeValue(value); - headers[normalized] = true; - }); - return this; - } - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - toJSON(asStrings) { - const obj = /* @__PURE__ */ Object.create(null); - utils_default.forEach(this, (value, header) => { - value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(", ") : value); - }); - return obj; - } - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - toString() { - return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n"); - } - get [Symbol.toStringTag]() { - return "AxiosHeaders"; - } - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - static concat(first, ...targets) { - const computed = new this(first); - targets.forEach((target) => computed.set(target)); - return computed; - } - static accessor(header) { - const internals = this[$internals] = this[$internals] = { - accessors: {} - }; - const accessors = internals.accessors; - const prototype3 = this.prototype; - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - if (!accessors[lHeader]) { - buildAccessors(prototype3, _header); - accessors[lHeader] = true; - } - } - utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - return this; - } -}; -AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]); -utils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => { - let mapped = key[0].toUpperCase() + key.slice(1); - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - } - }; -}); -utils_default.freezeMethods(AxiosHeaders); -var AxiosHeaders_default = AxiosHeaders; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/transformData.js -function transformData(fns, response) { - const config = this || defaults_default; - const context = response || config; - const headers = AxiosHeaders_default.from(context.headers); - let data = context.data; - utils_default.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : void 0); - }); - headers.normalize(); - return data; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/cancel/isCancel.js -function isCancel(value) { - return !!(value && value.__CANCEL__); -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/cancel/CanceledError.js -function CanceledError(message, config, request) { - AxiosError_default.call(this, message == null ? "canceled" : message, AxiosError_default.ERR_CANCELED, config, request); - this.name = "CanceledError"; -} -utils_default.inherits(CanceledError, AxiosError_default, { - __CANCEL__: true -}); -var CanceledError_default = CanceledError; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/settle.js -function settle(resolve, reject, response) { - const validateStatus2 = response.config.validateStatus; - if (!response.status || !validateStatus2 || validateStatus2(response.status)) { - resolve(response); - } else { - reject(new AxiosError_default( - "Request failed with status code " + response.status, - [AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], - response.config, - response.request, - response - )); - } -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/parseProtocol.js -function parseProtocol(url) { - const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); - return match && match[1] || ""; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/speedometer.js -function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - min = min !== void 0 ? min : 1e3; - return function push(chunkLength) { - const now = Date.now(); - const startedAt = timestamps[tail]; - if (!firstSampleTS) { - firstSampleTS = now; - } - bytes[head] = chunkLength; - timestamps[head] = now; - let i = tail; - let bytesCount = 0; - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - head = (head + 1) % samplesCount; - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - if (now - firstSampleTS < min) { - return; - } - const passed = startedAt && now - startedAt; - return passed ? Math.round(bytesCount * 1e3 / passed) : void 0; - }; -} -var speedometer_default = speedometer; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/throttle.js -function throttle(fn, freq) { - let timestamp = 0; - let threshold = 1e3 / freq; - let lastArgs; - let timer; - const invoke = (args, now = Date.now()) => { - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn.apply(null, args); - }; - const throttled = (...args) => { - const now = Date.now(); - const passed = now - timestamp; - if (passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(() => { - timer = null; - invoke(lastArgs); - }, threshold - passed); - } - } - }; - const flush = () => lastArgs && invoke(lastArgs); - return [throttled, flush]; -} -var throttle_default = throttle; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/progressEventReducer.js -var progressEventReducer = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = speedometer_default(50, 250); - return throttle_default((e) => { - const loaded = e.loaded; - const total = e.lengthComputable ? e.total : void 0; - const progressBytes = loaded - bytesNotified; - const rate = _speedometer(progressBytes); - const inRange = loaded <= total; - bytesNotified = loaded; - const data = { - loaded, - total, - progress: total ? loaded / total : void 0, - bytes: progressBytes, - rate: rate ? rate : void 0, - estimated: rate && total && inRange ? (total - loaded) / rate : void 0, - event: e, - lengthComputable: total != null, - [isDownloadStream ? "download" : "upload"]: true - }; - listener(data); - }, freq); -}; -var progressEventDecorator = (total, throttled) => { - const lengthComputable = total != null; - return [(loaded) => throttled[0]({ - lengthComputable, - total, - loaded - }), throttled[1]]; -}; -var asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args)); - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/isURLSameOrigin.js -var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => { - url = new URL(url, platform_default.origin); - return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port); -})( - new URL(platform_default.origin), - platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent) -) : () => true; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/cookies.js -var cookies_default = platform_default.hasStandardBrowserEnv ? ( - // Standard browser envs support document.cookie - { - write(name, value, expires, path, domain, secure) { - const cookie = [name + "=" + encodeURIComponent(value)]; - utils_default.isNumber(expires) && cookie.push("expires=" + new Date(expires).toGMTString()); - utils_default.isString(path) && cookie.push("path=" + path); - utils_default.isString(domain) && cookie.push("domain=" + domain); - secure === true && cookie.push("secure"); - document.cookie = cookie.join("; "); - }, - read(name) { - const match = document.cookie.match(new RegExp("(^|;\\s*)(" + name + ")=([^;]*)")); - return match ? decodeURIComponent(match[3]) : null; - }, - remove(name) { - this.write(name, "", Date.now() - 864e5); - } - } -) : ( - // Non-standard browser env (web workers, react-native) lack needed support. - { - write() { - }, - read() { - return null; - }, - remove() { - } - } -); - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/isAbsoluteURL.js -function isAbsoluteURL(url) { - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/combineURLs.js -function combineURLs(baseURL, relativeURL) { - return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/buildFullPath.js -function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/mergeConfig.js -var headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing; -function mergeConfig(config1, config2) { - config2 = config2 || {}; - const config = {}; - function getMergedValue(target, source, prop, caseless) { - if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) { - return utils_default.merge.call({ caseless }, target, source); - } else if (utils_default.isPlainObject(source)) { - return utils_default.merge({}, source); - } else if (utils_default.isArray(source)) { - return source.slice(); - } - return source; - } - function mergeDeepProperties(a, b, prop, caseless) { - if (!utils_default.isUndefined(b)) { - return getMergedValue(a, b, prop, caseless); - } else if (!utils_default.isUndefined(a)) { - return getMergedValue(void 0, a, prop, caseless); - } - } - function valueFromConfig2(a, b) { - if (!utils_default.isUndefined(b)) { - return getMergedValue(void 0, b); - } - } - function defaultToConfig2(a, b) { - if (!utils_default.isUndefined(b)) { - return getMergedValue(void 0, b); - } else if (!utils_default.isUndefined(a)) { - return getMergedValue(void 0, a); - } - } - function mergeDirectKeys(a, b, prop) { - if (prop in config2) { - return getMergedValue(a, b); - } else if (prop in config1) { - return getMergedValue(void 0, a); - } - } - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true) - }; - utils_default.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { - const merge2 = mergeMap[prop] || mergeDeepProperties; - const configValue = merge2(config1[prop], config2[prop], prop); - utils_default.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue); - }); - return config; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/resolveConfig.js -var resolveConfig_default = (config) => { - const newConfig = mergeConfig({}, config); - let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig; - newConfig.headers = headers = AxiosHeaders_default.from(headers); - newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer); - if (auth) { - headers.set( - "Authorization", - "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : "")) - ); - } - let contentType; - if (utils_default.isFormData(data)) { - if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(void 0); - } else if ((contentType = headers.getContentType()) !== false) { - const [type, ...tokens] = contentType ? contentType.split(";").map((token) => token.trim()).filter(Boolean) : []; - headers.setContentType([type || "multipart/form-data", ...tokens].join("; ")); - } - } - if (platform_default.hasStandardBrowserEnv) { - withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig)); - if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) { - const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName); - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - return newConfig; -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/adapters/xhr.js -var isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined"; -var xhr_default = isXHRAdapterSupported && function(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = resolveConfig_default(config); - let requestData = _config.data; - const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize(); - let { responseType, onUploadProgress, onDownloadProgress } = _config; - let onCanceled; - let uploadThrottled, downloadThrottled; - let flushUpload, flushDownload; - function done() { - flushUpload && flushUpload(); - flushDownload && flushDownload(); - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - _config.signal && _config.signal.removeEventListener("abort", onCanceled); - } - let request = new XMLHttpRequest(); - request.open(_config.method.toUpperCase(), _config.url, true); - request.timeout = _config.timeout; - function onloadend() { - if (!request) { - return; - } - const responseHeaders = AxiosHeaders_default.from( - "getAllResponseHeaders" in request && request.getAllResponseHeaders() - ); - const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request - }; - settle(function _resolve(value) { - resolve(value); - done(); - }, function _reject(err) { - reject(err); - done(); - }, response); - request = null; - } - if ("onloadend" in request) { - request.onloadend = onloadend; - } else { - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) { - return; - } - setTimeout(onloadend); - }; - } - request.onabort = function handleAbort() { - if (!request) { - return; - } - reject(new AxiosError_default("Request aborted", AxiosError_default.ECONNABORTED, config, request)); - request = null; - }; - request.onerror = function handleError() { - reject(new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request)); - request = null; - }; - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded"; - const transitional2 = _config.transitional || transitional_default; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject(new AxiosError_default( - timeoutErrorMessage, - transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED, - config, - request - )); - request = null; - }; - requestData === void 0 && requestHeaders.setContentType(null); - if ("setRequestHeader" in request) { - utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - if (!utils_default.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - if (responseType && responseType !== "json") { - request.responseType = _config.responseType; - } - if (onDownloadProgress) { - [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); - request.addEventListener("progress", downloadThrottled); - } - if (onUploadProgress && request.upload) { - [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); - request.upload.addEventListener("progress", uploadThrottled); - request.upload.addEventListener("loadend", flushUpload); - } - if (_config.cancelToken || _config.signal) { - onCanceled = (cancel) => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel); - request.abort(); - request = null; - }; - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled); - } - } - const protocol = parseProtocol(_config.url); - if (protocol && platform_default.protocols.indexOf(protocol) === -1) { - reject(new AxiosError_default("Unsupported protocol " + protocol + ":", AxiosError_default.ERR_BAD_REQUEST, config)); - return; - } - request.send(requestData || null); - }); -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/composeSignals.js -var composeSignals = (signals, timeout) => { - const { length } = signals = signals ? signals.filter(Boolean) : []; - if (timeout || length) { - let controller = new AbortController(); - let aborted; - const onabort = function(reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = reason instanceof Error ? reason : this.reason; - controller.abort(err instanceof AxiosError_default ? err : new CanceledError_default(err instanceof Error ? err.message : err)); - } - }; - let timer = timeout && setTimeout(() => { - timer = null; - onabort(new AxiosError_default(`timeout ${timeout} of ms exceeded`, AxiosError_default.ETIMEDOUT)); - }, timeout); - const unsubscribe = () => { - if (signals) { - timer && clearTimeout(timer); - timer = null; - signals.forEach((signal2) => { - signal2.unsubscribe ? signal2.unsubscribe(onabort) : signal2.removeEventListener("abort", onabort); - }); - signals = null; - } - }; - signals.forEach((signal2) => signal2.addEventListener("abort", onabort)); - const { signal } = controller; - signal.unsubscribe = () => utils_default.asap(unsubscribe); - return signal; - } -}; -var composeSignals_default = composeSignals; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/trackStream.js -var streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - if (!chunkSize || len < chunkSize) { - yield chunk; - return; - } - let pos = 0; - let end; - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } -}; -var readBytes = async function* (iterable, chunkSize) { - for await (const chunk of readStream(iterable)) { - yield* streamChunk(chunk, chunkSize); - } -}; -var readStream = async function* (stream) { - if (stream[Symbol.asyncIterator]) { - yield* stream; - return; - } - const reader = stream.getReader(); - try { - for (; ; ) { - const { done, value } = await reader.read(); - if (done) { - break; - } - yield value; - } - } finally { - await reader.cancel(); - } -}; -var trackStream = (stream, chunkSize, onProgress, onFinish) => { - const iterator = readBytes(stream, chunkSize); - let bytes = 0; - let done; - let _onFinish = (e) => { - if (!done) { - done = true; - onFinish && onFinish(e); - } - }; - return new ReadableStream({ - async pull(controller) { - try { - const { done: done2, value } = await iterator.next(); - if (done2) { - _onFinish(); - controller.close(); - return; - } - let len = value.byteLength; - if (onProgress) { - let loadedBytes = bytes += len; - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - } catch (err) { - _onFinish(err); - throw err; - } - }, - cancel(reason) { - _onFinish(reason); - return iterator.return(); - } - }, { - highWaterMark: 2 - }); -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/adapters/fetch.js -var isFetchSupported = typeof fetch === "function" && typeof Request === "function" && typeof Response === "function"; -var isReadableStreamSupported = isFetchSupported && typeof ReadableStream === "function"; -var encodeText = isFetchSupported && (typeof TextEncoder === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Response(str).arrayBuffer())); -var test = (fn, ...args) => { - try { - return !!fn(...args); - } catch (e) { - return false; - } -}; -var supportsRequestStream = isReadableStreamSupported && test(() => { - let duplexAccessed = false; - const hasContentType = new Request(platform_default.origin, { - body: new ReadableStream(), - method: "POST", - get duplex() { - duplexAccessed = true; - return "half"; - } - }).headers.has("Content-Type"); - return duplexAccessed && !hasContentType; -}); -var DEFAULT_CHUNK_SIZE = 64 * 1024; -var supportsResponseStream = isReadableStreamSupported && test(() => utils_default.isReadableStream(new Response("").body)); -var resolvers = { - stream: supportsResponseStream && ((res) => res.body) -}; -isFetchSupported && ((res) => { - ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => { - !resolvers[type] && (resolvers[type] = utils_default.isFunction(res[type]) ? (res2) => res2[type]() : (_, config) => { - throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config); - }); - }); -})(new Response()); -var getBodyLength = async (body) => { - if (body == null) { - return 0; - } - if (utils_default.isBlob(body)) { - return body.size; - } - if (utils_default.isSpecCompliantForm(body)) { - const _request = new Request(platform_default.origin, { - method: "POST", - body - }); - return (await _request.arrayBuffer()).byteLength; - } - if (utils_default.isArrayBufferView(body) || utils_default.isArrayBuffer(body)) { - return body.byteLength; - } - if (utils_default.isURLSearchParams(body)) { - body = body + ""; - } - if (utils_default.isString(body)) { - return (await encodeText(body)).byteLength; - } -}; -var resolveBodyLength = async (headers, body) => { - const length = utils_default.toFiniteNumber(headers.getContentLength()); - return length == null ? getBodyLength(body) : length; -}; -var fetch_default = isFetchSupported && (async (config) => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = "same-origin", - fetchOptions - } = resolveConfig_default(config); - responseType = responseType ? (responseType + "").toLowerCase() : "text"; - let composedSignal = composeSignals_default([signal, cancelToken && cancelToken.toAbortSignal()], timeout); - let request; - const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => { - composedSignal.unsubscribe(); - }); - let requestContentLength; - try { - if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) { - let _request = new Request(url, { - method: "POST", - body: data, - duplex: "half" - }); - let contentTypeHeader; - if (utils_default.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) { - headers.setContentType(contentTypeHeader); - } - if (_request.body) { - const [onProgress, flush] = progressEventDecorator( - requestContentLength, - progressEventReducer(asyncDecorator(onUploadProgress)) - ); - data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - } - if (!utils_default.isString(withCredentials)) { - withCredentials = withCredentials ? "include" : "omit"; - } - const isCredentialsSupported = "credentials" in Request.prototype; - request = new Request(url, { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: headers.normalize().toJSON(), - body: data, - duplex: "half", - credentials: isCredentialsSupported ? withCredentials : void 0 - }); - let response = await fetch(request); - const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response"); - if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) { - const options = {}; - ["status", "statusText", "headers"].forEach((prop) => { - options[prop] = response[prop]; - }); - const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length")); - const [onProgress, flush] = onDownloadProgress && progressEventDecorator( - responseContentLength, - progressEventReducer(asyncDecorator(onDownloadProgress), true) - ) || []; - response = new Response( - trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { - flush && flush(); - unsubscribe && unsubscribe(); - }), - options - ); - } - responseType = responseType || "text"; - let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config); - !isStreamResponse && unsubscribe && unsubscribe(); - return await new Promise((resolve, reject) => { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders_default.from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request - }); - }); - } catch (err) { - unsubscribe && unsubscribe(); - if (err && err.name === "TypeError" && /fetch/i.test(err.message)) { - throw Object.assign( - new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request), - { - cause: err.cause || err - } - ); - } - throw AxiosError_default.from(err, err && err.code, config, request); - } -}); - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/adapters/adapters.js -var knownAdapters = { - http: null_default, - xhr: xhr_default, - fetch: fetch_default -}; -utils_default.forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - Object.defineProperty(fn, "name", { value }); - } catch (e) { - } - Object.defineProperty(fn, "adapterName", { value }); - } -}); -var renderReason = (reason) => `- ${reason}`; -var isResolvedHandle = (adapter) => utils_default.isFunction(adapter) || adapter === null || adapter === false; -var adapters_default = { - getAdapter: (adapters) => { - adapters = utils_default.isArray(adapters) ? adapters : [adapters]; - const { length } = adapters; - let nameOrAdapter; - let adapter; - const rejectedReasons = {}; - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id; - adapter = nameOrAdapter; - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - if (adapter === void 0) { - throw new AxiosError_default(`Unknown adapter '${id}'`); - } - } - if (adapter) { - break; - } - rejectedReasons[id || "#" + i] = adapter; - } - if (!adapter) { - const reasons = Object.entries(rejectedReasons).map( - ([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build") - ); - let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified"; - throw new AxiosError_default( - `There is no suitable adapter to dispatch the request ` + s, - "ERR_NOT_SUPPORT" - ); - } - return adapter; - }, - adapters: knownAdapters -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/dispatchRequest.js -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - if (config.signal && config.signal.aborted) { - throw new CanceledError_default(null, config); - } -} -function dispatchRequest(config) { - throwIfCancellationRequested(config); - config.headers = AxiosHeaders_default.from(config.headers); - config.data = transformData.call( - config, - config.transformRequest - ); - if (["post", "put", "patch"].indexOf(config.method) !== -1) { - config.headers.setContentType("application/x-www-form-urlencoded", false); - } - const adapter = adapters_default.getAdapter(config.adapter || defaults_default.adapter); - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - response.data = transformData.call( - config, - config.transformResponse, - response - ); - response.headers = AxiosHeaders_default.from(response.headers); - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - if (reason && reason.response) { - reason.response.data = transformData.call( - config, - config.transformResponse, - reason.response - ); - reason.response.headers = AxiosHeaders_default.from(reason.response.headers); - } - } - return Promise.reject(reason); - }); -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/env/data.js -var VERSION = "1.7.9"; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/validator.js -var validators = {}; -["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => { - validators[type] = function validator(thing) { - return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type; - }; -}); -var deprecatedWarnings = {}; -validators.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : ""); - } - return (value, opt, opts) => { - if (validator === false) { - throw new AxiosError_default( - formatMessage(opt, " has been removed" + (version ? " in " + version : "")), - AxiosError_default.ERR_DEPRECATED - ); - } - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - console.warn( - formatMessage( - opt, - " has been deprecated since v" + version + " and will be removed in the near future" - ) - ); - } - return validator ? validator(value, opt, opts) : true; - }; -}; -validators.spelling = function spelling(correctSpelling) { - return (value, opt) => { - console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); - return true; - }; -}; -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== "object") { - throw new AxiosError_default("options must be an object", AxiosError_default.ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - const validator = schema[opt]; - if (validator) { - const value = options[opt]; - const result = value === void 0 || validator(value, opt, options); - if (result !== true) { - throw new AxiosError_default("option " + opt + " must be " + result, AxiosError_default.ERR_BAD_OPTION_VALUE); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError_default("Unknown option " + opt, AxiosError_default.ERR_BAD_OPTION); - } - } -} -var validator_default = { - assertOptions, - validators -}; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/core/Axios.js -var validators2 = validator_default.validators; -var Axios = class { - constructor(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new InterceptorManager_default(), - response: new InterceptorManager_default() - }; - } - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy = {}; - Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error(); - const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : ""; - try { - if (!err.stack) { - err.stack = stack; - } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) { - err.stack += "\n" + stack; - } - } catch (e) { - } - } - throw err; - } - } - _request(configOrUrl, config) { - if (typeof configOrUrl === "string") { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - config = mergeConfig(this.defaults, config); - const { transitional: transitional2, paramsSerializer, headers } = config; - if (transitional2 !== void 0) { - validator_default.assertOptions(transitional2, { - silentJSONParsing: validators2.transitional(validators2.boolean), - forcedJSONParsing: validators2.transitional(validators2.boolean), - clarifyTimeoutError: validators2.transitional(validators2.boolean) - }, false); - } - if (paramsSerializer != null) { - if (utils_default.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer - }; - } else { - validator_default.assertOptions(paramsSerializer, { - encode: validators2.function, - serialize: validators2.function - }, true); - } - } - validator_default.assertOptions(config, { - baseUrl: validators2.spelling("baseURL"), - withXsrfToken: validators2.spelling("withXSRFToken") - }, true); - config.method = (config.method || this.defaults.method || "get").toLowerCase(); - let contextHeaders = headers && utils_default.merge( - headers.common, - headers[config.method] - ); - headers && utils_default.forEach( - ["delete", "get", "head", "post", "put", "patch", "common"], - (method) => { - delete headers[method]; - } - ); - config.headers = AxiosHeaders_default.concat(contextHeaders, headers); - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) { - return; - } - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - let promise; - let i = 0; - let len; - if (!synchronousRequestInterceptors) { - const chain = [dispatchRequest.bind(this), void 0]; - chain.unshift.apply(chain, requestInterceptorChain); - chain.push.apply(chain, responseInterceptorChain); - len = chain.length; - promise = Promise.resolve(config); - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - return promise; - } - len = requestInterceptorChain.length; - let newConfig = config; - i = 0; - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - i = 0; - len = responseInterceptorChain.length; - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - return promise; - } - getUri(config) { - config = mergeConfig(this.defaults, config); - const fullPath = buildFullPath(config.baseURL, config.url); - return buildURL(fullPath, config.params, config.paramsSerializer); - } -}; -utils_default.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) { - Axios.prototype[method] = function(url, config) { - return this.request(mergeConfig(config || {}, { - method, - url, - data: (config || {}).data - })); - }; -}); -utils_default.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request(mergeConfig(config || {}, { - method, - headers: isForm ? { - "Content-Type": "multipart/form-data" - } : {}, - url, - data - })); - }; - } - Axios.prototype[method] = generateHTTPMethod(); - Axios.prototype[method + "Form"] = generateHTTPMethod(true); -}); -var Axios_default = Axios; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/cancel/CancelToken.js -var CancelToken = class _CancelToken { - constructor(executor) { - if (typeof executor !== "function") { - throw new TypeError("executor must be a function."); - } - let resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - const token = this; - this.promise.then((cancel) => { - if (!token._listeners) - return; - let i = token._listeners.length; - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - this.promise.then = (onfulfilled) => { - let _resolve; - const promise = new Promise((resolve) => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - return promise; - }; - executor(function cancel(message, config, request) { - if (token.reason) { - return; - } - token.reason = new CanceledError_default(message, config, request); - resolvePromise(token.reason); - }); - } - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - /** - * Subscribe to the cancel signal - */ - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - /** - * Unsubscribe from the cancel signal - */ - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - toAbortSignal() { - const controller = new AbortController(); - const abort = (err) => { - controller.abort(err); - }; - this.subscribe(abort); - controller.signal.unsubscribe = () => this.unsubscribe(abort); - return controller.signal; - } - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new _CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel - }; - } -}; -var CancelToken_default = CancelToken; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/spread.js -function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/isAxiosError.js -function isAxiosError(payload) { - return utils_default.isObject(payload) && payload.isAxiosError === true; -} - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/helpers/HttpStatusCode.js -var HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511 -}; -Object.entries(HttpStatusCode).forEach(([key, value]) => { - HttpStatusCode[value] = key; -}); -var HttpStatusCode_default = HttpStatusCode; - -// ../../../共享风扇1-3/fs/node_modules/axios/lib/axios.js -function createInstance(defaultConfig) { - const context = new Axios_default(defaultConfig); - const instance = bind(Axios_default.prototype.request, context); - utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true }); - utils_default.extend(instance, context, null, { allOwnKeys: true }); - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - return instance; -} -var axios = createInstance(defaults_default); -axios.Axios = Axios_default; -axios.CanceledError = CanceledError_default; -axios.CancelToken = CancelToken_default; -axios.isCancel = isCancel; -axios.VERSION = VERSION; -axios.toFormData = toFormData_default; -axios.AxiosError = AxiosError_default; -axios.Cancel = axios.CanceledError; -axios.all = function all(promises) { - return Promise.all(promises); -}; -axios.spread = spread; -axios.isAxiosError = isAxiosError; -axios.mergeConfig = mergeConfig; -axios.AxiosHeaders = AxiosHeaders_default; -axios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing); -axios.getAdapter = adapters_default.getAdapter; -axios.HttpStatusCode = HttpStatusCode_default; -axios.default = axios; -var axios_default = axios; - -// ../../../共享风扇1-3/fs/node_modules/axios/index.js -var { - Axios: Axios2, - AxiosError: AxiosError2, - CanceledError: CanceledError2, - isCancel: isCancel2, - CancelToken: CancelToken2, - VERSION: VERSION2, - all: all2, - Cancel, - isAxiosError: isAxiosError2, - spread: spread2, - toFormData: toFormData2, - AxiosHeaders: AxiosHeaders2, - HttpStatusCode: HttpStatusCode2, - formToJSON, - getAdapter, - mergeConfig: mergeConfig2 -} = axios_default; - -export { - axios_default, - Axios2 as Axios, - AxiosError2 as AxiosError, - CanceledError2 as CanceledError, - isCancel2 as isCancel, - CancelToken2 as CancelToken, - VERSION2 as VERSION, - all2 as all, - Cancel, - isAxiosError2 as isAxiosError, - spread2 as spread, - toFormData2 as toFormData, - AxiosHeaders2 as AxiosHeaders, - HttpStatusCode2 as HttpStatusCode, - formToJSON, - getAdapter, - mergeConfig2 as mergeConfig -}; -//# sourceMappingURL=chunk-U6PB43C6.js.map diff --git a/unpackage/dist/cache/.vite/deps/chunk-U6PB43C6.js.map b/unpackage/dist/cache/.vite/deps/chunk-U6PB43C6.js.map deleted file mode 100644 index 07d0705..0000000 --- a/unpackage/dist/cache/.vite/deps/chunk-U6PB43C6.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../../node_modules/axios/lib/helpers/bind.js", "../../../../../node_modules/axios/lib/utils.js", "../../../../../node_modules/axios/lib/core/AxiosError.js", "../../../../../node_modules/axios/lib/helpers/null.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/defaults/index.js", "../../../../../node_modules/axios/lib/helpers/parseHeaders.js", "../../../../../node_modules/axios/lib/core/AxiosHeaders.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/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/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/adapters/fetch.js", "../../../../../node_modules/axios/lib/adapters/adapters.js", "../../../../../node_modules/axios/lib/core/dispatchRequest.js", "../../../../../node_modules/axios/lib/env/data.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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\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 */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\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] = ['ReadableStream', 'Request', 'Response', 'Headers'].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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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'].indexOf(name) !== -1) {\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\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\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\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 reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n", "'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\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 ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n", "// eslint-disable-next-line strict\nexport default null;\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';\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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 // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\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 (!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 return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\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 (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 = JSON.stringify(value);\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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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 stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw 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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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 /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && 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\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\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 *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 }\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 utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n", "'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\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 = 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(), Object.assign({\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", "'use strict';\n\nimport utils from '../utils.js';\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]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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\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';\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [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 (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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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 if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n", "'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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 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.trim()\n .toLowerCase().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 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 throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\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 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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\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 {Function}\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.apply(null, 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\n return [throttled, flush];\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 const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (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 [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n", "import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((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) : () => true;\n", "import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\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\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 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 return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n", "'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\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\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 config2 = config2 || {};\n const config = {};\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 // eslint-disable-next-line consistent-return\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 // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 timeoutMessage: 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n", "import platform from \"../platform/index.js\";\nimport utils from \"../utils.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 buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\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 withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\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\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 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\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && 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;\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() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\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(requestHeaders.toJSON(), 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] = progressEventReducer(onDownloadProgress, true));\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 request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\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 const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\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(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n", "\nexport 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 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 highWaterMark: 2\n })\n}\n", "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 {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst 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\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (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 } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\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 = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\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'](response, config);\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 if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n", "import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\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) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `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 ? 'since :\\n' + reasons.map(renderReason).join('\\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 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\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\";\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 throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n", "export const VERSION = \"1.7.9\";", "'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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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') {\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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 validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.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 let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 * var 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 PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 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};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\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} = axios;\n\nexport {\n axios as default,\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"], - "mappings": "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", - "names": ["prototype", "descriptors", "filter", "hasOwnProperty", "filter", "prototype", "toString", "encode", "isFormData", "isFileList", "transitional", "filter", "self", "prototype", "validateStatus", "origin", "merge", "transitional", "signal", "done", "res", "validators", "transitional", "Axios", "AxiosError", "CanceledError", "isCancel", "CancelToken", "VERSION", "all", "isAxiosError", "spread", "toFormData", "AxiosHeaders", "HttpStatusCode", "mergeConfig"] -} diff --git a/unpackage/dist/cache/.vite/deps/uniapp-axios-adapter.js b/unpackage/dist/cache/.vite/deps/uniapp-axios-adapter.js deleted file mode 100644 index b62dc71..0000000 --- a/unpackage/dist/cache/.vite/deps/uniapp-axios-adapter.js +++ /dev/null @@ -1,54 +0,0 @@ -import { - axios_default -} from "./chunk-U6PB43C6.js"; - -// ../../../共享风扇1-3/fs/node_modules/uniapp-axios-adapter/lib/index.esm.js -var getResponse = (res, config) => { - const { statusCode, errMsg } = res; - const response = { - ...res, - status: statusCode, - statusText: errMsg, - config, - request: null - }; - return response; -}; -var uniAdapter = (config) => { - if (!uni) { - throw new Error("please use this in uni-app project!"); - } - return new Promise((resolve, reject) => { - const { baseURL, url, headers, data, params } = config; - const uniConfig = { - ...config, - url: baseURL + url, - header: headers - }; - if (data || params) { - try { - uniConfig.data = JSON.parse(data || params); - } catch (e) { - uniConfig.data = data || params; - } - } - uni.request({ - ...uniConfig, - success(res) { - const response = getResponse(res, config); - resolve(response); - }, - fail(res) { - const response = getResponse(res, config); - reject(response); - } - }); - }); -}; -var UniAdapter = uniAdapter; -axios_default.defaults.adapter = uniAdapter; -export { - UniAdapter, - axios_default as default -}; -//# sourceMappingURL=uniapp-axios-adapter.js.map diff --git a/unpackage/dist/cache/.vite/deps/uniapp-axios-adapter.js.map b/unpackage/dist/cache/.vite/deps/uniapp-axios-adapter.js.map deleted file mode 100644 index 86d1d6a..0000000 --- a/unpackage/dist/cache/.vite/deps/uniapp-axios-adapter.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../../node_modules/uniapp-axios-adapter/lib/index.esm.js"], - "sourcesContent": ["import axios from 'axios';\nexport { default } from 'axios';\n\nconst getResponse = (res, config) => {\n const { statusCode, errMsg } = res;\n const response = {\n ...res,\n status: statusCode,\n statusText: errMsg,\n config,\n request: null,\n };\n\n return response;\n};\n\nconst uniAdapter = (config) => {\n if (!uni) {\n throw new Error(\"please use this in uni-app project!\");\n }\n return new Promise((resolve, reject) => {\n const { baseURL, url, headers, data, params } = config;\n const uniConfig = {\n ...config,\n url: baseURL + url,\n header: headers,\n };\n\n if (data || params) {\n try {\n uniConfig.data = JSON.parse(data || params);\n } catch (e) {\n uniConfig.data = data || params;\n }\n }\n uni.request({\n ...uniConfig,\n success(res) {\n const response = getResponse(res, config);\n resolve(response);\n },\n fail(res) {\n const response = getResponse(res, config);\n reject(response);\n },\n });\n });\n};\n\nconst UniAdapter = uniAdapter;\n\naxios.defaults.adapter = uniAdapter;\n\nexport { UniAdapter };\n"], - "mappings": ";;;;;AAGA,IAAM,cAAc,CAAC,KAAK,WAAW;AACnC,QAAM,EAAE,YAAY,OAAO,IAAI;AAC/B,QAAM,WAAW;AAAA,IACf,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,EACX;AAEA,SAAO;AACT;AAEA,IAAM,aAAa,CAAC,WAAW;AAC7B,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AACA,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,EAAE,SAAS,KAAK,SAAS,MAAM,OAAO,IAAI;AAChD,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,KAAK,UAAU;AAAA,MACf,QAAQ;AAAA,IACV;AAEA,QAAI,QAAQ,QAAQ;AAClB,UAAI;AACF,kBAAU,OAAO,KAAK,MAAM,QAAQ,MAAM;AAAA,MAC5C,SAAS,GAAG;AACV,kBAAU,OAAO,QAAQ;AAAA,MAC3B;AAAA,IACF;AACA,QAAI,QAAQ;AAAA,MACV,GAAG;AAAA,MACH,QAAQ,KAAK;AACX,cAAM,WAAW,YAAY,KAAK,MAAM;AACxC,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,KAAK,KAAK;AACR,cAAM,WAAW,YAAY,KAAK,MAAM;AACxC,eAAO,QAAQ;AAAA,MACjB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAEA,IAAM,aAAa;AAEnB,cAAM,SAAS,UAAU;", - "names": [] -} diff --git a/unpackage/dist/cache/.vite/deps/uview-ui.js b/unpackage/dist/cache/.vite/deps/uview-ui.js new file mode 100644 index 0000000..3457315 --- /dev/null +++ b/unpackage/dist/cache/.vite/deps/uview-ui.js @@ -0,0 +1,1109 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/mixin/mixin.js +var require_mixin = __commonJS({ + "C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/mixin/mixin.js"(exports, module) { + module.exports = { + data() { + return {}; + }, + onLoad() { + this.$u.getRect = this.$uGetRect; + }, + methods: { + // 查询节点信息 + // 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21) + // 解决办法为在组件根部再套一个没有任何作用的view元素 + $uGetRect(selector, all) { + return new Promise((resolve) => { + uni.createSelectorQuery().in(this)[all ? "selectAll" : "select"](selector).boundingClientRect((rect) => { + if (all && Array.isArray(rect) && rect.length) { + resolve(rect); + } + if (!all && rect) { + resolve(rect); + } + }).exec(); + }); + }, + getParentData(parentName = "") { + if (!this.parent) + this.parent = false; + this.parent = this.$u.$parent.call(this, parentName); + if (this.parent) { + Object.keys(this.parentData).map((key) => { + this.parentData[key] = this.parent[key]; + }); + } + }, + // 阻止事件冒泡 + preventEvent(e) { + e && e.stopPropagation && e.stopPropagation(); + } + }, + onReachBottom() { + uni.$emit("uOnReachBottom"); + }, + beforeDestroy() { + if (this.parent && uni.$u.test.array(this.parent.children)) { + const childrenList = this.parent.children; + childrenList.map((child, index) => { + if (child === this) { + childrenList.splice(index, 1); + } + }); + } + } + }; + } +}); + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/index.js +var import_mixin = __toESM(require_mixin()); + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/deepClone.js +function deepClone(obj, cache = /* @__PURE__ */ new WeakMap()) { + if (obj === null || typeof obj !== "object") + return obj; + if (cache.has(obj)) + return cache.get(obj); + let clone; + if (obj instanceof Date) { + clone = new Date(obj.getTime()); + } else if (obj instanceof RegExp) { + clone = new RegExp(obj); + } else if (obj instanceof Map) { + clone = new Map(Array.from(obj, ([key, value]) => [key, deepClone(value, cache)])); + } else if (obj instanceof Set) { + clone = new Set(Array.from(obj, (value) => deepClone(value, cache))); + } else if (Array.isArray(obj)) { + clone = obj.map((value) => deepClone(value, cache)); + } else if (Object.prototype.toString.call(obj) === "[object Object]") { + clone = Object.create(Object.getPrototypeOf(obj)); + cache.set(obj, clone); + for (const [key, value] of Object.entries(obj)) { + clone[key] = deepClone(value, cache); + } + } else { + clone = Object.assign({}, obj); + } + cache.set(obj, clone); + return clone; +} +var deepClone_default = deepClone; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/deepMerge.js +function deepMerge(target = {}, source = {}) { + target = deepClone_default(target); + if (typeof target !== "object" || target === null || typeof source !== "object" || source === null) + return target; + const merged = Array.isArray(target) ? target.slice() : Object.assign({}, target); + for (const prop in source) { + if (!source.hasOwnProperty(prop)) + continue; + const sourceValue = source[prop]; + const targetValue = merged[prop]; + if (sourceValue instanceof Date) { + merged[prop] = new Date(sourceValue); + } else if (sourceValue instanceof RegExp) { + merged[prop] = new RegExp(sourceValue); + } else if (sourceValue instanceof Map) { + merged[prop] = new Map(sourceValue); + } else if (sourceValue instanceof Set) { + merged[prop] = new Set(sourceValue); + } else if (typeof sourceValue === "object" && sourceValue !== null) { + merged[prop] = deepMerge(targetValue, sourceValue); + } else { + merged[prop] = sourceValue; + } + } + return merged; +} +var deepMerge_default = deepMerge; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/test.js +function email(value) { + return /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/.test(value); +} +function mobile(value) { + return /^1[3-9]\d{9}$/.test(value); +} +function url(value) { + return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value); +} +function date(value) { + return !/Invalid|NaN/.test(new Date(value).toString()); +} +function dateISO(value) { + return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value); +} +function number(value) { + return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value); +} +function digits(value) { + return /^\d+$/.test(value); +} +function idCard(value) { + return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test( + value + ); +} +function carNo(value) { + const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/; + const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/; + if (value.length === 7) { + return creg.test(value); + } else if (value.length === 8) { + return xreg.test(value); + } else { + return false; + } +} +function amount(value) { + return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value); +} +function chinese(value) { + let reg = /^[\u4e00-\u9fa5]+$/gi; + return reg.test(value); +} +function letter(value) { + return /^[a-zA-Z]*$/.test(value); +} +function enOrNum(value) { + let reg = /^[0-9a-zA-Z]*$/g; + return reg.test(value); +} +function contains(value, param) { + return value.indexOf(param) >= 0; +} +function range(value, param) { + return value >= param[0] && value <= param[1]; +} +function rangeLength(value, param) { + return value.length >= param[0] && value.length <= param[1]; +} +function landline(value) { + let reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/; + return reg.test(value); +} +function empty(value) { + switch (typeof value) { + case "undefined": + return true; + case "string": + if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length == 0) + return true; + break; + case "boolean": + if (!value) + return true; + break; + case "number": + if (0 === value || isNaN(value)) + return true; + break; + case "object": + if (null === value || value.length === 0) + return true; + for (var i in value) { + return false; + } + return true; + } + return false; +} +function jsonString(value) { + if (typeof value == "string") { + try { + var obj = JSON.parse(value); + if (typeof obj == "object" && obj) { + return true; + } else { + return false; + } + } catch (e) { + return false; + } + } + return false; +} +function array(value) { + if (typeof Array.isArray === "function") { + return Array.isArray(value); + } else { + return Object.prototype.toString.call(value) === "[object Array]"; + } +} +function object(value) { + return Object.prototype.toString.call(value) === "[object Object]"; +} +function code(value, len = 6) { + return new RegExp(`^\\d{${len}}$`).test(value); +} +var test_default = { + email, + mobile, + url, + date, + dateISO, + number, + digits, + idCard, + carNo, + amount, + chinese, + letter, + enOrNum, + contains, + range, + rangeLength, + empty, + isEmpty: empty, + jsonString, + landline, + object, + array, + code +}; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/request/index.js +var Request = class { + // 设置全局默认配置 + setConfig(customConfig) { + this.config = deepMerge_default(this.config, customConfig); + } + // 主要请求部分 + request(options = {}) { + if (this.interceptor.request && typeof this.interceptor.request === "function") { + let tmpConfig = {}; + let interceptorRequest = this.interceptor.request(options); + if (interceptorRequest === false) { + return new Promise(() => { + }); + } + this.options = interceptorRequest; + } + options.dataType = options.dataType || this.config.dataType; + options.responseType = options.responseType || this.config.responseType; + options.url = options.url || ""; + options.params = options.params || {}; + options.header = Object.assign({}, this.config.header, options.header); + options.method = options.method || this.config.method; + return new Promise((resolve, reject) => { + options.complete = (response) => { + uni.hideLoading(); + clearTimeout(this.config.timer); + this.config.timer = null; + if (this.config.originalData) { + if (this.interceptor.response && typeof this.interceptor.response === "function") { + let resInterceptors = this.interceptor.response(response); + if (resInterceptors !== false) { + resolve(resInterceptors); + } else { + reject(response); + } + } else { + resolve(response); + } + } else { + if (response.statusCode == 200) { + if (this.interceptor.response && typeof this.interceptor.response === "function") { + let resInterceptors = this.interceptor.response(response.data); + if (resInterceptors !== false) { + resolve(resInterceptors); + } else { + reject(response.data); + } + } else { + resolve(response.data); + } + } else { + reject(response); + } + } + }; + options.url = test_default.url(options.url) ? options.url : this.config.baseUrl + (options.url.indexOf("/") == 0 ? options.url : "/" + options.url); + if (this.config.showLoading && !this.config.timer) { + this.config.timer = setTimeout(() => { + uni.showLoading({ + title: this.config.loadingText, + mask: this.config.loadingMask + }); + this.config.timer = null; + }, this.config.loadingTime); + } + uni.request(options); + }); + } + constructor() { + this.config = { + baseUrl: "", + // 请求的根域名 + // 默认的请求头 + header: {}, + method: "POST", + // 设置为json,返回后uni.request会对数据进行一次JSON.parse + dataType: "json", + // 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可 + responseType: "text", + showLoading: true, + // 是否显示请求中的loading + loadingText: "请求中...", + loadingTime: 800, + // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms + timer: null, + // 定时器 + originalData: false, + // 是否在拦截器中返回服务端的原始数据,见文档说明 + loadingMask: true + // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透 + }; + this.interceptor = { + // 请求前的拦截 + request: null, + // 请求后的拦截 + response: null + }; + this.get = (url2, data = {}, header = {}) => { + return this.request({ + method: "GET", + url: url2, + header, + data + }); + }; + this.post = (url2, data = {}, header = {}) => { + return this.request({ + url: url2, + method: "POST", + header, + data + }); + }; + this.put = (url2, data = {}, header = {}) => { + return this.request({ + url: url2, + method: "PUT", + header, + data + }); + }; + this.delete = (url2, data = {}, header = {}) => { + return this.request({ + url: url2, + method: "DELETE", + header, + data + }); + }; + } +}; +var request_default = new Request(); + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/queryParams.js +function queryParams(data = {}, isPrefix = true, arrayFormat = "brackets") { + let prefix = isPrefix ? "?" : ""; + let _result = []; + if (["indices", "brackets", "repeat", "comma"].indexOf(arrayFormat) == -1) + arrayFormat = "brackets"; + for (let key in data) { + let value = data[key]; + if (["", void 0, null].indexOf(value) >= 0) { + continue; + } + if (value.constructor === Array) { + switch (arrayFormat) { + case "indices": + for (let i = 0; i < value.length; i++) { + _result.push(key + "[" + i + "]=" + value[i]); + } + break; + case "brackets": + value.forEach((_value) => { + _result.push(key + "[]=" + _value); + }); + break; + case "repeat": + value.forEach((_value) => { + _result.push(key + "=" + _value); + }); + break; + case "comma": + let commaStr = ""; + value.forEach((_value) => { + commaStr += (commaStr ? "," : "") + _value; + }); + _result.push(key + "=" + commaStr); + break; + default: + value.forEach((_value) => { + _result.push(key + "[]=" + _value); + }); + } + } else { + _result.push(key + "=" + value); + } + } + return _result.length ? prefix + _result.join("&") : ""; +} +var queryParams_default = queryParams; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/route.js +var Router = class { + constructor() { + this.config = { + type: "navigateTo", + url: "", + delta: 1, + // navigateBack页面后退时,回退的层数 + params: {}, + // 传递的参数 + animationType: "pop-in", + // 窗口动画,只在APP有效 + animationDuration: 300, + // 窗口动画持续时间,单位毫秒,只在APP有效 + intercept: false + // 是否需要拦截 + }; + this.route = this.route.bind(this); + } + // 判断url前面是否有"/",如果没有则加上,否则无法跳转 + addRootPath(url2) { + return url2[0] === "/" ? url2 : `/${url2}`; + } + // 整合路由参数 + mixinParam(url2, params) { + url2 = url2 && this.addRootPath(url2); + let query = ""; + if (/.*\/.*\?.*=.*/.test(url2)) { + query = uni.$u.queryParams(params, false); + return url2 += "&" + query; + } else { + query = uni.$u.queryParams(params); + return url2 += query; + } + } + // 对外的方法名称 + async route(options = {}, params = {}) { + let mergeConfig = {}; + if (typeof options === "string") { + mergeConfig.url = this.mixinParam(options, params); + mergeConfig.type = "navigateTo"; + } else { + mergeConfig = uni.$u.deepMerge(this.config, options); + mergeConfig.url = this.mixinParam(options.url, options.params); + } + if (params.intercept) { + this.config.intercept = params.intercept; + } + mergeConfig.params = params; + mergeConfig = uni.$u.deepMerge(this.config, mergeConfig); + if (typeof uni.$u.routeIntercept === "function") { + const isNext = await new Promise((resolve, reject) => { + uni.$u.routeIntercept(mergeConfig, resolve); + }); + isNext && this.openPage(mergeConfig); + } else { + this.openPage(mergeConfig); + } + } + // 执行路由跳转 + openPage(config) { + const { + url: url2, + type, + delta, + animationType, + animationDuration + } = config; + if (config.type == "navigateTo" || config.type == "to") { + uni.navigateTo({ + url: url2, + animationType, + animationDuration + }); + } + if (config.type == "redirectTo" || config.type == "redirect") { + uni.redirectTo({ + url: url2 + }); + } + if (config.type == "switchTab" || config.type == "tab") { + uni.switchTab({ + url: url2 + }); + } + if (config.type == "reLaunch" || config.type == "launch") { + uni.reLaunch({ + url: url2 + }); + } + if (config.type == "navigateBack" || config.type == "back") { + uni.navigateBack({ + delta + }); + } + } +}; +var route_default = new Router().route; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/timeFormat.js +if (!String.prototype.padStart) { + String.prototype.padStart = function(maxLength, fillString = " ") { + if (Object.prototype.toString.call(fillString) !== "[object String]") + throw new TypeError( + "fillString must be String" + ); + let str = this; + if (str.length >= maxLength) + return String(str); + let fillLength = maxLength - str.length, times = Math.ceil(fillLength / fillString.length); + while (times >>= 1) { + fillString += fillString; + if (times === 1) { + fillString += fillString; + } + } + return fillString.slice(0, fillLength) + str; + }; +} +function timeFormat(dateTime = null, fmt = "yyyy-mm-dd") { + if (!dateTime) + dateTime = Number(/* @__PURE__ */ new Date()); + if (dateTime.toString().length == 10) + dateTime *= 1e3; + let date2 = new Date(dateTime); + let ret; + let opt = { + "y+": date2.getFullYear().toString(), + // 年 + "m+": (date2.getMonth() + 1).toString(), + // 月 + "d+": date2.getDate().toString(), + // 日 + "h+": date2.getHours().toString(), + // 时 + "M+": date2.getMinutes().toString(), + // 分 + "s+": date2.getSeconds().toString() + // 秒 + // 有其他格式化字符需求可以继续添加,必须转化成字符串 + }; + for (let k in opt) { + ret = new RegExp("(" + k + ")").exec(fmt); + if (ret) { + fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")); + } + ; + } + ; + return fmt; +} +var timeFormat_default = timeFormat; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/timeFrom.js +function timeFrom(dateTime = null, format = "yyyy-mm-dd") { + if (!dateTime) + dateTime = Number(/* @__PURE__ */ new Date()); + if (dateTime.toString().length == 10) + dateTime *= 1e3; + let timestamp = +new Date(Number(dateTime)); + let timer2 = (Number(/* @__PURE__ */ new Date()) - timestamp) / 1e3; + let tips = ""; + switch (true) { + case timer2 < 300: + tips = "刚刚"; + break; + case (timer2 >= 300 && timer2 < 3600): + tips = parseInt(timer2 / 60) + "分钟前"; + break; + case (timer2 >= 3600 && timer2 < 86400): + tips = parseInt(timer2 / 3600) + "小时前"; + break; + case (timer2 >= 86400 && timer2 < 2592e3): + tips = parseInt(timer2 / 86400) + "天前"; + break; + default: + if (format === false) { + if (timer2 >= 2592e3 && timer2 < 365 * 86400) { + tips = parseInt(timer2 / (86400 * 30)) + "个月前"; + } else { + tips = parseInt(timer2 / (86400 * 365)) + "年前"; + } + } else { + tips = timeFormat_default(timestamp, format); + } + } + return tips; +} +var timeFrom_default = timeFrom; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/colorGradient.js +function colorGradient(startColor = "rgb(0, 0, 0)", endColor = "rgb(255, 255, 255)", step = 10) { + let startRGB = hexToRgb(startColor, false); + let startR = startRGB[0]; + let startG = startRGB[1]; + let startB = startRGB[2]; + let endRGB = hexToRgb(endColor, false); + let endR = endRGB[0]; + let endG = endRGB[1]; + let endB = endRGB[2]; + let sR = (endR - startR) / step; + let sG = (endG - startG) / step; + let sB = (endB - startB) / step; + let colorArr = []; + for (let i = 0; i < step; i++) { + let hex = rgbToHex("rgb(" + Math.round(sR * i + startR) + "," + Math.round(sG * i + startG) + "," + Math.round(sB * i + startB) + ")"); + colorArr.push(hex); + } + return colorArr; +} +function hexToRgb(sColor, str = true) { + let reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + sColor = sColor.toLowerCase(); + if (sColor && reg.test(sColor)) { + if (sColor.length === 4) { + let sColorNew = "#"; + for (let i = 1; i < 4; i += 1) { + sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)); + } + sColor = sColorNew; + } + let sColorChange = []; + for (let i = 1; i < 7; i += 2) { + sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2))); + } + if (!str) { + return sColorChange; + } else { + return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`; + } + } else if (/^(rgb|RGB)/.test(sColor)) { + let arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); + return arr.map((val) => Number(val)); + } else { + return sColor; + } +} +function rgbToHex(rgb) { + let _this = rgb; + let reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + if (/^(rgb|RGB)/.test(_this)) { + let aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); + let strHex = "#"; + for (let i = 0; i < aColor.length; i++) { + let hex = Number(aColor[i]).toString(16); + hex = String(hex).length == 1 ? "0" + hex : hex; + if (hex === "0") { + hex += hex; + } + strHex += hex; + } + if (strHex.length !== 7) { + strHex = _this; + } + return strHex; + } else if (reg.test(_this)) { + let aNum = _this.replace(/#/, "").split(""); + if (aNum.length === 6) { + return _this; + } else if (aNum.length === 3) { + let numHex = "#"; + for (let i = 0; i < aNum.length; i += 1) { + numHex += aNum[i] + aNum[i]; + } + return numHex; + } + } else { + return _this; + } +} +function colorToRgba(color2, alpha = 0.3) { + color2 = rgbToHex(color2); + var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + let sColor = color2.toLowerCase(); + if (sColor && reg.test(sColor)) { + if (sColor.length === 4) { + var sColorNew = "#"; + for (let i = 1; i < 4; i += 1) { + sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)); + } + sColor = sColorNew; + } + var sColorChange = []; + for (let i = 1; i < 7; i += 2) { + sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2))); + } + return "rgba(" + sColorChange.join(",") + "," + alpha + ")"; + } else { + return sColor; + } +} +var colorGradient_default = { + colorGradient, + hexToRgb, + rgbToHex, + colorToRgba +}; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/guid.js +function guid(len = 32, firstU = true, radix = null) { + let chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""); + let uuid = []; + radix = radix || chars.length; + if (len) { + for (let i = 0; i < len; i++) + uuid[i] = chars[0 | Math.random() * radix]; + } else { + let r; + uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-"; + uuid[14] = "4"; + for (let i = 0; i < 36; i++) { + if (!uuid[i]) { + r = 0 | Math.random() * 16; + uuid[i] = chars[i == 19 ? r & 3 | 8 : r]; + } + } + } + if (firstU) { + uuid.shift(); + return "u" + uuid.join(""); + } else { + return uuid.join(""); + } +} +var guid_default = guid; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/color.js +var color = { + primary: "#2979ff", + primaryDark: "#2b85e4", + primaryDisabled: "#a0cfff", + primaryLight: "#ecf5ff", + bgColor: "#f3f4f6", + info: "#909399", + infoDark: "#82848a", + infoDisabled: "#c8c9cc", + infoLight: "#f4f4f5", + warning: "#ff9900", + warningDark: "#f29100", + warningDisabled: "#fcbd71", + warningLight: "#fdf6ec", + error: "#fa3534", + errorDark: "#dd6161", + errorDisabled: "#fab6b6", + errorLight: "#fef0f0", + success: "#19be6b", + successDark: "#18b566", + successDisabled: "#71d5a1", + successLight: "#dbf1e1", + mainColor: "#303133", + contentColor: "#606266", + tipsColor: "#909399", + lightColor: "#c0c4cc", + borderColor: "#e4e7ed" +}; +var color_default = color; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/type2icon.js +function type2icon(type = "success", fill = false) { + if (["primary", "info", "error", "warning", "success"].indexOf(type) == -1) + type = "success"; + let iconName = ""; + switch (type) { + case "primary": + iconName = "info-circle"; + break; + case "info": + iconName = "info-circle"; + break; + case "error": + iconName = "close-circle"; + break; + case "warning": + iconName = "error-circle"; + break; + case "success": + iconName = "checkmark-circle"; + break; + default: + iconName = "checkmark-circle"; + } + if (fill) + iconName += "-fill"; + return iconName; +} +var type2icon_default = type2icon; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/randomArray.js +function randomArray(array2 = []) { + return array2.sort(() => Math.random() - 0.5); +} +var randomArray_default = randomArray; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/addUnit.js +function addUnit(value = "auto", unit = "rpx") { + value = String(value); + return test_default.number(value) ? `${value}${unit}` : value; +} + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/random.js +function random(min, max) { + if (min >= 0 && max > 0 && max >= min) { + let gab = max - min + 1; + return Math.floor(Math.random() * gab + min); + } else { + return 0; + } +} +var random_default = random; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/trim.js +function trim(str, pos = "both") { + if (pos == "both") { + return str.replace(/^\s+|\s+$/g, ""); + } else if (pos == "left") { + return str.replace(/^\s*/, ""); + } else if (pos == "right") { + return str.replace(/(\s*$)/g, ""); + } else if (pos == "all") { + return str.replace(/\s+/g, ""); + } else { + return str; + } +} +var trim_default = trim; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/toast.js +function toast(title, duration = 1500) { + uni.showToast({ + title, + icon: "none", + duration + }); +} +var toast_default = toast; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/getParent.js +function getParent(name, keys) { + let parent = this.$parent; + while (parent) { + if (parent.$options.name !== name) { + parent = parent.$parent; + } else { + let data = {}; + if (Array.isArray(keys)) { + keys.map((val) => { + data[val] = parent[val] ? parent[val] : ""; + }); + } else { + for (let i in keys) { + if (Array.isArray(keys[i])) { + if (keys[i].length) { + data[i] = keys[i]; + } else { + data[i] = parent[i]; + } + } else if (keys[i].constructor === Object) { + if (Object.keys(keys[i]).length) { + data[i] = keys[i]; + } else { + data[i] = parent[i]; + } + } else { + data[i] = keys[i] || keys[i] === false ? keys[i] : parent[i]; + } + } + } + return data; + } + } + return {}; +} + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/$parent.js +function $parent(name = void 0) { + let parent = this.$parent; + while (parent) { + if (parent.$options && parent.$options.name !== name) { + parent = parent.$parent; + } else { + return parent; + } + } + return false; +} + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/sys.js +function os() { + return uni.getSystemInfoSync().platform; +} +function sys() { + return uni.getSystemInfoSync(); +} + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/debounce.js +var timeout = null; +function debounce(func, wait = 500, immediate = false) { + if (timeout !== null) + clearTimeout(timeout); + if (immediate) { + var callNow = !timeout; + timeout = setTimeout(function() { + timeout = null; + }, wait); + if (callNow) + typeof func === "function" && func(); + } else { + timeout = setTimeout(function() { + typeof func === "function" && func(); + }, wait); + } +} +var debounce_default = debounce; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/function/throttle.js +var timer; +var flag; +function throttle(func, wait = 500, immediate = true) { + if (immediate) { + if (!flag) { + flag = true; + typeof func === "function" && func(); + timer = setTimeout(() => { + flag = false; + }, wait); + } + } else { + if (!flag) { + flag = true; + timer = setTimeout(() => { + flag = false; + typeof func === "function" && func(); + }, wait); + } + } +} +var throttle_default = throttle; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/config/config.js +var version = "1.8.8"; +var config_default = { + v: version, + version, + // 主题名称 + type: [ + "primary", + "success", + "info", + "error", + "warning" + ] +}; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/libs/config/zIndex.js +var zIndex_default = { + toast: 10090, + noNetwork: 10080, + // popup包含popup,actionsheet,keyboard,picker的值 + popup: 10075, + mask: 10070, + navbar: 980, + topTips: 975, + sticky: 970, + indexListSticky: 965 +}; + +// C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/node_modules/uview-ui/index.js +function wranning(str) { + if (true) { + console.warn(str); + } +} +var $u = { + queryParams: queryParams_default, + route: route_default, + timeFormat: timeFormat_default, + date: timeFormat_default, + // 另名date + timeFrom: timeFrom_default, + colorGradient: colorGradient_default.colorGradient, + colorToRgba: colorGradient_default.colorToRgba, + guid: guid_default, + color: color_default, + sys, + os, + type2icon: type2icon_default, + randomArray: randomArray_default, + wranning, + get: request_default.get, + post: request_default.post, + put: request_default.put, + "delete": request_default.delete, + hexToRgb: colorGradient_default.hexToRgb, + rgbToHex: colorGradient_default.rgbToHex, + test: test_default, + random: random_default, + deepClone: deepClone_default, + deepMerge: deepMerge_default, + getParent, + $parent, + addUnit, + trim: trim_default, + type: ["primary", "success", "error", "warning", "info"], + http: request_default, + toast: toast_default, + config: config_default, + // uView配置信息相关,比如版本号 + zIndex: zIndex_default, + debounce: debounce_default, + throttle: throttle_default +}; +uni.$u = $u; +var install = (Vue) => { + Vue.mixin(import_mixin.default); + if (Vue.prototype.openShare) { + Vue.mixin(mpShare); + } + Vue.filter("timeFormat", (timestamp, format) => { + return timeFormat_default(timestamp, format); + }); + Vue.filter("date", (timestamp, format) => { + return timeFormat_default(timestamp, format); + }); + Vue.filter("timeFrom", (timestamp, format) => { + return timeFrom_default(timestamp, format); + }); + Vue.prototype.$u = $u; +}; +var uview_ui_default = { + install +}; +export { + uview_ui_default as default +}; +//# sourceMappingURL=uview-ui.js.map diff --git a/unpackage/dist/cache/.vite/deps/uview-ui.js.map b/unpackage/dist/cache/.vite/deps/uview-ui.js.map new file mode 100644 index 0000000..358d107 --- /dev/null +++ b/unpackage/dist/cache/.vite/deps/uview-ui.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../../node_modules/uview-ui/libs/mixin/mixin.js", "../../../../../node_modules/uview-ui/index.js", "../../../../../node_modules/uview-ui/libs/function/deepClone.js", "../../../../../node_modules/uview-ui/libs/function/deepMerge.js", "../../../../../node_modules/uview-ui/libs/function/test.js", "../../../../../node_modules/uview-ui/libs/request/index.js", "../../../../../node_modules/uview-ui/libs/function/queryParams.js", "../../../../../node_modules/uview-ui/libs/function/route.js", "../../../../../node_modules/uview-ui/libs/function/timeFormat.js", "../../../../../node_modules/uview-ui/libs/function/timeFrom.js", "../../../../../node_modules/uview-ui/libs/function/colorGradient.js", "../../../../../node_modules/uview-ui/libs/function/guid.js", "../../../../../node_modules/uview-ui/libs/function/color.js", "../../../../../node_modules/uview-ui/libs/function/type2icon.js", "../../../../../node_modules/uview-ui/libs/function/randomArray.js", "../../../../../node_modules/uview-ui/libs/function/addUnit.js", "../../../../../node_modules/uview-ui/libs/function/random.js", "../../../../../node_modules/uview-ui/libs/function/trim.js", "../../../../../node_modules/uview-ui/libs/function/toast.js", "../../../../../node_modules/uview-ui/libs/function/getParent.js", "../../../../../node_modules/uview-ui/libs/function/$parent.js", "../../../../../node_modules/uview-ui/libs/function/sys.js", "../../../../../node_modules/uview-ui/libs/function/debounce.js", "../../../../../node_modules/uview-ui/libs/function/throttle.js", "../../../../../node_modules/uview-ui/libs/config/config.js", "../../../../../node_modules/uview-ui/libs/config/zIndex.js"], + "sourcesContent": ["module.exports = {\n\tdata() {\n\t\treturn {}\n\t},\n\tonLoad() {\n\t\t// getRect挂载到$u上,因为这方法需要使用in(this),所以无法把它独立成一个单独的文件导出\n\t\tthis.$u.getRect = this.$uGetRect\n\t},\n\tmethods: {\n\t\t// 查询节点信息\n\t\t// 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21)\n\t\t// 解决办法为在组件根部再套一个没有任何作用的view元素\n\t\t$uGetRect(selector, all) {\n\t\t\treturn new Promise(resolve => {\n\t\t\t\tuni.createSelectorQuery().\n\t\t\t\tin(this)[all ? 'selectAll' : 'select'](selector)\n\t\t\t\t\t.boundingClientRect(rect => {\n\t\t\t\t\t\tif (all && Array.isArray(rect) && rect.length) {\n\t\t\t\t\t\t\tresolve(rect)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!all && rect) {\n\t\t\t\t\t\t\tresolve(rect)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.exec()\n\t\t\t})\n\t\t},\n\t\tgetParentData(parentName = '') {\n\t\t\t// 避免在created中去定义parent变量\n\t\t\tif(!this.parent) this.parent = false;\n\t\t\t// 这里的本质原理是,通过获取父组件实例(也即u-radio-group的this)\n\t\t\t// 将父组件this中对应的参数,赋值给本组件(u-radio的this)的parentData对象中对应的属性\n\t\t\t// 之所以需要这么做,是因为所有端中,头条小程序不支持通过this.parent.xxx去监听父组件参数的变化\n\t\t\tthis.parent = this.$u.$parent.call(this, parentName);\n\t\t\tif(this.parent) {\n\t\t\t\t// 历遍parentData中的属性,将parent中的同名属性赋值给parentData\n\t\t\t\tObject.keys(this.parentData).map(key => {\n\t\t\t\t\tthis.parentData[key] = this.parent[key];\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// 阻止事件冒泡\n\t\tpreventEvent(e) {\n\t\t\te && e.stopPropagation && e.stopPropagation()\n\t\t}\n\t},\n\tonReachBottom() {\n\t\tuni.$emit('uOnReachBottom')\n\t},\n\tbeforeDestroy() {\n\t\t// 判断当前页面是否存在parent和children,一般在checkbox和checkbox-group父子联动的场景会有此情况\n\t\t// 组件销毁时,移除子组件在父组件children数组中的实例,释放资源,避免数据混乱\n\t\tif(this.parent && uni.$u.test.array(this.parent.children)) {\n\t\t\t// 组件销毁时,移除父组件中的children数组中对应的实例\n\t\t\tconst childrenList = this.parent.children\n\t\t\tchildrenList.map((child, index) => {\n\t\t\t\t// 如果相等,则移除\n\t\t\t\tif(child === this) {\n\t\t\t\t\tchildrenList.splice(index, 1)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n}\n", "// 引入全局mixin\nimport mixin from './libs/mixin/mixin.js'\n// 引入关于是否mixin集成小程序分享的配置\n// import wxshare from './libs/mixin/mpShare.js'\n// 全局挂载引入http相关请求拦截插件\nimport http from './libs/request'\n\nfunction wranning(str) {\n\t// 开发环境进行信息输出,主要是一些报错信息\n\t// 这个环境的来由是在程序编写时候,点击hx编辑器运行调试代码的时候,详见:\n\t// \thttps://uniapp.dcloud.io/frame?id=%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e5%92%8c%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83\n\tif (process.env.NODE_ENV === 'development') {\n\t\tconsole.warn(str)\n\t}\n}\n\n// 尝试判断在根目录的/store中是否有$u.mixin.js,此文件uView默认为需要挂在到全局的vuex的state变量\n// HX2.6.11版本,放到try中,控制台依然会警告,暂时不用此方式,\n// let vuexStore = {};\n// try {\n// \tvuexStore = require(\"@/store/$u.mixin.js\");\n// } catch (e) {\n// \t//TODO handle the exception\n// }\n\n// post类型对象参数转为get类型url参数\nimport queryParams from './libs/function/queryParams.js'\n// 路由封装\nimport route from './libs/function/route.js'\n// 时间格式化\nimport timeFormat from './libs/function/timeFormat.js'\n// 时间戳格式化,返回多久之前\nimport timeFrom from './libs/function/timeFrom.js'\n// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制\nimport colorGradient from './libs/function/colorGradient.js'\n// 生成全局唯一guid字符串\nimport guid from './libs/function/guid.js'\n// 主题相关颜色,info|success|warning|primary|default|error,此颜色已在uview.scss中定义,但是为js中也能使用,故也定义一份\nimport color from './libs/function/color.js'\n// 根据type获取图标名称\nimport type2icon from './libs/function/type2icon.js'\n// 打乱数组的顺序\nimport randomArray from './libs/function/randomArray.js'\n// 对象和数组的深度克隆\nimport deepClone from './libs/function/deepClone.js'\n// 对象深度拷贝\nimport deepMerge from './libs/function/deepMerge.js'\n// 添加单位\nimport addUnit from './libs/function/addUnit.js'\n\n// 规则检验\nimport test from './libs/function/test.js'\n// 随机数\nimport random from './libs/function/random.js'\n// 去除空格\nimport trim from './libs/function/trim.js'\n// toast提示,对uni.showToast的封装\nimport toast from './libs/function/toast.js'\n// 获取父组件参数\nimport getParent from './libs/function/getParent.js'\n// 获取整个父组件\nimport $parent from './libs/function/$parent.js'\n// 获取sys()和os()工具方法\n// 获取设备信息,挂载到$u的sys()(system的缩写)属性中,\n// 同时把安卓和ios平台的名称\"ios\"和\"android\"挂到$u.os()中,方便取用\nimport {sys, os} from './libs/function/sys.js'\n// 防抖方法\nimport debounce from './libs/function/debounce.js'\n// 节流方法\nimport throttle from './libs/function/throttle.js'\n\n\n// 配置信息\nimport config from './libs/config/config.js'\n// 各个需要fixed的地方的z-index配置文件\nimport zIndex from './libs/config/zIndex.js'\n\nconst $u = {\n\tqueryParams: queryParams,\n\troute: route,\n\ttimeFormat: timeFormat,\n\tdate: timeFormat, // 另名date\n\ttimeFrom,\n\tcolorGradient: colorGradient.colorGradient,\n\tcolorToRgba: colorGradient.colorToRgba,\n\tguid,\n\tcolor,\n\tsys,\n\tos,\n\ttype2icon,\n\trandomArray,\n\twranning,\n\tget: http.get,\n\tpost: http.post,\n\tput: http.put,\n\t'delete': http.delete,\n\thexToRgb: colorGradient.hexToRgb,\n\trgbToHex: colorGradient.rgbToHex,\n\ttest,\n\trandom,\n\tdeepClone,\n\tdeepMerge,\n\tgetParent,\n\t$parent,\n\taddUnit,\n\ttrim,\n\ttype: ['primary', 'success', 'error', 'warning', 'info'],\n\thttp,\n\ttoast,\n\tconfig, // uView配置信息相关,比如版本号\n\tzIndex,\n\tdebounce,\n\tthrottle,\n}\n\n// $u挂载到uni对象上\nuni.$u = $u\n\nconst install = Vue => {\n\tVue.mixin(mixin) \n\tif (Vue.prototype.openShare) {\n\t\tVue.mixin(mpShare);\n\t}\n\t// Vue.mixin(vuexStore);\n\t// 时间格式化,同时两个名称,date和timeFormat\n\tVue.filter('timeFormat', (timestamp, format) => {\n\t\treturn timeFormat(timestamp, format)\n\t})\n\tVue.filter('date', (timestamp, format) => {\n\t\treturn timeFormat(timestamp, format)\n\t})\n\t// 将多久以前的方法,注入到全局过滤器\n\tVue.filter('timeFrom', (timestamp, format) => {\n\t\treturn timeFrom(timestamp, format)\n\t})\n\tVue.prototype.$u = $u\n}\n\nexport default {\n\tinstall\n}", "// 判断arr是否为一个数组,返回一个bool值\nfunction isArray(arr) {\n\treturn Object.prototype.toString.call(arr) === '[object Array]';\n}\n\n// 深度克隆\nfunction deepClone(obj, cache = new WeakMap()) {\n\tif (obj === null || typeof obj !== 'object') return obj;\n\tif (cache.has(obj)) return cache.get(obj);\n\tlet clone;\n\tif (obj instanceof Date) {\n\t\tclone = new Date(obj.getTime());\n\t} else if (obj instanceof RegExp) {\n\t\tclone = new RegExp(obj);\n\t} else if (obj instanceof Map) {\n\t\tclone = new Map(Array.from(obj, ([key, value]) => [key, deepClone(value, cache)]));\n\t} else if (obj instanceof Set) {\n\t\tclone = new Set(Array.from(obj, value => deepClone(value, cache)));\n\t} else if (Array.isArray(obj)) {\n\t\tclone = obj.map(value => deepClone(value, cache));\n\t} else if (Object.prototype.toString.call(obj) === '[object Object]') {\n\t\tclone = Object.create(Object.getPrototypeOf(obj));\n\t\tcache.set(obj, clone);\n\t\tfor (const [key, value] of Object.entries(obj)) {\n\t\t\tclone[key] = deepClone(value, cache);\n\t\t}\n\t} else {\n\t\tclone = Object.assign({}, obj);\n\t}\n\tcache.set(obj, clone);\n\treturn clone;\n}\n\n\nexport default deepClone;\n", "import deepClone from \"./deepClone\";\n\n// JS对象深度合并\nfunction deepMerge(target = {}, source = {}) {\n\ttarget = deepClone(target);\n\tif (typeof target !== 'object' || target === null || typeof source !== 'object' || source === null) return target;\n\tconst merged = Array.isArray(target) ? target.slice() : Object.assign({}, target);\n\tfor (const prop in source) {\n\t\tif (!source.hasOwnProperty(prop)) continue;\n\t\tconst sourceValue = source[prop];\n\t\tconst targetValue = merged[prop];\n\t\tif (sourceValue instanceof Date) {\n\t\t\tmerged[prop] = new Date(sourceValue);\n\t\t} else if (sourceValue instanceof RegExp) {\n\t\t\tmerged[prop] = new RegExp(sourceValue);\n\t\t} else if (sourceValue instanceof Map) {\n\t\t\tmerged[prop] = new Map(sourceValue);\n\t\t} else if (sourceValue instanceof Set) {\n\t\t\tmerged[prop] = new Set(sourceValue);\n\t\t} else if (typeof sourceValue === 'object' && sourceValue !== null) {\n\t\t\tmerged[prop] = deepMerge(targetValue, sourceValue);\n\t\t} else {\n\t\t\tmerged[prop] = sourceValue;\n\t\t}\n\t}\n\treturn merged;\n}\n\nexport default deepMerge;\n", "/**\n * 验证电子邮箱格式\n */\nfunction email(value) {\n\treturn /[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/.test(value);\n}\n\n/**\n * 验证手机格式\n */\nfunction mobile(value) {\n\treturn /^1[3-9]\\d{9}$/.test(value)\n}\n\n/**\n * 验证URL格式\n */\nfunction url(value) {\n\treturn /http(s)?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w-.\\/?%&=]*)?/.test(value)\n}\n\n/**\n * 验证日期格式\n */\nfunction date(value) {\n\treturn !/Invalid|NaN/.test(new Date(value).toString())\n}\n\n/**\n * 验证ISO类型的日期格式\n */\nfunction dateISO(value) {\n\treturn /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)\n}\n\n/**\n * 验证十进制数字\n */\nfunction number(value) {\n\treturn /^[\\+-]?(\\d+\\.?\\d*|\\.\\d+|\\d\\.\\d+e\\+\\d+)$/.test(value)\n}\n\n/**\n * 验证整数\n */\nfunction digits(value) {\n\treturn /^\\d+$/.test(value)\n}\n\n/**\n * 验证身份证号码\n */\nfunction idCard(value) {\n\treturn /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/.test(\n\t\tvalue)\n}\n\n/**\n * 是否车牌号\n */\nfunction carNo(value) {\n\t// 新能源车牌\n\tconst xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;\n\t// 旧车牌\n\tconst creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;\n\tif (value.length === 7) {\n\t\treturn creg.test(value);\n\t} else if (value.length === 8) {\n\t\treturn xreg.test(value);\n\t} else {\n\t\treturn false;\n\t}\n}\n\n/**\n * 金额,只允许2位小数\n */\nfunction amount(value) {\n\t//金额,只允许保留两位小数\n\treturn /^[1-9]\\d*(,\\d{3})*(\\.\\d{1,2})?$|^0\\.\\d{1,2}$/.test(value);\n}\n\n/**\n * 中文\n */\nfunction chinese(value) {\n\tlet reg = /^[\\u4e00-\\u9fa5]+$/gi;\n\treturn reg.test(value);\n}\n\n/**\n * 只能输入字母\n */\nfunction letter(value) {\n\treturn /^[a-zA-Z]*$/.test(value);\n}\n\n/**\n * 只能是字母或者数字\n */\nfunction enOrNum(value) {\n\t//英文或者数字\n\tlet reg = /^[0-9a-zA-Z]*$/g;\n\treturn reg.test(value);\n}\n\n/**\n * 验证是否包含某个值\n */\nfunction contains(value, param) {\n\treturn value.indexOf(param) >= 0\n}\n\n/**\n * 验证一个值范围[min, max]\n */\nfunction range(value, param) {\n\treturn value >= param[0] && value <= param[1]\n}\n\n/**\n * 验证一个长度范围[min, max]\n */\nfunction rangeLength(value, param) {\n\treturn value.length >= param[0] && value.length <= param[1]\n}\n\n/**\n * 是否固定电话\n */\nfunction landline(value) {\n\tlet reg = /^\\d{3,4}-\\d{7,8}(-\\d{3,4})?$/;\n\treturn reg.test(value);\n}\n\n/**\n * 判断是否为空\n */\nfunction empty(value) {\n\tswitch (typeof value) {\n\t\tcase 'undefined':\n\t\t\treturn true;\n\t\tcase 'string':\n\t\t\tif (value.replace(/(^[ \\t\\n\\r]*)|([ \\t\\n\\r]*$)/g, '').length == 0) return true;\n\t\t\tbreak;\n\t\tcase 'boolean':\n\t\t\tif (!value) return true;\n\t\t\tbreak;\n\t\tcase 'number':\n\t\t\tif (0 === value || isNaN(value)) return true;\n\t\t\tbreak;\n\t\tcase 'object':\n\t\t\tif (null === value || value.length === 0) return true;\n\t\t\tfor (var i in value) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * 是否json字符串\n */\nfunction jsonString(value) {\n\tif (typeof value == 'string') {\n\t\ttry {\n\t\t\tvar obj = JSON.parse(value);\n\t\t\tif (typeof obj == 'object' && obj) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n/**\n * 是否数组\n */\nfunction array(value) {\n\tif (typeof Array.isArray === \"function\") {\n\t\treturn Array.isArray(value);\n\t} else {\n\t\treturn Object.prototype.toString.call(value) === \"[object Array]\";\n\t}\n}\n\n/**\n * 是否对象\n */\nfunction object(value) {\n\treturn Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * 是否短信验证码\n */\nfunction code(value, len = 6) {\n\treturn new RegExp(`^\\\\d{${len}}$`).test(value);\n}\n\n\nexport default {\n\temail,\n\tmobile,\n\turl,\n\tdate,\n\tdateISO,\n\tnumber,\n\tdigits,\n\tidCard,\n\tcarNo,\n\tamount,\n\tchinese,\n\tletter,\n\tenOrNum,\n\tcontains,\n\trange,\n\trangeLength,\n\tempty,\n\tisEmpty: empty,\n\tjsonString,\n\tlandline,\n\tobject,\n\tarray,\n\tcode\n}\n", "import deepMerge from \"../function/deepMerge\";\nimport validate from \"../function/test\";\nclass Request {\n\t// 设置全局默认配置\n\tsetConfig(customConfig) {\n\t\t// 深度合并对象,否则会造成对象深层属性丢失\n\t\tthis.config = deepMerge(this.config, customConfig);\n\t}\n\n\t// 主要请求部分\n\trequest(options = {}) {\n\t\t// 检查请求拦截\n\t\tif (this.interceptor.request && typeof this.interceptor.request === 'function') {\n\t\t\tlet tmpConfig = {};\n\t\t\tlet interceptorRequest = this.interceptor.request(options);\n\t\t\tif (interceptorRequest === false) {\n\t\t\t\t// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调\n\t\t\t\treturn new Promise(()=>{});\n\t\t\t}\n\t\t\tthis.options = interceptorRequest;\n\t\t}\n\t\toptions.dataType = options.dataType || this.config.dataType;\n\t\toptions.responseType = options.responseType || this.config.responseType;\n\t\toptions.url = options.url || '';\n\t\toptions.params = options.params || {};\n\t\toptions.header = Object.assign({}, this.config.header, options.header);\n\t\toptions.method = options.method || this.config.method;\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\toptions.complete = (response) => {\n\t\t\t\t// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)\n\t\t\t\tuni.hideLoading();\n\t\t\t\t// 清除定时器,如果请求回来了,就无需loading\n\t\t\t\tclearTimeout(this.config.timer);\n\t\t\t\tthis.config.timer = null;\n\t\t\t\t// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data\n\t\t\t\tif(this.config.originalData) {\n\t\t\t\t\t// 判断是否存在拦截器\n\t\t\t\t\tif (this.interceptor.response && typeof this.interceptor.response === 'function') {\n\t\t\t\t\t\tlet resInterceptors = this.interceptor.response(response);\n\t\t\t\t\t\t// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调\n\t\t\t\t\t\tif (resInterceptors !== false) {\n\t\t\t\t\t\t\tresolve(resInterceptors);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调\n\t\t\t\t\t\t\treject(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (response.statusCode == 200) {\n\t\t\t\t\t\tif (this.interceptor.response && typeof this.interceptor.response === 'function') {\n\t\t\t\t\t\t\tlet resInterceptors = this.interceptor.response(response.data);\n\t\t\t\t\t\t\tif (resInterceptors !== false) {\n\t\t\t\t\t\t\t\tresolve(resInterceptors);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treject(response.data);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调\n\t\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示\n\t\t\t\t\t\t// if(response.errMsg) {\n\t\t\t\t\t\t// \tuni.showModal({\n\t\t\t\t\t\t// \t\ttitle: response.errMsg\n\t\t\t\t\t\t// \t});\n\t\t\t\t\t\t// }\n\t\t\t\t\t\treject(response)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法\n\t\t\toptions.url = validate.url(options.url) ? options.url : (this.config.baseUrl + (options.url.indexOf('/') == 0 ?\n\t\t\t\toptions.url : '/' + options.url));\n\t\t\t\n\t\t\t// 是否显示loading\n\t\t\t// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id\n\t\t\t// 而没有清除前者的定时器,导致前者超时,一直显示loading\n\t\t\tif(this.config.showLoading && !this.config.timer) {\n\t\t\t\tthis.config.timer = setTimeout(() => {\n\t\t\t\t\tuni.showLoading({\n\t\t\t\t\t\ttitle: this.config.loadingText,\n\t\t\t\t\t\tmask: this.config.loadingMask\n\t\t\t\t\t})\n\t\t\t\t\tthis.config.timer = null;\n\t\t\t\t}, this.config.loadingTime);\n\t\t\t}\n\t\t\tuni.request(options);\n\t\t})\n\t\t// .catch(res => {\n\t\t// \t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()\n\t\t// \t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch\n\t\t// \treturn new Promise(()=>{});\n\t\t// })\n\t}\n\n\tconstructor() {\n\t\tthis.config = {\n\t\t\tbaseUrl: '', // 请求的根域名\n\t\t\t// 默认的请求头\n\t\t\theader: {},\n\t\t\tmethod: 'POST',\n\t\t\t// 设置为json,返回后uni.request会对数据进行一次JSON.parse\n\t\t\tdataType: 'json',\n\t\t\t// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可\n\t\t\tresponseType: 'text',\n\t\t\tshowLoading: true, // 是否显示请求中的loading\n\t\t\tloadingText: '请求中...',\n\t\t\tloadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms\n\t\t\ttimer: null, // 定时器\n\t\t\toriginalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明\n\t\t\tloadingMask: true, // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透\n\t\t}\n\t\n\t\t// 拦截器\n\t\tthis.interceptor = {\n\t\t\t// 请求前的拦截\n\t\t\trequest: null,\n\t\t\t// 请求后的拦截\n\t\t\tresponse: null\n\t\t}\n\n\t\t// get请求\n\t\tthis.get = (url, data = {}, header = {}) => {\n\t\t\treturn this.request({\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl,\n\t\t\t\theader,\n\t\t\t\tdata\n\t\t\t})\n\t\t}\n\n\t\t// post请求\n\t\tthis.post = (url, data = {}, header = {}) => {\n\t\t\treturn this.request({\n\t\t\t\turl,\n\t\t\t\tmethod: 'POST',\n\t\t\t\theader,\n\t\t\t\tdata\n\t\t\t})\n\t\t}\n\t\t\n\t\t// put请求,不支持支付宝小程序(HX2.6.15)\n\t\tthis.put = (url, data = {}, header = {}) => {\n\t\t\treturn this.request({\n\t\t\t\turl,\n\t\t\t\tmethod: 'PUT',\n\t\t\t\theader,\n\t\t\t\tdata\n\t\t\t})\n\t\t}\n\t\t\n\t\t// delete请求,不支持支付宝和头条小程序(HX2.6.15)\n\t\tthis.delete = (url, data = {}, header = {}) => {\n\t\t\treturn this.request({\n\t\t\t\turl,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\theader,\n\t\t\t\tdata\n\t\t\t})\n\t\t}\n\t}\n}\nexport default new Request\n", "/**\n * 对象转url参数\n * @param {*} data,对象\n * @param {*} isPrefix,是否自动加上\"?\"\n */\nfunction queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {\n\tlet prefix = isPrefix ? '?' : ''\n\tlet _result = []\n\tif (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets';\n\tfor (let key in data) {\n\t\tlet value = data[key]\n\t\t// 去掉为空的参数\n\t\tif (['', undefined, null].indexOf(value) >= 0) {\n\t\t\tcontinue;\n\t\t}\n\t\t// 如果值为数组,另行处理\n\t\tif (value.constructor === Array) {\n\t\t\t// e.g. {ids: [1, 2, 3]}\n\t\t\tswitch (arrayFormat) {\n\t\t\t\tcase 'indices':\n\t\t\t\t\t// 结果: ids[0]=1&ids[1]=2&ids[2]=3\n\t\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\t\t_result.push(key + '[' + i + ']=' + value[i])\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'brackets':\n\t\t\t\t\t// 结果: ids[]=1&ids[]=2&ids[]=3\n\t\t\t\t\tvalue.forEach(_value => {\n\t\t\t\t\t\t_result.push(key + '[]=' + _value)\n\t\t\t\t\t})\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'repeat':\n\t\t\t\t\t// 结果: ids=1&ids=2&ids=3\n\t\t\t\t\tvalue.forEach(_value => {\n\t\t\t\t\t\t_result.push(key + '=' + _value)\n\t\t\t\t\t})\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'comma':\n\t\t\t\t\t// 结果: ids=1,2,3\n\t\t\t\t\tlet commaStr = \"\";\n\t\t\t\t\tvalue.forEach(_value => {\n\t\t\t\t\t\tcommaStr += (commaStr ? \",\" : \"\") + _value;\n\t\t\t\t\t})\n\t\t\t\t\t_result.push(key + '=' + commaStr)\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvalue.forEach(_value => {\n\t\t\t\t\t\t_result.push(key + '[]=' + _value)\n\t\t\t\t\t})\n\t\t\t}\n\t\t} else {\n\t\t\t_result.push(key + '=' + value)\n\t\t}\n\t}\n\treturn _result.length ? prefix + _result.join('&') : ''\n}\n\nexport default queryParams;\n", "/**\n * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷\n * 并且带有路由拦截功能\n */\n\nclass Router {\n\tconstructor() {\n\t\t// 原始属性定义\n\t\tthis.config = {\n\t\t\ttype: 'navigateTo',\n\t\t\turl: '',\n\t\t\tdelta: 1, // navigateBack页面后退时,回退的层数\n\t\t\tparams: {}, // 传递的参数\n\t\t\tanimationType: 'pop-in', // 窗口动画,只在APP有效\n\t\t\tanimationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效\n\t\t\tintercept: false, // 是否需要拦截\n\t\t}\n\t\t// 因为route方法是需要对外赋值给另外的对象使用,同时route内部有使用this,会导致route失去上下文\n\t\t// 这里在构造函数中进行this绑定\n\t\tthis.route = this.route.bind(this)\n\t}\n\n\t// 判断url前面是否有\"/\",如果没有则加上,否则无法跳转\n\taddRootPath(url) {\n\t\treturn url[0] === '/' ? url : `/${url}`\n\t}\n\n\t// 整合路由参数\n\tmixinParam(url, params) {\n\t\turl = url && this.addRootPath(url)\n\n\t\t// 使用正则匹配,主要依据是判断是否有\"/\",\"?\",\"=\"等,如“/page/index/index?name=mary\"\n\t\t// 如果有url中有get参数,转换后无需带上\"?\"\n\t\tlet query = ''\n\t\tif (/.*\\/.*\\?.*=.*/.test(url)) {\n\t\t\t// object对象转为get类型的参数\n\t\t\tquery = uni.$u.queryParams(params, false);\n\t\t\t// 因为已有get参数,所以后面拼接的参数需要带上\"&\"隔开\n\t\t\treturn url += \"&\" + query\n\t\t} else {\n\t\t\t// 直接拼接参数,因为此处url中没有后面的query参数,也就没有\"?/&\"之类的符号\n\t\t\tquery = uni.$u.queryParams(params);\n\t\t\treturn url += query\n\t\t}\n\t}\n\n\t// 对外的方法名称\n\tasync route(options = {}, params = {}) {\n\t\t// 合并用户的配置和内部的默认配置\n\t\tlet mergeConfig = {}\n\n\t\tif (typeof options === 'string') {\n\t\t\t// 如果options为字符串,则为route(url, params)的形式\n\t\t\tmergeConfig.url = this.mixinParam(options, params)\n\t\t\tmergeConfig.type = 'navigateTo'\n\t\t} else {\n\t\t\tmergeConfig = uni.$u.deepMerge(this.config, options)\n\t\t\t// 否则正常使用mergeConfig中的url和params进行拼接\n\t\t\tmergeConfig.url = this.mixinParam(options.url, options.params)\n\t\t}\n\n\t\tif (params.intercept) {\n\t\t\tthis.config.intercept = params.intercept\n\t\t}\n\t\t// params参数也带给拦截器\n\t\tmergeConfig.params = params\n\t\t// 合并内外部参数\n\t\tmergeConfig = uni.$u.deepMerge(this.config, mergeConfig)\n\t\t// 判断用户是否定义了拦截器\n\t\tif (typeof uni.$u.routeIntercept === 'function') {\n\t\t\t// 定一个promise,根据用户执行resolve(true)或者resolve(false)来决定是否进行路由跳转\n\t\t\tconst isNext = await new Promise((resolve, reject) => {\n\t\t\t\tuni.$u.routeIntercept(mergeConfig, resolve)\n\t\t\t})\n\t\t\t// 如果isNext为true,则执行路由跳转\n\t\t\tisNext && this.openPage(mergeConfig)\n\t\t} else {\n\t\t\tthis.openPage(mergeConfig)\n\t\t}\n\t}\n\n\t// 执行路由跳转\n\topenPage(config) {\n\t\t// 解构参数\n\t\tconst {\n\t\t\turl,\n\t\t\ttype,\n\t\t\tdelta,\n\t\t\tanimationType,\n\t\t\tanimationDuration\n\t\t} = config\n\t\tif (config.type == 'navigateTo' || config.type == 'to') {\n\t\t\tuni.navigateTo({\n\t\t\t\turl,\n\t\t\t\tanimationType,\n\t\t\t\tanimationDuration\n\t\t\t});\n\t\t}\n\t\tif (config.type == 'redirectTo' || config.type == 'redirect') {\n\t\t\tuni.redirectTo({\n\t\t\t\turl\n\t\t\t});\n\t\t}\n\t\tif (config.type == 'switchTab' || config.type == 'tab') {\n\t\t\tuni.switchTab({\n\t\t\t\turl\n\t\t\t});\n\t\t}\n\t\tif (config.type == 'reLaunch' || config.type == 'launch') {\n\t\t\tuni.reLaunch({\n\t\t\t\turl\n\t\t\t});\n\t\t}\n\t\tif (config.type == 'navigateBack' || config.type == 'back') {\n\t\t\tuni.navigateBack({\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport default (new Router()).route\n", "// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序\n// 所以这里做一个兼容polyfill的兼容处理\nif (!String.prototype.padStart) {\n\t// 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解\n\tString.prototype.padStart = function(maxLength, fillString = ' ') {\n\t\tif (Object.prototype.toString.call(fillString) !== \"[object String]\") throw new TypeError(\n\t\t\t'fillString must be String')\n\t\tlet str = this\n\t\t// 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉\n\t\tif (str.length >= maxLength) return String(str)\n\n\t\tlet fillLength = maxLength - str.length,\n\t\t\ttimes = Math.ceil(fillLength / fillString.length)\n\t\twhile (times >>= 1) {\n\t\t\tfillString += fillString\n\t\t\tif (times === 1) {\n\t\t\t\tfillString += fillString\n\t\t\t}\n\t\t}\n\t\treturn fillString.slice(0, fillLength) + str;\n\t}\n}\n\n// 其他更多是格式化有如下:\n// yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合\nfunction timeFormat(dateTime = null, fmt = 'yyyy-mm-dd') {\n\t// 如果为null,则格式化当前时间\n\tif (!dateTime) dateTime = Number(new Date());\n\t// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式\n\tif (dateTime.toString().length == 10) dateTime *= 1000;\n\tlet date = new Date(dateTime);\n\tlet ret;\n\tlet opt = {\n\t\t\"y+\": date.getFullYear().toString(), // 年\n\t\t\"m+\": (date.getMonth() + 1).toString(), // 月\n\t\t\"d+\": date.getDate().toString(), // 日\n\t\t\"h+\": date.getHours().toString(), // 时\n\t\t\"M+\": date.getMinutes().toString(), // 分\n\t\t\"s+\": date.getSeconds().toString() // 秒\n\t\t// 有其他格式化字符需求可以继续添加,必须转化成字符串\n\t};\n\tfor (let k in opt) {\n\t\tret = new RegExp(\"(\" + k + \")\").exec(fmt);\n\t\tif (ret) {\n\t\t\tfmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, \"0\")))\n\t\t};\n\t};\n\treturn fmt;\n}\n\nexport default timeFormat\n", "import timeFormat from '../../libs/function/timeFormat.js';\n\n/**\n * 时间戳转为多久之前\n * @param String timestamp 时间戳\n * @param String | Boolean format 如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;\n * 如果为布尔值false,无论什么时间,都返回多久以前的格式\n */\nfunction timeFrom(dateTime = null, format = 'yyyy-mm-dd') {\n\t// 如果为null,则格式化当前时间\n\tif (!dateTime) dateTime = Number(new Date());\n\t// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式\n\tif (dateTime.toString().length == 10) dateTime *= 1000;\n\tlet timestamp = + new Date(Number(dateTime));\n\n\tlet timer = (Number(new Date()) - timestamp) / 1000;\n\t// 如果小于5分钟,则返回\"刚刚\",其他以此类推\n\tlet tips = '';\n\tswitch (true) {\n\t\tcase timer < 300:\n\t\t\ttips = '刚刚';\n\t\t\tbreak;\n\t\tcase timer >= 300 && timer < 3600:\n\t\t\ttips = parseInt(timer / 60) + '分钟前';\n\t\t\tbreak;\n\t\tcase timer >= 3600 && timer < 86400:\n\t\t\ttips = parseInt(timer / 3600) + '小时前';\n\t\t\tbreak;\n\t\tcase timer >= 86400 && timer < 2592000:\n\t\t\ttips = parseInt(timer / 86400) + '天前';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// 如果format为false,则无论什么时间戳,都显示xx之前\n\t\t\tif(format === false) {\n\t\t\t\tif(timer >= 2592000 && timer < 365 * 86400) {\n\t\t\t\t\ttips = parseInt(timer / (86400 * 30)) + '个月前';\n\t\t\t\t} else {\n\t\t\t\t\ttips = parseInt(timer / (86400 * 365)) + '年前';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttips = timeFormat(timestamp, format);\n\t\t\t}\n\t}\n\treturn tips;\n}\n\nexport default timeFrom;\n", "/**\n * 求两个颜色之间的渐变值\n * @param {string} startColor 开始的颜色\n * @param {string} endColor 结束的颜色\n * @param {number} step 颜色等分的份额\n * */\nfunction colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {\n\tlet startRGB = hexToRgb(startColor, false); //转换为rgb数组模式\n\tlet startR = startRGB[0];\n\tlet startG = startRGB[1];\n\tlet startB = startRGB[2];\n\n\tlet endRGB = hexToRgb(endColor, false);\n\tlet endR = endRGB[0];\n\tlet endG = endRGB[1];\n\tlet endB = endRGB[2];\n\n\tlet sR = (endR - startR) / step; //总差值\n\tlet sG = (endG - startG) / step;\n\tlet sB = (endB - startB) / step;\n\tlet colorArr = [];\n\tfor (let i = 0; i < step; i++) {\n\t\t//计算每一步的hex值 \n\t\tlet hex = rgbToHex('rgb(' + Math.round((sR * i + startR)) + ',' + Math.round((sG * i + startG)) + ',' + Math.round((sB *\n\t\t\ti + startB)) + ')');\n\t\tcolorArr.push(hex);\n\t}\n\treturn colorArr;\n}\n\n// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)\nfunction hexToRgb(sColor, str = true) {\n\tlet reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;\n\tsColor = sColor.toLowerCase();\n\tif (sColor && reg.test(sColor)) {\n\t\tif (sColor.length === 4) {\n\t\t\tlet sColorNew = \"#\";\n\t\t\tfor (let i = 1; i < 4; i += 1) {\n\t\t\t\tsColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));\n\t\t\t}\n\t\t\tsColor = sColorNew;\n\t\t}\n\t\t//处理六位的颜色值\n\t\tlet sColorChange = [];\n\t\tfor (let i = 1; i < 7; i += 2) {\n\t\t\tsColorChange.push(parseInt(\"0x\" + sColor.slice(i, i + 2)));\n\t\t}\n\t\tif(!str) {\n\t\t\treturn sColorChange;\n\t\t} else {\n\t\t\treturn `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`;\n\t\t}\n\t} else if (/^(rgb|RGB)/.test(sColor)) {\n\t\tlet arr = sColor.replace(/(?:\\(|\\)|rgb|RGB)*/g, \"\").split(\",\")\n\t\treturn arr.map(val => Number(val));\n\t} else {\n\t\treturn sColor;\n\t}\n};\n\n// 将rgb表示方式转换为hex表示方式\nfunction rgbToHex(rgb) {\n\tlet _this = rgb;\n\tlet reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;\n\tif (/^(rgb|RGB)/.test(_this)) {\n\t\tlet aColor = _this.replace(/(?:\\(|\\)|rgb|RGB)*/g, \"\").split(\",\");\n\t\tlet strHex = \"#\";\n\t\tfor (let i = 0; i < aColor.length; i++) {\n\t\t\tlet hex = Number(aColor[i]).toString(16);\n\t\t\thex = String(hex).length == 1 ? 0 + '' + hex : hex; // 保证每个rgb的值为2位\n\t\t\tif (hex === \"0\") {\n\t\t\t\thex += hex;\n\t\t\t}\n\t\t\tstrHex += hex;\n\t\t}\n\t\tif (strHex.length !== 7) {\n\t\t\tstrHex = _this;\n\t\t}\n\t\treturn strHex;\n\t} else if (reg.test(_this)) {\n\t\tlet aNum = _this.replace(/#/, \"\").split(\"\");\n\t\tif (aNum.length === 6) {\n\t\t\treturn _this;\n\t\t} else if (aNum.length === 3) {\n\t\t\tlet numHex = \"#\";\n\t\t\tfor (let i = 0; i < aNum.length; i += 1) {\n\t\t\t\tnumHex += (aNum[i] + aNum[i]);\n\t\t\t}\n\t\t\treturn numHex;\n\t\t}\n\t} else {\n\t\treturn _this;\n\t}\n}\n\n\n/**\n* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串\n* sHex为传入的十六进制的色值\n* alpha为rgba的透明度\n*/\nfunction colorToRgba(color, alpha = 0.3) {\n\tcolor = rgbToHex(color)\n\t// 十六进制颜色值的正则表达式\n\tvar reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/\n\t/* 16进制颜色转为RGB格式 */\n\tlet sColor = color.toLowerCase()\n\tif (sColor && reg.test(sColor)) {\n\t\tif (sColor.length === 4) {\n\t\t\tvar sColorNew = '#'\n\t\t\tfor (let i = 1; i < 4; i += 1) {\n\t\t\t\tsColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))\n\t\t\t}\n\t\t\tsColor = sColorNew\n\t\t}\n\t\t// 处理六位的颜色值\n\t\tvar sColorChange = []\n\t\tfor (let i = 1; i < 7; i += 2) {\n\t\t\tsColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))\n\t\t}\n\t\t// return sColorChange.join(',')\n\t\treturn 'rgba(' + sColorChange.join(',') + ',' + alpha + ')'\n\t} \n\telse {\n\t\treturn sColor\n\t}\n}\n\nexport default {\n\tcolorGradient,\n\thexToRgb,\n\trgbToHex,\n\tcolorToRgba\n}", "/**\n * 本算法来源于简书开源代码,详见:https://www.jianshu.com/p/fdbf293d0a85\n * 全局唯一标识符(uuid,Globally Unique Identifier),也称作 uuid(Universally Unique IDentifier) \n * 一般用于多个组件之间,给它一个唯一的标识符,或者v-for循环的时候,如果使用数组的index可能会导致更新列表出现问题\n * 最可能的情况是左滑删除item或者对某条信息流\"不喜欢\"并去掉它的时候,会导致组件内的数据可能出现错乱\n * v-for的时候,推荐使用后端返回的id而不是循环的index\n * @param {Number} len uuid的长度\n * @param {Boolean} firstU 将返回的首字母置为\"u\"\n * @param {Number} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制\n */\nfunction guid(len = 32, firstU = true, radix = null) {\n\tlet chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n\tlet uuid = [];\n\tradix = radix || chars.length;\n\n\tif (len) {\n\t\t// 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位\n\t\tfor (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];\n\t} else {\n\t\tlet r;\n\t\t// rfc4122标准要求返回的uuid中,某些位为固定的字符\n\t\tuuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\n\t\tuuid[14] = '4';\n\n\t\tfor (let i = 0; i < 36; i++) {\n\t\t\tif (!uuid[i]) {\n\t\t\t\tr = 0 | Math.random() * 16;\n\t\t\t\tuuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];\n\t\t\t}\n\t\t}\n\t}\n\t// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guid不能用作id或者class\n\tif (firstU) {\n\t\tuuid.shift();\n\t\treturn 'u' + uuid.join('');\n\t} else {\n\t\treturn uuid.join('');\n\t}\n}\n\nexport default guid;\n", "// 为了让用户能够自定义主题,会逐步弃用此文件,各颜色通过css提供\n// 为了给某些特殊场景使用和向后兼容,无需删除此文件(2020-06-20)\nlet color = {\n\tprimary: \"#2979ff\",\n\tprimaryDark: \"#2b85e4\",\n\tprimaryDisabled: \"#a0cfff\",\n\tprimaryLight: \"#ecf5ff\",\n\tbgColor: \"#f3f4f6\",\n\t\n\tinfo: \"#909399\",\n\tinfoDark: \"#82848a\",\n\tinfoDisabled: \"#c8c9cc\",\n\tinfoLight: \"#f4f4f5\",\n\t\n\twarning: \"#ff9900\",\n\twarningDark: \"#f29100\",\n\twarningDisabled: \"#fcbd71\",\n\twarningLight: \"#fdf6ec\",\n\t\n\terror: \"#fa3534\",\n\terrorDark: \"#dd6161\",\n\terrorDisabled: \"#fab6b6\",\n\terrorLight: \"#fef0f0\",\n\t\n\tsuccess: \"#19be6b\",\n\tsuccessDark: \"#18b566\",\n\tsuccessDisabled: \"#71d5a1\",\n\tsuccessLight: \"#dbf1e1\",\n\t\n\tmainColor: \"#303133\",\n\tcontentColor: \"#606266\",\n\ttipsColor: \"#909399\",\n\tlightColor: \"#c0c4cc\",\n\tborderColor: \"#e4e7ed\"\n}\n\nexport default color;", "/**\n * 根据主题type值,获取对应的图标\n * @param String type 主题名称,primary|info|error|warning|success\n * @param String fill 是否使用fill填充实体的图标 \n */\nfunction type2icon(type = 'success', fill = false) {\n\t// 如果非预置值,默认为success\n\tif (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success';\n\tlet iconName = '';\n\t// 目前(2019-12-12),info和primary使用同一个图标\n\tswitch (type) {\n\t\tcase 'primary':\n\t\t\ticonName = 'info-circle';\n\t\t\tbreak;\n\t\tcase 'info':\n\t\t\ticonName = 'info-circle';\n\t\t\tbreak;\n\t\tcase 'error':\n\t\t\ticonName = 'close-circle';\n\t\t\tbreak;\n\t\tcase 'warning':\n\t\t\ticonName = 'error-circle';\n\t\t\tbreak;\n\t\tcase 'success':\n\t\t\ticonName = 'checkmark-circle';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ticonName = 'checkmark-circle';\n\t}\n\t// 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的\n\tif (fill) iconName += '-fill';\n\treturn iconName;\n}\n\nexport default type2icon\n", "// 打乱数组\nfunction randomArray(array = []) {\n\t// 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0\n\treturn array.sort(() => Math.random() - 0.5);\n}\n\nexport default randomArray\n", "import validation from './test.js';\n\n// 添加单位,如果有rpx,%,px等单位结尾或者值为auto,直接返回,否则加上rpx单位结尾\nexport default function addUnit(value = 'auto', unit = 'rpx') {\n value = String(value);\n\t// 用uView内置验证规则中的number判断是否为数值\n return validation.number(value) ? `${value}${unit}` : value;\n}", "function random(min, max) {\n\tif (min >= 0 && max > 0 && max >= min) {\n\t\tlet gab = max - min + 1;\n\t\treturn Math.floor(Math.random() * gab + min);\n\t} else {\n\t\treturn 0;\n\t}\n}\n\nexport default random;\n", "function trim(str, pos = 'both') {\n\tif (pos == 'both') {\n\t\treturn str.replace(/^\\s+|\\s+$/g, \"\");\n\t} else if (pos == \"left\") {\n\t\treturn str.replace(/^\\s*/, '');\n\t} else if (pos == 'right') {\n\t\treturn str.replace(/(\\s*$)/g, \"\");\n\t} else if (pos == 'all') {\n\t\treturn str.replace(/\\s+/g, \"\");\n\t} else {\n\t\treturn str;\n\t}\n}\n\nexport default trim\n", "function toast(title, duration = 1500) {\n\tuni.showToast({\n\t\ttitle: title,\n\t\ticon: 'none',\n\t\tduration: duration\n\t})\n}\n\nexport default toast\n", "// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法\n// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx\nexport default function getParent(name, keys) {\n\tlet parent = this.$parent;\n\t// 通过while历遍,这里主要是为了H5需要多层解析的问题\n\twhile (parent) {\n\t\t// 父组件\n\t\tif (parent.$options.name !== name) {\n\t\t\t// 如果组件的name不相等,继续上一级寻找\n\t\t\tparent = parent.$parent;\n\t\t} else {\n\t\t\tlet data = {};\n\t\t\t// 判断keys是否数组,如果传过来的是一个数组,那么直接使用数组元素值当做键值去父组件寻找\n\t\t\tif(Array.isArray(keys)) {\n\t\t\t\tkeys.map(val => {\n\t\t\t\t\tdata[val] = parent[val] ? parent[val] : '';\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// 历遍传过来的对象参数\n\t\t\t\tfor(let i in keys) {\n\t\t\t\t\t// 如果子组件有此值则用,无此值则用父组件的值\n\t\t\t\t\t// 判断是否空数组,如果是,则用父组件的值,否则用子组件的值\n\t\t\t\t\tif(Array.isArray(keys[i])) {\n\t\t\t\t\t\tif(keys[i].length) {\n\t\t\t\t\t\t\tdata[i] = keys[i];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdata[i] = parent[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(keys[i].constructor === Object) {\n\t\t\t\t\t\t// 判断是否对象,如果是对象,且有属性,那么使用子组件的值,否则使用父组件的值\n\t\t\t\t\t\tif(Object.keys(keys[i]).length) {\n\t\t\t\t\t\t\tdata[i] = keys[i];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdata[i] = parent[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// 只要子组件有传值,即使是false值,也是“传值”了,也需要覆盖父组件的同名参数\n\t\t\t\t\t\tdata[i] = (keys[i] || keys[i] === false) ? keys[i] : parent[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn data;\n\t\t}\n\t}\n\n\treturn {};\n}", "// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法\n// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx\n// 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name\n// 值(默认为undefined),就是查找最顶层的$parent\nexport default function $parent(name = undefined) {\n\tlet parent = this.$parent;\n\t// 通过while历遍,这里主要是为了H5需要多层解析的问题\n\twhile (parent) {\n\t\t// 父组件\n\t\tif (parent.$options && parent.$options.name !== name) {\n\t\t\t// 如果组件的name不相等,继续上一级寻找\n\t\t\tparent = parent.$parent;\n\t\t} else {\n\t\t\treturn parent;\n\t\t}\n\t}\n\treturn false;\n}", "export function os() {\n\treturn uni.getSystemInfoSync().platform;\n};\n\nexport function sys() {\n\treturn uni.getSystemInfoSync();\n}\n\n\n", "let timeout = null;\n\n/**\n * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数\n * \n * @param {Function} func 要执行的回调函数 \n * @param {Number} wait 延时的时间\n * @param {Boolean} immediate 是否立即执行 \n * @return null\n */\nfunction debounce(func, wait = 500, immediate = false) {\n\t// 清除定时器\n\tif (timeout !== null) clearTimeout(timeout);\n\t// 立即执行,此类情况一般用不到\n\tif (immediate) {\n\t\tvar callNow = !timeout;\n\t\ttimeout = setTimeout(function() {\n\t\t\ttimeout = null;\n\t\t}, wait);\n\t\tif (callNow) typeof func === 'function' && func();\n\t} else {\n\t\t// 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法\n\t\ttimeout = setTimeout(function() {\n\t\t\ttypeof func === 'function' && func();\n\t\t}, wait);\n\t}\n}\n\nexport default debounce\n", "let timer, flag;\n/**\n * 节流原理:在一定时间内,只能触发一次\n * \n * @param {Function} func 要执行的回调函数 \n * @param {Number} wait 延时的时间\n * @param {Boolean} immediate 是否立即执行\n * @return null\n */\nfunction throttle(func, wait = 500, immediate = true) {\n\tif (immediate) {\n\t\tif (!flag) {\n\t\t\tflag = true;\n\t\t\t// 如果是立即执行,则在wait毫秒内开始时执行\n\t\t\ttypeof func === 'function' && func();\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tflag = false;\n\t\t\t}, wait);\n\t\t}\n\t} else {\n\t\tif (!flag) {\n\t\t\tflag = true\n\t\t\t// 如果是非立即执行,则在wait毫秒内的结束处执行\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tflag = false\n\t\t\t\ttypeof func === 'function' && func();\n\t\t\t}, wait);\n\t\t}\n\t\t\n\t}\n};\nexport default throttle\n", "// 此版本发布于2023-03-27\nlet version = '1.8.8';\n\nexport default {\n\tv: version,\n\tversion: version,\n\t// 主题名称\n\ttype: [\n\t\t'primary',\n\t\t'success',\n\t\t'info',\n\t\t'error',\n\t\t'warning'\n\t]\n}\n", "// uniapp在H5中各API的z-index值如下:\n/**\n * actionsheet: 999\n * modal: 999\n * navigate: 998\n * tabbar: 998\n * toast: 999\n */\n\nexport default {\n\ttoast: 10090,\n\tnoNetwork: 10080,\n\t// popup包含popup,actionsheet,keyboard,picker的值\n\tpopup: 10075,\n\tmask: 10070,\n\tnavbar: 980,\n\ttopTips: 975,\n\tsticky: 970,\n\tindexListSticky: 965,\n}"], + "mappings": "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", + "names": ["url", "url", "date", "timer", "color", "array", "mixin"] +} diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/index.js.map index acf9858..2e30ddc 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/order/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["E:/迅雷下载/HBuilderX.4.57.2025032507/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvb3JkZXIvaW5kZXgudnVl"],"sourcesContent":["import MiniProgramPage from 'C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/pages/order/index.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["E:/迅雷下载/HBuilderX.4.57.2025032507/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvb3JkZXIvaW5kZXgudnVl"],"sourcesContent":["import MiniProgramPage from 'C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/pages/order/index.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/return/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/return/index.js.map index 716bbd2..9f15f27 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/return/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/return/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["E:/迅雷下载/HBuilderX.4.57.2025032507/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvcmV0dXJuL2luZGV4LnZ1ZQ"],"sourcesContent":["import MiniProgramPage from 'C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/pages/return/index.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["E:/迅雷下载/HBuilderX.4.57.2025032507/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvcmV0dXJuL2luZGV4LnZ1ZQ"],"sourcesContent":["import MiniProgramPage from 'C:/Users/Administrator.DESKTOP-IRCM9I0/Desktop/locker-fans/locker-fans/uni-fans/pages/return/index.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/order/index.js b/unpackage/dist/dev/mp-weixin/pages/order/index.js index c5e5144..c1075bd 100644 --- a/unpackage/dist/dev/mp-weixin/pages/order/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/order/index.js @@ -34,7 +34,7 @@ const _sfc_main = { } } } catch (error) { - common_vendor.index.__f__("error", "at pages/order/index.vue:97", "获取订单详情失败:", error); + common_vendor.index.__f__("error", "at pages/order/index.vue:98", "获取订单详情失败:", error); } } await this.getOrderList(); @@ -54,7 +54,7 @@ const _sfc_main = { })); } } catch (error) { - common_vendor.index.__f__("error", "at pages/order/index.vue:120", "获取订单列表失败:", error); + common_vendor.index.__f__("error", "at pages/order/index.vue:121", "获取订单列表失败:", error); common_vendor.index.showToast({ title: "获取订单列表失败", icon: "none" @@ -80,16 +80,20 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { }), b: common_vendor.f($data.orderList, (order, index, i0) => { var _a, _b; - return { + return common_vendor.e({ a: common_vendor.t(order.orderNo), b: common_vendor.t((_a = $data.OrderStatusMap[order.status]) == null ? void 0 : _a.text), c: common_vendor.n((_b = $data.OrderStatusMap[order.status]) == null ? void 0 : _b.class), - d: common_vendor.t(order.deviceId), - e: common_vendor.t(order.startTime), - f: common_vendor.t(order.endTime || "-"), - g: common_vendor.t(order.amount), - h: index - }; + d: order.status === 1 + }, order.status === 1 ? { + e: `/pages/return/index?deviceId=${order.deviceId}&orderId=${order.orderNo}` + } : {}, { + f: common_vendor.t(order.deviceId), + g: common_vendor.t(order.startTime), + h: common_vendor.t(order.endTime || "-"), + i: common_vendor.t(order.amount), + j: index + }); }), c: $data.orderList.length === 0 }, $data.orderList.length === 0 ? {} : {}); diff --git a/unpackage/dist/dev/mp-weixin/pages/order/index.wxml b/unpackage/dist/dev/mp-weixin/pages/order/index.wxml index bf54b3e..f166f71 100644 --- a/unpackage/dist/dev/mp-weixin/pages/order/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/order/index.wxml @@ -1 +1 @@ -{{tab.a}}订单号:{{order.a}}{{order.b}}共享风扇设备号:{{order.d}}开始时间:{{order.e}}结束时间:{{order.f}}¥{{order.g}}暂无订单记录 \ No newline at end of file +{{tab.a}}订单号:{{order.a}}{{order.b}}归还设备共享风扇设备号:{{order.f}}开始时间:{{order.g}}结束时间:{{order.h}}¥{{order.i}}暂无订单记录 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/return/index.js b/unpackage/dist/dev/mp-weixin/pages/return/index.js index f8adf7d..0396e03 100644 --- a/unpackage/dist/dev/mp-weixin/pages/return/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/return/index.js @@ -35,7 +35,17 @@ const _sfc_main = { const result = await config_user.queryById(this.orderInfo.orderId); if (result.code === 200 && result.data) { const orderData = result.data; - this.orderInfo.startTime = this.formatTime(new Date(orderData.createTime)); + const rawTime = orderData.startTime; + common_vendor.index.__f__("log", "at pages/return/index.vue:105", "原始时间:", rawTime); + const fixedTime = rawTime.replace(" ", "T"); + const date = new Date(fixedTime); + common_vendor.index.__f__("log", "at pages/return/index.vue:108", "原始时间:", rawTime); + if (isNaN(date.getTime())) { + this.orderInfo.startTime = "时间解析错误"; + } else { + common_vendor.index.__f__("log", "at pages/return/index.vue:112", "原始时间:", rawTime); + this.orderInfo.startTime = this.formatTime(date); + } this.calculateUsedTime(orderData.createTime); this.orderInfo.currentFee = orderData.amount || "0.00"; } else { @@ -64,19 +74,10 @@ const _sfc_main = { const minute = date.getMinutes().toString().padStart(2, "0"); return `${year}-${month}-${day} ${hour}:${minute}`; }, - // 计算使用时长 - calculateUsedTime(startTime) { - const start = new Date(startTime); - const now = /* @__PURE__ */ new Date(); - const diffMs = now - start; - const minutes = Math.floor(diffMs / (1e3 * 60)); - if (minutes < 60) { - this.orderInfo.usedTime = `${minutes}分钟`; - } else { - const hours = Math.floor(minutes / 60); - const remainMinutes = minutes % 60; - this.orderInfo.usedTime = `${hours}小时${remainMinutes}分钟`; - } + // 使用后端返回的使用时长和费用数据 + updateOrderInfo(orderData) { + this.orderInfo.usedTime = orderData.usedTime || "0分钟"; + this.orderInfo.currentFee = orderData.currentFee || "0.00"; }, // 更新使用时长的定时器 startTimer() {