UNPKG

alova

Version:

The Request Toolkit For Ultimate Efficiency

2 lines (1 loc) 47.2 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("alova")):"function"==typeof define&&define.amd?define(["exports","alova"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).AlovaClientHook={},e.alova)}(this,(function(e,t){"use strict";const r="undefined",n=Promise,o=e=>n.resolve(e),s=e=>n.reject(e),a=Object,i=RegExp,c=void 0,l=null,u=!0,d=!1,h=(e,t,r)=>e.then(t,r),v=(e,t)=>e.catch(t),f=(e,t)=>e.finally(t),m=e=>n.all(e),p=(e,t=0)=>setTimeout(e,t),g=e=>a.keys(e),y=e=>a.values(e),E=(e,t)=>e.forEach(t),S=(e,...t)=>e.push(...t),b=(e,t)=>e.map(t),w=(e,t)=>e.filter(t),_=e=>e.shift(),C=(e,t,r=0,...n)=>e.splice(t,r,...n),R=e=>e.length,x=e=>Array.isArray(e),T=(e,t)=>delete e[t],O=e=>typeof e,k=(e,t)=>e.test(`${t}`),M=(e,t)=>e.includes(t),P=(e,t=d)=>({value:e,writable:t}),j=(e,t,r,n=d)=>a.defineProperty(e,t,n?r:P(r,d));typeof window===r&&typeof process!==r&&process.browser;const L="memory",N=()=>{},A=e=>e,D=e=>"function"===O(e),U=e=>"number"===O(e)&&!Number.isNaN(e),H=e=>"string"===O(e),F=e=>e!==l&&"object"===O(e),$=e=>a.prototype.toString.call(e),q=e=>"[object Object]"===$(e),I=(e,t)=>e instanceof t,B=e=>e?e.getTime():Date.now(),Q=e=>e.context,z=e=>e.config,G=()=>{const e=(new Date).getTime();return Math.floor(Math.random()*e).toString(36)},W=e=>e.key,K=(e,t,r=[])=>{const n=D(e)?e(...r):e;return t(!!n.key,"hook handler must be a method instance or a function that returns method instance"),n},V=(e,...t)=>a.assign(e,...t),J=(e,...t)=>{const r={};for(const n in e)t.includes(n)||(r[n]=e[n]);return r};function X(){let e,t;return{promise:new Promise(((r,n)=>{e=r,t=n})),resolve:e,reject:t}}const Y=e=>{const{cacheFor:t}=z(e);let r=L,n=()=>0,o=d,s=c;const a=D(t);if(!a){let a=t;if(q(t)){const{mode:e=L,expire:n,tag:i}=t||{};r=e,o="restore"===e,s=i?i.toString():c,a=n}n=t=>{return r=D(a)?a({method:e,mode:t}):a,U(r)?B()+r:B(r||c);var r}}return{f:t,c:a,e:n,m:r,s:o,t:s}},Z=(e,...t)=>new e(...t),ee=(e,t=[])=>D(e)?e(...t):e,te=(e=d)=>{const t=[];let r=c,o=!1;return{addQueue:s=>Z(n,((n,a)=>{S(t,(()=>h(s(),n,(t=>{e?n(c):a(t)})))),o||(async()=>{for(o=u;R(t)>0;){const e=_(t);e&&await e()}r&&r(),o=d})()})),onComplete:e=>{r=e}}},re=(e,t,r=u,n,o)=>{const s=()=>{o&&n&&(e=t(e,n,o))!==o[n]&&(o[n]=e)};if(r&&s(),F(e))for(const n in e)I(e,String)||re(e[n],t,r,n,e);return!r&&s(),e},ne=(e,t)=>{let{startQuiver:r,endQuiver:n}=e;const{delay:o,multiplier:s=1}=e;let a=(o||0)*s**(t-1);return(r||n)&&(r=r||0,n=n||1,a+=a*r+Math.random()*a*(n-r),a=Math.floor(a)),a};class oe extends Error{constructor(e,t,r){super(t+(r?`\n\nFor detailed: https://alova.js.org/error#${r}`:"")),this.name=`[alova${e?`/${e}`:""}]`}}const se=(e="")=>(t,r,n)=>{if(!t)throw Z(oe,e,r,n)},ae=JSON.parse,ie=()=>ae.bridgeData||{},ce=()=>{const e={};return{eventMap:e,on(t,r){const n=e[t]=e[t]||[];return S(n,r),()=>{e[t]=w(n,(e=>e!==r))}},off(t,r){const n=e[t];if(n)if(r){const e=n.indexOf(r);e>-1&&n.splice(e,1)}else delete e[t]},emit(t,r){const n=e[t]||[];return b(n,(e=>e(r)))}}},le=(e,t)=>{const r=ce(),n=G(),o=e((e=>r.emit(n,e)));return e=>(r.on(n,(r=>{t(e,r)})),o)};class ue{constructor(e,t,r,n){this.s=e,this.k=t,this.$dhy=r,this.$exp=n}get v(){return this.$dhy(this.s)}get e(){return this.$exp(this.s)}}class de extends ue{constructor(e,t,r,n,o){super(e,t,r,n),this.$upd=o}set v(e){this.$upd(this.s,e)}get v(){return this.$dhy(this.s)}}const he={authRole:null},ve={authRole:"login"},fe={authRole:"logout"},me={authRole:"refreshToken"},pe=({meta:e},t)=>{if(q(e))for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const n=t[r];if(I(n,RegExp)?n.test(e[r]):e[r]===n)return u}return d},ge=(e,t)=>Z(n,(r=>{S(t,{method:e,resolve:r})})),ye=(e,t,r,n)=>{if(pe(e,(null==t?void 0:t.metaMatches)||r)){return(D(t)?t:q(t)&&D(t.handler)?t.handler:N)(n,e)}},Ee=async(e,t,r,o,s,a)=>{const i=R(o)>=2;let l=null==s?void 0:s.isExpired(...o);if(I(l,n)&&(l=await l),l)try{let n=u;if(i&&a&&(n=d,await ge(e,t)),n&&(r(u),await(null==s?void 0:s.handler(...o)),r(d),E(t,(({resolve:e})=>e()))),i){const{config:t}=e,r=t.transform;t.transform=c;const n=await e;return t.transform=r,n}}finally{r(d),C(t,0,R(t))}},Se=e=>{let t=c,r=c,n=c;if(D(e))t=e;else if(q(e)){const{onSuccess:o,onError:s,onComplete:a}=e;t=D(o)?o:t,r=D(s)?s:r,n=D(a)?a:n}return{onSuccess:t,onError:r,onComplete:n}},be=e=>{throw e};const we=(e,t)=>{let r=l;return function(...n){const o=e.bind(this,...n),s=U(t)?t:t(...n);r&&(e=>{clearTimeout(e)})(r),s>0?r=p(o,s):o()}},_e=(e,r=[])=>{const n=D(e)?e(...r):e;return se("scene")(I(n,t.Method),"hook handler must be a method instance or a function that returns method instance"),n};var Ce;function Re(e,t={trackedKeys:{},bindError:d,initialRequest:d,...ie()}){const r=t=>e.ref?e.ref(t):{current:t};t=r(t).current;const n=r=>(e.export||A)(r,t),o=t=>{if(!D(e.memorize))return t;const r=e.memorize(t);return r.memorized=u,r},{dehydrate:s}=e,i=(r,n,o)=>r!==s(n,o,t)&&t.trackedKeys[o]&&e.update(r,n,o,t),c=e=>b(e,(e=>I(e,ue)?e.e:e)),l=[],h={};return{create:(r,o)=>(S(l,o),Z(de,e.create(r,o,t),o,(e=>s(e,o,t)),n,((e,t)=>i(t,e,o)))),computed:(r,o,a)=>(E(o,(e=>{e.k&&(h[e.k]=u)})),Z(ue,e.computed(r,c(o),a,t),a,(e=>s(e,a,t)),n)),effectRequest:r=>e.effectRequest(r,t),ref:r,watch:(r,n)=>e.watch(c(r),n,t),onMounted:r=>e.onMounted(r,t),onUnmounted:r=>e.onUnmounted(r,t),memorize:o,__referingObj:t,exposeProvider:e=>{const r={},n={},s=[];for(const i in e){const c=e[i];if(D(c)&&!t.trackedKeys[i])r[i]=i.startsWith("on")?(...e)=>(c(...e),p):c.memorized?c:o(c);else{M(["uploading","downloading"],i)||i.startsWith("__")||S(s,i);const e=I(c,ue);e&&(n[i]=c.s),a.defineProperty(r,i,{get:()=>(t.trackedKeys[i]=u,e?c.e:c),set:N,enumerable:u,configurable:u})}}const{update:c,__proxyState:v}=r;t.trackedKeys={...h},t.bindError=d;const{then:f}=r,m={__referingObj:t,update:o((e=>{g(e).forEach((t=>{M(l,t)?i(e[t],n[t],t):t in r&&D(c)&&c({[t]:e[t]})}))})),__proxyState:o((r=>M(l,r)&&I(e[r],ue)?(t.trackedKeys[r]=u,e[r]):v(r))),then(e,r){E(s,(e=>{t.trackedKeys[e]=u}));const n=()=>{T(p,"then"),e(p)};D(f)?f(n,r):n()}},p=V(r,m);return p},objectify:(e,t)=>e.reduce(((e,r)=>(e[r.k]=t?r[t]:r,e)),{}),transformState2Proxy:(e,r)=>Z(de,e,r,(e=>s(e,r,t)),n,((e,t)=>i(t,e,r)))}}!function(e){e[e.USE_REQUEST=1]="USE_REQUEST",e[e.USE_WATCHER=2]="USE_WATCHER",e[e.USE_FETCHER=3]="USE_FETCHER"}(Ce||(Ce={}));const xe=se(""),Te=se("useRequest"),Oe=se("useWatcher"),ke=se("useFetcher"),Me=e=>({[Ce.USE_REQUEST]:Te,[Ce.USE_WATCHER]:Oe,[Ce.USE_FETCHER]:ke}[e]),Pe=(e,r)=>e(I(r,t.Method),"expected a method instance."),je="success",Le="error",Ne="complete";class Ae{constructor(e,t){this.method=e,this.args=t}clone(){return{...this}}static spawn(e,t){return Z(Ae,e,t)}}class De extends Ae{constructor(e,t,r){super(e.method,e.args),this.data=t,this.fromCache=r}}class Ue extends Ae{constructor(e,t){super(e.method,e.args),this.error=t}}class He extends Ae{constructor(e,t,r,n,o){super(e.method,e.args),this.status=t,this.data=r,this.fromCache="error"!==t&&n,this.error=o}}class Fe{constructor(e,t,r){this.behavior=e,this.method=t,this.silentMethod=r}}class $e extends Fe{constructor(e,t,r,n,o){super(e,t,r),this.queueName=n,this.retryTimes=o}}class qe extends $e{constructor(e,t,r,n,o,s,a){super(e,t,r,n,o),this.data=s,this.vDataResponse=a}}class Ie extends $e{constructor(e,t,r,n,o,s,a){super(e,t,r,n,o),this.error=s,this.retryDelay=a}}class Be extends $e{constructor(e,t,r,n,o,s){super(e,t,r,n,o),this.error=s}}class Qe extends Fe{constructor(e,t,r,n){super(e,t,r),this.args=n}}class ze extends Qe{constructor(e,t,r,n,o){super(e,t,r,n),this.data=o}}class Ge extends Qe{constructor(e,t,r,n,o){super(e,t,r,n),this.error=o}}class We extends Qe{constructor(e,t,r,n,o,s){super(e,t,r,n),this.retryTimes=o,this.retryDelay=s}}class Ke extends Qe{constructor(e,t,r,n,o,s,a){super(e,t,r,n),this.status=o,this.data=s,this.error=a}}class Ve extends Ae{constructor(e,t,r){super(e.method,e.args),this.retryTimes=t,this.retryDelay=r}}class Je extends Ue{constructor(e,t,r){super(e,t),this.retryTimes=r}}const Xe=(e,t)=>t(),Ye={},Ze=(e,t)=>{const r=Ye[e]||{};return r[t]?Array.from(r[t]):[]};function et(e,r,n=[]){const s=Me(e.ht);let a=K(r,s,n);const{fs:i,ht:l,c:v}=e,{loading:f,data:m,error:p}=i,g=l===Ce.USE_FETCHER,{force:y=d,middleware:S=Xe}=v,b=Q(a),{id:w}=b,_=W(a),{abortLast:C=u}=v,R=!e.m;return e.m=a,(async()=>{let b=N,x=d,O=o(c),k=N,M=N;const P=await t.queryCache(a);let j=()=>!!P,L=d;g||(((e,t,r)=>{const n=Ye[e]=Ye[e]||{};n[t]||(n[t]=Z(Set)),n[t].add(r)})(w,_,e),b=()=>((e,t,r)=>{const n=Ye[e],o=n[t];n&&o&&(r?o.delete(r):o.clear(),0===o.size&&T(n,t))})(w,_,e));const A=t=>{x=u;const{force:r=y,method:o=a}=t||{},s=ee(r,[Z(Ae,a,n)]),c=e=>({loaded:t,total:r})=>{i[e].v={loaded:t,total:r}};a=o,e.rf[_]=b,L||(f.v=!!s||!P);const{downloading:l,uploading:h}=e.ro.trackedKeys;return k=l?a.onDownload(c("downloading")):k,M=h?a.onUpload(c("uploading")):M,O=a.send(s),j=()=>a.fromCache||d,O},D={method:a,cachedResponse:P,config:v,abort:()=>a.abort()},U=()=>l!==Ce.USE_WATCHER||!C||e.m===a,H=(e=u)=>{e&&R&&(f.v=d),L=e},F=S(g?{...D,args:n,fetch:(t,...r)=>(Pe(s,t),et(e,t,r)),proxyStates:J(i,"data"),controlLoading:H}:{...D,args:n,send:(...t)=>et(e,r,t),proxyStates:i,controlLoading:H},A);let $=c;const q=Ae.spawn(a,n);try{const t=await F,r=t=>(g?e.c.updateState!==d&&E(Ze(w,_),(e=>{e.fs.data.v=t})):U()&&(m.v=t),U()&&(p.v=c,!L&&(f.v=d),e.em.emit(je,Z(De,q,t,j())),e.em.emit(Ne,Z(He,q,je,t,j(),c))),t);$=t!==c?r(t):x?await h(O,r,(()=>r(c))):c,!x&&!L&&(f.v=d)}catch(t){throw U()&&(p.v=t,!L&&(f.v=d),e.em.emit(Le,Z(Ue,q,t)),e.em.emit(Ne,Z(He,q,Le,c,j(),t))),t}return k(),M(),$})()}const tt=e=>e.current;function rt(e,r,o,s,a=d,i,l=0){var v;o={...o};let f=!!a,m=c;if(a)try{const t=K(r,Me(e)),s=Q(t),a=s.l1Cache.get((g=s.id,S=W(t),"$a."+g+S));if(a&&!I(a,n)){const[e,t]=a;(!t||t>B())&&(m=e)}f=!!ee(null!==(v=o.force)&&void 0!==v?v:d)||!m}catch(e){}var g,S;const{create:b,effectRequest:w,ref:_,objectify:C,exposeProvider:R,transformState2Proxy:T,__referingObj:O}=Re(t.promiseStatesHook(),o.__referingObj),k={total:0,loaded:0},{managedStates:M={}}=o,P=((e,t)=>{const r={};for(const n in e)r[n]=t(e[n],n,e);return r})(M,((e,t)=>T(e,t))),j=b(null!=m?m:D(s)?s():s,"data"),L=b(f,"loading"),N=b(c,"error"),A=b({...k},"downloading"),H=b({...k},"uploading"),F=C([j,L,N,A,H]),$=ce(),q=tt(_(((e,t,r,n)=>({m:c,rf:{},fs:{},em:r,ht:e,c:t,ro:n,ms:{}}))(e,o,$,O)));q.fs=F,q.em=$,q.c=o,q.ms={...F,...P};const z=i!==c,G=(e=r,t)=>et(q,e,t),V=_(c),J=_(d),Y=tt(_(((e=0)=>{let t=c;return r=>{t&&clearTimeout(t),t=p(r,e)}})())),Z=(e=O,r)=>{Y((()=>{t.globalConfigMap.ssr&&!tt(V)||(O.initialRequest=J.current=u,h(G(r),(()=>{var e;null===(e=tt(V))||void 0===e||e.resolve()}),(t=>{var r;if(!e.bindError&&!e.trackedKeys.error&&!tt(V))throw t;null===(r=tt(V))||void 0===r||r.reject(t)})))}))},te=_(we(((e,t,r)=>Z(t,r)),(e=>U(e)?x(l)?l[e]:l:0)));w({handler:z?e=>te.current(e,O,r):()=>Z(O),removeStates:()=>{E(y(q.rf),(e=>e()))},frontStates:{...F,...P},watchingStates:i,immediate:null!=a?a:u});const re=R({...C([j,L,N,A,H]),abort:()=>q.m&&q.m.abort(),send:(e,t)=>G(t,e),onSuccess(e){$.on(je,e)},onError(e){O.bindError=u,$.on(Le,e)},onComplete(e){$.on(Ne,e)},then(e,t){const{promise:r,resolve:n,reject:o}=X();V.current={resolve:n,reject:o},p((()=>{!J.current&&n()}),10),h(r,(()=>{e(re)}),t)}});return re}function nt(e={}){const t=rt(Ce.USE_FETCHER,N,e),{send:r}=t;return T(t,"send"),V(t,{fetch:(e,...t)=>(Pe(ke,e),r(t,e))})}function ot(e,t={}){const{immediate:r=u,initialData:n}=t,o=rt(Ce.USE_REQUEST,e,t,n,!!r),{send:s}=o;return V(o,{send:(...e)=>s(e)})}function st(e,t,r={}){Oe(t&&R(t)>0,"expected at least one watching state");const{immediate:n,debounce:o=0,initialData:s}=r,a=rt(Ce.USE_WATCHER,e,r,s,!!n,t,o),{send:i}=a;return V(a,{send:(...e)=>i(e)})}const at=se("usePagination"),it=(e,t)=>at(U(e)&&e<R(t),"index must be a number that less than list length"),ct=e=>[e[e.length-2],e[e.length-1],e.slice(0,e.length-2)];const lt=(e,t)=>se(e)(x(t)&&R(t)>0,"please use an array to represent serial requests"),ut=(e,t,r=[])=>(e.shift(),(n,s)=>{null==t||t(n,(()=>o(c))),n.controlLoading();const a=n.proxyStates.loading;a.v=u;let i=s();for(const t of e)i=h(i,(e=>{const o=t(e,...n.args);return S(r,o),o.send()}));return i.finally((()=>{a.v=d}))});const dt="valueOf",ht="default",vt="silent";let ft;const mt=e=>{ft=e};let pt;let gt={};let yt=0;const Et=e=>{yt=e};let St=[];const bt=Symbol("GlobalSQBoot"),wt=Symbol("GlobalSQBefore"),_t=Symbol("GlobalSQSuccess"),Ct=Symbol("GlobalSQError"),Rt=Symbol("GlobalSQFail"),xt=ce(),Tt=se("useSQRequest");async function Ot(e,r){let o=d;if(e){const{update:s}=t.promiseStatesHook(),a=W(e),{id:i}=Q(e),l=Ze(i,a),d=D(r)?{data:r}:r,h=b(l,(async r=>{let n=c;if(r){const{ms:e,ro:t}=r;E(g(d),(r=>{xe(r in e,`state named \`${r}\` is not found`);const o=e[r];let a=d[r](o.v);a=x(a)?[...a]:F(a)?{...a}:a,"data"===r&&(n=a),s(a,e[r].s,r,t)}))}n!==c&&await t.setCache(e,n)}));R(h)>0&&(await n.all(h),o=u)}return o}var kt={forward:e=>I(e,Date)?e.getTime():c,backward:e=>Z(Date,e)},Mt={forward:e=>I(e,RegExp)?e.source:void 0,backward:e=>Z(RegExp,e)};const Pt=(e={})=>{const t={date:kt,regexp:Mt,...e};return{serialize:e=>{if(F(e)){const{data:r}=re({data:e},(e=>{let r=c;const n=g(t).reduce(((e,n)=>{if(!r){const o=t[n].forward(e);o!==c&&(r=n,e=o)}return e}),e);return"[object Object]"===a.prototype.toString.call(e)?e={...e}:x(e)&&(e=[...e]),r!==c?[r,n]:e}));e=r}return e},deserialize:e=>F(e)?re({data:e},(e=>{if(x(e)&&2===R(e)){const r=t[e[0]];e=r?r.backward(e[1]):e}return e}),d).data:e}},jt=Symbol("vdid"),Lt=Symbol("original"),Nt=/\[vd:([0-9a-z]+)\]/,At=e=>{const t=null==e?void 0:e[jt];t&&ft&&(ft[t]=c)},Dt=(e,t=u)=>{At(e);const r=null==e?void 0:e[jt];return(r?`[vd:${r}]`:c)||(t?e:c)};function Ut(){return Dt(this)}const Ht=function(){};Ht.prototype=a.create(l,{[dt]:P(Ut)});const Ft=function(){};Ft.prototype=a.create(l,{[dt]:P(Ut)});var $t=(e,t=G())=>{const r=(e,t=G())=>{if(e===l)e=Z(Ht);else if(e===c)e=Z(Ft);else{const t=a(e);j(t,dt,Ut),j(t,Lt,e),e=t}return j(e,jt,t),e},n=r(e,t);return(q(n)||x(n))&&re(n,(e=>r(e))),n};const qt=(e,t=u)=>{const r=e=>(At(e),(null==e?void 0:e[jt])&&(I(e,Ft)?e=c:I(e,Ht)?e=l:(I(e,Number)||I(e,String)||I(e,Boolean))&&(e=e[Lt])),e),n=r(e);return t&&(F(n)||x(n))&&re(n,(e=>r(e))),n};const It="__$k",Bt="__$v",Qt=()=>(Tt(!!pt,"alova instance is not found, Do you forget to set `alova` or call `bootSilentFactory`?"),pt.l2Cache);let zt=c;const Gt="alova.SQ",Wt="alova.SM.",Kt=async(e,t)=>{const r=Qt();F(t)&&(t=re(x(t)?[...t]:{...t},((e,t,r)=>{var n;if(t===Bt&&r[It])return e;if("context"===t&&"Alova"===(null===(n=null==e?void 0:e.constructor)||void 0===n?void 0:n.name))return c;const o=null==e?void 0:e[jt];let s=qt(e,d);if("[object Object]"===$(s)?(e={...e},s={}):x(e)&&(e=[...e],s=[]),o){const t={[It]:o,[Bt]:s,...e};if(I(e,String))for(let r=0;r<R(e);r+=1)null==t||delete t[r];e=t}return e}))),zt=zt||Pt(gt),await r.set(e,zt.serialize(t))},Vt=async e=>{const t=await Qt().get(e);return zt=zt||Pt(gt),F(t)?re(zt.deserialize(t),(e=>{if(F(e)&&(null==e?void 0:e[It])){const t=e[It],r=$t(e[Bt],t);E(g(e),(t=>{M([It,Bt],t)||(r[t]=e[t])})),e=r}return e}),d):t},Jt=async e=>{await Qt().remove(e)},Xt=e=>Kt(Wt+e.id,e),Yt=async(e,t,r)=>{const n=await Vt(Gt)||{},o=n[e]||[],s=o.findIndex((e=>e===t));s>=0&&(r?(C(o,s,1,r.id),await Xt(r)):C(o,s,1),await Jt(Wt+t),R(o)<=0&&delete n[e],R(g(n))>0?await Kt(Gt,n):await Jt(Gt))};let Zt={};const er=(e,t)=>{const r=e=>{const r=Dt(e);return r in t?t[r]:H(e)?e.replace(Z(i,Nt.source,"g"),(e=>e in t?t[e]:e)):e};return F(e)&&!Dt(e,d)?re(e,r):e=r(e),e},tr=(e,t)=>{let r={};const n=Dt(e,d);if(n&&(r[n]=t),F(e))for(const n in e)r={...r,...tr(e[n],null==t?void 0:t[n])};return r},rr=(e,t)=>{t?e.active=t:delete e.active},nr=1e3,or=(e,r)=>{const o=t=>{const r=e[0];if(r){const n=St.find((({queue:e})=>I(e,i)?k(e,t):e===t)),o=()=>e[0]&&s(e[0]),a=(null==n?void 0:n.wait)?ee(n.wait,[r,t]):0;a&&a>0?p(o,a):o()}},s=(a,i=0)=>{rr(a,u);const{cache:c,id:l,behavior:v,entity:f,retryError:m=/.*/,maxRetryTimes:g=0,backoff:y={delay:nr},resolveHandler:S=N,rejectHandler:w=N,emitter:C,handlerArgs:x=[],virtualResponse:T,force:O}=a;xt.emit(wt,Z($e,v,f,a,r,i)),h(f.send(O),(async s=>{if(_(e),c&&await Yt(r,l),S(s),v===vt){const o=tr(T,s),{targetRefMethod:c,updateStates:l}=a;if(I(c,t.Method)&&l&&R(l)>0){const e={};E(l,(t=>{e[t]=e=>er(e,o)}));Ot(c,e)||await t.setCache(c,(e=>er(e,o)))}await((e,t)=>n.all(b(t,(async t=>{er(t.entity,e),t.cache&&await Xt(t)}))))(o,e),xt.emit(_t,Z(qe,v,f,a,r,i,s,o))}rr(a,d),o(r)}),(t=>{if(v!==vt)_(e),w(t);else{const e=e=>xt.emit(Ct,Z(Ie,v,f,a,r,i,t,e)),{name:n="",message:o=""}=t||{};let c,l;I(m,RegExp)?l=m:F(m)&&(c=m.name,l=m.message);const u=c&&k(c,n)||l&&k(l,o);if(i<g&&u){const t=ne(y,i+1);e(t),p((()=>{s(a,i+=1),C.emit("retry",Z(We,v,f,a,x,i,t))}),t)}else Et(2),e(),C.emit("fallback",Z(Ge,v,f,a,x,t)),xt.emit(Rt,Z(Be,v,f,a,r,i,t))}rr(a,d)}))};o(r)},sr=async(e,t,r=ht,n=()=>[])=>{e.cache=t;const o=Zt[r]=Zt[r]||[],s=R(o)<=0,a=!(await Promise.all(n())).some((e=>e===d));return a&&(t&&await(async(e,t)=>{await Xt(e);const r=await Vt(Gt)||{},n=r[t]=r[t]||[];S(n,e.id),await Kt(Gt,r)})(e,r),S(o,e),s&&1===yt&&or(o,r)),a},ar=e=>{let t=c,r="",n=0;for(const o in Zt)if(n=Zt[o].indexOf(e),n>=0){t=Zt[o],r=o;break}return[t,r,n]};class ir{constructor(e,t,r,n=G(),o,s,a,i,c,l,u,d){const h=this;h.entity=e,h.behavior=t,h.id=n,h.emitter=r,h.force=!!o,h.retryError=s,h.maxRetryTimes=a,h.backoff=i,h.resolveHandler=c,h.rejectHandler=l,h.handlerArgs=u,h.vDatas=d}async save(){this.cache&&await Xt(this)}async replace(e){const t=this;Tt(e.cache===t.cache,"the cache of new silentMethod must equal with this silentMethod");const[r,n,o]=ar(t);r&&(C(r,o,1,e),t.cache&&await Yt(n,t.id,e))}async remove(){const e=this,[t,r,n]=ar(e);t&&(C(t,n,1),e.cache&&await Yt(r,e.id))}setUpdateState(e,t="data"){e&&(this.targetRefMethod=e,this.updateStates=x(t)?t:[t])}}var cr=async()=>{const e=await Vt(Gt)||{},r={},o=[];return E(g(e),(n=>{const s=r[n]=r[n]||[];S(o,...b(e[n],(async e=>{const r=await Vt(Wt+e);r&&S(s,(e=>{const{id:r,behavior:n,entity:o,retryError:s,maxRetryTimes:a,backoff:i,resolveHandler:c,rejectHandler:l,handlerArgs:d,targetRefMethod:h,force:v}=e,f=e=>{const{type:r,url:n,config:o,data:s}=e;return Z(t.Method,r,pt,n,o,s)},m=Z(ir,f(o),n,ce(),r,v,s,a,i,c,l,d);return m.cache=u,h&&(m.targetRefMethod=f(h)),E(g(e),(t=>{M(["id","behavior","emitter","entity","retryError","maxRetryTimes","backoff","resolveHandler","rejectHandler","handlerArgs","targetRefMethod","force"],t)||(m[t]=e[t])})),m})(r))})))})),await n.all(o),r};let lr=c;var ur=(e,t)=>{const{behavior:r="queue",queue:s=ht,retryError:a,maxRetryTimes:i,backoff:l}=t||{},v=ce();let f,m,p,y=ht,E=d;return{c:(...t)=>(Tt(D(e),"method handler must be a function. eg. useSQRequest(() => method)"),mt({}),f=t,e(...t)),m:({method:e,args:t,cachedResponse:S,proxyStates:b,config:w},_)=>{const{silentDefaultResponse:C,vDataCaptured:x,force:T=d}=w,O=Ae.spawn(e,t);m=ee(r,[O]),y=ee(s,[O]),E=ee(T,[O]);const M=()=>{mt(f=c)};if(D(x)){let t=ft&&R(g(ft))>0;if(!t){const{url:r,data:n}=e,{params:o,headers:s}=z(e);re({url:r,params:o,data:n,headers:s},(e=>(t||!Dt(e,d)&&!k(Nt,e)||(t=u),e)))}const r=t?x(e):c;if(r!==c)return M(),o(r)}if("static"!==m){const r=()=>{const r=Z(n,((t,r)=>{p=Z(ir,e,m,v,c,!!E,a,i,l,t,r,f,ft&&g(ft)),M()}));return h(o(c),(async()=>{const r=()=>Z(Qe,m,e,p,t);await sr(p,R(v.eventMap.fallback||[])<=0&&m===vt,y,(()=>v.emit("beforePushQueue",r())))&&v.emit("pushedQueue",r())})),r};if("queue"===m){const e=E||!S;return e&&(b.loading.v=u),e?r():h(o(S))}const s=r(),d=p.virtualResponse=$t(D(C)?C():c);return h(s,(e=>{b.data.v=e})),o(d)}return M(),_()},d:e=>{e.onSuccess=le(e.onSuccess,((e,t)=>{lr=p,e(Z(ze,m,t.method,p,t.args,t.data))})),e.onError=le(e.onError,((e,t)=>{e(Z(Ge,m,t.method,p,t.args,t.error))})),e.onComplete=le(e.onComplete,((e,t)=>{e(Z(Ke,m,t.method,p,t.args,t.status,t.data,t.error))}))},b:{onFallback:e=>{v.on("fallback",e)},onBeforePushQueue:e=>{v.on("beforePushQueue",e)},onPushedQueue:e=>{v.on("pushedQueue",e)},onRetry:e=>{v.on("retry",e)}}}};const dr=async(e,t=ht,r=d)=>{const n=(t=[])=>t.filter((t=>{if(e===c)return u;const n=z(t.entity).name||"";return(I(e,RegExp)?k(e,n):n===e)&&(r?t.active:u)}));return[...n(Zt[t]),...0===yt?n((await cr())[t]):[]]};class hr{constructor(e,t={}){var r,n,o;this.cancelBubble=d,this.currentTarget=l,this.defaultPrevented=d,this.eventPhase=0,this.isTrusted=d,this.returnValue=u,this.srcElement=l,this.target=l,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.type=e,this.bubbles=null!==(r=t.bubbles)&&void 0!==r&&r,this.cancelable=null!==(n=t.cancelable)&&void 0!==n&&n,this.composed=null!==(o=t.composed)&&void 0!==o&&o,this.timeStamp=Date.now()}preventDefault(){this.cancelable&&(this.defaultPrevented=!0)}stopImmediatePropagation(){}stopPropagation(){this.cancelBubble=!0}composedPath(){return[]}initEvent(e,t,r){}}hr.NONE=0,hr.CAPTURING_PHASE=1,hr.AT_TARGET=2,hr.BUBBLING_PHASE=3;const vr="undefined"!=typeof Event?Event:hr;class fr extends vr{constructor(e,t){super(e,{bubbles:u,cancelable:u,composed:u}),this.data=t.data,this.lastEventId=t.lastEventId,this.origin=t.origin||"",this.error=t.error}}class mr extends Ae{constructor(e,t){super(e.method,e.args),this.eventSource=t}}class pr extends mr{constructor(e,t){super(e,e.eventSource),this.error=t}}class gr extends mr{constructor(e,t){super(e,e.eventSource),this.data=t}}const yr=se("EventSourceFetch");class Er{constructor(e,t,r={}){this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,this.onopen=null,this.onmessage=null,this.onerror=null,this._listeners={},this._reconnectTime=null,this._controller=null,this._lastEventId="",this._origin="",this.url=e,this.readyState=Er.CONNECTING,this._options={...r},this._reconnectTime=t;const n=Z(URL,e,window.location.href);this._origin=n.origin,e&&p((()=>this._connect()))}addEventListener(e,t){this._listeners[e]=this._listeners[e]||[];this._listeners[e].find((e=>e===t||F(e)&&F(t)&&(null==e?void 0:e.handleEvent)===t.handleEvent))||this._listeners[e].push(t)}removeEventListener(e,t){t&&this._listeners[e]&&(this._listeners[e]=w(this._listeners[e],(e=>e!==t&&!("object"==typeof e&&"object"==typeof t&&(null==e?void 0:e.handleEvent)===t.handleEvent))))}dispatchEvent(e){if(!(e instanceof fr))return u;const t=this._listeners[e.type]||[];for(const r of t)D(r)?r(e):r&&D(r.handleEvent)&&r.handleEvent(e);const r=this[`on${e.type}`];return D(r)&&r(e),!e.defaultPrevented}close(){this.readyState!==Er.CLOSED&&(this.readyState=Er.CLOSED,this._dispatchEvent("close",""),this._controller&&(this._controller.abort(),this._controller=null))}_connect(){if(this.readyState===Er.CLOSED)return;this._controller=Z(AbortController);const e=this._options,t=e.headers||{},r=["Accept","text/event-stream"],n="Last-Event-ID",s=this._lastEventId;if(x(t))S(t,r),s&&S(t,[n,s]);else if(I(t,Headers))t.append(r[0],r[1]),s&&t.append(n,s);else if(F(t)){const[e,o]=r;t[e]=o,s&&(t[n]=s)}const a={...e,headers:t,signal:this._controller.signal};fetch(this.url,a).then((e=>{yr(e.ok,`HTTP error: ${e.status}`),yr(e.body,"ReadableStream not supported");const t=Z(URL,e.url);this._origin=t.origin,this.readyState=Er.OPEN,this._dispatchEvent("open","");const r=e.body.getReader(),n=new TextDecoder;let s="";const a=({done:e,value:t})=>{if(e)return this.readyState!==Er.CLOSED&&this._reconnect(),o();s+=n.decode(t,{stream:!0});const i=s.split(/\r\n|\r|\n/);return s=i.pop()||"",this._processEventStream(i),r.read().then(a).catch((e=>("AbortError"!==e.name&&this.readyState!==Er.CLOSED&&this._onError(e),o())))};return r.read().then(a).catch((e=>{"AbortError"!==e.name&&this.readyState!==Er.CLOSED&&this._onError(e)}))})).catch((e=>{"AbortError"!==e.name&&this.readyState!==Er.CLOSED&&this._onError(e)}))}_processEventStream(e){let t="message",r="",n=null,o=null;const s=()=>{if(r){if(r.endsWith("\n")&&(r=r.substring(0,r.length-1)),null!==n&&(this._lastEventId=n),null!==o&&null===this._reconnectTime){const e=parseInt(o,10);Number.isNaN(e)||(this._reconnectTime=e)}this._dispatchEvent(t,r)}t="message",r="",n=null,o=null};for(const a of e){if(""===a){s();continue}if(a.startsWith(":"))continue;let e,i;const c=a.indexOf(":");switch(-1===c?(e=a,i=""):(e=a.slice(0,c),i=a.slice(c+(" "===a[c+1]?2:1))),e){case"event":t=i;break;case"data":r=r?`${r}\n${i}`:i;break;case"id":if(i.includes("\0"))continue;n=i;break;case"retry":o=i;break;default:throw Z(oe,"EventSource",`EventSource: Unknown field "${e}", ignoring`)}}}_dispatchEvent(e,t){const r=Z(fr,e,{type:e,data:t,lastEventId:this._lastEventId,origin:this._origin});this.dispatchEvent(r)}_onError(e){const t=Z(fr,"error",{type:"error",data:"",lastEventId:this._lastEventId,origin:this._origin,error:e});this.dispatchEvent(t),this.readyState!==Er.CLOSED&&this._reconnect()}_reconnect(){var e;if(null!==this._reconnectTime&&this._reconnectTime<=0)this.close();else if(this.readyState!==Er.CLOSED){this.readyState=Er.CONNECTING;const t=null!==(e=this._reconnectTime)&&void 0!==e?e:1e3;p((()=>this._connect()),t)}}}Er.CONNECTING=0,Er.OPEN=1,Er.CLOSED=2;const Sr=Symbol("SSEOpen"),br=Symbol("SSEMessage"),wr=Symbol("SSEError");var _r;!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"}(_r||(_r={}));const Cr="useSSE",Rr=se(Cr);var xr;!function(e){e.Open="open",e.Error="error",e.Message="message",e.Close="close"}(xr||(xr={}));const Tr=se("useUploader");function Or(e,{limit:r=0,localLink:o,replaceSrc:s,mode:a}={}){const{create:i,computed:l,exposeProvider:h,ref:v}=Re(t.promiseStatesHook()),p=ce(),g=i([],"fileList"),y=l((()=>g.v[0]),[g],"file"),_=i(!1,"uploading"),T=i(0,"successCount"),O=i(0,"failCount"),k=l((()=>({...g.v.reduce(((e,{progress:t,status:r})=>(0!==r&&(e.total+=t.total,e.uploaded+=t.uploaded),e)),{uploaded:0,total:0})})),[g],"progress"),P=l((()=>{var e;return null===(e=g.v.find((e=>e.error)))||void 0===e?void 0:e.error}),[g],"error"),j=(e,t=[1,2],r="upload")=>{const n={upload:"uploaded",abort:"aborted"}[r],o=g.v;return R(e)>0?b(e,((e,r)=>{const s=U(e),a=s?o[e]:e,i=s?`index ${e}`:`position ${r}`;return Tr(a,`The file of ${i} does not exist`),R(t)>0&&Tr(!M(t,a.status)&&F(a.file),`The file of ${i} cannot be ${n}, which status is ${a.status}`),a})):w(o,(e=>!M(t,e.status)))},L=(e,t)=>w(e,(e=>R(t)>0?M(t,e.status):u)),N=v([]),A=(e,t)=>{g.v.findIndex((t=>t.file===e))>-1&&S(N.current,{f:e,m:t})},D=e=>{N.current=w(N.current,(({m:t})=>t!==e))},H=(...e)=>{const t=j(e,[0,2,3],"abort"),r=[];R(t)>0?E(t,(({file:e})=>{const t=N.current.find((({f:t})=>t===e));t&&S(r,t.m)})):S(r,...b(N.current,(({m:e})=>e)));const n=[];return E(r,(e=>{n.includes(e)||S(n,e)})),m(b(n,(e=>e.abort())))},$=(e,t,r)=>{const n=Ae.spawn(e,[]);return{successEvent:Z(De,n,t,d),errorEvent:Z(Ue,n,r),completeEvent:Z(He,n,r?Le:je,t,d,r)}},q=(e,t,r,n,o=0)=>{if(e.status=t,2===t){if(e.progress.uploaded=e.progress.total,s){const t=s(r,o);t&&(e.src=t)}}else 3===t&&(e.error=n);g.v=[...g.v]};return h({fileList:g,uploading:_,file:y,progress:k,successCount:T,failCount:O,error:P,appendFiles:async(e={},t={})=>{var s;let a=e,i=t;e.file||x(e)||(i=e,a=[]);let c=x(a)?a:[a];R(c)<=0&&(c=await Or.selectFile(i)),Tr(r<=0||R(g.v)+R(c)<=r,`The number of files exceeds the limit of ${r}`);const{converters:l}=Or,u=await n.all(b(c,(async e=>{const t=l.find((({is:t})=>t(e)));Tr(t,`Invalid file type, only ${b(l,(({name:e})=>e)).join(", ")} are supported, if other file needs, customize convert function with \`useUploader.convertFile.push({ is: ..., convert: ... })\``);const r=await t.convert(e);return Tr(r,"Failed to convert file"),{src:e.src||(o?URL.createObjectURL(r):void 0),file:r,status:0,progress:{uploaded:0,total:r.size}}}))),d=null!==(s=i.start)&&void 0!==s?s:R(g.v),h=w(u,Boolean),v=[...g.v];return C(v,d,0,...h),g.v=v,R(u)},removeFiles:(...e)=>{const t=j(e,[]);R(t)>0?(H(...L(t,[1])),g.v=w(g.v,(e=>!M(t,e))),T.v=R(L(g.v,[2])),O.v=R(L(g.v,[3]))):(H(...L(g.v,[1])),g.v=[])},upload:async(...t)=>{const r=j(t);E(r,(e=>{e.status=1}));const o=b(r,(({file:e})=>({file:e,name:e.name})));return _.v=u,"batch"===a?((t,r)=>{const n=e(r);return n.onUpload((e=>{E(t,(t=>{t.progress.uploaded=e.loaded*(t.progress.total/e.total)}))})),E(t,(({file:e})=>A(e,n))),n.then((e=>{E(t,((t,r)=>q(t,2,e,void 0,r))),T.v=R(L(g.v,[2]));const{successEvent:r,completeEvent:o}=$(n,e);return p.emit(je,r),p.emit(Ne,o),e}),(e=>{E(t,(t=>q(t,3,void 0,e))),O.v=R(L(g.v,[3]));const{errorEvent:r,completeEvent:o}=$(n,void 0,e);return p.emit(Le,r),p.emit(Ne,o),e})).finally((()=>{_.v=!1,D(n)}))})(r,o):(t=>{const r=b(t,((r,n)=>{const o=e({file:r.file,name:r.file.name});return o.onUpload((({loaded:e,total:r})=>{E(t,(t=>{t.progress.uploaded=e,t.progress.total=r}))})),A(r.file,o),o.then((e=>{q(r,2,e,c,n),T.v+=1;const{successEvent:t,completeEvent:s}=$(o,e);return p.emit(je,t),p.emit(Ne,s),e}),(e=>{q(r,3,c,e),O.v+=1;const{errorEvent:t,completeEvent:n}=$(o,c,e);return p.emit(Le,t),p.emit(Ne,n),e})).finally((()=>{D(o)}))}));return f(n.all(r),(()=>{_.v=d}))})(r)},abort:H,onSuccess:e=>{p.on(je,e)},onError:e=>{p.on(Le,e)},onComplete:e=>{p.on(Ne,e)}})}Or.selectFile=({multiple:e,accept:t}={})=>{const r=document.createElement("input");return r.type="file",r.multiple=!!e,t&&(r.accept=t),r.click(),Z(Promise,(e=>{r.addEventListener("change",(()=>{const t=b(Array.from(r.files||[]),(e=>({file:e,name:e.name,mimeType:e.type})));e(t)}))}))};const kr="text/plain";Or.converters=[{name:"HTMLCanvasElement",is:({file:e})=>I(e,HTMLCanvasElement),async convert({file:e,mimeType:t,name:r}){const o=await Z(n,(t=>null==e?void 0:e.toBlob(t)));if(o)return Z(File,[o],r||"image.png",{type:t||o.type})}},{name:"base64",is:({file:e})=>H(e),convert({file:e="",mimeType:t,name:r}){var n;Tr(/data:.+;base64,/.test(e),"Invalid base64 string");const o=e.split(","),s=null===(n=o[0].match(/:(.*?);/))||void 0===n?void 0:n[1],a=atob(o[1]),i=new Uint8Array(R(a));return E(Array.from(a),((e,t)=>{i[t]=e.charCodeAt(0)})),Z(File,[i],r||"file",{type:t||s||kr})}},{name:"File",is:({file:e})=>I(e,File),convert:({file:e})=>e},{name:"Blob",is:({file:e})=>I(e,Blob),convert:({file:e,name:t,mimeType:r})=>Z(File,[e],t||"file",{type:r||e.type||kr})},{name:"ArrayBuffer",is:({file:e})=>I(e,ArrayBuffer),convert:({file:e,name:t,mimeType:r})=>Z(File,[Z(Blob,[e])],t||"file",{type:r||kr})}];const Mr=(e,r={})=>{let n=u;const{enableFocus:o=u,enableVisibility:s=u,enableNetwork:a=u,pollingTime:i=0,throttle:c=1e3}=r,{onMounted:l,onUnmounted:h,__referingObj:v}=Re(t.promiseStatesHook()),f=ot(e,{...r,__referingObj:v}),m=()=>{n&&(f.send(),c>0&&(n=d,setTimeout((()=>{n=u}),c)))};let p=N,g=N,y=N,E=N;return l((()=>{t.globalConfigMap.ssr||(p=a?Mr.onNetwork(m,r):p,g=o?Mr.onFocus(m,r):g,y=s?Mr.onVisibility(m,r):y,E=i>0?Mr.onPolling(m,r):E)})),h((()=>{p(),g(),y(),E()})),f},Pr=(e,t)=>(window.addEventListener(e,t),()=>window.removeEventListener(e,t));Mr.onNetwork=e=>Pr("online",e),Mr.onFocus=e=>Pr("focus",e),Mr.onVisibility=e=>Pr("visibilitychange",(()=>"visible"===document.visibilityState&&e())),Mr.onPolling=(e,t)=>{const r=setInterval(e,t.pollingTime);return()=>clearInterval(r)};const jr="useCaptcha",Lr=se(jr);const Nr=Symbol("FormRestore"),Ar=ce(),Dr={},Ur=e=>{const t=e=>x(e)?[...e]:q(e)?{...e}:e;return re(t(e),t)};const Hr=Symbol("RetriableRetry"),Fr=Symbol("RetriableFail"),$r="useRetriableRequest",qr=se($r);let Ir=0;const Br={},Qr=se("subscriber");e.accessAction=(e,t,r=!1)=>{const n=[];"symbol"==typeof e||H(e)||U(e)?Br[e]&&S(n,...y(Br[e])):I(e,RegExp)&&E(w(g(Br),(t=>e.test(t))),(e=>{S(n,...y(Br[e]))})),0!==n.length||r||Qr(!1,`no handler can be matched by using \`${e.toString()}\``),E(w(n,A),t)},e.actionDelegationMiddleware=e=>{const{ref:r,onUnmounted:n}=Re(t.promiseStatesHook()),o=r(Ir+1);return o.current>Ir&&(Ir+=1),n((()=>{var t;(null===(t=Br[e])||void 0===t?void 0:t[o.current])&&delete Br[e][o.current]})),(t,r)=>{const{abort:n,proxyStates:s,delegatingActions:a={}}=t,i=e=>{for(const t in e)s[t]&&(s[t].v=e[t])},c=Br[e]=Br[e]||[],l=(e=>!!e.send)(t)?{...a,send:t.send,abort:n,update:i}:{...a,fetch:t.fetch,abort:n,update:i};return c[o.current]=l,r()}},e.bootSilentFactory=e=>{if(0===yt){const{alova:t,delay:r=500}=e;pt=t,((e={})=>{gt=e})(e.serializers),((e=0)=>{St=x(e)?e:[{queue:ht,wait:e}]})(e.requestWait),p((async()=>{var e;e=await cr(),E(g(e),(t=>{const r=Zt[t]=Zt[t]||[];S(r,...e[t])})),E(g(Zt),(e=>{or(Zt[e],e)})),Et(1),xt.emit(bt,c)}),r)}},e.createClientTokenAuthentication=({visitorMeta:e,login:t,logout:r,refreshToken:n,assignToken:o=N})=>{let s=d;const a=[];return{waitingList:a,onAuthRequired:r=>async i=>{const c=pe(i,e||he),l=pe(i,(null==t?void 0:t.metaMatches)||ve);return c||l||pe(i,(null==n?void 0:n.metaMatches)||me)||(s&&await ge(i,a),await Ee(i,a,(e=>{s=e}),[i],n)),c||l||await o(i),null==r?void 0:r(i)},onResponseRefreshToken:e=>{const n=Se(e);return{...n,onSuccess:async(e,o)=>(await ye(o,t,ve,e),await ye(o,r,fe,e),(n.onSuccess||A)(e,o))}}}},e.createServerTokenAuthentication=({visitorMeta:e,login:t,logout:r,refreshTokenOnSuccess:n,refreshTokenOnError:o,assignToken:s=N})=>{let a=d;const i=[];return{waitingList:i,onAuthRequired:r=>async c=>{const l=pe(c,e||he),u=pe(c,(null==t?void 0:t.metaMatches)||ve);return l||u||pe(c,(null==n?void 0:n.metaMatches)||me)||pe(c,(null==o?void 0:o.metaMatches)||me)||a&&await ge(c,i),l||u||await s(c),null==r?void 0:r(c)},onResponseRefreshToken:s=>{const c=Se(s);return{...c,onSuccess:async(o,s)=>{if(!pe(s,e||he)&&!pe(s,(null==t?void 0:t.metaMatches)||ve)&&!pe(s,(null==n?void 0:n.metaMatches)||me)){const e=await Ee(s,i,(e=>{a=e}),[o,s],n,a);if(e)return e}return await ye(s,t,ve,o),await ye(s,r,fe,o),(c.onSuccess||A)(o,s)},onError:async(r,n)=>{if(!pe(n,e||he)&&!pe(n,(null==t?void 0:t.metaMatches)||ve)&&!pe(n,(null==o?void 0:o.metaMatches)||me)){const e=await Ee(n,i,(e=>{a=e}),[r,n],o,a);if(e)return e}return(c.onError||N)(r,n)}}}}},e.dehydrateVData=e=>qt(e),e.equals=(e,t)=>e===t?u:Dt(e)===Dt(t),e.filterSilentMethods=dr,e.getSilentMethod=async(e,t=ht,r=d)=>(await dr(e,t,r))[0],e.isVData=e=>!!Dt(e,d)||k(Nt,e),e.onBeforeSilentSubmit=e=>xt.on(wt,e),e.onSilentSubmitBoot=e=>xt.on(bt,e),e.onSilentSubmitError=e=>xt.on(Ct,e),e.onSilentSubmitFail=e=>xt.on(Rt,e),e.onSilentSubmitSuccess=e=>xt.on(_t,e),e.silentQueueMap=Zt,e.statesHookHelper=Re,e.stringifyVData=Dt,e.updateState=Ot,e.updateStateEffect=async(e,t)=>(lr&&(lr.setUpdateState(e,D(Ot)?c:g(Ot)),await lr.save()),Ot(e,t)),e.useAutoRequest=Mr,e.useCaptcha=(e,r={})=>{const{initialCountdown:o,middleware:s}=r;Lr(o===c||o>0,"initialCountdown must be greater than 0");const{create:a,ref:i,objectify:l,exposeProvider:u,__referingObj:h}=Re(t.promiseStatesHook()),v=a(0,"countdown"),f=ot(e,{...r,__referingObj:h,immediate:d,managedStates:l([v],"s"),middleware:s?(e,t)=>s({...e,send:p},t):c}),m=i(c),p=(...e)=>Z(n,((t,n)=>{v.v<=0?f.send(...e).then((e=>{v.v=r.initialCountdown||60,m.current=setInterval((()=>{v.v-=1,v.v<=0&&clearInterval(m.current)}),1e3),t(e)})).catch((e=>n(e))):n(Z(oe,jr,"the countdown is not over yet"))}));return u({...f,send:p,...l([v])})},e.useFetcher=nt,e.useForm=(e,r={})=>{const{id:n}=r,o=n?Dr[n]:c,{id:s,initialForm:a,store:i,resetAfterSubmiting:l,immediate:h=d,middleware:v}=(null==o?void 0:o.config)||r;t.promiseStatesHook();const{create:f,ref:m,onMounted:p,onUnmounted:g,watch:y,objectify:E,exposeProvider:S,__referingObj:b}=Re(t.promiseStatesHook()),w=q(i),_=w?i.enable:i,C=f(Ur((null==o?void 0:o.form)||a),"form"),R=e,x=ce(),T=m(c);let O=null==o?void 0:o.l2Cache;_&&!(null==o?void 0:o.l2Cache)&&(T.current=ee(R,[C.v]),O=Q(T.current).l2Cache);const k=(M=s||T.current||"",`alova/form-${I(M,t.Method)?W(M):M}`);var M;const P=m(d),j=m(Pt(w?i.serializers:c));s&&!Dr[s]&&(Dr[s]={form:C.v,l2Cache:O,config:r});const L=ot(((...e)=>R(C.v,...e)),{...r,__referingObj:b,middleware:v?(e,t)=>v({...e,delegatingActions:{updateForm:D,reset:A}},t):c,immediate:_||o?d:h}),A=()=>{P.current=u;const e=Ur(a);e&&(C.v=e),_&&(null==O||O.remove(k))},D=e=>{C.v={...C.v,...e}},U=S({...L,...E([C]),updateForm:D,reset:A,onRestore(e){x.on(Nr,e)}}),H=m(N),{send:F,onSuccess:$}=U;return p((()=>{if(s&&(H.current=Ar.on(s,(e=>{C.v=e}))),_&&O&&!o){const e=j.current.deserialize(O.get(k));e&&(C.v=e,x.emit(Nr,c)),h&&F()}})),y([C],(()=>{s&&(Ar.emit(s,C.v),Dr[s]&&(Dr[s].form=C.v)),!P.current&&_?null==O||O.set(k,j.current.serialize(C.v)):P.current=d})),g((()=>{H.current()})),$((()=>{l&&A()})),U},e.usePagination=(e,r={})=>{const{create:n,computed:s,ref:a,watch:i,exposeProvider:l,objectify:h,__referingObj:_}=Re(t.promiseStatesHook()),{preloadPreviousPage:T=u,preloadNextPage:O=u,total:k=e=>e.total,data:P=e=>e.data,append:j=d,initialPage:A=1,initialPageSize:H=10,watchingStates:F=[],initialData:$,immediate:q=u,middleware:Q,force:z=N,actions:G={},...K}=r,V=a(e),J=a(d),Z=n(A,"page"),ee=n(H,"pageSize"),re=n($&&P($)||[],"data"),ne=n($?k($):c,"total"),{snapshots:oe,get:se,save:ae,remove:ie}=a((e=>{let r={};return{snapshots:()=>r,save(e,t=d){const n=W(e);r[n]&&!t||(r[n]={entity:e})},get:n=>r[W(I(n,t.Method)?n:e(n))],remove(e){e?delete r[e]:r={}}}})((e=>V.current(e,ee.v)))).current,ce=e=>P(e)||e,le=nt({__referingObj:_,updateState:d,force:({args:e})=>e[R(e)-1]}),{loading:ue,fetch:de,abort:he,onSuccess:ve}=le,fe=a(ue),me=(t=Z.v,r=[])=>{const n=e(t,ee.v,...r);return ae(n),n};i(F,(()=>{Z.v=A,J.current=u}));const pe=a({}),ge=n("","status"),ye=n([],"removing"),Ee=n(c,"replacing"),Se=s((()=>{const e=ne.v;return e!==c?Math.ceil(e/ee.v):c}),[ee,ne],"pageCount"),be=e=>(...t)=>pe.current[e](...t),we=st(((...e)=>{const[t,,r]=ct(e);return me(t,r)}),[...F,Z.e,ee.e],{__referingObj:_,immediate:q,initialData:$,managedStates:h([re,Z,ee,ne],"s"),middleware:(e,t)=>Q?Q({...e,delegatingActions:{refresh:be("refresh"),insert:be("insert"),remove:be("remove"),replace:be("replace"),reload:be("reload"),getState:e=>({page:Z,pageSize:ee,data:re,pageCount:Se,total:ne,isLastPage:ke}[e].v)}},t):t(),force:e=>e.args[1]||(D(z)?z(e):z),...K}),{send:_e}=we,Ce=we.__proxyState("data"),xe=async e=>{const{rawData:r=Ce.v,preloadPage:n,fetchMethod:o,forceRequest:s=d,isNextPage:a=d}=e,i=Se.v,c=i?n>i:a?R(ce(r))<ee.v:d;if(!(n>0&&!c))return d;const{e:l}=Y(o),u=await t.queryCache(o);return l(L)<=B()?d:s||!u},Te=async(e,t,r=[])=>{const n=Z.v+1,o=me(n,r);O&&await xe({rawData:e,preloadPage:n,fetchMethod:o,isNextPage:u,forceRequest:t})&&v(de(o,...r,t),N)},Oe=()=>{const e=Ce.v;if(!e)return u;const t=ce(e),r=Z.v,n=Se.v,o=x(t)?R(t):0;return n?r>=n:o<ee.v},ke=n(Oe(),"isLastPage");i([Z,Se,Ce,ee],(async()=>{p((()=>{ke.v=Oe()}))}));const Me=async()=>{const e=se(Z.v);e&&await t.setCache(e.entity,(e=>{if(e){const t=ce(e)||[];return C(t,0,R(t),...re.v),e}}))};ve((({method:e,data:t})=>{const r=se(Z.v);if(r&&W(r.entity)===W(e)){const e=ce(t);if(j){const t=re.v,r=ee.v,n=R(t)%r;if(n>0){const t=[...re.v];C(t,(Z.v-1)*r,n,...e),re.v=t}}else re.v=e}}));const Pe=a(c),je=a(c);we.onSuccess((({data:e,args:t,method:r})=>{const[n,o,s]=ct(t),{total:a}=se(r)||{},i=e;ne.v=a!==c?a:k(i),o||((async(e,t=[])=>{const r=Z.v-1,n=me(r,t);T&&await xe({rawData:e,preloadPage:r,fetchMethod:n})&&v(de(n,...t,c),N)})(i,s),Te(i,d,s));const l=ee.v,u=ce(i);if(at(x(u),"Got wrong array, did you return the correct array of list in `data` function"),j){if(J.current&&(re.v=[]),n===c)re.v=[...re.v,...u];else if(n){const e=[...re.v];C(e,(n-1)*l,l,...u),re.v=e}}else re.v=u})).onSuccess((({data:e})=>{var t;null===(t=Pe.current)||void 0===t||t.call(Pe,e)})).onError((({error:e})=>{var t;null===(t=je.current)||void 0===t||t.call(je,e)})).onComplete((()=>{J.current=d}));const Le=e=>{const t=re.v.indexOf(e);return at(t>=0,"item is not found in list"),t},{addQueue:Ne,onComplete:Ae}=a(te()).current,De=async(t=Z.v)=>{let r=t,n=o();if(j){if(!U(t)){const e=Le(t);r=Math.floor(e/ee.v)+1}at(r<=Z.v,"refresh page can't greater than page"),n=_e(r,u)}else at(U(r),"unable to calculate refresh page by item in pagination mode"),n=r===Z.v?_e(c,u):de(e(r,ee.v),u);return n},Ue=async(e=d)=>{const r=Z.v,n=oe();let o=y(n);if(e)ie();else{const e=b(w([se(r-1),se(r),se(r+1)],Boolean),(({entity:e})=>W(e)));o=b(w(g(n),(t=>!M(e,t))),(e=>{const t=n[e];return delete n[e],t}))}await t.invalidateCache(b(o,(({entity:e})=>e)))},He=async()=>{fe.current&&he(),await Ue();const e=se(Z.v+1);if(e){const r=ce(await t.queryCache(e.entity)||{})||[];Te(c,R(r)<ee.v)}},Fe=e=>{if(0===e)return;const t=ne.v;if(U(t)){const r=Math.max(t+e,0);ne.v=r;const n=Z.v;E([se(n-1),se(n),se(n+1)],(e=>{e&&(e.total=r)}))}},$e=(e,r=0)=>(Ae(He),Ne((async()=>{const n=U(r)?r:Le(r)+1;at(n>=0,"illegal insert position"),D(G.insert)&&(ge.v="inserting",await f(G.insert(e,r),(()=>{ge.v=""})));let o=c;const s=[...re.v];if(R(s)%ee.v==0&&(o=s.pop()),C(s,n,0,e),re.v=s,Fe(1),await Me(),o){const e=se(Z.v+1);e&&await t.setCache(e.entity,(e=>{if(e){const t=ce(e)||[];return t.unshift(o),t.pop(),e}}))}}))),qe=(...e)=>(Ae(He),Ne((async()=>{const r=b(e,(e=>{const t=U(e)?e:Le(e);return it(t,re.v),t}));if(D(G.remove)){ge.v="removing",ye.v=[...r];const t=m(b(e,(e=>G.remove(e))));await f(t,(()=>{ge.v="",ye.v=[]}))}const n=Z.v,o=se(n+1),s=[];o&&await t.setCache(o.entity,(e=>{if(e){const t=ce(e);return x(t)&&S(s,...C(t,0,R(r))),e}}));const a=Oe(),i=R(s);let c=!1;if(i>0||a){const e=w(re.v,((e,t)=>!M(r,t)));c=!j&&a&&R(e)<=0,!c&&i>0&&S(e,...s),re.v=e}else i<=0&&!a&&De(n);return Fe(-R(r)),Me().then((()=>{c&&n>1&&(Z.v=n-1)}))}))),Ie=(e,t)=>Ne((async()=>{at(t!==c,"expect specify the replace position");const r=U(t)?t:Le(t);it(r,re.v),D(G.replace)&&(ge.v="replacing",Ee.v=r,await f(G.replace(e,t),(()=>{ge.v="",Ee.v=c})));const n=[...re.v];C(n,r,1,e),re.v=n,await Me()})),Be=async()=>{await Ue(u),J.current=u,Z.v===A?v(_e(),N):Z.v=A;const{resolve:e,reject:t,promise:r}=X();return Pe.current=e,je.current=t,r};return pe.current={refresh:De,insert:$e,remove:qe,replace:Ie,reload:Be},l({...we,...h([re,Z,Se,ee,ne,ke,ge,ye,Ee]),send:(...e)=>_e(...e,c,c),fetching:le.loading,onFetchSuccess:le.onSuccess,onFetchError:le.onError,onFetchComplete:le.onComplete,refresh:De,insert:$e,remove:qe,replace:Ie,reload:Be})},e.useRequest=ot,e.useRetriableRequest=(e,r={})=>{const{retry:n=3,backoff:a={delay:1e3},middleware:i=N}=r,{ref:l,exposeProvider:h,__referingObj:f}=Re(t.promiseStatesHook()),m=ce(),g=l(0),y=l(c),E=l(c),S=l(c),b=l(d),w=l(c),_=l(X()),C=ot(e,{...r,__referingObj:f,middleware(e,t){i({...e,delegatingActions:{stop:R}},(()=>o()));const{proxyStates:r,args:l,send:h,method:f,controlLoading:C}=e;C();const{loading:x}=r,T=(e=d)=>{x.v=e},O=e=>{T(),r.error.v=e,clearTimeout(w.current),((e,t,r)=>{p((()=>{m.emit(Fr,Z(Je,Ae.spawn(e,t),r,g.current)),y.current=c,g.current=0}))})(f,l,e)};return x.v||v(_.current.promise,(e=>{O(e),_.current=X()})),T(u),b.current=u,E.current=f,S.current=l,t().then((e=>(T(),e)),(e=>{if(!y.current&&(U(n)?g.current<n:n(e,...l))){g.current+=1;const e=ne(a,g.current);w.current=p((()=>{m.emit(Hr,Z(Ve,Ae.spawn(f,l),g.current,e)),v(h(...l),N)}),e)}else e=y.current||e,O(e);return s(e)})).finally((()=>{b.current=d}))}}),R=()=>{qr(C.__proxyState("loading").v,"there is no requests being retried"),y.current=Z(oe,$r,"stop retry manually"),b.current?C.abort():_.current.reject(y.current)};return h({...C,stop:R,onRetry:e=>{m.on(Hr,(t=>e(t)))},onFail:e=>{m.on(Fr,(t=>e(t)))}})},e.useSQRequest=function(e,r={}){const{exposeProvider:n,__referingObj:o}=Re(t.promiseStatesHook()),{middleware:s=N}=r,{c:a,m:i,b:c,d:l}=ur(e,r),u=ot(a,{...r,__referingObj:o,middleware:(e,t)=>{const r=i(e,t);return s(e,(()=>r)),r}});return l(u),n({...u,...c})},e.useSSE=(e,r={})=>{const{initialData:n,withCredentials:a,interceptByGlobalResponded:i=u,immediate:l=d,responseType:v="text",reconnectionTime:m=null,...p}=r,y=u,{create:S,ref:_,onMounted:C,onUnmounted:R,objectify:x,exposeProvider:T,memorize:O}=Re(t.promiseStatesHook()),k=_([]),M=_(c),P=_(c),j=S(n,"data"),L=S(_r.CLOSED,"readyState"),U=S(c,"eventSource");let F,B=_e(e);const G=ce(),W=_(new Map),K=_(A),V=_(be),J=_(N),Y=e=>{const{responded:t}=(e=>Q(e).options)(e);if(F=t,D(F))K.current=F;else if(F&&q(F)){const{onSuccess:e,onError:t,onComplete:r}=F;K.current=D(e)?e:K.current,V.current=D(t)?t:V.current,J.current=D(r)?r:J.current}},ee=async e=>{const{headers:r,transform:n=A}=z(B),o=await e,s=await n(o,r||{});return j.v=s,t.hitCacheBySource(B),s},te=async(e,t)=>{Rr(M.current,"EventSource is not initialized");const r=M.current,n=Z(mr,Ae.spawn(B,k.current),r);if(e===xr.Open)return n;const a=i?K.current:A,c=i?V.current:be,l=i?J.current:N,u=H(t);if("json"===v&&u)try{d=t,t=JSON.parse(d)}catch(e){throw Z(oe,Cr,e.message)}var d;const m=f(h(u?o(t):s(t),(e=>ee(a(e,B))),(e=>ee(c(e,B)))),(()=>{l(B)}));return h(m,(e=>Z(gr,n,e)),(e=>new pr(n,e)))},re=e=>t=>t.error===c?e(t):G.emit(wr,t),ne=O((()=>{var e;L.v=_r.OPEN,h(te(xr.Open),(e=>G.emit(Sr,e))),null===(e=P.current)||void 0===e||e.resolve()})),se=O((e=>{var t;L.v=_r.CLOSED,h(te(xr.Error,e.error||Z(Error,"SSE Error")),re((e=>G.emit(br,e)))),null===(t=P.current)||void 0===t||t.resolve()})),ae=O((e=>{h(te(xr.Message,e.data),re((e=>G.emit(br,e))))})),ie=()=>{const e=M.current;e&&(P.current&&P.current.resolve(),e.close(),e.removeEventListener(xr.Open,ne),e.removeEventListener(xr.Error,se),e.removeEventListener(xr.Message,ae),e.removeEventListener(xr.Close,ie),L.v=_r.CLOSED,W.current.forEach((([t,r],n)=>{e.removeEventListener(n,r)})))},le=(...t)=>{let r=M.current,n=P.current;r&&y&&ie(),n||(n=P.current=X(),n&&f(n.promise,(()=>{n=c}))),k.current=t,B=_e(e,t),Y(B);const{params:o,headers:s}=z(B),{baseURL:i,url:l,data:u,type:d}=B,v=((e,t,r)=>{const n=/^https?:\/\//i.test(t);n||(e=e.endsWith("/")?e.slice(0,-1):e,""!==t&&(t=t.startsWith("/")?t:`/${t}`));const o=n?t:e+t,s=H(r)?r:b(w(g(r),(e=>r[e]!==c)),(e=>`${e}=${r[e]}`)).join("&");return s?+o.includes("?")?`${o}&${s}`:`${o}?${s}`:o})(i,l,o);var E,S,_;return r=Z(Er,v,m,{credentials:a?"include":"same-origin",method:d||"GET",headers:s,body:(e=>H(e)||(e=>{const t=$(e);return/^\[object (Blob|FormData|ReadableStream|URLSearchParams)\]$/i.test(t)||I(e,ArrayBuffer)})(e))(u)?u:(E=u,JSON.stringify(E,S,_)),...p}),M.current=r,U.v=r,L.v=_r.CONNECTING,r.addEventListener(xr.Open,ne),r.addEventListener(xr.Error,se),r.addEventListener(xr.Message,ae),r.addEventListener(xr.Close,ie),W.current.forEach((([e,t],n)=>{null==r||r.addEventListener(n,(e=>{h(te(n,e.data),re(t))}))})),n.promise};return R((()=>{ie(),G.off(Sr),G.off(br),G.off(wr),W.current.forEach((([e,t,r])=>{r()}))})),C((()=>{var e;l&&(le(),null===(e=P.current)||void 0===e||e.promise.catch((()=>{})))})),T({send:le,close:ie,on:(e,t)=>{var r;const n=W.current;if(!n.has(e)){const t=function(e=N){let t=[];return[r=>(t.includes(r)||(t.push(r),e(t)),()=>{t=w(t,(e=>e!==r)),e(t)}),(...e)=>{if(t.length>0)return E(t,(t=>t(...e)))},()=>{t=[],e(t)}]}((r=>{var n;0===r.length&&(null===(n=M.current)||void 0===n||n.removeEventListener(e,t[1]),W.current.delete(e))})),o=t[1];n.set(e,t),null===(r=M.current)||void 0===r||r.addEventListener(e,(t=>{h(te(e,t.data),re(o))}))}const[o]=n.get(e);return o(t)},onMessage:e=>{G.on(br,e)},onError:e=>{G.on(wr,e)},onOpen:e=>{G.on(Sr,e)},...x([L,j,U])})},e.useSerialRequest=(e,r={})=>{lt("useSerialRequest",e);const{ref:n,__referingObj:o}=Re(t.promiseStatesHook()),s=n([]).current,a=ot(e[0],{...r,__referingObj:o,middleware:ut(e,r.middleware,s)});return a.onError=le(a.onError,((e,t)=>{t.method=s[R(s)-1],e(t)})),a},e.useSerialWatcher=(e,r,n={})=>{lt("useSerialWatcher",e);const{ref:o,__referingObj:s}=Re(t.promiseStatesHook()),a=o([]).current,i=st(e[0],r,{...n,__referingObj:s,middleware:ut(e,n.middleware,a)});return i.onError=le(i.onError,((e,t)=>{t.method=a[R(a)-1],e(t)})),i},e.useUploader=Or,e.useWatcher=st}));