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