alova
Version:
Request strategy library for MVVM libraries such as Vue.js, React.js and Svelte.js
2 lines (1 loc) • 35.9 kB
JavaScript
!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=Object,a=RegExp,i=void 0,c=null,u=!0,l=!1,d=(e,t,r)=>e.then(t,r),f=(e,t)=>e.catch(t),m=(e,t=0)=>setTimeout(e,t),h=e=>s.keys(e),v=e=>s.values(e),p=(e,t)=>e.forEach(t),g=(e,...t)=>e.push(...t),y=(e,t)=>e.map(t),S=(e,t)=>e.filter(t),w=e=>e.shift(),b=(e,t,r=0,...n)=>e.splice(t,r,...n),E=e=>e.length,x=e=>Array.isArray(e),R=(e,t)=>delete e[t],_=e=>typeof e,k=(e,t)=>e.test(`${t}`),C=(e,t)=>e.includes(t),M=(e,t=l)=>({value:e,writable:t}),T=(e,t,r,n=l)=>s.defineProperty(e,t,n?r:M(r,l));typeof window===r&&typeof process!==r&&process.cwd;const j="memory",P=()=>{},O=e=>e,H=e=>"function"===_(e),q=e=>"number"===_(e)&&!Number.isNaN(e),D=e=>"string"===_(e),F=e=>e!==c&&"object"===_(e),L=e=>s.prototype.toString.call(e),U=e=>"[object Object]"===L(e),A=(e,t)=>e instanceof t,Q=e=>e?e.getTime():Date.now(),$=e=>e.context,N=e=>e.config,z=()=>{const e=(new Date).getTime();return Math.floor(Math.random()*e).toString(36)},W=e=>e.key,G=(e,t,r=[])=>{const n=H(e)?e(...r):e;return t(!!n.key,"hook handler must be a method instance or a function that returns method instance"),n},B=(e,...t)=>s.assign(e,...t),K=(e,...t)=>{const r={};for(const n in e)t.includes(n)||(r[n]=e[n]);return r};function I(){let e,t;return{promise:new Promise(((r,n)=>{e=r,t=n})),resolve:e,reject:t}}const V=e=>{const{cacheFor:t}=N(e);let r=j,n=()=>0,o=l,s=i;const a=H(t);if(!a){let a=t;if(U(t)){const{mode:e=j,expire:n,tag:c}=t||{};r=e,o="restore"===e,s=c?c.toString():i,a=n}n=t=>{return r=H(a)?a({method:e,mode:t}):a,q(r)?Q()+r:Q(r||i);var r}}return{f:t,c:a,e:n,m:r,s:o,t:s}},J=(e,...t)=>new e(...t),X=(e,t=[])=>H(e)?e(...t):e,Y=(e=l)=>{const t=[];let r=i,o=!1;return{addQueue:s=>J(n,((n,a)=>{g(t,(()=>d(s(),n,(t=>{e?n(i):a(t)})))),o||(async()=>{for(o=!0;E(t)>0;){const e=w(t);e&&await e()}r&&r(),o=!1})()})),onComplete:e=>{r=e}}},Z=(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)A(e,String)||Z(e[n],t,r,n,e);return!r&&s(),e},ee=(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 te extends Error{constructor(e,t,r){super(t+(r?`\n\nFor detailed: https://alova.js.org/error#${r}`:"")),this.name=`[alova${e?`/${e}`:""}]`}}const re=(e="")=>(t,r,n)=>{if(!t)throw J(te,e,r,n)},ne=()=>{const e={};return{eventMap:e,on(t,r){const n=e[t]=e[t]||[];return g(n,r),()=>{e[t]=S(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 y(n,(e=>e(r)))}}},oe=(e,t)=>{const r=ne(),n=z(),o=e((e=>r.emit(n,e)));return e=>(r.on(n,(r=>{t(e,r)})),o)};class se{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 ae extends se{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 super.v}}const ie={authRole:null},ce={authRole:"login"},ue={authRole:"logout"},le={authRole:"refreshToken"},de=({meta:e},t)=>{if(U(e))for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const n=t[r];if(A(n,RegExp)?n.test(e[r]):e[r]===n)return u}return l},fe=(e,t)=>J(n,(r=>{g(t,{method:e,resolve:r})})),me=(e,t,r,n)=>{if(de(e,(null==t?void 0:t.metaMatches)||r)){return(H(t)?t:U(t)&&H(t.handler)?t.handler:P)(n,e)}},he=async(e,t,r,o,s,a)=>{const c=E(o)>=2;let d=null==s?void 0:s.isExpired(...o);if(A(d,n)&&(d=await d),d)try{let n=u;if(c&&a&&(n=l,await fe(e,t)),n&&(r(u),await(null==s?void 0:s.handler(...o)),r(l),p(t,(({resolve:e})=>e()))),c){const{config:t}=e,r=t.transform;t.transform=i;const n=await e;return t.transform=r,n}}finally{r(l),b(t,0,E(t))}},ve=e=>{let t=i,r=i,n=i;if(H(e))t=e;else if(U(e)){const{onSuccess:o,onError:s,onComplete:a}=e;t=H(o)?o:t,r=H(s)?s:r,n=H(a)?a:n}return{onSuccess:t,onError:r,onComplete:n}},pe=e=>{throw e};const ge=(e,t)=>{let r=c;return function(...n){const o=e.bind(this,...n),s=q(t)?t:t(...n);r&&(e=>{clearTimeout(e)})(r),s>0?r=m(o,s):o()}},ye=(e,r=[])=>{const n=H(e)?e(...r):e;return re("scene")(A(n,t.Method),"hook handler must be a method instance or a function that returns method instance"),n};var Se;function we(e,t={trackedKeys:{},bindError:l}){const r=t=>e.ref?e.ref(t):{current:t};t=r(t).current;const n=r=>(e.export||O)(r,t),o=t=>{if(!H(e.memorize))return t;const r=e.memorize(t);return r.memorized=!0,r},{dehydrate:a}=e,i=(r,n,o)=>r!==a(n,o,t)&&t.trackedKeys[o]&&e.update(r,n,o,t),c=e=>y(e,(e=>A(e,se)?e.e:e)),d=[],f={};return{create:(r,o)=>(g(d,o),J(ae,e.create(r,o,t),o,(e=>a(e,o,t)),n,((e,t)=>i(t,e,o)))),computed:(r,o,s)=>(p(o,(e=>{e.k&&(f[e.k]=!0)})),J(se,e.computed(r,c(o),s,t),s,(e=>a(e,s,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={};for(const a in e){const i=e[a];if(H(i)&&!t.trackedKeys[a])r[a]=a.startsWith("on")?(...e)=>(i(...e),v):i.memorized?i:o(i);else{const e=A(i,se);e&&(n[a]=i.s),s.defineProperty(r,a,{get:()=>(t.trackedKeys[a]=u,e?i.e:i),set:P,enumerable:u,configurable:u})}}const{update:a,__proxyState:c}=r;t.trackedKeys={...f},t.bindError=l;const m={__referingObj:t,update:o((e=>{h(e).forEach((t=>{C(d,t)?i(e[t],n[t],t):t in r&&H(a)&&a({[t]:e[t]})}))})),__proxyState:o((r=>C(d,r)&&A(e[r],se)?(t.trackedKeys[r]=u,e[r]):c(r)))},v=B(r,m);return v},objectify:(e,t)=>e.reduce(((e,r)=>(e[r.k]=t?r[t]:r,e)),{}),transformState2Proxy:(e,r)=>J(ae,e,r,(e=>a(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"}(Se||(Se={}));const be=re(""),Ee=re("useRequest"),xe=re("useWatcher"),Re=re("useFetcher"),_e=e=>({[Se.USE_REQUEST]:Ee,[Se.USE_WATCHER]:xe,[Se.USE_FETCHER]:Re}[e]),ke=(e,r)=>e(A(r,t.Method),"expected a method instance."),Ce="success",Me="error",Te="complete";class je{constructor(e,t){this.method=e,this.args=t}clone(){return{...this}}static spawn(e,t){return new je(e,t)}}class Pe extends je{constructor(e,t,r){super(e.method,e.args),this.data=t,this.fromCache=r}}class Oe extends je{constructor(e,t){super(e.method,e.args),this.error=t}}class He extends je{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 qe extends je{constructor(e,t){super(e.method,e.args),this.eventSource=t}}class De extends qe{constructor(e,t){super(e,e.eventSource),this.error=t}}class Fe extends qe{constructor(e,t){super(e,e.eventSource),this.data=t}}class Le{constructor(e,t,r){this.behavior=e,this.method=t,this.silentMethod=r}}class Ue extends Le{constructor(e,t,r,n,o){super(e,t,r),this.queueName=n,this.retryTimes=o}}class Ae extends Ue{constructor(e,t,r,n,o,s,a){super(e,t,r,n,o),this.data=s,this.vDataResponse=a}}class Qe extends Ue{constructor(e,t,r,n,o,s,a){super(e,t,r,n,o),this.error=s,this.retryDelay=a}}class $e extends Ue{constructor(e,t,r,n,o,s){super(e,t,r,n,o),this.error=s}}class Ne extends Le{constructor(e,t,r,n){super(e,t,r),this.args=n}}class ze extends Ne{constructor(e,t,r,n,o){super(e,t,r,n),this.data=o}}class We extends Ne{constructor(e,t,r,n,o){super(e,t,r,n),this.error=o}}class Ge extends Ne{constructor(e,t,r,n,o,s){super(e,t,r,n),this.retryTimes=o,this.retryDelay=s}}class Be extends Ne{constructor(e,t,r,n,o,s,a){super(e,t,r,n),this.status=o,this.data=s,this.error=a}}class Ke extends je{constructor(e,t,r){super(e.method,e.args),this.retryTimes=t,this.retryDelay=r}}class Ie extends Oe{constructor(e,t,r){super(e,t),this.retryTimes=r}}const Ve=(e,t)=>t(),Je={},Xe=(e,t)=>(Je[e]||{})[t]||{};function Ye(e,r,n=[]){const s=_e(e.ht);let a=G(r,s,n);const{fs:c,ht:f,c:m,ms:h}=e,{loading:v,data:p,error:y}=c,S=f===Se.USE_FETCHER,{force:w=l,middleware:b=Ve}=m,E=$(a),{id:x}=E,_=W(a),{abortLast:k=u}=m,C=!e.m;return e.m=a,(async()=>{let E=P,M=P,T=l,j=o(i),O=P,H=P;const q=await t.queryCache(a);let D=()=>!!q,F=l;S||(M=t=>((e,t,r,n)=>{(Je[e]=Je[e]||{})[t]={s:r,h:n}})(x,_,t,e),M({...c,...h}),E=()=>((e,t)=>{const r=Je[e];r&&R(r,t)})(x,_));const L=t=>{T=u;const{force:r=w,method:o=a}=t||{},s=X(r,[J(je,a,n)]),i=e=>({loaded:t,total:r})=>{c[e].v={loaded:t,total:r}};a=o,g(e.sf,M),g(e.rf,E),F||(v.v=!!s||!q);const{downloading:d,uploading:f}=e.ro.trackedKeys;return O=d?a.onDownload(i("downloading")):O,H=f?a.onUpload(i("uploading")):H,j=a.send(s),D=()=>a.fromCache||l,j},U={method:a,cachedResponse:q,config:m,abort:()=>a.abort()},A=()=>f!==Se.USE_WATCHER||!k||e.m===a,Q=(e=u)=>{e&&C&&(v.v=l),F=e},$=b(S?{...U,args:n,fetch:(t,...r)=>(ke(s,t),Ye(e,t,r)),proxyStates:K(c,"data"),controlLoading:Q}:{...U,args:n,send:(...t)=>Ye(e,r,t),proxyStates:c,controlLoading:Q},L);let N=i;const z=je.spawn(a,n);try{const t=await $,r=t=>{if(S){if(e.c.updateState!==l){const e=Xe(x,_).s;e&&(e.data.v=t)}}else A()&&(p.v=t);return A()&&(y.v=i,!F&&(v.v=l),e.em.emit(Ce,J(Pe,z,t,D())),e.em.emit(Te,J(He,z,Ce,t,D(),i))),t};N=t!==i?r(t):T?await d(j,r,(()=>r(i))):i,!T&&!F&&(v.v=l)}catch(t){throw A()&&(y.v=t,!F&&(v.v=l),e.em.emit(Me,J(Oe,z,t)),e.em.emit(Te,J(He,z,Me,i,D(),t))),t}return O(),H(),N})()}const Ze=e=>e.current;function et(e,r,o,s,a=l,c,d=0){var h;o={...o};const{__referingObj:v={trackedKeys:{},bindError:l}}=o;let g=!!a,y=i;if(a)try{const t=G(r,_e(e)),s=$(t),a=s.l1Cache.get((S=s.id,w=W(t),"$a."+S+w));if(a&&!A(a,n)){const[e,t]=a;(!t||t>Q())&&(y=e)}g=!!X(null!==(h=o.force)&&void 0!==h?h:l)||!y}catch(e){}var S,w;const{create:b,effectRequest:E,ref:R,objectify:_,exposeProvider:k,transformState2Proxy:C}=we(t.promiseStatesHook(),v),M={total:0,loaded:0},{managedStates:T={}}=o,j=((e,t)=>{const r={};for(const n in e)r[n]=t(e[n],n,e);return r})(T,((e,t)=>C(e,t))),P=b(null!=y?y:H(s)?s():s,"data"),O=b(g,"loading"),D=b(i,"error"),F=b({...M},"downloading"),L=b({...M},"uploading"),U=_([P,O,D,F,L]),N=ne(),z=Ze(R(((e,t,r,n)=>({m:i,sf:[],rf:[],fs:{},em:r,ht:e,c:t,ro:n,ms:{}}))(e,o,N,v)));z.fs=U,z.em=N,z.c=o,z.ms=j;const B=c!==i,K=(e=r,t)=>Ye(z,e,t),I=Ze(R(((e=0)=>{let t=i;return r=>{t&&clearTimeout(t),t=m(r,e)}})())),V=(e=v,t)=>{I((()=>{f(K(t),(t=>{if(!e.bindError&&!e.trackedKeys.error)throw t}))}))},J=R(ge(((e,t,r)=>V(t,r)),(e=>q(e)?x(d)?d[e]:d:0)));return t.globalConfigMap.ssr||E({handler:B?e=>J.current(e,v,r):()=>V(v),removeStates:()=>p(z.rf,(e=>e())),saveStates:e=>p(z.sf,(t=>t(e))),frontStates:{...U,...j},watchingStates:c,immediate:null!=a?a:u}),k({..._([P,O,D,F,L]),abort:()=>z.m&&z.m.abort(),send:(e,t)=>K(t,e),onSuccess(e){N.on(Ce,e)},onError(e){v.bindError=u,N.on(Me,e)},onComplete(e){N.on(Te,e)}})}function tt(e={}){const t=et(Se.USE_FETCHER,P,e),{send:r}=t;return R(t,"send"),B(t,{fetch:(e,...t)=>(ke(Re,e),r(t,e))})}function rt(e,t={}){const{immediate:r=u,initialData:n}=t,o=et(Se.USE_REQUEST,e,t,n,!!r),{send:s}=o;return B(o,{send:(...e)=>s(e)})}function nt(e,t,r={}){xe(t&&E(t)>0,"expected at least one watching state");const{immediate:n,debounce:o=0,initialData:s}=r,a=et(Se.USE_WATCHER,e,r,s,!!n,t,o),{send:i}=a;return B(a,{send:(...e)=>i(e)})}const ot=re("usePagination"),st=(e,t)=>ot(q(e)&&e<E(t),"index must be a number that less than list length"),at=e=>[e[e.length-2],e[e.length-1],e.slice(0,e.length-2)];const it=(e,t)=>re(e)(x(t)&&E(t)>0,"please use an array to represent serial requests"),ct=(e,t,r=[])=>(e.shift(),(n,s)=>{null==t||t(n,(()=>o(i))),n.controlLoading();const a=n.proxyStates.loading;a.v=u;let c=s();for(const t of e)c=d(c,(e=>{const o=t(e,...n.args);return g(r,o),o.send()}));return c.finally((()=>{a.v=l}))});const ut="valueOf",lt="default",dt="silent";let ft;const mt=e=>{ft=e};let ht;let vt={};let pt=0;const gt=e=>{pt=e};let yt=[];const St=Symbol("GlobalSQBoot"),wt=Symbol("GlobalSQBefore"),bt=Symbol("GlobalSQSuccess"),Et=Symbol("GlobalSQError"),xt=Symbol("GlobalSQFail"),Rt=ne(),_t=re("useSQRequest");async function kt(e,r){let n=l;if(e){const{update:o}=t.promiseStatesHook(),s=W(e),{id:a}=$(e),{s:c,h:l}=Xe(a,s),d=H(r)?{data:r}:r;let f=i;c&&(p(h(d),(e=>{be(e in c,`state named \`${e}\` is not found`);const t=c[e];let r=d[e](t.v);r=x(r)?[...r]:F(r)?{...r}:r,"data"===e&&(f=r),o(r,c[e].s,e,l.ro)})),n=u),f!==i&&t.setCache(e,f)}return n}var Ct={forward:e=>A(e,Date)?e.getTime():i,backward:e=>J(Date,e)},Mt={forward:e=>A(e,RegExp)?e.source:void 0,backward:e=>J(RegExp,e)};const Tt=(e={})=>{const t={date:Ct,regexp:Mt,...e};return{serialize:e=>(F(e)&&(e=Z(x(e)?[...e]:{...e},(e=>{let r=i;const n=h(t).reduce(((e,n)=>{if(!r){const o=t[n].forward(e);o!==i&&(r=n,e=o)}return e}),e);return"[object Object]"===s.prototype.toString.call(e)?e={...e}:x(e)&&(e=[...e]),r!==i?[r,n]:e}))),e),deserialize:e=>F(e)?Z(e,(e=>{if(x(e)&&2===E(e)){const r=t[e[0]];e=r?r.backward(e[1]):e}return e}),l):e}},jt=Symbol("vdid"),Pt=Symbol("original"),Ot=/\[vd:([0-9a-z]+)\]/,Ht=e=>{const t=null==e?void 0:e[jt];t&&ft&&(ft[t]=i)},qt=(e,t=u)=>{Ht(e);const r=null==e?void 0:e[jt];return(r?`[vd:${r}]`:i)||(t?e:i)};function Dt(){return qt(this)}const Ft=function(){};Ft.prototype=s.create(c,{[ut]:M(Dt)});const Lt=function(){};Lt.prototype=s.create(c,{[ut]:M(Dt)});var Ut=(e,t=z())=>{const r=(e,t=z())=>{if(e===c)e=J(Ft);else if(e===i)e=J(Lt);else{const t=s(e);T(t,ut,Dt),T(t,Pt,e),e=t}return T(e,jt,t),e},n=r(e,t);return(U(n)||x(n))&&Z(n,(e=>r(e))),n};const At=(e,t=u)=>{const r=e=>(Ht(e),(null==e?void 0:e[jt])&&(A(e,Lt)?e=i:A(e,Ft)?e=c:(A(e,Number)||A(e,String)||A(e,Boolean))&&(e=e[Pt])),e),n=r(e);return t&&(F(n)||x(n))&&Z(n,(e=>r(e))),n};const Qt="__$k",$t="__$v",Nt=()=>(_t(!!ht,"alova instance is not found, Do you forget to set `alova` or call `bootSilentFactory`?"),ht.l2Cache);let zt=i;const Wt="alova.SQ",Gt="alova.SM.",Bt=async(e,t)=>{const r=Nt();F(t)&&(t=Z(x(t)?[...t]:{...t},((e,t,r)=>{var n;if(t===$t&&r[Qt])return e;if("context"===t&&"Alova"===(null===(n=null==e?void 0:e.constructor)||void 0===n?void 0:n.name))return i;const o=null==e?void 0:e[jt];let s=At(e,l);if("[object Object]"===L(s)?(e={...e},s={}):x(e)&&(e=[...e],s=[]),o){const t={[Qt]:o,[$t]:s,...e};if(A(e,String))for(let r=0;r<E(e);r+=1)null==t||delete t[r];e=t}return e}))),zt=zt||Tt(vt),await r.set(e,zt.serialize(t))},Kt=async e=>{const t=await Nt().get(e);return zt=zt||Tt(vt),F(t)?Z(zt.deserialize(t),(e=>{if(F(e)&&(null==e?void 0:e[Qt])){const t=e[Qt],r=Ut(e[$t],t);p(h(e),(t=>{C([Qt,$t],t)||(r[t]=e[t])})),e=r}return e}),l):t},It=async e=>{await Nt().remove(e)},Vt=e=>Bt(Gt+e.id,e),Jt=async(e,t,r)=>{const n=await Kt(Wt)||{},o=n[e]||[],s=o.findIndex((e=>e===t));s>=0&&(r?(b(o,s,1,r.id),await Vt(r)):b(o,s,1),await It(Gt+t),E(o)<=0&&delete n[e],E(h(n))>0?await Bt(Wt,n):await It(Wt))};let Xt={};const Yt=(e,t)=>{const r=e=>{const r=qt(e);return r in t?t[r]:D(e)?e.replace(J(a,Ot.source,"g"),(e=>e in t?t[e]:e)):e};return F(e)&&!qt(e,l)?Z(e,r):e=r(e),e},Zt=(e,t)=>{let r={};const n=qt(e,l);if(n&&(r[n]=t),F(e))for(const n in e)r={...r,...Zt(e[n],null==t?void 0:t[n])};return r},er=(e,t)=>{t?e.active=t:delete e.active},tr=1e3,rr=(e,r)=>{const o=t=>{const r=e[0];if(r){const n=yt.find((({queue:e})=>A(e,a)?k(e,t):e===t)),o=()=>e[0]&&s(e[0]),i=(null==n?void 0:n.wait)?X(n.wait,[r,t]):0;i&&i>0?m(o,i):o()}},s=(a,i=0)=>{er(a,u);const{cache:c,id:f,behavior:h,entity:v,retryError:g=/.*/,maxRetryTimes:S=0,backoff:b={delay:tr},resolveHandler:x=P,rejectHandler:R=P,emitter:_,handlerArgs:C=[],virtualResponse:M,force:T}=a;Rt.emit(wt,J(Ue,h,v,a,r,i)),d(v.send(T),(async s=>{if(w(e),c&&await Jt(r,f),x(s),h===dt){const o=Zt(M,s),{targetRefMethod:c,updateStates:u}=a;if(A(c,t.Method)&&u&&E(u)>0){const e={};p(u,(t=>{e[t]=e=>Yt(e,o)}));kt(c,e)||await t.setCache(c,(e=>Yt(e,o)))}await((e,t)=>n.all(y(t,(async t=>{Yt(t.entity,e),t.cache&&await Vt(t)}))))(o,e),Rt.emit(bt,J(Ae,h,v,a,r,i,s,o))}er(a,l),o(r)}),(t=>{if(h!==dt)w(e),R(t);else{const e=e=>Rt.emit(Et,J(Qe,h,v,a,r,i,t,e)),{name:n="",message:o=""}=t||{};let c,u;A(g,RegExp)?u=g:F(g)&&(c=g.name,u=g.message);const l=c&&k(c,n)||u&&k(u,o);if(i<S&&l){const t=ee(b,i+1);e(t),m((()=>{s(a,i+=1),_.emit("retry",J(Ge,h,v,a,C,i,t))}),t)}else gt(2),e(),_.emit("fallback",J(We,h,v,a,C,t)),Rt.emit(xt,J($e,h,v,a,r,i,t))}er(a,l)}))};o(r)},nr=async(e,t,r=lt,n=()=>[])=>{e.cache=t;const o=Xt[r]=Xt[r]||[],s=E(o)<=0,a=!(await Promise.all(n())).some((e=>e===l));return a&&(t&&await(async(e,t)=>{await Vt(e);const r=await Kt(Wt)||{},n=r[t]=r[t]||[];g(n,e.id),await Bt(Wt,r)})(e,r),g(o,e),s&&1===pt&&rr(o,r)),a},or=e=>{let t=i,r="",n=0;for(const o in Xt)if(n=Xt[o].indexOf(e),n>=0){t=Xt[o],r=o;break}return[t,r,n]};class sr{constructor(e,t,r,n=z(),o,s,a,i,c,u,l,d){const f=this;f.entity=e,f.behavior=t,f.id=n,f.emitter=r,f.force=!!o,f.retryError=s,f.maxRetryTimes=a,f.backoff=i,f.resolveHandler=c,f.rejectHandler=u,f.handlerArgs=l,f.vDatas=d}async save(){this.cache&&await Vt(this)}async replace(e){const t=this;_t(e.cache===t.cache,"the cache of new silentMethod must equal with this silentMethod");const[r,n,o]=or(t);r&&(b(r,o,1,e),t.cache&&await Jt(n,t.id,e))}async remove(){const e=this,[t,r,n]=or(e);t&&(b(t,n,1),e.cache&&await Jt(r,e.id))}setUpdateState(e,t="data"){e&&(this.targetRefMethod=e,this.updateStates=x(t)?t:[t])}}var ar=async()=>{const e=await Kt(Wt)||{},r={},o=[];return p(h(e),(n=>{const s=r[n]=r[n]||[];g(o,...y(e[n],(async e=>{const r=await Kt(Gt+e);r&&g(s,(e=>{const{id:r,behavior:n,entity:o,retryError:s,maxRetryTimes:a,backoff:i,resolveHandler:c,rejectHandler:l,handlerArgs:d,targetRefMethod:f,force:m}=e,v=e=>{const{type:r,url:n,config:o,data:s}=e;return J(t.Method,r,ht,n,o,s)},g=J(sr,v(o),n,ne(),r,m,s,a,i,c,l,d);return g.cache=u,f&&(g.targetRefMethod=v(f)),p(h(e),(t=>{C(["id","behavior","emitter","entity","retryError","maxRetryTimes","backoff","resolveHandler","rejectHandler","handlerArgs","targetRefMethod","force"],t)||(g[t]=e[t])})),g})(r))})))})),await n.all(o),r};let ir=i;var cr=(e,t)=>{const{behavior:r="queue",queue:s=lt,retryError:a,maxRetryTimes:c,backoff:f}=t||{},m=ne();let v,p,g,y=lt,S=l;return{c:(...t)=>(_t(H(e),"method handler must be a function. eg. useSQRequest(() => method)"),mt({}),v=t,e(...t)),m:({method:e,args:t,cachedResponse:w,proxyStates:b,config:x},R)=>{const{silentDefaultResponse:_,vDataCaptured:C,force:M=l}=x,T=je.spawn(e,t);p=X(r,[T]),y=X(s,[T]),S=X(M,[T]);const j=()=>{mt(v=i)};if(H(C)){let t=ft&&E(h(ft))>0;if(!t){const{url:r,data:n}=e,{params:o,headers:s}=N(e);Z({url:r,params:o,data:n,headers:s},(e=>(t||!qt(e,l)&&!k(Ot,e)||(t=u),e)))}const r=t?C(e):i;if(r!==i)return j(),o(r)}if("static"!==p){const r=()=>{const r=J(n,((t,r)=>{g=J(sr,e,p,m,i,!!S,a,c,f,t,r,v,ft&&h(ft)),j()}));return d(o(i),(async()=>{const r=()=>J(Ne,p,e,g,t);await nr(g,E(m.eventMap.fallback||[])<=0&&p===dt,y,(()=>m.emit("beforePushQueue",r())))&&m.emit("pushedQueue",r())})),r};if("queue"===p){const e=S||!w;return e&&(b.loading.v=u),e?r():d(o(w))}const s=r(),l=g.virtualResponse=Ut(H(_)?_():i);return d(s,(e=>{b.data.v=e})),o(l)}return j(),R()},d:e=>{e.onSuccess=oe(e.onSuccess,((e,t)=>{ir=g,e(J(ze,p,t.method,g,t.args,t.data))})),e.onError=oe(e.onError,((e,t)=>{e(J(We,p,t.method,g,t.args,t.error))})),e.onComplete=oe(e.onComplete,((e,t)=>{e(J(Be,p,t.method,g,t.args,t.status,t.data,t.error))}))},b:{onFallback:e=>{m.on("fallback",e)},onBeforePushQueue:e=>{m.on("beforePushQueue",e)},onPushedQueue:e=>{m.on("pushedQueue",e)},onRetry:e=>{m.on("retry",e)}}}};const ur=async(e,t=lt,r=l)=>{const n=(t=[])=>t.filter((t=>{if(e===i)return u;const n=N(t.entity).name||"";return(A(e,RegExp)?k(e,n):n===e)&&(r?t.active:u)}));return[...n(Xt[t]),...0===pt?n((await ar())[t]):[]]};const lr=(e,r={})=>{let n=u;const{enableFocus:o=u,enableVisibility:s=u,enableNetwork:a=u,pollingTime:i=0,throttle:c=1e3}=r,{onMounted:d,onUnmounted:f,__referingObj:m}=we(t.promiseStatesHook()),h=rt(e,{...r,__referingObj:m}),v=()=>{n&&(h.send(),c>0&&(n=l,setTimeout((()=>{n=u}),c)))};let p=P,g=P,y=P,S=P;return d((()=>{t.globalConfigMap.ssr||(p=a?lr.onNetwork(v,r):p,g=o?lr.onFocus(v,r):g,y=s?lr.onVisibility(v,r):y,S=i>0?lr.onPolling(v,r):S)})),f((()=>{p(),g(),y(),S()})),h},dr=(e,t)=>(window.addEventListener(e,t),()=>window.removeEventListener(e,t));lr.onNetwork=e=>dr("online",e),lr.onFocus=e=>dr("focus",e),lr.onVisibility=e=>dr("visibilitychange",(()=>"visible"===document.visibilityState&&e())),lr.onPolling=(e,t)=>{const r=setInterval(e,t.pollingTime);return()=>clearInterval(r)};const fr="useCaptcha",mr=re(fr);const hr=Symbol("FormRestore"),vr={},pr=e=>{const t=e=>x(e)?[...e]:U(e)?{...e}:e;return Z(t(e),t)};const gr=Symbol("RetriableRetry"),yr=Symbol("RetriableFail"),Sr="useRetriableRequest",wr=re(Sr);const br=Symbol("SSEOpen"),Er=Symbol("SSEMessage"),xr=Symbol("SSEError");var Rr;!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSED=2]="CLOSED"}(Rr||(Rr={}));const _r=re("useSSE"),kr="open",Cr="error",Mr="message";let Tr=0;const jr={},Pr=re("subscriber");e.accessAction=(e,t,r=!1)=>{const n=[];"symbol"==typeof e||D(e)||q(e)?jr[e]&&g(n,...v(jr[e])):A(e,RegExp)&&p(S(h(jr),(t=>e.test(t))),(e=>{g(n,...v(jr[e]))})),0!==n.length||r||Pr(!1,`no handler can be matched by using \`${e.toString()}\``),p(S(n,O),t)},e.actionDelegationMiddleware=e=>{const{ref:r,onUnmounted:n}=we(t.promiseStatesHook()),o=r(Tr+1);return o.current>Tr&&(Tr+=1),n((()=>{var t;(null===(t=jr[e])||void 0===t?void 0:t[o.current])&&delete jr[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=jr[e]=jr[e]||[],u=(e=>!!e.send)(t)?{...a,send:t.send,abort:n,update:i}:{...a,fetch:t.fetch,abort:n,update:i};return c[o.current]=u,r()}},e.bootSilentFactory=e=>{if(0===pt){const{alova:t,delay:r=500}=e;ht=t,((e={})=>{vt=e})(e.serializers),((e=0)=>{yt=x(e)?e:[{queue:lt,wait:e}]})(e.requestWait),m((async()=>{var e;e=await ar(),p(h(e),(t=>{const r=Xt[t]=Xt[t]||[];g(r,...e[t])})),p(h(Xt),(e=>{rr(Xt[e],e)})),gt(1),Rt.emit(St,i)}),r)}},e.createClientTokenAuthentication=({visitorMeta:e,login:t,logout:r,refreshToken:n,assignToken:o=P})=>{let s=l;const a=[];return{waitingList:a,onAuthRequired:r=>async i=>{const c=de(i,e||ie),u=de(i,(null==t?void 0:t.metaMatches)||ce);return c||u||de(i,(null==n?void 0:n.metaMatches)||le)||(s&&await fe(i,a),await he(i,a,(e=>{s=e}),[i],n)),c||u||await o(i),null==r?void 0:r(i)},onResponseRefreshToken:e=>{const n=ve(e);return{...n,onSuccess:async(e,o)=>(await me(o,t,ce,e),await me(o,r,ue,e),(n.onSuccess||O)(e,o))}}}},e.createServerTokenAuthentication=({visitorMeta:e,login:t,logout:r,refreshTokenOnSuccess:n,refreshTokenOnError:o,assignToken:s=P})=>{let a=l;const i=[];return{waitingList:i,onAuthRequired:r=>async c=>{const u=de(c,e||ie),l=de(c,(null==t?void 0:t.metaMatches)||ce);return u||l||de(c,(null==n?void 0:n.metaMatches)||le)||de(c,(null==o?void 0:o.metaMatches)||le)||a&&await fe(c,i),u||l||await s(c),null==r?void 0:r(c)},onResponseRefreshToken:s=>{const c=ve(s);return{...c,onSuccess:async(o,s)=>{if(!de(s,e||ie)&&!de(s,(null==t?void 0:t.metaMatches)||ce)&&!de(s,(null==n?void 0:n.metaMatches)||le)){const e=await he(s,i,(e=>{a=e}),[o,s],n,a);if(e)return e}return await me(s,t,ce,o),await me(s,r,ue,o),(c.onSuccess||O)(o,s)},onError:async(r,n)=>{if(!de(n,e||ie)&&!de(n,(null==t?void 0:t.metaMatches)||ce)&&!de(n,(null==o?void 0:o.metaMatches)||le)){const e=await he(n,i,(e=>{a=e}),[r,n],o,a);if(e)return e}return(c.onError||P)(r,n)}}}}},e.dehydrateVData=e=>At(e),e.equals=(e,t)=>e===t?u:qt(e)===qt(t),e.filterSilentMethods=ur,e.getSilentMethod=async(e,t=lt,r=l)=>(await ur(e,t,r))[0],e.isVData=e=>!!qt(e,l)||k(Ot,e),e.onBeforeSilentSubmit=e=>Rt.on(wt,e),e.onSilentSubmitBoot=e=>Rt.on(St,e),e.onSilentSubmitError=e=>Rt.on(Et,e),e.onSilentSubmitFail=e=>Rt.on(xt,e),e.onSilentSubmitSuccess=e=>Rt.on(bt,e),e.silentQueueMap=Xt,e.statesHookHelper=we,e.stringifyVData=qt,e.updateState=kt,e.updateStateEffect=async(e,t)=>(ir&&(ir.setUpdateState(e,H(kt)?i:h(kt)),await ir.save()),kt(e,t)),e.useAutoRequest=lr,e.useCaptcha=(e,r={})=>{const{initialCountdown:o,middleware:s}=r;mr(o===i||o>0,"initialCountdown must be greater than 0");const{create:a,ref:c,objectify:u,exposeProvider:d,__referingObj:f}=we(t.promiseStatesHook()),m=a(0,"countdown"),h=rt(e,{...r,__referingObj:f,immediate:l,managedStates:u([m],"s"),middleware:s?(e,t)=>s({...e,send:p},t):i}),v=c(i),p=(...e)=>J(n,((t,n)=>{m.v<=0?h.send(...e).then((e=>{m.v=r.initialCountdown||60,v.current=setInterval((()=>{m.v-=1,m.v<=0&&clearInterval(v.current)}),1e3),t(e)})).catch((e=>n(e))):n(J(te,fr,"the countdown is not over yet"))}));return d({...h,send:p,...u([m])})},e.useFetcher=tt,e.useForm=(e,r={})=>{const n=vr,{id:o,initialForm:s,store:a,resetAfterSubmiting:c,immediate:d=l,middleware:f}=r;t.promiseStatesHook();const{create:m,ref:h,onMounted:v,watch:p,objectify:g,exposeProvider:y,__referingObj:S}=we(t.promiseStatesHook()),w=U(a),b=w?a.enable:a,E=o?n[o]:i,x=m(pr(s),"form"),R=e,_=ne(),k=h(X(R,[x.v])),C=$(k.current).l2Cache,M=((e,t)=>`alova/form-${t||W(e)}`)(k.current,o),T=h(l),j=h(Tt(w?a.serializers:i)),P=h(!1),O=rt(((...e)=>R(x.v,...e)),{...r,__referingObj:S,middleware:f?(e,t)=>f({...e,delegatingActions:{updateForm:q,reset:H}},t):i,immediate:b||E?l:d}),H=()=>{T.current=u;const e=pr(s);e&&(x.v=e),b&&C.remove(M)},q=e=>{x.v={...x.v,...e}},D=y({...O,...g([x]),updateForm:q,reset:H,onRestore(e){_.on(hr,e)}});o&&(E||(P.current=u),P.current&&(n[o]={hookProvider:D,config:r}));const{send:F,onSuccess:L}=D;return v((()=>{if(b&&!E){const e=j.current.deserialize(C.get(M));e&&(x.v=e,_.emit(hr,i)),b&&d&&F()}})),p([x],(()=>{!T.current&&b?C.set(M,j.current.serialize(x.v)):T.current=l})),L((()=>{c&&H()})),E&&!P.current?E.hookProvider:D},e.usePagination=(e,r={})=>{const{create:n,computed:s,ref:a,watch:c,exposeProvider:d,objectify:m,__referingObj:w}=we(t.promiseStatesHook()),{preloadPreviousPage:R=u,preloadNextPage:_=u,total:k=e=>e.total,data:M=e=>e.data,append:T=l,initialPage:O=1,initialPageSize:D=10,watchingStates:F=[],initialData:L,immediate:U=u,middleware:$,force:N=P,...z}=r,G=a(e),B=a(l),K=n(O,"page"),J=n(D,"pageSize"),X=n(L&&M(L)||[],"data"),Z=n(L?k(L):i,"total"),{snapshots:ee,get:te,save:re,remove:ne}=a((e=>{let r={};return{snapshots:()=>r,save(e,t=l){const n=W(e);r[n]&&!t||(r[n]={entity:e})},get:n=>r[W(A(n,t.Method)?n:e(n))],remove(e){e?delete r[e]:r={}}}})((e=>G.current(e,J.v)))).current,oe=e=>M(e)||e,se=tt({__referingObj:w,updateState:l,force:({args:e})=>e[E(e)-1]}),{loading:ae,fetch:ie,abort:ce,onSuccess:ue}=se,le=a(ae),de=(t=K.v,r=[])=>{const n=e(t,J.v,...r);return re(n),n};c(F,(()=>{K.v=O,B.current=u}));const fe=a({}),me=s((()=>{const e=Z.v;return e!==i?Math.ceil(e/J.v):i}),[J,Z],"pageCount"),he=e=>(...t)=>fe.current[e](...t),ve=nt(((...e)=>{const[t,,r]=at(e);return de(t,r)}),[...F,K.e,J.e],{__referingObj:w,immediate:U,initialData:L,managedStates:m([X,K,J,Z],"s"),middleware:(e,t)=>$?$({...e,delegatingActions:{refresh:he("refresh"),insert:he("insert"),remove:he("remove"),replace:he("replace"),reload:he("reload"),getState:e=>({page:K,pageSize:J,data:X,pageCount:me,total:Z,isLastPage:be}[e].v)}},t):t(),force:e=>e.args[1]||(H(N)?N(e):N),...z}),{send:pe}=ve,ge=ve.__proxyState("data"),ye=async e=>{const{rawData:r=ge.v,preloadPage:n,fetchMethod:o,forceRequest:s=l,isNextPage:a=l}=e,i=me.v,c=i?n>i:a?E(oe(r))<J.v:l;if(!(n>0&&!c))return l;const{e:u}=V(o),d=await t.queryCache(o);return u(j)<=Q()?l:s||!d},Se=async(e,t,r=[])=>{const n=K.v+1,o=de(n,r);_&&await ye({rawData:e,preloadPage:n,fetchMethod:o,isNextPage:u,forceRequest:t})&&f(ie(o,...r,t),P)},be=s((()=>{const e=ge.v;if(!e)return u;const t=oe(e),r=K.v,n=me.v,o=x(t)?E(t):0;return n?r>=n:o<J.v}),[K,me,ge,J],"isLastPage"),Ee=async()=>{const e=te(K.v);e&&await t.setCache(e.entity,(e=>{if(e){const t=oe(e)||[];return b(t,0,E(t),...X.v),e}}))};ue((({method:e,data:t})=>{const r=te(K.v);if(r&&W(r.entity)===W(e)){const e=oe(t);if(T){const t=X.v,r=J.v,n=E(t)%r;if(n>0){const t=[...X.v];b(t,(K.v-1)*r,n,...e),X.v=t}}else X.v=e}}));const xe=a(i),Re=a(i);ve.onSuccess((({data:e,args:t,method:r})=>{const[n,o,s]=at(t),{total:a}=te(r)||{},c=e;Z.v=a!==i?a:k(c),o||((async(e,t=[])=>{const r=K.v-1,n=de(r,t);R&&await ye({rawData:e,preloadPage:r,fetchMethod:n})&&f(ie(n,...t,i),P)})(c,s),Se(c,l,s));const u=J.v,d=oe(c);if(ot(x(d),"Got wrong array, did you return the correct array of list in `data` function"),T){if(B.current&&(X.v=[]),n===i)X.v=[...X.v,...d];else if(n){const e=[...X.v];b(e,(n-1)*u,u,...d),X.v=e}}else X.v=d})).onSuccess((({data:e})=>{var t;null===(t=xe.current)||void 0===t||t.call(xe,e)})).onError((({error:e})=>{var t;null===(t=Re.current)||void 0===t||t.call(Re,e)})).onComplete((()=>{B.current=l}));const _e=e=>{const t=X.v.indexOf(e);return ot(t>=0,"item is not found in list"),t},{addQueue:ke,onComplete:Ce}=a(Y()).current,Me=async(t=K.v)=>{let r=t,n=o();if(T){if(!q(t)){const e=_e(t);r=Math.floor(e/J.v)+1}ot(r<=K.v,"refresh page can't greater than page"),n=pe(r,u)}else ot(q(r),"unable to calculate refresh page by item in pagination mode"),n=r===K.v?pe(i,u):ie(e(r,J.v),u);return n},Te=async(e=l)=>{const r=K.v,n=ee();let o=v(n);if(e)ne();else{const e=y(S([te(r-1),te(r),te(r+1)],Boolean),(({entity:e})=>W(e)));o=y(S(h(n),(t=>!C(e,t))),(e=>{const t=n[e];return delete n[e],t}))}await t.invalidateCache(y(o,(({entity:e})=>e)))},je=async()=>{le.current&&ce(),await Te();const e=te(K.v+1);if(e){const r=oe(await t.queryCache(e.entity)||{})||[];Se(i,E(r)<J.v)}},Pe=e=>{if(0===e)return;const t=Z.v;if(q(t)){const r=Math.max(t+e,0);Z.v=r;const n=K.v;p([te(n-1),te(n),te(n+1)],(e=>{e&&(e.total=r)}))}},Oe=(e,r=0)=>(Ce(je),ke((async()=>{const n=q(r)?r:_e(r)+1;let o=i;const s=[...X.v];if(E(s)%J.v==0&&(o=s.pop()),b(s,n,0,e),X.v=s,Pe(1),await Ee(),o){const e=te(K.v+1);e&&await t.setCache(e.entity,(e=>{if(e){const t=oe(e)||[];return t.unshift(o),t.pop(),e}}))}}))),He=(...e)=>(Ce(je),ke((async()=>{const r=y(e,(e=>{const t=q(e)?e:_e(e);return st(t,X.v),t})),n=K.v,o=te(n+1),s=[];o&&await t.setCache(o.entity,(e=>{if(e){const t=oe(e);return x(t)&&g(s,...b(t,0,E(r))),e}}));const a=be.v,i=E(s);let c=!1;if(i>0||a){const e=S(X.v,((e,t)=>!C(r,t)));c=!T&&a&&E(e)<=0,!c&&i>0&&g(e,...s),X.v=e}else i<=0&&!a&&Me(n);return Pe(-E(r)),Ee().then((()=>{c&&(K.v=n-1)}))}))),qe=(e,t)=>ke((async()=>{ot(t!==i,"expect specify the replace position");const r=q(t)?t:_e(t);st(r,X.v);const n=[...X.v];b(n,r,1,e),X.v=n,await Ee()})),De=async()=>{await Te(u),B.current=u,K.v===O?f(pe(),P):K.v=O;const{resolve:e,reject:t,promise:r}=I();return xe.current=e,Re.current=t,r};return fe.current={refresh:Me,insert:Oe,remove:He,replace:qe,reload:De},d({...ve,...m([X,K,me,J,Z,be]),send:(...e)=>pe(...e,i,i),fetching:se.loading,onFetchSuccess:se.onSuccess,onFetchError:se.onError,onFetchComplete:se.onComplete,refresh:Me,insert:Oe,remove:He,replace:qe,reload:De})},e.useRequest=rt,e.useRetriableRequest=(e,r={})=>{const{retry:s=3,backoff:a={delay:1e3},middleware:c=P}=r,{ref:d,exposeProvider:h,__referingObj:v}=we(t.promiseStatesHook()),p=ne(),g=d(0),y=d(i),S=d(i),w=d(i),b=d(l),E=d(i),x=d(I()),R=rt(e,{...r,__referingObj:v,middleware(e,t){c({...e,delegatingActions:{stop:_}},(()=>o()));const{proxyStates:r,args:d,send:h,method:v,controlLoading:R}=e;R();const{loading:k}=r,C=(e=l)=>{k.v=e},M=e=>{C(),r.error.v=e,clearTimeout(E.current),((e,t,r)=>{m((()=>{p.emit(yr,J(Ie,je.spawn(e,t),r,g.current)),y.current=i,g.current=0}))})(v,d,e)};return k.v||f(x.current.promise,(e=>{M(e),x.current=I()})),C(u),b.current=u,S.current=v,w.current=d,t().then((e=>(C(),e)),(e=>{if(!y.current&&(q(s)?g.current<s:s(e,...d))){g.current+=1;const e=ee(a,g.current);E.current=m((()=>{p.emit(gr,J(Ke,je.spawn(v,d),g.current,e)),f(h(...d),P)}),e)}else e=y.current||e,M(e);return t=e,n.reject(t);var t})).finally((()=>{b.current=l}))}}),_=()=>{wr(R.__proxyState("loading").v,"there is no requests being retried"),y.current=J(te,Sr,"stop retry manually"),b.current?R.abort():x.current.reject(y.current)};return h({...R,stop:_,onRetry:e=>{p.on(gr,(t=>e(t)))},onFail:e=>{p.on(yr,(t=>e(t)))}})},e.useSQRequest=function(e,r={}){const{exposeProvider:n,__referingObj:o}=we(t.promiseStatesHook()),{middleware:s=P}=r,{c:a,m:i,b:c,d:u}=cr(e,r),l=rt(a,{...r,__referingObj:o,middleware:(e,t)=>{const r=i(e,t);return s(e,(()=>r)),r}});return u(l),n({...l,...c})},e.useSSE=(e,r={})=>{const{initialData:n,withCredentials:o,interceptByGlobalResponded:s=u,immediate:a=l}=r,c=u;let{memorize:f}=t.promiseStatesHook();null!=f||(f=O);const{create:m,ref:v,onMounted:g,onUnmounted:w,objectify:b,exposeProvider:E}=we(t.promiseStatesHook()),x=v([]),R=v(i),_=v(i),k=m(n,"data"),C=m(Rr.CLOSED,"readyState");let M,T=ye(e);const j=ne(),q=v(new Map),D=v(O),F=v(pe),L=v(P),A=e=>{const{responded:t}=(e=>$(e).options)(e);if(M=t,H(M))D.current=M;else if(M&&U(M)){const{onSuccess:e,onError:t,onComplete:r}=M;D.current=H(e)?e:D.current,F.current=H(t)?t:F.current,L.current=H(r)?r:L.current}},Q=async e=>{const{headers:r,transform:n=O}=N(T),o=await e,s=await n(o,r||{});return k.v=s,t.hitCacheBySource(T),s},z=async(e,t)=>{_r(!!R.current,"EventSource is not initialized");const r=R.current,n=new qe(je.spawn(T,x.current),r);if(e===kr)return Promise.resolve(n);const o=s?D.current:O,a=s?F.current:pe,i=s?L.current:P,c=(u=d(t,(e=>Q(o(e,T))),(e=>Q(a(e,T)))),l=()=>{i(T)},u.finally(l));var u,l;return d(c,(e=>new Fe(n,e)),(e=>new De(n,e)))},W=e=>t=>t.error===i?e(t):j.emit(xr,t),G=f((()=>{var e;C.v=Rr.OPEN,d(z(kr,Promise.resolve()),(e=>j.emit(br,e))),null===(e=_.current)||void 0===e||e.resolve()})),B=f((e=>{var t,r;C.v=Rr.CLOSED,d(z(Cr,Promise.reject(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"SSE Error")),W((e=>j.emit(Er,e)))),null===(r=_.current)||void 0===r||r.resolve()})),K=f((e=>{d(z(Mr,Promise.resolve(e.data)),W((e=>j.emit(Er,e))))})),V=()=>{const e=R.current;e&&(_.current&&_.current.resolve(),e.close(),e.removeEventListener(kr,G),e.removeEventListener(Cr,B),e.removeEventListener(Mr,K),C.v=Rr.CLOSED,q.current.forEach((([t,r],n)=>{e.removeEventListener(n,r)})))},J=(...t)=>{let r=R.current,n=_.current;r&&c&&V(),n||(n=_.current=I(),n&&n.promise.finally((()=>{n=i}))),x.current=t,T=ye(e,t),A(T);const{params:s}=N(T),{baseURL:a,url:u}=T,l=((e,t,r)=>{e=e.endsWith("/")?e.slice(0,-1):e,""!==t&&(t=t.match(/^(\/|https?:\/\/)/)?t:`/${t}`);const n=e+t,o=y(S(h(r),(e=>r[e]!==i)),(e=>`${e}=${r[e]}`)).join("&");return o?+n.includes("?")?`${n}&${o}`:`${n}?${o}`:n})(a,u,s);return r=new EventSource(l,{withCredentials:o}),R.current=r,C.v=Rr.CONNECTING,r.addEventListener(kr,G),r.addEventListener(Cr,B),r.addEventListener(Mr,K),q.current.forEach((([e,t],n)=>{null==r||r.addEventListener(n,(e=>{d(z(n,Promise.resolve(e.data)),W(t))}))})),n.promise};return w((()=>{V(),j.off(br),j.off(Er),j.off(xr),q.current.forEach((([e,t,r])=>{r()}))})),g((()=>{var e;a&&(J(),null===(e=_.current)||void 0===e||e.promise.catch((()=>{})))})),E({send:J,close:V,on:(e,t)=>{var r;const n=q.current;if(!n.has(e)){const t=function(e=P){let t=[];return[r=>(t.includes(r)||(t.push(r),e(t)),()=>{t=S(t,(e=>e!==r)),e(t)}),(...e)=>{if(t.length>0)return p(t,(t=>t(...e)))},()=>{t=[],e(t)}]}((r=>{var n;0===r.length&&(null===(n=R.current)||void 0===n||n.removeEventListener(e,t[1]),q.current.delete(e))})),o=t[1];n.set(e,t),null===(r=R.current)||void 0===r||r.addEventListener(e,(t=>{d(z(e,Promise.resolve(t.data)),W(o))}))}const[o]=n.get(e);return o(t)},onMessage:e=>{j.on(Er,e)},onError:e=>{j.on(xr,e)},onOpen:e=>{j.on(br,e)},eventSource:R,...b([C,k])})},e.useSerialRequest=(e,r={})=>{it("useSerialRequest",e);const{ref:n,__referingObj:o}=we(t.promiseStatesHook()),s=n([]).current,a=rt(e[0],{...r,__referingObj:o,middleware:ct(e,r.middleware,s)});return a.onError=oe(a.onError,((e,t)=>{t.method=s[E(s)-1],e(t)})),a},e.useSerialWatcher=(e,r,n={})=>{it("useSerialWatcher",e);const{ref:o,__referingObj:s}=we(t.promiseStatesHook()),a=o([]).current,i=nt(e[0],r,{...n,__referingObj:s,middleware:ct(e,n.middleware,a)});return i.onError=oe(i.onError,((e,t)=>{t.method=a[E(a)-1],e(t)})),i},e.useWatcher=nt}));