UNPKG

tinybase

Version:

A reactive data store and sync engine.

1 lines 83.6 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(bn(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,{getWebSocket:()=>t});return Pe(e=>{if(t.readyState!=t.OPEN){const t=t=>{t&&r?.(t),n(),s(),e(i)},n=o("open",()=>t()),s=o(ne,t)}else e(i)})},fr=/\/([^?]*)/,Cr="S",vr=e=>le(new URL(e.url).pathname,fr)?.[1]??w,Sr=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,Rr=(e,t=null,n=null)=>new Response(n,{status:e,webSocket:t}),Tr=()=>Rr(426,null,"Upgrade required");class xr extends i{#e;constructor(e,t){super(e,t),this.ctx.blockConcurrencyWhile(async()=>await Se(await this.createPersister(),async e=>{const t=ur(e.getStore(),(e,t,n,s)=>this.#t(Cr,Ir(e,t,n,s)),e=>this.#e=t=>pr(t,e),Me,1);await e.load(),await e.startAutoSave(),pe(t.startSync)}))}fetch(e){const t=vr(e);return Se(Sr(e),e=>{const[n,s]=Mt(new WebSocketPair);return We(this.#n())&&this.onPathId(t,1),this.ctx.acceptWebSocket(s,[e,t]),this.onClientId(t,e,1),s.send(Ir(Cr,null,1,w)),Rr(101,n)},Tr)}webSocketMessage(e,t){Se(this.ctx.getTags(e)[0],n=>this.#t(n,t.toString(),e))}webSocketClose(e){const[t,n]=this.ctx.getTags(e);this.onClientId(n,t,-1),1==Ee(this.#n())&&this.onPathId(n,-1)}#t(e,t,n){mr(t.toString(),(t,s)=>{const a=br(e,s);t