UNPKG

tinybase

Version:

A reactive data store and sync engine.

2 lines (1 loc) 28 kB
const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),l=e(e),r="type",a="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",I=h+g,b="Row",w=b+"Count",L=b+g,C="Sorted"+b+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=(e,s=t,n)=>e.split(s,n),E=globalThis,k=Math,D=k.max,H=k.min,J=k.floor,x=isFinite,F=e=>null==e,Q=(e,t,s)=>F(e)?s?.():t(e),z=e=>e==s||e==n,N=t=>e(t)==s,O=t=>e(t)==l,W=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),P=e=>e.length,_=()=>{},j=(e,t)=>e.includes(t),B=(e,t)=>e.every(t),U=(e,t)=>P(e)===P(t)&&B(e,((e,s)=>t[s]===e)),q=(e,t)=>B(e,((s,n)=>0==n||t(e[n-1],s)<=0)),G=(e,t)=>e.sort(t),K=(e,t)=>e.forEach(t),X=(e,t)=>e.map(t),Y=e=>$(e,((e,t)=>e+t),0),Z=e=>0==P(e),$=(e,t,s)=>e.reduce(t,s),ee=(e,...t)=>e.push(...t),te=e=>e.pop(),se=e=>e.shift(),ne=t=>{const s=e(t);return z(s)||s==o&&x(t)?s:void 0},oe=e=>F(e)||!F(ne(e)),le=(e,t,s,n,o)=>F(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),re=(e,t,s)=>F(s)?e.delValue(t):e.setValue(t,s),ae=e=>t=>$(fe(t),((t,s)=>t+e(s)),0),ie=e=>e?.size??0,ce=ae(ie),de=ae(ce),ue=ae(de),ge=(e,t)=>e?.has(t)??!1,he=e=>F(e)||0==ie(e),fe=e=>[...e?.values()??[]],Ie=e=>e.clear(),be=(e,t)=>e?.forEach(t),we=(e,t)=>e?.delete(t),Le=Object,Ce=e=>Le.getPrototypeOf(e),Re=Le.entries,Te=Le.isFrozen,ve=e=>!F(e)&&Q(Ce(e),(e=>e==Le.prototype||F(Ce(e))),(()=>!0)),pe=Le.keys,Se=Le.freeze,ye=(e=[])=>Le.fromEntries(e),Ve=(e,t)=>t in e,Me=(e,t)=>(delete e[t],e),me=(e,t)=>K(Re(e),(([e,s])=>t(s,e))),Ee=(e,t)=>ye(((e,t)=>X(Re(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),ke=e=>ve(e)&&0==(e=>P(pe(e)))(e),De=(e,t,s)=>(Ve(e,t)||(e[t]=s()),e[t]),He=(e,t,s,n=0)=>F(e)||!ve(e)||!n&&ke(e)||Te(e)?(s?.(),!1):(me(e,((s,n)=>{t(s,n)||Me(e,n)})),!!n||!ke(e)),Je=e=>new Map(e),xe=e=>[...e?.keys()??[]],Fe=(e,t)=>e?.get(t),Qe=(e,t)=>be(e,((e,s)=>t(s,e))),ze=(e,t,s)=>F(s)?(we(e,t),e):e?.set(t,s),Ne=(e,t,s,n)=>(ge(e,t)?n?.(Fe(e,t)):ze(e,t,s()),Fe(e,t)),Oe=(e,t,s,n=ze)=>(Ee(t,((t,n)=>s(e,n,t))),Qe(e,(s=>Ve(t,s)?0:n(e,s))),e),We=(e,t,s,n)=>{const o={};return be(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;n?.(s)||(o[l]=s)}})),o},Ae=(e,t,s)=>We(e,(e=>We(e,t,s)),he,ke),Pe=(e,t,s)=>We(e,(e=>Ae(e,t,s)),he,ke),_e=(e,t)=>{const s=Je();return be(e,((e,n)=>s.set(n,t?.(e)??e))),s},je=e=>_e(e,_e),Be=e=>_e(e,je),Ue=(e,t,s,n,o=0)=>Q((s?Ne:Fe)(e,t[o],o>P(t)-2?s:Je),(l=>{if(o>P(t)-2)return n?.(l)&&ze(e,t[o]),l;const r=Ue(l,t,s,n,o+1);return he(l)&&ze(e,t[o]),r})),qe=e=>new Set(W(e)||F(e)?e:[e]),Ge=(e,t)=>e?.add(t),Ke=(e,t,s,n,o)=>{const l=e.hasRow,r=Je(),a=Je(),i=Je(),c=Je(),d=Je(),u=Je(),g=(t,s,...n)=>{const o=Ne(u,t,qe);return K(n,(t=>Ge(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>Q(Fe(u,t),(n=>{K(Z(s)?fe(n):s,(t=>{e.delListener(t),we(n,t)})),he(n)&&ze(u,t)})),f=(e,s)=>{ze(r,e,s),ge(a,e)||(ze(a,e,t()),ze(c,e,Je()),ze(d,e,Je()),o(i))},I=e=>{ze(r,e),ze(a,e),ze(c,e),ze(d,e),h(e),o(i)};return[()=>e,()=>xe(r),e=>Qe(a,e),e=>ge(a,e),e=>Fe(r,e),e=>Fe(a,e),(e,t)=>ze(a,e,t),f,(t,n,o,r,a)=>{f(t,n);const i=Je(),u=Je(),I=Fe(c,t),b=Fe(d,t),w=t=>{const o=s=>e.getCell(n,t,s),c=Fe(I,t),d=l(n,t)?s(r(o,t)):void 0;if(c===d||W(c)&&W(d)&&U(c,d)||ze(i,t,[c,d]),!F(a)){const e=Fe(b,t),s=l(n,t)?a(o,t):void 0;e!=s&&ze(u,t,s)}},L=e=>{o((()=>{be(i,(([,e],t)=>ze(I,t,e))),be(u,((e,t)=>ze(b,t,e)))}),i,u,I,b,e),Ie(i),Ie(u)};Qe(I,w),e.hasTable(n)&&K(e.getRowIds(n),(e=>{ge(I,e)||w(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>w(s))),e.addTableListener(n,(()=>L())))},I,e=>n(e,i),()=>Qe(u,I),g,h]},Xe=(e,s)=>N(e)?t=>t(e):e??(()=>s??t),Ye=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},Ze=/^\d+$/,$e=()=>{const e=[];let s=0;return[n=>(n?se(e):null)??t+s++,t=>{Ze.test(t)&&P(e)<1e3&&ee(e,t)}]},et=e=>{let s;const[n,o]=$e(),l=Je();return[(o,r,a,i=[],c=()=>[])=>{s??=e();const d=n(1);return ze(l,d,[o,r,a,i,c]),Ge(Ue(r,a??[t],qe),d),d},(e,n,...o)=>K(((e,s=[t])=>{const n=[],o=(e,t)=>t==P(s)?ee(n,e):null===s[t]?be(e,(e=>o(e,t+1))):K([s[t],null],(s=>o(Fe(e,s),t+1)));return o(e,0),n})(e,n),(e=>be(e,(e=>Fe(l,e)[0](s,...n??[],...o))))),e=>Q(Fe(l,e),(([,s,n])=>(Ue(s,n??[t],void 0,(t=>(we(t,e),he(t)?1:0))),ze(l,e),o(e),n))),e=>Q(Fe(l,e),(([e,,t=[],n,o])=>{const l=(...r)=>{const a=P(r);a==P(t)?e(s,...r,...o(r)):F(t[a])?K(n[a]?.(...r)??[],(e=>l(...r,e))):l(...r,t[a])};l()}))]},tt=Ye((e=>{let s,n,o,l=100,r=Je(),a=Je(),i=1;const c=Je(),d=Je(),[u,g,h]=et((()=>J)),f=Je(),I=Je(),b=[],w=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Fe(f,s);be(n,((s,n)=>be(s,((s,o)=>be(s,((s,l)=>le(e,n,o,l,s[t]))))))),be(o,((s,n)=>re(e,n,s[t])))})),i=1},C=e=>{ze(f,e),ze(I,e),g(d,[e])},R=(e,t)=>K(((e,t)=>e.splice(0,t))(e,t??P(e)),C),T=()=>R(b,P(b)-l),v=()=>Q(s,(()=>{ee(b,s),T(),R(w),s=void 0,o=1})),p=()=>{s=te(b),o=1};let S,y;const V=(e=t)=>(F(s)&&(s=t+n++,ze(f,s,[r,a]),D(s,e),r=Je(),a=Je(),o=1),s),M=()=>{Z(b)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=te(b),o=1)},m=()=>{Z(w)||(ee(b,s),s=se(w),L(1,s),o=1)},E=()=>{o&&(g(c),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&Fe(I,e)!==t&&(ze(I,e,t),g(d,[e])),J),H=e=>ge(f,e),J={setSize:e=>(l=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>Qe(I,e),hasCheckpoint:H,getCheckpoint:e=>Fe(I,e),goBackward:()=>(M(),E(),J),goForward:()=>(m(),E(),J),goTo:e=>{const t=j(b,e)?M:j(w,e)?m:null;for(;!F(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),J),clear:()=>(R(b),R(w),F(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(Z(w)||(R(w),g(c)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:ce(c),checkpoint:ce(d)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,o,l)=>{if(i){v();const e=Ne(r,t,Je),a=Ne(e,s,Je),i=Ne(a,n,(()=>[l,void 0]));i[1]=o,i[0]===o&&he(ze(a,n))&&he(ze(e,s))&&he(ze(r,t))&&p(),E()}})),y=e.addValueListener(null,((e,t,s,n)=>{if(i){v();const e=Ne(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&he(ze(a,t))&&p(),E()}}))}};return Se(J.clear())}),(e=>e._registerListeners())),st=m("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),nt=Je(X(st,((e,t)=>[e,t]))),ot=e=>st[63&e],lt=(e,t)=>Fe(nt,e[t])??0,rt=E.crypto?e=>E.crypto.getRandomValues(e):e=>X(e,(()=>J(256*k.random()))),at=(e,t)=>(e??0)<(t??0)?-1:1,it=(e=16)=>$(rt(new Uint8Array(e)),((e,t)=>e+ot(t)),""),ct=Ye((e=>{const s=Je(),n=Je(),[o,l,r]=et((()=>C)),[a,i,c,d,u,g,h,,f,I,b,w]=Ke(e,Je,(e=>F(e)?t:W(e)?X(e,y):y(e)),o,l),L=(t,s,n)=>{const o=u(t);be(n,((t,n)=>s(n,(s=>be(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},C={setIndexDefinition:(e,t,o,r,a,i=at)=>{const c=F(a)?void 0:([e],[t])=>a(e,t);return f(e,t,((t,o,a,d,u,f)=>{let I=0;const b=qe(),w=qe(),L=g(e);if(be(o,(([e,t],s)=>{const n=qe(e),o=qe(t);be(n,(e=>we(o,e)?we(n,e):0)),be(n,(e=>{Ge(b,e),Q(Fe(L,e),(t=>{we(t,s),he(t)&&(ze(L,e),I=1)}))})),be(o,(e=>{Ge(b,e),ge(L,e)||(ze(L,e,qe()),I=1),Ge(Fe(L,e),s),F(r)||Ge(w,e)}))})),t(),he(u)||(f?Qe(L,(e=>Ge(w,e))):Qe(a,(e=>Q(Fe(d,e),(e=>K(W(e)?e:[e],(e=>Ge(w,e))))))),be(w,(e=>{const t=(t,s)=>i(Fe(u,t),Fe(u,s),e),s=[...Fe(L,e)];q(s,t)||(ze(L,e,qe(G(s,t))),Ge(b,e))}))),(I||f)&&!F(c)){const t=[...L];q(t,c)||(h(e,Je(G(t,c))),I=1)}I&&l(s,[e]),be(b,(t=>l(n,[e,t])))}),Xe(o),Q(r,Xe)),C},delIndexDefinition:e=>(I(e),C),getStore:a,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>ge(g(e),t),getTableId:u,getSliceIds:e=>xe(g(e)),getSliceRowIds:(e,t)=>fe(Fe(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(r(e),C),destroy:w,getListenerStats:()=>({sliceIds:ce(s),sliceRowIds:de(n)})};return Se(C)})),dt=new E.TextEncoder,ut=e=>{let t=2166136261;return K(dt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},gt=2**36,ht=2**30,ft=2**24,It=2**18,bt=4096,wt=JSON.stringify,Lt=JSON.parse,Ct=e=>wt(e,((e,t)=>t instanceof Map?Le.fromEntries([...t]):t)),Rt=([e,t])=>vt(e,t),Tt=([e,t,s])=>[e,t,s],vt=(e,t)=>t?[e,t]:[e],pt=(e,t,s)=>[e,t,s],St=e=>e[2],yt=(e,t)=>ut(e+":"+t),Vt=(e,t)=>t>e?(e?ut(e):0)^ut(t):0,Mt=(e,t)=>((e??"")>(t??"")?e:t)??"",mt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Et=(e=t)=>vt(ye(),e),kt=(e=t)=>[Je(),e,0],Dt=([e,t,s],n=Tt)=>[We(e,n),t,s],Ht=([e,t],s=Rt)=>vt(We(e,s),t),Jt=(t,s)=>W(t)&&3==P(t)&&N(t[1])&&e(t[2])==o&&x(t[2])&&s(t[0]),xt=e=>[e,e],Ft=(e,t=ce)=>t(e[0])+t(e[1]),Qt=()=>[Je(),Je()],zt=e=>[...e],Nt=([e,t])=>e===t,Ot=(e,t,s)=>ze(e,t,Fe(e,t)==-s?void 0:s),Wt=()=>{let e,t,s=!1,n=!1,l=0,c=[];const g=Je(),C=Je(),V=Je(),M=Je(),m=Je(),E=Je(),k=Je(),D=Je(),H=Je(),J=Je(),x=Je(),N=Je(),P=Je(),_=Je(),B=qe(),q=Je(),Y=Je(),Z=Je(),$=Je(),te=Qt(),se=Qt(),oe=Qt(),ae=Qt(),fe=Qt(),Le=Qt(),Ce=Qt(),Re=Qt(),Te=Qt(),ve=Qt(),pe=Qt(),ye=Qt(),me=Qt(),De=Qt(),Ue=Qt(),Ke=Qt(),Xe=Qt(),Ye=Qt(),Ze=Qt(),tt=Qt(),st=Qt(),nt=Qt(),ot=Je(),lt=Qt(),[rt,it,ct,dt]=et((()=>Os)),ut=e=>{if(!He(e,((e,t)=>j([r,a],t))))return!1;const t=e[r];return!(!z(t)&&t!=o||(ne(e[a])!=t&&Me(e,a),0))},gt=W,ht=(t,s)=>(!e||ge(x,s)||Yt(s))&&He(t,((e,t)=>ft(s,t,e)),(()=>Yt(s))),ft=(e,t,s,n)=>He(n?s:Rt(s,e,t),((n,o)=>Q(It(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Yt(e,t))),It=(t,s,n,o)=>e?Q(Fe(Fe(x,t),n),(e=>ne(o)!=e[r]?Yt(t,s,n,o,e[a]):o),(()=>Yt(t,s,n,o))):F(ne(o))?Yt(t,s,n,o):o,bt=(e,t)=>He(t?e:Tt(e),((t,s)=>Q(wt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Zt())),wt=(e,s)=>t?Q(Fe(P,e),(t=>ne(s)!=t[r]?Zt(e,s,t[a]):s),(()=>Zt(e,s))):F(ne(s))?Zt(e,s):s,Rt=(e,t,s)=>(Q(Fe(N,t),(([n,o])=>{be(n,((t,s)=>{Ve(e,s)||(e[s]=t)})),be(o,(n=>{Ve(e,n)||Yt(t,s,n)}))})),e),Tt=e=>(t&&(be(_,((t,s)=>{Ve(e,s)||(e[s]=t)})),be(B,(t=>{Ve(e,t)||Zt(t)}))),e),vt=e=>Oe(x,e,((e,t,s)=>{const n=Je(),o=qe();Oe(Ne(x,t,Je),s,((e,t,s)=>{ze(e,t,s),Q(s[a],(e=>ze(n,t,e)),(()=>Ge(o,t)))})),ze(N,t,[n,o])}),((e,t)=>{ze(x,t),ze(N,t)})),pt=e=>Oe(P,e,((e,t,s)=>{ze(P,t,s),Q(s[a],(e=>ze(_,t,e)),(()=>Ge(B,t)))}),((e,t)=>{ze(P,t),ze(_,t),we(B,t)})),St=e=>ke(e)?ks():ys(e),yt=e=>Oe(Z,e,((e,t,s)=>Vt(t,s)),((e,t)=>At(t))),Vt=(e,t)=>Oe(Ne(Z,e,(()=>(Bt(e,1),ze(q,e,$e()),ze(Y,e,Je()),Je()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>Pt(e,t,s))),Mt=(e,t,s,n,o)=>Oe(Ne(t,s,(()=>(Ut(e,s,1),Je()))),n,((t,n,o)=>mt(e,s,t,n,o)),((n,l)=>_t(e,t,s,n,l,o))),mt=(e,t,s,n,o)=>{ge(s,n)||qt(e,t,n,1);const l=Fe(s,n);o!==l&&(Gt(e,t,n,l,o),ze(s,n,o))},Et=(e,t,s,n,o)=>Q(Fe(t,s),(t=>mt(e,s,t,n,o)),(()=>Mt(e,t,s,Rt({[n]:o},e,s)))),kt=e=>ke(e)?Js():Vs(e),Dt=e=>Oe($,e,((e,t,s)=>Ht(t,s)),((e,t)=>jt(t))),Ht=(e,t)=>{ge($,e)||Kt(e,1);const s=Fe($,e);t!==s&&(Xt(e,s,t),ze($,e,t))},Jt=e=>Fe(Z,e)??Vt(e,{}),At=e=>Vt(e,{}),Pt=(e,t,s)=>{const[,n]=Fe(q,e);n(s),Mt(e,t,s,{},!0)},_t=(e,t,s,n,o,l)=>{const r=Fe(Fe(N,e)?.[0],o);if(!F(r)&&!l)return mt(e,s,n,o,r);const a=t=>{Gt(e,s,t,Fe(n,t)),qt(e,s,t,-1),ze(n,t)};F(r)?a(o):Qe(n,a),he(n)&&(Ut(e,s,-1),he(ze(t,s))&&(Bt(e,-1),ze(Z,e),ze(q,e),ze(Y,e)))},jt=e=>{const t=Fe(_,e);if(!F(t))return Ht(e,t);Xt(e,Fe($,e)),Kt(e,-1),ze($,e)},Bt=(e,t)=>Ot(g,e,t),Ut=(e,t,s)=>Ot(Ne(M,e,Je),t,s)&&ze(V,e,Ne(V,e,(()=>0))+s),qt=(e,t,s,n)=>{const o=Fe(Y,e),l=Fe(o,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ot(Ne(C,e,Je),s,n),ze(o,s,l!=-n?l+n:null),Ot(Ne(Ne(m,e,Je),t,Je),s,n)},Gt=(e,t,s,n,o)=>{Ne(Ne(Ne(E,e,Je),t,Je),s,(()=>[n,0]))[1]=o,c[3]?.(e,t,s,o)},Kt=(e,t)=>Ot(k,e,t),Xt=(e,t,s)=>{Ne(D,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Yt=(e,t,s,n,o)=>(ee(Ne(Ne(Ne(H,e,Je),t,Je),s,(()=>[])),n),o),Zt=(e,t,s)=>(ee(Ne(J,e,(()=>[])),t),s),$t=(e,t,s)=>Q(Fe(Fe(Fe(E,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(fs(e,t,s))])),es=e=>Q(Fe(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(ws(e))])),ts=e=>he(H)||he(Ke[e])?0:be(e?Be(H):H,((t,s)=>be(t,((t,n)=>be(t,((t,o)=>it(Ke[e],[s,n,o],t))))))),ss=e=>he(J)||he(Xe[e])?0:be(e?_e(J):J,((t,s)=>it(Xe[e],[s],t))),ns=(e,t,s,n)=>{if(!he(e))return it(t,n,(()=>We(e))),Qe(e,((e,t)=>it(s,[...n??[],e],1==t))),1},os=e=>{const t=Ls();t!=s&&it(te[e],void 0,t);const n=he(ve[e]),o=he(me[e])&&he(De[e])&&he(Te[e])&&he(pe[e])&&he(Le[e])&&he(Ce[e])&&he(Re[e])&&n&&he(oe[e])&&he(ae[e]),l=he(Ue[e])&&he(ye[e])&&he(fe[e])&&he(se[e]);if(!o||!l){const t=e?[_e(g),je(C),_e(V),je(M),Be(m),Be(E)]:[g,C,V,M,m,E];if(!o){ns(t[0],oe[e],ae[e]),be(t[1],((t,s)=>ns(t,Le[e],Ce[e],[s]))),be(t[2],((t,s)=>{0!=t&&it(Re[e],[s],ds(s))}));const s=qe();be(t[3],((t,o)=>{ns(t,Te[e],pe[e],[o])&&!n&&(it(ve[e],[o,null]),Ge(s,o))})),n||be(t[5],((t,n)=>{if(!ge(s,n)){const s=qe();be(t,(e=>be(e,(([t,n],o)=>n!==t?Ge(s,o):we(e,o))))),be(s,(t=>it(ve[e],[n,t])))}})),be(t[4],((t,s)=>be(t,((t,n)=>ns(t,me[e],De[e],[s,n])))))}if(!l){let s;be(t[5],((t,n)=>{let o;be(t,((t,l)=>{let r;be(t,(([t,a],i)=>{a!==t&&(it(Ue[e],[n,l,i],a,t,$t),s=o=r=1)})),r&&it(ye[e],[n,l],$t)})),o&&it(fe[e],[n],$t)})),s&&it(se[e],void 0,$t)}}},ls=e=>{const t=ps();t!=n&&it(Ye[e],void 0,t);const s=he(tt[e])&&he(st[e]),o=he(nt[e])&&he(Ze[e]);if(!s||!o){const t=e?[_e(k),_e(D)]:[k,D];if(s||ns(t[0],tt[e],st[e]),!o){let s;be(t[1],(([t,n],o)=>{n!==t&&(it(nt[e],[o],n,t,es),s=1)})),s&&it(Ze[e],void 0,es)}}},rs=(e,...t)=>(Qs((()=>e(...X(t,y)))),Os),as=()=>Pe(Z),is=()=>xe(Z),cs=e=>xe(Fe(Y,y(e))),ds=e=>ie(Fe(Z,y(e))),us=e=>xe(Fe(Z,y(e))),gs=(e,t,s,n=0,o)=>{return X(A(G((l=Fe(Z,y(e)),r=(e,s)=>[F(t)?s:Fe(e,y(t)),s],X([...l?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>at(e,t)*(s?-1:1))),n,F(o)?o:n+o),(([,e])=>e));var l,r},hs=(e,t)=>xe(Fe(Fe(Z,y(e)),y(t))),fs=(e,t,s)=>Fe(Fe(Fe(Z,y(e)),y(t)),y(s)),Is=()=>We($),bs=()=>xe($),ws=e=>Fe($,y(e)),Ls=()=>!he(Z),Cs=e=>ge(Z,y(e)),Rs=(e,t)=>ge(Fe(Y,y(e)),y(t)),Ts=(e,t)=>ge(Fe(Z,y(e)),y(t)),vs=(e,t,s)=>ge(Fe(Fe(Z,y(e)),y(t)),y(s)),ps=()=>!he($),Ss=e=>ge($,y(e)),ys=e=>rs((()=>(e=>He(e,ht,Yt))(e)?yt(e):0)),Vs=e=>rs((()=>bt(e)?Dt(e):0)),Ms=e=>{try{St(Lt(e))}catch{}return Os},ms=t=>rs((()=>{if((e=He(t,(e=>He(e,ut))))&&(vt(t),!he(Z))){const e=as();ks(),ys(e)}})),Es=e=>rs((()=>{if(t=(e=>He(e,ut))(e)){const s=Is();Fs(),Js(),t=!0,pt(e),Vs(s)}})),ks=()=>rs((()=>yt({}))),Ds=e=>rs((e=>ge(Z,e)?At(e):0),e),Hs=(e,t)=>rs(((e,t)=>Q(Fe(Z,e),(s=>ge(s,t)?Pt(e,s,t):0))),e,t),Js=()=>rs((()=>Dt({}))),xs=()=>rs((()=>{vt({}),e=!1})),Fs=()=>rs((()=>{pt({}),t=!1})),Qs=(e,t)=>{if(-1!=l){zs();const s=e();return Ns(t),s}},zs=()=>(-1!=l&&l++,1==l&&(c[0]?.(),it(ot)),Os),Ns=e=>(l>0&&(l--,0==l&&(l=1,ts(1),he(E)||os(1),ss(1),he(D)||ls(1),e?.(Os)&&(be(E,((e,t)=>be(e,((e,s)=>be(e,(([e],n)=>le(Os,t,s,n,e))))))),Ie(E),be(D,(([e],t)=>re(Os,t,e))),Ie(D)),it(lt[0],void 0),l=-1,ts(0),he(E)||os(0),ss(0),he(D)||ls(0),c[1]?.(),it(lt[1],void 0),c[2]?.(),l=0,s=Ls(),n=ps(),K([g,C,V,M,m,E,H,k,D,J],Ie))),Os),Os={getContent:()=>[as(),Is()],getTables:as,getTableIds:is,getTable:e=>Ae(Fe(Z,y(e))),getTableCellIds:cs,getRowCount:ds,getRowIds:us,getSortedRowIds:gs,getRow:(e,t)=>We(Fe(Fe(Z,y(e)),y(t))),getCellIds:hs,getCell:fs,getValues:Is,getValueIds:bs,getValue:ws,hasTables:Ls,hasTable:Cs,hasTableCell:Rs,hasRow:Ts,hasCell:vs,hasValues:ps,hasValue:Ss,getTablesJson:()=>Ct(Z),getValuesJson:()=>Ct($),getJson:()=>Ct([Z,$]),getTablesSchemaJson:()=>Ct(x),getValuesSchemaJson:()=>Ct(P),getSchemaJson:()=>Ct([x,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>rs((()=>{const t=O(e)?e():e;gt(t)&&(([e,t])=>{(ke(e)?ks:ys)(e),(ke(t)?Js:Vs)(t)})(t)})),setTables:ys,setTable:(e,t)=>rs((e=>ht(t,e)?Vt(e,t):0),e),setRow:(e,t,s)=>rs(((e,t)=>ft(e,t,s)?Mt(e,Jt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Qs((()=>{let n;return ft(e,n,t)&&(e=y(e),Mt(e,Jt(e),n=((e,t)=>{const[s]=Fe(q,e);let n;do{n=s(t)}while(ge(Fe(Z,e),n));return n})(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>rs(((e,t)=>{if(ft(e,t,s,1)){const n=Jt(e);Ee(s,((s,o)=>Et(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>rs(((e,t,s)=>Q(It(e,t,s,O(n)?n(fs(e,t,s)):n),(n=>Et(e,Jt(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>rs((()=>bt(e,1)?Ee(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>rs((e=>Q(wt(e,O(t)?t(ws(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>rs((()=>{Ee(e[0],((e,t)=>F(e)?Ds(t):Ee(e,((e,s)=>F(e)?Hs(t,s):Ee(e,((e,n)=>le(Os,t,s,n,e))))))),Ee(e[1],((e,t)=>re(Os,t,e)))})),setTablesJson:Ms,setValuesJson:e=>{try{kt(Lt(e))}catch{}return Os},setJson:e=>rs((()=>{try{const[t,s]=Lt(e);St(t),kt(s)}catch{Ms(e)}})),setTablesSchema:ms,setValuesSchema:Es,setSchema:(e,t)=>rs((()=>{ms(e),Es(t)})),delTables:ks,delTable:Ds,delRow:Hs,delCell:(e,t,s,n)=>rs(((e,t,s)=>Q(Fe(Z,e),(o=>Q(Fe(o,t),(l=>ge(l,s)?_t(e,o,t,l,s,n):0))))),e,t,s),delValues:Js,delValue:e=>rs((e=>ge($,e)?jt(e):0),e),delTablesSchema:xs,delValuesSchema:Fs,delSchema:()=>rs((()=>{xs(),Fs()})),transaction:Qs,startTransaction:zs,getTransactionChanges:()=>[We(E,((e,t)=>-1===Fe(g,t)?void 0:We(e,((e,s)=>-1===Fe(Fe(M,t),s)?void 0:We(e,(([,e])=>e),(e=>Nt(e)))),he,ke)),he,ke),We(D,(([,e])=>e),(e=>Nt(e))),1],getTransactionLog:()=>[!he(E),!he(D),Pe(E,zt,Nt),Pe(H),We(D,zt,Nt),We(J),We(g),Ae(M),Pe(m),We(k)],finishTransaction:Ns,forEachTable:e=>be(Z,((t,s)=>e(s,(e=>be(t,((t,s)=>e(s,(e=>Qe(t,e))))))))),forEachTableCell:(e,t)=>Qe(Fe(Y,y(e)),t),forEachRow:(e,t)=>be(Fe(Z,y(e)),((e,s)=>t(s,(t=>Qe(e,t))))),forEachCell:(e,t,s)=>Qe(Fe(Fe(Z,y(e)),y(t)),s),forEachValue:e=>Qe($,e),addSortedRowIdsListener:(e,t,s,n,o,l,r)=>{let a=gs(e,t,s,n,o);return rt((()=>{const r=gs(e,t,s,n,o);U(r,a)||(a=r,l(Os,e,t,s,n,o,a))}),ve[r?1:0],[e,t],[is])},addStartTransactionListener:e=>rt(e,ot),addWillFinishTransactionListener:e=>rt(e,lt[0]),addDidFinishTransactionListener:e=>rt(e,lt[1]),callListener:e=>(dt(e),Os),delListener:e=>(ct(e),Os),getListenerStats:()=>({hasTables:Ft(te),tables:Ft(se),tableIds:Ft(oe),hasTable:Ft(ae),table:Ft(fe),tableCellIds:Ft(Le),hasTableCell:Ft(Ce,de),rowCount:Ft(Re),rowIds:Ft(Te),sortedRowIds:Ft(ve),hasRow:Ft(pe,de),row:Ft(ye,de),cellIds:Ft(me,de),hasCell:Ft(De,ue),cell:Ft(Ue,ue),invalidCell:Ft(Ke,ue),hasValues:Ft(Ye),values:Ft(Ze),valueIds:Ft(tt),hasValue:Ft(st),value:Ft(nt),invalidValue:Ft(Xe),transaction:ce(ot)+Ft(lt)}),isMergeable:()=>!1,createStore:Wt,addListener:rt,callListeners:it,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Ee({[u+f]:[0,te,[],()=>[Ls()]],[f]:[0,se],[I]:[0,oe],[u+h]:[1,ae,[is],e=>[Cs(...e)]],[h]:[1,fe,[is]],[h+T]:[1,Le,[is]],[u+h+R]:[2,Ce,[is,cs],e=>[Rs(...e)]],[w]:[1,Re,[is]],[L]:[1,Te,[is]],[u+b]:[2,pe,[is,us],e=>[Ts(...e)]],[b]:[2,ye,[is,us]],[T]:[2,me,[is,us]],[u+R]:[3,De,[is,us,hs],e=>[vs(...e)]],[R]:[3,Ue,[is,us,hs],e=>xt(fs(...e))],InvalidCell:[3,Ke],[u+p]:[0,Ye,[],()=>[ps()]],[p]:[0,Ze],[S]:[0,tt],[u+v]:[1,st,[bs],e=>[Ss(...e)]],[v]:[1,nt,[bs],e=>xt(ws(e[0]))],InvalidValue:[1,Xe]},(([e,t,s,n],o)=>{Os[d+o+i]=(...o)=>rt(o[e],t[o[e+1]?1:0],e>0?A(o,0,e):void 0,s,n)})),Se(Os)},At={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},Pt=(e=t)=>[kt(e),kt(e)],_t=e=>{let s=1,n=Pt(),o=0;const l=Je(),r=qe(),[a,c]=(e=>{let t=0,s=-1;const n=Q(e,(e=>{const t=ut(e);return ot(t/ft)+ot(t/It)+ot(t/bt)+ot(t/64)+ot(t)}),(()=>it(5))),o=e=>{const n=t,[o,l]=F(e)||""==e?[0,0]:[lt(r=e,0)*gt+lt(r,1)*ht+lt(r,2)*ft+lt(r,3)*It+lt(r,4)*bt+64*lt(r,5)+lt(r,6),lt(r,7)*It+lt(r,8)*bt+64*lt(r,9)+lt(r,10)];var r;t=D(n,o,E.HLC_TIME??Date.now()),s=t==n?t==o?D(s,l):s:t==o?l:-1};return[()=>{return o(),l=++s,ot((e=t)/gt)+ot(e/ht)+ot(e/ft)+ot(e/It)+ot(e/bt)+ot(e/64)+ot(e)+ot(l/It)+ot(l/bt)+ot(l/64)+ot(l)+n;var e,l},o]})(e),u=Wt(),g=e=>{const t=s;return s=0,e(),s=t,w},h=(e,s=0)=>{const o={},l={},[[r,a=t,i=0],d]=e,[u,g]=n,[h,I,b]=u;let w=s?i:b,L=a;me(r,(([e,n=t,l=0],r)=>{const a=Ne(h,r,kt),[i,c,d]=a;let u=s?l:d,g=n;me(e,((e,t)=>{const[n,l,a]=f(e,Ne(i,t,kt),De(De(o,r,ye),t,ye),s);u^=s?0:(l?yt(t,l):0)^yt(t,a),g=Mt(g,n)})),u^=s?0:Vt(c,n),mt(a,n,u),w^=s?0:(d?yt(r,d):0)^yt(r,a[2]),L=Mt(L,g)})),w^=s?0:Vt(I,a),mt(u,a,w);const[C]=f(d,g,l,s);return c(Mt(L,C)),[o,l,1]},f=(e,s,n,o)=>{const[l,r=t,a=0]=e,[i,c,d]=s;let u=r,g=o?a:d;return me(l,(([e,s=t,l=0],r)=>{const a=Ne(i,r,(()=>[void 0,t,0])),[,c,d]=a;(!c||s>c)&&(mt(a,s,o?l:ut(Ct(e??null)+":"+s)),a[0]=e,n[r]=e,g^=o?0:yt(r,d)^yt(r,a[2]),u=Mt(u,s))})),g^=o?0:Vt(c,r),mt(s,r,g),[u,d,s[2]]},I=()=>[Dt(n[0],(e=>Dt(e,(e=>Dt(e))))),Dt(n[1])],b=e=>g((()=>u.applyChanges(h(e)))),w={getMergeableContent:I,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>We(n[0][0],St),getMergeableTableDiff:e=>{const t=Et(n[0][1]),s={};return Qe(n[0][0],((n,[o,l,r])=>Ve(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Ht([o,l],(e=>Ht(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(n[0][0],s),(([n,,o])=>o!=e?Qe(n,((e,[,,n])=>De(t,s,ye)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Et(n[0][1]),s={};return me(e,((e,o)=>Qe(Fe(n[0][0],o)?.[0],((n,[l,r,a])=>Ve(e,n)?a!==e[n]?De(s,o,ye)[n]=a:0:De(t[0],o,Et)[0][n]=Ht([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(n[0][0],s),(([n])=>me(e,((e,o)=>Q(Fe(n,o),(([n,,l])=>l!==e?Qe(n,((e,[,,n])=>De(De(t,s,ye),o,ye)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,o={};return me(e,((e,s)=>me(e,((e,n)=>Q(Fe(t,s),(([t,l])=>Q(Fe(t,n),(([t,r])=>Qe(t,((t,[a,i,c])=>c!==e[t]?De(De(o,s,(()=>Et(l)))[0],n,(()=>Et(r)))[0][t]=[a,i]:0)))))))))),vt(o,s)},getMergeableValueHashes:()=>We(n[1][0],St),getMergeableValueDiff:e=>{const[,[t,s]]=n,o=We(t,Rt,(([,,t],s)=>t==e?.[s]));return vt(o,s)},setMergeableContent:e=>g((()=>(e=>W(e)&&2==P(e)&&Jt(e[0],(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,oe)),void 0,1)))),void 0,1)))),void 0,1)))&&Jt(e[1],(e=>He(e,(e=>Jt(e,oe)),void 0,1))))(e)?u.transaction((()=>{u.delTables().delValues(),n=Pt(),u.applyChanges(h(e,1))})):0)),setDefaultContent:e=>(u.transaction((()=>{o=1,u.setContent(e),o=0})),w),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,o],[a,i,c]]=n,d=e?pt:vt,u={};be(l,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const l={};be(e,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const r={};be(e,(e=>{Q(Fe(t,e),(([t,s,n])=>r[e]=d(t,s,n)))})),l[s]=d(r,n,o)})))),u[s]=d(l,n,o)}))));const g={};return be(r,(e=>Q(Fe(a,e),(([t,s,n])=>g[e]=d(t,s,n))))),[d(u,s,o),d(g,i,c),1]},applyMergeableChanges:b,merge:e=>{const t=I(),s=e.getMergeableContent();return e.applyMergeableChanges(t),b(s)}};return u.setInternalListeners((()=>{}),(()=>{}),(()=>{Ie(l),Ie(r)}),((e,n,r,i)=>{Ge(Ne(Ne(l,e,Je),n,qe),r),s&&h([[{[e]:[{[n]:[{[r]:[i,o?t:a()]}]}]}],[{}],1])}),((e,n)=>{Ge(r,e),s&&h([[{}],[{[e]:[n,o?t:a()]}],1])})),Ee(u,((e,t)=>w[t]=V(t,"set")||V(t,"del")||V(t,"apply")||M(t,"Transaction")||t=="call"+i?(...t)=>(e(...t),w):V(t,d)&&M(t,i)?(...s)=>{const n=At[A(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(w,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),Se(w)},jt=Je([["avg",[(e,t)=>Y(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>Y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Bt=(e,t,s,n,o,l=!1)=>{if(he(s))return;const[r,a,i,c]=o;return l||=F(e),be(n,(([s,n])=>{l||(e=F(s)?a?.(e,n,t++):F(n)?i?.(e,s,t--):c?.(e,n,s,t),l||=F(e))})),l?r(fe(s),ie(s)):e},Ut=Ye((e=>{const s=Je(),[n,o,l]=et((()=>w)),[r,a,i,c,d,u,g,,h,f,I,b]=Ke(e,_,(e=>isNaN(e)||F(e)||!0===e||!1===e||e===t?void 0:1*e),n,o),w={setMetricDefinition:(e,t,n,l,r,a,i)=>{const c=O(n)?[n,r,a,i]:Fe(jt,n)??Fe(jt,"sum");return h(e,t,((t,n,l,r,a,i)=>{const d=u(e),h=ie(r);i||=F(d),t();let f=Bt(d,h,r,n,c,i);x(f)||(f=void 0),f!=d&&(g(e,f),o(s,[e],f,d))}),Xe(l,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(l(e),w),destroy:b,getListenerStats:()=>({metric:ce(s)})};return Se(w)})),qt=Ye((e=>{const s=e.createStore,n=s(),o=s(),l=Je(),{addListener:r,callListeners:a,delListener:u}=o,[g,f,I,v,p,,,S,,y,V,M,m,E]=Ke(e,(()=>!0),_,r,a),k=(e,t,...s)=>K(s,(s=>Ge(Ne(Ne(l,t,Je),e,qe),s))),D=e=>{Q(Fe(l,e),(e=>{Qe(e,((e,t)=>be(t,(t=>e.delListener(t))))),Ie(e)})),K([o,n],(t=>t.delTable(e)))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),J={setQueryDefinition:(s,l,r)=>{S(s,l),D(s);const a=[],i=[[null,[l,null,null,[],Je()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=O(e)?[P(a)+t,e]:[F(s)?e:s,t=>t(e,s)];return ee(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=F(s)||O(t)?null:t,o=F(n)?t:s,l=[e,[e,n,O(o)?o:e=>e(o),[],Je()]];return ee(i,l),{as:e=>l[0]=e}},where:(e,t,s)=>ee(c,O(e)?e:F(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const l=[e,[e,O(t)?[t,s,n,o]:Fe(jt,t)??[(e,t)=>t]]];return ee(d,l),{as:e=>l[0]=e}},having:(e,t)=>ee(u,O(e)?e:s=>s(e)===t)});const g=Je(a);if(he(g))return J;const h=Je(i);Qe(h,((e,[,t])=>Q(Fe(h,t),(({3:t})=>F(e)?0:ee(t,e)))));const f=Je(d);let I=n;if(he(f)&&Z(u))I=o;else{H(s,I,o);const e=Je();Qe(f,((t,[s,n])=>Ge(Ne(e,s,qe),[t,n])));const t=qe();Qe(g,(s=>ge(e,s)?0:Ge(t,s)));const n=Je(),l=(t,n,l,r)=>Q(t,(([a,i,c,d])=>{Qe(n,((t,[s])=>{const n=Ne(a,t,Je),o=Fe(n,l),i=r?void 0:s;if(o!==i){const s=qe([[o,i]]),r=ie(n);ze(n,l,i),be(Fe(e,t),(([e,t])=>{const o=Bt(d[e],r,n,s,t);d[e]=F(ne(o))?null:o}))}})),he(i)||!B(u,(e=>e((e=>d[e]))))?o.delRow(s,c):F(c)?t[2]=o.addRow(s,d):o.setRow(s,c,d)}));k(I,s,I.addRowListener(s,null,((o,r,a,i)=>{const c=[],d=[],u=Je(),g=I.hasRow(s,a);let h=!g;be(t,(e=>{const[t,n,o]=i(s,a,e);ee(c,n),ee(d,o),h||=t})),Qe(e,(e=>{const[t,,n]=i(s,a,e);(h||t)&&ze(u,e,[n])})),h&&l(Ue(n,c,void 0,(([,e])=>(we(e,a),he(e)))),u,a,1),g&&l(Ue(n,d,(()=>{const e={};return be(t,(t=>e[t]=I.getCell(s,a,t))),[Je(),qe(),void 0,e]}),(([,e])=>{Ge(e,a)})),u,a)})))}H(s,e,I);const b=(t,n,o,r)=>{const a=t=>e.getCell(n,o,t);K(r,(n=>{const[o,,l,r,i]=Fe(h,n),c=l?.(a,t),[d,u]=Fe(i,t)??[];c!=d&&(F(u)||E(s,u),ze(i,t,F(c)?null:[c,...m(s,1,e.addRowListener(o,c,(()=>b(t,o,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...F(n)?[l,t,s]:s===l?[l,t,n]:[Fe(h,s)?.[0],Fe(Fe(h,s)?.[4],t)?.[0],n]);I.transaction((()=>B(c,(e=>e(n)))?Qe(g,((e,o)=>le(I,s,t,e,o(n,t)))):I.delRow(s,t)))})(t)},{3:w}=Fe(h,null);return I.transaction((()=>m(s,1,e.addRowListener(l,null,((t,n,o)=>{e.hasRow(l,o)?b(o,l,o,w):(I.delRow(s,o),be(h,(({4:e})=>Q(Fe(e,o),(([,t])=>{E(s,t),ze(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:I,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V((()=>e(J))),delListener:e=>(u(e),J),destroy:M,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Ee({[h]:[1,1],[h+T]:[0,1],[w]:[0,1],[L]:[0,1],[C]:[0,5],[b]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{K(e?["get","has","forEach"]:["get"],(e=>J[e+c+s]=(...t)=>o[e+s](...t))),J[d+c+s+i]=(...e)=>o[d+s+i](...A(e,0,t),((s,...n)=>e[t](J,...n)),!0)})),Se(J)})),Gt=Ye((e=>{const s=Je(),n=Je(),o=Je(),l=Je(),[r,a,i]=et((()=>v)),[c,d,u,g,h,f,,,I,b,w,L]=Ke(e,(()=>[Je(),Je(),Je(),Je()]),(e=>F(e)?void 0:e+t),r,a),C=(e,t,s)=>Q(f(e),(([n,,o])=>{if(!ge(o,t)){const l=qe();if(h(e)!=T(e))Ge(l,t);else{let e=t;for(;!F(e)&&!ge(l,e);)Ge(l,e),e=Fe(n,e)}if(s)return l;ze(o,t,l)}return Fe(o,t)})),R=(e,t)=>Q(f(e),(([,,e])=>ze(e,t))),T=e=>Fe(s,e),v={setRelationshipDefinition:(e,t,r,i)=>(ze(s,e,r),I(e,t,((t,s)=>{const r=qe(),i=qe(),c=qe(),[d,u]=f(e);be(s,(([t,s],n)=>{F(t)||(Ge(i,t),Q(Fe(u,t),(e=>{we(e,n),he(e)&&ze(u,t)}))),F(s)||(Ge(i,s),ge(u,s)||ze(u,s,qe()),Ge(Fe(u,s),n)),Ge(r,n),ze(d,n,s),Qe(Fe(l,e),(t=>{ge(C(e,t),n)&&Ge(c,t)}))})),t(),be(r,(t=>a(n,[e,t]))),be(i,(t=>a(o,[e,t]))),be(c,(t=>{R(e,t),a(l,[e,t])}))}),Xe(i)),v),delRelationshipDefinition:e=>(ze(s,e),b(e),v),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>Fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>fe(Fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>F(f(e))?[t]:fe(C(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),r(s,l,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:L,getListenerStats:()=>({remoteRowId:de(n),localRowIds:de(o),linkedRowIds:de(l)})};return Se(v)}));export{tt as createCheckpoints,ct as createIndexes,_t as createMergeableStore,Ut as createMetrics,qt as createQueries,Gt as createRelationships,Wt as createStore,at as defaultSorter,it as getUniqueId};