UNPKG

tinybase

Version:

A reactive data store and sync engine.

1 lines 93.7 kB
import{addDatabaseChangeListener as e}from"expo-sqlite";import{existsSync as t,writeFileSync as n,watch as s}from"fs";import{writeFile as a,readFile as o}from"fs/promises";import{Map as r}from"yjs";import{DurableObject as l}from"cloudflare:workers";import{jsx as i,jsxs as c,Fragment as d}from"react/jsx-runtime";import u from"react";const h=e=>typeof e,g="tinybase",p="",w=",",m=".",I=h(p),b=h(!0),y=h(0),v=h(h),f="true",C="type",T="default",S="utf8",R="Listener",x="Result",L="get",k="add",D="Has",q="Ids",N="Table",M=N+"s",E=N+q,A="Row",P=A+"Count",$=A+q,O="Sorted"+A+q,V="Cell",H=V+q,Z="Value",_=Z+"s",B=Z+q,F="Transaction",z="Partial",J="Finish",U="Status",W="Metric",j="Slice",G="RemoteRowId",Q="Local",Y="Linked",K="Checkpoint",X="currentTarget",ee="value",te="message",ne="error",se="extra",ae="t",oe="v",re=e=>p+e,le=(e,t)=>e.startsWith(t),ie=(e,t)=>e.endsWith(t),ce=(e,t)=>e?.match(t),de=(e,t=p,n)=>e.split(t,n),ue=(e,t,n)=>e.replace(t,n),he=Promise,ge=globalThis,pe=ge.window,we=(e,t,n)=>setInterval(e,1e3*t),me=clearInterval,Ie=(e,t=0)=>setTimeout(e,1e3*t),be=Math,ye=be.max,ve=be.min,fe=be.floor,Ce=isFinite,Te=e=>null==e,Se=(e,t,n)=>Te(e)?n?.():t(e),Re=e=>e==I||e==b,xe=e=>h(e)==I,Le=e=>h(e)==v,ke=e=>Array.isArray(e),De=(e,t,n)=>e.slice(t,n),qe=e=>e.length,Ne=()=>{},Me=()=>{},Ee=e=>new he(e),Ae=async e=>he.all(e),Pe=e=>{throw Error(e)},$e=async(e,t,n)=>{try{return await e()}catch(e){t?.(e)}},Oe=(e,t)=>e.includes(t),Ve=(e,t)=>e.every(t),He=(e,t)=>qe(e)===qe(t)&&Ve(e,(e,n)=>t[n]===e),Ze=(e,t)=>Ve(e,(n,s)=>0==s||t(e[s-1],n)<=0),_e=(e,t)=>e.sort(t),Be=(e,t)=>e.forEach(t),Fe=(e,t=p)=>e.join(t),ze=(e,t)=>e.map(t),Je=e=>We(e,(e,t)=>e+t,0),Ue=e=>0==qe(e),We=(e,t,n)=>e.reduce(t,n),je=(e,t)=>e.filter(t),Ge=(e,t)=>e.splice(0,t),Qe=(e,...t)=>e.push(...t),Ye=e=>e.pop(),Ke=(e,...t)=>e.unshift(...t),Xe=e=>e.shift(),et=(e,t,n)=>e.with(t,n),tt=e=>{const t=h(e);return Re(t)||t==y&&Ce(e)?t:void 0},nt=e=>Te(e)||!Te(tt(e)),st=(e,t,n,s,a)=>Te(a)?e.delCell(t,n,s,!0):e.setCell(t,n,s,a),at=(e,t,n)=>Te(n)?e.delValue(t):e.setValue(t,n),ot=(e,t,n,s)=>e==I?t:e==y?n:e==b?s:null,rt=e=>t=>We(gt(t),(t,n)=>t+e(n),0),lt=e=>e?.size??0,it=rt(lt),ct=rt(it),dt=rt(ct),ut=(e,t)=>e?.has(t)??!1,ht=e=>Te(e)||0==lt(e),gt=e=>[...e?.values()??[]],pt=e=>e.clear(),wt=(e,t)=>e?.forEach(t),mt=(e,t)=>e?.delete(t),It=Object,bt=e=>It.getPrototypeOf(e),yt=It.isFrozen,vt=It.entries,ft=e=>!Te(e)&&Se(bt(e),e=>e==It.prototype||Te(bt(e)),()=>!0),Ct=It.keys,Tt=It.freeze,St=(e=[])=>It.fromEntries(e),Rt=(...e)=>It.assign({},...e),xt=(e,t)=>Se(e,e=>e[t]),Lt=(e,t)=>t in e,kt=(e,t)=>(delete e[t],e),Dt=(e,t)=>Be(vt(e),([e,n])=>t(n,e)),qt=(e,t)=>ze(vt(e),([e,n])=>t(n,e)),Nt=(e,t)=>St(qt(e,(e,n)=>[n,t(e,n)])),Mt=e=>It.values(e),Et=e=>qe(Ct(e)),At=e=>ft(e)&&0==Et(e),Pt=(e,t)=>{const n=vt(e);return qe(n)===Et(t)&&Ve(n,([e,n])=>ft(n)?!!ft(t[e])&&Pt(t[e],n):t[e]===n)},$t=(e,t,n)=>(Lt(e,t)||(e[t]=n()),e[t]),Ot=(e,t,n,s=0)=>Te(e)||!ft(e)||!s&&At(e)||yt(e)?(n?.(),!1):(Dt(e,(n,s)=>{t(n,s)||kt(e,s)}),!!s||!At(e)),Vt=e=>new Map(e),Ht=e=>[...e?.keys()??[]],Zt=(e,t)=>e?.get(t),_t=(e,t)=>wt(e,(e,n)=>t(n,e)),Bt=(e,t)=>ze([...e?.entries()??[]],([e,n])=>t(n,e)),Ft=(e,t,n)=>Te(n)?(mt(e,t),e):e?.set(t,n),zt=(e,t,n,s)=>(ut(e,t)?s?.(Zt(e,t)):Ft(e,t,n()),Zt(e,t)),Jt=(e,t,n,s=Ft)=>(Nt(t,(t,s)=>n(e,s,t)),_t(e,n=>Lt(t,n)?0:s(e,n)),e),Ut=(e,t,n,s)=>{const a={};return wt(e,(e,o)=>{if(!n?.(e,o)){const n=t?t(e,o):e;s?.(n)||(a[o]=n)}}),a},Wt=(e,t,n)=>Ut(e,e=>Ut(e,t,n),ht,At),jt=(e,t,n)=>Ut(e,e=>Wt(e,t,n),ht,At),Gt=(e,t)=>{const n=Vt();return wt(e,(e,s)=>n.set(s,t?.(e)??e)),n},Qt=e=>Gt(e,Gt),Yt=e=>Gt(e,Qt),Kt=(e,t,n,s,a=0)=>Se((n?zt:Zt)(e,t[a],a>qe(t)-2?n:Vt),o=>{if(a>qe(t)-2)return s?.(o)&&Ft(e,t[a]),o;const r=Kt(o,t,n,s,a+1);return ht(o)&&Ft(e,t[a]),r}),Xt=e=>new Set(ke(e)||Te(e)?e:[e]),en=(e,t)=>e?.add(t),tn=(e,t,n,s,a)=>{const o=e.hasRow,r=Vt(),l=Vt(),i=Vt(),c=Vt(),d=Vt(),u=Vt(),h=(t,n,...s)=>{const a=zt(u,t,Xt);return Be(s,t=>en(a,t)&&n&&e.callListener(t)),s},g=(t,...n)=>Se(Zt(u,t),s=>{Be(Ue(n)?gt(s):n,t=>{e.delListener(t),mt(s,t)}),ht(s)&&Ft(u,t)}),p=(e,n)=>{Ft(r,e,n),ut(l,e)||(Ft(l,e,t()),Ft(c,e,Vt()),Ft(d,e,Vt()),a(i))},w=e=>{Ft(r,e),Ft(l,e),Ft(c,e),Ft(d,e),g(e),a(i)};return[()=>e,()=>Ht(r),e=>_t(l,e),e=>ut(l,e),e=>Zt(r,e),e=>Zt(l,e),(e,t)=>Ft(l,e,t),p,(t,s,a,r,l)=>{p(t,s);const i=Vt(),u=Vt(),w=Zt(c,t),m=Zt(d,t),I=t=>{const a=n=>e.getCell(s,t,n),c=Zt(w,t),d=o(s,t)?n(r(a,t)):void 0;if(c===d||ke(c)&&ke(d)&&He(c,d)||Ft(i,t,[c,d]),!Te(l)){const e=Zt(m,t),n=o(s,t)?l(a,t):void 0;e!=n&&Ft(u,t,n)}},b=e=>{a(()=>{wt(i,([,e],t)=>Ft(w,t,e)),wt(u,(e,t)=>Ft(m,t,e))},i,u,w,m,e),pt(i),pt(u)};_t(w,I),e.hasTable(s)&&Be(e.getRowIds(s),e=>{ut(w,e)||I(e)}),b(!0),g(t),h(t,0,e.addRowListener(s,null,(e,t,n)=>I(n)),e.addTableListener(s,()=>b()))},w,e=>s(e,i),()=>_t(u,w),h,g]},nn=(e,t)=>xe(e)?t=>t(e):e??(()=>t??p),sn=(e,t)=>{const n=new WeakMap;return s=>{n.has(s)||n.set(s,e(s));const a=n.get(s);return t?.(a),a}},an=/^\d+$/,on=()=>{const e=[];let t=0;return[n=>(n?Xe(e):null)??p+t++,t=>{an.test(t)&&qe(e)<1e3&&Qe(e,t)}]},rn=e=>{let t;const[n,s]=on(),a=Vt();return[(s,o,r,l=[],i=()=>[])=>{t??=e();const c=n(1);return Ft(a,c,[s,o,r,l,i]),en(Kt(o,r??[p],Xt),c),c},(e,n,...s)=>Be(((e,t=[p])=>{const n=[],s=(e,a)=>a==qe(t)?Qe(n,e):null===t[a]?wt(e,e=>s(e,a+1)):Be([t[a],null],t=>s(Zt(e,t),a+1));return s(e,0),n})(e,n),e=>wt(e,e=>Zt(a,e)[0](t,...n??[],...s))),e=>Se(Zt(a,e),([,t,n])=>(Kt(t,n??[p],void 0,t=>(mt(t,e),ht(t)?1:0)),Ft(a,e),s(e),n)),e=>Se(Zt(a,e),([e,,n=[],s,a])=>{const o=(...r)=>{const l=qe(r);l==qe(n)?e(t,...r,...a(r)):Te(n[l])?Be(s[l]?.(...r)??[],e=>o(...r,e)):o(...r,n[l])};o()})]},ln=sn(e=>{let t,n,s,a=100,o=Vt(),r=Vt(),l=1;const i=Vt(),c=Vt(),[d,u,h]=rn(()=>E),g=Vt(),w=Vt(),m=[],I=[],b=(t,n)=>{l=0,e.transaction(()=>{const[s,a]=Zt(g,n);wt(s,(n,s)=>wt(n,(n,a)=>wt(n,(n,o)=>st(e,s,a,o,n[t])))),wt(a,(n,s)=>at(e,s,n[t]))}),l=1},y=e=>{Ft(g,e),Ft(w,e),u(c,[e])},v=(e,t)=>Be(Ge(e,t??qe(e)),y),f=()=>v(m,qe(m)-a),C=()=>Se(t,()=>{Qe(m,t),f(),v(I),t=void 0,s=1}),T=()=>{t=Ye(m),s=1};let S,R;const x=(e=p)=>(Te(t)&&(t=p+n++,Ft(g,t,[o,r]),N(t,e),o=Vt(),r=Vt(),s=1),t),L=()=>{Ue(m)||(Ke(I,x()),b(0,t),t=Ye(m),s=1)},k=()=>{Ue(I)||(Qe(m,t),t=Xe(I),b(1,t),s=1)},D=()=>{s&&(u(i),s=0)},q=e=>{const t=x(e);return D(),t},N=(e,t)=>(M(e)&&Zt(w,e)!==t&&(Ft(w,e,t),u(c,[e])),E),M=e=>ut(g,e),E={setSize:e=>(a=e,f(),E),addCheckpoint:q,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...m],t,[...I]],forEachCheckpoint:e=>_t(w,e),hasCheckpoint:M,getCheckpoint:e=>Zt(w,e),goBackward:()=>(L(),D(),E),goForward:()=>(k(),D(),E),goTo:e=>{const n=Oe(m,e)?L:Oe(I,e)?k:null;for(;!Te(n)&&e!=t;)n();return D(),E},addCheckpointIdsListener:e=>d(e,i),addCheckpointListener:(e,t)=>d(t,c,[e]),delListener:e=>(h(e),E),clear:()=>(v(m),v(I),Te(t)||y(t),t=void 0,n=0,q(),E),clearForward:()=>(Ue(I)||(v(I),u(i)),E),destroy:()=>{e.delListener(S),e.delListener(R)},getListenerStats:()=>({checkpointIds:it(i),checkpoint:it(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,n,s,a,r)=>{if(l){C();const e=zt(o,t,Vt),l=zt(e,n,Vt),i=zt(l,s,()=>[r,void 0]);i[1]=a,i[0]===a&&ht(Ft(l,s))&&ht(Ft(e,n))&&ht(Ft(o,t))&&T(),D()}}),R=e.addValueListener(null,(e,t,n,s)=>{if(l){C();const e=zt(r,t,()=>[s,void 0]);e[1]=n,e[0]===n&&ht(Ft(r,t))&&T(),D()}})}};return Tt(E.clear())},e=>e._registerListeners()),cn=de("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),dn=Vt(ze(cn,(e,t)=>[e,t])),un=e=>cn[63&e],hn=(e,t)=>Zt(dn,e[t])??0,gn=ge.crypto?e=>ge.crypto.getRandomValues(e):e=>ze(e,()=>fe(256*be.random())),pn=(e=16)=>We(gn(new Uint8Array(e)),(e,t)=>e+un(t),p),wn=JSON.stringify,mn=JSON.parse,In=e=>wn(e,(e,t)=>t instanceof Map?It.fromEntries([...t]):t),bn=e=>wn(e,(e,t)=>void 0===t?"":t),yn=e=>mn(e,(e,t)=>""===t?void 0:t),vn=new ge.TextEncoder,fn=e=>{let t=2166136261;return Be(vn.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Cn=(e,t)=>(e^t)>>>0,Tn=e=>We(vt(e),(e,[t,n])=>Cn(e,Sn(t,n)^Sn(t,0)),0),Sn=(e,t)=>fn(e+":"+t),Rn=(e,t)=>fn(In(e??null)+":"+t),xn=Rn,Ln=Sn,kn=Tn,Dn=Sn,qn=e=>We(vt(e),(e,[t,n])=>Cn(e,Sn(t,n)),0),Nn=Sn,Mn=qn,En=2**36,An=2**30,Pn=2**24,$n=2**18,On=4096,Vn=e=>{const t=fn(e);return un(t/Pn)+un(t/$n)+un(t/On)+un(t/64)+un(t)},Hn=(e,t=Date.now)=>{let n=0,s=-1;const a=Se(e,Vn,()=>pn(5)),o=e=>{const a=n,[o,r]=Te(e)||""==e?[0,0]:l(e);n=ye(a,o,t()),s=n==a?n==o?ye(s,r):s:n==o?r:-1},r=(e,t,n)=>un(e/En)+un(e/An)+un(e/Pn)+un(e/$n)+un(e/On)+un(e/64)+un(e)+un(t/$n)+un(t/On)+un(t/64)+un(t)+(Te(n)?a:Vn(n)),l=e=>[hn(e,0)*En+hn(e,1)*An+hn(e,2)*Pn+hn(e,3)*$n+hn(e,4)*On+64*hn(e,5)+hn(e,6),hn(e,7)*$n+hn(e,8)*On+64*hn(e,9)+hn(e,10),e.slice(11)];return[()=>(o(),r(n,++s)),o,r,l,()=>n,()=>s,()=>a]},Zn=(e,t)=>(e??0)<(t??0)?-1:1,_n=sn(e=>{const t=Vt(),n=Vt(),[s,a,o]=rn(()=>y),[r,l,i,c,d,u,h,,g,w,m,I]=tn(e,Vt,e=>Te(e)?p:ke(e)?ze(e,re):re(e),s,a),b=(t,n,s)=>{const a=d(t);wt(s,(t,s)=>n(s,n=>wt(t,t=>n(t,n=>e.forEachCell(a,t,n)))))},y={setIndexDefinition:(e,s,o,r,l,i=Zn)=>{const c=Te(l)?void 0:([e],[t])=>l(e,t);return g(e,s,(s,o,l,d,g,p)=>{let w=0;const m=Xt(),I=Xt(),b=u(e);if(wt(o,([e,t],n)=>{const s=Xt(e),a=Xt(t);wt(s,e=>mt(a,e)?mt(s,e):0),wt(s,e=>{en(m,e),Se(Zt(b,e),t=>{mt(t,n),ht(t)&&(Ft(b,e),w=1)})}),wt(a,e=>{en(m,e),ut(b,e)||(Ft(b,e,Xt()),w=1),en(Zt(b,e),n),Te(r)||en(I,e)})}),s(),ht(g)||(p?_t(b,e=>en(I,e)):_t(l,e=>Se(Zt(d,e),e=>Be(ke(e)?e:[e],e=>en(I,e)))),wt(I,e=>{const t=(t,n)=>i(Zt(g,t),Zt(g,n),e),n=[...Zt(b,e)];Ze(n,t)||(Ft(b,e,Xt(_e(n,t))),en(m,e))})),(w||p)&&!Te(c)){const t=[...b];Ze(t,c)||(h(e,Vt(_e(t,c))),w=1)}w&&a(t,[e]),wt(m,t=>a(n,[e,t]))},nn(o),Se(r,nn)),y},delIndexDefinition:e=>(w(e),y),getStore:r,getIndexIds:l,forEachIndex:e=>i((t,n)=>e(t,e=>b(t,e,n))),forEachSlice:(e,t)=>b(e,t,u(e)),hasIndex:c,hasSlice:(e,t)=>ut(u(e),t),getTableId:d,getSliceIds:e=>Ht(u(e)),getSliceRowIds:(e,t)=>gt(Zt(u(e),t)),addIndexIdsListener:m,addSliceIdsListener:(e,n)=>s(n,t,[e]),addSliceRowIdsListener:(e,t,a)=>s(a,n,[e,t]),delListener:e=>(o(e),y),destroy:I,getListenerStats:()=>({sliceIds:it(t),sliceRowIds:ct(n)})};return Tt(y)}),Bn=([e,t])=>zn(e,t),Fn=([e,t,n])=>[e,t,n],zn=(e,t)=>t?[e,t]:[e],Jn=(e,t,n)=>[e,t,n],Un=e=>e[2],Wn=(e,t)=>t>e?(e?fn(e):0)^fn(t):0,jn=(e,t)=>((e??"")>(t??"")?e:t)??"",Gn=(e,t,n)=>{t>e[1]&&(e[1]=t),e[2]=n>>>0},Qn=(e=p)=>zn(St(),e),Yn=(e=p)=>[Vt(),e,0],Kn=([e,t,n],s=Fn)=>[Ut(e,s),t,n],Xn=([e,t],n=Bn)=>zn(Ut(e,n),t),es=(e,t)=>ke(e)&&3==qe(e)&&xe(e[1])&&h(e[2])==y&&Ce(e[2])&&t(e[0]),ts=e=>[e,e],ns=(e,t=it)=>t(e[0])+t(e[1]),ss=()=>[Vt(),Vt()],as=e=>[...e],os=([e,t])=>e===t,rs=(e,t,n)=>Ft(e,t,Zt(e,t)==-n?void 0:n),ls=()=>{let e,t,n=!1,s=!1,a=0,o=[];const r=Vt(),l=Vt(),i=Vt(),c=Vt(),d=Vt(),u=Vt(),h=Vt(),g=Vt(),p=Vt(),w=Vt(),m=Vt(),I=Vt(),b=Vt(),v=Vt(),f=Xt(),S=Vt(),x=Vt(),L=Vt(),q=Vt(),O=ss(),F=ss(),z=ss(),J=ss(),U=ss(),W=ss(),j=ss(),G=ss(),Q=ss(),Y=ss(),K=ss(),X=ss(),ee=ss(),te=ss(),ne=ss(),se=ss(),ae=ss(),oe=ss(),le=ss(),ie=ss(),ce=ss(),de=ss(),ue=Vt(),he=ss(),[ge,pe,we,me]=rn(()=>$n),Ie=e=>{if(!Ot(e,(e,t)=>Oe([C,T],t)))return!1;const t=e[C];return!(!Re(t)&&t!=y||(tt(e[T])!=t&&kt(e,T),0))},be=ke,ye=(t,n)=>(!e||ut(m,n)||yt(n))&&Ot(t,(e,t)=>ve(n,t,e),()=>yt(n)),ve=(e,t,n,s)=>Ot(s?n:qe(n,e,t),(s,a)=>Se(fe(e,t,a,s),e=>(n[a]=e,!0),()=>!1),()=>yt(e,t)),fe=(t,n,s,a)=>e?Se(Zt(Zt(m,t),s),e=>tt(a)!=e[C]?yt(t,n,s,a,e[T]):a,()=>yt(t,n,s,a)):Te(tt(a))?yt(t,n,s,a):a,Ce=(e,t)=>Ot(t?e:Ne(e),(t,n)=>Se(xe(n,t),t=>(e[n]=t,!0),()=>!1),()=>vt()),xe=(e,n)=>t?Se(Zt(b,e),t=>tt(n)!=t[C]?vt(e,n,t[T]):n,()=>vt(e,n)):Te(tt(n))?vt(e,n):n,qe=(e,t,n)=>(Se(Zt(I,t),([s,a])=>{wt(s,(t,n)=>{Lt(e,n)||(e[n]=t)}),wt(a,s=>{Lt(e,s)||yt(t,n,s)})}),e),Ne=e=>(t&&(wt(v,(t,n)=>{Lt(e,n)||(e[n]=t)}),wt(f,t=>{Lt(e,t)||vt(t)})),e),Me=e=>Jt(m,e,(e,t,n)=>{const s=Vt(),a=Xt();Jt(zt(m,t,Vt),n,(e,t,n)=>{Ft(e,t,n),Se(n[T],e=>Ft(s,t,e),()=>en(a,t))}),Ft(I,t,[s,a])},(e,t)=>{Ft(m,t),Ft(I,t)}),Ee=e=>Jt(b,e,(e,t,n)=>{Ft(b,t,n),Se(n[T],e=>Ft(v,t,e),()=>en(f,t))},(e,t)=>{Ft(b,t),Ft(v,t),mt(f,t)}),Ae=e=>At(e)?Ln():Cn(e),Pe=e=>Jt(L,e,(e,t,n)=>Ve(t,n),(e,t)=>Ye(t)),Ve=(e,t)=>Jt(zt(L,e,()=>(nt(e,1),Ft(S,e,on()),Ft(x,e,Vt()),Vt())),t,(t,n,s)=>Ze(e,t,n,s),(t,n)=>Ke(e,t,n)),Ze=(e,t,n,s,a)=>Jt(zt(t,n,()=>(ot(e,n,1),Vt())),s,(t,s,a)=>Fe(e,n,t,s,a),(s,o)=>Xe(e,t,n,s,o,a)),Fe=(e,t,n,s,a)=>{ut(n,s)||rt(e,t,s,1);const o=Zt(n,s);a!==o&&(gt(e,t,s,o,a),Ft(n,s,a))},Je=(e,t,n,s,a)=>Se(Zt(t,n),t=>Fe(e,n,t,s,a),()=>Ze(e,t,n,qe({[s]:a},e,n))),Ue=e=>At(e)?qn():Tn(e),We=e=>Jt(q,e,(e,t,n)=>je(t,n),(e,t)=>et(t)),je=(e,t)=>{ut(q,e)||It(e,1);const n=Zt(q,e);t!==n&&(bt(e,n,t),Ft(q,e,t))},Ge=e=>Zt(L,e)??Ve(e,{}),Ye=e=>Ve(e,{}),Ke=(e,t,n)=>{const[,s]=Zt(S,e);s(n),Ze(e,t,n,{},!0)},Xe=(e,t,n,s,a,o)=>{const r=Zt(Zt(I,e)?.[0],a);if(!Te(r)&&!o)return Fe(e,n,s,a,r);const l=t=>{gt(e,n,t,Zt(s,t)),rt(e,n,t,-1),Ft(s,t)};Te(r)?l(a):_t(s,l),ht(s)&&(ot(e,n,-1),ht(Ft(t,n))&&(nt(e,-1),Ft(L,e),Ft(S,e),Ft(x,e)))},et=e=>{const t=Zt(v,e);if(!Te(t))return je(e,t);bt(e,Zt(q,e)),It(e,-1),Ft(q,e)},nt=(e,t)=>rs(r,e,t),ot=(e,t,n)=>rs(zt(c,e,Vt),t,n)&&Ft(i,e,zt(i,e,()=>0)+n),rt=(e,t,n,s)=>{const a=Zt(x,e),o=Zt(a,n)??0;(0==o&&1==s||1==o&&-1==s)&&rs(zt(l,e,Vt),n,s),Ft(a,n,o!=-s?o+s:null),rs(zt(zt(d,e,Vt),t,Vt),n,s)},gt=(e,t,n,s,a)=>{zt(zt(zt(u,e,Vt),t,Vt),n,()=>[s,0])[1]=a,o[3]?.(e,t,n,a)},It=(e,t)=>rs(h,e,t),bt=(e,t,n)=>{zt(g,e,()=>[t,0])[1]=n,o[4]?.(e,n)},yt=(e,t,n,s,a)=>(Qe(zt(zt(zt(p,e,Vt),t,Vt),n,()=>[]),s),a),vt=(e,t,n)=>(Qe(zt(w,e,()=>[]),t),n),Ct=(e,t,n)=>Se(Zt(Zt(Zt(u,e),t),n),([e,t])=>[!0,e,t],()=>[!1,...ts(cn(e,t,n))]),St=e=>Se(Zt(g,e),([e,t])=>[!0,e,t],()=>[!1,...ts(hn(e))]),Rt=e=>ht(p)||ht(se[e])?0:wt(e?Yt(p):p,(t,n)=>wt(t,(t,s)=>wt(t,(t,a)=>pe(se[e],[n,s,a],t)))),xt=e=>ht(w)||ht(ae[e])?0:wt(e?Gt(w):w,(t,n)=>pe(ae[e],[n],t)),Dt=(e,t,n,s)=>{if(!ht(e))return pe(t,s,()=>Ut(e)),_t(e,(e,t)=>pe(n,[...s??[],e],1==t)),1},qt=e=>{const t=gn();t!=n&&pe(O[e],void 0,t);const s=ht(Y[e]),a=ht(ee[e])&&ht(te[e])&&ht(Q[e])&&ht(K[e])&&ht(W[e])&&ht(j[e])&&ht(G[e])&&s&&ht(z[e])&&ht(J[e]),o=ht(ne[e])&&ht(X[e])&&ht(U[e])&&ht(F[e]);if(!a||!o){const t=e?[Gt(r),Qt(l),Gt(i),Qt(c),Yt(d),Yt(u)]:[r,l,i,c,d,u];if(!a){Dt(t[0],z[e],J[e]),wt(t[1],(t,n)=>Dt(t,W[e],j[e],[n])),wt(t[2],(t,n)=>{0!=t&&pe(G[e],[n],nn(n))});const n=Xt();wt(t[3],(t,a)=>{Dt(t,Q[e],K[e],[a])&&!s&&(pe(Y[e],[a,null]),en(n,a))}),s||wt(t[5],(t,s)=>{if(!ut(n,s)){const n=Xt();wt(t,e=>wt(e,([t,s],a)=>s!==t?en(n,a):mt(e,a))),wt(n,t=>pe(Y[e],[s,t]))}}),wt(t[4],(t,n)=>wt(t,(t,s)=>Dt(t,ee[e],te[e],[n,s])))}if(!o){let n;wt(t[5],(t,s)=>{let a;wt(t,(t,o)=>{let r;wt(t,([t,l],i)=>{l!==t&&(pe(ne[e],[s,o,i],l,t,Ct),n=a=r=1)}),r&&pe(X[e],[s,o],Ct)}),a&&pe(U[e],[s],Ct)}),n&&pe(F[e],void 0,Ct)}}},Mt=e=>{const t=vn();t!=s&&pe(oe[e],void 0,t);const n=ht(ie[e])&&ht(ce[e]),a=ht(de[e])&&ht(le[e]);if(!n||!a){const t=e?[Gt(h),Gt(g)]:[h,g];if(n||Dt(t[0],ie[e],ce[e]),!a){let n;wt(t[1],([t,s],a)=>{s!==t&&(pe(de[e],[a],s,t,St),n=1)}),n&&pe(le[e],void 0,St)}}},Et=(e,...t)=>(En(()=>e(...ze(t,re))),$n),Pt=(e,t,n,s,a)=>{let o=an(e,t,...n);return ge(()=>{const a=an(e,t,...n);He(a,o)||(o=a,s($n,e,t,...n,o))},Y[a?1:0],[e,t],[Kt])},$t=()=>jt(L),Kt=()=>Ht(L),tn=e=>Ht(Zt(x,re(e))),nn=e=>lt(Zt(L,re(e))),sn=e=>Ht(Zt(L,re(e))),an=(e,t,n,s=0,a)=>ft(e)?an(e.tableId,e.cellId,e.descending,e.offset,e.limit):ze(De(_e(Bt(Zt(L,re(e)),(e,n)=>[Te(t)?n:Zt(e,re(t)),n]),([e],[t])=>Zn(e,t)*(n?-1:1)),s,Te(a)?a:s+a),([,e])=>e),ln=(e,t)=>Ht(Zt(Zt(L,re(e)),re(t))),cn=(e,t,n)=>Zt(Zt(Zt(L,re(e)),re(t)),re(n)),dn=()=>Ut(q),un=()=>Ht(q),hn=e=>Zt(q,re(e)),gn=()=>!ht(L),pn=e=>ut(L,re(e)),wn=(e,t)=>ut(Zt(x,re(e)),re(t)),bn=(e,t)=>ut(Zt(L,re(e)),re(t)),yn=(e,t,n)=>ut(Zt(Zt(L,re(e)),re(t)),re(n)),vn=()=>!ht(q),fn=e=>ut(q,re(e)),Cn=e=>Et(()=>(e=>Ot(e,ye,yt))(e)?Pe(e):0),Tn=e=>Et(()=>Ce(e)?We(e):0),Sn=e=>($e(()=>Ae(mn(e))),$n),Rn=t=>Et(()=>{if((e=Ot(t,e=>Ot(e,Ie)))&&(Me(t),!ht(L))){const e=$t();Ln(),Cn(e)}}),xn=e=>Et(()=>{if(t=(e=>Ot(e,Ie))(e)){const n=dn();Mn(),qn(),t=!0,Ee(e),Tn(n)}}),Ln=()=>Et(()=>Pe({})),kn=e=>Et(e=>ut(L,e)?Ye(e):0,e),Dn=(e,t)=>Et((e,t)=>Se(Zt(L,e),n=>ut(n,t)?Ke(e,n,t):0),e,t),qn=()=>Et(()=>We({})),Nn=()=>Et(()=>{Me({}),e=!1}),Mn=()=>Et(()=>{Ee({}),t=!1}),En=(e,t)=>{if(-1!=a){An();const n=e();return Pn(t),n}},An=()=>(-1!=a&&a++,1==a&&(o[0]?.(),pe(ue)),$n),Pn=e=>(a>0&&(a--,0==a&&(a=1,Rt(1),ht(u)||qt(1),xt(1),ht(g)||Mt(1),e?.($n)&&(wt(u,(e,t)=>wt(e,(e,n)=>wt(e,([e],s)=>st($n,t,n,s,e)))),pt(u),wt(g,([e],t)=>at($n,t,e)),pt(g)),pe(he[0],void 0),a=-1,Rt(0),ht(u)||qt(0),xt(0),ht(g)||Mt(0),o[1]?.(),pe(he[1],void 0),o[2]?.(),a=0,n=gn(),s=vn(),Be([r,l,i,c,d,u,p,h,g,w],pt))),$n),$n={getContent:()=>[$t(),dn()],getTables:$t,getTableIds:Kt,getTable:e=>Wt(Zt(L,re(e))),getTableCellIds:tn,getRowCount:nn,getRowIds:sn,getSortedRowIds:an,getRow:(e,t)=>Ut(Zt(Zt(L,re(e)),re(t))),getCellIds:ln,getCell:cn,getValues:dn,getValueIds:un,getValue:hn,hasTables:gn,hasTable:pn,hasTableCell:wn,hasRow:bn,hasCell:yn,hasValues:vn,hasValue:fn,getTablesJson:()=>In(L),getValuesJson:()=>In(q),getJson:()=>In([L,q]),getTablesSchemaJson:()=>In(m),getValuesSchemaJson:()=>In(b),getSchemaJson:()=>In([m,b]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>Et(()=>{const t=Le(e)?e():e;be(t)&&(([e,t])=>{(At(e)?Ln:Cn)(e),(At(t)?qn:Tn)(t)})(t)}),setTables:Cn,setTable:(e,t)=>Et(e=>ye(t,e)?Ve(e,t):0,e),setRow:(e,t,n)=>Et((e,t)=>ve(e,t,n)?Ze(e,Ge(e),t,n):0,e,t),addRow:(e,t,n=!0)=>En(()=>{let s;return ve(e,s,t)&&(e=re(e),Ze(e,Ge(e),s=((e,t)=>{const[n]=Zt(S,e);let s;do{s=n(t)}while(ut(Zt(L,e),s));return s})(e,n?1:0),t)),s}),setPartialRow:(e,t,n)=>Et((e,t)=>{if(ve(e,t,n,1)){const s=Ge(e);Nt(n,(n,a)=>Je(e,s,t,a,n))}},e,t),setCell:(e,t,n,s)=>Et((e,t,n)=>Se(fe(e,t,n,Le(s)?s(cn(e,t,n)):s),s=>Je(e,Ge(e),t,n,s)),e,t,n),setValues:Tn,setPartialValues:e=>Et(()=>Ce(e,1)?Nt(e,(e,t)=>je(t,e)):0),setValue:(e,t)=>Et(e=>Se(xe(e,Le(t)?t(hn(e)):t),t=>je(e,t)),e),applyChanges:e=>Et(()=>{Nt(e[0],(e,t)=>Te(e)?kn(t):Nt(e,(e,n)=>Te(e)?Dn(t,n):Nt(e,(e,s)=>st($n,t,n,s,e)))),Nt(e[1],(e,t)=>at($n,t,e))}),setTablesJson:Sn,setValuesJson:e=>($e(()=>Ue(mn(e))),$n),setJson:e=>Et(()=>$e(()=>{const[t,n]=mn(e);Ae(t),Ue(n)},()=>Sn(e))),setTablesSchema:Rn,setValuesSchema:xn,setSchema:(e,t)=>Et(()=>{Rn(e),xn(t)}),delTables:Ln,delTable:kn,delRow:Dn,delCell:(e,t,n,s)=>Et((e,t,n)=>Se(Zt(L,e),a=>Se(Zt(a,t),o=>ut(o,n)?Xe(e,a,t,o,n,s):0)),e,t,n),delValues:qn,delValue:e=>Et(e=>ut(q,e)?et(e):0,e),delTablesSchema:Nn,delValuesSchema:Mn,delSchema:()=>Et(()=>{Nn(),Mn()}),transaction:En,startTransaction:An,getTransactionChanges:()=>[Ut(u,(e,t)=>-1===Zt(r,t)?void 0:Ut(e,(e,n)=>-1===Zt(Zt(c,t),n)?void 0:Ut(e,([,e])=>e,e=>os(e)),ht,At),ht,At),Ut(g,([,e])=>e,e=>os(e)),1],getTransactionLog:()=>[!ht(u),!ht(g),jt(u,as,os),jt(p),Ut(g,as,os),Ut(w),Ut(r),Wt(c),jt(d),Ut(h)],finishTransaction:Pn,forEachTable:e=>wt(L,(t,n)=>e(n,e=>wt(t,(t,n)=>e(n,e=>_t(t,e))))),forEachTableCell:(e,t)=>_t(Zt(x,re(e)),t),forEachRow:(e,t)=>wt(Zt(L,re(e)),(e,n)=>t(n,t=>_t(e,t))),forEachCell:(e,t,n)=>_t(Zt(Zt(L,re(e)),re(t)),n),forEachValue:e=>_t(q,e),addSortedRowIdsListener:(e,t,n,s,a,o,r)=>ft(e)?Pt(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,n):Pt(e,t,[n,s,a],o,r),addStartTransactionListener:e=>ge(e,ue),addWillFinishTransactionListener:e=>ge(e,he[0]),addDidFinishTransactionListener:e=>ge(e,he[1]),callListener:e=>(me(e),$n),delListener:e=>(we(e),$n),getListenerStats:()=>({hasTables:ns(O),tables:ns(F),tableIds:ns(z),hasTable:ns(J),table:ns(U),tableCellIds:ns(W),hasTableCell:ns(j,ct),rowCount:ns(G),rowIds:ns(Q),sortedRowIds:ns(Y),hasRow:ns(K,ct),row:ns(X,ct),cellIds:ns(ee,ct),hasCell:ns(te,dt),cell:ns(ne,dt),invalidCell:ns(se,dt),hasValues:ns(oe),values:ns(le),valueIds:ns(ie),hasValue:ns(ce),value:ns(de),invalidValue:ns(ae),transaction:it(ue)+ns(he)}),isMergeable:()=>!1,createStore:ls,addListener:ge,callListeners:pe,setInternalListeners:(e,t,n,s,a)=>o=[e,t,n,s,a]};return Nt({[D+M]:[0,O,[],()=>[gn()]],[M]:[0,F],[E]:[0,z],[D+N]:[1,J,[Kt],e=>[pn(...e)]],[N]:[1,U,[Kt]],[N+H]:[1,W,[Kt]],[D+N+V]:[2,j,[Kt,tn],e=>[wn(...e)]],[P]:[1,G,[Kt]],[$]:[1,Q,[Kt]],[D+A]:[2,K,[Kt,sn],e=>[bn(...e)]],[A]:[2,X,[Kt,sn]],[H]:[2,ee,[Kt,sn]],[D+V]:[3,te,[Kt,sn,ln],e=>[yn(...e)]],[V]:[3,ne,[Kt,sn,ln],e=>ts(cn(...e))],InvalidCell:[3,se],[D+_]:[0,oe,[],()=>[vn()]],[_]:[0,le],[B]:[0,ie],[D+Z]:[1,ce,[un],e=>[fn(...e)]],[Z]:[1,de,[un],e=>ts(hn(e[0]))],InvalidValue:[1,ae]},([e,t,n,s],a)=>{$n[k+a+R]=(...a)=>ge(a[e],t[a[e+1]?1:0],e>0?De(a,0,e):void 0,n,s)}),Tt($n)},is={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},cs=(e=p)=>[Yn(e),Yn(e)],ds=(e,t)=>{let n=1,s=cs(),a=0;const o=Vt(),r=Xt(),[l,i]=Hn(e,t),c=ls(),d=e=>{const t=n;return n=0,e(),n=t,b},u=(e,t=0)=>{const n={},a={},[[o,r=p,l=0],c]=e,[d,u]=s,[g,w,m]=d;let I=t?l:m,b=r;Dt(o,([e,s=p,a=0],o)=>{const r=zt(g,o,Yn),[l,i,c]=r;let d=t?a:c,u=s;Dt(e,(e,s)=>{const[a,r,i]=h(e,zt(l,s,Yn),$t($t(n,o,St),s,St),t);d^=t?0:Cn(r?Sn(s,r):0,Sn(s,i)),u=jn(u,a)}),d^=t?0:Wn(i,s),Gn(r,s,d),I^=t?0:Cn(c?Sn(o,c):0,Sn(o,r[2])),b=jn(b,u)}),I^=t?0:Wn(w,r),Gn(d,r,I);const[y]=h(c,u,a,t);return i(jn(b,y)),[n,a,1]},h=(e,t,n,s)=>{const[a,o=p,r=0]=e,[l,i,c]=t;let d=o,u=s?r:c;return Dt(a,([e,t=p,a=0],o)=>{const r=zt(l,o,()=>[void 0,p,0]),[,i,c]=r;(!i||t>i)&&(Gn(r,t,s?a:Rn(e,t)),r[0]=e,n[o]=e,u^=s?0:Cn(Sn(o,c),Sn(o,r[2])),d=jn(d,t))}),u^=s?0:Wn(i,o),Gn(t,o,u),[d,c,t[2]]},g=Me,w=Me,m=()=>[Kn(s[0],e=>Kn(e,e=>Kn(e))),Kn(s[1])],I=e=>d(()=>c.applyChanges(u(e))),b={getMergeableContent:m,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>Ut(s[0][0],Un),getMergeableTableDiff:e=>{const t=Qn(s[0][1]),n={};return _t(s[0][0],(s,[a,o,r])=>Lt(e,s)?r!=e[s]?n[s]=r:0:t[0][s]=Xn([a,o],e=>Xn(e))),[t,n]},getMergeableRowHashes:e=>{const t={};return Dt(e,(e,n)=>Se(Zt(s[0][0],n),([s,,a])=>a!=e?_t(s,(e,[,,s])=>$t(t,n,St)[e]=s):0)),t},getMergeableRowDiff:e=>{const t=Qn(s[0][1]),n={};return Dt(e,(e,a)=>_t(Zt(s[0][0],a)?.[0],(s,[o,r,l])=>Lt(e,s)?l!==e[s]?$t(n,a,St)[s]=l:0:$t(t[0],a,Qn)[0][s]=Xn([o,r]))),[t,n]},getMergeableCellHashes:e=>{const t={};return Dt(e,(e,n)=>Se(Zt(s[0][0],n),([s])=>Dt(e,(e,a)=>Se(Zt(s,a),([s,,o])=>o!==e?_t(s,(e,[,,s])=>$t($t(t,n,St),a,St)[e]=s):0)))),t},getMergeableCellDiff:e=>{const[[t,n]]=s,a={};return Dt(e,(e,n)=>Dt(e,(e,s)=>Se(Zt(t,n),([t,o])=>Se(Zt(t,s),([t,r])=>_t(t,(t,[l,i,c])=>c!==e[t]?$t($t(a,n,()=>Qn(o))[0],s,()=>Qn(r))[0][t]=[l,i]:0))))),zn(a,n)},getMergeableValueHashes:()=>Ut(s[1][0],Un),getMergeableValueDiff:e=>{const[,[t,n]]=s,a=Ut(t,Bn,([,,t],n)=>t==e?.[n]);return zn(a,n)},setMergeableContent:e=>d(()=>(e=>ke(e)&&2==qe(e)&&es(e[0],e=>Ot(e,e=>es(e,e=>Ot(e,e=>es(e,e=>Ot(e,e=>es(e,nt),void 0,1)),void 0,1)),void 0,1))&&es(e[1],e=>Ot(e,e=>es(e,nt),void 0,1)))(e)?c.transaction(()=>{c.delTables().delValues(),s=cs(),c.applyChanges(u(e,1))}):0),setDefaultContent:e=>(c.transaction(()=>{a=1,c.setContent(e),a=0}),b),getTransactionMergeableChanges:(e=!1)=>{const[[t,n,a],[l,i,c]]=s,d=e?Jn:zn,u={};wt(o,(e,n)=>Se(Zt(t,n),([t,s,a])=>{const o={};wt(e,(e,n)=>Se(Zt(t,n),([t,s,a])=>{const r={};wt(e,e=>{Se(Zt(t,e),([t,n,s])=>r[e]=d(t,n,s))}),o[n]=d(r,s,a)})),u[n]=d(o,s,a)}));const h={};return wt(r,e=>Se(Zt(l,e),([t,n,s])=>h[e]=d(t,n,s))),[d(u,n,a),d(h,i,c),1]},applyMergeableChanges:I,merge:e=>{const t=m(),n=e.getMergeableContent();return e.applyMergeableChanges(t),I(n)}};return c.setInternalListeners(g,w,()=>{pt(o),pt(r)},(e,t,s,r)=>{en(zt(zt(o,e,Vt),t,Xt),s),n&&u([[{[e]:[{[t]:[{[s]:[r,a?p:l()]}]}]}],[{}],1])},(e,t)=>{en(r,e),n&&u([[{}],[{[e]:[t,a?p:l()]}],1])}),Nt(c,(e,t)=>b[t]=le(t,"set")||le(t,"del")||le(t,"apply")||ie(t,F)||t=="call"+R?(...t)=>(e(...t),b):le(t,k)&&ie(t,R)?(...n)=>{const s=is[De(t,3,-8)]??0,a=n[s];return n[s]=(e,...t)=>a(b,...t),e(...n)}:"isMergeable"==t?()=>!0:e),Tt(b)},us=Vt([["avg",[(e,t)=>Je(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>ye(...e),(e,t)=>ye(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:ye(t,e)]],["min",[e=>ve(...e),(e,t)=>ve(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:ve(t,e)]],["sum",[e=>Je(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),hs=(e,t,n,s,a,o=!1)=>{if(ht(n))return;const[r,l,i,c]=a;return o||=Te(e),wt(s,([n,s])=>{o||(e=Te(n)?l?.(e,s,t++):Te(s)?i?.(e,n,t--):c?.(e,s,n,t),o||=Te(e))}),o?r(gt(n),lt(n)):e},gs=sn(e=>{const t=Vt(),[n,s,a]=rn(()=>I),[o,r,l,i,c,d,u,,h,g,w,m]=tn(e,Ne,e=>isNaN(e)||Te(e)||!0===e||!1===e||e===p?void 0:1*e,n,s),I={setMetricDefinition:(e,n,a,o,r,l,i)=>{const c=Le(a)?[a,r,l,i]:Zt(us,a)??Zt(us,"sum");return h(e,n,(n,a,o,r,l,i)=>{const h=d(e),g=lt(r);i||=Te(h),n();let p=hs(h,g,r,a,c,i);Ce(p)||(p=void 0),p!=h&&(u(e,p),s(t,[e],p,h))},nn(o,1)),I},delMetricDefinition:e=>(g(e),I),getStore:o,getMetricIds:r,forEachMetric:l,hasMetric:i,getTableId:c,getMetric:d,addMetricIdsListener:w,addMetricListener:(e,s)=>n(s,t,[e]),delListener:e=>(a(e),I),destroy:m,getListenerStats:()=>({metric:it(t)})};return Tt(I)}),ps={Idle:0,Loading:1,Saving:2},ws={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},ms=Vt(),Is=Vt(),bs=(e,t,n,s,a,o,r,l={},i=0,c=[])=>{let d,u,h,g=0,p=0,w=0;zt(ms,c,()=>0),zt(Is,c,()=>[]);const m=Vt(),[I,b,y,v,f]=((e=1,t,n)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!n),([[e],[t]])=>!At(e)||!At(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!At(e)||!At(t),t.setContent]:Pe("Store type not supported by this Persister"))(r,e,i),[C,T,S]=rn(()=>P),R=e=>{e!=g&&(g=e,T(m,void 0,g))},x=t=>{(I&&ke(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},L=async e=>(2!=g&&(R(1),p++,await A(async()=>{await $e(async()=>{const n=await t();ke(n)?x(n):e?f(e):Pe("Content is not an array: "+n)},()=>{e&&f(e)}),R(0)})),P),k=async e=>(D(),await L(e),await $e(async()=>u=await s(async(e,t)=>{t||e?2!=g&&(R(1),p++,x(t??e),R(0)):await L()}),o),P),D=async()=>(u&&(await $e(()=>a(u),o),u=void 0),P),q=async e=>(1!=g&&(R(2),w++,await A(async()=>{await $e(()=>n(b,e),o),R(0)})),P),N=async()=>(M(),await q(),h=e.addDidFinishTransactionListener(()=>{const e=y();v(e)&&q(e)}),P),M=async()=>(h&&(e.delListener(h),h=void 0),P),E=async(e=!1)=>{const[t,n]=e?[M,D]:[D,M];return await t(),await n(),P},A=async(...e)=>(Qe(Zt(Is,c),...e),await(async()=>{if(!Zt(ms,c)){for(Ft(ms,c,1);!Te(d=Xe(Zt(Is,c)));)await $e(d,o);Ft(ms,c,0)}})(),P),P={load:L,startAutoLoad:k,stopAutoLoad:D,isAutoLoading:()=>!Te(u),save:q,startAutoSave:N,stopAutoSave:M,isAutoSaving:()=>!Te(h),startAutoPersisting:async(e,t=!1)=>{const[n,s]=t?[N,k]:[k,N];return await n(e),await s(e),P},stopAutoPersisting:E,getStatus:()=>g,addStatusListener:e=>C(e,m),delListener:t=>(S(t),e),schedule:A,getStore:()=>e,destroy:()=>(Ge(Zt(Is,c)),E()),getStats:()=>({loads:p,saves:w}),...l};return Tt(P)},ys="_",vs="_id",fs="SELECT",Cs="WHERE",Ts="TABLE",Ss="INSERT",Rs="DELETE",xs="UPDATE",Ls="ALTER "+Ts,ks="FROM",Ds=Rs+" "+ks,qs=fs+"*"+ks,Ns="pragma_",Ms="data_version",Es="schema_version",As="pragma_table_",Ps="CREATE ",$s=Ps+Ts,Os="OR REPLACE ",Vs="FUNCTION",Hs="$tableName",Zs=(e,t)=>t?async(n,s)=>(t(n,s),await e(n,s)):e,_s=e=>Fe(ze(de(e,m),e=>`"${ue(e,/"/g,'""')}"`),m),Bs=(...e)=>_s(Fe(e,"_")),Fs=(...e)=>Fe(ze(e,_s),w),zs=(e,t=[1])=>Fe(ze(e,()=>"$"+t[0]++),w),Js=(e,t=f)=>Cs+`(${ue(t,Hs,_s(e))})`,Us="ColumnName",Ws="store",js="json",Gs=Ws+"TableName",Qs=Ws+"Id"+Us,Ys=Ws+Us,Ks="autoLoadIntervalSeconds",Xs="rowId"+Us,ea="tableId",ta="tableName",na="deleteEmptyColumns",sa="deleteEmptyTable",aa="condition",oa={mode:js,[Ks]:1},ra={load:0,save:0,[ta]:g+"_values"},la=(e,t,n,s,a)=>{const o=Vt();return Nt(e,(e,r)=>{const l=De(Mt(Rt(t,xe(e)?{[n]:e}:e)),0,Et(t));Te(l[0])||s(r,l[0])||(a(r,l[0]),Ft(o,r,l))}),o},ia=e=>{const t=(e=>Rt(oa,xe(e)?{[Gs]:e}:e??{}))(e),n=t[Ks];if(t.mode==js){const e=t[Gs]??g;return[1,n,[e,t[Qs]??vs,t[Ys]??Ws],Xt(e)]}const{tables:{load:s={},save:a={}}={},values:o={}}=t,r=De(Mt(Rt(ra,o)),0,Et(ra)),l=r[2],i=Xt(l),c=Xt(l),d=la(s,{[ea]:null,[Xs]:vs,[aa]:f},ea,e=>ut(c,e),e=>en(i,e)),u=la(a,{[ta]:null,[Xs]:vs,[na]:0,[sa]:0,[aa]:null},ta,(e,t)=>ut(c,t),(e,t)=>en(i,t));return _t(u,(e,t)=>t[4]??=Zt(d,t[0])?.[2]??f),[0,n,[d,u,r],i]},ca=(e,t,n,s,a,o=da,r,l)=>{const i=Vt();return[async()=>{pt(i),ze(await n(e,t),({tn:e,cn:t})=>en(zt(i,e,Xt),t))},async(t,n,s)=>((e,t)=>ut(Zt(i,e),t))(t,n)?St(je(ze(await e(qs+_s(t)+Js(t,s)),e=>[e[n],l?Nt(kt(e,n),l):kt(e,n)]),([e,t])=>!Te(e)&&!At(t))):{},async(t,n,s,l,c,d=!1,u=f)=>{const h=Xt();Nt(s??{},e=>ze(Ct(e??{}),e=>en(h,e)));const g=gt(h);if(!d&&c&&u==f&&Ue(g)&&ut(i,t))return await e("DROP "+Ts+_s(t)),void Ft(i,t);const p=Zt(i,t),m=Xt(gt(p));if(Ue(g)||(ut(i,t)?await Ae(ze([n,...g],async(s,o)=>{mt(m,s)||(await e(Ls+_s(t)+"ADD"+_s(s)+a),0==o&&await e("CREATE UNIQUE INDEX pk ON "+_s(t)+`(${_s(n)})`),en(p,s))})):(await e($s+_s(t)+`(${_s(n)}${a} PRIMARY KEY${Fe(ze(g,e=>w+_s(e)+a))});`),Ft(i,t,Xt([n,...g])))),await Ae([...!d&&l?ze(gt(m),async s=>{s!=n&&(await e(Ls+_s(t)+"DROP"+_s(s)),mt(p,s))}):[]]),d)Te(s)?await e(Ds+_s(t)+Js(t,u)):await Ae(qt(s,async(s,a)=>{Te(s)?await e(Ds+_s(t)+Js(t,u)+`AND(${_s(n)}=$1)`,[a]):Ue(g)||await o(e,t,n,Ct(s),{[a]:r?ze(Mt(s),r):Mt(s)},p)}));else if(Ue(g))ut(i,t)&&await e(Ds+_s(t)+Js(t,u));else{const a=je(gt(Zt(i,t)),e=>e!=n),l={},c=[];Nt(s??{},(e,t)=>{l[t]=ze(a,t=>r?r(e?.[t]):e?.[t]),Qe(c,t)}),await o(e,t,n,a,l),await e(Ds+_s(t)+Js(t,u)+`AND${_s(n)}NOT IN(${zs(c)})`,c)}},async t=>{let n;return await e("BEGIN"),await $e(async()=>n=await t(),s),await e("END"),n}]},da=async(e,t,n,s,a)=>{const o=[1];await e(Ss+" INTO"+_s(t)+"("+Fs(n,...s)+")VALUES"+Fe(qt(a,e=>"($"+o[0]+++","+zs(e,o)+")"),w)+"ON CONFLICT("+_s(n)+`)DO ${xs} SET`+Fe(ze(s,e=>_s(e)+"=excluded."+_s(e)),w),qt(a,(e,t)=>[t,...ze(e,e=>e??null)]).flat())},ua=(e,t,n,s,a,o,r,[l,i,c],d,u,h,g,p,w)=>{const[m,I,b,y]=ca(t,d,u,a,p,w),v=bs(e,()=>y(async()=>(await m(),yn((await I(l,i))[ys]?.[c]??"null"))),e=>y(async()=>{await m(),await b(l,i,{[ys]:{[c]:bn(e()??null)}},!0,!0)}),n,s,a,r,{[g]:()=>h,destroy:async()=>(await v.stopAutoPersisting(),o(),v)},0,h);return v},ha=(e,t,n,s,a,o,r,[l,i,[c,d,u]],h,g,p,w,m,I,b,y)=>{const[v,f,C,T]=ca(t,h,g,a,m,I,b,y),S=(e,t)=>Ae(Bt(i,async([n,s,a,o,r],l)=>{t&&!Lt(e,l)||await C(n,s,e[l],a,o,t,r)})),R=async(e,t)=>d?await C(u,vs,{[ys]:e},!0,!0,t):null,x=bs(e,()=>T(async()=>{await v();const e=await(async()=>St(je(await Ae(Bt(l,async([e,t,n],s)=>[e,await f(s,t,n)])),e=>!At(e[1]))))(),t=await(async()=>c?(await f(u,vs))[ys]:{})();return At(e)&&Te(t)?void 0:[e,t]}),(e,t)=>T(async()=>{if(await v(),Te(t)){const[t,n]=e();await S(t),await R(n)}else await S(t[0],!0),await R(t[1],!0)}),n,s,a,r,{[w]:()=>p,destroy:async()=>(await x.stopAutoPersisting(),o(),x)},0,p);return x},ga=/^([cd]:)(.+)/,pa=(e,t,n,s,a,o,r,l,i,c,d="getDb")=>{const u=Zs(n,o),[h,,w,m]=ia(t),I=p+fn(bn(w)),b=g+"_"+I,y=async(e,t,n="",s="")=>{const a=Bs(g,e,I);return await u(Ps+Os+Vs+a+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${t}END;$$ LANGUAGE plpgsql;`),a},v=async(e,t,n,s)=>(await u(Ps+e+"TRIGGER"+t+n+"EXECUTE "+Vs+s+"()"),t),C=e=>`PERFORM pg_notify('${b}',${e});`,T=(e,t)=>h?f:2===t?T(e,0)+" OR "+T(e,1):ue(Zt(w[0],e)?.[2]??f,Hs,0==t?"NEW":"OLD"),S=(e,t)=>Ae(ze([Ss,Rs,xs],(n,s)=>v(Os,Bs(g,"d",I,e,n),`AFTER ${n} ON${_s(e)}FOR EACH ROW WHEN(${T(e,s)})`,t)));return(h?ua:ha)(e,u,async e=>{const t=await y("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Cs} command_tag='${$s}' LOOP ${C("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await v("EVENT ",Bs(g,"c",I),`ON ddl_command_end WHEN TAG IN('${$s}')`,t);const n=await y("d",C("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await Ae(ze(gt(m),async e=>(await u($s+` IF NOT EXISTS${_s(e)}("_id"text PRIMARY KEY)`),await S(e,n)))),[await s(b,t=>Se(ce(t,ga),async([,t,s])=>{ut(m,s)&&("c:"==t&&await S(s,n),e())})),[t,n]]},async([e,t])=>{a(e),await u(`DROP FUNCTION IF EXISTS${Fe(t,",")}CASCADE`)},r,l,i,w,gt(m),async(e,t)=>await e(fs+` table_name tn,column_name cn FROM information_schema.columns ${Cs} table_schema='public'AND table_name IN(${zs(t)})`,t),c,d,"text",void 0,e=>wn(e),e=>mn(e))},wa=(e,t,n,s,a,o,r,l,i,c,d="getDb",u)=>{let h,g,w;const m=Zs(n,o),[I,b,y,v]=ia(t);return(I?ua:ha)(e,m,e=>{let t;const n=()=>t=we(()=>$e(async()=>{const[{d:t,s:n,c:s}]=await m(fs+` ${Ms} d,${Es} s,TOTAL_CHANGES() c FROM ${Ns}${Ms} JOIN ${Ns}${Es}`);t==h&&n==g&&s==w||(null!=h&&e(),h=t,g=n,w=s)}),b),o=()=>{h=g=w=null,me(t)},r=s(t=>{v.has(t)&&(o(),e(),n())});return n(),()=>{o(),a(r)}},e=>e(),r,l,i,y,gt(v),async(e,t)=>await e(fs+` t.name tn,c.name cn FROM ${As}list()t,${As}info(t.name)c ${Cs} t.schema='main'AND t.type IN('table','view')AND t.name IN(${zs(t)})ORDER BY t.name,c.name`,t),c,d,p,u,e=>!0===e?1:!1===e?0:e,void 0)},ma=(e,t)=>[e[t].t,e[t].v],Ia=(e,t,n,s)=>{const a=Te(t)?e:$t(e,t,()=>({}));let o;return Nt(n,(e,t)=>{s(a,t,e)&&(o=1)}),Nt(a,(e,t)=>{Lt(n,t)||(kt(a,t),o=1)}),!Te(t)&&At(a)&&kt(e,t),o},ba=(e,t,n=g,s)=>(t.change(e=>$t(e,n,St)),bs(e,async()=>{const e=await t.doc();return 2==Et(e?.[n])?ma(e,n):void 0},async(e,s)=>t.change(t=>((e,t,n,s)=>{((e,t)=>{At(e[t])&&(e[t]={t:{},v:{}})})(e,t);const[a,o]=ma(e,t),r=()=>{l=1};let l=1;if(Se(s,([e,t])=>{l=0,Nt(e,(e,t)=>l?0:Te(e)?kt(a,t):Se(a[t],t=>Nt(e,(e,n)=>l?0:Te(e)?kt(t,n):Se(xt(t,n),t=>Nt(e,(e,n)=>Te(e)?kt(t,n):t[n]=e),r)),r)),Nt(t,(e,t)=>l?0:Te(e)?kt(o,t):o[t]=e)}),l){const[e,t]=n();Ia(a,void 0,e,(e,t,n)=>Ia(a,t,n,(e,t,n)=>Ia(e,t,n,(e,t,n)=>{if(xt(e,t)!==n)return e[t]=n,1}))),Ia(o,void 0,t,(e,t,n)=>{xt(o,t)!==n&&(o[t]=n)})}})(t,n,e,s)),e=>{const s=({doc:t})=>e(ma(t,n));return t.on("change",s),s},e=>{t.removeListener("change",e)},s,1,{getDocHandle:()=>t})),ya="storage",va=(e,t,n,s)=>bs(e,async()=>yn(n.getItem(t)),async e=>n.setItem(t,bn(e())),e=>{const s=s=>{s.storageArea===n&&s.key===t&&$e(()=>e(yn(s.newValue)),e)};return pe.addEventListener(ya,s),s},e=>pe.removeEventListener(ya,e),s,3,{getStorageName:()=>t}),fa=(e,t,n)=>va(e,t,localStorage,n),Ca=(e,t,n)=>va(e,t,sessionStorage,n),Ta=(e,t,n,s,a)=>wa(e,n,async(e,n=[])=>await t.execO(e,n),e=>t.onUpdate((t,n,s)=>e(s)),e=>e(),s,a,Me,1,t),Sa=()=>Jn({},p,0),Ra=(e,t,n=p,s)=>{const a=(e,...t)=>n+e+De(bn(t),1,-1);return bs(e,async()=>{const e=Sa(),s=Sa();return(await t.list({prefix:n})).forEach(async([t,a,o],r)=>Se((e=>{if(le(e,n)){const t=De(e,n.length,1);return t==ae||t==oe?[t,...JSON.parse("["+De(e,n.length+1)+"]")]:void 0}})(r),([n,...r])=>n==ae?Se(r[0],n=>{const s=$t(e[0],n,Sa);Se(r[1],e=>{const n=$t(s[0],e,Sa);Se(r[2],e=>n[0][e]=[t,a,o],()=>Gn(n,a,o))},()=>Gn(s,a,o))},()=>Gn(e,a,o)):n==oe?Se(r[0],e=>s[0][e]=[t,a,o],()=>Gn(s,a,o)):0)),[e,s]},async(e,[[n,s,o],[r,l,i]]=e())=>{const c=Vt();Ft(c,a(ae),[0,s,o]),Dt(n,([e,t,n],s)=>{Ft(c,a(ae,s),[0,t,n]),Dt(e,([e,t,n],o)=>{Ft(c,a(ae,s,o),[0,t,n]),Dt(e,(e,t)=>Ft(c,a(ae,s,o,t),e))})}),Ft(c,a(oe),[0,l,i]),Dt(r,(e,t)=>Ft(c,a(oe,t),e)),await t.put(Ut(c))},Me,Me,s,2,{getStorage:()=>t})},xa=(e,t,n,s,a)=>wa(e,n,async(e,n=[])=>await t.db.raw({sql:e,args:n}),e=>t.notifier.subscribeToDataChanges(n=>Be(t.notifier.alias(n),({tablename:t})=>e(t))),e=>e(),s,a,Me,1,t,"getElectricClient"),La=(t,n,s,a,o)=>wa(t,s,async(e,t=[])=>await n.getAllAsync(e,t),t=>e(({tableName:e})=>t(e)),e=>e.remove(),a,o,Me,3,n),ka=(e,r,l)=>bs(e,async()=>yn(await o(r,S)),async e=>await a(r,bn(e()),S),e=>(t(r)||n(r,p,S),s(r,()=>e())),e=>e?.close(),l,3,{getFilePath:()=>r}),Da=[ae,oe],qa={keyPath:"k"},Na=async(e,t)=>{const n=qt(t,(t,n)=>Ma(e,"put",{k:n,v:t}));ze(await Ma(e,"getAllKeys"),s=>Lt(t,s)?0:Qe(n,Ma(e,"delete",s))),await Ae(n)},Ma=async(e,t,n)=>Ee((s,a)=>{const o=e[t](n);o.onsuccess=()=>s(o.result),o.onerror=()=>a(`objectStore.${t} error`)}),Ea=(e,t,n=1,s)=>{const a=async(e,n=[],s=0)=>Ee((a,o)=>{const r=(pe?pe.indexedDB:indexedDB).open(t,s?2:void 0);r.onupgradeneeded=()=>s&&ze(Da,e=>$e(()=>r.result.createObjectStore(e,qa))),r.onsuccess=()=>$e(async()=>{const t=r.result.transaction(Da,"readwrite"),s=await Ae(ze(Da,(s,a)=>e(t.objectStore(s),n[a])));r.result.close(),a(s)},e=>{r.result.close(),o(e)}),r.onerror=()=>o("indexedDB.open error")});return bs(e,async()=>await a(async e=>St(ze(await Ma(e,"getAll"),({k:e,v:t})=>[e,t]))),e=>a((e,t)=>Na(e,t),e(),1),e=>we(e,n),e=>me(e),s,1,{getDbName:()=>t})},Aa=(e,t,n,s,a)=>wa(e,n,async(e,n=[])=>(await t.execute({sql:e,args:n})).rows,()=>Me,e=>e(),s,a,Me,1,t,"getClient"),Pa="s",$a="/store",Oa=(e,t,n)=>e+t+(xe(n)?n:In(n)),Va=(e,t,n)=>{const s=qe(e);return le(t,e)?[t[s],(n?mn:String)(De(t,s+1))]:void 0},Ha=(e,t,n,s)=>{const{host:a,room:o}=t.partySocketOptions,{storeProtocol:r="https",storePath:l=$a,messagePrefix:i=p}={...xe(n)?{storeProtocol:n}:n},c=r+"://"+a+"/parties/"+t.name+"/"+o+l,d=async e=>await(await fetch(c,{...e?{method:"PUT",body:In(e)}:{},mode:"cors",cache:"no-store"})).json();return bs(e,d,async(e,n)=>{n?t.send(Oa(i,Pa,n)):await d(e())},e=>{const n=t=>Se(Va(i,t.data,1),([t,n])=>{t==Pa&&e(void 0,n)});return t.addEventListener(te,n),n},e=>{t.removeEventListener(te,e)},s,1,{getConnection:()=>t})},Za="hasStore",_a=St(ze(["Origin","Methods","Headers"],e=>["Access-Control-Allow-"+e,"*"])),Ba=async(e,t=p)=>!!await e.get(t+Za),Fa=async(e,t=p)=>{const n={},s={};return _t(await e.list(),(e,a)=>Se(Va(t,e),([e,t])=>{if(e==ae){const[e,s,o]=mn("["+t+"]");$t($t(n,e,St),s,St)[o]=a}else e==oe&&(s[t]=a)})),[n,s]},za=async(e,t,n)=>e.party.broadcast(Oa(e.config.messagePrefix??p,Pa,t),n),Ja=async(e,t,n,s)=>{const a=e.party.storage,o=e.config.storagePrefix??p,r={[o+Za]:1},l=[],i=[];await Ae(qt(t[0],async(t,c)=>Te(t)?!n&&await e.canDelTable(c,s)&&Ke(i,Ua(o,ae,c)):await e.canSetTable(c,n,s)&&await Ae(qt(t,async(t,d)=>Te(t)?!n&&await e.canDelRow(c,d,s)&&Qe(i,Ua(o,ae,c,d)):await e.canSetRow(c,d,n,s)&&await Ae(qt(t,async(t,i)=>{const u=[c,d,i],h=Ua(o,ae,...u);Te(t)?!n&&await e.canDelCell(...u,s)&&Qe(l,h):await e.canSetCell(...u,t,n,s,await a.get(h))&&(r[h]=t)})))))),await Ae(qt(t[1],async(t,i)=>{const c=o+oe+i;Te(t)?!n&&await e.canDelValue(i,s)&&Qe(l,c):await e.canSetValue(i,t,n,s,await a.get(c))&&(r[c]=t)})),Ue(i)||_t(await a.list(),e=>Ve(i,t=>!le(e,t)||Qe(l,e)&&0)),await a.delete(l),await a.put(r)},Ua=(e,t,...n)=>Oa(e,t,De(In(n),1,-1)),Wa=async(e,t,n=null)=>new Response(n,{status:t,headers:e.config.responseHeaders});class ja{constructor(e){this.party=e,this.config.storePath??=$a,this.config.messagePrefix??=p,this.config.storagePrefix??=p,this.config.responseHeaders??=_a}config={};async onRequest(e){const{party:{storage:t},config:{storePath:n=$a,storagePrefix:s}}=this;if(new URL(e.url).pathname.endsWith(n)){const n=await Ba(t,s),a=await e.text();return"PUT"==e.method?n?Wa(this,205):(await Ja(this,mn(a),!0,e),Wa(this,201)):Wa(this,200,n?In(await Fa(t,s)):p)}return Wa(this,404)}async onMessage(e,t){const{config:{messagePrefix:n=p,storagePrefix:s}}=this;await Se(Va(n,e,1),async([e,n])=>{e==Pa&&await Ba(this.party.storage,s)&&(await Ja(this,n,!1,t),za(this,n,[t.id]))})}async canSetTable(e,t,n){return!0}async canDelTable(e,t){return!0}async canSetRow(e,t,n,s){return!0}async canDelRow(e,t,n){return!0}async canSetCell(e,t,n,s,a,o,r){return!0}async canDelCell(e,t,n,s){return!0}async canSetValue(e,t,n,s,a){return!0}async canDelValue(e,t){return!0}}const Ga=async(e,t,n,s,a)=>pa(e,n,async(e,n=[])=>(await t.query(e,n)).rows,(e,n)=>t.listen(e,n),e=>$e(e,a),s,a,Me,3,t,"getPglite"),Qa=async(e,t,n,s,a)=>{const o=await(t.reserve?.());return pa(e,n,o?.unsafe,async(e,n)=>t.listen(e,n),e=>$e(e.unlisten,a),s,a,()=>o?.release?.(),3,t,"getSql")},Ya=(e,t,n,s,a)=>{let o;return wa(e,n,async(e,n=[])=>t.execute(e,n).then(e=>e.rows?._array??[]),e=>{const n=new AbortController,s=t.onChange({rawTableNames:!0,signal:n.signal});return(async()=>{for await(const e of s)o&&ze(e.changedTables,o)})(),o=e,n},e=>{o=void 0,e.abort()},s,a,Me,1,t,"getPowerSync",Ka)},Ka=async(e,t,n,s,a,o)=>{const r=[1],l=Xt(s),i=o?je([...o],e=>e!=n&&!ut(l,e)):[];if(!Ue(i)){const s=Ct(a),o=St(ze(await e(fs+Fs(n,...i)+ks+_s(t)+Cs+_s(n)+"IN("+zs(s)+")",s),e=>[e[n],e]));Be(s,e=>Qe(a[e],...ze(i,t=>o?.[e]?.[t]??null)))}await e(Ss+" "+Os+"INTO"+_s(t)+"("+Fs(n,...s,...i)+")VALUES"+Fe(qt(a,e=>"($"+r[0]+++","+zs(e,r)+")"),w),qt(a,(e,t)=>[t,...ze(e,e=>e??null)]).flat())},Xa=(e,t,n="storage",s)=>bs(e,async()=>{const e=t.getString(n),s=void 0===e?void 0:JSON.parse(e);return Promise.resolve(s)},async e=>{const s=e();void 0!==s&&t.set(n,JSON.stringify(s))},e=>t.addOnValueChangedListener(s=>{if(s===n){const s=t.getString(n);s&&e(JSON.parse(s))}}),e=>{e.remove()},s,3,{getStorageName:()=>n}),eo=(e,t,n,s,a)=>wa(e,n,async(e,n=[])=>(await t.executeSql(e,n))[0].rows.raw(),Me,Me,s,a,Me,3,t),to=e=>e.headers.get("ETag"),no=(e,t,n,s=5,a)=>{let o;return bs(e,async()=>{const e=await fetch(t);return o=to(e),mn(await e.text())},async e=>await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:In(e())}),e=>we(async()=>{const n=await fetch(t,{method:"HEAD"}),s=to(n);Te(o)||Te(s)||s==o||(o=s,e())},s),e=>me(e),a,1,{getUrls:()=>[t,n]})},so=(e,t,n,s,a)=>wa(e,n,async(e,n=[])=>t.query(e).all(...n),()=>Me,e=>e(),s,a,Me,3,t),ao=(e,t,n,s,a,o)=>wa(e,s,async(e,t=[])=>n.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map(e=>({...e})),e=>t.capi.sqlite3_update_hook(n,(t,n,s,a)=>e(a),0),()=>t.capi.sqlite3_update_hook(n,Me,0),a,o,Me,3,n),oo="change",ro=(e,t,n,s,a)=>wa(e,n,async(e,n=[])=>await Ee((s,a)=>t.all(e,n,(e,t)=>e?a(e):s(t))),e=>{const n=(t,n,s)=>e(s);return t.on(oo,n),n},e=>t.off(oo,e),s,a,Me,3,t),lo="delete",io=e=>[e.get(ae),e.get(oe)],co=(e,t,n,s)=>{const a=Te(t)?e:e.get(t)??e.set(t,new r);let o;return Nt(n,(e,t)=>{s(a,t,e)&&(o=1)}),a.forEach((e,t)=>{Lt(n,t)||(a.delete(t),o=1)}),Te(t)||a.size||e.delete(t),o},uo=(e,t,n=g,s)=>{const a=t.getMap(n);return bs(e,async()=>a.size?[a.get(ae).toJSON(),a.get(oe).toJSON()]:void 0,async(e,n)=>t.transact(()=>((e,t,n)=>{e.size||(e.set(ae,new r),e.set(oe,new r));const[s,a]=io(e),o=()=>{l=1};let l=1;if(Se(n,([e,t])=>{l=0,Nt(e,(e,t)=>l?0:Te(e)?s.delete(t):Se(s.get(t),t=>Nt(e,(e,n)=>l?0:Te(e)?t.delete(n):Se(t.get(n),t=>Nt(e,(e,n)=>Te(e)?t.delete(n):t.set(n,e)),o)),o)),Nt(t,(e,t)=>l?0:Te(e)?a.delete(t):a.set(t,e))}),l){const[e,n]=t();co(s,void 0,e,(e,t,n)=>co(s,t,n,(e,t,n)=>co(e,t,n,(e,t,n)=>{if(e.get(t)!==n)return e.set(t,n),1}))),co(a,void 0,n,(e,t,n)=>{a.get(t)!==n&&a.set(t,n)})}})(a,e,n)),e=>{const t=t=>e(void 0,((e,t)=>{if(1==qe(t)&&Ue(t[0].path))return[e.get(ae).toJSON(),e.get(oe).toJSON(),1];const[n,s]=io(e),a={},o={};return Be(t,({path:e,changes:{keys:t}})=>Xe(e)==ae?Se(Xe(e),s=>{const o=$t(a,s,St),r=n.get(s);Se(Xe(e),e=>{const n=$t(o,e,St),s=r.get(e);_t(t,(e,{action:t})=>n[e]=t==lo?null:s.get(e))},()=>_t(t,(e,{action:t})=>o[e]=t==lo?null:r.get(e)?.toJSON()))},()=>_t(t,(e,{action:t})=>a[e]=t==lo?null:n.get(e)?.toJSON())):_t(t,(e,{action:t})=>o[e]=t==lo?null:s.get(e))),[a,o,1]})(a,t));return a.observeDeep(t),t},e=>{a.unobserveDeep(e)},s,1,{getYDoc:()=>t})},ho=sn(e=>{const t=e.createStore,n=t(),s=t(),a=Vt(),{addListener:o,callListeners:r,delListener:l}=s,[i,c,d,u,h,,,g,,w,m,I,b,y]=tn(e,()=>!0,Ne,o,r),v=(e,t,...n)=>Be(n,n=>en(zt(zt(a,t,Vt),e,Xt),n)),f=e=>{Se(Zt(a,e),e=>{_t(e,(e,t)=>wt(t,t=>e.delListener(t))),pt(e)}),Be([s,n],t=>t.delTable(e))},C=(e,t,n)=>v(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener(()=>n.finishTransaction())),T={setQueryDefinition:(t,a,o)=>{g(t,a),f(t);const r=[],l=[[null,[a,null,null,[],Vt()]]],i=[],c=[],d=[];o({select:(e,t)=>{const n=Le(e)?[qe(r)+p,e]:[Te(t)?e:t,n=>n(e,t)];return Qe(r,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=Te(n)||Le(t)?null:t,a=Te(s)?t:n,o=[e,[e,s,Le(a)?a:e=>e(a),[],Vt()]];return Qe(l,o),{as:e=>o[0]=e}},where:(e,t,n)=>Qe(i,Le(e)?e:Te(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,a)=>{const o=[e,[e,Le(t)?[t,n,s,a]:Zt(us,t)??[(e,t)=>t]]];return Qe(c,o),{as:e=>o[0]=e}},having:(e,t)=>Qe(d,Le(e)?e:n=>n(e)===t)});const u=Vt(r);if(ht(u))return T;const h=Vt(l);_t(h,(e,[,t])=>Se(Zt(h,t),({3:t})=>Te(e)?0:Qe(t,e)));const w=Vt(c);let m=n;if(ht(w)&&Ue(d))m=s;else{C(t,m,s);const e=Vt();_t(w,(t,[n,s])=>en(zt(e,n,Xt),[t,s]));const n=Xt();_t(u,t=>ut(e,t)?0:en(n,t));const a=Vt(),o=(n,a,o,r)=>Se(n,([l,i,c,u])=>{_t(a,(t,[n])=>{const s=zt(l,t,Vt),a=Zt(s,o),i=r?void 0:n;if(a!==i){const n=Xt([[a,i]]),r=lt(s);Ft(s,o,i),wt(Zt(e,t),([e,t])=>{const a=hs(u[e],r,s,n,t);u[e]=Te(tt(a))?null:a})}}),ht(i)||!Ve(d,e=>e(e=>u[e]))?s.delRow(t,c):Te(c)?n[2]=s.addRow(t,u):s.setRow(t,c,u)});v(m,t,m.addRowListener(t,null,(s,r,l,i)=>{const c=[],d=[],u=Vt(),h=m.hasRow(t,l);let g=!h;wt(n,e=>{const[n,s,a]=i(t,l,e);Qe(c,s),Qe(d,a),g||=n}),_t(e,e=>{const[n,,s]=i(t,l,e);(g||n)&&Ft(u,e,[s])}),g&&o(Kt(a,c,void 0,([,e])=>(mt(e,l),ht(e))),u,l,1),h&&o(Kt(a,d,()=>{const e={};return wt(n,n=>e[n]=m.getCell(t,l,n)),[Vt(),Xt(),void 0,e]},([,e])=>{en(e,l)}),u,l)}))}C(t,e,m);const I=(n,s,o,r)=>{const l=t=>e.getCell(s,o,t);Be(r,s=>{const[a,,o,r,i]=Zt(h,s),c=o?.(l,n),[d,u]=Zt(i,n)??[];c!=d&&(Te(u)||y(t,u),Ft(i,n,Te(c)?null:[c,...b(t,1,e.addRowListener(a,c,()=>I(n,a,c,r)))]))}),(n=>{const s=(t,s)=>e.getCell(...Te(s)?[a,n,t]:t===a?[a,n,s]:[Zt(h,t)?.[0],Zt(Zt(h,t)?.[4],n)?.[0],s]);m.transaction(()=>Ve(i,e=>e(s))?_t(u,(e,a)=>st(m,t,n,e,a(s,n))):m.delRow(t,n))})(n)},{3:S}=Zt(h,null);return m.transaction(()=>b(t,1,e.addRowListener(a,null,(n,s,o)=>{e.hasRow(a,o)?I(o,a,o,S):(m.delRow(t,o),wt(h,({4:e})=>Se(Zt(e,o),([,n])=>{y(t,n),Ft(e,o)})))}))),T},delQueryDefinition:e=>(f(e),w(e),T),getStore:i,getQueryIds:c,forEachQuery:d,hasQuery:u,getTableId:h,addQueryIdsListener:e=>m(()=>e(T)),delListener:e=>(l(e),T),destroy:I,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...a}=s.getListenerStats();return a}};return Nt({[N]:[1,1],[N+H]:[0,1],[P]:[0,1],[$]:[0,1],[O]:[0,5],[A]:[1,2],[H]:[0,2],[V]:[1,3]},([e,t],n)=>{Be(e?[L,"has","forEach"]:[L],e=>T[e+x+n]=(...t)=>s[e+n](...t)),T[k+x+n+R]=(...e)=>s[k+n+R](...De(e,0,t),(n,...s)=>e[t](T,...s),!0)}),Tt(T)}),go=sn(e=>{const t=Vt(),n=Vt(),s=Vt(),a=Vt(),[o,r,l]=rn(()=>C),[i,c,d,u,h,g,,,w,m,I,b]=tn(e,()=>[Vt(),Vt(),Vt(),Vt()],e=>Te(e)?void 0:e+p,o,r),y=(e,t,n)=>Se(g(e),([s,,a])=>{if(!ut(a,t)){const o=Xt();if(h(e)!=f(e))en(o,t);else{let e=t;for(;!Te(e)&&!ut(o,e);)en(o,e),e=Zt(s,e)}if(n)return o;Ft(a,t,o)}return Zt(a,t)}),v=(e,t)=>Se(g(e),([,,e])=>Ft(e,t)),f=e=>Zt(t,e),C={setRelationshipDefinition:(e,o,l,i)=>(Ft(t,e,l),w(e,o,(t,o)=>{const l=Xt(),i=Xt(),c=Xt(),[d,u]=g(e);wt(o,([t,n],s)=>{Te(t)||(en(i,t),Se(Zt(u,t),e=>{mt(e,s),ht(e)&&Ft(u,t)})),Te(n)||(en(i,n),ut(u,n)||Ft(u,n,Xt()),en(Zt(u,n),s)),en(l,s),Ft(d,s,n),_t(Zt(a,e),t=>{ut(y(e,t),s)&&en(c,t)})}),t(),wt(l,t=>r(n,[e,t])),wt(i,t=>r(s,[e,t])),wt(c,t=>{v(e,t),r(a,[e,t])})},nn(i)),C),delRelationshipDefinition:e=>(Ft(t,e),m(e),C),getStore:i,getRelationshipIds:c,forEachRelationship:t=>d(n=>t(n,t=>e.forEachRow(h(n),t))),hasRelationship:u,getLocalTableId:h,getRemoteTableId:f,getRemoteRowId:(e,t)=>Zt(g(e)?.[0],t),getLocalRowIds:(e,t)=>gt(Zt(g(e)?.[1],t)),getLinkedRowIds:(e,t)=>Te(g(e))?[t]:gt(y(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>o(s,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>o(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(y(e,t),o(n,a,[e,t])),delListener:e=>(v(...l(e)??[]),C),destroy:b,getListenerStats:()=>({remoteRowId:ct(n),localRowIds:ct(s),linkedRowIds:ct(a)})};return Tt(C)}),po={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},wo=(e,t,n,s,a,o,r,l,i={})=>{let c,d=0,u=0,h=0;const g=Vt(),w=()=>pn(11),I=(e,n,s,a)=>{u++,o?.(e,n,s,a),t(e,n,s,a)},b=async(e,t,n,s)=>Ee((o,r)=>{const l=s+m+pn(4),i=Ie(()=>{mt(g,l),r(`No response from ${e??"anyone"} to ${l}, `+t)},a);Ft(g,l,[e,(e,t)=>{clearTimeout(i),mt(g,l),o([e,t,s])}]),I(e,l,t,n)}),y=(e,[t,n])=>{Dt(t,([t,n],s)=>{const a=$t(e[0],s,Qn);Dt(t,([e,t],n)=>{const s=$t(a[0],n,Qn);Dt(e,([e,t],n)=>s[0][n]=zn(e,t)),s[1]=jn(s[1],t)}),a[1]=jn(a[1],n)}),e[1]=jn(e[1],n)},v=(t=null,n,s=w())=>$e(async()=>{Te(n)&&([n,t,s]=await b(null,1,p,s));const[a,o]=n,[r,l]=e.getMergeableContentHashes();let i=Qn();if(r!=a){const[n,a]=(await b(t,4,e.getMergeableTableHashes(),s))[0];if(i=n,!At(a)){const[n,o]=(await b(t,5,e.getMergeableRowHashes(a),s))[0];if(y(i,n),!At(o)){const n=(await b(t,6,e.getMergeableCellHashes(o),s))[0];y(i,n)}}}return[i,l==o?Qn():(await b(t,7,e.getMergeableValueHashes(),s))[0],1]},l),f=bs(e,async()=>{const e=await v();return!e||At(e[0][0])&&At(e[1][0])?void 0:e},async(t,n)=>n?I(null,w(),3,n):I(null,w(),2,e.getMergeableContentHashes()),e=>c=e,()=>c=void 0,l,2,{startSync:async e=>(d=1,await f.startAutoPersisting(e)),stopSync:async()=>(d=0,await f.stopAutoPersisting(),f),destroy:async()=>(await f.stopSync(),s(),f),getSynchronizerStats:()=>({sends:u,receives:h}),...i},1);return n((t,n,s,a)=>{const o=d||f.isAutoLoading();h++,r?.(t,n,s,a),0==s?Se(Zt(g,n),([e,n])=>Te(e)||e==t?n(a,t):0):2==s&&o?v(t,a,n??void 0).then(e=>{c?.(void 0,e)}).catch(l):3==s&&o?c?.(void 0,a):Se(1==s&&(d||f.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(a):5==s?e.getMergeableRowDiff(a):6==s?e.getMergeableCellDiff(a):7==s?e.getMergeableValueDiff(a):void 0,e=>{I(t,n,0,e)})}),f},mo=(e,t,n,s,a)=>{const o=pn(),r=new BroadcastChannel(t);return wo(e,(e,t,n,s)=>r.postMessage([o,e,t,n,s]),e=>{r.onmessage=({data:[t,n,s,a,r]})=>Te(n)||n==o?e(t,s,a,r):0},()=>{r.close()},.01,n,s,a,{getChannelName:()=>t})},Io=Vt(),bo=(e,t,n,s)=>{const a=pn();return wo(e,(e,t,n,s)=>Ie(()=>Te(e)?_t(Io,(e,o)=>e!=a?o(a,t,n,s):0):Zt(Io,e)?.(a,t,n,s)),e=>{Ft(Io,a,e)},()=>{mt(Io,a)},.01,t,n,s)},yo=(e,t)=>{const n=e.indexOf("\n");-1!==n&&t(De(e,0,n),De(e,n+1))},vo=(e,t)=>yo(e,(e,n)=>t(e,...yn(n))),fo=(e,...t)=>Co(e??p,bn(t)),Co=(e,t)=>e+"\n"+t,To=async(e,t,n=1,s,a,o)=>{const r=(e,n)=>(t.addEventListener(e,n),()=>t.removeEventListener(e,n)),l=wo(e,(e,...n)=>t.send(fo(e,...n)),e=>r(te,({data:t})=>vo(t.toString(S),e)),()=>{t.close()},n,s,a,o,{getWebSocket:()=>t});return Ee(e=>{if(t.readyState!=t.OPEN){const t=t=>{t&&o?.(t),n(),s(),e(l)},n=r("open",()=>t()),s=r(ne,t)}else e(l)})},So=/\/([^?]*)/,Ro="S",xo=e=>ce(new URL(e.url).pathname,So)?.[1]??p,Lo=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,ko=(e,t=null,n=null)=>new Response(n,{status:e,webSocket:t}),Do=()=>ko(426,null,"Upgrade required");class qo extends l{#e;constructor(e,t){super(e,t),this.ctx.blockConcurrencyWhile(async()=>await Se(await this.createPersister(),async e=>{const t=wo(e.getStore(),(e,t,n,s)=>this.#t(Ro,fo(e,t,n,s)),e=>this.#e=t=>vo(t,e),Me,1);await e.load(),await e.startAutoSave(),Ie(t.startSync)}))}fetch(e){const t=