tinybase
Version:
A reactive data store and sync engine.
1 lines • 95.9 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=e=>new Map(e),jt=e=>[...e?.keys()??[]],Gt=(e,t)=>e?.get(t),Qt=(e,t)=>St(e,(e,n)=>t(n,e)),Yt=(e,t)=>Xe([...e?.entries()??[]],([e,n])=>t(n,e)),Kt=(e,t,n)=>xe(n)?(Rt(e,t),e):e?.set(t,n),Xt=(e,t,n,s)=>(yt(e,t)?s?.(Gt(e,t)):Kt(e,t,n()),Gt(e,t)),en=(e,t,n,s=Kt)=>(Zt(t,(t,s)=>n(e,s,t)),Qt(e,n=>$t(t,n)?0:s(e,n)),e),tn=(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},nn=(e,t,n)=>tn(e,e=>tn(e,t,n),ft,Bt),sn=(e,t,n)=>tn(e,e=>nn(e,t,n),ft,Bt),an=(e,t)=>{const n=Wt();return St(e,(e,s)=>n.set(s,t?.(e)??e)),n},on=e=>an(e,an),rn=e=>an(e,on),ln=(e,t,n,s,a=0)=>Ne((n?Xt:Gt)(e,t[a],a>Ve(t)-2?n:Wt),o=>{if(a>Ve(t)-2)return s?.(o)&&Kt(e,t[a]),o;const r=ln(o,t,n,s,a+1);return ft(o)&&Kt(e,t[a]),r}),cn=e=>new Set(Ae(e)||xe(e)?e:[e]),dn=(e,t)=>e?.add(t),un=(e,t,n,s,a)=>{const o=e.hasRow,r=Wt(),l=Wt(),i=Wt(),c=Wt(),d=Wt(),u=Wt(),h=(t,n,...s)=>{const a=Xt(u,t,cn);return Ye(s,t=>dn(a,t)&&n&&e.callListener(t)),s},g=(t,...n)=>Ne(Gt(u,t),s=>{Ye(tt(n)?Ct(s):n,t=>{e.delListener(t),Rt(s,t)}),ft(s)&&Kt(u,t)}),m=(e,n)=>{Kt(r,e,n),yt(l,e)||(Kt(l,e,t()),Kt(c,e,Wt()),Kt(d,e,Wt()),a(i))},w=e=>{Kt(r,e),Kt(l,e),Kt(c,e),Kt(d,e),g(e),a(i)};return[()=>e,()=>jt(r),e=>Qt(l,e),e=>yt(l,e),e=>Gt(r,e),e=>Gt(l,e),(e,t)=>Kt(l,e,t),m,(t,s,a,r,l)=>{m(t,s);const i=Wt(),u=Wt(),w=Gt(c,t),p=Gt(d,t),I=t=>{const a=n=>e.getCell(s,t,n),c=Gt(w,t),d=o(s,t)?n(r(a,t)):void 0;if(c===d||Ae(c)&&Ae(d)&&We(c,d)||Kt(i,t,[c,d]),!xe(l)){const e=Gt(p,t),n=o(s,t)?l(a,t):void 0;e!=n&&Kt(u,t,n)}},b=e=>{a(()=>{St(i,([,e],t)=>Kt(w,t,e)),St(u,(e,t)=>Kt(p,t,e))},i,u,w,p,e),Tt(i),Tt(u)};Qt(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),()=>Qt(u,w),h,g]},hn=(e,t)=>Ee(e)?t=>t(e):e??(()=>t??m),gn=(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}},mn=/^\d+$/,wn=()=>{const e=[];let t=0;return[n=>(n?it(e):null)??m+t++,t=>{mn.test(t)&&Ve(e)<1e3&&ot(e,t)}]},pn=e=>{let t;const[n,s]=wn(),a=Wt();return[(s,o,r,l=[],i=()=>[])=>{t??=e();const c=n(1);return Kt(a,c,[s,o,r,l,i]),dn(ln(o,r??[m],cn),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(Gt(e,t),a+1));return s(e,0),n})(e,n),e=>St(e,e=>Gt(a,e)[0](t,...n??[],...s))),e=>Ne(Gt(a,e),([,t,n])=>(ln(t,n??[m],void 0,t=>(Rt(t,e),ft(t)?1:0)),Kt(a,e),s(e),n)),e=>Ne(Gt(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()})]},In=gn(e=>{let t,n,s,a=100,o=Wt(),r=Wt(),l=1;const i=Wt(),c=Wt(),[d,u,h]=pn(()=>E),g=Wt(),w=Wt(),p=[],I=[],b=(t,n)=>{l=0,e.transaction(()=>{const[s,a]=Gt(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=>{Kt(g,e),Kt(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++,Kt(g,t,[o,r]),N(t,e),o=Wt(),r=Wt(),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)&&Gt(w,e)!==t&&(Kt(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=>Qt(w,e),hasCheckpoint:M,getCheckpoint:e=>Gt(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=Xt(o,t,Wt),l=Xt(e,n,Wt),i=Xt(l,s,()=>[r,void 0]);i[1]=a,i[0]===a&&ft(Kt(l,s))&&ft(Kt(e,n))&&ft(Kt(o,t))&&T(),D()}}),R=e.addValueListener(null,(e,t,n,s)=>{if(l){C();const e=Xt(r,t,()=>[s,void 0]);e[1]=n,e[0]===n&&ft(Kt(r,t))&&T(),D()}})}};return Mt(E.clear())},e=>e._registerListeners()),bn=ue("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),vn=Wt(Xe(bn,(e,t)=>[e,t])),yn=e=>bn[63&e],fn=(e,t)=>Gt(vn,e[t])??0,Cn=we.crypto?e=>we.crypto.getRandomValues(e):e=>Xe(e,()=>Te(256*ye.random())),Tn=(e=16)=>nt(Cn(new Uint8Array(e)),(e,t)=>e+yn(t),m),Sn=JSON.stringify,Rn=JSON.parse,xn=e=>Sn(e,(e,t)=>t instanceof Map?xt.fromEntries([...t]):t),Ln=e=>Sn(e,(e,t)=>xe(t)?"":t),kn=e=>Rn(e,(e,t)=>""===t?void 0:t),Dn=new we.TextEncoder,qn=e=>{let t=2166136261;return Ye(Dn.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Nn=(e,t)=>(e^t)>>>0,Mn=e=>nt(Dt(e),(e,[t,n])=>Nn(e,En(t,n)^En(t,0)),0),En=(e,t)=>qn(e+":"+t),Pn=(e,t)=>qn(xn(e??null)+":"+t),An=Pn,$n=En,Vn=Mn,On=En,Hn=e=>nt(Dt(e),(e,[t,n])=>Nn(e,En(t,n)),0),Zn=En,_n=Hn,Fn=2**36,Bn=2**30,zn=2**24,Jn=2**18,Un=4096,Wn=e=>{const t=qn(e);return yn(t/zn)+yn(t/Jn)+yn(t/Un)+yn(t/64)+yn(t)},jn=(e,t=Date.now)=>{let n=0,s=-1;const a=Ne(e,Wn,()=>Tn(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)=>yn(e/Fn)+yn(e/Bn)+yn(e/zn)+yn(e/Jn)+yn(e/Un)+yn(e/64)+yn(e)+yn(t/Jn)+yn(t/Un)+yn(t/64)+yn(t)+(xe(n)?a:Wn(n)),l=e=>[fn(e,0)*Fn+fn(e,1)*Bn+fn(e,2)*zn+fn(e,3)*Jn+fn(e,4)*Un+64*fn(e,5)+fn(e,6),fn(e,7)*Jn+fn(e,8)*Un+64*fn(e,9)+fn(e,10),e.slice(11)];return[()=>(o(),r(n,++s)),o,r,l,()=>n,()=>s,()=>a]},Gn=(e,t)=>(e??0)<(t??0)?-1:1,Qn=gn(e=>{const t=Wt(),n=Wt(),[s,a,o]=pn(()=>v),[r,l,i,c,d,u,h,,g,w,p,I]=un(e,Wt,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=Gn)=>{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=cn(),I=cn(),b=u(e);if(St(o,([e,t],n)=>{const s=cn(e),a=cn(t);St(s,e=>Rt(a,e)?Rt(s,e):0),St(s,e=>{dn(p,e),Ne(Gt(b,e),t=>{Rt(t,n),ft(t)&&(Kt(b,e),w=1)})}),St(a,e=>{dn(p,e),yt(b,e)||(Kt(b,e,cn()),w=1),dn(Gt(b,e),n),xe(r)||dn(I,e)})}),s(),ft(g)||(m?Qt(b,e=>dn(I,e)):Qt(l,e=>Ne(Gt(d,e),e=>Ye(Ae(e)?e:[e],e=>dn(I,e)))),St(I,e=>{const t=(t,n)=>i(Gt(g,t),Gt(g,n),e),n=[...Gt(b,e)];Ge(n,t)||(Kt(b,e,cn(Qe(n,t))),dn(p,e))})),(w||m)&&!xe(c)){const t=[...b];Ge(t,c)||(h(e,Wt(Qe(t,c))),w=1)}w&&a(t,[e]),St(p,t=>a(n,[e,t]))},hn(o),Ne(r,hn)),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=>jt(u(e)),getSliceRowIds:(e,t)=>Ct(Gt(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)}),Yn=([e,t])=>Xn(e,t),Kn=([e,t,n])=>[e,t,n],Xn=(e,t)=>t?[e,t]:[e],es=(e,t,n)=>[e,t,n],ts=e=>e[2],ns=(e,t)=>t>e?(e?qn(e):0)^qn(t):0,ss=(e,t)=>((e??"")>(t??"")?e:t)??"",as=(e,t,n)=>{t>e[1]&&(e[1]=t),e[2]=n>>>0},os=(e=m)=>Xn(Et(),e),rs=(e=m)=>[Wt(),e,0],ls=([e,t,n],s=Kn)=>[tn(e,s),t,n],is=([e,t],n=Yn)=>Xn(tn(e,n),t),cs=(e,t)=>Ae(e)&&3==Ve(e)&&Ee(e[1])&&h(e[2])==v&&Se(e[2])&&t(e[0]),ds=e=>[e,e],us=(e,t=It)=>t(e[0])+t(e[1]),hs=()=>[Wt(),Wt()],gs=e=>[...e],ms=([e,t])=>e===t,ws=(e,t,n)=>Kt(e,t,Gt(e,t)==-n?void 0:n),ps=()=>{let e,t,n=!1,s=!1,a=0,o=[];const r=Wt(),l=Wt(),i=Wt(),c=Wt(),d=Wt(),u=Wt(),h=Wt(),g=Wt(),m=Wt(),w=Wt(),p=Wt(),I=Wt(),b=Wt(),y=Wt(),f=cn(),R=Wt(),L=Wt(),k=Wt(),N=Wt(),O=hs(),z=hs(),J=hs(),U=hs(),W=hs(),j=hs(),G=hs(),Q=hs(),Y=hs(),K=hs(),X=hs(),ee=hs(),te=hs(),ne=hs(),se=hs(),ae=hs(),oe=hs(),re=hs(),ie=hs(),ce=hs(),de=hs(),ue=hs(),he=Wt(),ge=hs(),[me,we,pe,Ie]=pn(()=>On),be=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))},ve=Ae,ye=(t,n)=>(!e||yt(p,n)||ct(n))&&Ut(t,(e,t)=>fe(n,t,e),()=>ct(n)),fe=(e,t,n,s)=>Ut(s?n:Re(n,e,t),(s,a)=>Ne(Ce(e,t,a,s),e=>(n[a]=e,!0),()=>!1),()=>ct(e,t)),Ce=(t,n,s,a)=>e?Ne(Gt(Gt(p,t),s),e=>Le(a)?e[S]?a:ct(t,n,s,a,e[T]):dt(a)==e[C]?a:ct(t,n,s,a,e[T]),()=>ct(t,n,s,a)):xe(dt(a))?ct(t,n,s,a):a,Te=(e,t)=>Ut(t?e:ke(e),(t,n)=>Ne(Se(n,t),t=>(e[n]=t,!0),()=>!1),()=>ut()),Se=(e,n)=>t?Ne(Gt(b,e),t=>Le(n)?t[S]?n:ut(e,n,t[T]):dt(n)==t[C]?n:ut(e,n,t[T]),()=>ut(e,n)):xe(dt(n))?ut(e,n):n,Re=(e,t,n)=>(Ne(Gt(I,t),([s,a])=>{St(s,(t,n)=>{$t(e,n)||(e[n]=t)}),St(a,s=>{$t(e,s)||ct(t,n,s)})}),e),ke=e=>(t&&(St(y,(t,n)=>{$t(e,n)||(e[n]=t)}),St(f,t=>{$t(e,t)||ut(t)})),e),De=e=>en(p,e,(e,t,n)=>{const s=Wt(),a=cn();en(Xt(p,t,Wt),n,(e,t,n)=>{Kt(e,t,n),Ne(n[T],e=>Kt(s,t,e),()=>dn(a,t))}),Kt(I,t,[s,a])},(e,t)=>{Kt(p,t),Kt(I,t)}),qe=e=>en(b,e,(e,t,n)=>{Kt(b,t,n),Ne(n[T],e=>Kt(y,t,e),()=>dn(f,t))},(e,t)=>{Kt(b,t),Kt(y,t),Rt(f,t)}),Ee=e=>Bt(e)?Dn():Cn(e),Ve=e=>en(k,e,(e,t,n)=>Oe(t,n),(e,t)=>Ge(t)),Oe=(e,t)=>en(Xt(k,e,()=>(nt(e,1),Kt(R,e,wn()),Kt(L,e,Wt()),Wt())),t,(t,n,s)=>He(e,t,n,s),(t,n)=>Ke(e,t,n)),He=(e,t,n,s,a)=>en(Xt(t,n,()=>(st(e,n,1),Wt())),s,(t,s,a)=>Ze(e,n,t,s,a),(s,o)=>et(e,t,n,s,o,a)),Ze=(e,t,n,s,a)=>{yt(n,s)||at(e,t,s,1);const o=Gt(n,s);a!==o&&(rt(e,t,s,o,a),Kt(n,s,a))},_e=(e,t,n,s,a)=>Ne(Gt(t,n),t=>Ze(e,n,t,s,a),()=>He(e,t,n,Re({[s]:a},e,n))),Fe=e=>Bt(e)?Mn():Tn(e),Be=e=>en(N,e,(e,t,n)=>Ue(t,n),(e,t)=>tt(t)),Ue=(e,t)=>{yt(N,e)||lt(e,1);const n=Gt(N,e);t!==n&&(it(e,n,t),Kt(N,e,t))},je=e=>Gt(k,e)??Oe(e,{}),Ge=e=>Oe(e,{}),Ke=(e,t,n)=>{const[,s]=Gt(R,e);s(n),He(e,t,n,{},!0)},et=(e,t,n,s,a,o)=>{const r=Gt(Gt(I,e)?.[0],a);if(!xe(r)&&!o)return Ze(e,n,s,a,r);const l=t=>{rt(e,n,t,Gt(s,t)),at(e,n,t,-1),Kt(s,t)};xe(r)?l(a):Qt(s,l),ft(s)&&(st(e,n,-1),ft(Kt(t,n))&&(nt(e,-1),Kt(k,e),Kt(R,e),Kt(L,e)))},tt=e=>{const t=Gt(y,e);if(!xe(t))return Ue(e,t);it(e,Gt(N,e)),lt(e,-1),Kt(N,e)},nt=(e,t)=>ws(r,e,t),st=(e,t,n)=>ws(Xt(c,e,Wt),t,n)&&Kt(i,e,Xt(i,e,()=>0)+n),at=(e,t,n,s)=>{const a=Gt(L,e),o=Gt(a,n)??0;(0==o&&1==s||1==o&&-1==s)&&ws(Xt(l,e,Wt),n,s),Kt(a,n,o!=-s?o+s:void 0),ws(Xt(Xt(d,e,Wt),t,Wt),n,s)},rt=(e,t,n,s,a)=>{Xt(Xt(Xt(u,e,Wt),t,Wt),n,()=>[s,0])[1]=a,o[3]?.(e,t,n,a)},lt=(e,t)=>ws(h,e,t),it=(e,t,n)=>{Xt(g,e,()=>[t,0])[1]=n,o[4]?.(e,n)},ct=(e,t,n,s,a)=>(ot(Xt(Xt(Xt(m,e,Wt),t,Wt),n,()=>[]),s),a),ut=(e,t,n)=>(ot(Xt(w,e,()=>[]),t),n),mt=(e,t,n)=>Ne(Gt(Gt(Gt(u,e),t),n),([e,t])=>[!0,e,t],()=>[!1,...ds(Jt(e,t,n))]),wt=e=>Ne(Gt(g,e),([e,t])=>[!0,e,t],()=>[!1,...ds(hn(e))]),Ct=e=>ft(m)||ft(ae[e])?0:St(e?rn(m):m,(t,n)=>St(t,(t,s)=>St(t,(t,a)=>we(ae[e],[n,s,a],t)))),xt=e=>ft(w)||ft(oe[e])?0:St(e?an(w):w,(t,n)=>we(oe[e],[n],t)),Lt=(e,t,n,s)=>{if(!ft(e))return we(t,s,()=>tn(e)),Qt(e,(e,t)=>we(n,[...s??[],e],1==t)),1},kt=e=>{const t=gn();t!=n&&we(O[e],void 0,t);const s=ft(K[e]),a=ft(te[e])&&ft(ne[e])&&ft(Y[e])&&ft(X[e])&&ft(j[e])&&ft(G[e])&&ft(Q[e])&&s&&ft(J[e])&&ft(U[e]),o=ft(se[e])&&ft(ee[e])&&ft(W[e])&&ft(z[e]);if(!a||!o){const t=e?[an(r),on(l),an(i),on(c),rn(d),rn(u)]:[r,l,i,c,d,u];if(!a){Lt(t[0],J[e],U[e]),St(t[1],(t,n)=>Lt(t,j[e],G[e],[n])),St(t[2],(t,n)=>{0!=t&&we(Q[e],[n],Ht(n))});const n=cn();St(t[3],(t,a)=>{Lt(t,Y[e],X[e],[a])&&!s&&(we(K[e],[a,null]),dn(n,a))}),s||St(t[5],(t,s)=>{if(!yt(n,s)){const n=cn();St(t,e=>St(e,([t,s],a)=>s!==t?dn(n,a):Rt(e,a))),St(n,t=>we(K[e],[s,t]))}}),St(t[4],(t,n)=>St(t,(t,s)=>Lt(t,te[e],ne[e],[n,s])))}if(!o){let n;St(t[5],(t,s)=>{let a;St(t,(t,o)=>{let r;St(t,([t,l],i)=>{l!==t&&(we(se[e],[s,o,i],l,t,mt),n=a=r=1)}),r&&we(ee[e],[s,o],mt)}),a&&we(W[e],[s],mt)}),n&&we(z[e],void 0,mt)}}},Dt=e=>{const t=yn();t!=s&&we(re[e],void 0,t);const n=ft(ce[e])&&ft(de[e]),a=ft(ue[e])&&ft(ie[e]);if(!n||!a){const t=e?[an(h),an(g)]:[h,g];if(n||Lt(t[0],ce[e],de[e]),!a){let n;St(t[1],([t,s],a)=>{s!==t&&(we(ue[e],[a],s,t,wt),n=1)}),n&&we(ie[e],void 0,wt)}}},Nt=(e,...t)=>(An(()=>e(...Xe(t,le))),On),Et=(e,t,n,s,a)=>{let o=Ft(e,t,...n);return me(()=>{const a=Ft(e,t,...n);We(a,o)||(o=a,s(On,e,t,...n,o))},K[a?1:0],[e,t],[At])},Pt=()=>sn(k),At=()=>jt(k),Ot=e=>jt(Gt(L,le(e))),Ht=e=>pt(Gt(k,le(e))),_t=e=>jt(Gt(k,le(e))),Ft=(e,t,n,s=0,a)=>qt(e)?Ft(e.tableId,e.cellId,e.descending,e.offset,e.limit):Xe($e(Qe(Yt(Gt(k,le(e)),(e,n)=>[xe(t)?n:Gt(e,le(t)),n]),([e],[t])=>Gn(e,t)*(n?-1:1)),s,xe(a)?a:s+a),([,e])=>e),zt=(e,t)=>jt(Gt(Gt(k,le(e)),le(t))),Jt=(e,t,n)=>Gt(Gt(Gt(k,le(e)),le(t)),le(n)),ln=()=>tn(N),un=()=>jt(N),hn=e=>Gt(N,le(e)),gn=()=>!ft(k),mn=e=>yt(k,le(e)),In=(e,t)=>yt(Gt(L,le(e)),le(t)),bn=(e,t)=>yt(Gt(k,le(e)),le(t)),vn=(e,t,n)=>yt(Gt(Gt(k,le(e)),le(t)),le(n)),yn=()=>!ft(N),fn=e=>yt(N,le(e)),Cn=e=>Nt(()=>(e=>Ut(e,ye,ct))(e)?Ve(e):0),Tn=e=>Nt(()=>Te(e)?Be(e):0),Sn=e=>(ze(()=>Ee(Rn(e))),On),Ln=t=>Nt(()=>{if((e=Ut(t,e=>Ut(e,be)))&&(De(t),!ft(k))){const e=Pt();Dn(),Cn(e)}}),kn=e=>Nt(()=>{if(t=(e=>Ut(e,be))(e)){const n=ln();Pn(),Mn(),t=!0,qe(e),Tn(n)}}),Dn=()=>Nt(()=>Ve({})),qn=e=>Nt(e=>yt(k,e)?Ge(e):0,e),Nn=(e,t)=>Nt((e,t)=>Ne(Gt(k,e),n=>yt(n,t)?Ke(e,n,t):0),e,t),Mn=()=>Nt(()=>Be({})),En=()=>Nt(()=>{De({}),e=!1}),Pn=()=>Nt(()=>{qe({}),t=!1}),An=(e,t)=>{if(-1!=a){$n();const n=e();return Vn(t),n}},$n=()=>(-1!=a&&a++,1==a&&(o[0]?.(),we(he)),On),Vn=e=>(a>0&&(a--,0==a&&(a=1,Ct(1),ft(u)||kt(1),xt(1),ft(g)||Dt(1),e?.(On)&&(St(u,(e,t)=>St(e,(e,n)=>St(e,([e],s)=>ht(On,t,n,s,e)))),Tt(u),St(g,([e],t)=>gt(On,t,e)),Tt(g)),we(ge[0],void 0),a=-1,Ct(0),ft(u)||kt(0),xt(0),ft(g)||Dt(0),o[1]?.(),we(ge[1],void 0),o[2]?.(),a=0,n=gn(),s=yn(),Ye([r,l,i,c,d,u,m,h,g,w],Tt))),On),On={getContent:()=>[Pt(),ln()],getTables:Pt,getTableIds:At,getTable:e=>nn(Gt(k,le(e))),getTableCellIds:Ot,getRowCount:Ht,getRowIds:_t,getSortedRowIds:Ft,getRow:(e,t)=>tn(Gt(Gt(k,le(e)),le(t))),getCellIds:zt,getCell:Jt,getValues:ln,getValueIds:un,getValue:hn,hasTables:gn,hasTable:mn,hasTableCell:In,hasRow:bn,hasCell:vn,hasValues:yn,hasValue:fn,getTablesJson:()=>xn(k),getValuesJson:()=>xn(N),getJson:()=>xn([k,N]),getTablesSchemaJson:()=>xn(p),getValuesSchemaJson:()=>xn(b),getSchemaJson:()=>xn([p,b]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>Nt(()=>{const t=Pe(e)?e():e;ve(t)&&(([e,t])=>{(Bt(e)?Dn:Cn)(e),(Bt(t)?Mn:Tn)(t)})(t)}),setTables:Cn,setTable:(e,t)=>Nt(e=>ye(t,e)?Oe(e,t):0,e),setRow:(e,t,n)=>Nt((e,t)=>fe(e,t,n)?He(e,je(e),t,n):0,e,t),addRow:(e,t,n=!0)=>An(()=>{let s;return fe(e,s,t)&&(e=le(e),He(e,je(e),s=((e,t)=>{const[n]=Gt(R,e);let s;do{s=n(t)}while(yt(Gt(k,e),s));return s})(e,n?1:0),t)),s}),setPartialRow:(e,t,n)=>Nt((e,t)=>{if(fe(e,t,n,1)){const s=je(e);Zt(n,(n,a)=>_e(e,s,t,a,n))}},e,t),setCell:(e,t,n,s)=>Nt((e,t,n)=>Ne(Ce(e,t,n,Pe(s)?s(Jt(e,t,n)):s),s=>_e(e,je(e),t,n,s)),e,t,n),setValues:Tn,setPartialValues:e=>Nt(()=>Te(e,1)?Zt(e,(e,t)=>Ue(t,e)):0),setValue:(e,t)=>Nt(e=>Ne(Se(e,Pe(t)?t(hn(e)):t),t=>Ue(e,t)),e),applyChanges:e=>Nt(()=>{Zt(e[0],(e,t)=>xe(e)?qn(t):Zt(e,(e,n)=>xe(e)?Nn(t,n):Zt(e,(e,s)=>ht(On,t,n,s,e)))),Zt(e[1],(e,t)=>gt(On,t,e))}),setTablesJson:Sn,setValuesJson:e=>(ze(()=>Fe(Rn(e))),On),setJson:e=>Nt(()=>ze(()=>{const[t,n]=Rn(e);Ee(t),Fe(n)},()=>Sn(e))),setTablesSchema:Ln,setValuesSchema:kn,setSchema:(e,t)=>Nt(()=>{Ln(e),kn(t)}),delTables:Dn,delTable:qn,delRow:Nn,delCell:(e,t,n,s)=>Nt((e,t,n)=>Ne(Gt(k,e),a=>Ne(Gt(a,t),o=>yt(o,n)?et(e,a,t,o,n,s):0)),e,t,n),delValues:Mn,delValue:e=>Nt(e=>yt(N,e)?tt(e):0,e),delTablesSchema:En,delValuesSchema:Pn,delSchema:()=>Nt(()=>{En(),Pn()}),transaction:An,startTransaction:$n,getTransactionChanges:()=>[tn(u,(e,t)=>-1===Gt(r,t)?void 0:tn(e,(e,n)=>-1===Gt(Gt(c,t),n)?void 0:tn(e,([,e])=>e,e=>ms(e)),ft,Bt),ft,Bt),tn(g,([,e])=>e,e=>ms(e)),1],getTransactionLog:()=>[!ft(u),!ft(g),sn(u,gs,ms),sn(m),tn(g,gs,ms),tn(w),tn(r),nn(c),sn(d),tn(h)],finishTransaction:Vn,forEachTable:e=>St(k,(t,n)=>e(n,e=>St(t,(t,n)=>e(n,e=>Qt(t,e))))),forEachTableCell:(e,t)=>Qt(Gt(L,le(e)),t),forEachRow:(e,t)=>St(Gt(k,le(e)),(e,n)=>t(n,t=>Qt(e,t))),forEachCell:(e,t,n)=>Qt(Gt(Gt(k,le(e)),le(t)),n),forEachValue:e=>Qt(N,e),addSortedRowIdsListener:(e,t,n,s,a,o,r)=>qt(e)?Et(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,n):Et(e,t,[n,s,a],o,r),addStartTransactionListener:e=>me(e,he),addWillFinishTransactionListener:e=>me(e,ge[0]),addDidFinishTransactionListener:e=>me(e,ge[1]),callListener:e=>(Ie(e),On),delListener:e=>(pe(e),On),getListenerStats:()=>({hasTables:us(O),tables:us(z),tableIds:us(J),hasTable:us(U),table:us(W),tableCellIds:us(j),hasTableCell:us(G,bt),rowCount:us(Q),rowIds:us(Y),sortedRowIds:us(K),hasRow:us(X,bt),row:us(ee,bt),cellIds:us(te,bt),hasCell:us(ne,vt),cell:us(se,vt),invalidCell:us(ae,vt),hasValues:us(re),values:us(ie),valueIds:us(ce),hasValue:us(de),value:us(ue),invalidValue:us(oe),transaction:It(he)+us(ge)}),isMergeable:()=>!1,createStore:ps,addListener:me,callListeners:we,setInternalListeners:(e,t,n,s,a)=>o=[e,t,n,s,a]};return Zt({[q+E]:[0,O,[],()=>[gn()]],[E]:[0,z],[P]:[0,J],[q+M]:[1,U,[At],e=>[mn(...e)]],[M]:[1,W,[At]],[M+Z]:[1,j,[At]],[q+M+H]:[2,G,[At,Ot],e=>[In(...e)]],[$]:[1,Q,[At]],[V]:[1,Y,[At]],[q+A]:[2,X,[At,_t],e=>[bn(...e)]],[A]:[2,ee,[At,_t]],[Z]:[2,te,[At,_t]],[q+H]:[3,ne,[At,_t,zt],e=>[vn(...e)]],[H]:[3,se,[At,_t,zt],e=>ds(Jt(...e))],InvalidCell:[3,ae],[q+F]:[0,re,[],()=>[yn()]],[F]:[0,ie],[B]:[0,ce],[q+_]:[1,de,[un],e=>[fn(...e)]],[_]:[1,ue,[un],e=>ds(hn(e[0]))],InvalidValue:[1,oe]},([e,t,n,s],a)=>{On[D+a+x]=(...a)=>me(a[e],t[a[e+1]?1:0],e>0?$e(a,0,e):void 0,n,s)}),Mt(On)},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},bs=(e=m)=>[rs(e),rs(e)],vs=(e,t)=>{let n=1,s=bs(),a=0;const o=Wt(),r=cn(),[l,i]=jn(e,t),c=ps(),d=e=>{const t=n;return n=0,e(),n=t,b},u=(e,t=0)=>{const n={},a={},[[o,r=m,l=0],c]=e,[d,u]=s,[g,w,p]=d;let I=t?l:p,b=r;Ot(o,([e,s=m,a=0],o)=>{const r=Xt(g,o,rs),[l,i,c]=r;let d=t?a:c,u=s;Ot(e,(e,s)=>{const[a,r,i]=h(e,Xt(l,s,rs),Jt(Jt(n,o,Et),s,Et),t);d^=t?0:Nn(r?En(s,r):0,En(s,i)),u=ss(u,a)}),d^=t?0:ns(i,s),as(r,s,d),I^=t?0:Nn(c?En(o,c):0,En(o,r[2])),b=ss(b,u)}),I^=t?0:ns(w,r),as(d,r,I);const[v]=h(c,u,a,t);return i(ss(b,v)),[n,a,1]},h=(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=Xt(l,o,()=>[void 0,m,0]),[,i,c]=r;(!i||t>i)&&(as(r,t,s?a:Pn(e,t)),r[0]=e,n[o]=e,u^=s?0:Nn(En(o,c),En(o,r[2])),d=ss(d,t))}),u^=s?0:ns(i,o),as(t,o,u),[d,c,t[2]]},g=He,w=He,p=()=>[ls(s[0],e=>ls(e,e=>ls(e))),ls(s[1])],I=e=>d(()=>c.applyChanges(u(e))),b={getMergeableContent:p,getMergeableContentHashes:()=>[s[0][2],s[1][2]],getMergeableTableHashes:()=>tn(s[0][0],ts),getMergeableTableDiff:e=>{const t=os(s[0][1]),n={};return Qt(s[0][0],(s,[a,o,r])=>$t(e,s)?r!=e[s]?n[s]=r:0:t[0][s]=is([a,o],e=>is(e))),[t,n]},getMergeableRowHashes:e=>{const t={};return Ot(e,(e,n)=>Ne(Gt(s[0][0],n),([s,,a])=>a!=e?Qt(s,(e,[,,s])=>Jt(t,n,Et)[e]=s):0)),t},getMergeableRowDiff:e=>{const t=os(s[0][1]),n={};return Ot(e,(e,a)=>Qt(Gt(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,os)[0][s]=is([o,r]))),[t,n]},getMergeableCellHashes:e=>{const t={};return Ot(e,(e,n)=>Ne(Gt(s[0][0],n),([s])=>Ot(e,(e,a)=>Ne(Gt(s,a),([s,,o])=>o!==e?Qt(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(Gt(t,n),([t,o])=>Ne(Gt(t,s),([t,r])=>Qt(t,(t,[l,i,c])=>c!==e[t]?Jt(Jt(a,n,()=>os(o))[0],s,()=>os(r))[0][t]=[l,i]:0))))),Xn(a,n)},getMergeableValueHashes:()=>tn(s[1][0],ts),getMergeableValueDiff:e=>{const[,[t,n]]=s,a=tn(t,Yn,([,,t],n)=>t==e?.[n]);return Xn(a,n)},setMergeableContent:e=>d(()=>(e=>Ae(e)&&2==Ve(e)&&cs(e[0],e=>Ut(e,e=>cs(e,e=>Ut(e,e=>cs(e,e=>Ut(e,e=>cs(e,ut),void 0,1)),void 0,1)),void 0,1))&&cs(e[1],e=>Ut(e,e=>cs(e,ut),void 0,1)))(e)?c.transaction(()=>{c.delTables().delValues(),s=bs(),c.applyChanges(u(e,1))}):0),setDefaultContent:e=>(c.transaction(()=>{a=1,c.setContent(e),a=0}),b),getTransactionMergeableChanges:(e=!1)=>{const[[t,n,a],[l,i,c]]=s,d=e?es:Xn,u={};St(o,(e,n)=>Ne(Gt(t,n),([t,s,a])=>{const o={};St(e,(e,n)=>Ne(Gt(t,n),([t,s,a])=>{const r={};St(e,e=>{Ne(Gt(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(r,e=>Ne(Gt(l,e),([t,n,s])=>h[e]=d(t,n,s))),[d(u,n,a),d(h,i,c),1]},applyMergeableChanges:I,merge:e=>{const t=p(),n=e.getMergeableContent();return e.applyMergeableChanges(t),I(n)}};return c.setInternalListeners(g,w,()=>{Tt(o),Tt(r)},(e,t,s,r)=>{dn(Xt(Xt(o,e,Wt),t,cn),s),n&&u([[{[e]:[{[t]:[{[s]:[r,a?m:l()]}]}]}],[{}],1])},(e,t)=>{dn(r,e),n&&u([[{}],[{[e]:[t,a?m:l()]}],1])}),Zt(c,(e,t)=>b[t]=ie(t,"set")||ie(t,"del")||ie(t,"apply")||ce(t,z)||t=="call"+x?(...t)=>(e(...t),b):ie(t,D)&&ce(t,x)?(...n)=>{const s=Is[$e(t,3,-8)]??0,a=n[s];return n[s]=(e,...t)=>a(b,...t),e(...n)}:"isMergeable"==t?()=>!0:e),Mt(b)},ys=Wt([["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]]]),fs=(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},Cs=gn(e=>{const t=Wt(),[n,s,a]=pn(()=>I),[o,r,l,i,c,d,u,,h,g,w,p]=un(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]:Gt(ys,a)??Gt(ys,"sum");return h(e,n,(n,a,o,r,l,i)=>{const h=d(e),g=pt(r);i||=xe(h),n();let m=fs(h,g,r,a,c,i);Se(m)||(m=void 0),m!=h&&(u(e,m),s(t,[e],m,h))},hn(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)}),Ts={Idle:0,Loading:1,Saving:2},Ss={StoreOnly:1,MergeableStoreOnly:2,StoreOrMergeableStore:3},Rs=Wt(),xs=Wt(),Ls=(e,t,n,s,a,o,r,l={},i=0,c=[])=>{let d,u,h,g=0,m=0,w=0;Xt(Rs,c,()=>0),Xt(xs,c,()=>[]);const p=Wt(),[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]=pn(()=>A),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 e=>(2!=g&&(R(1),m++,await P(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)})),A),k=async e=>(D(),await L(e),await ze(async()=>u=await s(async(e,t)=>{t||e?2!=g&&(R(1),m++,x(t??e),R(0)):await L()}),o),A),D=async()=>(u&&(await ze(()=>a(u),o),u=void 0),A),q=async e=>(1!=g&&(R(2),w++,await P(async()=>{await ze(()=>n(b,e),o),R(0)})),A),N=async()=>(M(),await q(),h=e.addDidFinishTransactionListener(()=>{const e=v();y(e)&&q(e)}),A),M=async()=>(h&&(e.delListener(h),h=void 0),A),E=async(e=!1)=>{const[t,n]=e?[M,D]:[D,M];return await t(),await n(),A},P=async(...e)=>(ot(Gt(xs,c),...e),await(async()=>{if(!Gt(Rs,c)){for(Kt(Rs,c,1);!xe(d=it(Gt(xs,c)));)await ze(d,o);Kt(Rs,c,0)}})(),A),A={load:L,startAutoLoad:k,stopAutoLoad:D,isAutoLoading:()=>!xe(u),save:q,startAutoSave:N,stopAutoSave:M,isAutoSaving:()=>!xe(h),startAutoPersisting:async(e,t=!1)=>{const[n,s]=t?[N,k]:[k,N];return await n(e),await s(e),A},stopAutoPersisting:E,getStatus:()=>g,addStatusListener:e=>C(e,p),delListener:t=>(S(t),e),schedule:P,getStore:()=>e,destroy:()=>(at(Gt(xs,c)),E()),getStats:()=>({loads:m,saves:w}),...l};return Mt(A)},ks="_",Ds="_id",qs="SELECT",Ns="WHERE",Ms="TABLE",Es="INSERT",Ps="DELETE",As="UPDATE",$s="ALTER "+Ms,Vs="FROM",Os=Ps+" "+Vs,Hs=qs+"*"+Vs,Zs="pragma_",_s="data_version",Fs="schema_version",Bs="pragma_table_",zs="CREATE ",Js=zs+Ms,Us="OR REPLACE ",Ws="FUNCTION",js="$tableName",Gs=(e,t)=>t?async(n,s)=>(t(n,s),await e(n,s)):e,Qs=e=>Ke(Xe(ue(e,p),e=>`"${he(e,/"/g,'""')}"`),p),Ys=(...e)=>Qs(Ke(e,"_")),Ks=(...e)=>Ke(Xe(e,Qs),w),Xs=(e,t=[1])=>Ke(Xe(e,()=>"$"+t[0]++),w),ea=(e,t=f)=>Ns+`(${he(t,js,Qs(e))})`,ta="ColumnName",na="store",sa="json",aa=na+"TableName",oa=na+"Id"+ta,ra=na+ta,la="autoLoadIntervalSeconds",ia="rowId"+ta,ca="tableId",da="tableName",ua="deleteEmptyColumns",ha="deleteEmptyTable",ga="condition",ma={mode:sa,[la]:1},wa={load:0,save:0,[da]:g+"_values"},pa=(e,t,n,s,a)=>{const o=Wt();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]),Kt(o,r,l))}),o},Ia=e=>{const t=(e=>Pt(ma,Ee(e)?{[aa]:e}:e??{}))(e),n=t[la];if(t.mode==sa){const e=t[aa]??g;return[1,n,[e,t[oa]??Ds,t[ra]??na],cn(e)]}const{tables:{load:s={},save:a={}}={},values:o={}}=t,r=$e(_t(Pt(wa,o)),0,Ft(wa)),l=r[2],i=cn(l),c=cn(l),d=pa(s,{[ca]:null,[ia]:Ds,[ga]:f},ca,e=>yt(c,e),e=>dn(i,e)),u=pa(a,{[da]:null,[ia]:Ds,[ua]:0,[ha]:0,[ga]:null},da,(e,t)=>yt(c,t),(e,t)=>dn(i,t));return Qt(u,(e,t)=>t[4]??=Gt(d,t[0])?.[2]??f),[0,n,[d,u,r],i]},ba=(e,t,n,s,a,o=va,r,l)=>{const i=Wt();return[async()=>{Tt(i),Xe(await n(e,t),({tn:e,cn:t})=>dn(Xt(i,e,cn),t))},async(t,n,s)=>((e,t)=>yt(Gt(i,e),t))(t,n)?Et(st(Xe(await e(Hs+Qs(t)+ea(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=cn();Zt(s??{},e=>Xe(Nt(e??{}),e=>dn(h,e)));const g=Ct(h);if(!d&&c&&u==f&&tt(g)&&yt(i,t))return await e("DROP "+Ms+Qs(t)),void Kt(i,t);const m=Gt(i,t),p=cn(Ct(m));if(tt(g)||(yt(i,t)?await Fe(Xe([n,...g],async(s,o)=>{Rt(p,s)||(await e($s+Qs(t)+"ADD"+Qs(s)+a),0==o&&await e("CREATE UNIQUE INDEX pk ON "+Qs(t)+`(${Qs(n)})`),dn(m,s))})):(await e(Js+Qs(t)+`(${Qs(n)}${a} PRIMARY KEY${Ke(Xe(g,e=>w+Qs(e)+a))});`),Kt(i,t,cn([n,...g])))),await Fe([...!d&&l?Xe(Ct(p),async s=>{s!=n&&(await e($s+Qs(t)+"DROP"+Qs(s)),Rt(m,s))}):[]]),d)xe(s)?await e(Os+Qs(t)+ea(t,u)):await Fe(Ht(s,async(s,a)=>{xe(s)?await e(Os+Qs(t)+ea(t,u)+`AND(${Qs(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(Os+Qs(t)+ea(t,u));else{const a=st(Ct(Gt(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(Os+Qs(t)+ea(t,u)+`AND${Qs(n)}NOT IN(${Xs(c)})`,c)}},async t=>{let n;return await e("BEGIN"),await ze(async()=>n=await t(),s),await e("END"),n}]},va=async(e,t,n,s,a)=>{const o=[1];await e(Es+" INTO"+Qs(t)+"("+Ks(n,...s)+")VALUES"+Ke(Ht(a,e=>"($"+o[0]+++","+Xs(e,o)+")"),w)+"ON CONFLICT("+Qs(n)+`)DO ${As} SET`+Ke(Xe(s,e=>Qs(e)+"=excluded."+Qs(e)),w),Ht(a,(e,t)=>[t,...Xe(e,e=>e??null)]).flat())},ya=(e,t,n,s,a,o,r,[l,i,c],d,u,h,g,m,w)=>{const[p,I,b,v]=ba(t,d,u,a,m,w),y=Ls(e,()=>v(async()=>(await p(),kn((await I(l,i))[ks]?.[c]??"null"))),e=>v(async()=>{await p(),await b(l,i,{[ks]:{[c]:Ln(e()??null)}},!0,!0)}),n,s,a,r,{[g]:()=>h,destroy:async()=>(await y.stopAutoPersisting(),o(),y)},0,h);return y},fa=(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]=ba(t,h,g,a,p,I,b,v),S=(e,t)=>Fe(Yt(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,Ds,{[ks]:e},!0,!0,t):null,x=Ls(e,()=>T(async()=>{await y();const e=await(async()=>Et(st(await Fe(Yt(l,async([e,t,n],s)=>[e,await f(s,t,n)])),e=>!Bt(e[1]))))(),t=await(async()=>c?(await f(u,Ds))[ks]:{})();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},Ca=/^([cd]:)(.+)/,Ta=(e,t,n,s,a,o,r,l,i,c,d="getDb")=>{const u=Gs(n,o),[h,,w,p]=Ia(t),I=m+qn(Ln(w)),b=g+"_"+I,v=async(e,t,n="",s="")=>{const a=Ys(g,e,I);return await u(zs+Us+Ws+a+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${t}END;$$ LANGUAGE plpgsql;`),a},y=async(e,t,n,s)=>(await u(zs+e+"TRIGGER"+t+n+"EXECUTE "+Ws+s+"()"),t),C=e=>`PERFORM pg_notify('${b}',${e});`,T=(e,t)=>h?f:2===t?T(e,0)+" OR "+T(e,1):he(Gt(w[0],e)?.[2]??f,js,0==t?"NEW":"OLD"),S=(e,t)=>Fe(Xe([Es,Ps,As],(n,s)=>y(Us,Ys(g,"d",I,e,n),`AFTER ${n} ON${Qs(e)}FOR EACH ROW WHEN(${T(e,s)})`,t)));return(h?ya:fa)(e,u,async e=>{const t=await v("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${Ns} command_tag='${Js}' LOOP ${C("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await y("EVENT ",Ys(g,"c",I),`ON ddl_command_end WHEN TAG IN('${Js}')`,t);const n=await v("d",C("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await Fe(Xe(Ct(p),async e=>(await u(Js+` IF NOT EXISTS${Qs(e)}("_id"text PRIMARY KEY)`),await S(e,n)))),[await s(b,t=>Ne(de(t,Ca),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(qs+` table_name tn,column_name cn FROM information_schema.columns ${Ns} table_schema='public'AND table_name IN(${Xs(t)})`,t),c,d,"text",void 0,e=>Sn(e),e=>Rn(e))},Sa=(e,t,n,s,a,o,r,l,i,c,d="getDb",u)=>{let h,g,w;const p=Gs(n,o),[I,b,v,y]=Ia(t);return(I?ya:fa)(e,p,e=>{let t;const n=()=>t=Ie(()=>ze(async()=>{const[{d:t,s:n,c:s}]=await p(qs+` ${_s} d,${Fs} s,TOTAL_CHANGES() c FROM ${Zs}${_s} JOIN ${Zs}${Fs}`);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(qs+` t.name tn,c.name cn FROM ${Bs}list()t,${Bs}info(t.name)c ${Ns} t.schema='main'AND t.type IN('table','view')AND t.name IN(${Xs(t)})ORDER BY t.name,c.name`,t),c,d,m,u,e=>ke(e)?1:De(e)?0:e,void 0)},Ra=(e,t)=>[e[t].t,e[t].v],xa=(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},La=(e,t,n=g,s)=>(t.change(e=>Jt(e,n,Et)),Ls(e,async()=>{const e=t.doc();return 2==Ft(e?.[n])?Ra(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]=Ra(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();xa(a,void 0,e,(e,t,n)=>xa(a,t,n,(e,t,n)=>xa(e,t,n,(e,t,n)=>{if(At(e,t)!==n)return e[t]=n,1}))),xa(o,void 0,t,(e,t,n)=>{At(o,t)!==n&&(o[t]=n)})}})(t,n,e,s)),e=>{const s=({doc:t})=>e(Ra(t,n));return t.on("change",s),s},e=>{t.removeListener("change",e)},s,1,{getDocHandle:()=>t})),ka="storage",Da=(e,t,n,s)=>Ls(e,async()=>kn(n.getItem(t)),async e=>n.setItem(t,Ln(e())),e=>{const s=s=>{s.storageArea===n&&s.key===t&&ze(()=>e(kn(s.newValue)),e)};return pe.addEventListener(ka,s),s},e=>pe.removeEventListener(ka,e),s,3,{getStorageName:()=>t}),qa=(e,t,n)=>Da(e,t,localStorage,n),Na=(e,t,n)=>Da(e,t,sessionStorage,n),Ma=(e,t,n)=>Ls(e,async()=>kn(await(await t.getFile()).text()),async e=>{const n=await t.createWritable();await n.write(Ln(e())),await n.close()},async e=>{const n=new FileSystemObserver(()=>e());return await n.observe(t),n},e=>e?.disconnect(),n,3,{getHandle:()=>t}),Ea=(e,t,n,s,a)=>Sa(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),Pa=()=>es({},m,0),Aa=(e,t,n=m,s)=>{const a=(e,...t)=>n+e+$e(Ln(t),1,-1);return Ls(e,async()=>{const e=Pa(),s=Pa();return(await t.list({prefix:n})).forEach(async([t,a,o],r)=>Ne((e=>{if(ie(e,n)){const t=$e(e,n.length,1);return t==oe||t==re?[t,...JSON.parse("["+$e(e,n.length+1)+"]")]:void 0}})(r),([n,...r])=>n==oe?Ne(r[0],n=>{const s=Jt(e[0],n,Pa);Ne(r[1],e=>{const n=Jt(s[0],e,Pa);Ne(r[2],e=>n[0][e]=[t,a,o],()=>as(n,a,o))},()=>as(s,a,o))},()=>as(e,a,o)):n==re?Ne(r[0],e=>s[0][e]=[t,a,o],()=>as(s,a,o)):0)),[e,s]},async(e,[[n,s,o],[r,l,i]]=e())=>{const c=Wt();Kt(c,a(oe),[0,s,o]),Ot(n,([e,t,n],s)=>{Kt(c,a(oe,s),[0,t,n]),Ot(e,([e,t,n],o)=>{Kt(c,a(oe,s,o),[0,t,n]),Ot(e,(e,t)=>Kt(c,a(oe,s,o,t),e))})}),Kt(c,a(re),[0,l,i]),Ot(r,(e,t)=>Kt(c,a(re,t),e)),await t.put(tn(c))},He,He,s,2,{getStorage:()=>t})},$a=(e,t,n,s,a)=>Sa(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"),Va=(t,n,s,a,o)=>Sa(t,s,async(e,t=[])=>await n.getAllAsync(e,t),t=>e(({tableName:e})=>t(e)),e=>e.remove(),a,o,He,3,n),Oa=(e,r,l)=>Ls(e,async()=>kn(await o(r,R)),async e=>await a(r,Ln(e()),R),e=>(t(r)||n(r,m,R),s(r,()=>e())),e=>e?.close(),l,3,{getFilePath:()=>r}),Ha=[oe,re],Za={keyPath:"k"},_a=async(e,t)=>{const n=Ht(t,(t,n)=>Fa(e,"put",{k:n,v:t}));Xe(await Fa(e,"getAllKeys"),s=>$t(t,s)?0:ot(n,Fa(e,"delete",s))),await Fe(n)},Fa=async(e,t,n)=>_e((s,a)=>{const o=e[t](n);o.onsuccess=()=>s(o.result),o.onerror=()=>a(`objectStore.${t} error`)}),Ba=(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(Ha,e=>ze(()=>r.result.createObjectStore(e,Za))),r.onsuccess=()=>ze(async()=>{const t=r.result.transaction(Ha,"readwrite"),s=await Fe(Xe(Ha,(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 Ls(e,async()=>await a(async e=>Et(Xe(await Fa(e,"getAll"),({k:e,v:t})=>[e,t]))),e=>a((e,t)=>_a(e,t),e(),1),e=>Ie(e,n),e=>be(e),s,1,{getDbName:()=>t})},za=(e,t,n,s,a)=>Sa(e,n,async(e,n=[])=>(await t.execute({sql:e,args:n})).rows,()=>He,e=>e(),s,a,He,1,t,"getClient"),Ja="s",Ua="/store",Wa=(e,t,n)=>e+t+(Ee(n)?n:xn(n)),ja=(e,t,n)=>{const s=Ve(e);return ie(t,e)?[t[s],(n?Rn:String)($e(t,s+1))]:void 0},Ga=(e,t,n,s)=>{const{host:a,room:o}=t.partySocketOptions,{storeProtocol:r="https",storePath:l=Ua,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:xn(e)}:{},mode:"cors",cache:"no-store"})).json();return Ls(e,d,async(e,n)=>{n?t.send(Wa(i,Ja,n)):await d(e())},e=>{const n=t=>Ne(ja(i,t.data,1),([t,n])=>{t==Ja&&e(void 0,n)});return t.addEventListener(ne,n),n},e=>{t.removeEventListener(ne,e)},s,1,{getConnection:()=>t})},Qa="hasStore",Ya=Et(Xe(["Origin","Methods","Headers"],e=>["Access-Control-Allow-"+e,"*"])),Ka=async(e,t=m)=>!!await e.get(t+Qa),Xa=async(e,t=m)=>{const n={},s={};return Qt(await e.list(),(e,a)=>Ne(ja(t,e),([e,t])=>{if(e==oe){const[e,s,o]=Rn("["+t+"]");Jt(Jt(n,e,Et),s,Et)[o]=a}else e==re&&(s[t]=a)})),[n,s]},eo=async(e,t,n)=>e.party.broadcast(Wa(e.config.messagePrefix??m,Ja,t),n),to=async(e,t,n,s)=>{const a=e.party.storage,o=e.config.storagePrefix??m,r={[o+Qa]:1},l=[],i=[];await Fe(Ht(t[0],async(t,c)=>xe(t)?!n&&await e.canDelTable(c,s)&<(i,no(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,no(o,oe,c,d)):await e.canSetRow(c,d,n,s)&&await Fe(Ht(t,async(t,i)=>{const u=[c,d,i],h=no(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)||Qt(await a.list(),e=>Ue(i,t=>!ie(e,t)||ot(l,e)&&0)),await a.delete(l),await a.put(r)},no=(e,t,...n)=>Wa(e,t,$e(xn(n),1,-1)),so=async(e,t,n=null)=>new Response(n,{status:t,headers:e.config.responseHeaders});class ao{constructor(e){this.party=e,this.config.storePath??=Ua,this.config.messagePrefix??=m,this.config.storagePrefix??=m,this.config.responseHeaders??=Ya}config={};async onRequest(e){const{party:{storage:t},config:{storePath:n=Ua,storagePrefix:s}}=this;if(new URL(e.url).pathname.endsWith(n)){const n=await Ka(t,s),a=await e.text();return"PUT"==e.method?n?so(this,205):(await to(this,Rn(a),!0,e),so(this,201)):so(this,200,n?xn(await Xa(t,s)):m)}return so(this,404)}async onMessage(e,t){const{config:{messagePrefix:n=m,storagePrefix:s}}=this;await Ne(ja(n,e,1),async([e,n])=>{e==Ja&&await Ka(this.party.storage,s)&&(await to(this,n,!1,t),eo(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 oo=async(e,t,n,s,a)=>Ta(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"),ro=async(e,t,n,s,a)=>{const o=await(t.reserve?.());return Ta(e,n,o?.unsafe,async(e,n)=>t.listen(e,n),e=>ze(e.unlisten,a),s,a,()=>o?.release?.(),3,t,"getSql")},lo=(e,t,n,s,a)=>{let o;return Sa(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",io)},io=async(e,t,n,s,a,o)=>{const r=[1],l=cn(s),i=o?st([...o],e=>e!=n&&!yt(l,e)):[];if(!tt(i)){const s=Nt(a),o=Et(Xe(await e(qs+Ks(n,...i)+Vs+Qs(t)+Ns+Qs(n)+"IN("+Xs(s)+")",s),e=>[e[n],e]));Ye(s,e=>ot(a[e],...Xe(i,t=>o?.[e]?.[t]??null)))}await e(Es+" "+Us+"INTO"+Qs(t)+"("+Ks(n,...s,...i)+")VALUES"+Ke(Ht(a,e=>"($"+r[0]+++","+Xs(e,r)+")"),w),Ht(a,(e,t)=>[t,...Xe(e,e=>e??null)]).flat())},co=(e,t,n="storage",s)=>Ls(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}),uo=(e,t,n,s,a)=>Sa(e,n,async(e,n=[])=>(await t.executeSql(e,n))[0].rows.raw(),He,He,s,a,He,3,t),ho=e=>e.headers.get("ETag"),go=(e,t,n,s=5,a)=>{let o;return Ls(e,async()=>{const e=await fetch(t);return o=ho(e),Rn(await e.text())},async e=>await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:xn(e())}),e=>Ie(async()=>{const n=await fetch(t,{method:"HEAD"}),s=ho(n);Le(o)||Le(s)||s==o||(o=s,e())},s),e=>be(e),a,1,{getUrls:()=>[t,n]})},mo=(e,t,n,s,a)=>Sa(e,n,async(e,n=[])=>t.query(e).all(...n),()=>He,e=>e(),s,a,He,3,t),wo=(e,t,n,s,a,o)=>Sa(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),po="change",Io=(e,t,n,s,a)=>Sa(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(po,n),n},e=>t.off(po,e),s,a,He,3,t),bo="delete",vo=e=>[e.get(oe),e.get(re)],yo=(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},fo=(e,t,n=g,s)=>{const a=t.getMap(n);return Ls(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]=vo(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();yo(s,void 0,e,(e,t,n)=>yo(s,t,n,(e,t,n)=>yo(e,t,n,(e,t,n)=>{if(e.get(t)!==n)return e.set(t,n),1}))),yo(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]=vo(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);Qt(t,(e,{action:t})=>n[e]=t==bo?void 0:s.get(e))},()=>Qt(t,(e,{action:t})=>o[e]=t==bo?void 0:r.get(e)?.toJSON()))},()=>Qt(t,(e,{action:t})=>a[e]=t==bo?void 0:n.get(e)?.toJSON())):Qt(t,(e,{action:t})=>o[e]=t==bo?void 0:s.get(e))),[a,o,1]})(a,t));return a.observeDeep(t),t},e=>{a.unobserveDeep(e)},s,1,{getYDoc:()=>t})},Co=gn(e=>{const t=e.createStore,n=t(),s=t(),a=Wt(),o=Wt(),r=Wt(),{addListener:l,callListeners:i,delListener:c}=s,[d,u,h,g,w,p,I,b,,v,y,f,C,T]=un(e,()=>[],Oe,l,i),S=(e,t,...n)=>Ye(n,n=>dn(Xt(Xt(a,t,Wt),e,cn),n)),R=e=>{Ne(Gt(a,e),e=>{Qt(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,[],Wt()]]],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),[],Wt()]];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]:Gt(ys,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=>Gt(c,e)});const v=Wt(d);if(ft(v))return B;const y=Wt(u);Qt(y,(e,[,t])=>Ne(Gt(y,t),({3:t})=>xe(e)?0:ot(t,e)));const f=Wt(g);let x=n;if(ft(f)&&tt(w))x=s;else{q(t,x,s);const e=Wt();Qt(f,(t,[n,s])=>dn(Xt(e,n,cn),[t,s]));const n=cn();Qt(v,t=>yt(e,t)?0:dn(n,t));const a=Wt(),o=(n,a,o,r)=>Ne(n,([l,i,c,d])=>{Qt(a,(t,[n])=>{const s=Xt(l,t,Wt),a=Gt(s,o),i=r?void 0:n;if(a!==i){const n=cn([[a,i]]),r=pt(s);Kt(s,o,i),St(Gt(e,t),([e,t])=>{const a=fs(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=Wt(),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}),Qt(e,e=>{const[n,,s]=i(t,l,e);(g||n)&&Kt(u,e,[s])}),g&&o(ln(a,c,void 0,([,e])=>(Rt(e,l),ft(e))),u,l,1),h&&o(ln(a,d,()=>{const e={};return St(n,n=>e[n]=x.getCell(t,l,n)),[Wt(),cn(),void 0,e]},([,e])=>{dn(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]=Gt(y,s),c=o?.(l,n),[d,u]=Gt(i,n)??[];c!=d&&(xe(u)||T(t,u),Kt(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]:[Gt(y,t)?.[0],Gt(Gt(y,t)?.[4],n)?.[0],s]);x.transaction(()=>Ue(h,e=>e(s))?Qt(v,(e,a)=>ht(x,t,n,e,a(s,n))):x.delRow(t,n))})(n)},{3:k}=Gt(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(Gt(e,o),([,n])=>{T(t,n),Kt(e,o)})))}))),B},E=(e,t,n)=>{const s=cn([...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(tn(o),t,je)||s.transaction(()=>N(e,w(e),a,t))}),B),_=e=>tn(p(e)?.[1]),F=(e,t)=>Gt(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)}),To=gn(e=>{const t=Wt(),n=Wt(),s=Wt(),a=Wt(),[o,r,l]=pn(()=>C),[i,c,d,u,h,g,,,w,p,I,b]=un(e,()=>[Wt(),Wt(),Wt(),Wt()],e=>xe(e)?void 0:e+m,o,r),v=(e,t,n)=>Ne(g(e),([s,,a])=>{if(!yt(a,t)){const o=cn();if(h(e)!=f(e))dn(o,t);else{let e=t;for(;!xe(e)&&!yt(o,e);)dn(o,e),e=Gt(s,e)}if(n)return o;Kt(a,t,o)}return Gt(a,t)}),y=(e,t)=>Ne(g(e),([,,e])=>Kt(e,t)),f=e=>Gt(t,e),C={setRelationshipDefinition:(e,o,l,i)=>(Kt(t,e,l),w(e,o,(t,o)=>{const l=cn(),i=cn(),c=cn(),[d,u]=g(e);St(o,([t,n],s)=>{xe(t)||(dn(i,t),Ne(Gt(u,t),e=>{Rt(e,s),ft(e)&&Kt(u,t)})),xe(n)||(dn(i,n),yt(u,n)||Kt(u,n,cn()),dn(Gt(u,n),s)),dn(l,s),Kt(d,s,n),Qt(Gt(a,e),t=>{yt(v(e,t),s)&&dn(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])})},hn(i)),C),delRelationshipDefinition:e=>(Kt(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)=>Gt(g(e)?.[0],t),getLocalRowIds:(e,t)=>Ct(Gt(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)}),So={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},Ro=(e,t,n,s,a,o,r,l,i={})=>{let c,d=0,u=0,h=0;const g=Wt(),w=()=>Tn(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+Tn(4),i=ve(()=>{Rt(g,l),r(`No response from ${e??"anyone"} to ${l}, `+t)},a);Kt(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,os);Ot(t,([e,t],n)=>{const s=Jt(a[0],n,os);Ot(e,([e,t],n)=>s[0][n]=Xn(e,t)),s[1]=ss(s[1],t)}),a[1]=ss(a[1],n)}),e[1]=ss(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=os();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?os():(await b(t,7,e.getMergeableValueHashes(),s))[0],1]},l),f=Ls(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(Gt(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.getMergeableCellDiff(a):7==s?e.getMergeableValueDiff(a):void 0,e=>{I(t,n,0,e)})}),f},xo=(e,t,n,s,a)=>{const o=Tn(),r=new BroadcastChannel(t);return Ro(e,(e,t,n,s)=>r.postMessage([o,e,t,n,s]),e=>{r.onmessage=({data:[t,n,s,a,r]})=>Le(n)||n==o?e(t,s,a,r):0},()=>{r.close()},.01,n,s,a,{getChannelName:()=>t})},Lo=W