UNPKG

tinybase

Version:

A reactive data store and sync engine.

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