tinybase 4.3.7 → 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/cjs/queries.cjs +1 -1
- package/lib/cjs/queries.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/queries.cjs +1 -1
- package/lib/cjs-es6/queries.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/debug/queries.js +1 -0
- package/lib/debug/tinybase.js +1 -0
- package/lib/es6/queries.js +1 -1
- package/lib/es6/queries.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/queries.js +1 -1
- package/lib/queries.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/queries.d.ts +24 -0
- package/lib/types/with-schemas/queries.d.ts +24 -0
- package/lib/umd/queries.js +1 -1
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd-es6/queries.js +1 -1
- package/lib/umd-es6/queries.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/package.json +2 -2
- package/readme.md +2 -2
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};
|
package/lib/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/types/queries.d.ts
CHANGED
|
@@ -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.
|
|
@@ -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.
|
package/lib/umd/queries.js
CHANGED
|
@@ -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={});
|
package/lib/umd/queries.js.gz
CHANGED
|
Binary file
|
package/lib/umd/tinybase.js
CHANGED
|
@@ -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={});
|
package/lib/umd/tinybase.js.gz
CHANGED
|
Binary file
|
package/lib/umd-es6/queries.js
CHANGED
|
@@ -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
|
package/lib/umd-es6/tinybase.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),s=t(!0),o=t(0),r=t(t),i="type",a="default",d="Listener",u="Result",c="add",v="Ids",h="Table",f=h+"s",g=h+v,L="Row",y=L+"Count",p=L+v,I="Sorted"+L+v,S="Cell",T=S+v,R="Value",w=R+"s",C=R+v,b=e=>n+e,m=Math.max,V=Math.min,E=isFinite,x=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,n)=>k(e)?null==n?void 0:n():t(e),D=e=>e==l||e==s,J=e=>t(e)==r,A=e=>Array.isArray(e),O=(e,t,n)=>e.slice(t,n),F=()=>{},P=(e,t)=>e.includes(t),Q=(e,t)=>e.every(t),j=(e,t)=>q(e)===q(t)&&Q(e,((e,n)=>t[n]===e)),z=(e,t)=>Q(e,((n,l)=>0==l||t(e[l-1],n)<=0)),N=(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,n)=>e.reduce(t,n),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=>x(e,Y)&&e.constructor==Y,ne=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),le=(e,t)=>(delete e[t],e),se=(e,t)=>W(Y.entries(e),(([e,n])=>t(n,e))),oe=e=>te(e)&&0==(e=>q(Z(e)))(e),re=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},ie=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},ae=e=>k(e)||0==re(e),de=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},ue=e=>e.clear(),ce=(e,t)=>null==e?void 0:e.forEach(t),ve=(e,t)=>null==e?void 0:e.delete(t),he=e=>new Map(e),fe=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ge=(e,t)=>null==e?void 0:e.get(t),Le=(e,t)=>ce(e,((e,n)=>t(n,e))),ye=(e,t,n)=>k(n)?(ve(e,t),e):null==e?void 0:e.set(t,n),pe=(e,t,n)=>(ie(e,t)||ye(e,t,n()),ge(e,t)),Ie=(e,t,n,l=ye)=>(se(t,((t,l)=>n(e,l,t))),Le(e,(n=>ne(t,n)?0:l(e,n))),e),Se=(e,t,n)=>{const l={};return ce(e,((e,s)=>{const o=t?t(e,s):e;!(null==n?void 0:n(o,e))&&(l[s]=o)})),l},Te=(e,t,n)=>Se(e,(e=>Se(e,t,n)),oe),Re=(e,t,n)=>Se(e,(e=>Te(e,t,n)),oe),we=(e,t)=>{const n=he();return ce(e,((e,l)=>{var s;return n.set(l,null!=(s=null==t?void 0:t(e))?s:e)})),n},Ce=e=>we(e,we),be=e=>we(e,Ce),me=(e,t,n,l,s=0)=>M((n?pe:ge)(e,t[s],s>q(t)-2?n:he),(o=>{if(s>q(t)-2)return(null==l?void 0:l(o))&&ye(e,t[s]),o;const r=me(o,t,n,l,s+1);return ae(o)&&ye(e,t[s]),r})),Ve=e=>{const n=t(e);return D(n)||n==o&&E(e)?n:void 0},Ee=(e,t,n,l,s)=>k(s)?e.delCell(t,n,l,!0):e.setCell(t,n,l,s),xe=(e,t,n)=>k(n)?e.delValue(t):e.setValue(t,n),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>null==e?void 0:e.add(t),De=(e,t,n,l,s)=>{const o=e.hasRow,r=he(),i=he(),a=he(),d=he(),u=he(),c=he(),v=(t,n,...l)=>{const s=pe(c,t,ke);return B(l,(t=>Me(s,t)&&n&&e.callListener(t))),l},h=(t,...n)=>M(ge(c,t),(l=>{B(G(n)?de(l):n,(t=>{e.delListener(t),ve(l,t)})),ae(l)&&ye(c,t)})),f=(e,n)=>{ye(r,e,n),ie(i,e)||(ye(i,e,t()),ye(d,e,he()),ye(u,e,he()),s(a))},g=e=>{ye(r,e),ye(i,e),ye(d,e),ye(u,e),h(e),s(a)};return[()=>e,()=>fe(r),e=>Le(i,e),e=>ie(i,e),e=>ge(r,e),e=>ge(i,e),(e,t)=>ye(i,e,t),f,(t,l,s,r,i)=>{f(t,l);const a=he(),c=he(),g=ge(d,t),L=ge(u,t),y=t=>{const s=n=>e.getCell(l,t,n),d=ge(g,t),u=o(l,t)?n(r(s,t)):void 0;if(d===u||A(d)&&A(u)&&j(d,u)||ye(a,t,[d,u]),!k(i)){const e=ge(L,t),n=o(l,t)?i(s,t):void 0;e!=n&&ye(c,t,n)}},p=e=>{s((()=>{ce(a,(([,e],t)=>ye(g,t,e))),ce(c,((e,t)=>ye(L,t,e)))}),a,c,g,L,e),ue(a),ue(c)};Le(g,y),e.hasTable(l)&&B(e.getRowIds(l),(e=>{ie(g,e)||y(e)})),p(!0),h(t),v(t,0,e.addRowListener(l,null,((e,t,n)=>y(n))),e.addTableListener(l,(()=>p())))},g,e=>l(e,a),()=>Le(c,g),v,h]},Je=(e,s)=>t(e)==l?t=>t(e):null!=e?e:()=>null!=s?s:n,Ae=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},Oe=/^\d+$/,Fe=()=>{const e=[];let t=0;return[l=>{var s;return null!=(s=l?X(e):null)?s:n+t++},t=>{Oe.test(t)&&q(e)<1e3&&K(e,t)}]},Pe=e=>{let t;const[l,s]=Fe(),o=he();return[(s,r,i,a=[],d=(()=>[]))=>{null!=t||(t=e());const u=l(1);return ye(o,u,[s,r,i,a,d]),Me(me(r,null!=i?i:[n],ke),u),u},(e,l,...s)=>B(((e,t=[n])=>{const l=[],s=(e,n)=>n==q(t)?K(l,e):null===t[n]?ce(e,(e=>s(e,n+1))):B([t[n],null],(t=>s(ge(e,t),n+1)));return s(e,0),l})(e,l),(e=>ce(e,(e=>ge(o,e)[0](t,...null!=l?l:[],...s))))),e=>M(ge(o,e),(([,t,l])=>(me(t,null!=l?l:[n],void 0,(t=>(ve(t,e),ae(t)?1:0))),ye(o,e),s(e),l))),e=>M(ge(o,e),(([e,,n=[],l,s])=>{const o=(...r)=>{var i,a;const d=q(r);d==q(n)?e(t,...r,...s(r)):k(n[d])?B(null!=(a=null==(i=l[d])?void 0:i.call(l,...r))?a:[],(e=>o(...r,e))):o(...r,n[d])};o()}))]},Qe=Ae((e=>{let t,l,s,o=100,r=he(),i=he(),a=1;const d=he(),u=he(),[c,v,h]=Pe((()=>O)),f=he(),g=he(),L=[],y=[],p=(t,n)=>{a=0,e.transaction((()=>{const[l,s]=ge(f,n);ce(l,((n,l)=>ce(n,((n,s)=>ce(n,((n,o)=>Ee(e,l,s,o,n[t]))))))),ce(s,((n,l)=>xe(e,l,n[t])))})),a=1},I=e=>{ye(f,e),ye(g,e),v(u,[e])},S=(e,t)=>B(((e,t)=>e.splice(0,t))(e,null!=t?t:q(e)),I),T=()=>S(L,q(L)-o),R=()=>M(t,(()=>{K(L,t),T(),S(y),t=void 0,s=1})),w=()=>{t=U(L),s=1},C=e.addCellListener(null,null,null,((e,t,n,l,s,o)=>{if(a){R();const e=pe(r,t,he),i=pe(e,n,he),a=pe(i,l,(()=>[o,void 0]));a[1]=s,a[0]===s&&ae(ye(i,l))&&ae(ye(e,n))&&ae(ye(r,t))&&w(),x()}})),b=e.addValueListener(null,((e,t,n,l)=>{if(a){R();const e=pe(i,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&ae(ye(i,t))&&w(),x()}})),m=(e="")=>(k(t)&&(t=n+l++,ye(f,t,[r,i]),J(t,e),r=he(),i=he(),s=1),t),V=()=>{G(L)||(((e,...t)=>{e.unshift(...t)})(y,m()),p(0,t),t=U(L),s=1)},E=()=>{G(y)||(K(L,t),t=X(y),p(1,t),s=1)},x=()=>{s&&(v(d),s=0)},D=e=>{const t=m(e);return x(),t},J=(e,t)=>(A(e)&&ge(g,e)!==t&&(ye(g,e,t),v(u,[e])),O),A=e=>ie(f,e),O={setSize:e=>(o=e,T(),O),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...L],t,[...y]],forEachCheckpoint:e=>Le(g,e),hasCheckpoint:A,getCheckpoint:e=>ge(g,e),goBackward:()=>(V(),x(),O),goForward:()=>(E(),x(),O),goTo:e=>{const n=P(L,e)?V:P(y,e)?E:null;for(;!k(n)&&e!=t;)n();return x(),O},addCheckpointIdsListener:e=>c(e,d),addCheckpointListener:(e,t)=>c(t,u,[e]),delListener:e=>(h(e),O),clear:()=>(S(L),S(y),k(t)||I(t),t=void 0,l=0,D(),O),destroy:()=>{e.delListener(C),e.delListener(b)},getListenerStats:()=>({})};return ee(O.clear())})),je=(e,t)=>(null!=e?e:0)<(null!=t?t:0)?-1:1,ze=Ae((e=>{const t=he(),l=he(),[s,o,r]=Pe((()=>I)),[i,a,d,u,c,v,h,,f,g,L,y]=De(e,he,(e=>k(e)?n:A(e)?W(e,b):b(e)),s,o),p=(t,n,l)=>{const s=c(t);ce(l,((t,l)=>n(l,(n=>ce(t,(t=>n(t,(n=>e.forEachCell(s,t,n)))))))))},I={setIndexDefinition:(e,n,s,r,i,a=je)=>{const d=k(i)?void 0:([e],[t])=>i(e,t);return f(e,n,((n,s,i,u,c,f)=>{let g=0;const L=ke(),y=ke(),p=v(e);if(ce(s,(([e,t],n)=>{const l=ke(e),s=ke(t);ce(l,(e=>ve(s,e)?ve(l,e):0)),ce(l,(e=>{Me(L,e),M(ge(p,e),(t=>{ve(t,n),ae(t)&&(ye(p,e),g=1)}))})),ce(s,(e=>{Me(L,e),ie(p,e)||(ye(p,e,ke()),g=1),Me(ge(p,e),n),k(r)||Me(y,e)}))})),n(),ae(c)||(f?Le(p,(e=>Me(y,e))):Le(i,(e=>M(ge(u,e),(e=>Me(y,e))))),ce(y,(e=>{const t=(t,n)=>a(ge(c,t),ge(c,n),e),n=[...ge(p,e)];z(n,t)||(ye(p,e,ke(N(n,t))),Me(L,e))}))),(g||f)&&!k(d)){const t=[...p];z(t,d)||(h(e,he(N(t,d))),g=1)}g&&o(t,[e]),ce(L,(t=>o(l,[e,t])))}),Je(s),M(r,Je)),I},delIndexDefinition:e=>(g(e),I),getStore:i,getIndexIds:a,forEachIndex:e=>d(((t,n)=>e(t,(e=>p(t,e,n))))),forEachSlice:(e,t)=>p(e,t,v(e)),hasIndex:u,hasSlice:(e,t)=>ie(v(e),t),getTableId:c,getSliceIds:e=>fe(v(e)),getSliceRowIds:(e,t)=>de(ge(v(e),t)),addIndexIdsListener:L,addSliceIdsListener:(e,n)=>s(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>s(n,l,[e,t]),delListener:e=>(r(e),I),destroy:y,getListenerStats:()=>({})};return ee(I)})),Ne=he([["avg",[(e,t)=>$(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["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=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:V(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Be=(e,t,n,l,s,o=!1)=>{if(ae(n))return;const[r,i,a,d]=s;return o||(o=k(e)),ce(l,(([n,l])=>{o||(e=k(n)?null==i?void 0:i(e,l,t++):k(l)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,l,n,t),o||(o=k(e)))})),o?r(de(n),re(n)):e},We=Ae((e=>{const t=he(),[l,s,o]=Pe((()=>y)),[r,i,a,d,u,c,v,,h,f,g,L]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===n?void 0:1*e),l,s),y={setMetricDefinition:(e,n,l,o,r,i,a)=>{var d;const u=J(l)?[l,r,i,a]:null!=(d=ge(Ne,l))?d:ge(Ne,"sum");return h(e,n,((n,l,o,r,i,a)=>{const d=c(e),h=re(r);a||(a=k(d)),n();let f=Be(d,h,r,l,u,a);E(f)||(f=void 0),f!=d&&(v(e,f),s(t,[e],f,d))}),Je(o,1)),y},delMetricDefinition:e=>(f(e),y),getStore:r,getMetricIds:i,forEachMetric:a,hasMetric:d,getTableId:u,getMetric:c,addMetricIdsListener:g,addMetricListener:(e,n)=>l(n,t,[e]),delListener:e=>(o(e),y),destroy:L,getListenerStats:()=>({})};return ee(y)}));var $e=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{i(n.next(e))}catch(e){s(e)}},r=e=>{try{i(n.throw(e))}catch(e){s(e)}},i=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);i((n=n.apply(e,t)).next())}));const qe=he(),Ge=he();var He=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;const Xe=Ae((e=>{const t=e.createStore,l=t(),s=t(),o=he(),{addListener:r,callListeners:i,delListener:a}=s,[v,f,g,R,w,,,C,,b,m,V,E,x]=De(e,(()=>!0),F,r,i),D=(e,t,...n)=>B(n,(n=>Me(pe(pe(o,t,he),e,ke),n))),A=e=>{M(ge(o,e),(e=>{Le(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ue(e)})),B([s,l],(t=>t.delTable(e)))},P=(e,t,n)=>D(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),j={setQueryDefinition:(t,o,r)=>{C(t,o),A(t);const i=[],a=[[null,[o,null,null,[],he()]]],d=[],u=[],c=[];r({select:(e,t)=>{const l=J(e)?[q(i)+n,e]:[k(t)?e:t,n=>n(e,t)];return K(i,l),{as:e=>l[0]=e}},join:(e,t,n)=>{const l=k(n)||J(t)?null:t,s=k(l)?t:n,o=[e,[e,l,J(s)?s:e=>e(s),[],he()]];return K(a,o),{as:e=>o[0]=e}},where:(e,t,n)=>K(d,J(e)?e:k(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,s)=>{var o;const r=[e,[e,J(t)?[t,n,l,s]:null!=(o=ge(Ne,t))?o:[(e,t)=>t]]];return K(u,r),{as:e=>r[0]=e}},having:(e,t)=>K(c,J(e)?e:n=>n(e)===t)});const v=he(i);if(ae(v))return j;const h=he(a);Le(h,((e,[,t])=>M(ge(h,t),(({3:t})=>k(e)?0:K(t,e)))));const f=he(u);let g=l;if(ae(f)&&G(c))g=s;else{P(t,g,s);const e=he();Le(f,((t,[n,l])=>Me(pe(e,n,ke),[t,l])));const n=ke();Le(v,(t=>ie(e,t)?0:Me(n,t)));const l=he(),o=(n,l,o,r)=>M(n,(([i,a,d,u])=>{Le(l,((t,[n])=>{const l=pe(i,t,he),s=ge(l,o),a=r?void 0:n;if(s!==a){const n=ke([[s,a]]),r=re(l);ye(l,o,a),ce(ge(e,t),(([e,t])=>{const s=Be(u[e],r,l,n,t);u[e]=k(Ve(s))?null:s}))}})),ae(a)||!Q(c,(e=>e((e=>u[e]))))?s.delRow(t,d):k(d)?n[2]=s.addRow(t,u):s.setRow(t,d,u)}));D(g,t,g.addRowListener(t,null,((s,r,i,a)=>{const d=[],u=[],c=he(),v=g.hasRow(t,i);let h=!v;ce(n,(e=>{const[n,l,s]=a(t,i,e);K(d,l),K(u,s),h||(h=n)})),Le(e,(e=>{const[n,,l]=a(t,i,e);(h||n)&&ye(c,e,[l])})),h&&o(me(l,d,void 0,(([,e])=>(ve(e,i),ae(e)))),c,i,1),v&&o(me(l,u,(()=>{const e={};return ce(n,(n=>e[n]=g.getCell(t,i,n))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,i)})),c,i)})))}P(t,e,g);const L=(n,l,s,r)=>{const i=t=>e.getCell(l,s,t);B(r,(l=>{var s;const[o,,r,a,d]=ge(h,l),u=null==r?void 0:r(i,n),[c,v]=null!=(s=ge(d,n))?s:[];u!=c&&(k(v)||x(t,v),ye(d,n,k(u)?null:[u,...E(t,1,e.addRowListener(o,u,(()=>L(n,o,u,a))))]))})),(n=>{const l=(t,l)=>{var s,r,i;return e.getCell(...k(l)?[o,n,t]:t===o?[o,n,l]:[null==(s=ge(h,t))?void 0:s[0],null==(i=ge(null==(r=ge(h,t))?void 0:r[4],n))?void 0:i[0],l])};g.transaction((()=>Q(d,(e=>e(l)))?Le(v,((e,s)=>Ee(g,t,n,e,s(l,n)))):g.delRow(t,n)))})(n)},{3:y}=ge(h,null);return g.transaction((()=>E(t,1,e.addRowListener(o,null,((n,l,s)=>{e.hasRow(o,s)?L(s,o,s,y):(g.delRow(t,s),ce(h,(({4:e})=>M(ge(e,s),(([,n])=>{x(t,n),ye(e,s)})))))}))))),j},delQueryDefinition:e=>(A(e),b(e),j),getStore:v,getQueryIds:f,forEachQuery:g,hasQuery:R,getTableId:w,addQueryIdsListener:e=>m((()=>e(j))),delListener:e=>(a(e),j),destroy:V,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)Ke.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&He)for(var l of He(e))t.indexOf(l)<0&&Ue.call(e,l)&&(n[l]=e[l]);return n})(s.getListenerStats(),["tables","tableIds","transaction"])};return se({[h]:[1,1],[h+T]:[0,1],[y]:[0,1],[p]:[0,1],[I]:[0,5],[L]:[1,2],[T]:[0,2],[S]:[1,3]},(([e,t],n)=>{B(e?["get","has","forEach"]:["get"],(e=>j[e+u+n]=(...t)=>s[e+n](...t))),j[c+u+n+d]=(...e)=>s[c+n+d](...O(e,0,t),((n,...l)=>e[t](j,...l)))})),ee(j)})),Ye=Ae((e=>{const t=he(),l=he(),s=he(),o=he(),[r,i,a]=Pe((()=>R)),[d,u,c,v,h,f,,,g,L,y,p]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+n),r,i),I=(e,t,n)=>M(f(e),(([l,,s])=>{if(!ie(s,t)){const o=ke();if(h(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!ie(o,e);)Me(o,e),e=ge(l,e)}if(n)return o;ye(s,t,o)}return ge(s,t)})),S=(e,t)=>M(f(e),(([,,e])=>ye(e,t))),T=e=>ge(t,e),R={setRelationshipDefinition:(e,n,r,a)=>(ye(t,e,r),g(e,n,((t,n)=>{const r=ke(),a=ke(),d=ke(),[u,c]=f(e);ce(n,(([t,n],l)=>{k(t)||(Me(a,t),M(ge(c,t),(e=>{ve(e,l),ae(e)&&ye(c,t)}))),k(n)||(Me(a,n),ie(c,n)||ye(c,n,ke()),Me(ge(c,n),l)),Me(r,l),ye(u,l,n),Le(ge(o,e),(t=>{ie(I(e,t),l)&&Me(d,t)}))})),t(),ce(r,(t=>i(l,[e,t]))),ce(a,(t=>i(s,[e,t]))),ce(d,(t=>{S(e,t),i(o,[e,t])}))}),Je(a)),R),delRelationshipDefinition:e=>(ye(t,e),L(e),R),getStore:d,getRelationshipIds:u,forEachRelationship:t=>c((n=>t(n,(t=>e.forEachRow(h(n),t))))),hasRelationship:v,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>{var n;return ge(null==(n=f(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return de(ge(null==(n=f(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>k(f(e))?[t]:de(I(e,t,!0)),addRelationshipIdsListener:y,addRemoteRowIdListener:(e,t,n)=>r(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>r(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(I(e,t),r(n,o,[e,t])),delListener:e=>{var t;return S(...null!=(t=a(e))?t:[]),R},destroy:p,getListenerStats:()=>({})};return ee(R)})),Ze=e=>[e,e],_e=()=>[he(),he()],et=e=>[...e],tt=([e,t])=>e===t,nt=e=>JSON.stringify(e,((e,t)=>x(t,Map)?Y.fromEntries([...t]):t)),lt=JSON.parse,st=(e,t,n)=>k(e)||!te(e)||oe(e)||_(e)?(null==n||n(),!1):(se(e,((n,l)=>{t(n,l)||le(e,l)})),!oe(e)),ot=(e,t,n)=>ye(e,t,ge(e,t)==-n?void 0:n),rt=()=>{let e,t,n=!1,l=!1,s=0;const r=he(),u=he(),v=he(),I=he(),m=he(),V=he(),E=he(),x=he(),A=he(),F=he(),Q=he(),z=he(),$=he(),q=he(),G=ke(),H=he(),U=he(),X=he(),Y=he(),Z=_e(),_=_e(),te=_e(),de=_e(),me=_e(),De=_e(),Je=_e(),Ae=_e(),Oe=_e(),Qe=_e(),ze=_e(),Ne=_e(),Be=_e(),We=_e(),$e=_e(),qe=he(),Ge=_e(),[He,Ke,Ue,Xe]=Pe((()=>Sn)),Ye=e=>{if(!st(e,((e,t)=>P([i,a],t))))return!1;const t=e[i];return!(!D(t)&&t!=o||(Ve(e[a])!=t&&le(e,a),0))},it=(t,n)=>(!e||ie(Q,n)||Pt(n))&&st(t,((e,t)=>at(n,t,e)),(()=>Pt(n))),at=(e,t,n,l)=>st(l?n:vt(n,e,t),((l,s)=>M(dt(e,t,s,l),(e=>(n[s]=e,!0)),(()=>!1))),(()=>Pt(e,t))),dt=(t,n,l,s)=>e?M(ge(ge(Q,t),l),(e=>Ve(s)!=e[i]?Pt(t,n,l,s,e[a]):s),(()=>Pt(t,n,l,s))):k(Ve(s))?Pt(t,n,l,s):s,ut=(e,t)=>st(t?e:ht(e),((t,n)=>M(ct(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>Qt())),ct=(e,n)=>t?M(ge($,e),(t=>Ve(n)!=t[i]?Qt(e,n,t[a]):n),(()=>Qt(e,n))):k(Ve(n))?Qt(e,n):n,vt=(e,t,n)=>(M(ge(z,t),(([l,s])=>{ce(l,((t,n)=>{ne(e,n)||(e[n]=t)})),ce(s,(l=>{ne(e,l)||Pt(t,n,l)}))})),e),ht=e=>(t&&(ce(q,((t,n)=>{ne(e,n)||(e[n]=t)})),ce(G,(t=>{ne(e,t)||Qt(t)}))),e),ft=e=>Ie(Q,e,((e,t,n)=>{const l=he(),s=ke();Ie(pe(Q,t,he),n,((e,t,n)=>{ye(e,t,n),M(n[a],(e=>ye(l,t,e)),(()=>Me(s,t)))})),ye(z,t,[l,s])}),((e,t)=>{ye(Q,t),ye(z,t)})),gt=e=>Ie($,e,((e,t,n)=>{ye($,t,n),M(n[a],(e=>ye(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{ye($,t),ye(q,t),ve(G,t)})),Lt=e=>oe(e)?cn():on(e),yt=e=>Ie(X,e,((e,t,n)=>pt(t,n)),((e,t)=>Vt(t))),pt=(e,t)=>Ie(pe(X,e,(()=>(Mt(e,1),ye(H,e,Fe()),ye(U,e,he()),he()))),t,((t,n,l)=>It(e,t,n,l)),((t,n)=>Et(e,t,n))),It=(e,t,n,l,s)=>Ie(pe(t,n,(()=>(Dt(e,n,1),he()))),l,((t,l,s)=>St(e,n,t,l,s)),((l,o)=>xt(e,t,n,l,o,s))),St=(e,t,n,l,s)=>{ie(n,l)||Jt(e,t,l,1);const o=ge(n,l);s!==o&&(At(e,t,l,o,s),ye(n,l,s))},Tt=(e,t,n,l,s)=>M(ge(t,n),(t=>St(e,n,t,l,s)),(()=>It(e,t,n,vt({[l]:s},e,n)))),Rt=e=>oe(e)?fn():rn(e),wt=e=>Ie(Y,e,((e,t,n)=>Ct(t,n)),((e,t)=>kt(t))),Ct=(e,t)=>{ie(Y,e)||Ot(e,1);const n=ge(Y,e);t!==n&&(Ft(e,n,t),ye(Y,e,t))},bt=(e,t)=>{const[n]=ge(H,e),l=n(t);return ie(ge(X,e),l)?bt(e,t):l},mt=e=>{var t;return null!=(t=ge(X,e))?t:pt(e,{})},Vt=e=>pt(e,{}),Et=(e,t,n)=>{const[,l]=ge(H,e);l(n),It(e,t,n,{},!0)},xt=(e,t,n,l,s,o)=>{var r;const i=ge(null==(r=ge(z,e))?void 0:r[0],s);if(!k(i)&&!o)return St(e,n,l,s,i);const a=t=>{At(e,n,t,ge(l,t)),Jt(e,n,t,-1),ye(l,t)};k(i)?a(s):Le(l,a),ae(l)&&(Dt(e,n,-1),ae(ye(t,n))&&(Mt(e,-1),ye(X,e),ye(H,e),ye(U,e)))},kt=e=>{const t=ge(q,e);if(!k(t))return Ct(e,t);Ft(e,ge(Y,e)),Ot(e,-1),ye(Y,e)},Mt=(e,t)=>ot(r,e,t),Dt=(e,t,n)=>ot(pe(I,e,he),t,n)&&ye(v,e,pe(v,e,(()=>0))+n),Jt=(e,t,n,l)=>{var s;const o=ge(U,e),r=null!=(s=ge(o,n))?s:0;(0==r&&1==l||1==r&&-1==l)&&ot(pe(u,e,he),n,l),ye(o,n,r!=-l?r+l:null),ot(pe(pe(m,e,he),t,he),n,l)},At=(e,t,n,l,s)=>pe(pe(pe(V,e,he),t,he),n,(()=>[l,0]))[1]=s,Ot=(e,t)=>ot(E,e,t),Ft=(e,t,n)=>pe(x,e,(()=>[t,0]))[1]=n,Pt=(e,t,n,l,s)=>(K(pe(pe(pe(A,e,he),t,he),n,(()=>[])),l),s),Qt=(e,t,n)=>(K(pe(F,e,(()=>[])),t),n),jt=(e,t,n)=>M(ge(ge(ge(V,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ze(tn(e,t,n))])),zt=e=>M(ge(x,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ze(sn(e))])),Nt=e=>ae(A)||ae(ze[e])?0:ce(e?be(A):A,((t,n)=>ce(t,((t,l)=>ce(t,((t,s)=>Ke(ze[e],[n,l,s],t))))))),Bt=e=>ae(F)||ae(Ne[e])?0:ce(e?we(F):F,((t,n)=>Ke(Ne[e],[n],t))),Wt=(e,t,n)=>{if(!ae(t))return Ke(e,n,(()=>Se(t))),1},$t=e=>{const t=ae(Je[e]),n=ae(Oe[e])&&ae(de[e])&&ae(me[e])&&ae(De[e])&&t&&ae(_[e]),l=ae(Qe[e])&&ae(Ae[e])&&ae(te[e])&&ae(Z[e]);if(!n||!l){const s=e?[we(r),Ce(u),we(v),Ce(I),be(m),be(V)]:[r,u,v,I,m,V];if(!n){Wt(_[e],s[0]),ce(s[1],((t,n)=>Wt(de[e],t,[n]))),ce(s[2],((t,n)=>{0!=t&&Ke(me[e],[n],Yt(n))}));const n=ke();ce(s[3],((l,s)=>{Wt(De[e],l,[s])&&!t&&(Ke(Je[e],[s,null]),Me(n,s))})),t||ce(s[5],((t,l)=>{if(!ie(n,l)){const n=ke();ce(t,(e=>ce(e,(([t,l],s)=>l!==t?Me(n,s):ve(e,s))))),ce(n,(t=>Ke(Je[e],[l,t])))}})),ce(s[4],((t,n)=>ce(t,((t,l)=>Wt(Oe[e],t,[n,l])))))}if(!l){let t;ce(s[5],((n,l)=>{let s;ce(n,((n,o)=>{let r;ce(n,(([n,i],a)=>{i!==n&&(Ke(Qe[e],[l,o,a],i,n,jt),t=s=r=1)})),r&&Ke(Ae[e],[l,o],jt)})),s&&Ke(te[e],[l],jt)})),t&&Ke(Z[e],void 0,jt)}}},qt=e=>{const t=ae(We[e]),n=ae($e[e])&&ae(Be[e]);if(!t||!n){const l=e?[we(E),we(x)]:[E,x];if(t||Wt(We[e],l[0]),!n){let t;ce(l[1],(([n,l],s)=>{l!==n&&(Ke($e[e],[s],l,n,zt),t=1)})),t&&Ke(Be[e],void 0,zt)}}},Gt=(e,...t)=>(yn((()=>e(...W(t,b)))),Sn),Ht=()=>[Se(V,((e,t)=>-1===ge(r,t)?null:Se(e,((e,n)=>-1===ge(ge(I,t),n)?null:Se(e,(([,e])=>null!=e?e:null),((e,t)=>tt(t)))),oe)),oe),Se(x,(([,e])=>null!=e?e:null),((e,t)=>tt(t)))],Kt=()=>({cellsTouched:n,valuesTouched:l,changedCells:Re(V,et,tt),invalidCells:Re(A),changedValues:Se(x,et,tt),invalidValues:Se(F),changedTableIds:Se(r),changedRowIds:Te(I),changedCellIds:Re(m),changedValueIds:Se(E)}),Ut=()=>Re(X),Xt=()=>fe(X),Yt=e=>re(ge(X,b(e))),Zt=e=>fe(ge(X,b(e))),_t=(e,t,n,l=0,s)=>{return W(O(N((o=ge(X,b(e)),r=(e,n)=>[k(t)?n:ge(e,b(t)),n],W([...null!=(i=null==o?void 0:o.entries())?i:[]],(([e,t])=>r(t,e)))),(([e],[t])=>je(e,t)*(n?-1:1))),l,k(s)?s:l+s),(([,e])=>e));var o,r,i},en=(e,t)=>fe(ge(ge(X,b(e)),b(t))),tn=(e,t,n)=>ge(ge(ge(X,b(e)),b(t)),b(n)),nn=()=>Se(Y),ln=()=>fe(Y),sn=e=>ge(Y,b(e)),on=e=>Gt((()=>(e=>st(e,it,Pt))(e)?yt(e):0)),rn=e=>Gt((()=>ut(e)?wt(e):0)),an=e=>{try{Lt(lt(e))}catch(e){}return Sn},dn=t=>Gt((()=>{if((e=st(t,(e=>st(e,Ye))))&&(ft(t),!ae(X))){const e=Ut();cn(),on(e)}})),un=e=>Gt((()=>{if(t=(e=>st(e,Ye))(e)){const n=nn();Ln(),fn(),t=!0,gt(e),rn(n)}})),cn=()=>Gt((()=>yt({}))),vn=e=>Gt((e=>ie(X,e)?Vt(e):0),e),hn=(e,t)=>Gt(((e,t)=>M(ge(X,e),(n=>ie(n,t)?Et(e,n,t):0))),e,t),fn=()=>Gt((()=>wt({}))),gn=()=>Gt((()=>{ft({}),e=!1})),Ln=()=>Gt((()=>{gt({}),t=!1})),yn=(e,t)=>{if(-1!=s){pn();const n=e();return In(t),n}},pn=()=>(-1!=s&&s++,1==s&&Ke(qe,void 0,Ht,Kt),Sn),In=e=>(s>0&&(s--,0==s&&(n=!ae(V),l=!ae(x),s=1,Nt(1),n&&$t(1),Bt(1),l&&qt(1),(null==e?void 0:e(Ht,Kt))&&(ce(V,((e,t)=>ce(e,((e,n)=>ce(e,(([e],l)=>Ee(Sn,t,n,l,e))))))),ce(x,(([e],t)=>xe(Sn,t,e))),n=l=!1),Ke(Ge[0],void 0,Ht,Kt),s=-1,Nt(0),n&&$t(0),Bt(0),l&&qt(0),Ke(Ge[1],void 0,Ht,Kt),s=0,n=l=!1,B([r,u,v,I,m,V,A,E,x,F],ue))),Sn),Sn={getContent:()=>[Ut(),nn()],getTables:Ut,getTableIds:Xt,getTable:e=>Te(ge(X,b(e))),getTableCellIds:e=>fe(ge(U,b(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Se(ge(ge(X,b(e)),b(t))),getCellIds:en,getCell:tn,getValues:nn,getValueIds:ln,getValue:sn,hasTables:()=>!ae(X),hasTable:e=>ie(X,b(e)),hasTableCell:(e,t)=>ie(ge(U,b(e)),b(t)),hasRow:(e,t)=>ie(ge(X,b(e)),b(t)),hasCell:(e,t,n)=>ie(ge(ge(X,b(e)),b(t)),b(n)),hasValues:()=>!ae(Y),hasValue:e=>ie(Y,b(e)),getTablesJson:()=>nt(X),getValuesJson:()=>nt(Y),getJson:()=>nt([X,Y]),getTablesSchemaJson:()=>nt(Q),getValuesSchemaJson:()=>nt($),getSchemaJson:()=>nt([Q,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(oe(e)?cn:on)(e),(oe(t)?fn:rn)(t)})),setTables:on,setTable:(e,t)=>Gt((e=>it(t,e)?pt(e,t):0),e),setRow:(e,t,n)=>Gt(((e,t)=>at(e,t,n)?It(e,mt(e),t,n):0),e,t),addRow:(e,t,n=!0)=>yn((()=>{let l;return at(e,l,t)&&(e=b(e),It(e,mt(e),l=bt(e,n?1:0),t)),l})),setPartialRow:(e,t,n)=>Gt(((e,t)=>{if(at(e,t,n,1)){const l=mt(e);se(n,((n,s)=>Tt(e,l,t,s,n)))}}),e,t),setCell:(e,t,n,l)=>Gt(((e,t,n)=>M(dt(e,t,n,J(l)?l(tn(e,t,n)):l),(l=>Tt(e,mt(e),t,n,l)))),e,t,n),setValues:rn,setPartialValues:e=>Gt((()=>ut(e,1)?se(e,((e,t)=>Ct(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ct(e,J(t)?t(sn(e)):t),(t=>Ct(e,t)))),e),setTransactionChanges:e=>Gt((()=>{se(e[0],((e,t)=>k(e)?vn(t):se(e,((e,n)=>k(e)?hn(t,n):se(e,((e,l)=>Ee(Sn,t,n,l,e))))))),se(e[1],((e,t)=>xe(Sn,t,e)))})),setTablesJson:an,setValuesJson:e=>{try{Rt(lt(e))}catch(e){}return Sn},setJson:e=>Gt((()=>{try{const[t,n]=lt(e);Lt(t),Rt(n)}catch(t){an(e)}})),setTablesSchema:dn,setValuesSchema:un,setSchema:(e,t)=>Gt((()=>{dn(e),un(t)})),delTables:cn,delTable:vn,delRow:hn,delCell:(e,t,n,l)=>Gt(((e,t,n)=>M(ge(X,e),(s=>M(ge(s,t),(o=>ie(o,n)?xt(e,s,t,o,n,l):0))))),e,t,n),delValues:fn,delValue:e=>Gt((e=>ie(Y,e)?kt(e):0),e),delTablesSchema:gn,delValuesSchema:Ln,delSchema:()=>Gt((()=>{gn(),Ln()})),transaction:yn,startTransaction:pn,finishTransaction:In,forEachTable:e=>ce(X,((t,n)=>e(n,(e=>ce(t,((t,n)=>e(n,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(ge(U,b(e)),t),forEachRow:(e,t)=>ce(ge(X,b(e)),((e,n)=>t(n,(t=>Le(e,t))))),forEachCell:(e,t,n)=>Le(ge(ge(X,b(e)),b(t)),n),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,n,l,s,o,r)=>{let i=_t(e,t,n,l,s);return He((()=>{const r=_t(e,t,n,l,s);j(r,i)||(i=r,o(Sn,e,t,n,l,s,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=>(Xe(e),Sn),delListener:e=>(Ue(e),Sn),getListenerStats:()=>({}),createStore:rt,addListener:He,callListeners:Ke};return se({[f]:[0,Z],[g]:[0,_],[h]:[1,te,[Xt]],[h+T]:[1,de,[Xt]],[y]:[1,me,[Xt]],[p]:[1,De,[Xt]],[L]:[2,Ae,[Xt,Zt]],[T]:[2,Oe,[Xt,Zt]],[S]:[3,Qe,[Xt,Zt,en],e=>Ze(tn(...e))],InvalidCell:[3,ze],[w]:[0,Be],[C]:[0,We],[R]:[1,$e,[ln],e=>Ze(sn(e[0]))],InvalidValue:[1,Ne]},(([e,t,n,l],s)=>{Sn[c+s+d]=(...s)=>He(s[e],t[s[e+1]?1:0],e>0?O(s,0,e):void 0,n,l)})),ee(Sn)};e.createCheckpoints=Qe,e.createCustomPersister=(e,t,n,l,s,o,r=[])=>{let i,a,d,u=0,c=0;pe(qe,r,(()=>0)),pe(Ge,r,(()=>[]));const v=e=>$e(void 0,null,(function*(){return 2!=u&&(u=1,yield h.schedule((()=>$e(void 0,null,(function*(){yield e(),u=0}))))),h})),h={load:(n,l)=>$e(void 0,null,(function*(){return yield v((()=>$e(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}}))))})),startAutoLoad:(...n)=>$e(void 0,[...n],(function*(n={},s={}){return h.stopAutoLoad(),yield h.load(n,s),c=1,d=l(((n,l)=>$e(void 0,null,(function*(){if(l){const t=l();yield v((()=>$e(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield v((()=>$e(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==n?void 0:n())?l:yield t())}catch(e){null==o||o(e)}}))))})))),h})),stopAutoLoad:()=>(c&&(s(d),d=void 0,c=0),h),save:t=>$e(void 0,null,(function*(){return 1!=u&&(u=2,yield h.schedule((()=>$e(void 0,null,(function*(){try{yield n(e.getContent,t)}catch(e){null==o||o(e)}u=0}))))),h})),startAutoSave:()=>$e(void 0,null,(function*(){return yield h.stopAutoSave().save(),i=e.addDidFinishTransactionListener(((e,t)=>{const[n,l]=t();oe(n)&&oe(l)||h.save((()=>[n,l]))})),h})),stopAutoSave:()=>(M(i,e.delListener),h),schedule:(...e)=>$e(void 0,null,(function*(){return K(ge(Ge,r),...e),yield $e(void 0,null,(function*(){if(!ge(qe,r)){for(ye(qe,r,1);!k(a=X(ge(Ge,r)));)try{yield a()}catch(e){null==o||o(e)}ye(qe,r,0)}})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(h)},e.createIndexes=ze,e.createMetrics=We,e.createQueries=Xe,e.createRelationships=Ye,e.createStore=rt,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,n="",l=t(n),s=t(!0),o=t(0),r=t(t),i="type",a="default",d="Listener",u="Result",c="add",v="Ids",h="Table",f=h+"s",g=h+v,L="Row",y=L+"Count",p=L+v,I="Sorted"+L+v,S="Cell",T=S+v,R="Value",w=R+"s",C=R+v,b=e=>n+e,m=Math.max,V=Math.min,E=isFinite,x=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,n)=>k(e)?null==n?void 0:n():t(e),D=e=>e==l||e==s,J=e=>t(e)==r,A=e=>Array.isArray(e),O=(e,t,n)=>e.slice(t,n),F=()=>{},P=(e,t)=>e.includes(t),Q=(e,t)=>e.every(t),j=(e,t)=>q(e)===q(t)&&Q(e,((e,n)=>t[n]===e)),z=(e,t)=>Q(e,((n,l)=>0==l||t(e[l-1],n)<=0)),N=(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,n)=>e.reduce(t,n),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=>x(e,Y)&&e.constructor==Y,ne=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),le=(e,t)=>(delete e[t],e),se=(e,t)=>W(Y.entries(e),(([e,n])=>t(n,e))),oe=e=>te(e)&&0==(e=>q(Z(e)))(e),re=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},ie=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},ae=e=>k(e)||0==re(e),de=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},ue=e=>e.clear(),ce=(e,t)=>null==e?void 0:e.forEach(t),ve=(e,t)=>null==e?void 0:e.delete(t),he=e=>new Map(e),fe=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ge=(e,t)=>null==e?void 0:e.get(t),Le=(e,t)=>ce(e,((e,n)=>t(n,e))),ye=(e,t,n)=>k(n)?(ve(e,t),e):null==e?void 0:e.set(t,n),pe=(e,t,n)=>(ie(e,t)||ye(e,t,n()),ge(e,t)),Ie=(e,t,n,l=ye)=>(se(t,((t,l)=>n(e,l,t))),Le(e,(n=>ne(t,n)?0:l(e,n))),e),Se=(e,t,n)=>{const l={};return ce(e,((e,s)=>{const o=t?t(e,s):e;!(null==n?void 0:n(o,e))&&(l[s]=o)})),l},Te=(e,t,n)=>Se(e,(e=>Se(e,t,n)),oe),Re=(e,t,n)=>Se(e,(e=>Te(e,t,n)),oe),we=(e,t)=>{const n=he();return ce(e,((e,l)=>{var s;return n.set(l,null!=(s=null==t?void 0:t(e))?s:e)})),n},Ce=e=>we(e,we),be=e=>we(e,Ce),me=(e,t,n,l,s=0)=>M((n?pe:ge)(e,t[s],s>q(t)-2?n:he),(o=>{if(s>q(t)-2)return(null==l?void 0:l(o))&&ye(e,t[s]),o;const r=me(o,t,n,l,s+1);return ae(o)&&ye(e,t[s]),r})),Ve=e=>{const n=t(e);return D(n)||n==o&&E(e)?n:void 0},Ee=(e,t,n,l,s)=>k(s)?e.delCell(t,n,l,!0):e.setCell(t,n,l,s),xe=(e,t,n)=>k(n)?e.delValue(t):e.setValue(t,n),ke=e=>new Set(A(e)||k(e)?e:[e]),Me=(e,t)=>null==e?void 0:e.add(t),De=(e,t,n,l,s)=>{const o=e.hasRow,r=he(),i=he(),a=he(),d=he(),u=he(),c=he(),v=(t,n,...l)=>{const s=pe(c,t,ke);return B(l,(t=>Me(s,t)&&n&&e.callListener(t))),l},h=(t,...n)=>M(ge(c,t),(l=>{B(G(n)?de(l):n,(t=>{e.delListener(t),ve(l,t)})),ae(l)&&ye(c,t)})),f=(e,n)=>{ye(r,e,n),ie(i,e)||(ye(i,e,t()),ye(d,e,he()),ye(u,e,he()),s(a))},g=e=>{ye(r,e),ye(i,e),ye(d,e),ye(u,e),h(e),s(a)};return[()=>e,()=>fe(r),e=>Le(i,e),e=>ie(i,e),e=>ge(r,e),e=>ge(i,e),(e,t)=>ye(i,e,t),f,(t,l,s,r,i)=>{f(t,l);const a=he(),c=he(),g=ge(d,t),L=ge(u,t),y=t=>{const s=n=>e.getCell(l,t,n),d=ge(g,t),u=o(l,t)?n(r(s,t)):void 0;if(d===u||A(d)&&A(u)&&j(d,u)||ye(a,t,[d,u]),!k(i)){const e=ge(L,t),n=o(l,t)?i(s,t):void 0;e!=n&&ye(c,t,n)}},p=e=>{s((()=>{ce(a,(([,e],t)=>ye(g,t,e))),ce(c,((e,t)=>ye(L,t,e)))}),a,c,g,L,e),ue(a),ue(c)};Le(g,y),e.hasTable(l)&&B(e.getRowIds(l),(e=>{ie(g,e)||y(e)})),p(!0),h(t),v(t,0,e.addRowListener(l,null,((e,t,n)=>y(n))),e.addTableListener(l,(()=>p())))},g,e=>l(e,a),()=>Le(c,g),v,h]},Je=(e,s)=>t(e)==l?t=>t(e):null!=e?e:()=>null!=s?s:n,Ae=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},Oe=/^\d+$/,Fe=()=>{const e=[];let t=0;return[l=>{var s;return null!=(s=l?X(e):null)?s:n+t++},t=>{Oe.test(t)&&q(e)<1e3&&K(e,t)}]},Pe=e=>{let t;const[l,s]=Fe(),o=he();return[(s,r,i,a=[],d=(()=>[]))=>{null!=t||(t=e());const u=l(1);return ye(o,u,[s,r,i,a,d]),Me(me(r,null!=i?i:[n],ke),u),u},(e,l,...s)=>B(((e,t=[n])=>{const l=[],s=(e,n)=>n==q(t)?K(l,e):null===t[n]?ce(e,(e=>s(e,n+1))):B([t[n],null],(t=>s(ge(e,t),n+1)));return s(e,0),l})(e,l),(e=>ce(e,(e=>ge(o,e)[0](t,...null!=l?l:[],...s))))),e=>M(ge(o,e),(([,t,l])=>(me(t,null!=l?l:[n],void 0,(t=>(ve(t,e),ae(t)?1:0))),ye(o,e),s(e),l))),e=>M(ge(o,e),(([e,,n=[],l,s])=>{const o=(...r)=>{var i,a;const d=q(r);d==q(n)?e(t,...r,...s(r)):k(n[d])?B(null!=(a=null==(i=l[d])?void 0:i.call(l,...r))?a:[],(e=>o(...r,e))):o(...r,n[d])};o()}))]},Qe=Ae((e=>{let t,l,s,o=100,r=he(),i=he(),a=1;const d=he(),u=he(),[c,v,h]=Pe((()=>O)),f=he(),g=he(),L=[],y=[],p=(t,n)=>{a=0,e.transaction((()=>{const[l,s]=ge(f,n);ce(l,((n,l)=>ce(n,((n,s)=>ce(n,((n,o)=>Ee(e,l,s,o,n[t]))))))),ce(s,((n,l)=>xe(e,l,n[t])))})),a=1},I=e=>{ye(f,e),ye(g,e),v(u,[e])},S=(e,t)=>B(((e,t)=>e.splice(0,t))(e,null!=t?t:q(e)),I),T=()=>S(L,q(L)-o),R=()=>M(t,(()=>{K(L,t),T(),S(y),t=void 0,s=1})),w=()=>{t=U(L),s=1},C=e.addCellListener(null,null,null,((e,t,n,l,s,o)=>{if(a){R();const e=pe(r,t,he),i=pe(e,n,he),a=pe(i,l,(()=>[o,void 0]));a[1]=s,a[0]===s&&ae(ye(i,l))&&ae(ye(e,n))&&ae(ye(r,t))&&w(),x()}})),b=e.addValueListener(null,((e,t,n,l)=>{if(a){R();const e=pe(i,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&ae(ye(i,t))&&w(),x()}})),m=(e="")=>(k(t)&&(t=n+l++,ye(f,t,[r,i]),J(t,e),r=he(),i=he(),s=1),t),V=()=>{G(L)||(((e,...t)=>{e.unshift(...t)})(y,m()),p(0,t),t=U(L),s=1)},E=()=>{G(y)||(K(L,t),t=X(y),p(1,t),s=1)},x=()=>{s&&(v(d),s=0)},D=e=>{const t=m(e);return x(),t},J=(e,t)=>(A(e)&&ge(g,e)!==t&&(ye(g,e,t),v(u,[e])),O),A=e=>ie(f,e),O={setSize:e=>(o=e,T(),O),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...L],t,[...y]],forEachCheckpoint:e=>Le(g,e),hasCheckpoint:A,getCheckpoint:e=>ge(g,e),goBackward:()=>(V(),x(),O),goForward:()=>(E(),x(),O),goTo:e=>{const n=P(L,e)?V:P(y,e)?E:null;for(;!k(n)&&e!=t;)n();return x(),O},addCheckpointIdsListener:e=>c(e,d),addCheckpointListener:(e,t)=>c(t,u,[e]),delListener:e=>(h(e),O),clear:()=>(S(L),S(y),k(t)||I(t),t=void 0,l=0,D(),O),destroy:()=>{e.delListener(C),e.delListener(b)},getListenerStats:()=>({})};return ee(O.clear())})),je=(e,t)=>(null!=e?e:0)<(null!=t?t:0)?-1:1,ze=Ae((e=>{const t=he(),l=he(),[s,o,r]=Pe((()=>I)),[i,a,d,u,c,v,h,,f,g,L,y]=De(e,he,(e=>k(e)?n:A(e)?W(e,b):b(e)),s,o),p=(t,n,l)=>{const s=c(t);ce(l,((t,l)=>n(l,(n=>ce(t,(t=>n(t,(n=>e.forEachCell(s,t,n)))))))))},I={setIndexDefinition:(e,n,s,r,i,a=je)=>{const d=k(i)?void 0:([e],[t])=>i(e,t);return f(e,n,((n,s,i,u,c,f)=>{let g=0;const L=ke(),y=ke(),p=v(e);if(ce(s,(([e,t],n)=>{const l=ke(e),s=ke(t);ce(l,(e=>ve(s,e)?ve(l,e):0)),ce(l,(e=>{Me(L,e),M(ge(p,e),(t=>{ve(t,n),ae(t)&&(ye(p,e),g=1)}))})),ce(s,(e=>{Me(L,e),ie(p,e)||(ye(p,e,ke()),g=1),Me(ge(p,e),n),k(r)||Me(y,e)}))})),n(),ae(c)||(f?Le(p,(e=>Me(y,e))):Le(i,(e=>M(ge(u,e),(e=>Me(y,e))))),ce(y,(e=>{const t=(t,n)=>a(ge(c,t),ge(c,n),e),n=[...ge(p,e)];z(n,t)||(ye(p,e,ke(N(n,t))),Me(L,e))}))),(g||f)&&!k(d)){const t=[...p];z(t,d)||(h(e,he(N(t,d))),g=1)}g&&o(t,[e]),ce(L,(t=>o(l,[e,t])))}),Je(s),M(r,Je)),I},delIndexDefinition:e=>(g(e),I),getStore:i,getIndexIds:a,forEachIndex:e=>d(((t,n)=>e(t,(e=>p(t,e,n))))),forEachSlice:(e,t)=>p(e,t,v(e)),hasIndex:u,hasSlice:(e,t)=>ie(v(e),t),getTableId:c,getSliceIds:e=>fe(v(e)),getSliceRowIds:(e,t)=>de(ge(v(e),t)),addIndexIdsListener:L,addSliceIdsListener:(e,n)=>s(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>s(n,l,[e,t]),delListener:e=>(r(e),I),destroy:y,getListenerStats:()=>({})};return ee(I)})),Ne=he([["avg",[(e,t)=>$(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["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=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:V(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Be=(e,t,n,l,s,o=!1)=>{if(ae(n))return;const[r,i,a,d]=s;return o||(o=k(e)),ce(l,(([n,l])=>{o||(e=k(n)?null==i?void 0:i(e,l,t++):k(l)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,l,n,t),o||(o=k(e)))})),o?r(de(n),re(n)):e},We=Ae((e=>{const t=he(),[l,s,o]=Pe((()=>y)),[r,i,a,d,u,c,v,,h,f,g,L]=De(e,F,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===n?void 0:1*e),l,s),y={setMetricDefinition:(e,n,l,o,r,i,a)=>{var d;const u=J(l)?[l,r,i,a]:null!=(d=ge(Ne,l))?d:ge(Ne,"sum");return h(e,n,((n,l,o,r,i,a)=>{const d=c(e),h=re(r);a||(a=k(d)),n();let f=Be(d,h,r,l,u,a);E(f)||(f=void 0),f!=d&&(v(e,f),s(t,[e],f,d))}),Je(o,1)),y},delMetricDefinition:e=>(f(e),y),getStore:r,getMetricIds:i,forEachMetric:a,hasMetric:d,getTableId:u,getMetric:c,addMetricIdsListener:g,addMetricListener:(e,n)=>l(n,t,[e]),delListener:e=>(o(e),y),destroy:L,getListenerStats:()=>({})};return ee(y)}));var $e=(e,t,n)=>new Promise(((l,s)=>{var o=e=>{try{i(n.next(e))}catch(e){s(e)}},r=e=>{try{i(n.throw(e))}catch(e){s(e)}},i=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,r);i((n=n.apply(e,t)).next())}));const qe=he(),Ge=he();var He=Object.getOwnPropertySymbols,Ke=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;const Xe=Ae((e=>{const t=e.createStore,l=t(),s=t(),o=he(),{addListener:r,callListeners:i,delListener:a}=s,[v,f,g,R,w,,,C,,b,m,V,E,x]=De(e,(()=>!0),F,r,i),D=(e,t,...n)=>B(n,(n=>Me(pe(pe(o,t,he),e,ke),n))),A=e=>{M(ge(o,e),(e=>{Le(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ue(e)})),B([s,l],(t=>t.delTable(e)))},P=(e,t,n)=>D(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),j={setQueryDefinition:(t,o,r)=>{C(t,o),A(t);const i=[],a=[[null,[o,null,null,[],he()]]],d=[],u=[],c=[];r({select:(e,t)=>{const l=J(e)?[q(i)+n,e]:[k(t)?e:t,n=>n(e,t)];return K(i,l),{as:e=>l[0]=e}},join:(e,t,n)=>{const l=k(n)||J(t)?null:t,s=k(l)?t:n,o=[e,[e,l,J(s)?s:e=>e(s),[],he()]];return K(a,o),{as:e=>o[0]=e}},where:(e,t,n)=>K(d,J(e)?e:k(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,s)=>{var o;const r=[e,[e,J(t)?[t,n,l,s]:null!=(o=ge(Ne,t))?o:[(e,t)=>t]]];return K(u,r),{as:e=>r[0]=e}},having:(e,t)=>K(c,J(e)?e:n=>n(e)===t)});const v=he(i);if(ae(v))return j;const h=he(a);Le(h,((e,[,t])=>M(ge(h,t),(({3:t})=>k(e)?0:K(t,e)))));const f=he(u);let g=l;if(ae(f)&&G(c))g=s;else{P(t,g,s);const e=he();Le(f,((t,[n,l])=>Me(pe(e,n,ke),[t,l])));const n=ke();Le(v,(t=>ie(e,t)?0:Me(n,t)));const l=he(),o=(n,l,o,r)=>M(n,(([i,a,d,u])=>{Le(l,((t,[n])=>{const l=pe(i,t,he),s=ge(l,o),a=r?void 0:n;if(s!==a){const n=ke([[s,a]]),r=re(l);ye(l,o,a),ce(ge(e,t),(([e,t])=>{const s=Be(u[e],r,l,n,t);u[e]=k(Ve(s))?null:s}))}})),ae(a)||!Q(c,(e=>e((e=>u[e]))))?s.delRow(t,d):k(d)?n[2]=s.addRow(t,u):s.setRow(t,d,u)}));D(g,t,g.addRowListener(t,null,((s,r,i,a)=>{const d=[],u=[],c=he(),v=g.hasRow(t,i);let h=!v;ce(n,(e=>{const[n,l,s]=a(t,i,e);K(d,l),K(u,s),h||(h=n)})),Le(e,(e=>{const[n,,l]=a(t,i,e);(h||n)&&ye(c,e,[l])})),h&&o(me(l,d,void 0,(([,e])=>(ve(e,i),ae(e)))),c,i,1),v&&o(me(l,u,(()=>{const e={};return ce(n,(n=>e[n]=g.getCell(t,i,n))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,i)})),c,i)})))}P(t,e,g);const L=(n,l,s,r)=>{const i=t=>e.getCell(l,s,t);B(r,(l=>{var s;const[o,,r,a,d]=ge(h,l),u=null==r?void 0:r(i,n),[c,v]=null!=(s=ge(d,n))?s:[];u!=c&&(k(v)||x(t,v),ye(d,n,k(u)?null:[u,...E(t,1,e.addRowListener(o,u,(()=>L(n,o,u,a))))]))})),(n=>{const l=(t,l)=>{var s,r,i;return e.getCell(...k(l)?[o,n,t]:t===o?[o,n,l]:[null==(s=ge(h,t))?void 0:s[0],null==(i=ge(null==(r=ge(h,t))?void 0:r[4],n))?void 0:i[0],l])};g.transaction((()=>Q(d,(e=>e(l)))?Le(v,((e,s)=>Ee(g,t,n,e,s(l,n)))):g.delRow(t,n)))})(n)},{3:y}=ge(h,null);return g.transaction((()=>E(t,1,e.addRowListener(o,null,((n,l,s)=>{e.hasRow(o,s)?L(s,o,s,y):(g.delRow(t,s),ce(h,(({4:e})=>M(ge(e,s),(([,n])=>{x(t,n),ye(e,s)})))))}))))),j},delQueryDefinition:e=>(A(e),b(e),j),getStore:v,getQueryIds:f,forEachQuery:g,hasQuery:R,getTableId:w,addQueryIdsListener:e=>m((()=>e(j))),delListener:e=>(a(e),j),destroy:V,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)Ke.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&He)for(var l of He(e))t.indexOf(l)<0&&Ue.call(e,l)&&(n[l]=e[l]);return n})(s.getListenerStats(),["tables","tableIds","transaction"])};return se({[h]:[1,1],[h+T]:[0,1],[y]:[0,1],[p]:[0,1],[I]:[0,5],[L]:[1,2],[T]:[0,2],[S]:[1,3]},(([e,t],n)=>{B(e?["get","has","forEach"]:["get"],(e=>j[e+u+n]=(...t)=>s[e+n](...t))),j[c+u+n+d]=(...e)=>s[c+n+d](...O(e,0,t),((n,...l)=>e[t](j,...l)),!0)})),ee(j)})),Ye=Ae((e=>{const t=he(),l=he(),s=he(),o=he(),[r,i,a]=Pe((()=>R)),[d,u,c,v,h,f,,,g,L,y,p]=De(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+n),r,i),I=(e,t,n)=>M(f(e),(([l,,s])=>{if(!ie(s,t)){const o=ke();if(h(e)!=T(e))Me(o,t);else{let e=t;for(;!k(e)&&!ie(o,e);)Me(o,e),e=ge(l,e)}if(n)return o;ye(s,t,o)}return ge(s,t)})),S=(e,t)=>M(f(e),(([,,e])=>ye(e,t))),T=e=>ge(t,e),R={setRelationshipDefinition:(e,n,r,a)=>(ye(t,e,r),g(e,n,((t,n)=>{const r=ke(),a=ke(),d=ke(),[u,c]=f(e);ce(n,(([t,n],l)=>{k(t)||(Me(a,t),M(ge(c,t),(e=>{ve(e,l),ae(e)&&ye(c,t)}))),k(n)||(Me(a,n),ie(c,n)||ye(c,n,ke()),Me(ge(c,n),l)),Me(r,l),ye(u,l,n),Le(ge(o,e),(t=>{ie(I(e,t),l)&&Me(d,t)}))})),t(),ce(r,(t=>i(l,[e,t]))),ce(a,(t=>i(s,[e,t]))),ce(d,(t=>{S(e,t),i(o,[e,t])}))}),Je(a)),R),delRelationshipDefinition:e=>(ye(t,e),L(e),R),getStore:d,getRelationshipIds:u,forEachRelationship:t=>c((n=>t(n,(t=>e.forEachRow(h(n),t))))),hasRelationship:v,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>{var n;return ge(null==(n=f(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return de(ge(null==(n=f(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>k(f(e))?[t]:de(I(e,t,!0)),addRelationshipIdsListener:y,addRemoteRowIdListener:(e,t,n)=>r(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>r(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(I(e,t),r(n,o,[e,t])),delListener:e=>{var t;return S(...null!=(t=a(e))?t:[]),R},destroy:p,getListenerStats:()=>({})};return ee(R)})),Ze=e=>[e,e],_e=()=>[he(),he()],et=e=>[...e],tt=([e,t])=>e===t,nt=e=>JSON.stringify(e,((e,t)=>x(t,Map)?Y.fromEntries([...t]):t)),lt=JSON.parse,st=(e,t,n)=>k(e)||!te(e)||oe(e)||_(e)?(null==n||n(),!1):(se(e,((n,l)=>{t(n,l)||le(e,l)})),!oe(e)),ot=(e,t,n)=>ye(e,t,ge(e,t)==-n?void 0:n),rt=()=>{let e,t,n=!1,l=!1,s=0;const r=he(),u=he(),v=he(),I=he(),m=he(),V=he(),E=he(),x=he(),A=he(),F=he(),Q=he(),z=he(),$=he(),q=he(),G=ke(),H=he(),U=he(),X=he(),Y=he(),Z=_e(),_=_e(),te=_e(),de=_e(),me=_e(),De=_e(),Je=_e(),Ae=_e(),Oe=_e(),Qe=_e(),ze=_e(),Ne=_e(),Be=_e(),We=_e(),$e=_e(),qe=he(),Ge=_e(),[He,Ke,Ue,Xe]=Pe((()=>Sn)),Ye=e=>{if(!st(e,((e,t)=>P([i,a],t))))return!1;const t=e[i];return!(!D(t)&&t!=o||(Ve(e[a])!=t&&le(e,a),0))},it=(t,n)=>(!e||ie(Q,n)||Pt(n))&&st(t,((e,t)=>at(n,t,e)),(()=>Pt(n))),at=(e,t,n,l)=>st(l?n:vt(n,e,t),((l,s)=>M(dt(e,t,s,l),(e=>(n[s]=e,!0)),(()=>!1))),(()=>Pt(e,t))),dt=(t,n,l,s)=>e?M(ge(ge(Q,t),l),(e=>Ve(s)!=e[i]?Pt(t,n,l,s,e[a]):s),(()=>Pt(t,n,l,s))):k(Ve(s))?Pt(t,n,l,s):s,ut=(e,t)=>st(t?e:ht(e),((t,n)=>M(ct(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>Qt())),ct=(e,n)=>t?M(ge($,e),(t=>Ve(n)!=t[i]?Qt(e,n,t[a]):n),(()=>Qt(e,n))):k(Ve(n))?Qt(e,n):n,vt=(e,t,n)=>(M(ge(z,t),(([l,s])=>{ce(l,((t,n)=>{ne(e,n)||(e[n]=t)})),ce(s,(l=>{ne(e,l)||Pt(t,n,l)}))})),e),ht=e=>(t&&(ce(q,((t,n)=>{ne(e,n)||(e[n]=t)})),ce(G,(t=>{ne(e,t)||Qt(t)}))),e),ft=e=>Ie(Q,e,((e,t,n)=>{const l=he(),s=ke();Ie(pe(Q,t,he),n,((e,t,n)=>{ye(e,t,n),M(n[a],(e=>ye(l,t,e)),(()=>Me(s,t)))})),ye(z,t,[l,s])}),((e,t)=>{ye(Q,t),ye(z,t)})),gt=e=>Ie($,e,((e,t,n)=>{ye($,t,n),M(n[a],(e=>ye(q,t,e)),(()=>Me(G,t)))}),((e,t)=>{ye($,t),ye(q,t),ve(G,t)})),Lt=e=>oe(e)?cn():on(e),yt=e=>Ie(X,e,((e,t,n)=>pt(t,n)),((e,t)=>Vt(t))),pt=(e,t)=>Ie(pe(X,e,(()=>(Mt(e,1),ye(H,e,Fe()),ye(U,e,he()),he()))),t,((t,n,l)=>It(e,t,n,l)),((t,n)=>Et(e,t,n))),It=(e,t,n,l,s)=>Ie(pe(t,n,(()=>(Dt(e,n,1),he()))),l,((t,l,s)=>St(e,n,t,l,s)),((l,o)=>xt(e,t,n,l,o,s))),St=(e,t,n,l,s)=>{ie(n,l)||Jt(e,t,l,1);const o=ge(n,l);s!==o&&(At(e,t,l,o,s),ye(n,l,s))},Tt=(e,t,n,l,s)=>M(ge(t,n),(t=>St(e,n,t,l,s)),(()=>It(e,t,n,vt({[l]:s},e,n)))),Rt=e=>oe(e)?fn():rn(e),wt=e=>Ie(Y,e,((e,t,n)=>Ct(t,n)),((e,t)=>kt(t))),Ct=(e,t)=>{ie(Y,e)||Ot(e,1);const n=ge(Y,e);t!==n&&(Ft(e,n,t),ye(Y,e,t))},bt=(e,t)=>{const[n]=ge(H,e),l=n(t);return ie(ge(X,e),l)?bt(e,t):l},mt=e=>{var t;return null!=(t=ge(X,e))?t:pt(e,{})},Vt=e=>pt(e,{}),Et=(e,t,n)=>{const[,l]=ge(H,e);l(n),It(e,t,n,{},!0)},xt=(e,t,n,l,s,o)=>{var r;const i=ge(null==(r=ge(z,e))?void 0:r[0],s);if(!k(i)&&!o)return St(e,n,l,s,i);const a=t=>{At(e,n,t,ge(l,t)),Jt(e,n,t,-1),ye(l,t)};k(i)?a(s):Le(l,a),ae(l)&&(Dt(e,n,-1),ae(ye(t,n))&&(Mt(e,-1),ye(X,e),ye(H,e),ye(U,e)))},kt=e=>{const t=ge(q,e);if(!k(t))return Ct(e,t);Ft(e,ge(Y,e)),Ot(e,-1),ye(Y,e)},Mt=(e,t)=>ot(r,e,t),Dt=(e,t,n)=>ot(pe(I,e,he),t,n)&&ye(v,e,pe(v,e,(()=>0))+n),Jt=(e,t,n,l)=>{var s;const o=ge(U,e),r=null!=(s=ge(o,n))?s:0;(0==r&&1==l||1==r&&-1==l)&&ot(pe(u,e,he),n,l),ye(o,n,r!=-l?r+l:null),ot(pe(pe(m,e,he),t,he),n,l)},At=(e,t,n,l,s)=>pe(pe(pe(V,e,he),t,he),n,(()=>[l,0]))[1]=s,Ot=(e,t)=>ot(E,e,t),Ft=(e,t,n)=>pe(x,e,(()=>[t,0]))[1]=n,Pt=(e,t,n,l,s)=>(K(pe(pe(pe(A,e,he),t,he),n,(()=>[])),l),s),Qt=(e,t,n)=>(K(pe(F,e,(()=>[])),t),n),jt=(e,t,n)=>M(ge(ge(ge(V,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ze(tn(e,t,n))])),zt=e=>M(ge(x,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ze(sn(e))])),Nt=e=>ae(A)||ae(ze[e])?0:ce(e?be(A):A,((t,n)=>ce(t,((t,l)=>ce(t,((t,s)=>Ke(ze[e],[n,l,s],t))))))),Bt=e=>ae(F)||ae(Ne[e])?0:ce(e?we(F):F,((t,n)=>Ke(Ne[e],[n],t))),Wt=(e,t,n)=>{if(!ae(t))return Ke(e,n,(()=>Se(t))),1},$t=e=>{const t=ae(Je[e]),n=ae(Oe[e])&&ae(de[e])&&ae(me[e])&&ae(De[e])&&t&&ae(_[e]),l=ae(Qe[e])&&ae(Ae[e])&&ae(te[e])&&ae(Z[e]);if(!n||!l){const s=e?[we(r),Ce(u),we(v),Ce(I),be(m),be(V)]:[r,u,v,I,m,V];if(!n){Wt(_[e],s[0]),ce(s[1],((t,n)=>Wt(de[e],t,[n]))),ce(s[2],((t,n)=>{0!=t&&Ke(me[e],[n],Yt(n))}));const n=ke();ce(s[3],((l,s)=>{Wt(De[e],l,[s])&&!t&&(Ke(Je[e],[s,null]),Me(n,s))})),t||ce(s[5],((t,l)=>{if(!ie(n,l)){const n=ke();ce(t,(e=>ce(e,(([t,l],s)=>l!==t?Me(n,s):ve(e,s))))),ce(n,(t=>Ke(Je[e],[l,t])))}})),ce(s[4],((t,n)=>ce(t,((t,l)=>Wt(Oe[e],t,[n,l])))))}if(!l){let t;ce(s[5],((n,l)=>{let s;ce(n,((n,o)=>{let r;ce(n,(([n,i],a)=>{i!==n&&(Ke(Qe[e],[l,o,a],i,n,jt),t=s=r=1)})),r&&Ke(Ae[e],[l,o],jt)})),s&&Ke(te[e],[l],jt)})),t&&Ke(Z[e],void 0,jt)}}},qt=e=>{const t=ae(We[e]),n=ae($e[e])&&ae(Be[e]);if(!t||!n){const l=e?[we(E),we(x)]:[E,x];if(t||Wt(We[e],l[0]),!n){let t;ce(l[1],(([n,l],s)=>{l!==n&&(Ke($e[e],[s],l,n,zt),t=1)})),t&&Ke(Be[e],void 0,zt)}}},Gt=(e,...t)=>(yn((()=>e(...W(t,b)))),Sn),Ht=()=>[Se(V,((e,t)=>-1===ge(r,t)?null:Se(e,((e,n)=>-1===ge(ge(I,t),n)?null:Se(e,(([,e])=>null!=e?e:null),((e,t)=>tt(t)))),oe)),oe),Se(x,(([,e])=>null!=e?e:null),((e,t)=>tt(t)))],Kt=()=>({cellsTouched:n,valuesTouched:l,changedCells:Re(V,et,tt),invalidCells:Re(A),changedValues:Se(x,et,tt),invalidValues:Se(F),changedTableIds:Se(r),changedRowIds:Te(I),changedCellIds:Re(m),changedValueIds:Se(E)}),Ut=()=>Re(X),Xt=()=>fe(X),Yt=e=>re(ge(X,b(e))),Zt=e=>fe(ge(X,b(e))),_t=(e,t,n,l=0,s)=>{return W(O(N((o=ge(X,b(e)),r=(e,n)=>[k(t)?n:ge(e,b(t)),n],W([...null!=(i=null==o?void 0:o.entries())?i:[]],(([e,t])=>r(t,e)))),(([e],[t])=>je(e,t)*(n?-1:1))),l,k(s)?s:l+s),(([,e])=>e));var o,r,i},en=(e,t)=>fe(ge(ge(X,b(e)),b(t))),tn=(e,t,n)=>ge(ge(ge(X,b(e)),b(t)),b(n)),nn=()=>Se(Y),ln=()=>fe(Y),sn=e=>ge(Y,b(e)),on=e=>Gt((()=>(e=>st(e,it,Pt))(e)?yt(e):0)),rn=e=>Gt((()=>ut(e)?wt(e):0)),an=e=>{try{Lt(lt(e))}catch(e){}return Sn},dn=t=>Gt((()=>{if((e=st(t,(e=>st(e,Ye))))&&(ft(t),!ae(X))){const e=Ut();cn(),on(e)}})),un=e=>Gt((()=>{if(t=(e=>st(e,Ye))(e)){const n=nn();Ln(),fn(),t=!0,gt(e),rn(n)}})),cn=()=>Gt((()=>yt({}))),vn=e=>Gt((e=>ie(X,e)?Vt(e):0),e),hn=(e,t)=>Gt(((e,t)=>M(ge(X,e),(n=>ie(n,t)?Et(e,n,t):0))),e,t),fn=()=>Gt((()=>wt({}))),gn=()=>Gt((()=>{ft({}),e=!1})),Ln=()=>Gt((()=>{gt({}),t=!1})),yn=(e,t)=>{if(-1!=s){pn();const n=e();return In(t),n}},pn=()=>(-1!=s&&s++,1==s&&Ke(qe,void 0,Ht,Kt),Sn),In=e=>(s>0&&(s--,0==s&&(n=!ae(V),l=!ae(x),s=1,Nt(1),n&&$t(1),Bt(1),l&&qt(1),(null==e?void 0:e(Ht,Kt))&&(ce(V,((e,t)=>ce(e,((e,n)=>ce(e,(([e],l)=>Ee(Sn,t,n,l,e))))))),ce(x,(([e],t)=>xe(Sn,t,e))),n=l=!1),Ke(Ge[0],void 0,Ht,Kt),s=-1,Nt(0),n&&$t(0),Bt(0),l&&qt(0),Ke(Ge[1],void 0,Ht,Kt),s=0,n=l=!1,B([r,u,v,I,m,V,A,E,x,F],ue))),Sn),Sn={getContent:()=>[Ut(),nn()],getTables:Ut,getTableIds:Xt,getTable:e=>Te(ge(X,b(e))),getTableCellIds:e=>fe(ge(U,b(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Se(ge(ge(X,b(e)),b(t))),getCellIds:en,getCell:tn,getValues:nn,getValueIds:ln,getValue:sn,hasTables:()=>!ae(X),hasTable:e=>ie(X,b(e)),hasTableCell:(e,t)=>ie(ge(U,b(e)),b(t)),hasRow:(e,t)=>ie(ge(X,b(e)),b(t)),hasCell:(e,t,n)=>ie(ge(ge(X,b(e)),b(t)),b(n)),hasValues:()=>!ae(Y),hasValue:e=>ie(Y,b(e)),getTablesJson:()=>nt(X),getValuesJson:()=>nt(Y),getJson:()=>nt([X,Y]),getTablesSchemaJson:()=>nt(Q),getValuesSchemaJson:()=>nt($),getSchemaJson:()=>nt([Q,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(oe(e)?cn:on)(e),(oe(t)?fn:rn)(t)})),setTables:on,setTable:(e,t)=>Gt((e=>it(t,e)?pt(e,t):0),e),setRow:(e,t,n)=>Gt(((e,t)=>at(e,t,n)?It(e,mt(e),t,n):0),e,t),addRow:(e,t,n=!0)=>yn((()=>{let l;return at(e,l,t)&&(e=b(e),It(e,mt(e),l=bt(e,n?1:0),t)),l})),setPartialRow:(e,t,n)=>Gt(((e,t)=>{if(at(e,t,n,1)){const l=mt(e);se(n,((n,s)=>Tt(e,l,t,s,n)))}}),e,t),setCell:(e,t,n,l)=>Gt(((e,t,n)=>M(dt(e,t,n,J(l)?l(tn(e,t,n)):l),(l=>Tt(e,mt(e),t,n,l)))),e,t,n),setValues:rn,setPartialValues:e=>Gt((()=>ut(e,1)?se(e,((e,t)=>Ct(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ct(e,J(t)?t(sn(e)):t),(t=>Ct(e,t)))),e),setTransactionChanges:e=>Gt((()=>{se(e[0],((e,t)=>k(e)?vn(t):se(e,((e,n)=>k(e)?hn(t,n):se(e,((e,l)=>Ee(Sn,t,n,l,e))))))),se(e[1],((e,t)=>xe(Sn,t,e)))})),setTablesJson:an,setValuesJson:e=>{try{Rt(lt(e))}catch(e){}return Sn},setJson:e=>Gt((()=>{try{const[t,n]=lt(e);Lt(t),Rt(n)}catch(t){an(e)}})),setTablesSchema:dn,setValuesSchema:un,setSchema:(e,t)=>Gt((()=>{dn(e),un(t)})),delTables:cn,delTable:vn,delRow:hn,delCell:(e,t,n,l)=>Gt(((e,t,n)=>M(ge(X,e),(s=>M(ge(s,t),(o=>ie(o,n)?xt(e,s,t,o,n,l):0))))),e,t,n),delValues:fn,delValue:e=>Gt((e=>ie(Y,e)?kt(e):0),e),delTablesSchema:gn,delValuesSchema:Ln,delSchema:()=>Gt((()=>{gn(),Ln()})),transaction:yn,startTransaction:pn,finishTransaction:In,forEachTable:e=>ce(X,((t,n)=>e(n,(e=>ce(t,((t,n)=>e(n,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(ge(U,b(e)),t),forEachRow:(e,t)=>ce(ge(X,b(e)),((e,n)=>t(n,(t=>Le(e,t))))),forEachCell:(e,t,n)=>Le(ge(ge(X,b(e)),b(t)),n),forEachValue:e=>Le(Y,e),addSortedRowIdsListener:(e,t,n,l,s,o,r)=>{let i=_t(e,t,n,l,s);return He((()=>{const r=_t(e,t,n,l,s);j(r,i)||(i=r,o(Sn,e,t,n,l,s,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=>(Xe(e),Sn),delListener:e=>(Ue(e),Sn),getListenerStats:()=>({}),createStore:rt,addListener:He,callListeners:Ke};return se({[f]:[0,Z],[g]:[0,_],[h]:[1,te,[Xt]],[h+T]:[1,de,[Xt]],[y]:[1,me,[Xt]],[p]:[1,De,[Xt]],[L]:[2,Ae,[Xt,Zt]],[T]:[2,Oe,[Xt,Zt]],[S]:[3,Qe,[Xt,Zt,en],e=>Ze(tn(...e))],InvalidCell:[3,ze],[w]:[0,Be],[C]:[0,We],[R]:[1,$e,[ln],e=>Ze(sn(e[0]))],InvalidValue:[1,Ne]},(([e,t,n,l],s)=>{Sn[c+s+d]=(...s)=>He(s[e],t[s[e+1]?1:0],e>0?O(s,0,e):void 0,n,l)})),ee(Sn)};e.createCheckpoints=Qe,e.createCustomPersister=(e,t,n,l,s,o,r=[])=>{let i,a,d,u=0,c=0;pe(qe,r,(()=>0)),pe(Ge,r,(()=>[]));const v=e=>$e(void 0,null,(function*(){return 2!=u&&(u=1,yield h.schedule((()=>$e(void 0,null,(function*(){yield e(),u=0}))))),h})),h={load:(n,l)=>$e(void 0,null,(function*(){return yield v((()=>$e(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}}))))})),startAutoLoad:(...n)=>$e(void 0,[...n],(function*(n={},s={}){return h.stopAutoLoad(),yield h.load(n,s),c=1,d=l(((n,l)=>$e(void 0,null,(function*(){if(l){const t=l();yield v((()=>$e(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield v((()=>$e(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==n?void 0:n())?l:yield t())}catch(e){null==o||o(e)}}))))})))),h})),stopAutoLoad:()=>(c&&(s(d),d=void 0,c=0),h),save:t=>$e(void 0,null,(function*(){return 1!=u&&(u=2,yield h.schedule((()=>$e(void 0,null,(function*(){try{yield n(e.getContent,t)}catch(e){null==o||o(e)}u=0}))))),h})),startAutoSave:()=>$e(void 0,null,(function*(){return yield h.stopAutoSave().save(),i=e.addDidFinishTransactionListener(((e,t)=>{const[n,l]=t();oe(n)&&oe(l)||h.save((()=>[n,l]))})),h})),stopAutoSave:()=>(M(i,e.delListener),h),schedule:(...e)=>$e(void 0,null,(function*(){return K(ge(Ge,r),...e),yield $e(void 0,null,(function*(){if(!ge(qe,r)){for(ye(qe,r,1);!k(a=X(ge(Ge,r)));)try{yield a()}catch(e){null==o||o(e)}ye(qe,r,0)}})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(h)},e.createIndexes=ze,e.createMetrics=We,e.createQueries=Xe,e.createRelationships=Ye,e.createStore=rt,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={});
|