@oxyhq/services 0.1.1 → 0.1.3
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.
- package/dist/bundle.js +1 -1
- package/dist/bundle.js.LICENSE.txt +9 -1
- package/dist/index.js +2 -33
- package/dist/index.js.LICENSE.txt +9 -0
- package/package.json +7 -3
- package/dist/backend/auth.js +0 -81
- package/dist/backend/index.js +0 -20
- package/dist/backend/karma.js +0 -83
- package/dist/backend/users.js +0 -87
- package/dist/backend/wallet.js +0 -68
- package/dist/frontend/context/OxyContext.js +0 -97
- package/dist/frontend/hooks/useAuth.js +0 -234
- package/dist/frontend/hooks/useKarma.js +0 -187
- package/dist/frontend/hooks/useUser.js +0 -136
- package/dist/frontend/hooks/useWallet.js +0 -174
- package/dist/frontend/index.js +0 -14
- package/dist/shared/api-client.js +0 -197
- package/dist/shared/types.js +0 -2
package/dist/bundle.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see bundle.js.LICENSE.txt */
|
|
2
|
-
(()=>{"use strict";var e={109:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OxyAuthBackend=void 0;const n=r(442);t.OxyAuthBackend=class{constructor(e){this.apiClient=new n.ApiClient({apiUrl:e})}async login(e){return this.apiClient.request({method:"POST",url:"/auth/login",data:e})}async register(e){return this.apiClient.request({method:"POST",url:"/auth/signup",data:e})}async refreshToken(e){return this.apiClient.request({method:"POST",url:"/auth/refresh-token",data:{refreshToken:e}})}async logout(e){return this.apiClient.request({method:"POST",url:"/auth/logout",data:{refreshToken:e}})}async validateToken(e){return this.apiClient.request({method:"POST",url:"/auth/validate-token",data:{token:e}})}async getCurrentUser(e){return this.apiClient.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${e}`}})}async checkUsernameAvailability(e){return this.apiClient.request({method:"GET",url:`/auth/check-username/${e}`})}}},156:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.useOxyContext=t.OxyProvider=t.useWallet=t.useKarma=t.useUser=t.useAuth=t.OxyWalletBackend=t.OxyKarmaBackend=t.OxyUsersBackend=t.OxyAuthBackend=void 0,s(r(817),t);var o=r(467);Object.defineProperty(t,"OxyAuthBackend",{enumerable:!0,get:function(){return o.OxyAuthBackend}}),Object.defineProperty(t,"OxyUsersBackend",{enumerable:!0,get:function(){return o.OxyUsersBackend}}),Object.defineProperty(t,"OxyKarmaBackend",{enumerable:!0,get:function(){return o.OxyKarmaBackend}}),Object.defineProperty(t,"OxyWalletBackend",{enumerable:!0,get:function(){return o.OxyWalletBackend}});var a=r(881);Object.defineProperty(t,"useAuth",{enumerable:!0,get:function(){return a.useAuth}}),Object.defineProperty(t,"useUser",{enumerable:!0,get:function(){return a.useUser}}),Object.defineProperty(t,"useKarma",{enumerable:!0,get:function(){return a.useKarma}}),Object.defineProperty(t,"useWallet",{enumerable:!0,get:function(){return a.useWallet}}),Object.defineProperty(t,"OxyProvider",{enumerable:!0,get:function(){return a.OxyProvider}}),Object.defineProperty(t,"useOxyContext",{enumerable:!0,get:function(){return a.useOxyContext}})},182:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useUser=void 0;const n=r(953),s=r(442),o=r(772);t.useUser=e=>{const t=(0,o.useOxyContext)(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,a=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[i]=(0,n.useState)((()=>new s.ApiClient({apiUrl:r})));return{getUserById:(0,n.useCallback)((async e=>{try{return await i.request({method:"GET",url:`/users/${e}`,headers:a?{Authorization:`Bearer ${a()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get user profile"}}}),[i,a]),updateUserProfile:(0,n.useCallback)((async(e,t)=>{try{return a?await i.request({method:"PATCH",url:`/users/${e}`,data:t,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to update user profile"}}}),[i,a]),getPrivacySettings:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"GET",url:`/privacy/${e}`,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get privacy settings"}}}),[i,a]),updatePrivacySettings:(0,n.useCallback)((async(e,t)=>{try{return a?await i.request({method:"PATCH",url:`/privacy/${e}`,data:t,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to update privacy settings"}}}),[i,a]),searchUsers:(0,n.useCallback)((async(e,t=10)=>{try{return await i.request({method:"GET",url:"/users/search",params:{query:e,limit:t},headers:a?{Authorization:`Bearer ${a()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to search users"}}}),[i,a])}}},223:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OxyUsersBackend=void 0;const n=r(442);t.OxyUsersBackend=class{constructor(e){this.apiClient=new n.ApiClient({apiUrl:e})}async getUserById(e){return this.apiClient.request({method:"GET",url:`/users/${e}`})}async getUserByUsername(e){return this.apiClient.request({method:"GET",url:`/users/username/${e}`})}async updateUserProfile(e,t){return this.apiClient.request({method:"PUT",url:`/users/${e}`,data:t})}async updatePrivacySettings(e,t){return this.apiClient.request({method:"PUT",url:`/users/${e}/privacy`,data:t})}async getPrivacySettings(e){return this.apiClient.request({method:"GET",url:`/users/${e}/privacy`})}async getUserIdFromUsername(e){return this.apiClient.request({method:"GET",url:`/users/resolve/${e}`})}async followUser(e,t){return this.apiClient.request({method:"POST",url:`/users/${e}/follow`,data:{targetUserId:t}})}async unfollowUser(e,t){return this.apiClient.request({method:"POST",url:`/users/${e}/unfollow`,data:{targetUserId:t}})}}},317:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useKarma=void 0;const n=r(953),s=r(442),o=r(772);t.useKarma=e=>{const t=(0,o.useOxyContext)(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,a=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[i]=(0,n.useState)((()=>new s.ApiClient({apiUrl:r})));return{getUserKarma:(0,n.useCallback)((async e=>{try{return await i.request({method:"GET",url:`/karma/${e}/total`,headers:a?{Authorization:`Bearer ${a()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma"}}}),[i,a]),getUserKarmaHistory:(0,n.useCallback)((async(e,t,r)=>{try{if(!a)return{success:!1,error:"Authentication token is required"};const n={};return void 0!==t&&(n.limit=t.toString()),void 0!==r&&(n.offset=r.toString()),await i.request({method:"GET",url:`/karma/${e}/history`,params:n,headers:{Authorization:`Bearer ${a()||""}`}})}catch(e){return{success:!1,error:e.message||"Failed to get karma history"}}}),[i,a]),awardKarma:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"POST",url:"/karma/award",data:e,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to award karma"}}}),[i,a]),deductKarma:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"POST",url:"/karma/deduct",data:e,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to deduct karma"}}}),[i,a]),getKarmaLeaderboard:(0,n.useCallback)((async(e=10,t=0)=>{try{return await i.request({method:"GET",url:"/karma/leaderboard",params:{limit:e,offset:t},headers:a?{Authorization:`Bearer ${a()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma leaderboard"}}}),[i,a]),getKarmaRules:(0,n.useCallback)((async()=>{try{return await i.request({method:"GET",url:"/karma/rules",headers:a?{Authorization:`Bearer ${a()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma rules"}}}),[i,a]),createOrUpdateKarmaRule:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"POST",url:"/karma/rules",data:e,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to create or update karma rule"}}}),[i,a])}}},425:(e,t,r)=>{function n(e,t){return function(){return e.apply(t,arguments)}}const{toString:s}=Object.prototype,{getPrototypeOf:o}=Object,a=(i=Object.create(null),e=>{const t=s.call(e);return i[t]||(i[t]=t.slice(8,-1).toLowerCase())});var i;const c=e=>(e=e.toLowerCase(),t=>a(t)===e),u=e=>t=>typeof t===e,{isArray:l}=Array,d=u("undefined"),h=c("ArrayBuffer"),f=u("string"),p=u("function"),m=u("number"),y=e=>null!==e&&"object"==typeof e,g=e=>{if("object"!==a(e))return!1;const t=o(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},b=c("Date"),w=c("File"),O=c("Blob"),k=c("FileList"),T=c("URLSearchParams"),[v,S,E,x]=["ReadableStream","Request","Response","Headers"].map(c);function A(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,s;if("object"!=typeof e&&(e=[e]),l(e))for(n=0,s=e.length;n<s;n++)t.call(null,e[n],n,e);else{const s=r?Object.getOwnPropertyNames(e):Object.keys(e),o=s.length;let a;for(n=0;n<o;n++)a=s[n],t.call(null,e[a],a,e)}}function R(e,t){t=t.toLowerCase();const r=Object.keys(e);let n,s=r.length;for(;s-- >0;)if(n=r[s],t===n.toLowerCase())return n;return null}const C="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:r.g,P=e=>!d(e)&&e!==C,_=(U="undefined"!=typeof Uint8Array&&o(Uint8Array),e=>U&&e instanceof U);var U;const j=c("HTMLFormElement"),B=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),q=c("RegExp"),F=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};A(r,((r,s)=>{let o;!1!==(o=t(r,s,e))&&(n[s]=o||r)})),Object.defineProperties(e,n)},N=c("AsyncFunction"),L=(I="function"==typeof setImmediate,D=p(C.postMessage),I?setImmediate:D?($=`axios@${Math.random()}`,z=[],C.addEventListener("message",(({source:e,data:t})=>{e===C&&t===$&&z.length&&z.shift()()}),!1),e=>{z.push(e),C.postMessage($,"*")}):e=>setTimeout(e));var I,D,$,z;const M="undefined"!=typeof queueMicrotask?queueMicrotask.bind(C):"undefined"!=typeof process&&process.nextTick||L;var K={isArray:l,isArrayBuffer:h,isBuffer:function(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&p(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||p(e.append)&&("formdata"===(t=a(e))||"object"===t&&p(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&h(e.buffer),t},isString:f,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:y,isPlainObject:g,isReadableStream:v,isRequest:S,isResponse:E,isHeaders:x,isUndefined:d,isDate:b,isFile:w,isBlob:O,isRegExp:q,isFunction:p,isStream:e=>y(e)&&p(e.pipe),isURLSearchParams:T,isTypedArray:_,isFileList:k,forEach:A,merge:function e(){const{caseless:t}=P(this)&&this||{},r={},n=(n,s)=>{const o=t&&R(r,s)||s;g(r[o])&&g(n)?r[o]=e(r[o],n):g(n)?r[o]=e({},n):l(n)?r[o]=n.slice():r[o]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&A(arguments[e],n);return r},extend:(e,t,r,{allOwnKeys:s}={})=>(A(t,((t,s)=>{r&&p(t)?e[s]=n(t,r):e[s]=t}),{allOwnKeys:s}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let s,a,i;const c={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),a=s.length;a-- >0;)i=s[a],n&&!n(i,e,t)||c[i]||(t[i]=e[i],c[i]=!0);e=!1!==r&&o(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:c,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!m(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:j,hasOwnProperty:B,hasOwnProp:B,reduceDescriptors:F,freezeMethods:e=>{F(e,((t,r)=>{if(p(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];p(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return l(e)?n(e):n(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:R,global:C,isContextDefined:P,isSpecCompliantForm:function(e){return!!(e&&p(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),r=(e,n)=>{if(y(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const s=l(e)?[]:{};return A(e,((e,t)=>{const o=r(e,n+1);!d(o)&&(s[t]=o)})),t[n]=void 0,s}}return e};return r(e,0)},isAsyncFn:N,isThenable:e=>e&&(y(e)||p(e))&&p(e.then)&&p(e.catch),setImmediate:L,asap:M};function W(e,t,r,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),s&&(this.response=s,this.status=s.status?s.status:null)}K.inherits(W,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:K.toJSONObject(this.config),code:this.code,status:this.status}}});const G=W.prototype,H={};function J(e){return K.isPlainObject(e)||K.isArray(e)}function V(e){return K.endsWith(e,"[]")?e.slice(0,-2):e}function X(e,t,r){return e?e.concat(t).map((function(e,t){return e=V(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{H[e]={value:e}})),Object.defineProperties(W,H),Object.defineProperty(G,"isAxiosError",{value:!0}),W.from=(e,t,r,n,s,o)=>{const a=Object.create(G);return K.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),W.call(a,e.message,t,r,n,s),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};const Q=K.toFlatObject(K,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Z(e,t,r){if(!K.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=K.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!K.isUndefined(t[e])}))).metaTokens,s=r.visitor||u,o=r.dots,a=r.indexes,i=(r.Blob||"undefined"!=typeof Blob&&Blob)&&K.isSpecCompliantForm(t);if(!K.isFunction(s))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(K.isDate(e))return e.toISOString();if(!i&&K.isBlob(e))throw new W("Blob is not supported. Use a Buffer instead.");return K.isArrayBuffer(e)||K.isTypedArray(e)?i&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,r,s){let i=e;if(e&&!s&&"object"==typeof e)if(K.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(K.isArray(e)&&function(e){return K.isArray(e)&&!e.some(J)}(e)||(K.isFileList(e)||K.endsWith(r,"[]"))&&(i=K.toArray(e)))return r=V(r),i.forEach((function(e,n){!K.isUndefined(e)&&null!==e&&t.append(!0===a?X([r],n,o):null===a?r:r+"[]",c(e))})),!1;return!!J(e)||(t.append(X(s,r,o),c(e)),!1)}const l=[],d=Object.assign(Q,{defaultVisitor:u,convertValue:c,isVisitable:J});if(!K.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!K.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),K.forEach(r,(function(r,o){!0===(!(K.isUndefined(r)||null===r)&&s.call(t,r,K.isString(o)?o.trim():o,n,d))&&e(r,n?n.concat(o):[o])})),l.pop()}}(e),t}function Y(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ee(e,t){this._pairs=[],e&&Z(e,this,t)}const te=ee.prototype;function re(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ne(e,t,r){if(!t)return e;const n=r&&r.encode||re;K.isFunction(r)&&(r={serialize:r});const s=r&&r.serialize;let o;if(o=s?s(t,r):K.isURLSearchParams(t)?t.toString():new ee(t,r).toString(n),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}te.append=function(e,t){this._pairs.push([e,t])},te.toString=function(e){const t=e?function(t){return e.call(this,t,Y)}:Y;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var se=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){K.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},oe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ae={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ee,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ie="undefined"!=typeof window&&"undefined"!=typeof document,ce="object"==typeof navigator&&navigator||void 0,ue=ie&&(!ce||["ReactNative","NativeScript","NS"].indexOf(ce.product)<0),le="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,de=ie&&window.location.href||"http://localhost";var he={...Object.freeze({__proto__:null,hasBrowserEnv:ie,hasStandardBrowserWebWorkerEnv:le,hasStandardBrowserEnv:ue,navigator:ce,origin:de}),...ae};function fe(e){function t(e,r,n,s){let o=e[s++];if("__proto__"===o)return!0;const a=Number.isFinite(+o),i=s>=e.length;return o=!o&&K.isArray(n)?n.length:o,i?(K.hasOwnProp(n,o)?n[o]=[n[o],r]:n[o]=r,!a):(n[o]&&K.isObject(n[o])||(n[o]=[]),t(e,r,n[o],s)&&K.isArray(n[o])&&(n[o]=function(e){const t={},r=Object.keys(e);let n;const s=r.length;let o;for(n=0;n<s;n++)o=r[n],t[o]=e[o];return t}(n[o])),!a)}if(K.isFormData(e)&&K.isFunction(e.entries)){const r={};return K.forEachEntry(e,((e,n)=>{t(function(e){return K.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,r,0)})),r}return null}const pe={transitional:oe,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,s=K.isObject(e);if(s&&K.isHTMLForm(e)&&(e=new FormData(e)),K.isFormData(e))return n?JSON.stringify(fe(e)):e;if(K.isArrayBuffer(e)||K.isBuffer(e)||K.isStream(e)||K.isFile(e)||K.isBlob(e)||K.isReadableStream(e))return e;if(K.isArrayBufferView(e))return e.buffer;if(K.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Z(e,new he.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return he.isNode&&K.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((o=K.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Z(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||n?(t.setContentType("application/json",!1),function(e){if(K.isString(e))try{return(0,JSON.parse)(e),K.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||pe.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(K.isResponse(e)||K.isReadableStream(e))return e;if(e&&K.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw W.from(e,W.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:he.classes.FormData,Blob:he.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};K.forEach(["delete","get","head","post","put","patch"],(e=>{pe.headers[e]={}}));var me=pe;const ye=K.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ge=Symbol("internals");function be(e){return e&&String(e).trim().toLowerCase()}function we(e){return!1===e||null==e?e:K.isArray(e)?e.map(we):String(e)}function Oe(e,t,r,n,s){return K.isFunction(n)?n.call(this,t,r):(s&&(t=r),K.isString(t)?K.isString(n)?-1!==t.indexOf(n):K.isRegExp(n)?n.test(t):void 0:void 0)}class ke{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function s(e,t,r){const s=be(t);if(!s)throw new Error("header name must be a non-empty string");const o=K.findKey(n,s);(!o||void 0===n[o]||!0===r||void 0===r&&!1!==n[o])&&(n[o||t]=we(e))}const o=(e,t)=>K.forEach(e,((e,r)=>s(e,r,t)));if(K.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(K.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o((e=>{const t={};let r,n,s;return e&&e.split("\n").forEach((function(e){s=e.indexOf(":"),r=e.substring(0,s).trim().toLowerCase(),n=e.substring(s+1).trim(),!r||t[r]&&ye[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t})(e),t);else if(K.isHeaders(e))for(const[t,n]of e.entries())s(n,t,r);else null!=e&&s(t,e,r);return this}get(e,t){if(e=be(e)){const r=K.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(K.isFunction(t))return t.call(this,e,r);if(K.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=be(e)){const r=K.findKey(this,e);return!(!r||void 0===this[r]||t&&!Oe(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function s(e){if(e=be(e)){const s=K.findKey(r,e);!s||t&&!Oe(0,r[s],s,t)||(delete r[s],n=!0)}}return K.isArray(e)?e.forEach(s):s(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const s=t[r];e&&!Oe(0,this[s],s,e,!0)||(delete this[s],n=!0)}return n}normalize(e){const t=this,r={};return K.forEach(this,((n,s)=>{const o=K.findKey(r,s);if(o)return t[o]=we(n),void delete t[s];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(s):String(s).trim();a!==s&&delete t[s],t[a]=we(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return K.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&K.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[ge]=this[ge]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=be(e);t[n]||(function(e,t){const r=K.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,s){return this[n].call(this,t,e,r,s)},configurable:!0})}))}(r,e),t[n]=!0)}return K.isArray(e)?e.forEach(n):n(e),this}}ke.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),K.reduceDescriptors(ke.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),K.freezeMethods(ke);var Te=ke;function ve(e,t){const r=this||me,n=t||r,s=Te.from(n.headers);let o=n.data;return K.forEach(e,(function(e){o=e.call(r,o,s.normalize(),t?t.status:void 0)})),s.normalize(),o}function Se(e){return!(!e||!e.__CANCEL__)}function Ee(e,t,r){W.call(this,null==e?"canceled":e,W.ERR_CANCELED,t,r),this.name="CanceledError"}function xe(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new W("Request failed with status code "+r.status,[W.ERR_BAD_REQUEST,W.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}K.inherits(Ee,W,{__CANCEL__:!0});const Ae=(e,t,r=3)=>{let n=0;const s=function(e,t){e=e||10;const r=new Array(e),n=new Array(e);let s,o=0,a=0;return t=void 0!==t?t:1e3,function(i){const c=Date.now(),u=n[a];s||(s=c),r[o]=i,n[o]=c;let l=a,d=0;for(;l!==o;)d+=r[l++],l%=e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),c-s<t)return;const h=u&&c-u;return h?Math.round(1e3*d/h):void 0}}(50,250);return function(e,t){let r,n,s=0,o=1e3/t;const a=(t,o=Date.now())=>{s=o,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),i=t-s;i>=o?a(e,t):(r=e,n||(n=setTimeout((()=>{n=null,a(r)}),o-i)))},()=>r&&a(r)]}((r=>{const o=r.loaded,a=r.lengthComputable?r.total:void 0,i=o-n,c=s(i);n=o,e({loaded:o,total:a,progress:a?o/a:void 0,bytes:i,rate:c||void 0,estimated:c&&a&&o<=a?(a-o)/c:void 0,event:r,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),r)},Re=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},Ce=e=>(...t)=>K.asap((()=>e(...t)));var Pe=he.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,he.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(he.origin),he.navigator&&/(msie|trident)/i.test(he.navigator.userAgent)):()=>!0,_e=he.hasStandardBrowserEnv?{write(e,t,r,n,s,o){const a=[e+"="+encodeURIComponent(t)];K.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),K.isString(n)&&a.push("path="+n),K.isString(s)&&a.push("domain="+s),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Ue(e,t,r){let n=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&n||0==r?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const je=e=>e instanceof Te?{...e}:e;function Be(e,t){t=t||{};const r={};function n(e,t,r,n){return K.isPlainObject(e)&&K.isPlainObject(t)?K.merge.call({caseless:n},e,t):K.isPlainObject(t)?K.merge({},t):K.isArray(t)?t.slice():t}function s(e,t,r,s){return K.isUndefined(t)?K.isUndefined(e)?void 0:n(void 0,e,0,s):n(e,t,0,s)}function o(e,t){if(!K.isUndefined(t))return n(void 0,t)}function a(e,t){return K.isUndefined(t)?K.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(r,s,o){return o in t?n(r,s):o in e?n(void 0,r):void 0}const c={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:i,headers:(e,t,r)=>s(je(e),je(t),0,!0)};return K.forEach(Object.keys(Object.assign({},e,t)),(function(n){const o=c[n]||s,a=o(e[n],t[n],n);K.isUndefined(a)&&o!==i||(r[n]=a)})),r}var qe=e=>{const t=Be({},e);let r,{data:n,withXSRFToken:s,xsrfHeaderName:o,xsrfCookieName:a,headers:i,auth:c}=t;if(t.headers=i=Te.from(i),t.url=ne(Ue(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),K.isFormData(n))if(he.hasStandardBrowserEnv||he.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(!1!==(r=i.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}if(he.hasStandardBrowserEnv&&(s&&K.isFunction(s)&&(s=s(t)),s||!1!==s&&Pe(t.url))){const e=o&&a&&_e.read(a);e&&i.set(o,e)}return t},Fe="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){const n=qe(e);let s=n.data;const o=Te.from(n.headers).normalize();let a,i,c,u,l,{responseType:d,onUploadProgress:h,onDownloadProgress:f}=n;function p(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function y(){if(!m)return;const n=Te.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());xe((function(e){t(e),p()}),(function(e){r(e),p()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:n,config:e,request:m}),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=y:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(y)},m.onabort=function(){m&&(r(new W("Request aborted",W.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new W("Network Error",W.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const s=n.transitional||oe;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new W(t,s.clarifyTimeoutError?W.ETIMEDOUT:W.ECONNABORTED,e,m)),m=null},void 0===s&&o.setContentType(null),"setRequestHeader"in m&&K.forEach(o.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),K.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),d&&"json"!==d&&(m.responseType=n.responseType),f&&([c,l]=Ae(f,!0),m.addEventListener("progress",c)),h&&m.upload&&([i,u]=Ae(h),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(a=t=>{m&&(r(!t||t.type?new Ee(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const g=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(n.url);g&&-1===he.protocols.indexOf(g)?r(new W("Unsupported protocol "+g+":",W.ERR_BAD_REQUEST,e)):m.send(s||null)}))},Ne=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const s=function(e){if(!r){r=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof W?t:new Ee(t instanceof Error?t.message:t))}};let o=t&&setTimeout((()=>{o=null,s(new W(`timeout ${t} of ms exceeded`,W.ETIMEDOUT))}),t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(s):e.removeEventListener("abort",s)})),e=null)};e.forEach((e=>e.addEventListener("abort",s)));const{signal:i}=n;return i.unsubscribe=()=>K.asap(a),i}};const Le=function*(e,t){let r=e.byteLength;if(!t||r<t)return void(yield e);let n,s=0;for(;s<r;)n=s+t,yield e.slice(s,n),s=n},Ie=(e,t,r,n)=>{const s=async function*(e,t){for await(const r of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)break;yield r}}finally{await t.cancel()}}(e))yield*Le(r,t)}(e,t);let o,a=0,i=e=>{o||(o=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await s.next();if(t)return i(),void e.close();let o=n.byteLength;if(r){let e=a+=o;r(e)}e.enqueue(new Uint8Array(n))}catch(e){throw i(e),e}},cancel:e=>(i(e),s.return())},{highWaterMark:2})},De="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,$e=De&&"function"==typeof ReadableStream,ze=De&&("function"==typeof TextEncoder?(Me=new TextEncoder,e=>Me.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Me;const Ke=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},We=$e&&Ke((()=>{let e=!1;const t=new Request(he.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Ge=$e&&Ke((()=>K.isReadableStream(new Response("").body))),He={stream:Ge&&(e=>e.body)};var Je;De&&(Je=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!He[e]&&(He[e]=K.isFunction(Je[e])?t=>t[e]():(t,r)=>{throw new W(`Response type '${e}' is not supported`,W.ERR_NOT_SUPPORT,r)})})));const Ve={http:null,xhr:Fe,fetch:De&&(async e=>{let{url:t,method:r,data:n,signal:s,cancelToken:o,timeout:a,onDownloadProgress:i,onUploadProgress:c,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:h}=qe(e);u=u?(u+"").toLowerCase():"text";let f,p=Ne([s,o&&o.toAbortSignal()],a);const m=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let y;try{if(c&&We&&"get"!==r&&"head"!==r&&0!==(y=await(async(e,t)=>{const r=K.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(K.isBlob(e))return e.size;if(K.isSpecCompliantForm(e)){const t=new Request(he.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return K.isArrayBufferView(e)||K.isArrayBuffer(e)?e.byteLength:(K.isURLSearchParams(e)&&(e+=""),K.isString(e)?(await ze(e)).byteLength:void 0)})(t):r})(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(K.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=Re(y,Ae(Ce(c)));n=Ie(r.body,65536,e,t)}}K.isString(d)||(d=d?"include":"omit");const s="credentials"in Request.prototype;f=new Request(t,{...h,signal:p,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:s?d:void 0});let o=await fetch(f);const a=Ge&&("stream"===u||"response"===u);if(Ge&&(i||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=o[t]}));const t=K.toFiniteNumber(o.headers.get("content-length")),[r,n]=i&&Re(t,Ae(Ce(i),!0))||[];o=new Response(Ie(o.body,65536,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let g=await He[K.findKey(He,u)||"text"](o,e);return!a&&m&&m(),await new Promise(((t,r)=>{xe(t,r,{data:g,headers:Te.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:f})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new W("Network Error",W.ERR_NETWORK,e,f),{cause:t.cause||t});throw W.from(t,t&&t.code,e,f)}})};K.forEach(Ve,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Xe=e=>`- ${e}`,Qe=e=>K.isFunction(e)||null===e||!1===e;var Ze=e=>{e=K.isArray(e)?e:[e];const{length:t}=e;let r,n;const s={};for(let o=0;o<t;o++){let t;if(r=e[o],n=r,!Qe(r)&&(n=Ve[(t=String(r)).toLowerCase()],void 0===n))throw new W(`Unknown adapter '${t}'`);if(n)break;s[t||"#"+o]=n}if(!n){const e=Object.entries(s).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new W("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Xe).join("\n"):" "+Xe(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n};function Ye(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ee(null,e)}function et(e){return Ye(e),e.headers=Te.from(e.headers),e.data=ve.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ze(e.adapter||me.adapter)(e).then((function(t){return Ye(e),t.data=ve.call(e,e.transformResponse,t),t.headers=Te.from(t.headers),t}),(function(t){return Se(t)||(Ye(e),t&&t.response&&(t.response.data=ve.call(e,e.transformResponse,t.response),t.response.headers=Te.from(t.response.headers))),Promise.reject(t)}))}const tt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{tt[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const rt={};tt.transitional=function(e,t,r){function n(e,t){return"[Axios v1.8.3] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,s,o)=>{if(!1===e)throw new W(n(s," has been removed"+(t?" in "+t:"")),W.ERR_DEPRECATED);return t&&!rt[s]&&(rt[s]=!0,console.warn(n(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,s,o)}},tt.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};var nt={assertOptions:function(e,t,r){if("object"!=typeof e)throw new W("options must be an object",W.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let s=n.length;for(;s-- >0;){const o=n[s],a=t[o];if(a){const t=e[o],r=void 0===t||a(t,o,e);if(!0!==r)throw new W("option "+o+" must be "+r,W.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new W("Unknown option "+o,W.ERR_BAD_OPTION)}},validators:tt};const st=nt.validators;class ot{constructor(e){this.defaults=e,this.interceptors={request:new se,response:new se}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const r=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Be(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:s}=t;void 0!==r&&nt.assertOptions(r,{silentJSONParsing:st.transitional(st.boolean),forcedJSONParsing:st.transitional(st.boolean),clarifyTimeoutError:st.transitional(st.boolean)},!1),null!=n&&(K.isFunction(n)?t.paramsSerializer={serialize:n}:nt.assertOptions(n,{encode:st.function,serialize:st.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),nt.assertOptions(t,{baseUrl:st.spelling("baseURL"),withXsrfToken:st.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=s&&K.merge(s.common,s[t.method]);s&&K.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete s[e]})),t.headers=Te.concat(o,s);const a=[];let i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,d=0;if(!i){const e=[et.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);d<l;)u=u.then(e[d++],e[d++]);return u}l=a.length;let h=t;for(d=0;d<l;){const e=a[d++],t=a[d++];try{h=e(h)}catch(e){t.call(this,e);break}}try{u=et.call(this,h)}catch(e){return Promise.reject(e)}for(d=0,l=c.length;d<l;)u=u.then(c[d++],c[d++]);return u}getUri(e){return ne(Ue((e=Be(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}}K.forEach(["delete","get","head","options"],(function(e){ot.prototype[e]=function(t,r){return this.request(Be(r||{},{method:e,url:t,data:(r||{}).data}))}})),K.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,s){return this.request(Be(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}ot.prototype[e]=t(),ot.prototype[e+"Form"]=t(!0)}));var at=ot;class it{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const r=this;this.promise.then((e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,s){r.reason||(r.reason=new Ee(e,n,s),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new it((function(t){e=t})),cancel:e}}}var ct=it;const ut={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ut).forEach((([e,t])=>{ut[t]=e}));var lt=ut;const dt=function e(t){const r=new at(t),s=n(at.prototype.request,r);return K.extend(s,at.prototype,r,{allOwnKeys:!0}),K.extend(s,r,null,{allOwnKeys:!0}),s.create=function(r){return e(Be(t,r))},s}(me);dt.Axios=at,dt.CanceledError=Ee,dt.CancelToken=ct,dt.isCancel=Se,dt.VERSION="1.8.3",dt.toFormData=Z,dt.AxiosError=W,dt.Cancel=dt.CanceledError,dt.all=function(e){return Promise.all(e)},dt.spread=function(e){return function(t){return e.apply(null,t)}},dt.isAxiosError=function(e){return K.isObject(e)&&!0===e.isAxiosError},dt.mergeConfig=Be,dt.AxiosHeaders=Te,dt.formToJSON=e=>fe(K.isHTMLForm(e)?new FormData(e):e),dt.getAdapter=Ze,dt.HttpStatusCode=lt,dt.default=dt,e.exports=dt},442:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ApiClient=void 0;const s=n(r(425));t.ApiClient=class{constructor(e){this.config=e,this.axiosInstance=s.default.create({baseURL:e.apiUrl,headers:{"Content-Type":"application/json"}}),this.axiosInstance.interceptors.request.use((e=>{const t=this.getAccessToken();return t&&(e.headers.Authorization=`Bearer ${t}`),e}),(e=>Promise.reject(e))),this.axiosInstance.interceptors.response.use((e=>e),(async e=>{var t;const r=e.config;if(401===(null===(t=e.response)||void 0===t?void 0:t.status)&&!r._retry){r._retry=!0;try{const e=await this.refreshToken();if(e)return this.storeTokens(e),r.headers.Authorization=`Bearer ${e.accessToken}`,this.axiosInstance(r)}catch(e){return this.clearTokens(),Promise.reject(e)}}return Promise.reject(e)})),e.tokenRefreshInterval&&this.setupTokenRefresh(e.tokenRefreshInterval)}async request(e){var t;try{return(await this.axiosInstance.request(e)).data}catch(e){return(null===(t=e.response)||void 0===t?void 0:t.data)?e.response.data:{success:!1,error:e.message||"Network error"}}}getAccessToken(){if("undefined"==typeof window||"none"===this.config.storage)return null;switch(this.config.storage){case"local":default:return localStorage.getItem("oxy_access_token");case"session":return sessionStorage.getItem("oxy_access_token");case"cookie":const e=document.cookie.match(/(^|;)\s*oxy_access_token=([^;]+)/);return e?e[2]:null}}getRefreshToken(){if("undefined"==typeof window||"none"===this.config.storage)return null;switch(this.config.storage){case"local":default:return localStorage.getItem("oxy_refresh_token");case"session":return sessionStorage.getItem("oxy_refresh_token");case"cookie":const e=document.cookie.match(/(^|;)\s*oxy_refresh_token=([^;]+)/);return e?e[2]:null}}storeTokens(e){if("undefined"!=typeof window&&"none"!==this.config.storage)switch(this.config.storage){case"local":default:localStorage.setItem("oxy_access_token",e.accessToken),localStorage.setItem("oxy_refresh_token",e.refreshToken);break;case"session":sessionStorage.setItem("oxy_access_token",e.accessToken),sessionStorage.setItem("oxy_refresh_token",e.refreshToken);break;case"cookie":document.cookie=`oxy_access_token=${e.accessToken}; path=/;`,document.cookie=`oxy_refresh_token=${e.refreshToken}; path=/;`}}clearTokens(){if("undefined"!=typeof window&&"none"!==this.config.storage){switch(this.config.storage){case"local":default:localStorage.removeItem("oxy_access_token"),localStorage.removeItem("oxy_refresh_token");break;case"session":sessionStorage.removeItem("oxy_access_token"),sessionStorage.removeItem("oxy_refresh_token");break;case"cookie":document.cookie="oxy_access_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",document.cookie="oxy_refresh_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"}this.tokenRefreshTimeout&&(clearTimeout(this.tokenRefreshTimeout),this.tokenRefreshTimeout=void 0)}}async refreshToken(){const e=this.getRefreshToken();if(!e)return null;try{const t=await s.default.post(`${this.config.apiUrl}/auth/refresh-token`,{refreshToken:e});return t.data.success&&t.data.data?t.data.data:null}catch(e){return null}}setupTokenRefresh(e){"undefined"!=typeof window&&(this.tokenRefreshTimeout=setTimeout((async()=>{try{const e=await this.refreshToken();e&&this.storeTokens(e)}finally{this.setupTokenRefresh(e)}}),e))}}},467:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OxyBackend=t.OxyWalletBackend=t.OxyKarmaBackend=t.OxyUsersBackend=t.OxyAuthBackend=void 0;const n=r(109);Object.defineProperty(t,"OxyAuthBackend",{enumerable:!0,get:function(){return n.OxyAuthBackend}});const s=r(223);Object.defineProperty(t,"OxyUsersBackend",{enumerable:!0,get:function(){return s.OxyUsersBackend}});const o=r(947);Object.defineProperty(t,"OxyKarmaBackend",{enumerable:!0,get:function(){return o.OxyKarmaBackend}});const a=r(790);Object.defineProperty(t,"OxyWalletBackend",{enumerable:!0,get:function(){return a.OxyWalletBackend}}),t.OxyBackend=class{constructor(e){this.auth=new n.OxyAuthBackend(e),this.users=new s.OxyUsersBackend(e),this.karma=new o.OxyKarmaBackend(e),this.wallet=new a.OxyWalletBackend(e)}}},475:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAuth=void 0;const n=r(953),s=r(442),o=r(772);t.useAuth=e=>{const t=(0,o.useOxyContext)(),r=(null==e?void 0:e.apiUrl)||t.apiUrl;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[a]=(0,n.useState)((()=>new s.ApiClient({apiUrl:r}))),[i,c]=(0,n.useState)(null),[u,l]=(0,n.useState)(!1),[d,h]=(0,n.useState)(null),f=(0,n.useCallback)((()=>(null==e?void 0:e.storage)?"local"===e.storage?localStorage.getItem("accessToken"):"session"===e.storage?sessionStorage.getItem("accessToken"):null:t.getToken()),[t,null==e?void 0:e.storage]),p=(0,n.useCallback)((r=>{const n=(null==e?void 0:e.storage)||"local";(null==e?void 0:e.storage)||!t.setAuthTokens?"local"===n?(localStorage.setItem("accessToken",r.accessToken),localStorage.setItem("refreshToken",r.refreshToken)):"session"===n&&(sessionStorage.setItem("accessToken",r.accessToken),sessionStorage.setItem("refreshToken",r.refreshToken)):t.setAuthTokens(r)}),[t,null==e?void 0:e.storage]),m=(0,n.useCallback)((()=>{const r=(null==e?void 0:e.storage)||"local";(null==e?void 0:e.storage)||!t.clearAuth?"local"===r?(localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")):"session"===r&&(sessionStorage.removeItem("accessToken"),sessionStorage.removeItem("refreshToken")):t.clearAuth()}),[t,null==e?void 0:e.storage]),y=(0,n.useCallback)((async e=>{l(!0),h(null);try{const t=await a.request({method:"POST",url:"/auth/login",data:e});if(t.success&&t.data){p(t.data);const e=await a.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${t.data.accessToken}`}});e.success&&e.data&&c(e.data)}else h(t.error||"Login failed");return l(!1),t}catch(e){return h(e.message||"Login failed"),l(!1),{success:!1,error:e.message||"Login failed"}}}),[a,p]),g=(0,n.useCallback)((async e=>{l(!0),h(null);try{const t=await a.request({method:"POST",url:"/auth/register",data:e});if(t.success&&t.data){p(t.data);const e=await a.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${t.data.accessToken}`}});e.success&&e.data&&c(e.data)}else h(t.error||"Registration failed");return l(!1),t}catch(e){return h(e.message||"Registration failed"),l(!1),{success:!1,error:e.message||"Registration failed"}}}),[a,p]),b=(0,n.useCallback)((()=>{m(),c(null)}),[m]),w=(0,n.useCallback)((()=>!!f()),[f]),O=(0,n.useCallback)((async()=>{const e=f();if(!e)return{success:!1,error:"Not authenticated"};l(!0);try{const t=await a.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${e}`}});return t.success&&t.data&&c(t.data),l(!1),t}catch(e){return l(!1),{success:!1,error:e.message||"Failed to get user profile"}}}),[a,f]),k=(0,n.useCallback)((async()=>{const t=(null==e?void 0:e.storage)||"local";let r=null;if("local"===t?r=localStorage.getItem("refreshToken"):"session"===t&&(r=sessionStorage.getItem("refreshToken")),!r)return{success:!1,error:"No refresh token available"};try{const e=await a.request({method:"POST",url:"/auth/refresh",data:{refreshToken:r}});return e.success&&e.data&&p(e.data),e}catch(e){return{success:!1,error:e.message||"Failed to refresh token"}}}),[a,null==e?void 0:e.storage,p]);return{user:i,loading:u,error:d,login:y,register:g,logout:b,isAuthenticated:w(),getCurrentUser:O,refreshToken:k,getToken:f}}},592:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useWallet=void 0;const n=r(953),s=r(442),o=r(772);t.useWallet=e=>{const t=(0,o.useOxyContext)(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,a=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[i]=(0,n.useState)((()=>new s.ApiClient({apiUrl:r})));return{getWallet:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"GET",url:`/wallet/${e}`,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get wallet information"}}}),[i,a]),getTransactionHistory:(0,n.useCallback)((async(e,t=10,r=0)=>{try{return a?await i.request({method:"GET",url:`/wallet/transactions/${e}`,params:{limit:t,offset:r},headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get transaction history"}}}),[i,a]),transferFunds:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"POST",url:"/wallet/transfer",data:e,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to transfer funds"}}}),[i,a]),processPurchase:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"POST",url:"/wallet/purchase",data:e,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to process purchase"}}}),[i,a]),requestWithdrawal:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"POST",url:"/wallet/withdraw",data:e,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to request withdrawal"}}}),[i,a]),getTransaction:(0,n.useCallback)((async e=>{try{return a?await i.request({method:"GET",url:`/wallet/transaction/${e}`,headers:{Authorization:`Bearer ${a()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get transaction"}}}),[i,a])}}},772:function(e,t,r){var n,s=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),a=0;a<r.length;a++)"default"!==r[a]&&s(t,e,r[a]);return o(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.OxyProvider=t.useOxyContext=void 0;const i=a(r(953)),c=(0,i.createContext)({apiUrl:"",getToken:()=>null,isAuthenticated:!1,setAuthTokens:()=>{},clearAuth:()=>{}});t.useOxyContext=()=>(0,i.useContext)(c),t.OxyProvider=({children:e,apiUrl:t,storage:r="local",tokenRefreshInterval:n})=>{const[s,o]=(0,i.useState)(!1);(0,i.useEffect)((()=>{const e=a();o(!!e)}),[]);const a=()=>"local"===r?localStorage.getItem("accessToken"):"session"===r?sessionStorage.getItem("accessToken"):null,u={apiUrl:t,getToken:a,isAuthenticated:s,setAuthTokens:e=>{"local"===r?(localStorage.setItem("accessToken",e.accessToken),localStorage.setItem("refreshToken",e.refreshToken)):"session"===r&&(sessionStorage.setItem("accessToken",e.accessToken),sessionStorage.setItem("refreshToken",e.refreshToken)),o(!0)},clearAuth:()=>{"local"===r?(localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")):"session"===r&&(sessionStorage.removeItem("accessToken"),sessionStorage.removeItem("refreshToken")),o(!1)}};return i.default.createElement(c.Provider,{value:u},e)}},790:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OxyWalletBackend=void 0;const n=r(442);t.OxyWalletBackend=class{constructor(e){this.apiClient=new n.ApiClient({apiUrl:e})}async getWallet(e){return this.apiClient.request({method:"GET",url:`/wallet/${e}`})}async getTransactionHistory(e,t=10,r=0){return this.apiClient.request({method:"GET",url:`/wallet/transactions/${e}`,params:{limit:t,offset:r}})}async transferFunds(e){return this.apiClient.request({method:"POST",url:"/wallet/transfer",data:e})}async processPurchase(e){return this.apiClient.request({method:"POST",url:"/wallet/purchase",data:e})}async requestWithdrawal(e){return this.apiClient.request({method:"POST",url:"/wallet/withdraw",data:e})}async getTransaction(e){return this.apiClient.request({method:"GET",url:`/wallet/transaction/${e}`})}}},817:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},881:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useOxyContext=t.OxyProvider=t.useWallet=t.useKarma=t.useUser=t.useAuth=void 0;const n=r(475);Object.defineProperty(t,"useAuth",{enumerable:!0,get:function(){return n.useAuth}});const s=r(182);Object.defineProperty(t,"useUser",{enumerable:!0,get:function(){return s.useUser}});const o=r(317);Object.defineProperty(t,"useKarma",{enumerable:!0,get:function(){return o.useKarma}});const a=r(592);Object.defineProperty(t,"useWallet",{enumerable:!0,get:function(){return a.useWallet}});const i=r(772);Object.defineProperty(t,"OxyProvider",{enumerable:!0,get:function(){return i.OxyProvider}}),Object.defineProperty(t,"useOxyContext",{enumerable:!0,get:function(){return i.useOxyContext}})},947:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OxyKarmaBackend=void 0;const n=r(442);t.OxyKarmaBackend=class{constructor(e){this.apiClient=new n.ApiClient({apiUrl:e})}async getUserKarma(e){return this.apiClient.request({method:"GET",url:`/karma/${e}/total`})}async getUserKarmaHistory(e,t,r){const n={};return void 0!==t&&(n.limit=t.toString()),void 0!==r&&(n.offset=r.toString()),this.apiClient.request({method:"GET",url:`/karma/${e}/history`,params:n})}async awardKarma(e){return this.apiClient.request({method:"POST",url:"/karma/award",data:e})}async deductKarma(e){return this.apiClient.request({method:"POST",url:"/karma/deduct",data:e})}async getKarmaLeaderboard(e=10,t=0){return this.apiClient.request({method:"GET",url:"/karma/leaderboard",params:{limit:e,offset:t}})}async getKarmaRules(){return this.apiClient.request({method:"GET",url:"/karma/rules"})}async createOrUpdateKarmaRule(e){return this.apiClient.request({method:"POST",url:"/karma/rules",data:e})}}},953:e=>{e.exports=require("react")}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var n=r(156);module.exports=n})();
|
|
2
|
+
(()=>{"use strict";var e={20:(e,t,r)=>{var n=r(953),s=Symbol.for("react.element"),o=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),a=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};t.jsx=function(e,t,r){var n,c={},u=null,l=null;for(n in void 0!==r&&(u=""+r),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(l=t.ref),t)o.call(t,n)&&!i.hasOwnProperty(n)&&(c[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===c[n]&&(c[n]=t[n]);return{$$typeof:s,type:e,key:u,ref:l,props:c,_owner:a.current}}},848:(e,t,r)=>{e.exports=r(20)},953:e=>{e.exports=require("react")}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{OxyAuthBackend:()=>bt,OxyKarmaBackend:()=>kt,OxyProvider:()=>At,OxyUsersBackend:()=>Tt,OxyWalletBackend:()=>St,useAuth:()=>Ct,useKarma:()=>Pt,useOxyContext:()=>Rt,useUser:()=>xt,useWallet:()=>Ut});var s={};function o(e,t){return function(){return e.apply(t,arguments)}}r.r(s),r.d(s,{hasBrowserEnv:()=>de,hasStandardBrowserEnv:()=>fe,hasStandardBrowserWebWorkerEnv:()=>pe,navigator:()=>he,origin:()=>me});const{toString:a}=Object.prototype,{getPrototypeOf:i}=Object,c=(u=Object.create(null),e=>{const t=a.call(e);return u[t]||(u[t]=t.slice(8,-1).toLowerCase())});var u;const l=e=>(e=e.toLowerCase(),t=>c(t)===e),d=e=>t=>typeof t===e,{isArray:h}=Array,f=d("undefined"),p=l("ArrayBuffer"),m=d("string"),g=d("function"),y=d("number"),w=e=>null!==e&&"object"==typeof e,b=e=>{if("object"!==c(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},T=l("Date"),k=l("File"),S=l("Blob"),E=l("FileList"),O=l("URLSearchParams"),[v,R,A,C]=["ReadableStream","Request","Response","Headers"].map(l);function x(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,s;if("object"!=typeof e&&(e=[e]),h(e))for(n=0,s=e.length;n<s;n++)t.call(null,e[n],n,e);else{const s=r?Object.getOwnPropertyNames(e):Object.keys(e),o=s.length;let a;for(n=0;n<o;n++)a=s[n],t.call(null,e[a],a,e)}}function P(e,t){t=t.toLowerCase();const r=Object.keys(e);let n,s=r.length;for(;s-- >0;)if(n=r[s],t===n.toLowerCase())return n;return null}const U="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,_=e=>!f(e)&&e!==U,q=(B="undefined"!=typeof Uint8Array&&i(Uint8Array),e=>B&&e instanceof B);var B;const j=l("HTMLFormElement"),F=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),N=l("RegExp"),L=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};x(r,((r,s)=>{let o;!1!==(o=t(r,s,e))&&(n[s]=o||r)})),Object.defineProperties(e,n)},I=l("AsyncFunction"),D=($="function"==typeof setImmediate,z=g(U.postMessage),$?setImmediate:z?(M=`axios@${Math.random()}`,K=[],U.addEventListener("message",(({source:e,data:t})=>{e===U&&t===M&&K.length&&K.shift()()}),!1),e=>{K.push(e),U.postMessage(M,"*")}):e=>setTimeout(e));var $,z,M,K;const G="undefined"!=typeof queueMicrotask?queueMicrotask.bind(U):"undefined"!=typeof process&&process.nextTick||D,H={isArray:h,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=c(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:m,isNumber:y,isBoolean:e=>!0===e||!1===e,isObject:w,isPlainObject:b,isReadableStream:v,isRequest:R,isResponse:A,isHeaders:C,isUndefined:f,isDate:T,isFile:k,isBlob:S,isRegExp:N,isFunction:g,isStream:e=>w(e)&&g(e.pipe),isURLSearchParams:O,isTypedArray:q,isFileList:E,forEach:x,merge:function e(){const{caseless:t}=_(this)&&this||{},r={},n=(n,s)=>{const o=t&&P(r,s)||s;b(r[o])&&b(n)?r[o]=e(r[o],n):b(n)?r[o]=e({},n):h(n)?r[o]=n.slice():r[o]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&x(arguments[e],n);return r},extend:(e,t,r,{allOwnKeys:n}={})=>(x(t,((t,n)=>{r&&g(t)?e[n]=o(t,r):e[n]=t}),{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let s,o,a;const c={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)a=s[o],n&&!n(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&i(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:c,kindOfTest:l,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(h(e))return e;let t=e.length;if(!y(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:j,hasOwnProperty:F,hasOwnProp:F,reduceDescriptors:L,freezeMethods:e=>{L(e,((t,r)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];g(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return h(e)?n(e):n(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:P,global:U,isContextDefined:_,isSpecCompliantForm:function(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),r=(e,n)=>{if(w(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const s=h(e)?[]:{};return x(e,((e,t)=>{const o=r(e,n+1);!f(o)&&(s[t]=o)})),t[n]=void 0,s}}return e};return r(e,0)},isAsyncFn:I,isThenable:e=>e&&(w(e)||g(e))&&g(e.then)&&g(e.catch),setImmediate:D,asap:G};function W(e,t,r,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),s&&(this.response=s,this.status=s.status?s.status:null)}H.inherits(W,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:H.toJSONObject(this.config),code:this.code,status:this.status}}});const J=W.prototype,V={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{V[e]={value:e}})),Object.defineProperties(W,V),Object.defineProperty(J,"isAxiosError",{value:!0}),W.from=(e,t,r,n,s,o)=>{const a=Object.create(J);return H.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),W.call(a,e.message,t,r,n,s),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};const X=W;function Q(e){return H.isPlainObject(e)||H.isArray(e)}function Y(e){return H.endsWith(e,"[]")?e.slice(0,-2):e}function Z(e,t,r){return e?e.concat(t).map((function(e,t){return e=Y(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}const ee=H.toFlatObject(H,{},null,(function(e){return/^is[A-Z]/.test(e)})),te=function(e,t,r){if(!H.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=H.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!H.isUndefined(t[e])}))).metaTokens,s=r.visitor||u,o=r.dots,a=r.indexes,i=(r.Blob||"undefined"!=typeof Blob&&Blob)&&H.isSpecCompliantForm(t);if(!H.isFunction(s))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(H.isDate(e))return e.toISOString();if(!i&&H.isBlob(e))throw new X("Blob is not supported. Use a Buffer instead.");return H.isArrayBuffer(e)||H.isTypedArray(e)?i&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,r,s){let i=e;if(e&&!s&&"object"==typeof e)if(H.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(H.isArray(e)&&function(e){return H.isArray(e)&&!e.some(Q)}(e)||(H.isFileList(e)||H.endsWith(r,"[]"))&&(i=H.toArray(e)))return r=Y(r),i.forEach((function(e,n){!H.isUndefined(e)&&null!==e&&t.append(!0===a?Z([r],n,o):null===a?r:r+"[]",c(e))})),!1;return!!Q(e)||(t.append(Z(s,r,o),c(e)),!1)}const l=[],d=Object.assign(ee,{defaultVisitor:u,convertValue:c,isVisitable:Q});if(!H.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!H.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),H.forEach(r,(function(r,o){!0===(!(H.isUndefined(r)||null===r)&&s.call(t,r,H.isString(o)?o.trim():o,n,d))&&e(r,n?n.concat(o):[o])})),l.pop()}}(e),t};function re(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ne(e,t){this._pairs=[],e&&te(e,this,t)}const se=ne.prototype;se.append=function(e,t){this._pairs.push([e,t])},se.toString=function(e){const t=e?function(t){return e.call(this,t,re)}:re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const oe=ne;function ae(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ie(e,t,r){if(!t)return e;const n=r&&r.encode||ae;H.isFunction(r)&&(r={serialize:r});const s=r&&r.serialize;let o;if(o=s?s(t,r):H.isURLSearchParams(t)?t.toString():new oe(t,r).toString(n),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}const ce=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){H.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},le={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:oe,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},de="undefined"!=typeof window&&"undefined"!=typeof document,he="object"==typeof navigator&&navigator||void 0,fe=de&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),pe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,me=de&&window.location.href||"http://localhost",ge={...s,...le},ye=function(e){function t(e,r,n,s){let o=e[s++];if("__proto__"===o)return!0;const a=Number.isFinite(+o),i=s>=e.length;return o=!o&&H.isArray(n)?n.length:o,i?(H.hasOwnProp(n,o)?n[o]=[n[o],r]:n[o]=r,!a):(n[o]&&H.isObject(n[o])||(n[o]=[]),t(e,r,n[o],s)&&H.isArray(n[o])&&(n[o]=function(e){const t={},r=Object.keys(e);let n;const s=r.length;let o;for(n=0;n<s;n++)o=r[n],t[o]=e[o];return t}(n[o])),!a)}if(H.isFormData(e)&&H.isFunction(e.entries)){const r={};return H.forEachEntry(e,((e,n)=>{t(function(e){return H.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,r,0)})),r}return null},we={transitional:ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,s=H.isObject(e);if(s&&H.isHTMLForm(e)&&(e=new FormData(e)),H.isFormData(e))return n?JSON.stringify(ye(e)):e;if(H.isArrayBuffer(e)||H.isBuffer(e)||H.isStream(e)||H.isFile(e)||H.isBlob(e)||H.isReadableStream(e))return e;if(H.isArrayBufferView(e))return e.buffer;if(H.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new ge.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return ge.isNode&&H.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((o=H.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return te(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||n?(t.setContentType("application/json",!1),function(e){if(H.isString(e))try{return(0,JSON.parse)(e),H.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||we.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(H.isResponse(e)||H.isReadableStream(e))return e;if(e&&H.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw X.from(e,X.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ge.classes.FormData,Blob:ge.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};H.forEach(["delete","get","head","post","put","patch"],(e=>{we.headers[e]={}}));const be=we,Te=H.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ke=Symbol("internals");function Se(e){return e&&String(e).trim().toLowerCase()}function Ee(e){return!1===e||null==e?e:H.isArray(e)?e.map(Ee):String(e)}function Oe(e,t,r,n,s){return H.isFunction(n)?n.call(this,t,r):(s&&(t=r),H.isString(t)?H.isString(n)?-1!==t.indexOf(n):H.isRegExp(n)?n.test(t):void 0:void 0)}class ve{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function s(e,t,r){const s=Se(t);if(!s)throw new Error("header name must be a non-empty string");const o=H.findKey(n,s);(!o||void 0===n[o]||!0===r||void 0===r&&!1!==n[o])&&(n[o||t]=Ee(e))}const o=(e,t)=>H.forEach(e,((e,r)=>s(e,r,t)));if(H.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(H.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o((e=>{const t={};let r,n,s;return e&&e.split("\n").forEach((function(e){s=e.indexOf(":"),r=e.substring(0,s).trim().toLowerCase(),n=e.substring(s+1).trim(),!r||t[r]&&Te[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t})(e),t);else if(H.isHeaders(e))for(const[t,n]of e.entries())s(n,t,r);else null!=e&&s(t,e,r);return this}get(e,t){if(e=Se(e)){const r=H.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(H.isFunction(t))return t.call(this,e,r);if(H.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Se(e)){const r=H.findKey(this,e);return!(!r||void 0===this[r]||t&&!Oe(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function s(e){if(e=Se(e)){const s=H.findKey(r,e);!s||t&&!Oe(0,r[s],s,t)||(delete r[s],n=!0)}}return H.isArray(e)?e.forEach(s):s(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const s=t[r];e&&!Oe(0,this[s],s,e,!0)||(delete this[s],n=!0)}return n}normalize(e){const t=this,r={};return H.forEach(this,((n,s)=>{const o=H.findKey(r,s);if(o)return t[o]=Ee(n),void delete t[s];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(s):String(s).trim();a!==s&&delete t[s],t[a]=Ee(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return H.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&H.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[ke]=this[ke]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=Se(e);t[n]||(function(e,t){const r=H.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,s){return this[n].call(this,t,e,r,s)},configurable:!0})}))}(r,e),t[n]=!0)}return H.isArray(e)?e.forEach(n):n(e),this}}ve.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),H.reduceDescriptors(ve.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),H.freezeMethods(ve);const Re=ve;function Ae(e,t){const r=this||be,n=t||r,s=Re.from(n.headers);let o=n.data;return H.forEach(e,(function(e){o=e.call(r,o,s.normalize(),t?t.status:void 0)})),s.normalize(),o}function Ce(e){return!(!e||!e.__CANCEL__)}function xe(e,t,r){X.call(this,null==e?"canceled":e,X.ERR_CANCELED,t,r),this.name="CanceledError"}H.inherits(xe,X,{__CANCEL__:!0});const Pe=xe;function Ue(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new X("Request failed with status code "+r.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}const _e=(e,t,r=3)=>{let n=0;const s=function(e,t){e=e||10;const r=new Array(e),n=new Array(e);let s,o=0,a=0;return t=void 0!==t?t:1e3,function(i){const c=Date.now(),u=n[a];s||(s=c),r[o]=i,n[o]=c;let l=a,d=0;for(;l!==o;)d+=r[l++],l%=e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),c-s<t)return;const h=u&&c-u;return h?Math.round(1e3*d/h):void 0}}(50,250);return function(e,t){let r,n,s=0,o=1e3/t;const a=(t,o=Date.now())=>{s=o,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),i=t-s;i>=o?a(e,t):(r=e,n||(n=setTimeout((()=>{n=null,a(r)}),o-i)))},()=>r&&a(r)]}((r=>{const o=r.loaded,a=r.lengthComputable?r.total:void 0,i=o-n,c=s(i);n=o,e({loaded:o,total:a,progress:a?o/a:void 0,bytes:i,rate:c||void 0,estimated:c&&a&&o<=a?(a-o)/c:void 0,event:r,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),r)},qe=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},Be=e=>(...t)=>H.asap((()=>e(...t))),je=ge.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,ge.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(ge.origin),ge.navigator&&/(msie|trident)/i.test(ge.navigator.userAgent)):()=>!0,Fe=ge.hasStandardBrowserEnv?{write(e,t,r,n,s,o){const a=[e+"="+encodeURIComponent(t)];H.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),H.isString(n)&&a.push("path="+n),H.isString(s)&&a.push("domain="+s),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Ne(e,t,r){let n=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&n||0==r?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Le=e=>e instanceof Re?{...e}:e;function Ie(e,t){t=t||{};const r={};function n(e,t,r,n){return H.isPlainObject(e)&&H.isPlainObject(t)?H.merge.call({caseless:n},e,t):H.isPlainObject(t)?H.merge({},t):H.isArray(t)?t.slice():t}function s(e,t,r,s){return H.isUndefined(t)?H.isUndefined(e)?void 0:n(void 0,e,0,s):n(e,t,0,s)}function o(e,t){if(!H.isUndefined(t))return n(void 0,t)}function a(e,t){return H.isUndefined(t)?H.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(r,s,o){return o in t?n(r,s):o in e?n(void 0,r):void 0}const c={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:i,headers:(e,t,r)=>s(Le(e),Le(t),0,!0)};return H.forEach(Object.keys(Object.assign({},e,t)),(function(n){const o=c[n]||s,a=o(e[n],t[n],n);H.isUndefined(a)&&o!==i||(r[n]=a)})),r}const De=e=>{const t=Ie({},e);let r,{data:n,withXSRFToken:s,xsrfHeaderName:o,xsrfCookieName:a,headers:i,auth:c}=t;if(t.headers=i=Re.from(i),t.url=ie(Ne(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),H.isFormData(n))if(ge.hasStandardBrowserEnv||ge.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(!1!==(r=i.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}if(ge.hasStandardBrowserEnv&&(s&&H.isFunction(s)&&(s=s(t)),s||!1!==s&&je(t.url))){const e=o&&a&&Fe.read(a);e&&i.set(o,e)}return t},$e="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){const n=De(e);let s=n.data;const o=Re.from(n.headers).normalize();let a,i,c,u,l,{responseType:d,onUploadProgress:h,onDownloadProgress:f}=n;function p(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const n=Re.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ue((function(e){t(e),p()}),(function(e){r(e),p()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:n,config:e,request:m}),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(r(new X("Request aborted",X.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new X("Network Error",X.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const s=n.transitional||ue;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new X(t,s.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,m)),m=null},void 0===s&&o.setContentType(null),"setRequestHeader"in m&&H.forEach(o.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),H.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),d&&"json"!==d&&(m.responseType=n.responseType),f&&([c,l]=_e(f,!0),m.addEventListener("progress",c)),h&&m.upload&&([i,u]=_e(h),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(a=t=>{m&&(r(!t||t.type?new Pe(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(n.url);y&&-1===ge.protocols.indexOf(y)?r(new X("Unsupported protocol "+y+":",X.ERR_BAD_REQUEST,e)):m.send(s||null)}))},ze=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const s=function(e){if(!r){r=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new Pe(t instanceof Error?t.message:t))}};let o=t&&setTimeout((()=>{o=null,s(new X(`timeout ${t} of ms exceeded`,X.ETIMEDOUT))}),t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(s):e.removeEventListener("abort",s)})),e=null)};e.forEach((e=>e.addEventListener("abort",s)));const{signal:i}=n;return i.unsubscribe=()=>H.asap(a),i}},Me=function*(e,t){let r=e.byteLength;if(!t||r<t)return void(yield e);let n,s=0;for(;s<r;)n=s+t,yield e.slice(s,n),s=n},Ke=(e,t,r,n)=>{const s=async function*(e,t){for await(const r of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)break;yield r}}finally{await t.cancel()}}(e))yield*Me(r,t)}(e,t);let o,a=0,i=e=>{o||(o=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await s.next();if(t)return i(),void e.close();let o=n.byteLength;if(r){let e=a+=o;r(e)}e.enqueue(new Uint8Array(n))}catch(e){throw i(e),e}},cancel:e=>(i(e),s.return())},{highWaterMark:2})},Ge="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,He=Ge&&"function"==typeof ReadableStream,We=Ge&&("function"==typeof TextEncoder?(Je=new TextEncoder,e=>Je.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Je;const Ve=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Xe=He&&Ve((()=>{let e=!1;const t=new Request(ge.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Qe=He&&Ve((()=>H.isReadableStream(new Response("").body))),Ye={stream:Qe&&(e=>e.body)};var Ze;Ge&&(Ze=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Ye[e]&&(Ye[e]=H.isFunction(Ze[e])?t=>t[e]():(t,r)=>{throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,r)})})));const et={http:null,xhr:$e,fetch:Ge&&(async e=>{let{url:t,method:r,data:n,signal:s,cancelToken:o,timeout:a,onDownloadProgress:i,onUploadProgress:c,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:h}=De(e);u=u?(u+"").toLowerCase():"text";let f,p=ze([s,o&&o.toAbortSignal()],a);const m=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let g;try{if(c&&Xe&&"get"!==r&&"head"!==r&&0!==(g=await(async(e,t)=>{const r=H.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(H.isBlob(e))return e.size;if(H.isSpecCompliantForm(e)){const t=new Request(ge.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return H.isArrayBufferView(e)||H.isArrayBuffer(e)?e.byteLength:(H.isURLSearchParams(e)&&(e+=""),H.isString(e)?(await We(e)).byteLength:void 0)})(t):r})(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(H.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=qe(g,_e(Be(c)));n=Ke(r.body,65536,e,t)}}H.isString(d)||(d=d?"include":"omit");const s="credentials"in Request.prototype;f=new Request(t,{...h,signal:p,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:s?d:void 0});let o=await fetch(f);const a=Qe&&("stream"===u||"response"===u);if(Qe&&(i||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=o[t]}));const t=H.toFiniteNumber(o.headers.get("content-length")),[r,n]=i&&qe(t,_e(Be(i),!0))||[];o=new Response(Ke(o.body,65536,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let y=await Ye[H.findKey(Ye,u)||"text"](o,e);return!a&&m&&m(),await new Promise(((t,r)=>{Ue(t,r,{data:y,headers:Re.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:f})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new X("Network Error",X.ERR_NETWORK,e,f),{cause:t.cause||t});throw X.from(t,t&&t.code,e,f)}})};H.forEach(et,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const tt=e=>`- ${e}`,rt=e=>H.isFunction(e)||null===e||!1===e,nt=e=>{e=H.isArray(e)?e:[e];const{length:t}=e;let r,n;const s={};for(let o=0;o<t;o++){let t;if(r=e[o],n=r,!rt(r)&&(n=et[(t=String(r)).toLowerCase()],void 0===n))throw new X(`Unknown adapter '${t}'`);if(n)break;s[t||"#"+o]=n}if(!n){const e=Object.entries(s).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let r=t?e.length>1?"since :\n"+e.map(tt).join("\n"):" "+tt(e[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return n};function st(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Pe(null,e)}function ot(e){return st(e),e.headers=Re.from(e.headers),e.data=Ae.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),nt(e.adapter||be.adapter)(e).then((function(t){return st(e),t.data=Ae.call(e,e.transformResponse,t),t.headers=Re.from(t.headers),t}),(function(t){return Ce(t)||(st(e),t&&t.response&&(t.response.data=Ae.call(e,e.transformResponse,t.response),t.response.headers=Re.from(t.response.headers))),Promise.reject(t)}))}const at={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{at[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const it={};at.transitional=function(e,t,r){function n(e,t){return"[Axios v1.8.3] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,s,o)=>{if(!1===e)throw new X(n(s," has been removed"+(t?" in "+t:"")),X.ERR_DEPRECATED);return t&&!it[s]&&(it[s]=!0,console.warn(n(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,s,o)}},at.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};const ct={assertOptions:function(e,t,r){if("object"!=typeof e)throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let s=n.length;for(;s-- >0;){const o=n[s],a=t[o];if(a){const t=e[o],r=void 0===t||a(t,o,e);if(!0!==r)throw new X("option "+o+" must be "+r,X.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}},validators:at},ut=ct.validators;class lt{constructor(e){this.defaults=e,this.interceptors={request:new ce,response:new ce}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const r=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ie(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:s}=t;void 0!==r&&ct.assertOptions(r,{silentJSONParsing:ut.transitional(ut.boolean),forcedJSONParsing:ut.transitional(ut.boolean),clarifyTimeoutError:ut.transitional(ut.boolean)},!1),null!=n&&(H.isFunction(n)?t.paramsSerializer={serialize:n}:ct.assertOptions(n,{encode:ut.function,serialize:ut.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),ct.assertOptions(t,{baseUrl:ut.spelling("baseURL"),withXsrfToken:ut.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=s&&H.merge(s.common,s[t.method]);s&&H.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete s[e]})),t.headers=Re.concat(o,s);const a=[];let i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,d=0;if(!i){const e=[ot.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);d<l;)u=u.then(e[d++],e[d++]);return u}l=a.length;let h=t;for(d=0;d<l;){const e=a[d++],t=a[d++];try{h=e(h)}catch(e){t.call(this,e);break}}try{u=ot.call(this,h)}catch(e){return Promise.reject(e)}for(d=0,l=c.length;d<l;)u=u.then(c[d++],c[d++]);return u}getUri(e){return ie(Ne((e=Ie(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}}H.forEach(["delete","get","head","options"],(function(e){lt.prototype[e]=function(t,r){return this.request(Ie(r||{},{method:e,url:t,data:(r||{}).data}))}})),H.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,s){return this.request(Ie(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}lt.prototype[e]=t(),lt.prototype[e+"Form"]=t(!0)}));const dt=lt;class ht{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const r=this;this.promise.then((e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,s){r.reason||(r.reason=new Pe(e,n,s),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new ht((function(t){e=t})),cancel:e}}}const ft=ht,pt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(pt).forEach((([e,t])=>{pt[t]=e}));const mt=pt,gt=function e(t){const r=new dt(t),n=o(dt.prototype.request,r);return H.extend(n,dt.prototype,r,{allOwnKeys:!0}),H.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(Ie(t,r))},n}(be);gt.Axios=dt,gt.CanceledError=Pe,gt.CancelToken=ft,gt.isCancel=Ce,gt.VERSION="1.8.3",gt.toFormData=te,gt.AxiosError=X,gt.Cancel=gt.CanceledError,gt.all=function(e){return Promise.all(e)},gt.spread=function(e){return function(t){return e.apply(null,t)}},gt.isAxiosError=function(e){return H.isObject(e)&&!0===e.isAxiosError},gt.mergeConfig=Ie,gt.AxiosHeaders=Re,gt.formToJSON=e=>ye(H.isHTMLForm(e)?new FormData(e):e),gt.getAdapter=nt,gt.HttpStatusCode=mt,gt.default=gt;const yt=gt;class wt{constructor(e){this.config=e,this.axiosInstance=yt.create({baseURL:e.apiUrl,headers:{"Content-Type":"application/json"}}),this.axiosInstance.interceptors.request.use((e=>{const t=this.getAccessToken();return t&&(e.headers.Authorization=`Bearer ${t}`),e}),(e=>Promise.reject(e))),this.axiosInstance.interceptors.response.use((e=>e),(async e=>{var t;const r=e.config;if(401===(null===(t=e.response)||void 0===t?void 0:t.status)&&!r._retry){r._retry=!0;try{const e=await this.refreshToken();if(e)return this.storeTokens(e),r.headers.Authorization=`Bearer ${e.accessToken}`,this.axiosInstance(r)}catch(e){return this.clearTokens(),Promise.reject(e)}}return Promise.reject(e)})),e.tokenRefreshInterval&&this.setupTokenRefresh(e.tokenRefreshInterval)}async request(e){var t;try{return(await this.axiosInstance.request(e)).data}catch(e){return(null===(t=e.response)||void 0===t?void 0:t.data)?e.response.data:{success:!1,error:e.message||"Network error"}}}getAccessToken(){if("undefined"==typeof window||"none"===this.config.storage)return null;switch(this.config.storage){case"local":default:return localStorage.getItem("oxy_access_token");case"session":return sessionStorage.getItem("oxy_access_token");case"cookie":const e=document.cookie.match(/(^|;)\s*oxy_access_token=([^;]+)/);return e?e[2]:null}}getRefreshToken(){if("undefined"==typeof window||"none"===this.config.storage)return null;switch(this.config.storage){case"local":default:return localStorage.getItem("oxy_refresh_token");case"session":return sessionStorage.getItem("oxy_refresh_token");case"cookie":const e=document.cookie.match(/(^|;)\s*oxy_refresh_token=([^;]+)/);return e?e[2]:null}}storeTokens(e){if("undefined"!=typeof window&&"none"!==this.config.storage)switch(this.config.storage){case"local":default:localStorage.setItem("oxy_access_token",e.accessToken),localStorage.setItem("oxy_refresh_token",e.refreshToken);break;case"session":sessionStorage.setItem("oxy_access_token",e.accessToken),sessionStorage.setItem("oxy_refresh_token",e.refreshToken);break;case"cookie":document.cookie=`oxy_access_token=${e.accessToken}; path=/;`,document.cookie=`oxy_refresh_token=${e.refreshToken}; path=/;`}}clearTokens(){if("undefined"!=typeof window&&"none"!==this.config.storage){switch(this.config.storage){case"local":default:localStorage.removeItem("oxy_access_token"),localStorage.removeItem("oxy_refresh_token");break;case"session":sessionStorage.removeItem("oxy_access_token"),sessionStorage.removeItem("oxy_refresh_token");break;case"cookie":document.cookie="oxy_access_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",document.cookie="oxy_refresh_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"}this.tokenRefreshTimeout&&(clearTimeout(this.tokenRefreshTimeout),this.tokenRefreshTimeout=void 0)}}async refreshToken(){const e=this.getRefreshToken();if(!e)return null;try{const t=await yt.post(`${this.config.apiUrl}/auth/refresh-token`,{refreshToken:e});return t.data.success&&t.data.data?t.data.data:null}catch(e){return null}}setupTokenRefresh(e){"undefined"!=typeof window&&(this.tokenRefreshTimeout=setTimeout((async()=>{try{const e=await this.refreshToken();e&&this.storeTokens(e)}finally{this.setupTokenRefresh(e)}}),e))}}class bt{constructor(e){this.apiClient=new wt({apiUrl:e})}async login(e){return this.apiClient.request({method:"POST",url:"/auth/login",data:e})}async register(e){return this.apiClient.request({method:"POST",url:"/auth/signup",data:e})}async refreshToken(e){return this.apiClient.request({method:"POST",url:"/auth/refresh-token",data:{refreshToken:e}})}async logout(e){return this.apiClient.request({method:"POST",url:"/auth/logout",data:{refreshToken:e}})}async validateToken(e){return this.apiClient.request({method:"POST",url:"/auth/validate-token",data:{token:e}})}async getCurrentUser(e){return this.apiClient.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${e}`}})}async checkUsernameAvailability(e){return this.apiClient.request({method:"GET",url:`/auth/check-username/${e}`})}}class Tt{constructor(e){this.apiClient=new wt({apiUrl:e})}async getUserById(e){return this.apiClient.request({method:"GET",url:`/users/${e}`})}async getUserByUsername(e){return this.apiClient.request({method:"GET",url:`/users/username/${e}`})}async updateUserProfile(e,t){return this.apiClient.request({method:"PUT",url:`/users/${e}`,data:t})}async updatePrivacySettings(e,t){return this.apiClient.request({method:"PUT",url:`/users/${e}/privacy`,data:t})}async getPrivacySettings(e){return this.apiClient.request({method:"GET",url:`/users/${e}/privacy`})}async getUserIdFromUsername(e){return this.apiClient.request({method:"GET",url:`/users/resolve/${e}`})}async followUser(e,t){return this.apiClient.request({method:"POST",url:`/users/${e}/follow`,data:{targetUserId:t}})}async unfollowUser(e,t){return this.apiClient.request({method:"POST",url:`/users/${e}/unfollow`,data:{targetUserId:t}})}}class kt{constructor(e){this.apiClient=new wt({apiUrl:e})}async getUserKarma(e){return this.apiClient.request({method:"GET",url:`/karma/${e}/total`})}async getUserKarmaHistory(e,t,r){const n={};return void 0!==t&&(n.limit=t.toString()),void 0!==r&&(n.offset=r.toString()),this.apiClient.request({method:"GET",url:`/karma/${e}/history`,params:n})}async awardKarma(e){return this.apiClient.request({method:"POST",url:"/karma/award",data:e})}async deductKarma(e){return this.apiClient.request({method:"POST",url:"/karma/deduct",data:e})}async getKarmaLeaderboard(e=10,t=0){return this.apiClient.request({method:"GET",url:"/karma/leaderboard",params:{limit:e,offset:t}})}async getKarmaRules(){return this.apiClient.request({method:"GET",url:"/karma/rules"})}async createOrUpdateKarmaRule(e){return this.apiClient.request({method:"POST",url:"/karma/rules",data:e})}}class St{constructor(e){this.apiClient=new wt({apiUrl:e})}async getWallet(e){return this.apiClient.request({method:"GET",url:`/wallet/${e}`})}async getTransactionHistory(e,t=10,r=0){return this.apiClient.request({method:"GET",url:`/wallet/transactions/${e}`,params:{limit:t,offset:r}})}async transferFunds(e){return this.apiClient.request({method:"POST",url:"/wallet/transfer",data:e})}async processPurchase(e){return this.apiClient.request({method:"POST",url:"/wallet/purchase",data:e})}async requestWithdrawal(e){return this.apiClient.request({method:"POST",url:"/wallet/withdraw",data:e})}async getTransaction(e){return this.apiClient.request({method:"GET",url:`/wallet/transaction/${e}`})}}var Et=r(953),Ot=r(848);const vt=(0,Et.createContext)({apiUrl:"",getToken:()=>null,isAuthenticated:!1,setAuthTokens:()=>{},clearAuth:()=>{}}),Rt=()=>(0,Et.useContext)(vt),At=({children:e,apiUrl:t,storage:r="local",tokenRefreshInterval:n})=>{const[s,o]=(0,Et.useState)(!1);(0,Et.useEffect)((()=>{const e=a();o(!!e)}),[]);const a=()=>"local"===r?localStorage.getItem("accessToken"):"session"===r?sessionStorage.getItem("accessToken"):null,i={apiUrl:t,getToken:a,isAuthenticated:s,setAuthTokens:e=>{"local"===r?(localStorage.setItem("accessToken",e.accessToken),localStorage.setItem("refreshToken",e.refreshToken)):"session"===r&&(sessionStorage.setItem("accessToken",e.accessToken),sessionStorage.setItem("refreshToken",e.refreshToken)),o(!0)},clearAuth:()=>{"local"===r?(localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")):"session"===r&&(sessionStorage.removeItem("accessToken"),sessionStorage.removeItem("refreshToken")),o(!1)}};return(0,Ot.jsx)(vt.Provider,{value:i,children:e})},Ct=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[n]=(0,Et.useState)((()=>new wt({apiUrl:r}))),[s,o]=(0,Et.useState)(null),[a,i]=(0,Et.useState)(!1),[c,u]=(0,Et.useState)(null),l=(0,Et.useCallback)((()=>(null==e?void 0:e.storage)?"local"===e.storage?localStorage.getItem("accessToken"):"session"===e.storage?sessionStorage.getItem("accessToken"):null:t.getToken()),[t,null==e?void 0:e.storage]),d=(0,Et.useCallback)((r=>{const n=(null==e?void 0:e.storage)||"local";(null==e?void 0:e.storage)||!t.setAuthTokens?"local"===n?(localStorage.setItem("accessToken",r.accessToken),localStorage.setItem("refreshToken",r.refreshToken)):"session"===n&&(sessionStorage.setItem("accessToken",r.accessToken),sessionStorage.setItem("refreshToken",r.refreshToken)):t.setAuthTokens(r)}),[t,null==e?void 0:e.storage]),h=(0,Et.useCallback)((()=>{const r=(null==e?void 0:e.storage)||"local";(null==e?void 0:e.storage)||!t.clearAuth?"local"===r?(localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")):"session"===r&&(sessionStorage.removeItem("accessToken"),sessionStorage.removeItem("refreshToken")):t.clearAuth()}),[t,null==e?void 0:e.storage]),f=(0,Et.useCallback)((async e=>{i(!0),u(null);try{const t=await n.request({method:"POST",url:"/auth/login",data:e});if(t.success&&t.data){d(t.data);const e=await n.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${t.data.accessToken}`}});e.success&&e.data&&o(e.data)}else u(t.error||"Login failed");return i(!1),t}catch(e){return u(e.message||"Login failed"),i(!1),{success:!1,error:e.message||"Login failed"}}}),[n,d]),p=(0,Et.useCallback)((async e=>{i(!0),u(null);try{const t=await n.request({method:"POST",url:"/auth/register",data:e});if(t.success&&t.data){d(t.data);const e=await n.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${t.data.accessToken}`}});e.success&&e.data&&o(e.data)}else u(t.error||"Registration failed");return i(!1),t}catch(e){return u(e.message||"Registration failed"),i(!1),{success:!1,error:e.message||"Registration failed"}}}),[n,d]),m=(0,Et.useCallback)((()=>{h(),o(null)}),[h]),g=(0,Et.useCallback)((()=>!!l()),[l]),y=(0,Et.useCallback)((async()=>{const e=l();if(!e)return{success:!1,error:"Not authenticated"};i(!0);try{const t=await n.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${e}`}});return t.success&&t.data&&o(t.data),i(!1),t}catch(e){return i(!1),{success:!1,error:e.message||"Failed to get user profile"}}}),[n,l]),w=(0,Et.useCallback)((async()=>{const t=(null==e?void 0:e.storage)||"local";let r=null;if("local"===t?r=localStorage.getItem("refreshToken"):"session"===t&&(r=sessionStorage.getItem("refreshToken")),!r)return{success:!1,error:"No refresh token available"};try{const e=await n.request({method:"POST",url:"/auth/refresh",data:{refreshToken:r}});return e.success&&e.data&&d(e.data),e}catch(e){return{success:!1,error:e.message||"Failed to refresh token"}}}),[n,null==e?void 0:e.storage,d]);return{user:s,loading:a,error:c,login:f,register:p,logout:m,isAuthenticated:g(),getCurrentUser:y,refreshToken:w,getToken:l}},xt=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,n=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[s]=(0,Et.useState)((()=>new wt({apiUrl:r})));return{getUserById:(0,Et.useCallback)((async e=>{try{return await s.request({method:"GET",url:`/users/${e}`,headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get user profile"}}}),[s,n]),updateUserProfile:(0,Et.useCallback)((async(e,t)=>{try{return n?await s.request({method:"PATCH",url:`/users/${e}`,data:t,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to update user profile"}}}),[s,n]),getPrivacySettings:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"GET",url:`/privacy/${e}`,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get privacy settings"}}}),[s,n]),updatePrivacySettings:(0,Et.useCallback)((async(e,t)=>{try{return n?await s.request({method:"PATCH",url:`/privacy/${e}`,data:t,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to update privacy settings"}}}),[s,n]),searchUsers:(0,Et.useCallback)((async(e,t=10)=>{try{return await s.request({method:"GET",url:"/users/search",params:{query:e,limit:t},headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to search users"}}}),[s,n])}},Pt=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,n=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[s]=(0,Et.useState)((()=>new wt({apiUrl:r})));return{getUserKarma:(0,Et.useCallback)((async e=>{try{return await s.request({method:"GET",url:`/karma/${e}/total`,headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma"}}}),[s,n]),getUserKarmaHistory:(0,Et.useCallback)((async(e,t,r)=>{try{if(!n)return{success:!1,error:"Authentication token is required"};const o={};return void 0!==t&&(o.limit=t.toString()),void 0!==r&&(o.offset=r.toString()),await s.request({method:"GET",url:`/karma/${e}/history`,params:o,headers:{Authorization:`Bearer ${n()||""}`}})}catch(e){return{success:!1,error:e.message||"Failed to get karma history"}}}),[s,n]),awardKarma:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/karma/award",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to award karma"}}}),[s,n]),deductKarma:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/karma/deduct",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to deduct karma"}}}),[s,n]),getKarmaLeaderboard:(0,Et.useCallback)((async(e=10,t=0)=>{try{return await s.request({method:"GET",url:"/karma/leaderboard",params:{limit:e,offset:t},headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma leaderboard"}}}),[s,n]),getKarmaRules:(0,Et.useCallback)((async()=>{try{return await s.request({method:"GET",url:"/karma/rules",headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma rules"}}}),[s,n]),createOrUpdateKarmaRule:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/karma/rules",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to create or update karma rule"}}}),[s,n])}},Ut=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,n=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[s]=(0,Et.useState)((()=>new wt({apiUrl:r})));return{getWallet:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"GET",url:`/wallet/${e}`,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get wallet information"}}}),[s,n]),getTransactionHistory:(0,Et.useCallback)((async(e,t=10,r=0)=>{try{return n?await s.request({method:"GET",url:`/wallet/transactions/${e}`,params:{limit:t,offset:r},headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get transaction history"}}}),[s,n]),transferFunds:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/wallet/transfer",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to transfer funds"}}}),[s,n]),processPurchase:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/wallet/purchase",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to process purchase"}}}),[s,n]),requestWithdrawal:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/wallet/withdraw",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to request withdrawal"}}}),[s,n]),getTransaction:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"GET",url:`/wallet/transaction/${e}`,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get transaction"}}}),[s,n])}};module.exports=n})();
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
package/dist/index.js
CHANGED
|
@@ -1,33 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.useOxyContext = exports.OxyProvider = exports.useWallet = exports.useKarma = exports.useUser = exports.useAuth = exports.OxyWalletBackend = exports.OxyKarmaBackend = exports.OxyUsersBackend = exports.OxyAuthBackend = void 0;
|
|
18
|
-
// Export types
|
|
19
|
-
__exportStar(require("./shared/types"), exports);
|
|
20
|
-
// Export backend services
|
|
21
|
-
var backend_1 = require("./backend");
|
|
22
|
-
Object.defineProperty(exports, "OxyAuthBackend", { enumerable: true, get: function () { return backend_1.OxyAuthBackend; } });
|
|
23
|
-
Object.defineProperty(exports, "OxyUsersBackend", { enumerable: true, get: function () { return backend_1.OxyUsersBackend; } });
|
|
24
|
-
Object.defineProperty(exports, "OxyKarmaBackend", { enumerable: true, get: function () { return backend_1.OxyKarmaBackend; } });
|
|
25
|
-
Object.defineProperty(exports, "OxyWalletBackend", { enumerable: true, get: function () { return backend_1.OxyWalletBackend; } });
|
|
26
|
-
// Export frontend hooks and context
|
|
27
|
-
var frontend_1 = require("./frontend");
|
|
28
|
-
Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return frontend_1.useAuth; } });
|
|
29
|
-
Object.defineProperty(exports, "useUser", { enumerable: true, get: function () { return frontend_1.useUser; } });
|
|
30
|
-
Object.defineProperty(exports, "useKarma", { enumerable: true, get: function () { return frontend_1.useKarma; } });
|
|
31
|
-
Object.defineProperty(exports, "useWallet", { enumerable: true, get: function () { return frontend_1.useWallet; } });
|
|
32
|
-
Object.defineProperty(exports, "OxyProvider", { enumerable: true, get: function () { return frontend_1.OxyProvider; } });
|
|
33
|
-
Object.defineProperty(exports, "useOxyContext", { enumerable: true, get: function () { return frontend_1.useOxyContext; } });
|
|
1
|
+
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
+
(()=>{"use strict";var e={20:(e,t,r)=>{var n=r(953),s=Symbol.for("react.element"),o=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),a=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};t.jsx=function(e,t,r){var n,c={},u=null,l=null;for(n in void 0!==r&&(u=""+r),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(l=t.ref),t)o.call(t,n)&&!i.hasOwnProperty(n)&&(c[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===c[n]&&(c[n]=t[n]);return{$$typeof:s,type:e,key:u,ref:l,props:c,_owner:a.current}}},848:(e,t,r)=>{e.exports=r(20)},953:e=>{e.exports=require("react")}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{OxyAuthBackend:()=>bt,OxyKarmaBackend:()=>kt,OxyProvider:()=>At,OxyUsersBackend:()=>Tt,OxyWalletBackend:()=>St,useAuth:()=>Ct,useKarma:()=>Pt,useOxyContext:()=>Rt,useUser:()=>xt,useWallet:()=>Ut});var s={};function o(e,t){return function(){return e.apply(t,arguments)}}r.r(s),r.d(s,{hasBrowserEnv:()=>de,hasStandardBrowserEnv:()=>fe,hasStandardBrowserWebWorkerEnv:()=>pe,navigator:()=>he,origin:()=>me});const{toString:a}=Object.prototype,{getPrototypeOf:i}=Object,c=(u=Object.create(null),e=>{const t=a.call(e);return u[t]||(u[t]=t.slice(8,-1).toLowerCase())});var u;const l=e=>(e=e.toLowerCase(),t=>c(t)===e),d=e=>t=>typeof t===e,{isArray:h}=Array,f=d("undefined"),p=l("ArrayBuffer"),m=d("string"),g=d("function"),y=d("number"),w=e=>null!==e&&"object"==typeof e,b=e=>{if("object"!==c(e))return!1;const t=i(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},T=l("Date"),k=l("File"),S=l("Blob"),E=l("FileList"),O=l("URLSearchParams"),[v,R,A,C]=["ReadableStream","Request","Response","Headers"].map(l);function x(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,s;if("object"!=typeof e&&(e=[e]),h(e))for(n=0,s=e.length;n<s;n++)t.call(null,e[n],n,e);else{const s=r?Object.getOwnPropertyNames(e):Object.keys(e),o=s.length;let a;for(n=0;n<o;n++)a=s[n],t.call(null,e[a],a,e)}}function P(e,t){t=t.toLowerCase();const r=Object.keys(e);let n,s=r.length;for(;s-- >0;)if(n=r[s],t===n.toLowerCase())return n;return null}const U="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,_=e=>!f(e)&&e!==U,q=(B="undefined"!=typeof Uint8Array&&i(Uint8Array),e=>B&&e instanceof B);var B;const j=l("HTMLFormElement"),F=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),N=l("RegExp"),L=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};x(r,((r,s)=>{let o;!1!==(o=t(r,s,e))&&(n[s]=o||r)})),Object.defineProperties(e,n)},I=l("AsyncFunction"),D=($="function"==typeof setImmediate,z=g(U.postMessage),$?setImmediate:z?(M=`axios@${Math.random()}`,K=[],U.addEventListener("message",(({source:e,data:t})=>{e===U&&t===M&&K.length&&K.shift()()}),!1),e=>{K.push(e),U.postMessage(M,"*")}):e=>setTimeout(e));var $,z,M,K;const G="undefined"!=typeof queueMicrotask?queueMicrotask.bind(U):"undefined"!=typeof process&&process.nextTick||D,H={isArray:h,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=c(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:m,isNumber:y,isBoolean:e=>!0===e||!1===e,isObject:w,isPlainObject:b,isReadableStream:v,isRequest:R,isResponse:A,isHeaders:C,isUndefined:f,isDate:T,isFile:k,isBlob:S,isRegExp:N,isFunction:g,isStream:e=>w(e)&&g(e.pipe),isURLSearchParams:O,isTypedArray:q,isFileList:E,forEach:x,merge:function e(){const{caseless:t}=_(this)&&this||{},r={},n=(n,s)=>{const o=t&&P(r,s)||s;b(r[o])&&b(n)?r[o]=e(r[o],n):b(n)?r[o]=e({},n):h(n)?r[o]=n.slice():r[o]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&x(arguments[e],n);return r},extend:(e,t,r,{allOwnKeys:n}={})=>(x(t,((t,n)=>{r&&g(t)?e[n]=o(t,r):e[n]=t}),{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let s,o,a;const c={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)a=s[o],n&&!n(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&i(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:c,kindOfTest:l,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray:e=>{if(!e)return null;if(h(e))return e;let t=e.length;if(!y(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:j,hasOwnProperty:F,hasOwnProp:F,reduceDescriptors:L,freezeMethods:e=>{L(e,((t,r)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];g(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return h(e)?n(e):n(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:P,global:U,isContextDefined:_,isSpecCompliantForm:function(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),r=(e,n)=>{if(w(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const s=h(e)?[]:{};return x(e,((e,t)=>{const o=r(e,n+1);!f(o)&&(s[t]=o)})),t[n]=void 0,s}}return e};return r(e,0)},isAsyncFn:I,isThenable:e=>e&&(w(e)||g(e))&&g(e.then)&&g(e.catch),setImmediate:D,asap:G};function W(e,t,r,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),s&&(this.response=s,this.status=s.status?s.status:null)}H.inherits(W,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:H.toJSONObject(this.config),code:this.code,status:this.status}}});const J=W.prototype,V={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{V[e]={value:e}})),Object.defineProperties(W,V),Object.defineProperty(J,"isAxiosError",{value:!0}),W.from=(e,t,r,n,s,o)=>{const a=Object.create(J);return H.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),W.call(a,e.message,t,r,n,s),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};const X=W;function Q(e){return H.isPlainObject(e)||H.isArray(e)}function Y(e){return H.endsWith(e,"[]")?e.slice(0,-2):e}function Z(e,t,r){return e?e.concat(t).map((function(e,t){return e=Y(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}const ee=H.toFlatObject(H,{},null,(function(e){return/^is[A-Z]/.test(e)})),te=function(e,t,r){if(!H.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=H.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!H.isUndefined(t[e])}))).metaTokens,s=r.visitor||u,o=r.dots,a=r.indexes,i=(r.Blob||"undefined"!=typeof Blob&&Blob)&&H.isSpecCompliantForm(t);if(!H.isFunction(s))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(H.isDate(e))return e.toISOString();if(!i&&H.isBlob(e))throw new X("Blob is not supported. Use a Buffer instead.");return H.isArrayBuffer(e)||H.isTypedArray(e)?i&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,r,s){let i=e;if(e&&!s&&"object"==typeof e)if(H.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(H.isArray(e)&&function(e){return H.isArray(e)&&!e.some(Q)}(e)||(H.isFileList(e)||H.endsWith(r,"[]"))&&(i=H.toArray(e)))return r=Y(r),i.forEach((function(e,n){!H.isUndefined(e)&&null!==e&&t.append(!0===a?Z([r],n,o):null===a?r:r+"[]",c(e))})),!1;return!!Q(e)||(t.append(Z(s,r,o),c(e)),!1)}const l=[],d=Object.assign(ee,{defaultVisitor:u,convertValue:c,isVisitable:Q});if(!H.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!H.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),H.forEach(r,(function(r,o){!0===(!(H.isUndefined(r)||null===r)&&s.call(t,r,H.isString(o)?o.trim():o,n,d))&&e(r,n?n.concat(o):[o])})),l.pop()}}(e),t};function re(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ne(e,t){this._pairs=[],e&&te(e,this,t)}const se=ne.prototype;se.append=function(e,t){this._pairs.push([e,t])},se.toString=function(e){const t=e?function(t){return e.call(this,t,re)}:re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const oe=ne;function ae(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ie(e,t,r){if(!t)return e;const n=r&&r.encode||ae;H.isFunction(r)&&(r={serialize:r});const s=r&&r.serialize;let o;if(o=s?s(t,r):H.isURLSearchParams(t)?t.toString():new oe(t,r).toString(n),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}const ce=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){H.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},le={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:oe,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},de="undefined"!=typeof window&&"undefined"!=typeof document,he="object"==typeof navigator&&navigator||void 0,fe=de&&(!he||["ReactNative","NativeScript","NS"].indexOf(he.product)<0),pe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,me=de&&window.location.href||"http://localhost",ge={...s,...le},ye=function(e){function t(e,r,n,s){let o=e[s++];if("__proto__"===o)return!0;const a=Number.isFinite(+o),i=s>=e.length;return o=!o&&H.isArray(n)?n.length:o,i?(H.hasOwnProp(n,o)?n[o]=[n[o],r]:n[o]=r,!a):(n[o]&&H.isObject(n[o])||(n[o]=[]),t(e,r,n[o],s)&&H.isArray(n[o])&&(n[o]=function(e){const t={},r=Object.keys(e);let n;const s=r.length;let o;for(n=0;n<s;n++)o=r[n],t[o]=e[o];return t}(n[o])),!a)}if(H.isFormData(e)&&H.isFunction(e.entries)){const r={};return H.forEachEntry(e,((e,n)=>{t(function(e){return H.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),n,r,0)})),r}return null},we={transitional:ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,s=H.isObject(e);if(s&&H.isHTMLForm(e)&&(e=new FormData(e)),H.isFormData(e))return n?JSON.stringify(ye(e)):e;if(H.isArrayBuffer(e)||H.isBuffer(e)||H.isStream(e)||H.isFile(e)||H.isBlob(e)||H.isReadableStream(e))return e;if(H.isArrayBufferView(e))return e.buffer;if(H.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return te(e,new ge.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return ge.isNode&&H.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((o=H.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return te(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||n?(t.setContentType("application/json",!1),function(e){if(H.isString(e))try{return(0,JSON.parse)(e),H.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||we.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(H.isResponse(e)||H.isReadableStream(e))return e;if(e&&H.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw X.from(e,X.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ge.classes.FormData,Blob:ge.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};H.forEach(["delete","get","head","post","put","patch"],(e=>{we.headers[e]={}}));const be=we,Te=H.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ke=Symbol("internals");function Se(e){return e&&String(e).trim().toLowerCase()}function Ee(e){return!1===e||null==e?e:H.isArray(e)?e.map(Ee):String(e)}function Oe(e,t,r,n,s){return H.isFunction(n)?n.call(this,t,r):(s&&(t=r),H.isString(t)?H.isString(n)?-1!==t.indexOf(n):H.isRegExp(n)?n.test(t):void 0:void 0)}class ve{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function s(e,t,r){const s=Se(t);if(!s)throw new Error("header name must be a non-empty string");const o=H.findKey(n,s);(!o||void 0===n[o]||!0===r||void 0===r&&!1!==n[o])&&(n[o||t]=Ee(e))}const o=(e,t)=>H.forEach(e,((e,r)=>s(e,r,t)));if(H.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(H.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o((e=>{const t={};let r,n,s;return e&&e.split("\n").forEach((function(e){s=e.indexOf(":"),r=e.substring(0,s).trim().toLowerCase(),n=e.substring(s+1).trim(),!r||t[r]&&Te[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t})(e),t);else if(H.isHeaders(e))for(const[t,n]of e.entries())s(n,t,r);else null!=e&&s(t,e,r);return this}get(e,t){if(e=Se(e)){const r=H.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(H.isFunction(t))return t.call(this,e,r);if(H.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Se(e)){const r=H.findKey(this,e);return!(!r||void 0===this[r]||t&&!Oe(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function s(e){if(e=Se(e)){const s=H.findKey(r,e);!s||t&&!Oe(0,r[s],s,t)||(delete r[s],n=!0)}}return H.isArray(e)?e.forEach(s):s(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const s=t[r];e&&!Oe(0,this[s],s,e,!0)||(delete this[s],n=!0)}return n}normalize(e){const t=this,r={};return H.forEach(this,((n,s)=>{const o=H.findKey(r,s);if(o)return t[o]=Ee(n),void delete t[s];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(s):String(s).trim();a!==s&&delete t[s],t[a]=Ee(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return H.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&H.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[ke]=this[ke]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=Se(e);t[n]||(function(e,t){const r=H.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,s){return this[n].call(this,t,e,r,s)},configurable:!0})}))}(r,e),t[n]=!0)}return H.isArray(e)?e.forEach(n):n(e),this}}ve.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),H.reduceDescriptors(ve.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),H.freezeMethods(ve);const Re=ve;function Ae(e,t){const r=this||be,n=t||r,s=Re.from(n.headers);let o=n.data;return H.forEach(e,(function(e){o=e.call(r,o,s.normalize(),t?t.status:void 0)})),s.normalize(),o}function Ce(e){return!(!e||!e.__CANCEL__)}function xe(e,t,r){X.call(this,null==e?"canceled":e,X.ERR_CANCELED,t,r),this.name="CanceledError"}H.inherits(xe,X,{__CANCEL__:!0});const Pe=xe;function Ue(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new X("Request failed with status code "+r.status,[X.ERR_BAD_REQUEST,X.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}const _e=(e,t,r=3)=>{let n=0;const s=function(e,t){e=e||10;const r=new Array(e),n=new Array(e);let s,o=0,a=0;return t=void 0!==t?t:1e3,function(i){const c=Date.now(),u=n[a];s||(s=c),r[o]=i,n[o]=c;let l=a,d=0;for(;l!==o;)d+=r[l++],l%=e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),c-s<t)return;const h=u&&c-u;return h?Math.round(1e3*d/h):void 0}}(50,250);return function(e,t){let r,n,s=0,o=1e3/t;const a=(t,o=Date.now())=>{s=o,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),i=t-s;i>=o?a(e,t):(r=e,n||(n=setTimeout((()=>{n=null,a(r)}),o-i)))},()=>r&&a(r)]}((r=>{const o=r.loaded,a=r.lengthComputable?r.total:void 0,i=o-n,c=s(i);n=o,e({loaded:o,total:a,progress:a?o/a:void 0,bytes:i,rate:c||void 0,estimated:c&&a&&o<=a?(a-o)/c:void 0,event:r,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),r)},qe=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},Be=e=>(...t)=>H.asap((()=>e(...t))),je=ge.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,ge.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(ge.origin),ge.navigator&&/(msie|trident)/i.test(ge.navigator.userAgent)):()=>!0,Fe=ge.hasStandardBrowserEnv?{write(e,t,r,n,s,o){const a=[e+"="+encodeURIComponent(t)];H.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),H.isString(n)&&a.push("path="+n),H.isString(s)&&a.push("domain="+s),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Ne(e,t,r){let n=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&n||0==r?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Le=e=>e instanceof Re?{...e}:e;function Ie(e,t){t=t||{};const r={};function n(e,t,r,n){return H.isPlainObject(e)&&H.isPlainObject(t)?H.merge.call({caseless:n},e,t):H.isPlainObject(t)?H.merge({},t):H.isArray(t)?t.slice():t}function s(e,t,r,s){return H.isUndefined(t)?H.isUndefined(e)?void 0:n(void 0,e,0,s):n(e,t,0,s)}function o(e,t){if(!H.isUndefined(t))return n(void 0,t)}function a(e,t){return H.isUndefined(t)?H.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(r,s,o){return o in t?n(r,s):o in e?n(void 0,r):void 0}const c={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:i,headers:(e,t,r)=>s(Le(e),Le(t),0,!0)};return H.forEach(Object.keys(Object.assign({},e,t)),(function(n){const o=c[n]||s,a=o(e[n],t[n],n);H.isUndefined(a)&&o!==i||(r[n]=a)})),r}const De=e=>{const t=Ie({},e);let r,{data:n,withXSRFToken:s,xsrfHeaderName:o,xsrfCookieName:a,headers:i,auth:c}=t;if(t.headers=i=Re.from(i),t.url=ie(Ne(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),H.isFormData(n))if(ge.hasStandardBrowserEnv||ge.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(!1!==(r=i.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}if(ge.hasStandardBrowserEnv&&(s&&H.isFunction(s)&&(s=s(t)),s||!1!==s&&je(t.url))){const e=o&&a&&Fe.read(a);e&&i.set(o,e)}return t},$e="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){const n=De(e);let s=n.data;const o=Re.from(n.headers).normalize();let a,i,c,u,l,{responseType:d,onUploadProgress:h,onDownloadProgress:f}=n;function p(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let m=new XMLHttpRequest;function g(){if(!m)return;const n=Re.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ue((function(e){t(e),p()}),(function(e){r(e),p()}),{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:n,config:e,request:m}),m=null}m.open(n.method.toUpperCase(),n.url,!0),m.timeout=n.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(r(new X("Request aborted",X.ECONNABORTED,e,m)),m=null)},m.onerror=function(){r(new X("Network Error",X.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const s=n.transitional||ue;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new X(t,s.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,m)),m=null},void 0===s&&o.setContentType(null),"setRequestHeader"in m&&H.forEach(o.toJSON(),(function(e,t){m.setRequestHeader(t,e)})),H.isUndefined(n.withCredentials)||(m.withCredentials=!!n.withCredentials),d&&"json"!==d&&(m.responseType=n.responseType),f&&([c,l]=_e(f,!0),m.addEventListener("progress",c)),h&&m.upload&&([i,u]=_e(h),m.upload.addEventListener("progress",i),m.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(a=t=>{m&&(r(!t||t.type?new Pe(null,e,m):t),m.abort(),m=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const y=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(n.url);y&&-1===ge.protocols.indexOf(y)?r(new X("Unsupported protocol "+y+":",X.ERR_BAD_REQUEST,e)):m.send(s||null)}))},ze=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const s=function(e){if(!r){r=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new Pe(t instanceof Error?t.message:t))}};let o=t&&setTimeout((()=>{o=null,s(new X(`timeout ${t} of ms exceeded`,X.ETIMEDOUT))}),t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(s):e.removeEventListener("abort",s)})),e=null)};e.forEach((e=>e.addEventListener("abort",s)));const{signal:i}=n;return i.unsubscribe=()=>H.asap(a),i}},Me=function*(e,t){let r=e.byteLength;if(!t||r<t)return void(yield e);let n,s=0;for(;s<r;)n=s+t,yield e.slice(s,n),s=n},Ke=(e,t,r,n)=>{const s=async function*(e,t){for await(const r of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)break;yield r}}finally{await t.cancel()}}(e))yield*Me(r,t)}(e,t);let o,a=0,i=e=>{o||(o=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await s.next();if(t)return i(),void e.close();let o=n.byteLength;if(r){let e=a+=o;r(e)}e.enqueue(new Uint8Array(n))}catch(e){throw i(e),e}},cancel:e=>(i(e),s.return())},{highWaterMark:2})},Ge="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,He=Ge&&"function"==typeof ReadableStream,We=Ge&&("function"==typeof TextEncoder?(Je=new TextEncoder,e=>Je.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var Je;const Ve=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Xe=He&&Ve((()=>{let e=!1;const t=new Request(ge.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Qe=He&&Ve((()=>H.isReadableStream(new Response("").body))),Ye={stream:Qe&&(e=>e.body)};var Ze;Ge&&(Ze=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Ye[e]&&(Ye[e]=H.isFunction(Ze[e])?t=>t[e]():(t,r)=>{throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,r)})})));const et={http:null,xhr:$e,fetch:Ge&&(async e=>{let{url:t,method:r,data:n,signal:s,cancelToken:o,timeout:a,onDownloadProgress:i,onUploadProgress:c,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:h}=De(e);u=u?(u+"").toLowerCase():"text";let f,p=ze([s,o&&o.toAbortSignal()],a);const m=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let g;try{if(c&&Xe&&"get"!==r&&"head"!==r&&0!==(g=await(async(e,t)=>{const r=H.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(H.isBlob(e))return e.size;if(H.isSpecCompliantForm(e)){const t=new Request(ge.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return H.isArrayBufferView(e)||H.isArrayBuffer(e)?e.byteLength:(H.isURLSearchParams(e)&&(e+=""),H.isString(e)?(await We(e)).byteLength:void 0)})(t):r})(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(H.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=qe(g,_e(Be(c)));n=Ke(r.body,65536,e,t)}}H.isString(d)||(d=d?"include":"omit");const s="credentials"in Request.prototype;f=new Request(t,{...h,signal:p,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:s?d:void 0});let o=await fetch(f);const a=Qe&&("stream"===u||"response"===u);if(Qe&&(i||a&&m)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=o[t]}));const t=H.toFiniteNumber(o.headers.get("content-length")),[r,n]=i&&qe(t,_e(Be(i),!0))||[];o=new Response(Ke(o.body,65536,r,(()=>{n&&n(),m&&m()})),e)}u=u||"text";let y=await Ye[H.findKey(Ye,u)||"text"](o,e);return!a&&m&&m(),await new Promise(((t,r)=>{Ue(t,r,{data:y,headers:Re.from(o.headers),status:o.status,statusText:o.statusText,config:e,request:f})}))}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new X("Network Error",X.ERR_NETWORK,e,f),{cause:t.cause||t});throw X.from(t,t&&t.code,e,f)}})};H.forEach(et,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const tt=e=>`- ${e}`,rt=e=>H.isFunction(e)||null===e||!1===e,nt=e=>{e=H.isArray(e)?e:[e];const{length:t}=e;let r,n;const s={};for(let o=0;o<t;o++){let t;if(r=e[o],n=r,!rt(r)&&(n=et[(t=String(r)).toLowerCase()],void 0===n))throw new X(`Unknown adapter '${t}'`);if(n)break;s[t||"#"+o]=n}if(!n){const e=Object.entries(s).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let r=t?e.length>1?"since :\n"+e.map(tt).join("\n"):" "+tt(e[0]):"as no adapter specified";throw new X("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return n};function st(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Pe(null,e)}function ot(e){return st(e),e.headers=Re.from(e.headers),e.data=Ae.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),nt(e.adapter||be.adapter)(e).then((function(t){return st(e),t.data=Ae.call(e,e.transformResponse,t),t.headers=Re.from(t.headers),t}),(function(t){return Ce(t)||(st(e),t&&t.response&&(t.response.data=Ae.call(e,e.transformResponse,t.response),t.response.headers=Re.from(t.response.headers))),Promise.reject(t)}))}const at={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{at[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const it={};at.transitional=function(e,t,r){function n(e,t){return"[Axios v1.8.3] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,s,o)=>{if(!1===e)throw new X(n(s," has been removed"+(t?" in "+t:"")),X.ERR_DEPRECATED);return t&&!it[s]&&(it[s]=!0,console.warn(n(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,s,o)}},at.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};const ct={assertOptions:function(e,t,r){if("object"!=typeof e)throw new X("options must be an object",X.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let s=n.length;for(;s-- >0;){const o=n[s],a=t[o];if(a){const t=e[o],r=void 0===t||a(t,o,e);if(!0!==r)throw new X("option "+o+" must be "+r,X.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new X("Unknown option "+o,X.ERR_BAD_OPTION)}},validators:at},ut=ct.validators;class lt{constructor(e){this.defaults=e,this.interceptors={request:new ce,response:new ce}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const r=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ie(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:s}=t;void 0!==r&&ct.assertOptions(r,{silentJSONParsing:ut.transitional(ut.boolean),forcedJSONParsing:ut.transitional(ut.boolean),clarifyTimeoutError:ut.transitional(ut.boolean)},!1),null!=n&&(H.isFunction(n)?t.paramsSerializer={serialize:n}:ct.assertOptions(n,{encode:ut.function,serialize:ut.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),ct.assertOptions(t,{baseUrl:ut.spelling("baseURL"),withXsrfToken:ut.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=s&&H.merge(s.common,s[t.method]);s&&H.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete s[e]})),t.headers=Re.concat(o,s);const a=[];let i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,d=0;if(!i){const e=[ot.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);d<l;)u=u.then(e[d++],e[d++]);return u}l=a.length;let h=t;for(d=0;d<l;){const e=a[d++],t=a[d++];try{h=e(h)}catch(e){t.call(this,e);break}}try{u=ot.call(this,h)}catch(e){return Promise.reject(e)}for(d=0,l=c.length;d<l;)u=u.then(c[d++],c[d++]);return u}getUri(e){return ie(Ne((e=Ie(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}}H.forEach(["delete","get","head","options"],(function(e){lt.prototype[e]=function(t,r){return this.request(Ie(r||{},{method:e,url:t,data:(r||{}).data}))}})),H.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,s){return this.request(Ie(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}lt.prototype[e]=t(),lt.prototype[e+"Form"]=t(!0)}));const dt=lt;class ht{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const r=this;this.promise.then((e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,s){r.reason||(r.reason=new Pe(e,n,s),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new ht((function(t){e=t})),cancel:e}}}const ft=ht,pt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(pt).forEach((([e,t])=>{pt[t]=e}));const mt=pt,gt=function e(t){const r=new dt(t),n=o(dt.prototype.request,r);return H.extend(n,dt.prototype,r,{allOwnKeys:!0}),H.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(Ie(t,r))},n}(be);gt.Axios=dt,gt.CanceledError=Pe,gt.CancelToken=ft,gt.isCancel=Ce,gt.VERSION="1.8.3",gt.toFormData=te,gt.AxiosError=X,gt.Cancel=gt.CanceledError,gt.all=function(e){return Promise.all(e)},gt.spread=function(e){return function(t){return e.apply(null,t)}},gt.isAxiosError=function(e){return H.isObject(e)&&!0===e.isAxiosError},gt.mergeConfig=Ie,gt.AxiosHeaders=Re,gt.formToJSON=e=>ye(H.isHTMLForm(e)?new FormData(e):e),gt.getAdapter=nt,gt.HttpStatusCode=mt,gt.default=gt;const yt=gt;class wt{constructor(e){this.config=e,this.axiosInstance=yt.create({baseURL:e.apiUrl,headers:{"Content-Type":"application/json"}}),this.axiosInstance.interceptors.request.use((e=>{const t=this.getAccessToken();return t&&(e.headers.Authorization=`Bearer ${t}`),e}),(e=>Promise.reject(e))),this.axiosInstance.interceptors.response.use((e=>e),(async e=>{var t;const r=e.config;if(401===(null===(t=e.response)||void 0===t?void 0:t.status)&&!r._retry){r._retry=!0;try{const e=await this.refreshToken();if(e)return this.storeTokens(e),r.headers.Authorization=`Bearer ${e.accessToken}`,this.axiosInstance(r)}catch(e){return this.clearTokens(),Promise.reject(e)}}return Promise.reject(e)})),e.tokenRefreshInterval&&this.setupTokenRefresh(e.tokenRefreshInterval)}async request(e){var t;try{return(await this.axiosInstance.request(e)).data}catch(e){return(null===(t=e.response)||void 0===t?void 0:t.data)?e.response.data:{success:!1,error:e.message||"Network error"}}}getAccessToken(){if("undefined"==typeof window||"none"===this.config.storage)return null;switch(this.config.storage){case"local":default:return localStorage.getItem("oxy_access_token");case"session":return sessionStorage.getItem("oxy_access_token");case"cookie":const e=document.cookie.match(/(^|;)\s*oxy_access_token=([^;]+)/);return e?e[2]:null}}getRefreshToken(){if("undefined"==typeof window||"none"===this.config.storage)return null;switch(this.config.storage){case"local":default:return localStorage.getItem("oxy_refresh_token");case"session":return sessionStorage.getItem("oxy_refresh_token");case"cookie":const e=document.cookie.match(/(^|;)\s*oxy_refresh_token=([^;]+)/);return e?e[2]:null}}storeTokens(e){if("undefined"!=typeof window&&"none"!==this.config.storage)switch(this.config.storage){case"local":default:localStorage.setItem("oxy_access_token",e.accessToken),localStorage.setItem("oxy_refresh_token",e.refreshToken);break;case"session":sessionStorage.setItem("oxy_access_token",e.accessToken),sessionStorage.setItem("oxy_refresh_token",e.refreshToken);break;case"cookie":document.cookie=`oxy_access_token=${e.accessToken}; path=/;`,document.cookie=`oxy_refresh_token=${e.refreshToken}; path=/;`}}clearTokens(){if("undefined"!=typeof window&&"none"!==this.config.storage){switch(this.config.storage){case"local":default:localStorage.removeItem("oxy_access_token"),localStorage.removeItem("oxy_refresh_token");break;case"session":sessionStorage.removeItem("oxy_access_token"),sessionStorage.removeItem("oxy_refresh_token");break;case"cookie":document.cookie="oxy_access_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;",document.cookie="oxy_refresh_token=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"}this.tokenRefreshTimeout&&(clearTimeout(this.tokenRefreshTimeout),this.tokenRefreshTimeout=void 0)}}async refreshToken(){const e=this.getRefreshToken();if(!e)return null;try{const t=await yt.post(`${this.config.apiUrl}/auth/refresh-token`,{refreshToken:e});return t.data.success&&t.data.data?t.data.data:null}catch(e){return null}}setupTokenRefresh(e){"undefined"!=typeof window&&(this.tokenRefreshTimeout=setTimeout((async()=>{try{const e=await this.refreshToken();e&&this.storeTokens(e)}finally{this.setupTokenRefresh(e)}}),e))}}class bt{constructor(e){this.apiClient=new wt({apiUrl:e})}async login(e){return this.apiClient.request({method:"POST",url:"/auth/login",data:e})}async register(e){return this.apiClient.request({method:"POST",url:"/auth/signup",data:e})}async refreshToken(e){return this.apiClient.request({method:"POST",url:"/auth/refresh-token",data:{refreshToken:e}})}async logout(e){return this.apiClient.request({method:"POST",url:"/auth/logout",data:{refreshToken:e}})}async validateToken(e){return this.apiClient.request({method:"POST",url:"/auth/validate-token",data:{token:e}})}async getCurrentUser(e){return this.apiClient.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${e}`}})}async checkUsernameAvailability(e){return this.apiClient.request({method:"GET",url:`/auth/check-username/${e}`})}}class Tt{constructor(e){this.apiClient=new wt({apiUrl:e})}async getUserById(e){return this.apiClient.request({method:"GET",url:`/users/${e}`})}async getUserByUsername(e){return this.apiClient.request({method:"GET",url:`/users/username/${e}`})}async updateUserProfile(e,t){return this.apiClient.request({method:"PUT",url:`/users/${e}`,data:t})}async updatePrivacySettings(e,t){return this.apiClient.request({method:"PUT",url:`/users/${e}/privacy`,data:t})}async getPrivacySettings(e){return this.apiClient.request({method:"GET",url:`/users/${e}/privacy`})}async getUserIdFromUsername(e){return this.apiClient.request({method:"GET",url:`/users/resolve/${e}`})}async followUser(e,t){return this.apiClient.request({method:"POST",url:`/users/${e}/follow`,data:{targetUserId:t}})}async unfollowUser(e,t){return this.apiClient.request({method:"POST",url:`/users/${e}/unfollow`,data:{targetUserId:t}})}}class kt{constructor(e){this.apiClient=new wt({apiUrl:e})}async getUserKarma(e){return this.apiClient.request({method:"GET",url:`/karma/${e}/total`})}async getUserKarmaHistory(e,t,r){const n={};return void 0!==t&&(n.limit=t.toString()),void 0!==r&&(n.offset=r.toString()),this.apiClient.request({method:"GET",url:`/karma/${e}/history`,params:n})}async awardKarma(e){return this.apiClient.request({method:"POST",url:"/karma/award",data:e})}async deductKarma(e){return this.apiClient.request({method:"POST",url:"/karma/deduct",data:e})}async getKarmaLeaderboard(e=10,t=0){return this.apiClient.request({method:"GET",url:"/karma/leaderboard",params:{limit:e,offset:t}})}async getKarmaRules(){return this.apiClient.request({method:"GET",url:"/karma/rules"})}async createOrUpdateKarmaRule(e){return this.apiClient.request({method:"POST",url:"/karma/rules",data:e})}}class St{constructor(e){this.apiClient=new wt({apiUrl:e})}async getWallet(e){return this.apiClient.request({method:"GET",url:`/wallet/${e}`})}async getTransactionHistory(e,t=10,r=0){return this.apiClient.request({method:"GET",url:`/wallet/transactions/${e}`,params:{limit:t,offset:r}})}async transferFunds(e){return this.apiClient.request({method:"POST",url:"/wallet/transfer",data:e})}async processPurchase(e){return this.apiClient.request({method:"POST",url:"/wallet/purchase",data:e})}async requestWithdrawal(e){return this.apiClient.request({method:"POST",url:"/wallet/withdraw",data:e})}async getTransaction(e){return this.apiClient.request({method:"GET",url:`/wallet/transaction/${e}`})}}var Et=r(953),Ot=r(848);const vt=(0,Et.createContext)({apiUrl:"",getToken:()=>null,isAuthenticated:!1,setAuthTokens:()=>{},clearAuth:()=>{}}),Rt=()=>(0,Et.useContext)(vt),At=({children:e,apiUrl:t,storage:r="local",tokenRefreshInterval:n})=>{const[s,o]=(0,Et.useState)(!1);(0,Et.useEffect)((()=>{const e=a();o(!!e)}),[]);const a=()=>"local"===r?localStorage.getItem("accessToken"):"session"===r?sessionStorage.getItem("accessToken"):null,i={apiUrl:t,getToken:a,isAuthenticated:s,setAuthTokens:e=>{"local"===r?(localStorage.setItem("accessToken",e.accessToken),localStorage.setItem("refreshToken",e.refreshToken)):"session"===r&&(sessionStorage.setItem("accessToken",e.accessToken),sessionStorage.setItem("refreshToken",e.refreshToken)),o(!0)},clearAuth:()=>{"local"===r?(localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")):"session"===r&&(sessionStorage.removeItem("accessToken"),sessionStorage.removeItem("refreshToken")),o(!1)}};return(0,Ot.jsx)(vt.Provider,{value:i,children:e})},Ct=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[n]=(0,Et.useState)((()=>new wt({apiUrl:r}))),[s,o]=(0,Et.useState)(null),[a,i]=(0,Et.useState)(!1),[c,u]=(0,Et.useState)(null),l=(0,Et.useCallback)((()=>(null==e?void 0:e.storage)?"local"===e.storage?localStorage.getItem("accessToken"):"session"===e.storage?sessionStorage.getItem("accessToken"):null:t.getToken()),[t,null==e?void 0:e.storage]),d=(0,Et.useCallback)((r=>{const n=(null==e?void 0:e.storage)||"local";(null==e?void 0:e.storage)||!t.setAuthTokens?"local"===n?(localStorage.setItem("accessToken",r.accessToken),localStorage.setItem("refreshToken",r.refreshToken)):"session"===n&&(sessionStorage.setItem("accessToken",r.accessToken),sessionStorage.setItem("refreshToken",r.refreshToken)):t.setAuthTokens(r)}),[t,null==e?void 0:e.storage]),h=(0,Et.useCallback)((()=>{const r=(null==e?void 0:e.storage)||"local";(null==e?void 0:e.storage)||!t.clearAuth?"local"===r?(localStorage.removeItem("accessToken"),localStorage.removeItem("refreshToken")):"session"===r&&(sessionStorage.removeItem("accessToken"),sessionStorage.removeItem("refreshToken")):t.clearAuth()}),[t,null==e?void 0:e.storage]),f=(0,Et.useCallback)((async e=>{i(!0),u(null);try{const t=await n.request({method:"POST",url:"/auth/login",data:e});if(t.success&&t.data){d(t.data);const e=await n.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${t.data.accessToken}`}});e.success&&e.data&&o(e.data)}else u(t.error||"Login failed");return i(!1),t}catch(e){return u(e.message||"Login failed"),i(!1),{success:!1,error:e.message||"Login failed"}}}),[n,d]),p=(0,Et.useCallback)((async e=>{i(!0),u(null);try{const t=await n.request({method:"POST",url:"/auth/register",data:e});if(t.success&&t.data){d(t.data);const e=await n.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${t.data.accessToken}`}});e.success&&e.data&&o(e.data)}else u(t.error||"Registration failed");return i(!1),t}catch(e){return u(e.message||"Registration failed"),i(!1),{success:!1,error:e.message||"Registration failed"}}}),[n,d]),m=(0,Et.useCallback)((()=>{h(),o(null)}),[h]),g=(0,Et.useCallback)((()=>!!l()),[l]),y=(0,Et.useCallback)((async()=>{const e=l();if(!e)return{success:!1,error:"Not authenticated"};i(!0);try{const t=await n.request({method:"GET",url:"/auth/me",headers:{Authorization:`Bearer ${e}`}});return t.success&&t.data&&o(t.data),i(!1),t}catch(e){return i(!1),{success:!1,error:e.message||"Failed to get user profile"}}}),[n,l]),w=(0,Et.useCallback)((async()=>{const t=(null==e?void 0:e.storage)||"local";let r=null;if("local"===t?r=localStorage.getItem("refreshToken"):"session"===t&&(r=sessionStorage.getItem("refreshToken")),!r)return{success:!1,error:"No refresh token available"};try{const e=await n.request({method:"POST",url:"/auth/refresh",data:{refreshToken:r}});return e.success&&e.data&&d(e.data),e}catch(e){return{success:!1,error:e.message||"Failed to refresh token"}}}),[n,null==e?void 0:e.storage,d]);return{user:s,loading:a,error:c,login:f,register:p,logout:m,isAuthenticated:g(),getCurrentUser:y,refreshToken:w,getToken:l}},xt=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,n=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[s]=(0,Et.useState)((()=>new wt({apiUrl:r})));return{getUserById:(0,Et.useCallback)((async e=>{try{return await s.request({method:"GET",url:`/users/${e}`,headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get user profile"}}}),[s,n]),updateUserProfile:(0,Et.useCallback)((async(e,t)=>{try{return n?await s.request({method:"PATCH",url:`/users/${e}`,data:t,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to update user profile"}}}),[s,n]),getPrivacySettings:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"GET",url:`/privacy/${e}`,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get privacy settings"}}}),[s,n]),updatePrivacySettings:(0,Et.useCallback)((async(e,t)=>{try{return n?await s.request({method:"PATCH",url:`/privacy/${e}`,data:t,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to update privacy settings"}}}),[s,n]),searchUsers:(0,Et.useCallback)((async(e,t=10)=>{try{return await s.request({method:"GET",url:"/users/search",params:{query:e,limit:t},headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to search users"}}}),[s,n])}},Pt=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,n=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[s]=(0,Et.useState)((()=>new wt({apiUrl:r})));return{getUserKarma:(0,Et.useCallback)((async e=>{try{return await s.request({method:"GET",url:`/karma/${e}/total`,headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma"}}}),[s,n]),getUserKarmaHistory:(0,Et.useCallback)((async(e,t,r)=>{try{if(!n)return{success:!1,error:"Authentication token is required"};const o={};return void 0!==t&&(o.limit=t.toString()),void 0!==r&&(o.offset=r.toString()),await s.request({method:"GET",url:`/karma/${e}/history`,params:o,headers:{Authorization:`Bearer ${n()||""}`}})}catch(e){return{success:!1,error:e.message||"Failed to get karma history"}}}),[s,n]),awardKarma:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/karma/award",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to award karma"}}}),[s,n]),deductKarma:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/karma/deduct",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to deduct karma"}}}),[s,n]),getKarmaLeaderboard:(0,Et.useCallback)((async(e=10,t=0)=>{try{return await s.request({method:"GET",url:"/karma/leaderboard",params:{limit:e,offset:t},headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma leaderboard"}}}),[s,n]),getKarmaRules:(0,Et.useCallback)((async()=>{try{return await s.request({method:"GET",url:"/karma/rules",headers:n?{Authorization:`Bearer ${n()||""}`}:void 0})}catch(e){return{success:!1,error:e.message||"Failed to get karma rules"}}}),[s,n]),createOrUpdateKarmaRule:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/karma/rules",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to create or update karma rule"}}}),[s,n])}},Ut=e=>{const t=Rt(),r=(null==e?void 0:e.apiUrl)||t.apiUrl,n=(null==e?void 0:e.getToken)||t.getToken;if(!r)throw new Error("API URL is required. Provide it either through options or OxyProvider.");const[s]=(0,Et.useState)((()=>new wt({apiUrl:r})));return{getWallet:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"GET",url:`/wallet/${e}`,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get wallet information"}}}),[s,n]),getTransactionHistory:(0,Et.useCallback)((async(e,t=10,r=0)=>{try{return n?await s.request({method:"GET",url:`/wallet/transactions/${e}`,params:{limit:t,offset:r},headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get transaction history"}}}),[s,n]),transferFunds:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/wallet/transfer",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to transfer funds"}}}),[s,n]),processPurchase:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/wallet/purchase",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to process purchase"}}}),[s,n]),requestWithdrawal:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"POST",url:"/wallet/withdraw",data:e,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to request withdrawal"}}}),[s,n]),getTransaction:(0,Et.useCallback)((async e=>{try{return n?await s.request({method:"GET",url:`/wallet/transaction/${e}`,headers:{Authorization:`Bearer ${n()||""}`}}):{success:!1,error:"Authentication token is required"}}catch(e){return{success:!1,error:e.message||"Failed to get transaction"}}}),[s,n])}};module.exports=n})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Authentication, user management, and karma system for Oxy applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "webpack --config webpack.config.js",
|
|
10
10
|
"test": "jest",
|
|
11
|
-
"prepare": "npm run build"
|
|
11
|
+
"prepare": "npm run build",
|
|
12
|
+
"prepublishOnly": "npm test"
|
|
12
13
|
},
|
|
13
14
|
"keywords": [
|
|
14
15
|
"auth",
|
|
@@ -41,5 +42,8 @@
|
|
|
41
42
|
},
|
|
42
43
|
"files": [
|
|
43
44
|
"dist"
|
|
44
|
-
]
|
|
45
|
+
],
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
}
|
|
45
49
|
}
|
package/dist/backend/auth.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OxyAuthBackend = void 0;
|
|
4
|
-
const api_client_1 = require("../shared/api-client");
|
|
5
|
-
class OxyAuthBackend {
|
|
6
|
-
constructor(apiUrl) {
|
|
7
|
-
this.apiClient = new api_client_1.ApiClient({ apiUrl });
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Authenticate a user with username/email and password
|
|
11
|
-
*/
|
|
12
|
-
async login(credentials) {
|
|
13
|
-
return this.apiClient.request({
|
|
14
|
-
method: 'POST',
|
|
15
|
-
url: '/auth/login',
|
|
16
|
-
data: credentials
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Register a new user
|
|
21
|
-
*/
|
|
22
|
-
async register(userData) {
|
|
23
|
-
return this.apiClient.request({
|
|
24
|
-
method: 'POST',
|
|
25
|
-
url: '/auth/signup',
|
|
26
|
-
data: userData
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Refresh the authentication token
|
|
31
|
-
*/
|
|
32
|
-
async refreshToken(refreshToken) {
|
|
33
|
-
return this.apiClient.request({
|
|
34
|
-
method: 'POST',
|
|
35
|
-
url: '/auth/refresh-token',
|
|
36
|
-
data: { refreshToken }
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Logout the current user
|
|
41
|
-
*/
|
|
42
|
-
async logout(refreshToken) {
|
|
43
|
-
return this.apiClient.request({
|
|
44
|
-
method: 'POST',
|
|
45
|
-
url: '/auth/logout',
|
|
46
|
-
data: { refreshToken }
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Validate if a token is valid
|
|
51
|
-
*/
|
|
52
|
-
async validateToken(token) {
|
|
53
|
-
return this.apiClient.request({
|
|
54
|
-
method: 'POST',
|
|
55
|
-
url: '/auth/validate-token',
|
|
56
|
-
data: { token }
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Get the current user's profile
|
|
61
|
-
*/
|
|
62
|
-
async getCurrentUser(token) {
|
|
63
|
-
return this.apiClient.request({
|
|
64
|
-
method: 'GET',
|
|
65
|
-
url: '/auth/me',
|
|
66
|
-
headers: {
|
|
67
|
-
Authorization: `Bearer ${token}`
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Check if a username is available
|
|
73
|
-
*/
|
|
74
|
-
async checkUsernameAvailability(username) {
|
|
75
|
-
return this.apiClient.request({
|
|
76
|
-
method: 'GET',
|
|
77
|
-
url: `/auth/check-username/${username}`
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.OxyAuthBackend = OxyAuthBackend;
|