tinybase 4.3.6 → 4.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>$(e)===$(t)&&z(e,((e,s)=>t[s]===e)),O=(e,t)=>z(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),P=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),B=e=>G(e,((e,t)=>e+t),0),$=e=>e.length,q=e=>0==$(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>$(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>$(t)-2?s:he),(o=>{if(a>$(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return P(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{P(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&N(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&P(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&$(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>P(((e,s=[t])=>{const n=[],a=(e,t)=>t==$(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):P([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=$(r);l==$(t)?e(s,...r,...a(r)):k(t[l])?P(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>F)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>P(((e,t)=>e.splice(0,t))(e,t??$(e)),R),T=()=>v(w,$(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),F),x=e=>re(f,e),F={setSize:e=>(o=e,T(),F),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),F),goForward:()=>(E(),D(),F),goTo:e=>{const t=Q(w,e)?m:Q(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(F.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?W(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];O(s,t)||(we(S,e,ke(j(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];O(t,c)||(g(e,he(j(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>B(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=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),F,r,l),A=(e,t,...s)=>P(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),Q=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),P([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(s,o,r)=>{p(s,o),Q(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[$(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return O;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{N(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!z(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}N(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);P(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>z(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),O},delQueryDefinition:e=>(Q(e),b(e),O),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(O))),delListener:e=>(u(e),O),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{P(e?["get","has","forEach"]:["get"],(e=>O[e+c+s]=(...t)=>a[e+s](...t))),O[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](O,...n)))})),_(O)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),F=he(),z=he(),O=he(),B=he(),$=he(),q=he(),G=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>Q([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(O,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(O,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(B,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(O,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(O,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(B,t,[n,a])}),((e,t)=>{we(O,t),we(B,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),M(s[l],(e=>we(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(B,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe(q,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(z,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(F)||le(je[e])?0:de(e?pe(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(z)||le(Pe[e])?0:de(e?ye(z):z,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(F),changedValues:Re(A,Xe,Ye),invalidValues:Re(z),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return W(x(j((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,P([c,u,S,b,V,m,F,E,A,z],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(O),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([O,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);N(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+"Count",I=L+u,S="Sorted"+L+u,R="Cell",v=R+u,T="Value",y=T+"s",C=T+u,p=e=>t+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),D=e=>e==s||e==n,J=t=>e(t)==o,A=e=>Array.isArray(e),x=(e,t,s)=>e.slice(t,s),F=()=>{},Q=(e,t)=>e.includes(t),z=(e,t)=>e.every(t),N=(e,t)=>$(e)===$(t)&&z(e,((e,s)=>t[s]===e)),O=(e,t)=>z(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),P=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),B=e=>G(e,((e,t)=>e+t),0),$=e=>e.length,q=e=>0==$(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>$(Y(e)))(e),oe=e=>e?.size??0,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),ge=e=>[...e?.keys()??[]],fe=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Ie=(e,t,s)=>(re(e,t)||we(e,t,s()),fe(e,t)),Se=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),ae),Te=(e,t,s)=>Re(e,(e=>ve(e,t,s)),ae),ye=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>ye(e,ye),pe=e=>ye(e,Ce),be=(e,t,s,n,a=0)=>M((s?Ie:fe)(e,t[a],a>$(t)-2?s:he),(o=>{if(a>$(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=t=>{const s=e(t);return D(s)||s==a&&m(t)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=he(),l=he(),i=he(),c=he(),d=he(),u=he(),h=(t,s,...n)=>{const a=Ie(u,t,ke);return P(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(fe(u,t),(n=>{P(q(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(u,t)})),f=(e,s)=>{we(r,e,s),re(l,e)||(we(l,e,t()),we(c,e,he()),we(d,e,he()),a(i))},L=e=>{we(r,e),we(l,e),we(c,e),we(d,e),g(e),a(i)};return[()=>e,()=>ge(r),e=>Le(l,e),e=>re(l,e),e=>fe(r,e),e=>fe(l,e),(e,t)=>we(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=he(),u=he(),L=fe(c,t),w=fe(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=fe(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&N(c,d)||we(i,t,[c,d]),!k(l)){const e=fe(w,t),s=o(n,t)?l(a,t):void 0;e!=s&&we(u,t,s)}},S=e=>{a((()=>{de(i,(([,e],t)=>we(L,t,e))),de(u,((e,t)=>we(w,t,e)))}),i,u,L,w,e),ce(i),ce(u)};Le(L,I),e.hasTable(n)&&P(e.getRowIds(n),(e=>{re(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,i),()=>Le(u,L),h,g]},Je=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},xe=/^\d+$/,Fe=()=>{const e=[];let s=0;return[n=>(n?U(e):null)??t+s++,t=>{xe.test(t)&&$(e)<1e3&&H(e,t)}]},Qe=e=>{let s;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[t],ke),d),d},(e,n,...a)=>P(((e,s=[t])=>{const n=[],a=(e,t)=>t==$(s)?H(n,e):null===s[t]?de(e,(e=>a(e,t+1))):P([s[t],null],(s=>a(fe(e,s),t+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>fe(o,e)[0](s,...n??[],...a))))),e=>M(fe(o,e),(([,s,n])=>(be(s,n??[t],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(fe(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=$(r);l==$(t)?e(s,...r,...a(r)):k(t[l])?P(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},ze=Ae((e=>{let s,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,g]=Qe((()=>F)),f=he(),L=he(),w=[],I=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=fe(f,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(L,e),h(d,[e])},v=(e,t)=>P(((e,t)=>e.splice(0,t))(e,t??$(e)),R),T=()=>v(w,$(w)-o),y=()=>M(s,(()=>{H(w,s),T(),v(I),s=void 0,a=1})),C=()=>{s=K(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Ie(r,t,he),l=Ie(e,s,he),i=Ie(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Ie(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&C(),D()}})),V=(e="")=>(k(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=he(),l=he(),a=1),s),m=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,V()),S(0,s),s=K(w),a=1)},E=()=>{q(I)||(H(w,s),s=U(I),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(x(e)&&fe(L,e)!==t&&(we(L,e,t),h(d,[e])),F),x=e=>re(f,e),F={setSize:e=>(o=e,T(),F),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...I]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:x,getCheckpoint:e=>fe(L,e),goBackward:()=>(m(),D(),F),goForward:()=>(E(),D(),F),goTo:e=>{const t=Q(w,e)?m:Q(I,e)?E:null;for(;!k(t)&&e!=s;)t();return D(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),k(s)||R(s),s=void 0,n=0,J(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return _(F.clear())})),Ne=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const s=he(),n=he(),[a,o,r]=Qe((()=>R)),[l,i,c,d,u,h,g,,f,L,w,I]=De(e,he,(e=>k(e)?t:A(e)?W(e,p):p(e)),a,o),S=(t,s,n)=>{const a=u(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},R={setIndexDefinition:(e,t,a,r,l,i=Ne)=>{const c=k(l)?void 0:([e],[t])=>l(e,t);return f(e,t,((t,a,l,d,u,f)=>{let L=0;const w=ke(),I=ke(),S=h(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(fe(S,e),(t=>{ue(t,s),le(t)&&(we(S,e),L=1)}))})),de(a,(e=>{Me(w,e),re(S,e)||(we(S,e,ke()),L=1),Me(fe(S,e),s),k(r)||Me(I,e)}))})),t(),le(u)||(f?Le(S,(e=>Me(I,e))):Le(l,(e=>M(fe(d,e),(e=>Me(I,e))))),de(I,(e=>{const t=(t,s)=>i(fe(u,t),fe(u,s),e),s=[...fe(S,e)];O(s,t)||(we(S,e,ke(j(s,t))),Me(w,e))}))),(L||f)&&!k(c)){const t=[...S];O(t,c)||(g(e,he(j(t,c))),L=1)}L&&o(s,[e]),de(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),R},delIndexDefinition:e=>(L(e),R),getStore:l,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>re(h(e),t),getTableId:u,getSliceIds:e=>ge(h(e)),getSliceRowIds:(e,t)=>ie(fe(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),R),destroy:I,getListenerStats:()=>({})};return _(R)})),je=he([["avg",[(e,t)=>B(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=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},We=Ae((e=>{const s=he(),[n,a,o]=Qe((()=>I)),[r,l,i,c,d,u,h,,g,f,L,w]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===t?void 0:1*e),n,a),I={setMetricDefinition:(e,t,n,o,r,l,i)=>{const c=J(n)?[n,r,l,i]:fe(je,n)??fe(je,"sum");return g(e,t,((t,n,o,r,l,i)=>{const d=u(e),g=oe(r);i||=k(d),t();let f=Pe(d,g,r,n,c,i);m(f)||(f=void 0),f!=d&&(h(e,f),a(s,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return _(I)})),Be=he(),$e=he(),qe=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Ie(Be,r,(()=>0)),Ie($e,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(M(l,e.delListener),g),schedule:async(...e)=>(H(fe($e,r),...e),await(async()=>{if(!fe(Be,r)){for(we(Be,r,1);!k(i=U(fe($e,r)));)try{await i()}catch(e){o?.(e)}we(Be,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(g)},Ge=Ae((e=>{const s=e.createStore,n=s(),a=s(),o=he(),{addListener:r,callListeners:l,delListener:u}=a,[g,f,T,y,C,,,p,,b,V,m,E,D]=De(e,(()=>!0),F,r,l),A=(e,t,...s)=>P(s,(s=>Me(Ie(Ie(o,t,he),e,ke),s))),Q=e=>{M(fe(o,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),P([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>A(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(s,o,r)=>{p(s,o),Q(s);const l=[],i=[[null,[o,null,null,[],he()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=J(e)?[$(l)+t,e]:[k(s)?e:s,t=>t(e,s)];return H(l,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||J(t)?null:t,a=k(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],he()]];return H(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,J(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:fe(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,J(e)?e:s=>s(e)===t)});const h=he(l);if(le(h))return O;const g=he(i);Le(g,((e,[,t])=>M(fe(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(d);let L=n;if(le(f)&&q(u))L=a;else{N(s,L,a);const e=he();Le(f,((t,[s,n])=>Me(Ie(e,s,ke),[t,n])));const t=ke();Le(h,(s=>re(e,s)?0:Me(t,s)));const n=he(),o=(t,n,o,r)=>M(t,(([l,i,c,d])=>{Le(n,((t,[s])=>{const n=Ie(l,t,he),a=fe(n,o),i=r?void 0:s;if(a!==i){const s=ke([[a,i]]),r=oe(n);we(n,o,i),de(fe(e,t),(([e,t])=>{const a=Pe(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(i)||!z(u,(e=>e((e=>d[e]))))?a.delRow(s,c):k(c)?t[2]=a.addRow(s,d):a.setRow(s,c,d)}));A(L,s,L.addRowListener(s,null,((a,r,l,i)=>{const c=[],d=[],u=he(),h=L.hasRow(s,l);let g=!h;de(t,(e=>{const[t,n,a]=i(s,l,e);H(c,n),H(d,a),g||=t})),Le(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&o(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&o(be(n,d,(()=>{const e={};return de(t,(t=>e[t]=L.getCell(s,l,t))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}N(s,e,L);const w=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);P(r,(n=>{const[a,,o,r,i]=fe(g,n),c=o?.(l,t),[d,u]=fe(i,t)??[];c!=d&&(k(u)||D(s,u),we(i,t,k(c)?null:[c,...E(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...k(n)?[o,t,s]:s===o?[o,t,n]:[fe(g,s)?.[0],fe(fe(g,s)?.[4],t)?.[0],n]);L.transaction((()=>z(c,(e=>e(n)))?Le(h,((e,a)=>me(L,s,t,e,a(n,t)))):L.delRow(s,t)))})(t)},{3:I}=fe(g,null);return L.transaction((()=>E(s,1,e.addRowListener(o,null,((t,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(s,a),de(g,(({4:e})=>M(fe(e,a),(([,t])=>{D(s,t),we(e,a)})))))}))))),O},delQueryDefinition:e=>(Q(e),b(e),O),getStore:g,getQueryIds:f,forEachQuery:T,hasQuery:y,getTableId:C,addQueryIdsListener:e=>V((()=>e(O))),delListener:e=>(u(e),O),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ne({[h]:[1,1],[h+v]:[0,1],[w]:[0,1],[I]:[0,1],[S]:[0,5],[L]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{P(e?["get","has","forEach"]:["get"],(e=>O[e+c+s]=(...t)=>a[e+s](...t))),O[d+c+s+i]=(...e)=>a[d+s+i](...x(e,0,t),((s,...n)=>e[t](O,...n)),!0)})),_(O)})),He=Ae((e=>{const s=he(),n=he(),a=he(),o=he(),[r,l,i]=Qe((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+t),r,l),R=(e,t,s)=>M(f(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(g(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=fe(n,e)}if(s)return o;we(a,t,o)}return fe(a,t)})),v=(e,t)=>M(f(e),(([,,e])=>we(e,t))),T=e=>fe(s,e),y={setRelationshipDefinition:(e,t,r,i)=>(we(s,e,r),L(e,t,((t,s)=>{const r=ke(),i=ke(),c=ke(),[d,u]=f(e);de(s,(([t,s],n)=>{k(t)||(Me(i,t),M(fe(u,t),(e=>{ue(e,n),le(e)&&we(u,t)}))),k(s)||(Me(i,s),re(u,s)||we(u,s,ke()),Me(fe(u,s),n)),Me(r,n),we(d,n,s),Le(fe(o,e),(t=>{re(R(e,t),n)&&Me(c,t)}))})),t(),de(r,(t=>l(n,[e,t]))),de(i,(t=>l(a,[e,t]))),de(c,(t=>{v(e,t),l(o,[e,t])}))}),Je(i)),y),delRelationshipDefinition:e=>(we(s,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:T,getRemoteRowId:(e,t)=>fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>ie(fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ie(R(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),r(s,o,[e,t])),delListener:e=>(v(...i(e)??[]),y),destroy:S,getListenerStats:()=>({})};return _(y)})),Ke=e=>[e,e],Ue=()=>[he(),he()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),tt=(e,t,s)=>we(e,t,fe(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,o=0;const c=he(),u=he(),S=he(),b=he(),V=he(),m=he(),E=he(),A=he(),F=he(),z=he(),O=he(),B=he(),$=he(),q=he(),G=ke(),K=he(),U=he(),X=he(),Y=he(),Z=Ue(),ee=Ue(),ie=Ue(),be=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),xe=Ue(),ze=Ue(),Oe=Ue(),je=Ue(),Pe=Ue(),We=Ue(),Be=Ue(),$e=Ue(),qe=he(),Ge=Ue(),[He,nt,at,ot]=Qe((()=>Rs)),rt=e=>{if(!et(e,((e,t)=>Q([r,l],t))))return!1;const t=e[r];return!(!D(t)&&t!=a||(Ve(e[l])!=t&&se(e,l),0))},lt=(t,s)=>(!e||re(O,s)||zt(s))&&et(t,((e,t)=>it(s,t,e)),(()=>zt(s))),it=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(fe(fe(O,t),n),(e=>Ve(a)!=e[r]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(fe($,e),(t=>Ve(s)!=t[r]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(fe(B,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(de(q,((t,s)=>{te(e,s)||(e[s]=t)})),de(G,(t=>{te(e,t)||Nt(t)}))),e),ft=e=>Se(O,e,((e,t,s)=>{const n=he(),a=ke();Se(Ie(O,t,he),s,((e,t,s)=>{we(e,t,s),M(s[l],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(B,t,[n,a])}),((e,t)=>{we(O,t),we(B,t)})),Lt=e=>Se($,e,((e,t,s)=>{we($,t,s),M(s[l],(e=>we(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{we($,t),we(q,t),ue(G,t)})),wt=e=>ae(e)?ds():os(e),It=e=>Se(X,e,((e,t,s)=>St(t,s)),((e,t)=>mt(t))),St=(e,t)=>Se(Ie(X,e,(()=>(Dt(e,1),we(K,e,Fe()),we(U,e,he()),he()))),t,((t,s,n)=>Rt(e,t,s,n)),((t,s)=>Et(e,t,s))),Rt=(e,t,s,n,a)=>Se(Ie(t,s,(()=>(Jt(e,s,1),he()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{re(s,n)||At(e,t,n,1);const o=fe(s,n);a!==o&&(xt(e,t,n,o,a),we(s,n,a))},Tt=(e,t,s,n,a)=>M(fe(t,s),(t=>vt(e,s,t,n,a)),(()=>Rt(e,t,s,ht({[n]:a},e,s)))),yt=e=>ae(e)?gs():rs(e),Ct=e=>Se(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{re(Y,e)||Ft(e,1);const s=fe(Y,e);t!==s&&(Qt(e,s,t),we(Y,e,t))},bt=(e,t)=>{const[s]=fe(K,e),n=s(t);return re(fe(X,e),n)?bt(e,t):n},Vt=e=>fe(X,e)??St(e,{}),mt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=fe(K,e);n(s),Rt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=fe(fe(B,e)?.[0],a);if(!k(r)&&!o)return vt(e,s,n,a,r);const l=t=>{xt(e,s,t,fe(n,t)),At(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Jt(e,s,-1),le(we(t,s))&&(Dt(e,-1),we(X,e),we(K,e),we(U,e)))},Mt=e=>{const t=fe(q,e);if(!k(t))return pt(e,t);Qt(e,fe(Y,e)),Ft(e,-1),we(Y,e)},Dt=(e,t)=>tt(c,e,t),Jt=(e,t,s)=>tt(Ie(b,e,he),t,s)&&we(S,e,Ie(S,e,(()=>0))+s),At=(e,t,s,n)=>{const a=fe(U,e),o=fe(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Ie(u,e,he),s,n),we(a,s,o!=-n?o+n:null),tt(Ie(Ie(V,e,he),t,he),s,n)},xt=(e,t,s,n,a)=>Ie(Ie(Ie(m,e,he),t,he),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Ie(A,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Ie(Ie(Ie(F,e,he),t,he),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Ie(z,e,(()=>[])),t),s),Ot=(e,t,s)=>M(fe(fe(fe(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),jt=e=>M(fe(A,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(F)||le(je[e])?0:de(e?pe(F):F,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>nt(je[e],[s,n,a],t))))))),Wt=e=>le(z)||le(Pe[e])?0:de(e?ye(z):z,((t,s)=>nt(Pe[e],[s],t))),Bt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Ae[e]),s=le(ze[e])&&le(be[e])&&le(De[e])&&le(Je[e])&&t&&le(ee[e]),n=le(Oe[e])&&le(xe[e])&&le(ie[e])&&le(Z[e]);if(!s||!n){const a=e?[ye(c),Ce(u),ye(S),Ce(b),pe(V),pe(m)]:[c,u,S,b,V,m];if(!s){Bt(ee[e],a[0]),de(a[1],((t,s)=>Bt(be[e],t,[s]))),de(a[2],((t,s)=>{0!=t&&nt(De[e],[s],Yt(s))}));const s=ke();de(a[3],((n,a)=>{Bt(Je[e],n,[a])&&!t&&(nt(Ae[e],[a,null]),Me(s,a))})),t||de(a[5],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>nt(Ae[e],[n,t])))}})),de(a[4],((t,s)=>de(t,((t,n)=>Bt(ze[e],t,[s,n])))))}if(!n){let t;de(a[5],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&(nt(Oe[e],[n,o,i],l,s,Ot),t=a=r=1)})),r&&nt(xe[e],[n,o],Ot)})),a&&nt(ie[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(Be[e]),s=le($e[e])&&le(We[e]);if(!t||!s){const n=e?[ye(E),ye(A)]:[E,A];if(t||Bt(Be[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,jt),t=1)})),t&&nt(We[e],void 0,jt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,p)))),Rs),Ht=()=>[Re(m,((e,t)=>-1===fe(c,t)?null:Re(e,((e,s)=>-1===fe(fe(b,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),ae)),ae),Re(A,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(m,Xe,Ye),invalidCells:Te(F),changedValues:Re(A,Xe,Ye),invalidValues:Re(z),changedTableIds:Re(c),changedRowIds:ve(b),changedCellIds:Te(V),changedValueIds:Re(E)}),Ut=()=>Te(X),Xt=()=>ge(X),Yt=e=>oe(fe(X,p(e))),Zt=e=>ge(fe(X,p(e))),_t=(e,t,s,n=0,a)=>{return W(x(j((o=fe(X,p(e)),r=(e,s)=>[k(t)?s:fe(e,p(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>ge(fe(fe(X,p(e)),p(t))),ts=(e,t,s)=>fe(fe(fe(X,p(e)),p(t)),p(s)),ss=()=>Re(Y),ns=()=>ge(Y),as=e=>fe(Y,p(e)),os=e=>Gt((()=>(e=>et(e,lt,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),ls=e=>{try{wt(_e(e))}catch{}return Rs},is=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>re(X,e)?mt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(fe(X,e),(s=>re(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=o){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=o&&o++,1==o&&nt(qe,void 0,Ht,Kt),Rs),Ss=e=>(o>0&&(o--,0==o&&(s=!le(m),n=!le(A),o=1,Pt(1),s&&$t(1),Wt(1),n&&qt(1),e?.(Ht,Kt)&&(de(m,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(Rs,t,s,n,e))))))),de(A,(([e],t)=>Ee(Rs,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),o=-1,Pt(0),s&&$t(0),Wt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),o=0,s=n=!1,P([c,u,S,b,V,m,F,E,A,z],ce))),Rs),Rs={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(fe(X,p(e))),getTableCellIds:e=>ge(fe(U,p(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(fe(fe(X,p(e)),p(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>re(X,p(e)),hasTableCell:(e,t)=>re(fe(U,p(e)),p(t)),hasRow:(e,t)=>re(fe(X,p(e)),p(t)),hasCell:(e,t,s)=>re(fe(fe(X,p(e)),p(t)),p(s)),hasValues:()=>!le(Y),hasValue:e=>re(Y,p(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(O),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([O,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(ae(e)?ds:os)(e),(ae(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>lt(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>it(e,t,s)?Rt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return it(e,n,t)&&(e=p(e),Rt(e,Vt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(it(e,t,s,1)){const n=Vt(e);ne(s,((s,a)=>Tt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Tt(e,Vt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ne(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ne(e[0],((e,t)=>k(e)?us(t):ne(e,((e,s)=>k(e)?hs(t,s):ne(e,((e,n)=>me(Rs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(Rs,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{yt(_e(e))}catch{}return Rs},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{ls(e)}})),setTablesSchema:is,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{is(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(fe(X,e),(a=>M(fe(a,t),(o=>re(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>re(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>de(X,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(fe(U,p(e)),t),forEachRow:(e,t)=>de(fe(X,p(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(fe(fe(X,p(e)),p(t)),s),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);N(r,l)||(l=r,o(Rs,e,t,s,n,a,l))}),Ae[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Rs),delListener:e=>(at(e),Rs),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ne({[g]:[0,Z],[f]:[0,ee],[h]:[1,ie,[Xt]],[h+v]:[1,be,[Xt]],[w]:[1,De,[Xt]],[I]:[1,Je,[Xt]],[L]:[2,xe,[Xt,Zt]],[v]:[2,ze,[Xt,Zt]],[R]:[3,Oe,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,je],[y]:[0,We],[C]:[0,Be],[T]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Rs[d+a+i]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?x(a,0,e):void 0,s,n)})),_(Rs)};export{ze as createCheckpoints,qe as createCustomPersister,Oe as createIndexes,We as createMetrics,Ge as createQueries,He as createRelationships,st as createStore,Ne as defaultSorter};
Binary file
@@ -18,7 +18,7 @@
18
18
  * @since 4.3.0
19
19
  */
20
20
 
21
- import {Connection, Request, Server} from 'partykit/server';
21
+ import {Connection, Party, Request, Server} from 'partykit/server';
22
22
 
23
23
  /**
24
24
  * A TinyBasePartyKitServer is the server component for persisting the Store to
@@ -67,6 +67,7 @@ import {Connection, Request, Server} from 'partykit/server';
67
67
  * more details.
68
68
  */
69
69
  export class TinyBasePartyKitServer implements Server {
70
+ constructor(party: Party);
70
71
  /**
71
72
  * The onRequest method is called when a HTTP request is made to the party
72
73
  * URL.
@@ -264,6 +264,9 @@ export type QueryIdsListener = (queries: Queries) => void;
264
264
  * object, the Id of the ResultTable that changed (which is the same as the
265
265
  * query Id), and a GetResultCellChange function that can be used to query
266
266
  * ResultCell values before and after the change.
267
+ *
268
+ * You can create new query definitions within the body of this listener, though
269
+ * obviously be aware of the possible cascading effects of doing so.
267
270
  * @param queries A reference to the Queries object that changed.
268
271
  * @param tableId The Id of the ResultTable that changed, which is also the
269
272
  * query Id.
@@ -289,6 +292,9 @@ export type ResultTableListener = (
289
292
  * When called, a ResultTableCellIdsListener is given a reference to the Queries
290
293
  * object, and the Id of the ResultTable whose Cell Ids changed (which is the
291
294
  * same as the query Id).
295
+ *
296
+ * You can create new query definitions within the body of this listener, though
297
+ * obviously be aware of the possible cascading effects of doing so.
292
298
  * @param queries A reference to the Queries object that changed.
293
299
  * @param tableId The Id of the ResultTable that changed, which is also the
294
300
  * query Id.
@@ -311,6 +317,9 @@ export type ResultTableCellIdsListener = (
311
317
  * When called, a ResultRowCountListener is given a reference to the Queries
312
318
  * object, the Id of the ResultTable whose ResultRow Ids changed (which is the
313
319
  * same as the query Id), and the count of ResultRow objects in the ResultTable.
320
+ *
321
+ * You can create new query definitions within the body of this listener, though
322
+ * obviously be aware of the possible cascading effects of doing so.
314
323
  * @param queries A reference to the Queries object that changed.
315
324
  * @param tableId The Id of the ResultTable that changed, which is also the
316
325
  * query Id.
@@ -334,6 +343,9 @@ export type ResultRowCountListener = (
334
343
  * When called, a ResultRowIdsListener is given a reference to the Queries
335
344
  * object, and the Id of the ResultTable whose ResultRow Ids changed (which is
336
345
  * the same as the query Id).
346
+ *
347
+ * You can create new query definitions within the body of this listener, though
348
+ * obviously be aware of the possible cascading effects of doing so.
337
349
  * @param queries A reference to the Queries object that changed.
338
350
  * @param tableId The Id of the ResultTable that changed, which is also the
339
351
  * query Id.
@@ -360,6 +372,9 @@ export type ResultRowIdsListener = (
360
372
  * for pagination purposes. It also receives the sorted array of Ids itself, so
361
373
  * that you can use them in the listener without the additional cost of an
362
374
  * explicit call to getResultSortedRowIds.
375
+ *
376
+ * You can create new query definitions within the body of this listener, though
377
+ * obviously be aware of the possible cascading effects of doing so.
363
378
  * @param queries A reference to the Queries object that changed.
364
379
  * @param tableId The Id of the ResultTable that changed, which is also the
365
380
  * query Id.
@@ -393,6 +408,9 @@ export type ResultSortedRowIdsListener = (
393
408
  * the Id of the ResultTable that changed (which is the same as the query Id),
394
409
  * the Id of the ResultRow that changed, and a GetResultCellChange function that
395
410
  * can be used to query ResultCell values before and after the change.
411
+ *
412
+ * You can create new query definitions within the body of this listener, though
413
+ * obviously be aware of the possible cascading effects of doing so.
396
414
  * @param queries A reference to the Queries object that changed.
397
415
  * @param tableId The Id of the ResultTable that changed, which is also the
398
416
  * query Id.
@@ -419,6 +437,9 @@ export type ResultRowListener = (
419
437
  * When called, a ResultCellIdsListener is given a reference to the Queries
420
438
  * object, the Id of the ResultTable that changed (which is the same as the
421
439
  * query Id), and the Id of the ResultRow whose ResultCell Ids changed.
440
+ *
441
+ * You can create new query definitions within the body of this listener, though
442
+ * obviously be aware of the possible cascading effects of doing so.
422
443
  * @param queries A reference to the Queries object that changed.
423
444
  * @param tableId The Id of the ResultTable that changed, which is also the
424
445
  * query Id.
@@ -446,6 +467,9 @@ export type ResultCellIdsListener = (
446
467
  * It is also given the new value of the ResultCell, the old value of the
447
468
  * ResultCell, and a GetResultCellChange function that can be used to query
448
469
  * ResultCell values before and after the change.
470
+ *
471
+ * You can create new query definitions within the body of this listener, though
472
+ * obviously be aware of the possible cascading effects of doing so.
449
473
  * @param queries A reference to the Queries object that changed.
450
474
  * @param tableId The Id of the ResultTable that changed, which is also the
451
475
  * query Id.
@@ -18,7 +18,7 @@
18
18
  * @since 4.3.0
19
19
  */
20
20
 
21
- import {Connection, Request, Server} from 'partykit/server';
21
+ import {Connection, Party, Request, Server} from 'partykit/server';
22
22
 
23
23
  /**
24
24
  * A TinyBasePartyKitServer is the server component for persisting the Store to
@@ -67,6 +67,7 @@ import {Connection, Request, Server} from 'partykit/server';
67
67
  * more details.
68
68
  */
69
69
  export class TinyBasePartyKitServer implements Server {
70
+ constructor(party: Party);
70
71
  /**
71
72
  * The onRequest method is called when a HTTP request is made to the party
72
73
  * URL.
@@ -293,6 +293,9 @@ export type QueryIdsListener<Schemas extends OptionalSchemas> = (
293
293
  * object, the Id of the ResultTable that changed (which is the same as the
294
294
  * query Id), and a GetResultCellChange function that can be used to query
295
295
  * ResultCell values before and after the change.
296
+ *
297
+ * You can create new query definitions within the body of this listener, though
298
+ * obviously be aware of the possible cascading effects of doing so.
296
299
  * @param queries A reference to the Queries object that changed.
297
300
  * @param tableId The Id of the ResultTable that changed, which is also the
298
301
  * query Id.
@@ -328,6 +331,9 @@ export type ResultTableListener<Schemas extends OptionalSchemas> = (
328
331
  * When called, a ResultTableCellIdsListener is given a reference to the Queries
329
332
  * object, and the Id of the ResultTable whose Cell Ids changed (which is the
330
333
  * same as the query Id).
334
+ *
335
+ * You can create new query definitions within the body of this listener, though
336
+ * obviously be aware of the possible cascading effects of doing so.
331
337
  * @param queries A reference to the Queries object that changed.
332
338
  * @param tableId The Id of the ResultTable that changed, which is also the
333
339
  * query Id.
@@ -360,6 +366,9 @@ export type ResultTableCellIdsListener<Schemas extends OptionalSchemas> = (
360
366
  * When called, a ResultRowCountListener is given a reference to the Queries
361
367
  * object, the Id of the ResultTable whose ResultRow Ids changed (which is the
362
368
  * same as the query Id), and the count of ResultRow objects in the ResultTable.
369
+ *
370
+ * You can create new query definitions within the body of this listener, though
371
+ * obviously be aware of the possible cascading effects of doing so.
363
372
  * @param queries A reference to the Queries object that changed.
364
373
  * @param tableId The Id of the ResultTable that changed, which is also the
365
374
  * query Id.
@@ -393,6 +402,9 @@ export type ResultRowCountListener<Schemas extends OptionalSchemas> = (
393
402
  * When called, a ResultRowIdsListener is given a reference to the Queries
394
403
  * object, and the Id of the ResultTable whose ResultRow Ids changed (which is
395
404
  * the same as the query Id).
405
+ *
406
+ * You can create new query definitions within the body of this listener, though
407
+ * obviously be aware of the possible cascading effects of doing so.
396
408
  * @param queries A reference to the Queries object that changed.
397
409
  * @param tableId The Id of the ResultTable that changed, which is also the
398
410
  * query Id.
@@ -433,6 +445,9 @@ export type ResultRowIdsListener<Schemas extends OptionalSchemas> = (
433
445
  * for pagination purposes. It also receives the sorted array of Ids itself, so
434
446
  * that you can use them in the listener without the additional cost of an
435
447
  * explicit call to getResultSortedRowIds.
448
+ *
449
+ * You can create new query definitions within the body of this listener, though
450
+ * obviously be aware of the possible cascading effects of doing so.
436
451
  * @param queries A reference to the Queries object that changed.
437
452
  * @param tableId The Id of the ResultTable that changed, which is also the
438
453
  * query Id.
@@ -477,6 +492,9 @@ export type ResultSortedRowIdsListener<Schemas extends OptionalSchemas> = (
477
492
  * the Id of the ResultTable that changed (which is the same as the query Id),
478
493
  * the Id of the ResultRow that changed, and a GetResultCellChange function that
479
494
  * can be used to query ResultCell values before and after the change.
495
+ *
496
+ * You can create new query definitions within the body of this listener, though
497
+ * obviously be aware of the possible cascading effects of doing so.
480
498
  * @param queries A reference to the Queries object that changed.
481
499
  * @param tableId The Id of the ResultTable that changed, which is also the
482
500
  * query Id.
@@ -514,6 +532,9 @@ export type ResultRowListener<Schemas extends OptionalSchemas> = (
514
532
  * When called, a ResultCellIdsListener is given a reference to the Queries
515
533
  * object, the Id of the ResultTable that changed (which is the same as the
516
534
  * query Id), and the Id of the ResultRow whose ResultCell Ids changed.
535
+ *
536
+ * You can create new query definitions within the body of this listener, though
537
+ * obviously be aware of the possible cascading effects of doing so.
517
538
  * @param queries A reference to the Queries object that changed.
518
539
  * @param tableId The Id of the ResultTable that changed, which is also the
519
540
  * query Id.
@@ -555,6 +576,9 @@ export type ResultCellIdsListener<Schemas extends OptionalSchemas> = (
555
576
  * It is also given the new value of the ResultCell, the old value of the
556
577
  * ResultCell, and a GetResultCellChange function that can be used to query
557
578
  * ResultCell values before and after the change.
579
+ *
580
+ * You can create new query definitions within the body of this listener, though
581
+ * obviously be aware of the possible cascading effects of doing so.
558
582
  * @param queries A reference to the Queries object that changed.
559
583
  * @param tableId The Id of the ResultTable that changed, which is also the
560
584
  * query Id.
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),o=t(t),a="Listener",i="Result",l="Ids",d="Table",c="Row",u=c+"Count",f=c+l,h="Sorted"+c+l,g="Cell",v=g+l,w=(e,t)=>e.every(t),L=(e,t)=>e.forEach(t),y=e=>T(e,((e,t)=>e+t),0),R=e=>e.length,p=e=>0==R(e),T=(e,t,n)=>e.reduce(t,n),b=(e,...t)=>e.push(...t),m=Math.max,C=Math.min,Q=isFinite,S=e=>null==e,I=(e,t,n)=>S(e)?n?.():t(e),x=e=>t(e)==o,E=e=>Array.isArray(e),M=()=>{},j=Object,D=j.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>S(e)||0==k(e),F=e=>[...e?.values()??[]],B=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>O(e,((e,n)=>t(n,e))),J=(e,t,n)=>S(n)?(W(e,t),e):e?.set(t,n),K=(e,t,n)=>(z(e,t)||J(e,t,n()),G(e,t)),N=(e,t,n,s,r=0)=>I((n?K:G)(e,t[r],r>R(t)-2?n:q),(o=>{if(r>R(t)-2)return s?.(o)&&J(e,t[r]),o;const a=N(o,t,n,s,r+1);return A(o)&&J(e,t[r]),a})),P=e=>new Set(E(e)||S(e)?e:[e]),U=(e,t)=>e?.add(t),V=q([["avg",[(e,t)=>y(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=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["sum",[e=>y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),X=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,l=o(),y=o(),T=q(),{addListener:m,callListeners:C,delListener:X}=y,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=q(),i=q(),l=q(),d=q(),c=q(),u=q(),f=(t,n,...s)=>{const r=K(u,t,P);return L(s,(t=>U(r,t)&&n&&e.callListener(t))),s},h=(t,...n)=>I(G(u,t),(s=>{L(p(n)?F(s):n,(t=>{e.delListener(t),W(s,t)})),A(s)&&J(u,t)})),g=(e,t)=>{J(a,e,t),z(i,e)||(J(i,e,!0),J(d,e,q()),J(c,e,q()),r(l))},v=e=>{J(a,e),J(i,e),J(d,e),J(c,e),h(e),r(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(i,e),e=>z(i,e),e=>G(a,e),e=>G(i,e),(e,t)=>J(i,e,t),g,(t,s,r,a,i)=>{g(t,s);const l=q(),u=q(),v=G(d,t),y=G(c,t),p=t=>{const r=n=>e.getCell(s,t,n),d=G(v,t),c=o(s,t)?n(a(r,t)):void 0;var f,h;if(d===c||E(d)&&E(c)&&(h=c,R(f=d)===R(h)&&w(f,((e,t)=>h[t]===e)))||J(l,t,[d,c]),!S(i)){const e=G(y,t),n=o(s,t)?i(r,t):void 0;e!=n&&J(u,t,n)}},T=e=>{r((()=>{O(l,(([,e],t)=>J(v,t,e))),O(u,((e,t)=>J(y,t,e)))}),l,u,v,y,e),B(l),B(u)};H(v,p),e.hasTable(s)&&L(e.getRowIds(s),(e=>{z(v,e)||p(e)})),T(!0),h(t),f(t,0,e.addRowListener(s,null,((e,t,n)=>p(n))),e.addTableListener(s,(()=>T())))},v,e=>s(e,l),()=>H(u,v),f,h]})(e,0,M,m,C),ie=(e,t,...n)=>L(n,(n=>U(K(K(T,t,q),e,P),n))),le=e=>{I(G(T,e),(e=>{H(e,((e,t)=>O(t,(t=>e.delListener(t))))),B(e)})),L([y,l],(t=>t.delTable(e)))},de=(e,t,n)=>ie(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,i)=>{te(o,a),le(o);const d=[],c=[[null,[a,null,null,[],q()]]],u=[],f=[],h=[];i({select:(e,t)=>{const n=x(e)?[R(d)+"",e]:[S(t)?e:t,n=>n(e,t)];return b(d,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=S(n)||x(t)?null:t,r=S(s)?t:n,o=[e,[e,s,x(r)?r:e=>e(r),[],q()]];return b(c,o),{as:e=>o[0]=e}},where:(e,t,n)=>b(u,x(e)?e:S(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,x(t)?[t,n,s,r]:G(V,t)??[(e,t)=>t]]];return b(f,o),{as:e=>o[0]=e}},having:(e,t)=>b(h,x(e)?e:n=>n(e)===t)});const g=q(d);if(A(g))return ce;const v=q(c);H(v,((e,[,t])=>I(G(v,t),(({3:t})=>S(e)?0:b(t,e)))));const T=q(f);let m=l;if(A(T)&&p(h))m=y;else{de(o,m,y);const e=q();H(T,((t,[n,s])=>U(K(e,n,P),[t,s])));const a=P();H(g,(t=>z(e,t)?0:U(a,t)));const i=q(),l=(a,i,l,d)=>I(a,(([c,u,f,g])=>{H(i,((o,[a])=>{const i=K(c,o,q),u=G(i,l),f=d?void 0:a;if(u!==f){const a=P([[u,f]]),d=k(i);J(i,l,f),O(G(e,o),(([e,o])=>{const l=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,i,l,d]=r;return o||=S(e),O(s,(([n,s])=>{o||(e=S(n)?i?.(e,s,t++):S(s)?l?.(e,n,t--):d?.(e,s,n,t),o||=S(e))})),o?a(F(n),k(n)):e})(g[e],d,i,a,o);g[e]=S((e=>{const o=t(e);return(e=>e==n||e==s)(o)||o==r&&Q(e)?o:void 0})(l))?null:l}))}})),A(u)||!w(h,(e=>e((e=>g[e]))))?y.delRow(o,f):S(f)?a[2]=y.addRow(o,g):y.setRow(o,f,g)}));ie(m,o,m.addRowListener(o,null,((t,n,s,r)=>{const d=[],c=[],u=q(),f=m.hasRow(o,s);let h=!f;O(a,(e=>{const[t,n,a]=r(o,s,e);b(d,n),b(c,a),h||=t})),H(e,(e=>{const[t,,n]=r(o,s,e);(h||t)&&J(u,e,[n])})),h&&l(N(i,d,void 0,(([,e])=>(W(e,s),A(e)))),u,s,1),f&&l(N(i,c,(()=>{const e={};return O(a,(t=>e[t]=m.getCell(o,s,t))),[q(),P(),void 0,e]}),(([,e])=>{U(e,s)})),u,s)})))}de(o,e,m);const C=(t,n,s,r)=>{const i=t=>e.getCell(n,s,t);L(r,(n=>{const[s,,r,a,l]=G(v,n),d=r?.(i,t),[c,u]=G(l,t)??[];d!=c&&(S(u)||ae(o,u),J(l,t,S(d)?null:[d,...oe(o,1,e.addRowListener(s,d,(()=>C(t,s,d,a))))]))})),(t=>{const n=(n,s)=>e.getCell(...S(s)?[a,t,n]:n===a?[a,t,s]:[G(v,n)?.[0],G(G(v,n)?.[4],t)?.[0],s]);m.transaction((()=>w(u,(e=>e(n)))?H(g,((e,s)=>((e,t,n,s,r)=>S(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(m,o,t,e,s(n,t)))):m.delRow(o,t)))})(t)},{3:E}=G(v,null);return m.transaction((()=>oe(o,1,e.addRowListener(a,null,((t,n,s)=>{e.hasRow(a,s)?C(s,a,s,E):(m.delRow(o,s),O(v,(({4:e})=>I(G(e,s),(([,t])=>{ae(o,t),J(e,s)})))))}))))),ce},delQueryDefinition:e=>(le(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=y.getListenerStats();return s}};var ue,fe;return ue={[d]:[1,1],[d+v]:[0,1],[u]:[0,1],[f]:[0,1],[h]:[0,5],[c]:[1,2],[v]:[0,2],[g]:[1,3]},fe=([e,t],n)=>{L(e?["get","has","forEach"]:["get"],(e=>ce[e+i+n]=(...t)=>y[e+n](...t))),ce["add"+i+n+a]=(...e)=>{return y["add"+n+a](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)));var s,r}},((e,t)=>{e.map(t)})(j.entries(ue),(([e,t])=>fe(t,e))),D(ce)})(e)),o.get(e))})();e.createQueries=X},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),r=t(0),o=t(t),a="Listener",i="Result",l="Ids",d="Table",c="Row",u=c+"Count",f=c+l,h="Sorted"+c+l,g="Cell",v=g+l,w=(e,t)=>e.every(t),L=(e,t)=>e.forEach(t),y=e=>T(e,((e,t)=>e+t),0),R=e=>e.length,p=e=>0==R(e),T=(e,t,n)=>e.reduce(t,n),b=(e,...t)=>e.push(...t),m=Math.max,C=Math.min,Q=isFinite,S=e=>null==e,I=(e,t,n)=>S(e)?n?.():t(e),x=e=>t(e)==o,E=e=>Array.isArray(e),M=()=>{},j=Object,D=j.freeze,k=e=>e?.size??0,z=(e,t)=>e?.has(t)??!1,A=e=>S(e)||0==k(e),F=e=>[...e?.values()??[]],B=e=>e.clear(),O=(e,t)=>e?.forEach(t),W=(e,t)=>e?.delete(t),q=e=>new Map(e),G=(e,t)=>e?.get(t),H=(e,t)=>O(e,((e,n)=>t(n,e))),J=(e,t,n)=>S(n)?(W(e,t),e):e?.set(t,n),K=(e,t,n)=>(z(e,t)||J(e,t,n()),G(e,t)),N=(e,t,n,s,r=0)=>I((n?K:G)(e,t[r],r>R(t)-2?n:q),(o=>{if(r>R(t)-2)return s?.(o)&&J(e,t[r]),o;const a=N(o,t,n,s,r+1);return A(o)&&J(e,t[r]),a})),P=e=>new Set(E(e)||S(e)?e:[e]),U=(e,t)=>e?.add(t),V=q([["avg",[(e,t)=>y(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=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:m(t,e)]],["min",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["sum",[e=>y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),X=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,l=o(),y=o(),T=q(),{addListener:m,callListeners:C,delListener:X}=y,[Y,Z,$,_,ee,,,te,,ne,se,re,oe,ae]=((e,t,n,s,r)=>{const o=e.hasRow,a=q(),i=q(),l=q(),d=q(),c=q(),u=q(),f=(t,n,...s)=>{const r=K(u,t,P);return L(s,(t=>U(r,t)&&n&&e.callListener(t))),s},h=(t,...n)=>I(G(u,t),(s=>{L(p(n)?F(s):n,(t=>{e.delListener(t),W(s,t)})),A(s)&&J(u,t)})),g=(e,t)=>{J(a,e,t),z(i,e)||(J(i,e,!0),J(d,e,q()),J(c,e,q()),r(l))},v=e=>{J(a,e),J(i,e),J(d,e),J(c,e),h(e),r(l)};return[()=>e,()=>{return e=a,[...e?.keys()??[]];var e},e=>H(i,e),e=>z(i,e),e=>G(a,e),e=>G(i,e),(e,t)=>J(i,e,t),g,(t,s,r,a,i)=>{g(t,s);const l=q(),u=q(),v=G(d,t),y=G(c,t),p=t=>{const r=n=>e.getCell(s,t,n),d=G(v,t),c=o(s,t)?n(a(r,t)):void 0;var f,h;if(d===c||E(d)&&E(c)&&(h=c,R(f=d)===R(h)&&w(f,((e,t)=>h[t]===e)))||J(l,t,[d,c]),!S(i)){const e=G(y,t),n=o(s,t)?i(r,t):void 0;e!=n&&J(u,t,n)}},T=e=>{r((()=>{O(l,(([,e],t)=>J(v,t,e))),O(u,((e,t)=>J(y,t,e)))}),l,u,v,y,e),B(l),B(u)};H(v,p),e.hasTable(s)&&L(e.getRowIds(s),(e=>{z(v,e)||p(e)})),T(!0),h(t),f(t,0,e.addRowListener(s,null,((e,t,n)=>p(n))),e.addTableListener(s,(()=>T())))},v,e=>s(e,l),()=>H(u,v),f,h]})(e,0,M,m,C),ie=(e,t,...n)=>L(n,(n=>U(K(K(T,t,q),e,P),n))),le=e=>{I(G(T,e),(e=>{H(e,((e,t)=>O(t,(t=>e.delListener(t))))),B(e)})),L([y,l],(t=>t.delTable(e)))},de=(e,t,n)=>ie(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),ce={setQueryDefinition:(o,a,i)=>{te(o,a),le(o);const d=[],c=[[null,[a,null,null,[],q()]]],u=[],f=[],h=[];i({select:(e,t)=>{const n=x(e)?[R(d)+"",e]:[S(t)?e:t,n=>n(e,t)];return b(d,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=S(n)||x(t)?null:t,r=S(s)?t:n,o=[e,[e,s,x(r)?r:e=>e(r),[],q()]];return b(c,o),{as:e=>o[0]=e}},where:(e,t,n)=>b(u,x(e)?e:S(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,r)=>{const o=[e,[e,x(t)?[t,n,s,r]:G(V,t)??[(e,t)=>t]]];return b(f,o),{as:e=>o[0]=e}},having:(e,t)=>b(h,x(e)?e:n=>n(e)===t)});const g=q(d);if(A(g))return ce;const v=q(c);H(v,((e,[,t])=>I(G(v,t),(({3:t})=>S(e)?0:b(t,e)))));const T=q(f);let m=l;if(A(T)&&p(h))m=y;else{de(o,m,y);const e=q();H(T,((t,[n,s])=>U(K(e,n,P),[t,s])));const a=P();H(g,(t=>z(e,t)?0:U(a,t)));const i=q(),l=(a,i,l,d)=>I(a,(([c,u,f,g])=>{H(i,((o,[a])=>{const i=K(c,o,q),u=G(i,l),f=d?void 0:a;if(u!==f){const a=P([[u,f]]),d=k(i);J(i,l,f),O(G(e,o),(([e,o])=>{const l=((e,t,n,s,r,o=!1)=>{if(A(n))return;const[a,i,l,d]=r;return o||=S(e),O(s,(([n,s])=>{o||(e=S(n)?i?.(e,s,t++):S(s)?l?.(e,n,t--):d?.(e,s,n,t),o||=S(e))})),o?a(F(n),k(n)):e})(g[e],d,i,a,o);g[e]=S((e=>{const o=t(e);return(e=>e==n||e==s)(o)||o==r&&Q(e)?o:void 0})(l))?null:l}))}})),A(u)||!w(h,(e=>e((e=>g[e]))))?y.delRow(o,f):S(f)?a[2]=y.addRow(o,g):y.setRow(o,f,g)}));ie(m,o,m.addRowListener(o,null,((t,n,s,r)=>{const d=[],c=[],u=q(),f=m.hasRow(o,s);let h=!f;O(a,(e=>{const[t,n,a]=r(o,s,e);b(d,n),b(c,a),h||=t})),H(e,(e=>{const[t,,n]=r(o,s,e);(h||t)&&J(u,e,[n])})),h&&l(N(i,d,void 0,(([,e])=>(W(e,s),A(e)))),u,s,1),f&&l(N(i,c,(()=>{const e={};return O(a,(t=>e[t]=m.getCell(o,s,t))),[q(),P(),void 0,e]}),(([,e])=>{U(e,s)})),u,s)})))}de(o,e,m);const C=(t,n,s,r)=>{const i=t=>e.getCell(n,s,t);L(r,(n=>{const[s,,r,a,l]=G(v,n),d=r?.(i,t),[c,u]=G(l,t)??[];d!=c&&(S(u)||ae(o,u),J(l,t,S(d)?null:[d,...oe(o,1,e.addRowListener(s,d,(()=>C(t,s,d,a))))]))})),(t=>{const n=(n,s)=>e.getCell(...S(s)?[a,t,n]:n===a?[a,t,s]:[G(v,n)?.[0],G(G(v,n)?.[4],t)?.[0],s]);m.transaction((()=>w(u,(e=>e(n)))?H(g,((e,s)=>((e,t,n,s,r)=>S(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(m,o,t,e,s(n,t)))):m.delRow(o,t)))})(t)},{3:E}=G(v,null);return m.transaction((()=>oe(o,1,e.addRowListener(a,null,((t,n,s)=>{e.hasRow(a,s)?C(s,a,s,E):(m.delRow(o,s),O(v,(({4:e})=>I(G(e,s),(([,t])=>{ae(o,t),J(e,s)})))))}))))),ce},delQueryDefinition:e=>(le(e),ne(e),ce),getStore:Y,getQueryIds:Z,forEachQuery:$,hasQuery:_,getTableId:ee,addQueryIdsListener:e=>se((()=>e(ce))),delListener:e=>(X(e),ce),destroy:re,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=y.getListenerStats();return s}};var ue,fe;return ue={[d]:[1,1],[d+v]:[0,1],[u]:[0,1],[f]:[0,1],[h]:[0,5],[c]:[1,2],[v]:[0,2],[g]:[1,3]},fe=([e,t],n)=>{L(e?["get","has","forEach"]:["get"],(e=>ce[e+i+n]=(...t)=>y[e+n](...t))),ce["add"+i+n+a]=(...e)=>{return y["add"+n+a](...(s=e,0,r=t,s.slice(0,r)),((n,...s)=>e[t](ce,...s)),!0);var s,r}},((e,t)=>{e.map(t)})(j.entries(ue),(([e,t])=>fe(t,e))),D(ce)})(e)),o.get(e))})();e.createQueries=X},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),o=t(0),r=t(t),i="type",l="default",c="Listener",d="Result",u="add",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",I=w+"Count",S=w+h,T="Sorted"+w+h,R="Cell",v=R+h,y="Value",C=y+"s",p=y+h,b=e=>s+e,m=Math.max,V=Math.min,E=isFinite,k=(e,t)=>e instanceof t,M=e=>null==e,x=(e,t,s)=>M(e)?s?.():t(e),D=e=>e==n||e==a,J=e=>t(e)==r,A=e=>Array.isArray(e),F=(e,t,s)=>e.slice(t,s),Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),j=(e,t)=>q(e)===q(t)&&N(e,((e,s)=>t[s]===e)),O=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),P=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),$=e=>H(e,((e,t)=>e+t),0),q=e=>e.length,G=e=>0==q(e),H=(e,t,s)=>e.reduce(t,s),K=(e,...t)=>e.push(...t),U=e=>e.pop(),X=e=>e.shift(),Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>k(e,Y)&&e.constructor==Y,se=(e,t)=>!M(((e,t)=>x(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>W(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>q(Z(e)))(e),re=e=>e?.size??0,ie=(e,t)=>e?.has(t)??!1,le=e=>M(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),Ie=(e,t,s)=>M(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(ie(e,t)||Ie(e,t,s()),Le(e,t)),Te=(e,t,s,n=Ie)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),oe),ye=(e,t,s)=>Re(e,(e=>ve(e,t,s)),oe),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),be=e=>Ce(e,pe),me=(e,t,s,n,a=0)=>x((s?Se:Le)(e,t[a],a>q(t)-2?s:ge),(o=>{if(a>q(t)-2)return n?.(o)&&Ie(e,t[a]),o;const r=me(o,t,s,n,a+1);return le(o)&&Ie(e,t[a]),r})),Ve=e=>{const s=t(e);return D(s)||s==o&&E(e)?s:void 0},Ee=(e,t,s,n,a)=>M(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>M(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(A(e)||M(e)?e:[e]),xe=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=ge(),i=ge(),l=ge(),c=ge(),d=ge(),u=ge(),h=(t,s,...n)=>{const a=Se(u,t,Me);return B(n,(t=>xe(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>x(Le(u,t),(n=>{B(G(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),le(n)&&Ie(u,t)})),f=(e,s)=>{Ie(r,e,s),ie(i,e)||(Ie(i,e,t()),Ie(c,e,ge()),Ie(d,e,ge()),a(l))},L=e=>{Ie(r,e),Ie(i,e),Ie(c,e),Ie(d,e),g(e),a(l)};return[()=>e,()=>fe(r),e=>we(i,e),e=>ie(i,e),e=>Le(r,e),e=>Le(i,e),(e,t)=>Ie(i,e,t),f,(t,n,a,r,i)=>{f(t,n);const l=ge(),u=ge(),L=Le(c,t),w=Le(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=Le(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&j(c,d)||Ie(l,t,[c,d]),!M(i)){const e=Le(w,t),s=o(n,t)?i(a,t):void 0;e!=s&&Ie(u,t,s)}},S=e=>{a((()=>{ue(l,(([,e],t)=>Ie(L,t,e))),ue(u,((e,t)=>Ie(w,t,e)))}),l,u,L,w,e),de(l),de(u)};we(L,I),e.hasTable(n)&&B(e.getRowIds(n),(e=>{ie(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,l),()=>we(u,L),h,g]},Je=(e,a)=>t(e)==n?t=>t(e):e??(()=>a??s),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let t=0;return[n=>(n?X(e):null)??s+t++,t=>{Fe.test(t)&&q(e)<1e3&&K(e,t)}]},ze=e=>{let t;const[n,a]=Qe(),o=ge();return[(a,r,i,l=[],c=(()=>[]))=>{t??=e();const d=n(1);return Ie(o,d,[a,r,i,l,c]),xe(me(r,i??[s],Me),d),d},(e,n,...a)=>B(((e,t=[s])=>{const n=[],a=(e,s)=>s==q(t)?K(n,e):null===t[s]?ue(e,(e=>a(e,s+1))):B([t[s],null],(t=>a(Le(e,t),s+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](t,...n??[],...a))))),e=>x(Le(o,e),(([,t,n])=>(me(t,n??[s],void 0,(t=>(he(t,e),le(t)?1:0))),Ie(o,e),a(e),n))),e=>x(Le(o,e),(([e,,s=[],n,a])=>{const o=(...r)=>{const i=q(r);i==q(s)?e(t,...r,...a(r)):M(s[i])?B(n[i]?.(...r)??[],(e=>o(...r,e))):o(...r,s[i])};o()}))]},Ne=Ae((e=>{let t,n,a,o=100,r=ge(),i=ge(),l=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>F)),f=ge(),L=ge(),w=[],I=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),l=1},T=e=>{Ie(f,e),Ie(L,e),h(d,[e])},R=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??q(e)),T),v=()=>R(w,q(w)-o),y=()=>x(t,(()=>{K(w,t),v(),R(I),t=void 0,a=1})),C=()=>{t=U(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(l){y();const e=Se(r,t,ge),i=Se(e,s,ge),l=Se(i,n,(()=>[o,void 0]));l[1]=a,l[0]===a&&le(Ie(i,n))&&le(Ie(e,s))&&le(Ie(r,t))&&C(),k()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(l){y();const e=Se(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(Ie(i,t))&&C(),k()}})),m=(e="")=>(M(t)&&(t=s+n++,Ie(f,t,[r,i]),J(t,e),r=ge(),i=ge(),a=1),t),V=()=>{G(w)||(((e,...t)=>{e.unshift(...t)})(I,m()),S(0,t),t=U(w),a=1)},E=()=>{G(I)||(K(w,t),t=X(I),S(1,t),a=1)},k=()=>{a&&(h(c),a=0)},D=e=>{const t=m(e);return k(),t},J=(e,t)=>(A(e)&&Le(L,e)!==t&&(Ie(L,e,t),h(d,[e])),F),A=e=>ie(f,e),F={setSize:e=>(o=e,v(),F),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...I]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:A,getCheckpoint:e=>Le(L,e),goBackward:()=>(V(),k(),F),goForward:()=>(E(),k(),F),goTo:e=>{const s=z(w,e)?V:z(I,e)?E:null;for(;!M(s)&&e!=t;)s();return k(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(R(w),R(I),M(t)||T(t),t=void 0,n=0,D(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return ee(F.clear())})),je=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const t=ge(),n=ge(),[a,o,r]=ze((()=>T)),[i,l,c,d,u,h,g,,f,L,w,I]=De(e,ge,(e=>M(e)?s:A(e)?W(e,b):b(e)),a,o),S=(t,s,n)=>{const a=u(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},T={setIndexDefinition:(e,s,a,r,i,l=je)=>{const c=M(i)?void 0:([e],[t])=>i(e,t);return f(e,s,((s,a,i,d,u,f)=>{let L=0;const w=Me(),I=Me(),S=h(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{xe(w,e),x(Le(S,e),(t=>{he(t,s),le(t)&&(Ie(S,e),L=1)}))})),ue(a,(e=>{xe(w,e),ie(S,e)||(Ie(S,e,Me()),L=1),xe(Le(S,e),s),M(r)||xe(I,e)}))})),s(),le(u)||(f?we(S,(e=>xe(I,e))):we(i,(e=>x(Le(d,e),(e=>xe(I,e))))),ue(I,(e=>{const t=(t,s)=>l(Le(u,t),Le(u,s),e),s=[...Le(S,e)];O(s,t)||(Ie(S,e,Me(P(s,t))),xe(w,e))}))),(L||f)&&!M(c)){const t=[...S];O(t,c)||(g(e,ge(P(t,c))),L=1)}L&&o(t,[e]),ue(w,(t=>o(n,[e,t])))}),Je(a),x(r,Je)),T},delIndexDefinition:e=>(L(e),T),getStore:i,getIndexIds:l,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>ie(h(e),t),getTableId:u,getSliceIds:e=>fe(h(e)),getSliceRowIds:(e,t)=>ce(Le(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,s)=>a(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),T),destroy:I,getListenerStats:()=>({})};return ee(T)})),Pe=ge([["avg",[(e,t)=>$(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=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Be=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,i,l,c]=a;return o||=M(e),ue(n,(([s,n])=>{o||(e=M(s)?i?.(e,n,t++):M(n)?l?.(e,s,t--):c?.(e,n,s,t),o||=M(e))})),o?r(ce(s),re(s)):e},We=Ae((e=>{const t=ge(),[n,a,o]=ze((()=>I)),[r,i,l,c,d,u,h,,g,f,L,w]=De(e,Q,(e=>isNaN(e)||M(e)||!0===e||!1===e||e===s?void 0:1*e),n,a),I={setMetricDefinition:(e,s,n,o,r,i,l)=>{const c=J(n)?[n,r,i,l]:Le(Pe,n)??Le(Pe,"sum");return g(e,s,((s,n,o,r,i,l)=>{const d=u(e),g=re(r);l||=M(d),s();let f=Be(d,g,r,n,c,l);E(f)||(f=void 0),f!=d&&(h(e,f),a(t,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:i,forEachMetric:l,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,s)=>n(s,t,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return ee(I)})),$e=ge(),qe=ge(),Ge=Ae((e=>{const t=e.createStore,n=t(),a=t(),o=ge(),{addListener:r,callListeners:i,delListener:l}=a,[h,f,L,y,C,,,p,,b,m,V,E,k]=De(e,(()=>!0),Q,r,i),D=(e,t,...s)=>B(s,(s=>xe(Se(Se(o,t,ge),e,Me),s))),A=e=>{x(Le(o,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),B([a,n],(t=>t.delTable(e)))},z=(e,t,s)=>D(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),j={setQueryDefinition:(t,o,r)=>{p(t,o),A(t);const i=[],l=[[null,[o,null,null,[],ge()]]],c=[],d=[],u=[];r({select:(e,t)=>{const n=J(e)?[q(i)+s,e]:[M(t)?e:t,s=>s(e,t)];return K(i,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=M(s)||J(t)?null:t,a=M(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],ge()]];return K(l,o),{as:e=>o[0]=e}},where:(e,t,s)=>K(c,J(e)?e:M(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return K(d,o),{as:e=>o[0]=e}},having:(e,t)=>K(u,J(e)?e:s=>s(e)===t)});const h=ge(i);if(le(h))return j;const g=ge(l);we(g,((e,[,t])=>x(Le(g,t),(({3:t})=>M(e)?0:K(t,e)))));const f=ge(d);let L=n;if(le(f)&&G(u))L=a;else{z(t,L,a);const e=ge();we(f,((t,[s,n])=>xe(Se(e,s,Me),[t,n])));const s=Me();we(h,(t=>ie(e,t)?0:xe(s,t)));const n=ge(),o=(s,n,o,r)=>x(s,(([i,l,c,d])=>{we(n,((t,[s])=>{const n=Se(i,t,ge),a=Le(n,o),l=r?void 0:s;if(a!==l){const s=Me([[a,l]]),r=re(n);Ie(n,o,l),ue(Le(e,t),(([e,t])=>{const a=Be(d[e],r,n,s,t);d[e]=M(Ve(a))?null:a}))}})),le(l)||!N(u,(e=>e((e=>d[e]))))?a.delRow(t,c):M(c)?s[2]=a.addRow(t,d):a.setRow(t,c,d)}));D(L,t,L.addRowListener(t,null,((a,r,i,l)=>{const c=[],d=[],u=ge(),h=L.hasRow(t,i);let g=!h;ue(s,(e=>{const[s,n,a]=l(t,i,e);K(c,n),K(d,a),g||=s})),we(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&Ie(u,e,[n])})),g&&o(me(n,c,void 0,(([,e])=>(he(e,i),le(e)))),u,i,1),h&&o(me(n,d,(()=>{const e={};return ue(s,(s=>e[s]=L.getCell(t,i,s))),[ge(),Me(),void 0,e]}),(([,e])=>{xe(e,i)})),u,i)})))}z(t,e,L);const w=(s,n,a,r)=>{const i=t=>e.getCell(n,a,t);B(r,(n=>{const[a,,o,r,l]=Le(g,n),c=o?.(i,s),[d,u]=Le(l,s)??[];c!=d&&(M(u)||k(t,u),Ie(l,s,M(c)?null:[c,...E(t,1,e.addRowListener(a,c,(()=>w(s,a,c,r))))]))})),(s=>{const n=(t,n)=>e.getCell(...M(n)?[o,s,t]:t===o?[o,s,n]:[Le(g,t)?.[0],Le(Le(g,t)?.[4],s)?.[0],n]);L.transaction((()=>N(c,(e=>e(n)))?we(h,((e,a)=>Ee(L,t,s,e,a(n,s)))):L.delRow(t,s)))})(s)},{3:I}=Le(g,null);return L.transaction((()=>E(t,1,e.addRowListener(o,null,((s,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(t,a),ue(g,(({4:e})=>x(Le(e,a),(([,s])=>{k(t,s),Ie(e,a)})))))}))))),j},delQueryDefinition:e=>(A(e),b(e),j),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:y,getTableId:C,addQueryIdsListener:e=>m((()=>e(j))),delListener:e=>(l(e),j),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ae({[g]:[1,1],[g+v]:[0,1],[I]:[0,1],[S]:[0,1],[T]:[0,5],[w]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{B(e?["get","has","forEach"]:["get"],(e=>j[e+d+s]=(...t)=>a[e+s](...t))),j[u+d+s+c]=(...e)=>a[u+s+c](...F(e,0,t),((s,...n)=>e[t](j,...n)))})),ee(j)})),He=Ae((e=>{const t=ge(),n=ge(),a=ge(),o=ge(),[r,i,l]=ze((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[ge(),ge(),ge(),ge()]),(e=>M(e)?void 0:e+s),r,i),T=(e,t,s)=>x(f(e),(([n,,a])=>{if(!ie(a,t)){const o=Me();if(g(e)!=v(e))xe(o,t);else{let e=t;for(;!M(e)&&!ie(o,e);)xe(o,e),e=Le(n,e)}if(s)return o;Ie(a,t,o)}return Le(a,t)})),R=(e,t)=>x(f(e),(([,,e])=>Ie(e,t))),v=e=>Le(t,e),y={setRelationshipDefinition:(e,s,r,l)=>(Ie(t,e,r),L(e,s,((t,s)=>{const r=Me(),l=Me(),c=Me(),[d,u]=f(e);ue(s,(([t,s],n)=>{M(t)||(xe(l,t),x(Le(u,t),(e=>{he(e,n),le(e)&&Ie(u,t)}))),M(s)||(xe(l,s),ie(u,s)||Ie(u,s,Me()),xe(Le(u,s),n)),xe(r,n),Ie(d,n,s),we(Le(o,e),(t=>{ie(T(e,t),n)&&xe(c,t)}))})),t(),ue(r,(t=>i(n,[e,t]))),ue(l,(t=>i(a,[e,t]))),ue(c,(t=>{R(e,t),i(o,[e,t])}))}),Je(l)),y),delRelationshipDefinition:e=>(Ie(t,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:v,getRemoteRowId:(e,t)=>Le(f(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>M(f(e))?[t]:ce(T(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(T(e,t),r(s,o,[e,t])),delListener:e=>(R(...l(e)??[]),y),destroy:S,getListenerStats:()=>({})};return ee(y)})),Ke=e=>[e,e],Ue=()=>[ge(),ge()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>k(t,Map)?Y.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>M(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),tt=(e,t,s)=>Ie(e,t,Le(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,a=0;const r=ge(),d=ge(),h=ge(),T=ge(),m=ge(),V=ge(),E=ge(),k=ge(),A=ge(),Q=ge(),N=ge(),O=ge(),$=ge(),q=ge(),G=Me(),H=ge(),U=ge(),X=ge(),Y=ge(),Z=Ue(),_=Ue(),te=Ue(),ce=Ue(),me=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),Fe=Ue(),Ne=Ue(),Oe=Ue(),Pe=Ue(),Be=Ue(),We=Ue(),$e=Ue(),qe=ge(),Ge=Ue(),[He,nt,at,ot]=ze((()=>Ts)),rt=e=>{if(!et(e,((e,t)=>z([i,l],t))))return!1;const t=e[i];return!(!D(t)&&t!=o||(Ve(e[l])!=t&&ne(e,l),0))},it=(t,s)=>(!e||ie(N,s)||zt(s))&&et(t,((e,t)=>lt(s,t,e)),(()=>zt(s))),lt=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>x(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?x(Le(Le(N,t),n),(e=>Ve(a)!=e[i]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):M(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>x(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?x(Le($,e),(t=>Ve(s)!=t[i]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):M(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(x(Le(O,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(ue(q,((t,s)=>{se(e,s)||(e[s]=t)})),ue(G,(t=>{se(e,t)||Nt(t)}))),e),ft=e=>Te(N,e,((e,t,s)=>{const n=ge(),a=Me();Te(Se(N,t,ge),s,((e,t,s)=>{Ie(e,t,s),x(s[l],(e=>Ie(n,t,e)),(()=>xe(a,t)))})),Ie(O,t,[n,a])}),((e,t)=>{Ie(N,t),Ie(O,t)})),Lt=e=>Te($,e,((e,t,s)=>{Ie($,t,s),x(s[l],(e=>Ie(q,t,e)),(()=>xe(G,t)))}),((e,t)=>{Ie($,t),Ie(q,t),he(G,t)})),wt=e=>oe(e)?ds():os(e),It=e=>Te(X,e,((e,t,s)=>St(t,s)),((e,t)=>Vt(t))),St=(e,t)=>Te(Se(X,e,(()=>(xt(e,1),Ie(H,e,Qe()),Ie(U,e,ge()),ge()))),t,((t,s,n)=>Tt(e,t,s,n)),((t,s)=>Et(e,t,s))),Tt=(e,t,s,n,a)=>Te(Se(t,s,(()=>(Dt(e,s,1),ge()))),n,((t,n,a)=>Rt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),Rt=(e,t,s,n,a)=>{ie(s,n)||Jt(e,t,n,1);const o=Le(s,n);a!==o&&(At(e,t,n,o,a),Ie(s,n,a))},vt=(e,t,s,n,a)=>x(Le(t,s),(t=>Rt(e,s,t,n,a)),(()=>Tt(e,t,s,ht({[n]:a},e,s)))),yt=e=>oe(e)?gs():rs(e),Ct=e=>Te(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{ie(Y,e)||Ft(e,1);const s=Le(Y,e);t!==s&&(Qt(e,s,t),Ie(Y,e,t))},bt=(e,t)=>{const[s]=Le(H,e),n=s(t);return ie(Le(X,e),n)?bt(e,t):n},mt=e=>Le(X,e)??St(e,{}),Vt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=Le(H,e);n(s),Tt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=Le(Le(O,e)?.[0],a);if(!M(r)&&!o)return Rt(e,s,n,a,r);const i=t=>{At(e,s,t,Le(n,t)),Jt(e,s,t,-1),Ie(n,t)};M(r)?i(a):we(n,i),le(n)&&(Dt(e,s,-1),le(Ie(t,s))&&(xt(e,-1),Ie(X,e),Ie(H,e),Ie(U,e)))},Mt=e=>{const t=Le(q,e);if(!M(t))return pt(e,t);Qt(e,Le(Y,e)),Ft(e,-1),Ie(Y,e)},xt=(e,t)=>tt(r,e,t),Dt=(e,t,s)=>tt(Se(T,e,ge),t,s)&&Ie(h,e,Se(h,e,(()=>0))+s),Jt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Se(d,e,ge),s,n),Ie(a,s,o!=-n?o+n:null),tt(Se(Se(m,e,ge),t,ge),s,n)},At=(e,t,s,n,a)=>Se(Se(Se(V,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Se(k,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(K(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),Nt=(e,t,s)=>(K(Se(Q,e,(()=>[])),t),s),jt=(e,t,s)=>x(Le(Le(Le(V,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),Ot=e=>x(Le(k,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(A)||le(Oe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>nt(Oe[e],[s,n,a],t))))))),Bt=e=>le(Q)||le(Pe[e])?0:ue(e?Ce(Q):Q,((t,s)=>nt(Pe[e],[s],t))),Wt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Je[e]),s=le(Fe[e])&&le(ce[e])&&le(me[e])&&le(De[e])&&t&&le(_[e]),n=le(Ne[e])&&le(Ae[e])&&le(te[e])&&le(Z[e]);if(!s||!n){const a=e?[Ce(r),pe(d),Ce(h),pe(T),be(m),be(V)]:[r,d,h,T,m,V];if(!s){Wt(_[e],a[0]),ue(a[1],((t,s)=>Wt(ce[e],t,[s]))),ue(a[2],((t,s)=>{0!=t&&nt(me[e],[s],Yt(s))}));const s=Me();ue(a[3],((n,a)=>{Wt(De[e],n,[a])&&!t&&(nt(Je[e],[a,null]),xe(s,a))})),t||ue(a[5],((t,n)=>{if(!ie(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?xe(s,a):he(e,a))))),ue(s,(t=>nt(Je[e],[n,t])))}})),ue(a[4],((t,s)=>ue(t,((t,n)=>Wt(Fe[e],t,[s,n])))))}if(!n){let t;ue(a[5],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,i],l)=>{i!==s&&(nt(Ne[e],[n,o,l],i,s,jt),t=a=r=1)})),r&&nt(Ae[e],[n,o],jt)})),a&&nt(te[e],[n],jt)})),t&&nt(Z[e],void 0,jt)}}},qt=e=>{const t=le(We[e]),s=le($e[e])&&le(Be[e]);if(!t||!s){const n=e?[Ce(E),Ce(k)]:[E,k];if(t||Wt(We[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,Ot),t=1)})),t&&nt(Be[e],void 0,Ot)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,b)))),Ts),Ht=()=>[Re(V,((e,t)=>-1===Le(r,t)?null:Re(e,((e,s)=>-1===Le(Le(T,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),oe)),oe),Re(k,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(V,Xe,Ye),invalidCells:ye(A),changedValues:Re(k,Xe,Ye),invalidValues:Re(Q),changedTableIds:Re(r),changedRowIds:ve(T),changedCellIds:ye(m),changedValueIds:Re(E)}),Ut=()=>ye(X),Xt=()=>fe(X),Yt=e=>re(Le(X,b(e))),Zt=e=>fe(Le(X,b(e))),_t=(e,t,s,n=0,a)=>{return W(F(P((o=Le(X,b(e)),r=(e,s)=>[M(t)?s:Le(e,b(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>je(e,t)*(s?-1:1))),n,M(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>fe(Le(Le(X,b(e)),b(t))),ts=(e,t,s)=>Le(Le(Le(X,b(e)),b(t)),b(s)),ss=()=>Re(Y),ns=()=>fe(Y),as=e=>Le(Y,b(e)),os=e=>Gt((()=>(e=>et(e,it,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),is=e=>{try{wt(_e(e))}catch{}return Ts},ls=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>ie(X,e)?Vt(e):0),e),hs=(e,t)=>Gt(((e,t)=>x(Le(X,e),(s=>ie(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=a){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=a&&a++,1==a&&nt(qe,void 0,Ht,Kt),Ts),Ss=e=>(a>0&&(a--,0==a&&(s=!le(V),n=!le(k),a=1,Pt(1),s&&$t(1),Bt(1),n&&qt(1),e?.(Ht,Kt)&&(ue(V,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(Ts,t,s,n,e))))))),ue(k,(([e],t)=>ke(Ts,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),a=-1,Pt(0),s&&$t(0),Bt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),a=0,s=n=!1,B([r,d,h,T,m,V,A,E,k,Q],de))),Ts),Ts={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(Le(X,b(e))),getTableCellIds:e=>fe(Le(U,b(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(Le(Le(X,b(e)),b(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>ie(X,b(e)),hasTableCell:(e,t)=>ie(Le(U,b(e)),b(t)),hasRow:(e,t)=>ie(Le(X,b(e)),b(t)),hasCell:(e,t,s)=>ie(Le(Le(X,b(e)),b(t)),b(s)),hasValues:()=>!le(Y),hasValue:e=>ie(Y,b(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(N),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([N,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(oe(e)?ds:os)(e),(oe(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>it(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>lt(e,t,s)?Tt(e,mt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return lt(e,n,t)&&(e=b(e),Tt(e,mt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(lt(e,t,s,1)){const n=mt(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>x(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>vt(e,mt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ae(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>x(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ae(e[0],((e,t)=>M(e)?us(t):ae(e,((e,s)=>M(e)?hs(t,s):ae(e,((e,n)=>Ee(Ts,t,s,n,e))))))),ae(e[1],((e,t)=>ke(Ts,t,e)))})),setTablesJson:is,setValuesJson:e=>{try{yt(_e(e))}catch{}return Ts},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{is(e)}})),setTablesSchema:ls,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{ls(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>x(Le(X,e),(a=>x(Le(a,t),(o=>ie(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>ie(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,b(e)),t),forEachRow:(e,t)=>ue(Le(X,b(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,b(e)),b(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let i=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);j(r,i)||(i=r,o(Ts,e,t,s,n,a,i))}),Je[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Ts),delListener:e=>(at(e),Ts),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ae({[f]:[0,Z],[L]:[0,_],[g]:[1,te,[Xt]],[g+v]:[1,ce,[Xt]],[I]:[1,me,[Xt]],[S]:[1,De,[Xt]],[w]:[2,Ae,[Xt,Zt]],[v]:[2,Fe,[Xt,Zt]],[R]:[3,Ne,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,Oe],[C]:[0,Be],[p]:[0,We],[y]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Ts[u+a+c]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(Ts)};e.createCheckpoints=Ne,e.createCustomPersister=(e,t,s,n,a,o,r=[])=>{let i,l,c,d=0,u=0;Se($e,r,(()=>0)),Se(qe,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),i=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(x(i,e.delListener),g),schedule:async(...e)=>(K(Le(qe,r),...e),await(async()=>{if(!Le($e,r)){for(Ie($e,r,1);!M(l=X(Le(qe,r)));)try{await l()}catch(e){o?.(e)}Ie($e,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},e.createIndexes=Oe,e.createMetrics=We,e.createQueries=Ge,e.createRelationships=He,e.createStore=st,e.defaultSorter=je},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),o=t(0),r=t(t),i="type",l="default",c="Listener",d="Result",u="add",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",I=w+"Count",S=w+h,T="Sorted"+w+h,R="Cell",v=R+h,y="Value",C=y+"s",p=y+h,b=e=>s+e,m=Math.max,V=Math.min,E=isFinite,k=(e,t)=>e instanceof t,M=e=>null==e,x=(e,t,s)=>M(e)?s?.():t(e),D=e=>e==n||e==a,J=e=>t(e)==r,A=e=>Array.isArray(e),F=(e,t,s)=>e.slice(t,s),Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),j=(e,t)=>q(e)===q(t)&&N(e,((e,s)=>t[s]===e)),O=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),P=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),$=e=>H(e,((e,t)=>e+t),0),q=e=>e.length,G=e=>0==q(e),H=(e,t,s)=>e.reduce(t,s),K=(e,...t)=>e.push(...t),U=e=>e.pop(),X=e=>e.shift(),Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>k(e,Y)&&e.constructor==Y,se=(e,t)=>!M(((e,t)=>x(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>W(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>q(Z(e)))(e),re=e=>e?.size??0,ie=(e,t)=>e?.has(t)??!1,le=e=>M(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),Ie=(e,t,s)=>M(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(ie(e,t)||Ie(e,t,s()),Le(e,t)),Te=(e,t,s,n=Ie)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Re=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Re(e,(e=>Re(e,t,s)),oe),ye=(e,t,s)=>Re(e,(e=>ve(e,t,s)),oe),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),be=e=>Ce(e,pe),me=(e,t,s,n,a=0)=>x((s?Se:Le)(e,t[a],a>q(t)-2?s:ge),(o=>{if(a>q(t)-2)return n?.(o)&&Ie(e,t[a]),o;const r=me(o,t,s,n,a+1);return le(o)&&Ie(e,t[a]),r})),Ve=e=>{const s=t(e);return D(s)||s==o&&E(e)?s:void 0},Ee=(e,t,s,n,a)=>M(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>M(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(A(e)||M(e)?e:[e]),xe=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=ge(),i=ge(),l=ge(),c=ge(),d=ge(),u=ge(),h=(t,s,...n)=>{const a=Se(u,t,Me);return B(n,(t=>xe(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>x(Le(u,t),(n=>{B(G(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),le(n)&&Ie(u,t)})),f=(e,s)=>{Ie(r,e,s),ie(i,e)||(Ie(i,e,t()),Ie(c,e,ge()),Ie(d,e,ge()),a(l))},L=e=>{Ie(r,e),Ie(i,e),Ie(c,e),Ie(d,e),g(e),a(l)};return[()=>e,()=>fe(r),e=>we(i,e),e=>ie(i,e),e=>Le(r,e),e=>Le(i,e),(e,t)=>Ie(i,e,t),f,(t,n,a,r,i)=>{f(t,n);const l=ge(),u=ge(),L=Le(c,t),w=Le(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=Le(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&j(c,d)||Ie(l,t,[c,d]),!M(i)){const e=Le(w,t),s=o(n,t)?i(a,t):void 0;e!=s&&Ie(u,t,s)}},S=e=>{a((()=>{ue(l,(([,e],t)=>Ie(L,t,e))),ue(u,((e,t)=>Ie(w,t,e)))}),l,u,L,w,e),de(l),de(u)};we(L,I),e.hasTable(n)&&B(e.getRowIds(n),(e=>{ie(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,l),()=>we(u,L),h,g]},Je=(e,a)=>t(e)==n?t=>t(e):e??(()=>a??s),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let t=0;return[n=>(n?X(e):null)??s+t++,t=>{Fe.test(t)&&q(e)<1e3&&K(e,t)}]},ze=e=>{let t;const[n,a]=Qe(),o=ge();return[(a,r,i,l=[],c=(()=>[]))=>{t??=e();const d=n(1);return Ie(o,d,[a,r,i,l,c]),xe(me(r,i??[s],Me),d),d},(e,n,...a)=>B(((e,t=[s])=>{const n=[],a=(e,s)=>s==q(t)?K(n,e):null===t[s]?ue(e,(e=>a(e,s+1))):B([t[s],null],(t=>a(Le(e,t),s+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](t,...n??[],...a))))),e=>x(Le(o,e),(([,t,n])=>(me(t,n??[s],void 0,(t=>(he(t,e),le(t)?1:0))),Ie(o,e),a(e),n))),e=>x(Le(o,e),(([e,,s=[],n,a])=>{const o=(...r)=>{const i=q(r);i==q(s)?e(t,...r,...a(r)):M(s[i])?B(n[i]?.(...r)??[],(e=>o(...r,e))):o(...r,s[i])};o()}))]},Ne=Ae((e=>{let t,n,a,o=100,r=ge(),i=ge(),l=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>F)),f=ge(),L=ge(),w=[],I=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),l=1},T=e=>{Ie(f,e),Ie(L,e),h(d,[e])},R=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??q(e)),T),v=()=>R(w,q(w)-o),y=()=>x(t,(()=>{K(w,t),v(),R(I),t=void 0,a=1})),C=()=>{t=U(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(l){y();const e=Se(r,t,ge),i=Se(e,s,ge),l=Se(i,n,(()=>[o,void 0]));l[1]=a,l[0]===a&&le(Ie(i,n))&&le(Ie(e,s))&&le(Ie(r,t))&&C(),k()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(l){y();const e=Se(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(Ie(i,t))&&C(),k()}})),m=(e="")=>(M(t)&&(t=s+n++,Ie(f,t,[r,i]),J(t,e),r=ge(),i=ge(),a=1),t),V=()=>{G(w)||(((e,...t)=>{e.unshift(...t)})(I,m()),S(0,t),t=U(w),a=1)},E=()=>{G(I)||(K(w,t),t=X(I),S(1,t),a=1)},k=()=>{a&&(h(c),a=0)},D=e=>{const t=m(e);return k(),t},J=(e,t)=>(A(e)&&Le(L,e)!==t&&(Ie(L,e,t),h(d,[e])),F),A=e=>ie(f,e),F={setSize:e=>(o=e,v(),F),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...I]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:A,getCheckpoint:e=>Le(L,e),goBackward:()=>(V(),k(),F),goForward:()=>(E(),k(),F),goTo:e=>{const s=z(w,e)?V:z(I,e)?E:null;for(;!M(s)&&e!=t;)s();return k(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(R(w),R(I),M(t)||T(t),t=void 0,n=0,D(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return ee(F.clear())})),je=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const t=ge(),n=ge(),[a,o,r]=ze((()=>T)),[i,l,c,d,u,h,g,,f,L,w,I]=De(e,ge,(e=>M(e)?s:A(e)?W(e,b):b(e)),a,o),S=(t,s,n)=>{const a=u(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},T={setIndexDefinition:(e,s,a,r,i,l=je)=>{const c=M(i)?void 0:([e],[t])=>i(e,t);return f(e,s,((s,a,i,d,u,f)=>{let L=0;const w=Me(),I=Me(),S=h(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{xe(w,e),x(Le(S,e),(t=>{he(t,s),le(t)&&(Ie(S,e),L=1)}))})),ue(a,(e=>{xe(w,e),ie(S,e)||(Ie(S,e,Me()),L=1),xe(Le(S,e),s),M(r)||xe(I,e)}))})),s(),le(u)||(f?we(S,(e=>xe(I,e))):we(i,(e=>x(Le(d,e),(e=>xe(I,e))))),ue(I,(e=>{const t=(t,s)=>l(Le(u,t),Le(u,s),e),s=[...Le(S,e)];O(s,t)||(Ie(S,e,Me(P(s,t))),xe(w,e))}))),(L||f)&&!M(c)){const t=[...S];O(t,c)||(g(e,ge(P(t,c))),L=1)}L&&o(t,[e]),ue(w,(t=>o(n,[e,t])))}),Je(a),x(r,Je)),T},delIndexDefinition:e=>(L(e),T),getStore:i,getIndexIds:l,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>ie(h(e),t),getTableId:u,getSliceIds:e=>fe(h(e)),getSliceRowIds:(e,t)=>ce(Le(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,s)=>a(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),T),destroy:I,getListenerStats:()=>({})};return ee(T)})),Pe=ge([["avg",[(e,t)=>$(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=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Be=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,i,l,c]=a;return o||=M(e),ue(n,(([s,n])=>{o||(e=M(s)?i?.(e,n,t++):M(n)?l?.(e,s,t--):c?.(e,n,s,t),o||=M(e))})),o?r(ce(s),re(s)):e},We=Ae((e=>{const t=ge(),[n,a,o]=ze((()=>I)),[r,i,l,c,d,u,h,,g,f,L,w]=De(e,Q,(e=>isNaN(e)||M(e)||!0===e||!1===e||e===s?void 0:1*e),n,a),I={setMetricDefinition:(e,s,n,o,r,i,l)=>{const c=J(n)?[n,r,i,l]:Le(Pe,n)??Le(Pe,"sum");return g(e,s,((s,n,o,r,i,l)=>{const d=u(e),g=re(r);l||=M(d),s();let f=Be(d,g,r,n,c,l);E(f)||(f=void 0),f!=d&&(h(e,f),a(t,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:i,forEachMetric:l,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,s)=>n(s,t,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return ee(I)})),$e=ge(),qe=ge(),Ge=Ae((e=>{const t=e.createStore,n=t(),a=t(),o=ge(),{addListener:r,callListeners:i,delListener:l}=a,[h,f,L,y,C,,,p,,b,m,V,E,k]=De(e,(()=>!0),Q,r,i),D=(e,t,...s)=>B(s,(s=>xe(Se(Se(o,t,ge),e,Me),s))),A=e=>{x(Le(o,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),B([a,n],(t=>t.delTable(e)))},z=(e,t,s)=>D(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),j={setQueryDefinition:(t,o,r)=>{p(t,o),A(t);const i=[],l=[[null,[o,null,null,[],ge()]]],c=[],d=[],u=[];r({select:(e,t)=>{const n=J(e)?[q(i)+s,e]:[M(t)?e:t,s=>s(e,t)];return K(i,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=M(s)||J(t)?null:t,a=M(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],ge()]];return K(l,o),{as:e=>o[0]=e}},where:(e,t,s)=>K(c,J(e)?e:M(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return K(d,o),{as:e=>o[0]=e}},having:(e,t)=>K(u,J(e)?e:s=>s(e)===t)});const h=ge(i);if(le(h))return j;const g=ge(l);we(g,((e,[,t])=>x(Le(g,t),(({3:t})=>M(e)?0:K(t,e)))));const f=ge(d);let L=n;if(le(f)&&G(u))L=a;else{z(t,L,a);const e=ge();we(f,((t,[s,n])=>xe(Se(e,s,Me),[t,n])));const s=Me();we(h,(t=>ie(e,t)?0:xe(s,t)));const n=ge(),o=(s,n,o,r)=>x(s,(([i,l,c,d])=>{we(n,((t,[s])=>{const n=Se(i,t,ge),a=Le(n,o),l=r?void 0:s;if(a!==l){const s=Me([[a,l]]),r=re(n);Ie(n,o,l),ue(Le(e,t),(([e,t])=>{const a=Be(d[e],r,n,s,t);d[e]=M(Ve(a))?null:a}))}})),le(l)||!N(u,(e=>e((e=>d[e]))))?a.delRow(t,c):M(c)?s[2]=a.addRow(t,d):a.setRow(t,c,d)}));D(L,t,L.addRowListener(t,null,((a,r,i,l)=>{const c=[],d=[],u=ge(),h=L.hasRow(t,i);let g=!h;ue(s,(e=>{const[s,n,a]=l(t,i,e);K(c,n),K(d,a),g||=s})),we(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&Ie(u,e,[n])})),g&&o(me(n,c,void 0,(([,e])=>(he(e,i),le(e)))),u,i,1),h&&o(me(n,d,(()=>{const e={};return ue(s,(s=>e[s]=L.getCell(t,i,s))),[ge(),Me(),void 0,e]}),(([,e])=>{xe(e,i)})),u,i)})))}z(t,e,L);const w=(s,n,a,r)=>{const i=t=>e.getCell(n,a,t);B(r,(n=>{const[a,,o,r,l]=Le(g,n),c=o?.(i,s),[d,u]=Le(l,s)??[];c!=d&&(M(u)||k(t,u),Ie(l,s,M(c)?null:[c,...E(t,1,e.addRowListener(a,c,(()=>w(s,a,c,r))))]))})),(s=>{const n=(t,n)=>e.getCell(...M(n)?[o,s,t]:t===o?[o,s,n]:[Le(g,t)?.[0],Le(Le(g,t)?.[4],s)?.[0],n]);L.transaction((()=>N(c,(e=>e(n)))?we(h,((e,a)=>Ee(L,t,s,e,a(n,s)))):L.delRow(t,s)))})(s)},{3:I}=Le(g,null);return L.transaction((()=>E(t,1,e.addRowListener(o,null,((s,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(t,a),ue(g,(({4:e})=>x(Le(e,a),(([,s])=>{k(t,s),Ie(e,a)})))))}))))),j},delQueryDefinition:e=>(A(e),b(e),j),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:y,getTableId:C,addQueryIdsListener:e=>m((()=>e(j))),delListener:e=>(l(e),j),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ae({[g]:[1,1],[g+v]:[0,1],[I]:[0,1],[S]:[0,1],[T]:[0,5],[w]:[1,2],[v]:[0,2],[R]:[1,3]},(([e,t],s)=>{B(e?["get","has","forEach"]:["get"],(e=>j[e+d+s]=(...t)=>a[e+s](...t))),j[u+d+s+c]=(...e)=>a[u+s+c](...F(e,0,t),((s,...n)=>e[t](j,...n)),!0)})),ee(j)})),He=Ae((e=>{const t=ge(),n=ge(),a=ge(),o=ge(),[r,i,l]=ze((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[ge(),ge(),ge(),ge()]),(e=>M(e)?void 0:e+s),r,i),T=(e,t,s)=>x(f(e),(([n,,a])=>{if(!ie(a,t)){const o=Me();if(g(e)!=v(e))xe(o,t);else{let e=t;for(;!M(e)&&!ie(o,e);)xe(o,e),e=Le(n,e)}if(s)return o;Ie(a,t,o)}return Le(a,t)})),R=(e,t)=>x(f(e),(([,,e])=>Ie(e,t))),v=e=>Le(t,e),y={setRelationshipDefinition:(e,s,r,l)=>(Ie(t,e,r),L(e,s,((t,s)=>{const r=Me(),l=Me(),c=Me(),[d,u]=f(e);ue(s,(([t,s],n)=>{M(t)||(xe(l,t),x(Le(u,t),(e=>{he(e,n),le(e)&&Ie(u,t)}))),M(s)||(xe(l,s),ie(u,s)||Ie(u,s,Me()),xe(Le(u,s),n)),xe(r,n),Ie(d,n,s),we(Le(o,e),(t=>{ie(T(e,t),n)&&xe(c,t)}))})),t(),ue(r,(t=>i(n,[e,t]))),ue(l,(t=>i(a,[e,t]))),ue(c,(t=>{R(e,t),i(o,[e,t])}))}),Je(l)),y),delRelationshipDefinition:e=>(Ie(t,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:v,getRemoteRowId:(e,t)=>Le(f(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>M(f(e))?[t]:ce(T(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(T(e,t),r(s,o,[e,t])),delListener:e=>(R(...l(e)??[]),y),destroy:S,getListenerStats:()=>({})};return ee(y)})),Ke=e=>[e,e],Ue=()=>[ge(),ge()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>k(t,Map)?Y.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>M(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),tt=(e,t,s)=>Ie(e,t,Le(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,a=0;const r=ge(),d=ge(),h=ge(),T=ge(),m=ge(),V=ge(),E=ge(),k=ge(),A=ge(),Q=ge(),N=ge(),O=ge(),$=ge(),q=ge(),G=Me(),H=ge(),U=ge(),X=ge(),Y=ge(),Z=Ue(),_=Ue(),te=Ue(),ce=Ue(),me=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),Fe=Ue(),Ne=Ue(),Oe=Ue(),Pe=Ue(),Be=Ue(),We=Ue(),$e=Ue(),qe=ge(),Ge=Ue(),[He,nt,at,ot]=ze((()=>Ts)),rt=e=>{if(!et(e,((e,t)=>z([i,l],t))))return!1;const t=e[i];return!(!D(t)&&t!=o||(Ve(e[l])!=t&&ne(e,l),0))},it=(t,s)=>(!e||ie(N,s)||zt(s))&&et(t,((e,t)=>lt(s,t,e)),(()=>zt(s))),lt=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>x(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?x(Le(Le(N,t),n),(e=>Ve(a)!=e[i]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):M(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>x(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?x(Le($,e),(t=>Ve(s)!=t[i]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):M(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(x(Le(O,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(ue(q,((t,s)=>{se(e,s)||(e[s]=t)})),ue(G,(t=>{se(e,t)||Nt(t)}))),e),ft=e=>Te(N,e,((e,t,s)=>{const n=ge(),a=Me();Te(Se(N,t,ge),s,((e,t,s)=>{Ie(e,t,s),x(s[l],(e=>Ie(n,t,e)),(()=>xe(a,t)))})),Ie(O,t,[n,a])}),((e,t)=>{Ie(N,t),Ie(O,t)})),Lt=e=>Te($,e,((e,t,s)=>{Ie($,t,s),x(s[l],(e=>Ie(q,t,e)),(()=>xe(G,t)))}),((e,t)=>{Ie($,t),Ie(q,t),he(G,t)})),wt=e=>oe(e)?ds():os(e),It=e=>Te(X,e,((e,t,s)=>St(t,s)),((e,t)=>Vt(t))),St=(e,t)=>Te(Se(X,e,(()=>(xt(e,1),Ie(H,e,Qe()),Ie(U,e,ge()),ge()))),t,((t,s,n)=>Tt(e,t,s,n)),((t,s)=>Et(e,t,s))),Tt=(e,t,s,n,a)=>Te(Se(t,s,(()=>(Dt(e,s,1),ge()))),n,((t,n,a)=>Rt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),Rt=(e,t,s,n,a)=>{ie(s,n)||Jt(e,t,n,1);const o=Le(s,n);a!==o&&(At(e,t,n,o,a),Ie(s,n,a))},vt=(e,t,s,n,a)=>x(Le(t,s),(t=>Rt(e,s,t,n,a)),(()=>Tt(e,t,s,ht({[n]:a},e,s)))),yt=e=>oe(e)?gs():rs(e),Ct=e=>Te(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{ie(Y,e)||Ft(e,1);const s=Le(Y,e);t!==s&&(Qt(e,s,t),Ie(Y,e,t))},bt=(e,t)=>{const[s]=Le(H,e),n=s(t);return ie(Le(X,e),n)?bt(e,t):n},mt=e=>Le(X,e)??St(e,{}),Vt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=Le(H,e);n(s),Tt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=Le(Le(O,e)?.[0],a);if(!M(r)&&!o)return Rt(e,s,n,a,r);const i=t=>{At(e,s,t,Le(n,t)),Jt(e,s,t,-1),Ie(n,t)};M(r)?i(a):we(n,i),le(n)&&(Dt(e,s,-1),le(Ie(t,s))&&(xt(e,-1),Ie(X,e),Ie(H,e),Ie(U,e)))},Mt=e=>{const t=Le(q,e);if(!M(t))return pt(e,t);Qt(e,Le(Y,e)),Ft(e,-1),Ie(Y,e)},xt=(e,t)=>tt(r,e,t),Dt=(e,t,s)=>tt(Se(T,e,ge),t,s)&&Ie(h,e,Se(h,e,(()=>0))+s),Jt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Se(d,e,ge),s,n),Ie(a,s,o!=-n?o+n:null),tt(Se(Se(m,e,ge),t,ge),s,n)},At=(e,t,s,n,a)=>Se(Se(Se(V,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Se(k,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(K(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),Nt=(e,t,s)=>(K(Se(Q,e,(()=>[])),t),s),jt=(e,t,s)=>x(Le(Le(Le(V,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),Ot=e=>x(Le(k,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(A)||le(Oe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>nt(Oe[e],[s,n,a],t))))))),Bt=e=>le(Q)||le(Pe[e])?0:ue(e?Ce(Q):Q,((t,s)=>nt(Pe[e],[s],t))),Wt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Re(t))),1},$t=e=>{const t=le(Je[e]),s=le(Fe[e])&&le(ce[e])&&le(me[e])&&le(De[e])&&t&&le(_[e]),n=le(Ne[e])&&le(Ae[e])&&le(te[e])&&le(Z[e]);if(!s||!n){const a=e?[Ce(r),pe(d),Ce(h),pe(T),be(m),be(V)]:[r,d,h,T,m,V];if(!s){Wt(_[e],a[0]),ue(a[1],((t,s)=>Wt(ce[e],t,[s]))),ue(a[2],((t,s)=>{0!=t&&nt(me[e],[s],Yt(s))}));const s=Me();ue(a[3],((n,a)=>{Wt(De[e],n,[a])&&!t&&(nt(Je[e],[a,null]),xe(s,a))})),t||ue(a[5],((t,n)=>{if(!ie(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?xe(s,a):he(e,a))))),ue(s,(t=>nt(Je[e],[n,t])))}})),ue(a[4],((t,s)=>ue(t,((t,n)=>Wt(Fe[e],t,[s,n])))))}if(!n){let t;ue(a[5],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,i],l)=>{i!==s&&(nt(Ne[e],[n,o,l],i,s,jt),t=a=r=1)})),r&&nt(Ae[e],[n,o],jt)})),a&&nt(te[e],[n],jt)})),t&&nt(Z[e],void 0,jt)}}},qt=e=>{const t=le(We[e]),s=le($e[e])&&le(Be[e]);if(!t||!s){const n=e?[Ce(E),Ce(k)]:[E,k];if(t||Wt(We[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,Ot),t=1)})),t&&nt(Be[e],void 0,Ot)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,b)))),Ts),Ht=()=>[Re(V,((e,t)=>-1===Le(r,t)?null:Re(e,((e,s)=>-1===Le(Le(T,t),s)?null:Re(e,(([,e])=>e??null),((e,t)=>Ye(t)))),oe)),oe),Re(k,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(V,Xe,Ye),invalidCells:ye(A),changedValues:Re(k,Xe,Ye),invalidValues:Re(Q),changedTableIds:Re(r),changedRowIds:ve(T),changedCellIds:ye(m),changedValueIds:Re(E)}),Ut=()=>ye(X),Xt=()=>fe(X),Yt=e=>re(Le(X,b(e))),Zt=e=>fe(Le(X,b(e))),_t=(e,t,s,n=0,a)=>{return W(F(P((o=Le(X,b(e)),r=(e,s)=>[M(t)?s:Le(e,b(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>je(e,t)*(s?-1:1))),n,M(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>fe(Le(Le(X,b(e)),b(t))),ts=(e,t,s)=>Le(Le(Le(X,b(e)),b(t)),b(s)),ss=()=>Re(Y),ns=()=>fe(Y),as=e=>Le(Y,b(e)),os=e=>Gt((()=>(e=>et(e,it,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),is=e=>{try{wt(_e(e))}catch{}return Ts},ls=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>ie(X,e)?Vt(e):0),e),hs=(e,t)=>Gt(((e,t)=>x(Le(X,e),(s=>ie(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=a){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=a&&a++,1==a&&nt(qe,void 0,Ht,Kt),Ts),Ss=e=>(a>0&&(a--,0==a&&(s=!le(V),n=!le(k),a=1,Pt(1),s&&$t(1),Bt(1),n&&qt(1),e?.(Ht,Kt)&&(ue(V,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(Ts,t,s,n,e))))))),ue(k,(([e],t)=>ke(Ts,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),a=-1,Pt(0),s&&$t(0),Bt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),a=0,s=n=!1,B([r,d,h,T,m,V,A,E,k,Q],de))),Ts),Ts={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(Le(X,b(e))),getTableCellIds:e=>fe(Le(U,b(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Re(Le(Le(X,b(e)),b(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>ie(X,b(e)),hasTableCell:(e,t)=>ie(Le(U,b(e)),b(t)),hasRow:(e,t)=>ie(Le(X,b(e)),b(t)),hasCell:(e,t,s)=>ie(Le(Le(X,b(e)),b(t)),b(s)),hasValues:()=>!le(Y),hasValue:e=>ie(Y,b(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(N),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([N,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(oe(e)?ds:os)(e),(oe(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>it(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>lt(e,t,s)?Tt(e,mt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return lt(e,n,t)&&(e=b(e),Tt(e,mt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(lt(e,t,s,1)){const n=mt(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>x(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>vt(e,mt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ae(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>x(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ae(e[0],((e,t)=>M(e)?us(t):ae(e,((e,s)=>M(e)?hs(t,s):ae(e,((e,n)=>Ee(Ts,t,s,n,e))))))),ae(e[1],((e,t)=>ke(Ts,t,e)))})),setTablesJson:is,setValuesJson:e=>{try{yt(_e(e))}catch{}return Ts},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{is(e)}})),setTablesSchema:ls,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{ls(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>x(Le(X,e),(a=>x(Le(a,t),(o=>ie(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>ie(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,b(e)),t),forEachRow:(e,t)=>ue(Le(X,b(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,b(e)),b(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let i=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);j(r,i)||(i=r,o(Ts,e,t,s,n,a,i))}),Je[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Ts),delListener:e=>(at(e),Ts),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ae({[f]:[0,Z],[L]:[0,_],[g]:[1,te,[Xt]],[g+v]:[1,ce,[Xt]],[I]:[1,me,[Xt]],[S]:[1,De,[Xt]],[w]:[2,Ae,[Xt,Zt]],[v]:[2,Fe,[Xt,Zt]],[R]:[3,Ne,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,Oe],[C]:[0,Be],[p]:[0,We],[y]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Ts[u+a+c]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(Ts)};e.createCheckpoints=Ne,e.createCustomPersister=(e,t,s,n,a,o,r=[])=>{let i,l,c,d=0,u=0;Se($e,r,(()=>0)),Se(qe,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),i=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(x(i,e.delListener),g),schedule:async(...e)=>(K(Le(qe,r),...e),await(async()=>{if(!Le($e,r)){for(Ie($e,r,1);!M(l=X(Le(qe,r)));)try{await l()}catch(e){o?.(e)}Ie($e,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},e.createIndexes=Oe,e.createMetrics=We,e.createQueries=Ge,e.createRelationships=He,e.createStore=st,e.defaultSorter=je},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={});
Binary file
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t=n(""),r=n(!0),l=n(0),o=n(n),s="Listener",i="Result",a="Ids",d="Table",u="Row",c=u+"Count",v=u+a,f="Sorted"+u+a,h="Cell",y=h+a,g=(e,n)=>e.every(n),p=(e,n)=>e.forEach(n),w=e=>R(e,((e,n)=>e+n),0),L=e=>e.length,b=e=>0==L(e),R=(e,n,t)=>e.reduce(n,t),T=(e,...n)=>e.push(...n),m=Math.max,C=Math.min,O=isFinite,Q=e=>null==e,S=(e,n,t)=>Q(e)?null==t?void 0:t():n(e),x=e=>n(e)==o,I=e=>Array.isArray(e),j=()=>{},E=Object,M=E.freeze,D=e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0},k=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},z=e=>Q(e)||0==D(e),A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},F=e=>e.clear(),P=(e,n)=>null==e?void 0:e.forEach(n),B=(e,n)=>null==e?void 0:e.delete(n),W=e=>new Map(e),q=(e,n)=>null==e?void 0:e.get(n),G=(e,n)=>P(e,((e,t)=>n(t,e))),H=(e,n,t)=>Q(t)?(B(e,n),e):null==e?void 0:e.set(n,t),J=(e,n,t)=>(k(e,n)||H(e,n,t()),q(e,n)),K=(e,n,t,r,l=0)=>S((t?J:q)(e,n[l],l>L(n)-2?t:W),(o=>{if(l>L(n)-2)return(null==r?void 0:r(o))&&H(e,n[l]),o;const s=K(o,n,t,r,l+1);return z(o)&&H(e,n[l]),s})),N=e=>new Set(I(e)||Q(e)?e:[e]),U=(e,n)=>null==e?void 0:e.add(n),V=W([["avg",[(e,n)=>w(e)/n,(e,n,t)=>e+(n-e)/(t+1),(e,n,t)=>e+(e-n)/(t-1),(e,n,t,r)=>e+(n-t)/r]],["max",[e=>m(...e),(e,n)=>m(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:m(n,e)]],["min",[e=>C(...e),(e,n)=>C(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:C(n,e)]],["sum",[e=>w(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]);var X=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;const $=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,a=o(),w=o(),R=W(),{addListener:m,callListeners:C,delListener:$}=w,[_,ee,ne,te,re,,,le,,oe,se,ie,ae,de]=((e,n,t,r,l)=>{const o=e.hasRow,s=W(),i=W(),a=W(),d=W(),u=W(),c=W(),v=(n,t,...r)=>{const l=J(c,n,N);return p(r,(n=>U(l,n)&&t&&e.callListener(n))),r},f=(n,...t)=>S(q(c,n),(r=>{p(b(t)?A(r):t,(n=>{e.delListener(n),B(r,n)})),z(r)&&H(c,n)})),h=(e,n)=>{H(s,e,n),k(i,e)||(H(i,e,!0),H(d,e,W()),H(u,e,W()),l(a))},y=e=>{H(s,e),H(i,e),H(d,e),H(u,e),f(e),l(a)};return[()=>e,()=>{return[...null!=(n=null==(e=s)?void 0:e.keys())?n:[]];var e,n},e=>G(i,e),e=>k(i,e),e=>q(s,e),e=>q(i,e),(e,n)=>H(i,e,n),h,(n,r,l,s,i)=>{h(n,r);const a=W(),c=W(),y=q(d,n),w=q(u,n),b=n=>{const l=t=>e.getCell(r,n,t),d=q(y,n),u=o(r,n)?t(s(l,n)):void 0;var v,f;if(d===u||I(d)&&I(u)&&(f=u,L(v=d)===L(f)&&g(v,((e,n)=>f[n]===e)))||H(a,n,[d,u]),!Q(i)){const e=q(w,n),t=o(r,n)?i(l,n):void 0;e!=t&&H(c,n,t)}},R=e=>{l((()=>{P(a,(([,e],n)=>H(y,n,e))),P(c,((e,n)=>H(w,n,e)))}),a,c,y,w,e),F(a),F(c)};G(y,b),e.hasTable(r)&&p(e.getRowIds(r),(e=>{k(y,e)||b(e)})),R(!0),f(n),v(n,0,e.addRowListener(r,null,((e,n,t)=>b(t))),e.addTableListener(r,(()=>R())))},y,e=>r(e,a),()=>G(c,y),v,f]})(e,0,j,m,C),ue=(e,n,...t)=>p(t,(t=>U(J(J(R,n,W),e,N),t))),ce=e=>{S(q(R,e),(e=>{G(e,((e,n)=>P(n,(n=>e.delListener(n))))),F(e)})),p([w,a],(n=>n.delTable(e)))},ve=(e,n,t)=>ue(n,e,n.addStartTransactionListener(t.startTransaction),n.addDidFinishTransactionListener((()=>t.finishTransaction()))),fe={setQueryDefinition:(o,s,i)=>{le(o,s),ce(o);const d=[],u=[[null,[s,null,null,[],W()]]],c=[],v=[],f=[];i({select:(e,n)=>{const t=x(e)?[L(d)+"",e]:[Q(n)?e:n,t=>t(e,n)];return T(d,t),{as:e=>t[0]=e}},join:(e,n,t)=>{const r=Q(t)||x(n)?null:n,l=Q(r)?n:t,o=[e,[e,r,x(l)?l:e=>e(l),[],W()]];return T(u,o),{as:e=>o[0]=e}},where:(e,n,t)=>T(c,x(e)?e:Q(t)?t=>t(e)===n:r=>r(e,n)===t),group:(e,n,t,r,l)=>{var o;const s=[e,[e,x(n)?[n,t,r,l]:null!=(o=q(V,n))?o:[(e,n)=>n]]];return T(v,s),{as:e=>s[0]=e}},having:(e,n)=>T(f,x(e)?e:t=>t(e)===n)});const h=W(d);if(z(h))return fe;const y=W(u);G(y,((e,[,n])=>S(q(y,n),(({3:n})=>Q(e)?0:T(n,e)))));const R=W(v);let m=a;if(z(R)&&b(f))m=w;else{ve(o,m,w);const e=W();G(R,((n,[t,r])=>U(J(e,t,N),[n,r])));const s=N();G(h,(n=>k(e,n)?0:U(s,n)));const i=W(),a=(s,i,a,d)=>S(s,(([u,c,v,h])=>{G(i,((o,[s])=>{const i=J(u,o,W),c=q(i,a),v=d?void 0:s;if(c!==v){const s=N([[c,v]]),d=D(i);H(i,a,v),P(q(e,o),(([e,o])=>{const a=((e,n,t,r,l,o=!1)=>{if(z(t))return;const[s,i,a,d]=l;return o||(o=Q(e)),P(r,(([t,r])=>{o||(e=Q(t)?null==i?void 0:i(e,r,n++):Q(r)?null==a?void 0:a(e,t,n--):null==d?void 0:d(e,r,t,n),o||(o=Q(e)))})),o?s(A(t),D(t)):e})(h[e],d,i,s,o);h[e]=Q((e=>{const o=n(e);return(e=>e==t||e==r)(o)||o==l&&O(e)?o:void 0})(a))?null:a}))}})),z(c)||!g(f,(e=>e((e=>h[e]))))?w.delRow(o,v):Q(v)?s[2]=w.addRow(o,h):w.setRow(o,v,h)}));ue(m,o,m.addRowListener(o,null,((n,t,r,l)=>{const d=[],u=[],c=W(),v=m.hasRow(o,r);let f=!v;P(s,(e=>{const[n,t,s]=l(o,r,e);T(d,t),T(u,s),f||(f=n)})),G(e,(e=>{const[n,,t]=l(o,r,e);(f||n)&&H(c,e,[t])})),f&&a(K(i,d,void 0,(([,e])=>(B(e,r),z(e)))),c,r,1),v&&a(K(i,u,(()=>{const e={};return P(s,(n=>e[n]=m.getCell(o,r,n))),[W(),N(),void 0,e]}),(([,e])=>{U(e,r)})),c,r)})))}ve(o,e,m);const C=(n,t,r,l)=>{const i=n=>e.getCell(t,r,n);p(l,(t=>{var r;const[l,,s,a,d]=q(y,t),u=null==s?void 0:s(i,n),[c,v]=null!=(r=q(d,n))?r:[];u!=c&&(Q(v)||de(o,v),H(d,n,Q(u)?null:[u,...ae(o,1,e.addRowListener(l,u,(()=>C(n,l,u,a))))]))})),(n=>{const t=(t,r)=>{var l,o,i;return e.getCell(...Q(r)?[s,n,t]:t===s?[s,n,r]:[null==(l=q(y,t))?void 0:l[0],null==(i=q(null==(o=q(y,t))?void 0:o[4],n))?void 0:i[0],r])};m.transaction((()=>g(c,(e=>e(t)))?G(h,((e,r)=>((e,n,t,r,l)=>Q(l)?e.delCell(n,t,r,!0):e.setCell(n,t,r,l))(m,o,n,e,r(t,n)))):m.delRow(o,n)))})(n)},{3:I}=q(y,null);return m.transaction((()=>ae(o,1,e.addRowListener(s,null,((n,t,r)=>{e.hasRow(s,r)?C(r,s,r,I):(m.delRow(o,r),P(y,(({4:e})=>S(q(e,r),(([,n])=>{de(o,n),H(e,r)})))))}))))),fe},delQueryDefinition:e=>(ce(e),oe(e),fe),getStore:_,getQueryIds:ee,forEachQuery:ne,hasQuery:te,getTableId:re,addQueryIdsListener:e=>se((()=>e(fe))),delListener:e=>($(e),fe),destroy:ie,getListenerStats:()=>((e,n)=>{var t={};for(var r in e)Y.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&X)for(var r of X(e))n.indexOf(r)<0&&Z.call(e,r)&&(t[r]=e[r]);return t})(w.getListenerStats(),["tables","tableIds","transaction"])};var he,ye;return he={[d]:[1,1],[d+y]:[0,1],[c]:[0,1],[v]:[0,1],[f]:[0,5],[u]:[1,2],[y]:[0,2],[h]:[1,3]},ye=([e,n],t)=>{p(e?["get","has","forEach"]:["get"],(e=>fe[e+i+t]=(...n)=>w[e+t](...n))),fe["add"+i+t+s]=(...e)=>{return w["add"+t+s](...(r=e,0,l=n,r.slice(0,l)),((t,...r)=>e[n](fe,...r)));var r,l}},((e,n)=>{e.map(n)})(E.entries(he),(([e,n])=>ye(n,e))),M(fe)})(e)),o.get(e))})();e.createQueries=$},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t=n(""),r=n(!0),l=n(0),o=n(n),s="Listener",i="Result",a="Ids",d="Table",u="Row",c=u+"Count",v=u+a,f="Sorted"+u+a,h="Cell",y=h+a,g=(e,n)=>e.every(n),p=(e,n)=>e.forEach(n),w=e=>R(e,((e,n)=>e+n),0),L=e=>e.length,b=e=>0==L(e),R=(e,n,t)=>e.reduce(n,t),T=(e,...n)=>e.push(...n),m=Math.max,C=Math.min,O=isFinite,Q=e=>null==e,S=(e,n,t)=>Q(e)?null==t?void 0:t():n(e),x=e=>n(e)==o,I=e=>Array.isArray(e),j=()=>{},E=Object,M=E.freeze,D=e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0},k=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},z=e=>Q(e)||0==D(e),A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},F=e=>e.clear(),P=(e,n)=>null==e?void 0:e.forEach(n),B=(e,n)=>null==e?void 0:e.delete(n),W=e=>new Map(e),q=(e,n)=>null==e?void 0:e.get(n),G=(e,n)=>P(e,((e,t)=>n(t,e))),H=(e,n,t)=>Q(t)?(B(e,n),e):null==e?void 0:e.set(n,t),J=(e,n,t)=>(k(e,n)||H(e,n,t()),q(e,n)),K=(e,n,t,r,l=0)=>S((t?J:q)(e,n[l],l>L(n)-2?t:W),(o=>{if(l>L(n)-2)return(null==r?void 0:r(o))&&H(e,n[l]),o;const s=K(o,n,t,r,l+1);return z(o)&&H(e,n[l]),s})),N=e=>new Set(I(e)||Q(e)?e:[e]),U=(e,n)=>null==e?void 0:e.add(n),V=W([["avg",[(e,n)=>w(e)/n,(e,n,t)=>e+(n-e)/(t+1),(e,n,t)=>e+(e-n)/(t-1),(e,n,t,r)=>e+(n-t)/r]],["max",[e=>m(...e),(e,n)=>m(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:m(n,e)]],["min",[e=>C(...e),(e,n)=>C(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:C(n,e)]],["sum",[e=>w(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]);var X=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;const $=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=e.createStore,a=o(),w=o(),R=W(),{addListener:m,callListeners:C,delListener:$}=w,[_,ee,ne,te,re,,,le,,oe,se,ie,ae,de]=((e,n,t,r,l)=>{const o=e.hasRow,s=W(),i=W(),a=W(),d=W(),u=W(),c=W(),v=(n,t,...r)=>{const l=J(c,n,N);return p(r,(n=>U(l,n)&&t&&e.callListener(n))),r},f=(n,...t)=>S(q(c,n),(r=>{p(b(t)?A(r):t,(n=>{e.delListener(n),B(r,n)})),z(r)&&H(c,n)})),h=(e,n)=>{H(s,e,n),k(i,e)||(H(i,e,!0),H(d,e,W()),H(u,e,W()),l(a))},y=e=>{H(s,e),H(i,e),H(d,e),H(u,e),f(e),l(a)};return[()=>e,()=>{return[...null!=(n=null==(e=s)?void 0:e.keys())?n:[]];var e,n},e=>G(i,e),e=>k(i,e),e=>q(s,e),e=>q(i,e),(e,n)=>H(i,e,n),h,(n,r,l,s,i)=>{h(n,r);const a=W(),c=W(),y=q(d,n),w=q(u,n),b=n=>{const l=t=>e.getCell(r,n,t),d=q(y,n),u=o(r,n)?t(s(l,n)):void 0;var v,f;if(d===u||I(d)&&I(u)&&(f=u,L(v=d)===L(f)&&g(v,((e,n)=>f[n]===e)))||H(a,n,[d,u]),!Q(i)){const e=q(w,n),t=o(r,n)?i(l,n):void 0;e!=t&&H(c,n,t)}},R=e=>{l((()=>{P(a,(([,e],n)=>H(y,n,e))),P(c,((e,n)=>H(w,n,e)))}),a,c,y,w,e),F(a),F(c)};G(y,b),e.hasTable(r)&&p(e.getRowIds(r),(e=>{k(y,e)||b(e)})),R(!0),f(n),v(n,0,e.addRowListener(r,null,((e,n,t)=>b(t))),e.addTableListener(r,(()=>R())))},y,e=>r(e,a),()=>G(c,y),v,f]})(e,0,j,m,C),ue=(e,n,...t)=>p(t,(t=>U(J(J(R,n,W),e,N),t))),ce=e=>{S(q(R,e),(e=>{G(e,((e,n)=>P(n,(n=>e.delListener(n))))),F(e)})),p([w,a],(n=>n.delTable(e)))},ve=(e,n,t)=>ue(n,e,n.addStartTransactionListener(t.startTransaction),n.addDidFinishTransactionListener((()=>t.finishTransaction()))),fe={setQueryDefinition:(o,s,i)=>{le(o,s),ce(o);const d=[],u=[[null,[s,null,null,[],W()]]],c=[],v=[],f=[];i({select:(e,n)=>{const t=x(e)?[L(d)+"",e]:[Q(n)?e:n,t=>t(e,n)];return T(d,t),{as:e=>t[0]=e}},join:(e,n,t)=>{const r=Q(t)||x(n)?null:n,l=Q(r)?n:t,o=[e,[e,r,x(l)?l:e=>e(l),[],W()]];return T(u,o),{as:e=>o[0]=e}},where:(e,n,t)=>T(c,x(e)?e:Q(t)?t=>t(e)===n:r=>r(e,n)===t),group:(e,n,t,r,l)=>{var o;const s=[e,[e,x(n)?[n,t,r,l]:null!=(o=q(V,n))?o:[(e,n)=>n]]];return T(v,s),{as:e=>s[0]=e}},having:(e,n)=>T(f,x(e)?e:t=>t(e)===n)});const h=W(d);if(z(h))return fe;const y=W(u);G(y,((e,[,n])=>S(q(y,n),(({3:n})=>Q(e)?0:T(n,e)))));const R=W(v);let m=a;if(z(R)&&b(f))m=w;else{ve(o,m,w);const e=W();G(R,((n,[t,r])=>U(J(e,t,N),[n,r])));const s=N();G(h,(n=>k(e,n)?0:U(s,n)));const i=W(),a=(s,i,a,d)=>S(s,(([u,c,v,h])=>{G(i,((o,[s])=>{const i=J(u,o,W),c=q(i,a),v=d?void 0:s;if(c!==v){const s=N([[c,v]]),d=D(i);H(i,a,v),P(q(e,o),(([e,o])=>{const a=((e,n,t,r,l,o=!1)=>{if(z(t))return;const[s,i,a,d]=l;return o||(o=Q(e)),P(r,(([t,r])=>{o||(e=Q(t)?null==i?void 0:i(e,r,n++):Q(r)?null==a?void 0:a(e,t,n--):null==d?void 0:d(e,r,t,n),o||(o=Q(e)))})),o?s(A(t),D(t)):e})(h[e],d,i,s,o);h[e]=Q((e=>{const o=n(e);return(e=>e==t||e==r)(o)||o==l&&O(e)?o:void 0})(a))?null:a}))}})),z(c)||!g(f,(e=>e((e=>h[e]))))?w.delRow(o,v):Q(v)?s[2]=w.addRow(o,h):w.setRow(o,v,h)}));ue(m,o,m.addRowListener(o,null,((n,t,r,l)=>{const d=[],u=[],c=W(),v=m.hasRow(o,r);let f=!v;P(s,(e=>{const[n,t,s]=l(o,r,e);T(d,t),T(u,s),f||(f=n)})),G(e,(e=>{const[n,,t]=l(o,r,e);(f||n)&&H(c,e,[t])})),f&&a(K(i,d,void 0,(([,e])=>(B(e,r),z(e)))),c,r,1),v&&a(K(i,u,(()=>{const e={};return P(s,(n=>e[n]=m.getCell(o,r,n))),[W(),N(),void 0,e]}),(([,e])=>{U(e,r)})),c,r)})))}ve(o,e,m);const C=(n,t,r,l)=>{const i=n=>e.getCell(t,r,n);p(l,(t=>{var r;const[l,,s,a,d]=q(y,t),u=null==s?void 0:s(i,n),[c,v]=null!=(r=q(d,n))?r:[];u!=c&&(Q(v)||de(o,v),H(d,n,Q(u)?null:[u,...ae(o,1,e.addRowListener(l,u,(()=>C(n,l,u,a))))]))})),(n=>{const t=(t,r)=>{var l,o,i;return e.getCell(...Q(r)?[s,n,t]:t===s?[s,n,r]:[null==(l=q(y,t))?void 0:l[0],null==(i=q(null==(o=q(y,t))?void 0:o[4],n))?void 0:i[0],r])};m.transaction((()=>g(c,(e=>e(t)))?G(h,((e,r)=>((e,n,t,r,l)=>Q(l)?e.delCell(n,t,r,!0):e.setCell(n,t,r,l))(m,o,n,e,r(t,n)))):m.delRow(o,n)))})(n)},{3:I}=q(y,null);return m.transaction((()=>ae(o,1,e.addRowListener(s,null,((n,t,r)=>{e.hasRow(s,r)?C(r,s,r,I):(m.delRow(o,r),P(y,(({4:e})=>S(q(e,r),(([,n])=>{de(o,n),H(e,r)})))))}))))),fe},delQueryDefinition:e=>(ce(e),oe(e),fe),getStore:_,getQueryIds:ee,forEachQuery:ne,hasQuery:te,getTableId:re,addQueryIdsListener:e=>se((()=>e(fe))),delListener:e=>($(e),fe),destroy:ie,getListenerStats:()=>((e,n)=>{var t={};for(var r in e)Y.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&X)for(var r of X(e))n.indexOf(r)<0&&Z.call(e,r)&&(t[r]=e[r]);return t})(w.getListenerStats(),["tables","tableIds","transaction"])};var he,ye;return he={[d]:[1,1],[d+y]:[0,1],[c]:[0,1],[v]:[0,1],[f]:[0,5],[u]:[1,2],[y]:[0,2],[h]:[1,3]},ye=([e,n],t)=>{p(e?["get","has","forEach"]:["get"],(e=>fe[e+i+t]=(...n)=>w[e+t](...n))),fe["add"+i+t+s]=(...e)=>{return w["add"+t+s](...(r=e,0,l=n,r.slice(0,l)),((t,...r)=>e[n](fe,...r)),!0);var r,l}},((e,n)=>{e.map(n)})(E.entries(he),(([e,n])=>ye(n,e))),M(fe)})(e)),o.get(e))})();e.createQueries=$},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
Binary file