oasis-chat 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../src/assets/button.png","../../src/utils/clsx.js","../../src/service/authStore.js","../../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","../../src/service/http.js","../../src/service/apis/portal.js","../../src/index.js","../../src/vue/OasisButton.vue"],"sourcesContent":["export default \"data:image/png;base64,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\"","/**\n * 클래스명을 결합하는 유틸 함수\n * @param {...string} args - 클래스명들\n * @returns {string} 공백으로 구분된 클래스명 문자열\n * @example\n * clsx('foo', 'bar') // => 'foo bar'\n */\nexport function clsx(...args) {\n return args.filter(Boolean).join(' ');\n}\n","/**\n * 워크스페이스 타입 정의\n * @typedef {Object} Workspace\n * @property {number} workspaceId\n * @property {string} workspaceUuid\n * @property {string} workspaceCode\n * @property {string} workspaceName\n * @property {boolean} isPrimary\n * @property {boolean} isAdmin\n */\n\n/**\n * Base64 디코딩 함수\n * @param {string | null} value - 디코딩할 Base64 문자열\n * @returns {string | null} 디코딩된 문자열 또는 null\n */\nconst decodeString = (value) => {\n if (!value) return null;\n try {\n // URL-safe Base64를 일반 Base64로 변환\n const base64 = value.replace(/-/g, '+').replace(/_/g, '/');\n\n // UTF-8 바이트를 올바르게 디코딩\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n // UTF-8 디코딩\n return new TextDecoder('utf-8').decode(bytes);\n } catch (error) {\n console.error('Base64 디코딩 실패:', error);\n return null;\n }\n};\n\n/**\n * localStorage 키 상수\n */\nconst STORAGE_KEY = 'auth-storage';\n\n/**\n * localStorage에서 데이터 가져오기\n * @returns {any} 저장된 값 또는 null\n */\nfunction getStorageData() {\n try {\n const item = localStorage.getItem(STORAGE_KEY);\n return item ? JSON.parse(item) : null;\n } catch (error) {\n console.error(`localStorage getItem error for ${STORAGE_KEY}:`, error);\n return null;\n }\n}\n\n/**\n * localStorage에 데이터 저장하기\n * @param {any} data - 저장할 데이터\n */\nfunction setStorageData(data) {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n } catch (error) {\n console.error(`localStorage setItem error for ${STORAGE_KEY}:`, error);\n }\n}\n\n/**\n * localStorage에서 데이터 삭제하기\n */\nfunction clearStorageData() {\n try {\n localStorage.removeItem(STORAGE_KEY);\n } catch (error) {\n console.error(`localStorage removeItem error for ${STORAGE_KEY}:`, error);\n }\n}\n\n/**\n * 선택적으로 저장할 필드만 추출 (partialize)\n * @param {Object} state - 전체 상태\n * @returns {Object} 저장할 필드만 추출한 객체\n */\nfunction partialize(state) {\n return {\n isAuthenticated: state.isAuthenticated,\n isTempPwLogin: state.isTempPwLogin,\n isHydrated: state.isHydrated,\n accountId: state.accountId,\n currentWorkspace: state.currentWorkspace,\n };\n}\n\n/**\n * 인증 스토어 생성\n * @param {Object} options - 옵션 객체\n * @param {Object} options.httpClient - HTTP 클라이언트 (refresh용, 선택적)\n * @param {Object} options.portalClient - Portal 클라이언트 (refresh용, 선택적)\n * @returns {Object} useAuthStore 객체\n */\nexport function createAuthStore(options = {}) {\n let { httpClient, portalClient } = options;\n\n // 초기 상태\n let state = {\n isAuthenticated: false,\n isTempPwLogin: null,\n isHydrated: false,\n // JWT 토큰 필드\n jti: null,\n iss: null,\n sub: null,\n iat: null,\n exp: null,\n // 테넌트 정보\n tenantId: null,\n tenantUuid: null,\n departments: null,\n groups: null,\n roles: null,\n // 사용자 정보\n userSeqId: null,\n userUuid: null,\n accountId: null,\n employeeId: null,\n tenantCode: null,\n metadata: null,\n companyCode: null,\n companyName: null,\n userName: null,\n userEmail: null,\n positionTitle: null,\n isTenantAdmin: null,\n isSystemAdmin: null,\n failLogin: null,\n // 워크스페이스 정보\n workspaces: null,\n currentWorkspace: null,\n };\n\n /**\n * 상태 업데이트 함수\n * @param {Object} updates - 업데이트할 상태 필드\n */\n function setState(updates) {\n state = { ...state, ...updates };\n // localStorage에 선택적 필드만 저장\n const partialData = partialize(state);\n setStorageData(partialData);\n }\n\n /**\n * localStorage에서 상태 복원\n */\n function rehydrate() {\n const savedData = getStorageData();\n if (savedData) {\n // 저장된 필드들을 상태에 복원\n if (savedData.isAuthenticated !== undefined) {\n state.isAuthenticated = savedData.isAuthenticated;\n }\n if (savedData.isTempPwLogin !== undefined) {\n state.isTempPwLogin = savedData.isTempPwLogin;\n }\n if (savedData.accountId !== undefined) {\n state.accountId = savedData.accountId;\n }\n if (savedData.currentWorkspace !== undefined) {\n state.currentWorkspace = savedData.currentWorkspace;\n }\n // hydration 완료 표시\n state.isHydrated = true;\n setState({ isHydrated: true });\n }\n }\n\n // 초기 로드 시 localStorage에서 복원\n rehydrate();\n\n /**\n * HTTP 클라이언트 설정 (순환 참조 해결을 위해 나중에 설정 가능)\n * @param {Object} client - HTTP 클라이언트\n */\n function setHttpClient(client) {\n httpClient = client;\n }\n\n /**\n * Portal 클라이언트 설정\n * @param {Object} client - Portal 클라이언트\n */\n function setPortalClient(client) {\n portalClient = client;\n }\n\n /**\n * 상태 가져오기\n * @returns {Object} 현재 상태\n */\n function getState() {\n return {\n ...state,\n /**\n * 로그인\n * @param {Object} authData - LoginResponseDto\n * @param {string} authData.access_token\n * @param {number} authData.exp\n * @param {boolean} authData.is_temp_pw_login\n */\n login: (authData) => {\n setState({\n isAuthenticated: true,\n isTempPwLogin: authData.is_temp_pw_login || false,\n exp: authData.exp,\n });\n },\n /**\n * 사용자 정보 설정 (authMe)\n * @param {Object} myData - MyResponseDto\n */\n authMe: (myData) => {\n const workspaces =\n myData.workspaces?.map((ws) => ({\n workspaceId: ws.workspace_id,\n workspaceUuid: ws.workspace_uuid,\n workspaceCode: ws.workspace_code,\n workspaceName: decodeString(ws.workspace_name) || '',\n isPrimary: ws.is_primary,\n isAdmin: ws.is_admin,\n })) || [];\n\n setState({\n accountId: myData.account_id,\n employeeId: myData.employee_id,\n metadata: decodeString(myData.metadata),\n tenantCode: myData.tenant_code,\n companyCode: myData.company_code,\n companyName: decodeString(myData.company_name),\n userName: decodeString(myData.user_name),\n userEmail: myData.user_email,\n positionTitle: decodeString(myData.position_title),\n isTenantAdmin: myData.is_tenant_admin,\n isSystemAdmin: myData.is_system_admin,\n failLogin: myData.fail_login,\n tenantId: myData.tenant_id?.toString(),\n tenantUuid: myData.tenant_uuid,\n userSeqId: myData.user_seq_id,\n userUuid: myData.user_uuid,\n workspaces,\n currentWorkspace: workspaces.find((ws) => ws.isPrimary) || workspaces[0] || null,\n });\n },\n /**\n * 임시 비밀번호 로그인 상태 업데이트\n * @param {boolean} value - 임시 비밀번호 로그인 여부\n */\n updateTempPwLogin: (value) => {\n setState({ isTempPwLogin: value });\n },\n /**\n * 로그아웃\n */\n logout: () => {\n setState({\n accountId: null,\n isAuthenticated: false,\n isTempPwLogin: null,\n exp: null,\n });\n },\n /**\n * Hydration 상태 설정\n * @param {boolean} hydrated - hydration 완료 여부\n */\n setHydrated: (hydrated) => {\n setState({ isHydrated: hydrated });\n },\n /**\n * 현재 워크스페이스 설정\n * @param {Workspace} workspace - 워크스페이스 정보\n */\n setCurrentWorkspace: (workspace) => {\n setState({ currentWorkspace: workspace });\n },\n /**\n * 토큰 갱신\n * @returns {Promise<boolean>} 성공 여부\n */\n async refreshToken() {\n try {\n if (!portalClient && !httpClient) {\n console.warn(\n 'portalClient 또는 httpClient가 설정되지 않아 토큰 갱신을 수행할 수 없습니다.'\n );\n return false;\n }\n\n let data;\n if (portalClient) {\n // portalClient를 우선 사용\n data = await portalClient.refresh();\n } else if (httpClient) {\n // httpClient를 사용하여 직접 호출\n const response = await httpClient.post('/oasis/auth/user/refresh');\n data = response.data?.data || response.data;\n }\n\n if (data?.exp) {\n // exp 값만 업데이트 (access_token은 쿠키로 관리되므로 불필요)\n setState({ exp: data.exp });\n return true;\n }\n\n return false;\n } catch (error) {\n console.error('토큰 갱신 중 오류:', error);\n return false;\n }\n },\n };\n }\n\n /**\n * 인증 정보 초기화\n */\n function clearAuth() {\n state = {\n isAuthenticated: false,\n isTempPwLogin: null,\n isHydrated: state.isHydrated, // hydration 상태는 유지\n jti: null,\n iss: null,\n sub: null,\n iat: null,\n exp: null,\n tenantId: null,\n tenantUuid: null,\n departments: null,\n groups: null,\n roles: null,\n userSeqId: null,\n userUuid: null,\n accountId: null,\n employeeId: null,\n tenantCode: null,\n metadata: null,\n companyCode: null,\n companyName: null,\n userName: null,\n userEmail: null,\n positionTitle: null,\n isTenantAdmin: null,\n isSystemAdmin: null,\n failLogin: null,\n workspaces: null,\n currentWorkspace: null,\n };\n clearStorageData();\n }\n\n return {\n getState,\n setHttpClient,\n setPortalClient,\n clearAuth,\n };\n}\n\n/**\n * 기본 useAuthStore 인스턴스 (순환 참조를 피하기 위해 나중에 설정 가능)\n */\nlet defaultAuthStore = null;\n\n/**\n * 기본 useAuthStore 설정\n * @param {Object} options - 옵션 객체\n */\nexport function initAuthStore(options = {}) {\n defaultAuthStore = createAuthStore(options);\n return defaultAuthStore;\n}\n\n/**\n * 기본 useAuthStore 가져오기\n * @returns {Object} useAuthStore 객체\n */\nexport function getAuthStore() {\n if (!defaultAuthStore) {\n // 초기화되지 않은 경우 기본 인스턴스 생성\n defaultAuthStore = createAuthStore();\n }\n return defaultAuthStore;\n}\n\nexport default getAuthStore;\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\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) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a 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 // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * 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, skipUndefined} = 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 if (!skipUndefined || !isUndefined(val)) {\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<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\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\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[toStringTag] === 'FormData' && thing[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 //Buffer check\n if (isBuffer(source)) {\n return source;\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\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\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 isEmptyObject,\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 isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\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 const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\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<any>} 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<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} 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 (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n 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<String|Number>} 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<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} 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}\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 {void}\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(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\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<any>} 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<string, any> | 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, this.parseReviver);\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.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(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 getSetCookie() {\n return this.get(\"set-cookie\") || [];\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(...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, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : 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 \"<scheme>://\" 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, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\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({...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, newConfig.allowAbsoluteUrls), 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 if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\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(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n 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 DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && 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\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\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 = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\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 request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\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' && /Load failed|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\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n 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\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\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\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\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, config);\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.13.1\";","'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 // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(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(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(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, config.allowAbsoluteUrls);\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 WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n 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","import axios from 'axios';\n\n/**\n * 토큰 만료 시간 체크 함수 (10분 전에 refresh)\n * @param {Function} useAuthStore - 인증 스토어 함수\n * @returns {boolean}\n */\nconst shouldRefreshToken = (useAuthStore) => {\n const { exp } = useAuthStore.getState();\n\n if (!exp) return false;\n\n const currentTime = Math.floor(Date.now() / 1000); // 현재 시간 (초)\n const timeUntilExpiry = exp - currentTime; // 만료까지 남은 시간 (초)\n const tenMinutes = 10 * 60; // 10분 (초)\n\n return timeUntilExpiry <= tenMinutes && timeUntilExpiry > 0;\n};\n\n/**\n * Interceptor 추가 함수\n * @param {import('axios').AxiosInstance} instance - Axios 인스턴스\n * @param {Function} useAuthStore - 인증 스토어 함수\n * @returns {import('axios').AxiosInstance}\n */\nfunction addInterceptor(instance, useAuthStore) {\n instance.interceptors.request.use(\n async (config) => {\n // 토큰이 만료되기 10분 전이면 refresh 요청\n if (!config.url?.includes('/auth/user/refresh') && shouldRefreshToken(useAuthStore)) {\n const { refreshToken } = useAuthStore.getState();\n const refreshSuccess = await refreshToken();\n\n if (!refreshSuccess) {\n // refresh 실패 시 로그아웃 처리\n const { logout } = useAuthStore.getState();\n logout();\n return Promise.reject(new Error('토큰 갱신 실패'));\n }\n }\n\n // current-workspace-id와 current-workspace-uuid 헤더 추가\n const { currentWorkspace } = useAuthStore.getState();\n if (currentWorkspace?.workspaceId) {\n config.headers['current-workspace-id'] = currentWorkspace.workspaceId.toString();\n }\n if (currentWorkspace?.workspaceUuid) {\n config.headers['current-workspace-uuid'] = currentWorkspace.workspaceUuid;\n }\n\n // 타임아웃 설정 (get, post, put만)\n if (config.method === 'get' || config.method === 'post' || config.method === 'put') {\n config.timeout = 600000;\n }\n\n return config;\n },\n (error) => Promise.reject(error)\n );\n\n instance.interceptors.response.use(\n (response) => response,\n (error) => {\n // errorHandle 속성이 false로 설정된 경우 에러 핸들링 스킵\n if (\n error?.config &&\n Object.prototype.hasOwnProperty.call(error.config, 'errorHandle') &&\n !error.config.errorHandle\n ) {\n return Promise.reject(error);\n }\n\n if (error.response?.status === 401 || error.response?.status === 403) {\n const { logout } = useAuthStore.getState();\n logout();\n } else if (error.code === 'ECONNABORTED') {\n // CORS 가 처리된 외부 요청인데 타임아웃이 발생된 경우\n if (error.config && !error.config.withCredentials) {\n // 처리 로직 필요 시 추가\n }\n // 400 - BAD_REQUEST(명시적 에러)\n // 402 - BLOCKCHAIN ERROR\n // 500 - INTERNAL_SERVER_ERROR\n } else if (\n error.response?.status === 400 ||\n error.response?.status === 402 ||\n error.response?.status === 412 ||\n error.response?.status === 500 ||\n error.response?.status === 503\n ) {\n return Promise.reject(error);\n } else {\n // 그 외의 에러도 throw\n }\n return Promise.reject(error);\n }\n );\n\n return instance;\n}\n\n/**\n * HTTP 클라이언트 생성 함수\n * @param {Function} useAuthStore - 인증 스토어 함수\n * @returns {Object} HTTP 클라이언트 객체\n */\nexport function createHttpClient(useAuthStore) {\n // 절대 URL 사용 (프록시 설정 사용)\n // locale prefix가 있는 프로젝트에서도 정확한 경로로 요청하기 위해 절대 URL 사용\n let baseURL = '';\n if (typeof window !== 'undefined' && window.location) {\n baseURL = window.location.origin;\n }\n\n const axiosInstance = axios.create({\n baseURL,\n withCredentials: true,\n headers: {\n Accept: '*/*',\n 'Content-Type': 'application/json',\n },\n });\n\n // Interceptor 추가\n addInterceptor(axiosInstance, useAuthStore);\n\n /**\n * GET 요청\n * @param {string} path - API 경로\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function get(path, config = {}) {\n const response = await axiosInstance.get(path, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n /**\n * POST 요청\n * @param {string} path - API 경로\n * @param {any} data - 요청 본문\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function post(path, data, config = {}) {\n const response = await axiosInstance.post(path, data, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n /**\n * PUT 요청\n * @param {string} path - API 경로\n * @param {any} data - 요청 본문\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function put(path, data, config = {}) {\n const response = await axiosInstance.put(path, data, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n /**\n * DELETE 요청\n * @param {string} path - API 경로\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function del(path, config = {}) {\n const response = await axiosInstance.delete(path, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n return {\n get,\n post,\n put,\n delete: del,\n defaults: {\n headers: {\n common: {},\n },\n },\n };\n}\n\nexport { createHttpClient as default };\n","/**\n * Portal API 클라이언트\n * @param {import('../http.js').default} httpClient - HTTP 클라이언트 인스턴스\n */\nclass PortalClient {\n constructor(httpClient) {\n this.httpClient = httpClient;\n }\n\n /** Auth */\n\n /**\n * 로그인\n * @param {Object} data - LoginRequestDto\n * @param {string} data.account_id\n * @param {string} data.password\n * @returns {Promise<Object>} LoginResponseDto\n */\n async login(data) {\n const res = await this.httpClient.post('/oasis/auth/user/login', data);\n return res.data.data;\n }\n\n /**\n * 내 정보 조회\n * @returns {Promise<Object>} MyResponseDto\n */\n async my() {\n const res = await this.httpClient.get('/oasis/auth/user/info');\n return res.data.data;\n }\n\n /**\n * 로그아웃\n * @returns {Promise<void>}\n */\n async logout() {\n await this.httpClient.post('/oasis/auth/user/logout');\n }\n\n /**\n * 토큰 갱신\n * @returns {Promise<Object>} LoginResponseDto\n */\n async refresh() {\n const res = await this.httpClient.post('/oasis/auth/user/refresh');\n return res.data.data;\n }\n\n /** Assistant */\n\n /**\n * 비서 사용자 정보 조회\n * @returns {Promise<Object>} AssistantUserResponseDto\n */\n async assistantUser() {\n const res = await this.httpClient.get('/oasis/portal/assistant/user');\n return res.data.data;\n }\n\n /**\n * 특정 비서 상세 조회\n * @param {string} assistantUuid - 비서 UUID\n * @returns {Promise<Object>} AssistantInfoResponseDto\n */\n async assistantInfo(assistantUuid) {\n const res = await this.httpClient.get('/oasis/portal/assistant?uuid=' + assistantUuid);\n return res.data.data;\n }\n\n /**\n * 채팅용 비서 정보 조회\n * @param {string} assistantUuid - 비서 UUID\n * @returns {Promise<Object>} AssistantChatInfoResponseDto\n */\n async assistantChatInfo(assistantUuid) {\n const res = await this.httpClient.get(\n '/oasis/portal/assistant/' + assistantUuid + '/chat-info'\n );\n return res.data.data;\n }\n\n /**\n * 비서 생성\n * @param {Object} data - AssistantSaveRequestDto\n * @returns {Promise<Object>} AssistantInfoResponseDto\n */\n async createAssistant(data) {\n const res = await this.httpClient.post('/oasis/portal/assistant', data);\n return res.data.data;\n }\n\n /**\n * 비서 수정\n * @param {string} uuid - 비서 UUID\n * @param {Object} data - AssistantSaveRequestDto\n * @returns {Promise<Object>} AssistantInfoResponseDto\n */\n async updateAssistant(uuid, data) {\n const res = await this.httpClient.post('/oasis/portal/assistant/' + uuid, data);\n return res.data.data;\n }\n\n /**\n * 비서 삭제\n * @param {string} uuid - 비서 UUID\n * @returns {Promise<boolean>}\n */\n async deleteAssistant(uuid) {\n const res = await this.httpClient.delete('/oasis/portal/assistant/' + uuid);\n return res.data.data;\n }\n\n /**\n * 비서 사용자 목록 조회\n * @param {string} assistantUuid - 비서 UUID\n * @returns {Promise<Object>} AssistantVisibilityResponseDto\n */\n async getAssistantVisibility(assistantUuid) {\n const res = await this.httpClient.get('/oasis/portal/assistant/' + assistantUuid + '/users');\n return res.data.data;\n }\n\n /**\n * 비서 사용자 등록\n * @param {string} assistantUuid - 비서 UUID\n * @param {Object} data - AssistantVisibilityRequestDto\n * @returns {Promise<Array>} SearchUserResponseDto[]\n */\n async saveAssistantVisibility(assistantUuid, data) {\n const res = await this.httpClient.post(\n '/oasis/portal/assistant/' + assistantUuid + '/users',\n data\n );\n return res.data.data;\n }\n\n /**\n * 테넌트 모델 목록 조회\n * @returns {Promise<Array>} ModelInfoResponseDto[]\n */\n async modelInfos() {\n const res = await this.httpClient.get('/oasis/portal/assistant/models');\n return res.data.data;\n }\n\n /**\n * 비서 mcp 서버 목록 조회\n * @returns {Promise<Array>} McpServerResponseDto[]\n */\n async mcpServers() {\n const res = await this.httpClient.get('/oasis/portal/assistant/mcp-servers');\n return res.data.data;\n }\n\n /**\n * 워크스페이스 내 사용자 실시간 검색\n * @param {string} keyword - 검색 키워드\n * @returns {Promise<Array>} SearchUserResponseDto[]\n */\n async searchUsers(keyword) {\n const res = await this.httpClient.get('/oasis/portal/user/search?keyword=' + keyword);\n return res.data.data;\n }\n}\n\n/**\n * Portal 클라이언트 인스턴스 생성 함수\n * @param {import('../http.js').default} httpClient - HTTP 클라이언트 인스턴스\n * @returns {PortalClient}\n */\nexport function createPortalClient(httpClient) {\n return new PortalClient(httpClient);\n}\n\nexport default PortalClient;\n","import './style.css';\nimport buttonImageUrl from './assets/button.png';\nimport { clsx } from './utils/clsx.js';\nimport { createAuthStore } from './service/authStore.js';\nimport { createHttpClient } from './service/http.js';\nimport { createPortalClient } from './service/apis/portal.js';\n\n// 싱글톤 인스턴스 관리\nlet authStoreInstance = null;\nlet httpClientInstance = null;\nlet portalClientInstance = null;\n\n/**\n * 클라이언트 인스턴스 초기화 (싱글톤)\n */\nfunction initializeClients() {\n if (!authStoreInstance) {\n authStoreInstance = createAuthStore();\n httpClientInstance = createHttpClient(authStoreInstance);\n portalClientInstance = createPortalClient(httpClientInstance);\n authStoreInstance.setPortalClient(portalClientInstance);\n }\n return {\n authStore: authStoreInstance,\n httpClient: httpClientInstance,\n portalClient: portalClientInstance,\n };\n}\n\n/**\n * 로그인 처리\n * @param {string} accountId - 계정 ID\n * @param {string} password - 비밀번호\n * @param {Object} clients - 클라이언트 인스턴스들\n * @returns {Promise<boolean>} 로그인 성공 여부\n */\nasync function handleLogin(accountId, password, clients) {\n try {\n const { authStore, portalClient } = clients;\n\n // 로그인 요청\n const loginData = await portalClient.login({\n account_id: accountId,\n password: password,\n });\n\n // 로그인 성공 시 상태 업데이트\n const { login, authMe } = authStore.getState();\n login(loginData);\n\n // 사용자 정보 조회 및 저장\n const myData = await portalClient.my();\n authMe(myData);\n\n return true;\n } catch (error) {\n console.error('로그인 실패:', error);\n return false;\n }\n}\n\n// 전역 채팅창 인스턴스 관리 (싱글톤)\nlet globalChatWindowControl = null;\n\n/**\n * 채팅창 생성 및 관리\n * @param {HTMLElement} buttonContainer - 버튼이 있는 컨테이너 요소\n */\nfunction createChatWindow(buttonContainer) {\n let isOpen = false;\n\n // 채팅창 컨테이너\n const chatWindow = document.createElement('div');\n chatWindow.className = clsx(\n 'absolute bottom-full right-0 mb-2 bg-blue-200',\n 'w-96 h-[500px]',\n 'bg-white rounded-lg shadow-2xl',\n 'flex flex-col',\n 'hidden'\n );\n chatWindow.style.zIndex = '1000';\n\n // 헤더\n const header = document.createElement('div');\n header.className = clsx(\n 'flex items-center justify-between',\n 'p-4 border-b border-gray-200',\n 'bg-gray-50 rounded-t-lg'\n );\n\n const title = document.createElement('h3');\n title.className = clsx('text-lg font-semibold text-gray-800');\n title.textContent = '채팅';\n\n const closeBtn = document.createElement('button');\n closeBtn.className = clsx(\n 'w-8 h-8',\n 'flex items-center justify-center',\n 'text-gray-500 hover:text-gray-700',\n 'rounded-full hover:bg-gray-200'\n );\n closeBtn.innerHTML = '×';\n closeBtn.style.fontSize = '24px';\n closeBtn.addEventListener('click', () => {\n chatWindow.classList.add('hidden');\n isOpen = false;\n });\n\n header.appendChild(title);\n header.appendChild(closeBtn);\n\n // 메시지 영역\n const messagesContainer = document.createElement('div');\n messagesContainer.className = clsx('flex-1 overflow-y-auto p-4 space-y-4', 'bg-white');\n\n // 입력 영역\n const inputContainer = document.createElement('div');\n inputContainer.className = clsx('p-4 border-t border-gray-200', 'bg-gray-50 rounded-b-lg');\n\n const inputWrapper = document.createElement('div');\n inputWrapper.className = clsx('flex gap-2');\n\n const messageInput = document.createElement('input');\n messageInput.type = 'text';\n messageInput.placeholder = '메시지를 입력하세요...';\n messageInput.className = clsx(\n 'flex-1 px-4 py-2',\n 'border border-gray-300 rounded-lg',\n 'focus:outline-none focus:ring-2 focus:ring-blue-500'\n );\n\n const sendBtn = document.createElement('button');\n sendBtn.className = clsx(\n 'px-4 py-2',\n 'bg-blue-500 text-white rounded-lg',\n 'hover:bg-blue-600',\n 'disabled:bg-gray-300 disabled:cursor-not-allowed'\n );\n sendBtn.textContent = '전송';\n\n const sendMessage = () => {\n const message = messageInput.value.trim();\n if (!message) return;\n\n // 사용자 메시지 표시\n const userMessage = document.createElement('div');\n userMessage.className = clsx('flex justify-end');\n const userMessageContent = document.createElement('div');\n userMessageContent.className = clsx(\n 'max-w-[80%] px-4 py-2',\n 'bg-blue-500 text-white rounded-lg'\n );\n userMessageContent.textContent = message;\n userMessage.appendChild(userMessageContent);\n messagesContainer.appendChild(userMessage);\n messagesContainer.scrollTop = messagesContainer.scrollHeight;\n\n messageInput.value = '';\n\n // 더미 응답 표시 (UI 테스트용)\n setTimeout(() => {\n const assistantMessage = document.createElement('div');\n assistantMessage.className = clsx('flex justify-start');\n const assistantMessageContent = document.createElement('div');\n assistantMessageContent.className = clsx(\n 'max-w-[80%] px-4 py-2',\n 'bg-gray-200 text-gray-800 rounded-lg'\n );\n assistantMessageContent.textContent = '안녕하세요! 도움이 필요하시면 언제든 말씀해주세요.';\n assistantMessage.appendChild(assistantMessageContent);\n messagesContainer.appendChild(assistantMessage);\n messagesContainer.scrollTop = messagesContainer.scrollHeight;\n }, 500);\n };\n\n sendBtn.addEventListener('click', sendMessage);\n messageInput.addEventListener('keypress', (e) => {\n if (e.key === 'Enter') {\n sendMessage();\n }\n });\n\n inputWrapper.appendChild(messageInput);\n inputWrapper.appendChild(sendBtn);\n inputContainer.appendChild(inputWrapper);\n\n chatWindow.appendChild(header);\n chatWindow.appendChild(messagesContainer);\n chatWindow.appendChild(inputContainer);\n\n // 채팅창 열기\n const openChat = () => {\n if (isOpen) {\n chatWindow.classList.remove('hidden');\n return;\n }\n\n chatWindow.classList.remove('hidden');\n isOpen = true;\n\n // 버튼 컨테이너에 추가되지 않았다면 추가\n if (buttonContainer && !buttonContainer.contains(chatWindow)) {\n buttonContainer.appendChild(chatWindow);\n }\n };\n\n return { openChat, chatWindow };\n}\n\nexport function createButton({ account_id, password, assistant_uuid } = {}) {\n // 버튼과 채팅창을 감싸는 컨테이너\n const container = document.createElement('div');\n container.className = clsx('relative');\n\n const button = document.createElement('button');\n button.type = 'button';\n button.className = clsx('relative bg-orange-200');\n\n const img = document.createElement('img');\n img.src = buttonImageUrl;\n img.alt = 'Button';\n img.className = clsx('w-12 h-12', 'rounded-full');\n\n button.appendChild(img);\n container.appendChild(button);\n\n // 버튼 클릭 이벤트\n button.addEventListener('click', (e) => {\n e.preventDefault();\n\n // 전역 채팅창 인스턴스 사용 (싱글톤)\n if (!globalChatWindowControl) {\n globalChatWindowControl = createChatWindow(container);\n }\n\n globalChatWindowControl.openChat();\n });\n\n // account_id와 password가 있으면 버튼 생성 시 로그인 수행\n if (account_id && password) {\n // 버튼 상태 업데이트 및 로그인 수행\n (async () => {\n // 로그인 중 표시\n button.disabled = true;\n button.style.opacity = '0.5';\n button.style.cursor = 'wait';\n\n // 클라이언트 초기화\n const clients = initializeClients();\n\n // 비동기로 로그인 수행\n handleLogin(account_id, password, clients)\n .then((loginSuccess) => {\n if (loginSuccess) {\n const { authStore } = clients;\n const state = authStore.getState();\n console.log('로그인 성공:', state.userName || state.accountId);\n\n // 버튼 활성화\n button.disabled = false;\n button.style.opacity = '';\n button.style.cursor = '';\n } else {\n console.error('로그인 실패');\n button.disabled = true;\n button.style.opacity = '0.3';\n button.title = '로그인 실패';\n }\n })\n .catch((error) => {\n console.error('로그인 처리 중 오류:', error);\n button.disabled = true;\n button.style.opacity = '0.3';\n button.title = '로그인 오류';\n });\n })();\n }\n\n return container;\n}\n","<script setup lang=\"ts\">\nimport { onMounted, onBeforeUnmount, ref, watch } from 'vue';\nimport { createButton } from '../index.js';\n// CSS를 명시적으로 import하여 Tailwind CSS가 Vue 빌드에 포함되도록 함\nimport '../style.css';\n\ninterface Props {\n account_id: string;\n password: string;\n assistant_uuid: string;\n}\n\nconst props = defineProps<Props>();\nconst root = ref<HTMLElement | null>(null);\n\nfunction render() {\n if (!root.value) return;\n root.value.innerHTML = '';\n const btn = createButton({\n ...props,\n });\n root.value.appendChild(btn);\n}\n\nonMounted(render);\nwatch(() => ({ ...props }), render, { deep: true });\nonBeforeUnmount(() => {\n if (root.value) root.value.innerHTML = '';\n});\n</script>\n\n<template>\n <div ref=\"root\" />\n</template>\n"],"names":["buttonImageUrl","clsx","args","decodeString","value","base64","binaryString","bytes","i","error","STORAGE_KEY","getStorageData","item","setStorageData","data","clearStorageData","partialize","state","createAuthStore","options","httpClient","portalClient","setState","updates","partialData","rehydrate","savedData","setHttpClient","client","setPortalClient","getState","authData","myData","workspaces","_a","ws","_b","hydrated","workspace","response","clearAuth","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","cb","asap","isIterable","utils$1","AxiosError","message","code","config","request","utils","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","h","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","e","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","event","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","signal","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","c","spread","callback","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","all","Cancel","formToJSON","shouldRefreshToken","useAuthStore","exp","currentTime","timeUntilExpiry","addInterceptor","refreshToken","logout","currentWorkspace","_c","_d","_e","_f","_g","createHttpClient","axiosInstance","get","post","put","del","PortalClient","assistantUuid","uuid","keyword","createPortalClient","authStoreInstance","httpClientInstance","portalClientInstance","initializeClients","handleLogin","accountId","password","clients","authStore","loginData","login","authMe","globalChatWindowControl","createChatWindow","buttonContainer","isOpen","chatWindow","title","closeBtn","messagesContainer","inputContainer","inputWrapper","messageInput","sendBtn","sendMessage","userMessage","userMessageContent","assistantMessage","assistantMessageContent","createButton","account_id","assistant_uuid","container","button","img","loginSuccess","__props","root","ref","render","btn","onMounted","watch","onBeforeUnmount","_createElementBlock"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52]}
1
+ {"version":3,"file":"index.es.js","sources":["../../src/app/assets/button.png","../../src/app/utils/clsx.js","../../src/app/service/authStore.js","../../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","../../src/app/service/http.js","../../src/app/service/apis/portal.js","../../src/app/index.js","../../src/wrapper/vue/OasisButton.vue"],"sourcesContent":["export default \"data:image/png;base64,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\"","/**\n * 클래스명을 결합하는 유틸 함수\n * @param {...string} args - 클래스명들\n * @returns {string} 공백으로 구분된 클래스명 문자열\n * @example\n * clsx('foo', 'bar') // => 'foo bar'\n */\nexport function clsx(...args) {\n return args.filter(Boolean).join(' ');\n}\n","/**\n * 워크스페이스 타입 정의\n * @typedef {Object} Workspace\n * @property {number} workspaceId\n * @property {string} workspaceUuid\n * @property {string} workspaceCode\n * @property {string} workspaceName\n * @property {boolean} isPrimary\n * @property {boolean} isAdmin\n */\n\n/**\n * Base64 디코딩 함수\n * @param {string | null} value - 디코딩할 Base64 문자열\n * @returns {string | null} 디코딩된 문자열 또는 null\n */\nconst decodeString = (value) => {\n if (!value) return null;\n try {\n // URL-safe Base64를 일반 Base64로 변환\n const base64 = value.replace(/-/g, '+').replace(/_/g, '/');\n\n // UTF-8 바이트를 올바르게 디코딩\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n // UTF-8 디코딩\n return new TextDecoder('utf-8').decode(bytes);\n } catch (error) {\n console.error('Base64 디코딩 실패:', error);\n return null;\n }\n};\n\n/**\n * localStorage 키 상수\n */\nconst STORAGE_KEY = 'auth-storage';\n\n/**\n * localStorage에서 데이터 가져오기\n * @returns {any} 저장된 값 또는 null\n */\nfunction getStorageData() {\n try {\n const item = localStorage.getItem(STORAGE_KEY);\n return item ? JSON.parse(item) : null;\n } catch (error) {\n console.error(`localStorage getItem error for ${STORAGE_KEY}:`, error);\n return null;\n }\n}\n\n/**\n * localStorage에 데이터 저장하기\n * @param {any} data - 저장할 데이터\n */\nfunction setStorageData(data) {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n } catch (error) {\n console.error(`localStorage setItem error for ${STORAGE_KEY}:`, error);\n }\n}\n\n/**\n * localStorage에서 데이터 삭제하기\n */\nfunction clearStorageData() {\n try {\n localStorage.removeItem(STORAGE_KEY);\n } catch (error) {\n console.error(`localStorage removeItem error for ${STORAGE_KEY}:`, error);\n }\n}\n\n/**\n * 선택적으로 저장할 필드만 추출 (partialize)\n * @param {Object} state - 전체 상태\n * @returns {Object} 저장할 필드만 추출한 객체\n */\nfunction partialize(state) {\n return {\n isAuthenticated: state.isAuthenticated,\n isTempPwLogin: state.isTempPwLogin,\n isHydrated: state.isHydrated,\n accountId: state.accountId,\n currentWorkspace: state.currentWorkspace,\n };\n}\n\n/**\n * 인증 스토어 생성\n * @param {Object} options - 옵션 객체\n * @param {Object} options.httpClient - HTTP 클라이언트 (refresh용, 선택적)\n * @param {Object} options.portalClient - Portal 클라이언트 (refresh용, 선택적)\n * @returns {Object} useAuthStore 객체\n */\nexport function createAuthStore(options = {}) {\n let { httpClient, portalClient } = options;\n\n // 초기 상태\n let state = {\n isAuthenticated: false,\n isTempPwLogin: null,\n isHydrated: false,\n // JWT 토큰 필드\n jti: null,\n iss: null,\n sub: null,\n iat: null,\n exp: null,\n // 테넌트 정보\n tenantId: null,\n tenantUuid: null,\n departments: null,\n groups: null,\n roles: null,\n // 사용자 정보\n userSeqId: null,\n userUuid: null,\n accountId: null,\n employeeId: null,\n tenantCode: null,\n metadata: null,\n companyCode: null,\n companyName: null,\n userName: null,\n userEmail: null,\n positionTitle: null,\n isTenantAdmin: null,\n isSystemAdmin: null,\n failLogin: null,\n // 워크스페이스 정보\n workspaces: null,\n currentWorkspace: null,\n };\n\n /**\n * 상태 업데이트 함수\n * @param {Object} updates - 업데이트할 상태 필드\n */\n function setState(updates) {\n state = { ...state, ...updates };\n // localStorage에 선택적 필드만 저장\n const partialData = partialize(state);\n setStorageData(partialData);\n }\n\n /**\n * localStorage에서 상태 복원\n */\n function rehydrate() {\n const savedData = getStorageData();\n if (savedData) {\n // 저장된 필드들을 상태에 복원\n if (savedData.isAuthenticated !== undefined) {\n state.isAuthenticated = savedData.isAuthenticated;\n }\n if (savedData.isTempPwLogin !== undefined) {\n state.isTempPwLogin = savedData.isTempPwLogin;\n }\n if (savedData.accountId !== undefined) {\n state.accountId = savedData.accountId;\n }\n if (savedData.currentWorkspace !== undefined) {\n state.currentWorkspace = savedData.currentWorkspace;\n }\n // hydration 완료 표시\n state.isHydrated = true;\n setState({ isHydrated: true });\n }\n }\n\n // 초기 로드 시 localStorage에서 복원\n rehydrate();\n\n /**\n * HTTP 클라이언트 설정 (순환 참조 해결을 위해 나중에 설정 가능)\n * @param {Object} client - HTTP 클라이언트\n */\n function setHttpClient(client) {\n httpClient = client;\n }\n\n /**\n * Portal 클라이언트 설정\n * @param {Object} client - Portal 클라이언트\n */\n function setPortalClient(client) {\n portalClient = client;\n }\n\n /**\n * 상태 가져오기\n * @returns {Object} 현재 상태\n */\n function getState() {\n return {\n ...state,\n /**\n * 로그인\n * @param {Object} authData - LoginResponseDto\n * @param {string} authData.access_token\n * @param {number} authData.exp\n * @param {boolean} authData.is_temp_pw_login\n */\n login: (authData) => {\n setState({\n isAuthenticated: true,\n isTempPwLogin: authData.is_temp_pw_login || false,\n exp: authData.exp,\n });\n },\n /**\n * 사용자 정보 설정 (authMe)\n * @param {Object} myData - MyResponseDto\n */\n authMe: (myData) => {\n const workspaces =\n myData.workspaces?.map((ws) => ({\n workspaceId: ws.workspace_id,\n workspaceUuid: ws.workspace_uuid,\n workspaceCode: ws.workspace_code,\n workspaceName: decodeString(ws.workspace_name) || '',\n isPrimary: ws.is_primary,\n isAdmin: ws.is_admin,\n })) || [];\n\n setState({\n accountId: myData.account_id,\n employeeId: myData.employee_id,\n metadata: decodeString(myData.metadata),\n tenantCode: myData.tenant_code,\n companyCode: myData.company_code,\n companyName: decodeString(myData.company_name),\n userName: decodeString(myData.user_name),\n userEmail: myData.user_email,\n positionTitle: decodeString(myData.position_title),\n isTenantAdmin: myData.is_tenant_admin,\n isSystemAdmin: myData.is_system_admin,\n failLogin: myData.fail_login,\n tenantId: myData.tenant_id?.toString(),\n tenantUuid: myData.tenant_uuid,\n userSeqId: myData.user_seq_id,\n userUuid: myData.user_uuid,\n workspaces,\n currentWorkspace: workspaces.find((ws) => ws.isPrimary) || workspaces[0] || null,\n });\n },\n /**\n * 임시 비밀번호 로그인 상태 업데이트\n * @param {boolean} value - 임시 비밀번호 로그인 여부\n */\n updateTempPwLogin: (value) => {\n setState({ isTempPwLogin: value });\n },\n /**\n * 로그아웃\n */\n logout: () => {\n setState({\n accountId: null,\n isAuthenticated: false,\n isTempPwLogin: null,\n exp: null,\n });\n },\n /**\n * Hydration 상태 설정\n * @param {boolean} hydrated - hydration 완료 여부\n */\n setHydrated: (hydrated) => {\n setState({ isHydrated: hydrated });\n },\n /**\n * 현재 워크스페이스 설정\n * @param {Workspace} workspace - 워크스페이스 정보\n */\n setCurrentWorkspace: (workspace) => {\n setState({ currentWorkspace: workspace });\n },\n /**\n * 토큰 갱신\n * @returns {Promise<boolean>} 성공 여부\n */\n async refreshToken() {\n try {\n if (!portalClient && !httpClient) {\n console.warn(\n 'portalClient 또는 httpClient가 설정되지 않아 토큰 갱신을 수행할 수 없습니다.'\n );\n return false;\n }\n\n let data;\n if (portalClient) {\n // portalClient를 우선 사용\n data = await portalClient.refresh();\n } else if (httpClient) {\n // httpClient를 사용하여 직접 호출\n const response = await httpClient.post('/oasis/auth/user/refresh');\n data = response.data?.data || response.data;\n }\n\n if (data?.exp) {\n // exp 값만 업데이트 (access_token은 쿠키로 관리되므로 불필요)\n setState({ exp: data.exp });\n return true;\n }\n\n return false;\n } catch (error) {\n console.error('토큰 갱신 중 오류:', error);\n return false;\n }\n },\n };\n }\n\n /**\n * 인증 정보 초기화\n */\n function clearAuth() {\n state = {\n isAuthenticated: false,\n isTempPwLogin: null,\n isHydrated: state.isHydrated, // hydration 상태는 유지\n jti: null,\n iss: null,\n sub: null,\n iat: null,\n exp: null,\n tenantId: null,\n tenantUuid: null,\n departments: null,\n groups: null,\n roles: null,\n userSeqId: null,\n userUuid: null,\n accountId: null,\n employeeId: null,\n tenantCode: null,\n metadata: null,\n companyCode: null,\n companyName: null,\n userName: null,\n userEmail: null,\n positionTitle: null,\n isTenantAdmin: null,\n isSystemAdmin: null,\n failLogin: null,\n workspaces: null,\n currentWorkspace: null,\n };\n clearStorageData();\n }\n\n return {\n getState,\n setHttpClient,\n setPortalClient,\n clearAuth,\n };\n}\n\n/**\n * 기본 useAuthStore 인스턴스 (순환 참조를 피하기 위해 나중에 설정 가능)\n */\nlet defaultAuthStore = null;\n\n/**\n * 기본 useAuthStore 설정\n * @param {Object} options - 옵션 객체\n */\nexport function initAuthStore(options = {}) {\n defaultAuthStore = createAuthStore(options);\n return defaultAuthStore;\n}\n\n/**\n * 기본 useAuthStore 가져오기\n * @returns {Object} useAuthStore 객체\n */\nexport function getAuthStore() {\n if (!defaultAuthStore) {\n // 초기화되지 않은 경우 기본 인스턴스 생성\n defaultAuthStore = createAuthStore();\n }\n return defaultAuthStore;\n}\n\nexport default getAuthStore;\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\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) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a 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 // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * 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, skipUndefined} = 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 if (!skipUndefined || !isUndefined(val)) {\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<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\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\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[toStringTag] === 'FormData' && thing[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 //Buffer check\n if (isBuffer(source)) {\n return source;\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\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\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 isEmptyObject,\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 isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\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 const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\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<any>} 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<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} 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 (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n 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<String|Number>} 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<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} 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}\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 {void}\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(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\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<any>} 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<string, any> | 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, this.parseReviver);\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.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(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 getSetCookie() {\n return this.get(\"set-cookie\") || [];\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(...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, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : 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 \"<scheme>://\" 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, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\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({...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, newConfig.allowAbsoluteUrls), 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 if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\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(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n 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 DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && 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\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\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 = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\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 request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\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' && /Load failed|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\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n 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\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\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\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\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, config);\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.13.1\";","'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 // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(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(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(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, config.allowAbsoluteUrls);\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 WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n 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","import axios from 'axios';\n\n/**\n * 토큰 만료 시간 체크 함수 (10분 전에 refresh)\n * @param {Function} useAuthStore - 인증 스토어 함수\n * @returns {boolean}\n */\nconst shouldRefreshToken = (useAuthStore) => {\n const { exp } = useAuthStore.getState();\n\n if (!exp) return false;\n\n const currentTime = Math.floor(Date.now() / 1000); // 현재 시간 (초)\n const timeUntilExpiry = exp - currentTime; // 만료까지 남은 시간 (초)\n const tenMinutes = 10 * 60; // 10분 (초)\n\n return timeUntilExpiry <= tenMinutes && timeUntilExpiry > 0;\n};\n\n/**\n * Interceptor 추가 함수\n * @param {import('axios').AxiosInstance} instance - Axios 인스턴스\n * @param {Function} useAuthStore - 인증 스토어 함수\n * @returns {import('axios').AxiosInstance}\n */\nfunction addInterceptor(instance, useAuthStore) {\n instance.interceptors.request.use(\n async (config) => {\n // 토큰이 만료되기 10분 전이면 refresh 요청\n if (!config.url?.includes('/auth/user/refresh') && shouldRefreshToken(useAuthStore)) {\n const { refreshToken } = useAuthStore.getState();\n const refreshSuccess = await refreshToken();\n\n if (!refreshSuccess) {\n // refresh 실패 시 로그아웃 처리\n const { logout } = useAuthStore.getState();\n logout();\n return Promise.reject(new Error('토큰 갱신 실패'));\n }\n }\n\n // current-workspace-id와 current-workspace-uuid 헤더 추가\n const { currentWorkspace } = useAuthStore.getState();\n if (currentWorkspace?.workspaceId) {\n config.headers['current-workspace-id'] = currentWorkspace.workspaceId.toString();\n }\n if (currentWorkspace?.workspaceUuid) {\n config.headers['current-workspace-uuid'] = currentWorkspace.workspaceUuid;\n }\n\n // 타임아웃 설정 (get, post, put만)\n if (config.method === 'get' || config.method === 'post' || config.method === 'put') {\n config.timeout = 600000;\n }\n\n return config;\n },\n (error) => Promise.reject(error)\n );\n\n instance.interceptors.response.use(\n (response) => response,\n (error) => {\n // errorHandle 속성이 false로 설정된 경우 에러 핸들링 스킵\n if (\n error?.config &&\n Object.prototype.hasOwnProperty.call(error.config, 'errorHandle') &&\n !error.config.errorHandle\n ) {\n return Promise.reject(error);\n }\n\n if (error.response?.status === 401 || error.response?.status === 403) {\n const { logout } = useAuthStore.getState();\n logout();\n } else if (error.code === 'ECONNABORTED') {\n // CORS 가 처리된 외부 요청인데 타임아웃이 발생된 경우\n if (error.config && !error.config.withCredentials) {\n // 처리 로직 필요 시 추가\n }\n // 400 - BAD_REQUEST(명시적 에러)\n // 402 - BLOCKCHAIN ERROR\n // 500 - INTERNAL_SERVER_ERROR\n } else if (\n error.response?.status === 400 ||\n error.response?.status === 402 ||\n error.response?.status === 412 ||\n error.response?.status === 500 ||\n error.response?.status === 503\n ) {\n return Promise.reject(error);\n } else {\n // 그 외의 에러도 throw\n }\n return Promise.reject(error);\n }\n );\n\n return instance;\n}\n\n/**\n * HTTP 클라이언트 생성 함수\n * @param {Function} useAuthStore - 인증 스토어 함수\n * @returns {Object} HTTP 클라이언트 객체\n */\nexport function createHttpClient(useAuthStore) {\n // 절대 URL 사용 (프록시 설정 사용)\n // locale prefix가 있는 프로젝트에서도 정확한 경로로 요청하기 위해 절대 URL 사용\n let baseURL = '';\n if (typeof window !== 'undefined' && window.location) {\n baseURL = window.location.origin;\n }\n\n const axiosInstance = axios.create({\n baseURL,\n withCredentials: true,\n headers: {\n Accept: '*/*',\n 'Content-Type': 'application/json',\n },\n });\n\n // Interceptor 추가\n addInterceptor(axiosInstance, useAuthStore);\n\n /**\n * GET 요청\n * @param {string} path - API 경로\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function get(path, config = {}) {\n const response = await axiosInstance.get(path, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n /**\n * POST 요청\n * @param {string} path - API 경로\n * @param {any} data - 요청 본문\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function post(path, data, config = {}) {\n const response = await axiosInstance.post(path, data, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n /**\n * PUT 요청\n * @param {string} path - API 경로\n * @param {any} data - 요청 본문\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function put(path, data, config = {}) {\n const response = await axiosInstance.put(path, data, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n /**\n * DELETE 요청\n * @param {string} path - API 경로\n * @param {Object} config - axios 설정\n * @returns {Promise<Object>} 응답 데이터\n */\n async function del(path, config = {}) {\n const response = await axiosInstance.delete(path, config);\n return {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n };\n }\n\n return {\n get,\n post,\n put,\n delete: del,\n defaults: {\n headers: {\n common: {},\n },\n },\n };\n}\n\nexport { createHttpClient as default };\n","/**\n * Portal API 클라이언트\n * @param {import('../http.js').default} httpClient - HTTP 클라이언트 인스턴스\n */\nclass PortalClient {\n constructor(httpClient) {\n this.httpClient = httpClient;\n }\n\n /** Auth */\n\n /**\n * 로그인\n * @param {Object} data - LoginRequestDto\n * @param {string} data.account_id\n * @param {string} data.password\n * @returns {Promise<Object>} LoginResponseDto\n */\n async login(data) {\n const res = await this.httpClient.post('/oasis/auth/user/login', data);\n return res.data.data;\n }\n\n /**\n * 내 정보 조회\n * @returns {Promise<Object>} MyResponseDto\n */\n async my() {\n const res = await this.httpClient.get('/oasis/auth/user/info');\n return res.data.data;\n }\n\n /**\n * 로그아웃\n * @returns {Promise<void>}\n */\n async logout() {\n await this.httpClient.post('/oasis/auth/user/logout');\n }\n\n /**\n * 토큰 갱신\n * @returns {Promise<Object>} LoginResponseDto\n */\n async refresh() {\n const res = await this.httpClient.post('/oasis/auth/user/refresh');\n return res.data.data;\n }\n\n /** Assistant */\n\n /**\n * 비서 사용자 정보 조회\n * @returns {Promise<Object>} AssistantUserResponseDto\n */\n async assistantUser() {\n const res = await this.httpClient.get('/oasis/portal/assistant/user');\n return res.data.data;\n }\n\n /**\n * 특정 비서 상세 조회\n * @param {string} assistantUuid - 비서 UUID\n * @returns {Promise<Object>} AssistantInfoResponseDto\n */\n async assistantInfo(assistantUuid) {\n const res = await this.httpClient.get('/oasis/portal/assistant?uuid=' + assistantUuid);\n return res.data.data;\n }\n\n /**\n * 채팅용 비서 정보 조회\n * @param {string} assistantUuid - 비서 UUID\n * @returns {Promise<Object>} AssistantChatInfoResponseDto\n */\n async assistantChatInfo(assistantUuid) {\n const res = await this.httpClient.get(\n '/oasis/portal/assistant/' + assistantUuid + '/chat-info'\n );\n return res.data.data;\n }\n\n /**\n * 비서 생성\n * @param {Object} data - AssistantSaveRequestDto\n * @returns {Promise<Object>} AssistantInfoResponseDto\n */\n async createAssistant(data) {\n const res = await this.httpClient.post('/oasis/portal/assistant', data);\n return res.data.data;\n }\n\n /**\n * 비서 수정\n * @param {string} uuid - 비서 UUID\n * @param {Object} data - AssistantSaveRequestDto\n * @returns {Promise<Object>} AssistantInfoResponseDto\n */\n async updateAssistant(uuid, data) {\n const res = await this.httpClient.post('/oasis/portal/assistant/' + uuid, data);\n return res.data.data;\n }\n\n /**\n * 비서 삭제\n * @param {string} uuid - 비서 UUID\n * @returns {Promise<boolean>}\n */\n async deleteAssistant(uuid) {\n const res = await this.httpClient.delete('/oasis/portal/assistant/' + uuid);\n return res.data.data;\n }\n\n /**\n * 비서 사용자 목록 조회\n * @param {string} assistantUuid - 비서 UUID\n * @returns {Promise<Object>} AssistantVisibilityResponseDto\n */\n async getAssistantVisibility(assistantUuid) {\n const res = await this.httpClient.get('/oasis/portal/assistant/' + assistantUuid + '/users');\n return res.data.data;\n }\n\n /**\n * 비서 사용자 등록\n * @param {string} assistantUuid - 비서 UUID\n * @param {Object} data - AssistantVisibilityRequestDto\n * @returns {Promise<Array>} SearchUserResponseDto[]\n */\n async saveAssistantVisibility(assistantUuid, data) {\n const res = await this.httpClient.post(\n '/oasis/portal/assistant/' + assistantUuid + '/users',\n data\n );\n return res.data.data;\n }\n\n /**\n * 테넌트 모델 목록 조회\n * @returns {Promise<Array>} ModelInfoResponseDto[]\n */\n async modelInfos() {\n const res = await this.httpClient.get('/oasis/portal/assistant/models');\n return res.data.data;\n }\n\n /**\n * 비서 mcp 서버 목록 조회\n * @returns {Promise<Array>} McpServerResponseDto[]\n */\n async mcpServers() {\n const res = await this.httpClient.get('/oasis/portal/assistant/mcp-servers');\n return res.data.data;\n }\n\n /**\n * 워크스페이스 내 사용자 실시간 검색\n * @param {string} keyword - 검색 키워드\n * @returns {Promise<Array>} SearchUserResponseDto[]\n */\n async searchUsers(keyword) {\n const res = await this.httpClient.get('/oasis/portal/user/search?keyword=' + keyword);\n return res.data.data;\n }\n}\n\n/**\n * Portal 클라이언트 인스턴스 생성 함수\n * @param {import('../http.js').default} httpClient - HTTP 클라이언트 인스턴스\n * @returns {PortalClient}\n */\nexport function createPortalClient(httpClient) {\n return new PortalClient(httpClient);\n}\n\nexport default PortalClient;\n","import './style.css';\nimport buttonImageUrl from './assets/button.png';\nimport { clsx } from './utils/clsx.js';\nimport { createAuthStore } from './service/authStore.js';\nimport { createHttpClient } from './service/http.js';\nimport { createPortalClient } from './service/apis/portal.js';\n\n// 싱글톤 인스턴스 관리\nlet authStoreInstance = null;\nlet httpClientInstance = null;\nlet portalClientInstance = null;\n\n/**\n * 클라이언트 인스턴스 초기화 (싱글톤)\n */\nfunction initializeClients() {\n if (!authStoreInstance) {\n authStoreInstance = createAuthStore();\n httpClientInstance = createHttpClient(authStoreInstance);\n portalClientInstance = createPortalClient(httpClientInstance);\n authStoreInstance.setPortalClient(portalClientInstance);\n }\n return {\n authStore: authStoreInstance,\n httpClient: httpClientInstance,\n portalClient: portalClientInstance,\n };\n}\n\n/**\n * 로그인 처리\n * @param {string} accountId - 계정 ID\n * @param {string} password - 비밀번호\n * @param {Object} clients - 클라이언트 인스턴스들\n * @returns {Promise<boolean>} 로그인 성공 여부\n */\nasync function handleLogin(accountId, password, clients) {\n try {\n const { authStore, portalClient } = clients;\n\n // 로그인 요청\n const loginData = await portalClient.login({\n account_id: accountId,\n password: password,\n });\n\n // 로그인 성공 시 상태 업데이트\n const { login, authMe } = authStore.getState();\n login(loginData);\n\n // 사용자 정보 조회 및 저장\n const myData = await portalClient.my();\n authMe(myData);\n\n return true;\n } catch (error) {\n console.error('로그인 실패:', error);\n return false;\n }\n}\n\n// 전역 채팅창 인스턴스 관리 (싱글톤)\nlet globalChatWindowControl = null;\n\n/**\n * 채팅창 생성 및 관리\n * @param {HTMLElement} buttonContainer - 버튼이 있는 컨테이너 요소\n */\nfunction createChatWindow(buttonContainer) {\n let isOpen = false;\n\n // 채팅창 컨테이너\n const chatWindow = document.createElement('div');\n chatWindow.className = clsx(\n 'absolute bottom-full right-0 mb-2 bg-blue-200',\n 'w-96 h-[500px]',\n 'bg-white rounded-lg shadow-2xl',\n 'flex flex-col',\n 'hidden'\n );\n chatWindow.style.zIndex = '1000';\n\n // 헤더\n const header = document.createElement('div');\n header.className = clsx(\n 'flex items-center justify-between',\n 'p-4 border-b border-gray-200',\n 'bg-gray-50 rounded-t-lg'\n );\n\n const title = document.createElement('h3');\n title.className = clsx('text-lg font-semibold text-gray-800');\n title.textContent = '채팅';\n\n const closeBtn = document.createElement('button');\n closeBtn.className = clsx(\n 'w-8 h-8',\n 'flex items-center justify-center',\n 'text-gray-500 hover:text-gray-700',\n 'rounded-full hover:bg-gray-200'\n );\n closeBtn.innerHTML = '×';\n closeBtn.style.fontSize = '24px';\n closeBtn.addEventListener('click', () => {\n chatWindow.classList.add('hidden');\n isOpen = false;\n });\n\n header.appendChild(title);\n header.appendChild(closeBtn);\n\n // 메시지 영역\n const messagesContainer = document.createElement('div');\n messagesContainer.className = clsx('flex-1 overflow-y-auto p-4 space-y-4', 'bg-white');\n\n // 입력 영역\n const inputContainer = document.createElement('div');\n inputContainer.className = clsx('p-4 border-t border-gray-200', 'bg-gray-50 rounded-b-lg');\n\n const inputWrapper = document.createElement('div');\n inputWrapper.className = clsx('flex gap-2');\n\n const messageInput = document.createElement('input');\n messageInput.type = 'text';\n messageInput.placeholder = '메시지를 입력하세요...';\n messageInput.className = clsx(\n 'flex-1 px-4 py-2',\n 'border border-gray-300 rounded-lg',\n 'focus:outline-none focus:ring-2 focus:ring-blue-500'\n );\n\n const sendBtn = document.createElement('button');\n sendBtn.className = clsx(\n 'px-4 py-2',\n 'bg-blue-500 text-white rounded-lg',\n 'hover:bg-blue-600',\n 'disabled:bg-gray-300 disabled:cursor-not-allowed'\n );\n sendBtn.textContent = '전송';\n\n const sendMessage = () => {\n const message = messageInput.value.trim();\n if (!message) return;\n\n // 사용자 메시지 표시\n const userMessage = document.createElement('div');\n userMessage.className = clsx('flex justify-end');\n const userMessageContent = document.createElement('div');\n userMessageContent.className = clsx(\n 'max-w-[80%] px-4 py-2',\n 'bg-blue-500 text-white rounded-lg'\n );\n userMessageContent.textContent = message;\n userMessage.appendChild(userMessageContent);\n messagesContainer.appendChild(userMessage);\n messagesContainer.scrollTop = messagesContainer.scrollHeight;\n\n messageInput.value = '';\n\n // 더미 응답 표시 (UI 테스트용)\n setTimeout(() => {\n const assistantMessage = document.createElement('div');\n assistantMessage.className = clsx('flex justify-start');\n const assistantMessageContent = document.createElement('div');\n assistantMessageContent.className = clsx(\n 'max-w-[80%] px-4 py-2',\n 'bg-gray-200 text-gray-800 rounded-lg'\n );\n assistantMessageContent.textContent = '안녕하세요! 도움이 필요하시면 언제든 말씀해주세요.';\n assistantMessage.appendChild(assistantMessageContent);\n messagesContainer.appendChild(assistantMessage);\n messagesContainer.scrollTop = messagesContainer.scrollHeight;\n }, 500);\n };\n\n sendBtn.addEventListener('click', sendMessage);\n messageInput.addEventListener('keypress', (e) => {\n if (e.key === 'Enter') {\n sendMessage();\n }\n });\n\n inputWrapper.appendChild(messageInput);\n inputWrapper.appendChild(sendBtn);\n inputContainer.appendChild(inputWrapper);\n\n chatWindow.appendChild(header);\n chatWindow.appendChild(messagesContainer);\n chatWindow.appendChild(inputContainer);\n\n // 채팅창 열기\n const openChat = () => {\n if (isOpen) {\n chatWindow.classList.remove('hidden');\n return;\n }\n\n chatWindow.classList.remove('hidden');\n isOpen = true;\n\n // 버튼 컨테이너에 추가되지 않았다면 추가\n if (buttonContainer && !buttonContainer.contains(chatWindow)) {\n buttonContainer.appendChild(chatWindow);\n }\n };\n\n return { openChat, chatWindow };\n}\n\nexport function createButton({ account_id, password, assistant_uuid } = {}) {\n // 버튼과 채팅창을 감싸는 컨테이너\n const container = document.createElement('div');\n container.className = clsx('relative');\n\n const button = document.createElement('button');\n button.type = 'button';\n button.className = clsx('relative bg-orange-200');\n\n const img = document.createElement('img');\n img.src = buttonImageUrl;\n img.alt = 'Button';\n img.className = clsx('w-12 h-12', 'rounded-full');\n\n button.appendChild(img);\n container.appendChild(button);\n\n // 버튼 클릭 이벤트\n button.addEventListener('click', (e) => {\n e.preventDefault();\n\n // 전역 채팅창 인스턴스 사용 (싱글톤)\n if (!globalChatWindowControl) {\n globalChatWindowControl = createChatWindow(container);\n }\n\n globalChatWindowControl.openChat();\n });\n\n // account_id와 password가 있으면 버튼 생성 시 로그인 수행\n if (account_id && password) {\n // 버튼 상태 업데이트 및 로그인 수행\n (async () => {\n // 로그인 중 표시\n button.disabled = true;\n button.style.opacity = '0.5';\n button.style.cursor = 'wait';\n\n // 클라이언트 초기화\n const clients = initializeClients();\n\n // 비동기로 로그인 수행\n handleLogin(account_id, password, clients)\n .then((loginSuccess) => {\n if (loginSuccess) {\n const { authStore } = clients;\n const state = authStore.getState();\n console.log('로그인 성공:', state.userName || state.accountId);\n\n // 버튼 활성화\n button.disabled = false;\n button.style.opacity = '';\n button.style.cursor = '';\n } else {\n console.error('로그인 실패');\n button.disabled = true;\n button.style.opacity = '0.3';\n button.title = '로그인 실패';\n }\n })\n .catch((error) => {\n console.error('로그인 처리 중 오류:', error);\n button.disabled = true;\n button.style.opacity = '0.3';\n button.title = '로그인 오류';\n });\n })();\n }\n\n return container;\n}\n","<script setup lang=\"ts\">\nimport { onMounted, onBeforeUnmount, ref, watch } from 'vue';\nimport { createButton } from '../../app/index.js';\n\ninterface Props {\n account_id: string;\n password: string;\n assistant_uuid: string;\n}\n\nconst props = defineProps<Props>();\nconst root = ref<HTMLElement | null>(null);\n\nfunction render() {\n if (!root.value) return;\n root.value.innerHTML = '';\n const btn = createButton({\n ...props,\n });\n root.value.appendChild(btn);\n}\n\nonMounted(render);\nwatch(() => ({ ...props }), render, { deep: true });\nonBeforeUnmount(() => {\n if (root.value) root.value.innerHTML = '';\n});\n</script>\n\n<template>\n <div ref=\"root\" />\n</template>\n"],"names":["buttonImageUrl","clsx","args","decodeString","value","base64","binaryString","bytes","i","error","STORAGE_KEY","getStorageData","item","setStorageData","data","clearStorageData","partialize","state","createAuthStore","options","httpClient","portalClient","setState","updates","partialData","rehydrate","savedData","setHttpClient","client","setPortalClient","getState","authData","myData","workspaces","_a","ws","_b","hydrated","workspace","response","clearAuth","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","cb","asap","isIterable","utils$1","AxiosError","message","code","config","request","utils","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","h","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","e","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","event","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","signal","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","c","spread","callback","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","all","Cancel","formToJSON","shouldRefreshToken","useAuthStore","exp","currentTime","timeUntilExpiry","addInterceptor","refreshToken","logout","currentWorkspace","_c","_d","_e","_f","_g","createHttpClient","axiosInstance","get","post","put","del","PortalClient","assistantUuid","uuid","keyword","createPortalClient","authStoreInstance","httpClientInstance","portalClientInstance","initializeClients","handleLogin","accountId","password","clients","authStore","loginData","login","authMe","globalChatWindowControl","createChatWindow","buttonContainer","isOpen","chatWindow","title","closeBtn","messagesContainer","inputContainer","inputWrapper","messageInput","sendBtn","sendMessage","userMessage","userMessageContent","assistantMessage","assistantMessageContent","createButton","account_id","assistant_uuid","container","button","img","loginSuccess","__props","root","ref","render","btn","onMounted","watch","onBeforeUnmount","_createElementBlock"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52]}