tinybase 2.0.0-beta.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- import{promises as e,watch as t}from"fs";const n=e=>typeof e,s=n(""),o=n(!0),r=n(0),a=n(n),i=(e,t)=>e.includes(t),l=(e,t)=>e.every(t),d=(e,t)=>l(e,((n,s)=>0==s||t(e[s-1],n)<=0)),c=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),h=(e,t)=>e.map(t),f=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,w=e=>0==g(e),L=(e,t,n)=>e.reduce(t,n),R=(e,t,n)=>e.slice(t,n),v=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>JSON.stringify(e,((e,t)=>C(t,Map)?L([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),p=JSON.parse,T=Math.max,y=Math.min,b=isFinite,C=(e,t)=>e instanceof t,m=e=>null==e,E=(e,t,n)=>m(e)?n?.():t(e),k=e=>e==s||e==o,M=e=>n(e)==a,D=()=>{},A=e=>e.size,x=(e,t)=>e?.has(t)??!1,F=e=>m(e)||0==A(e),J=e=>[...e?.values()??[]],Q=e=>e.clear(),z=(e,t)=>e?.forEach(t),N=(e,t)=>e?.delete(t),O=e=>new Map(e),j=e=>[...e?.keys()??[]],W=(e,t)=>e?.get(t),P=(e,t)=>z(e,((e,n)=>t(n,e))),B=(e,t,n)=>m(n)?(N(e,t),e):e?.set(t,n),H=(e,t,n)=>(x(e,t)||B(e,t,n()),W(e,t)),q=(e,t,n)=>{const s={},o=t??(e=>e);return z(e,((e,t)=>E(o(e),(e=>n?.(e)?0:s[t]=e)))),s},G=(e,t)=>{const n=O(),s=t??(e=>e);return z(e,((e,t)=>n.set(t,s(e)))),n},K=e=>G(e,G),U=(e,t,n,s,o=0)=>E((n?H:W)(e,t[o],o>g(t)-2?n:O),(r=>{if(o>g(t)-2)return s?.(r)&&B(e,t[o]),r;const a=U(r,t,n,s,o+1);return F(r)&&B(e,t[o]),a})),V=e=>new Set(e),X=(e,t)=>e?.add(t),Y=(e,t,n)=>{const s=e.hasRow,o=O(),r=O(),a=O(),i=O(),l=O(),d=(t,n,...s)=>{const o=H(l,t,V);return u(s,(t=>X(o,t)&&n&&e.callListener(t))),s},c=(t,...n)=>E(W(l,t),(s=>{u(w(n)?J(s):n,(t=>{e.delListener(t),N(s,t)})),F(s)&&B(l,t)})),h=(e,n)=>{B(o,e,n),x(r,e)||(B(r,e,t()),B(a,e,O()),B(i,e,O()))},f=e=>{B(o,e),B(r,e),B(a,e),B(i,e),c(e)};return[()=>e,()=>j(o),e=>P(r,e),e=>x(r,e),e=>W(o,e),e=>W(r,e),(e,t)=>B(r,e,t),h,(t,o,r,l,f)=>{h(t,o);const g=O(),w=O(),L=W(a,t),R=W(i,t),v=t=>{const r=n=>e.getCell(o,t,n),a=W(L,t),i=s(o,t)?n(l(r,t)):void 0;if(a!=i&&B(g,t,[a,i]),!m(f)){const e=W(R,t),n=s(o,t)?f(r,t):void 0;e!=n&&B(w,t,n)}},I=e=>{r((()=>{z(g,(([,e],t)=>B(L,t,e))),z(w,((e,t)=>B(R,t,e)))}),g,w,L,R,e),Q(g),Q(w)};P(L,v),e.hasTable(o)&&u(e.getRowIds(o),(e=>{x(L,e)||v(e)})),I(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,n)=>v(n))),e.addTableListener(o,(()=>I())))},f,()=>P(l,f),d,c]},Z=(e,t)=>n(e)==s?t=>t(e):e??(()=>t??""),$=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},_=e=>{let t,n=0;const s=[],o=O();return[(r,a,i)=>{t??=e();const l=I(s)??""+n++;return B(o,l,[r,a,i]),X(U(a,i??[""],V),l),l},(e,n,...s)=>u(((e,t=[""])=>{const n=[],s=(e,o)=>o==g(t)?v(n,e):null===t[o]?z(e,(e=>s(e,o+1))):u([t[o],null],(t=>s(W(e,t),o+1)));return s(e,0),n})(e,n),(e=>z(e,(e=>W(o,e)[0](t,...n??[],...s))))),e=>E(W(o,e),(([,t,n])=>(U(t,n??[""],void 0,(t=>(N(t,e),F(t)?1:0))),B(o,e),g(s)<1e3&&v(s,e),n))),(e,n,s)=>E(W(o,e),(([e,,o=[]])=>{const r=(...a)=>{const i=g(a);i==g(o)?e(t,...a,...s(a)):m(o[i])?u(n[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},ee=Object,te=ee.keys,ne=ee.isFrozen,se=ee.freeze,oe=(e,t)=>!m(((e,t)=>E(e,(e=>e[t])))(e,t)),re=(e,t)=>delete e[t],ae=(e,t)=>u(ee.entries(e),(([e,n])=>t(n,e))),ie=e=>w(te(e)),le=e=>{const t=n(e);return k(t)||t==r&&b(e)?t:void 0},de=(e,t,n,s,o)=>m(o)?e.delCell(t,n,s,!0):e.setCell(t,n,s,o),ce=$((e=>{let t,n,s,o=100,r=O(),a=1;const l=O(),d=O(),[c,h,f]=_((()=>q)),L=O(),R=O(),S=[],p=[],T=(t,n)=>{a=0,e.transaction((()=>z(W(L,n),((n,s)=>z(n,((n,o)=>z(n,((n,r)=>de(e,s,o,r,n[t]))))))))),a=1},y=e=>{B(L,e),B(R,e),h(d,[e])},b=(e,t)=>u(((e,t)=>e.splice(0,t))(e,t??g(e)),y),C=()=>b(S,g(S)-o),k=e.addCellListener(null,null,null,((e,n,o,i,l,d)=>{if(a){E(t,(()=>{v(S,t),C(),b(p),t=void 0,s=1}));const e=H(r,n,O),a=H(e,o,O),c=H(a,i,(()=>[d,void 0]));c[1]=l,c[0]===l&&F(B(a,i))&&F(B(e,o))&&F(B(r,n))&&(t=I(S),s=1),J()}})),M=(e="")=>(m(t)&&(t=""+n++,B(L,t,r),N(t,e),r=O(),s=1),t),D=()=>{w(S)||(p.unshift(M()),T(0,t),t=I(S),s=1)},A=()=>{w(p)||(v(S,t),t=p.shift(),T(1,t),s=1)},J=()=>{s&&(h(l),s=0)},Q=e=>{const t=M(e);return J(),t},N=(e,t)=>(j(e)&&W(R,e)!==t&&(B(R,e,t),h(d,[e])),q),j=e=>x(L,e),q={setSize:e=>(o=e,C(),q),addCheckpoint:Q,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...S],t,[...p]],forEachCheckpoint:e=>P(R,e),hasCheckpoint:j,getCheckpoint:e=>W(R,e),goBackward:()=>(D(),J(),q),goForward:()=>(A(),J(),q),goTo:e=>{const n=i(S,e)?D:i(p,e)?A:null;for(;!m(n)&&e!=t;)n();return J(),q},addCheckpointIdsListener:e=>c(e,l),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(f(e),q),clear:()=>(b(S),b(p),m(t)||y(t),t=void 0,n=0,Q(),q),destroy:()=>{e.delListener(k)},getListenerStats:()=>({})};return se(q.clear())})),ue=(e,t)=>e<t?-1:1,he=e=>""+e,fe=$((e=>{const t=O(),n=O(),[s,o,r,a,i,l,u,,h,f,g]=Y(e,O,(e=>m(e)?"":e+"")),[w,L,R]=_((()=>I)),v=(t,n,s)=>{const o=i(t);z(s,((t,s)=>n(s,(n=>z(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},I={setIndexDefinition:(e,s,o,r,a,i=ue)=>{const f=m(a)?void 0:([e],[t])=>a(e,t);return h(e,s,((s,o,a,h,g,w)=>{let R=0;const v=V(),I=V(),S=l(e);if(z(o,(([e,t],n)=>{m(e)||(X(v,e),E(W(S,e),(t=>{N(t,n),F(t)&&(B(S,e),R=1)}))),m(t)||(X(v,t),x(S,t)||(B(S,t,V()),R=1),X(W(S,t),n),m(r)||X(I,t))})),s(),F(g)||(w?P(S,(e=>X(I,e))):P(a,(e=>E(W(h,e),(e=>X(I,e))))),z(I,(e=>{const t=(t,n)=>i(W(g,t),W(g,n),e),n=[...W(S,e)];d(n,t)||(B(S,e,V(c(n,t))),X(v,e))}))),(R||w)&&!m(f)){const t=[...S];d(t,f)||(u(e,O(c(t,f))),R=1)}R&&L(t,[e]),z(v,(t=>L(n,[e,t])))}),Z(o),E(r,Z)),I},delIndexDefinition:e=>(f(e),I),getStore:s,getIndexIds:o,forEachIndex:e=>r(((t,n)=>e(t,(e=>v(t,e,n))))),forEachSlice:(e,t)=>v(e,t,l(e)),hasIndex:a,hasSlice:(e,t)=>x(l(e),t),getTableId:i,getSliceIds:e=>j(l(e)),getSliceRowIds:(e,t)=>J(W(l(e),t)),addSliceIdsListener:(e,n)=>w(n,t,[e]),addSliceRowIdsListener:(e,t,s)=>w(s,n,[e,t]),delListener:e=>(R(e),I),destroy:g,getListenerStats:()=>({})};return se(I)})),ge=O([["avg",[(e,t)=>f(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=>T(...e),(e,t)=>T(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:T(t,e)]],["min",[e=>y(...e),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:y(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),we=(e,t,n,s,o,r=!1)=>{if(F(n))return;const[a,i,l,d]=o;return r||=m(e),z(s,(([n,s])=>{r||(e=m(n)?i?.(e,s,t++):m(s)?l?.(e,n,t--):d?.(e,s,n,t),r||=m(e))})),r?a(J(n),A(n)):e},Le=$((e=>{const t=O(),[n,s,o,r,a,i,l,,d,c,u]=Y(e,D,(e=>isNaN(e)||m(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=_((()=>w)),w={setMetricDefinition:(e,n,s,o,r,a,c)=>{const u=M(s)?[s,r,a,c]:W(ge,s)??W(ge,"sum");return d(e,n,((n,s,o,r,a,d)=>{const c=i(e),h=A(r);d||=m(c),n();let g=we(c,h,r,s,u,d);b(g)||(g=void 0),g!=c&&(l(e,g),f(t,[e],g,c))}),Z(o,1)),w},delMetricDefinition:e=>(c(e),w),getStore:n,getMetricIds:s,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,n)=>h(n,t,[e]),delListener:e=>(g(e),w),destroy:u,getListenerStats:()=>({})};return se(w)})),Re=(e,t,n,s,o)=>{let r,a=0;const i={load:async n=>{if(2!=a){a=1;const s=await t();m(s)||""==s?e.setTables(n):e.setJson(s),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),s(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await n(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(E(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return se(i)},ve=globalThis.window,Ie=(e,t,n)=>{let s;return Re(e,(async()=>n.getItem(t)),(async e=>n.setItem(t,e)),(e=>{s=s=>{s.storageArea===n&&s.key===t&&e()},ve.addEventListener("storage",s)}),(()=>{ve.removeEventListener("storage",s),s=void 0}))},Se=(e,t)=>Ie(e,t,localStorage),pe=(e,t)=>Ie(e,t,sessionStorage),Te=(n,s)=>{let o;return Re(n,(async()=>{try{return await e.readFile(s,"utf8")}catch{}}),(async t=>{try{await e.writeFile(s,t,"utf8")}catch{}}),(e=>{o=t(s,e)}),(()=>{o?.close(),o=void 0}))},ye=e=>e.headers.get("ETag"),be=(e,t,n,s)=>{let o,r;return Re(e,(async()=>{const e=await fetch(t);return r=ye(e),e.text()}),(async e=>await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const n=await fetch(t,{method:"HEAD"}),s=ye(n);m(r)||m(s)||s==r||(r=s,e())}),1e3*s)}),(()=>{E(o,clearInterval),o=void 0}))},Ce=$((e=>{const t=e.createStore,[n,s,o,r,a,,,i,,d,c,h,f]=Y(e,(()=>!0),D),L=t(),I=t(),S=O(),p=(e,t,...n)=>u(n,(n=>X(H(H(S,t,O),e,V),n))),T=e=>{P(W(S,e),((e,t)=>z(t,(t=>e.delListener(t))))),u([I,L],(t=>t.delTable(e)))},y=(e,t,n)=>p(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),b={setQueryDefinition:(t,n,s)=>{i(t,n),T(t);const o=[],r=[[null,[n,null,null,[],O()]]],a=[],d=[],c=[];s({select:(e,t)=>{const n=M(e)?[g(o)+"",e]:[m(t)?e:t,n=>n(e,t)];return v(o,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=m(n)||M(t)?null:t,o=m(s)?t:n,a=[e,[e,s,M(o)?o:e=>e(o),[],O()]];return v(r,a),{as:e=>a[0]=e}},where:(e,t,n)=>v(a,M(e)?e:m(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,o)=>{const r=[e,[e,M(t)?[t,n,s,o]:W(ge,t)??[(e,t)=>t]]];return v(d,r),{as:e=>r[0]=e}},having:(e,t)=>v(c,M(e)?e:n=>n(e)===t)});const R=O(o);if(F(R))return b;const S=O(r);P(S,((e,[,t])=>E(W(S,t),(({3:t})=>m(e)?0:v(t,e)))));const C=O(d);let k=L;if(F(C)&&w(c))k=I;else{y(t,k,I);const e=O();P(C,((t,[n,s])=>X(H(e,n,V),[t,s])));const n=V();P(R,(t=>x(e,t)?0:X(n,t)));const s=O(),o=(n,s,o,r)=>E(n,(([n,a,i,d])=>{P(s,((t,[s])=>{const a=H(n,t,O),i=W(a,o),l=r?void 0:s;if(i!==l){const n=V([[i,l]]),s=A(a);B(a,o,l),z(W(e,t),(([e,t])=>{const o=we(d[e],s,a,n,t);d[e]=m(le(o))?null:o}))}})),(F(a)||!l(c,(e=>e((e=>d[e]))))?I.delRow:I.setRow)(t,i,d)}));p(k,t,k.addRowListener(t,null,((r,a,i,l)=>{const d=[],c=[],u=O(),h=k.hasRow(t,i);let f=!h;z(n,(e=>{const[n,s,o]=l(t,i,e);v(d,s),v(c,o),f||=n})),P(e,(e=>{const[n,,s]=l(t,i,e);(f||n)&&B(u,e,[s])})),f&&o(U(s,d,void 0,(([,e,n])=>{if(N(e,i),F(e))return I.delRow(t,n),1})),u,i,1),h&&o(U(s,c,(()=>{const e={};return z(n,(n=>e[n]=k.getCell(t,i,n))),[O(),V(),I.addRow(t,e,1),e]}),(([,e])=>{X(e,i)})),u,i)})))}y(t,e,k);const D=(s,o,r,i)=>{const d=t=>e.getCell(o,r,t);u(i,(n=>{const[o,,r,a,i]=W(S,n),l=r?.(d,s),[c,u]=W(i,s)??[];l!=c&&(m(u)||f(t,u),B(i,s,m(l)?null:[l,...h(t,1,e.addRowListener(o,l,(()=>D(s,o,l,a))))]))})),(s=>{const o=(t,o)=>e.getCell(...m(o)?[n,s,t]:t===n?[n,s,o]:[W(S,t)?.[0],W(W(S,t)?.[4],s)?.[0],o]);k.transaction((()=>l(a,(e=>e(o)))?P(R,((e,n)=>de(k,t,s,e,n(o,s)))):k.delRow(t,s)))})(s)},{3:J}=W(S,null);return k.transaction((()=>h(t,1,e.addRowListener(n,null,((s,o,r)=>{e.hasRow(n,r)?D(r,n,r,J):(k.delRow(t,r),z(S,(({4:e})=>E(W(e,r),(([,n])=>{f(t,n),B(e,r)})))))}))))),b},delQueryDefinition:e=>(T(e),d(e),b),getStore:n,getQueryIds:s,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(I.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=I.getListenerStats();return s}};return ae({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],n)=>{u(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+n]=(...t)=>I[e+n](...t))),b["addResult"+n+"Listener"]=(...e)=>I["add"+n+"Listener"](...R(e,0,t),((n,...s)=>e[t](b,...s)))})),se(b)})),me=$((e=>{const t=O(),n=O(),s=O(),o=O(),[r,a,i,l,d,c,,,u,h,f]=Y(e,(()=>[O(),O(),O(),O()]),(e=>m(e)?void 0:e+"")),[g,w,L]=_((()=>S)),R=(e,t,n)=>E(c(e),(([s,,o])=>{if(!x(o,t)){const r=V();if(d(e)!=I(e))X(r,t);else{let e=t;for(;!m(e)&&!x(r,e);)X(r,e),e=W(s,e)}if(n)return r;B(o,t,r)}return W(o,t)})),v=(e,t)=>E(c(e),(([,,e])=>B(e,t))),I=e=>W(t,e),S={setRelationshipDefinition:(e,r,a,i)=>(B(t,e,a),u(e,r,((t,r)=>{const a=V(),i=V(),l=V(),[d,u]=c(e);z(r,(([t,n],s)=>{m(t)||(X(i,t),E(W(u,t),(e=>{N(e,s),F(e)&&B(u,t)}))),m(n)||(X(i,n),x(u,n)||B(u,n,V()),X(W(u,n),s)),X(a,s),B(d,s,n),P(W(o,e),(t=>{x(R(e,t),s)&&X(l,t)}))})),t(),z(a,(t=>w(n,[e,t]))),z(i,(t=>w(s,[e,t]))),z(l,(t=>{v(e,t),w(o,[e,t])}))}),Z(i)),S),delRelationshipDefinition:e=>(B(t,e),h(e),S),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(d(n),t))))),hasRelationship:l,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>W(c(e)?.[0],t),getLocalRowIds:(e,t)=>J(W(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>m(c(e))?[t]:J(R(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>g(s,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(R(e,t),g(n,o,[e,t])),delListener:e=>(v(...L(e)),S),destroy:f,getListenerStats:()=>({})};return se(S)})),Ee=e=>[e,e],ke=()=>[O(),O()],Me=(e,t,n,s=B)=>{const o=(r=j(e),a=e=>!oe(t,e),r.filter(a));var r,a;return u(te(t),(s=>n(e,s,t[s]))),u(o,(t=>s(e,t))),e},De=(e,t,n)=>m(e)||!(e=>C(e,ee)&&e.constructor==ee)(e)||ie(e)||ne(e)?(n?.(),!1):(ae(e,((n,s)=>{t(n,s)||re(e,s)})),!ie(e)),Ae=(e,t,n)=>B(e,t,W(e,t)==-n?void 0:n),xe=()=>{let e,t,n=0,s=0;const o=O(),a=O(),d=O(),f=O(),w=O(),L=O(),I=O(),T=O(),y=ke(),b=ke(),C=ke(),D=ke(),A=ke(),J=ke(),U=ke(),Y=ke(),Z=ke(),$=ke(),[ee,te,ne,ce]=_((()=>tt)),fe=(t,n)=>(!e||x(L,n)||Oe(n))&&De(t,((e,t)=>ge(n,t,e)),(()=>Oe(n))),ge=(e,t,n,s)=>De(s?n:Le(n,e,t),((s,o)=>E(we(e,t,o,s),(e=>(n[o]=e,!0)),(()=>!1))),(()=>Oe(e,t))),we=(t,n,s,o)=>e?E(W(W(L,t),s),(e=>le(o)!=e.type?Oe(t,n,s,o,e.default):o),(()=>Oe(t,n,s,o))):m(le(o))?Oe(t,n,s,o):o,Le=(e,t,n)=>(E(W(I,t),(([s,o])=>{z(s,((t,n)=>{oe(e,n)||(e[n]=t)})),z(o,(s=>{oe(e,s)||Oe(t,n,s)}))})),e),Re=e=>Me(L,e,((e,t,n)=>{const s=O(),o=V();Me(H(L,t,O),n,((e,t,n)=>{B(e,t,n),E(n.default,(e=>B(s,t,e)),(()=>X(o,t)))})),B(I,t,[s,o])}),((e,t)=>{B(L,t),B(I,t)})),ve=e=>Me(T,e,((e,t,n)=>Ie(t,n)),((e,t)=>Ce(t))),Ie=(e,t)=>Me(H(T,e,(()=>(Je(e,1),O()))),t,((t,n,s)=>Se(e,t,n,s)),((t,n)=>me(e,t,n))),Se=(e,t,n,s,o)=>Me(H(t,n,(()=>(Qe(e,n,1),O()))),s,((t,s,o)=>pe(e,n,t,s,o)),((s,r)=>Fe(e,t,n,s,r,o))),pe=(e,t,n,s,o)=>{x(n,s)||ze(e,t,s,1);const r=W(n,s);o!==r&&(Ne(e,t,s,r,o),B(n,s,o))},Te=(e,t,n,s,o)=>E(W(t,n),(t=>pe(e,n,t,s,o)),(()=>Se(e,t,n,Le({[s]:o},e,n)))),ye=e=>{const t=""+n++;return x(e,t)?ye(e):t},be=e=>W(T,e)??Ie(e,{}),Ce=e=>Ie(e,{}),me=(e,t,n)=>Se(e,t,n,{},!0),Fe=(e,t,n,s,o,r)=>{const a=W(W(I,e)?.[0],o);if(!m(a)&&!r)return pe(e,n,s,o,a);const i=t=>{Ne(e,n,t,W(s,t)),ze(e,n,t,-1),B(s,t)};m(a)?i(o):P(s,i),F(s)&&(Qe(e,n,-1),F(B(t,n))&&(Je(e,-1),B(T,e)))},Je=(e,t)=>Ae(o,e,t),Qe=(e,t,n)=>Ae(H(a,e,O),t,n),ze=(e,t,n,s)=>Ae(H(H(d,e,O),t,O),n,s),Ne=(e,t,n,s,o)=>H(H(H(f,e,O),t,O),n,(()=>[s,0]))[1]=o,Oe=(e,t,n,s,o)=>(v(H(H(H(w,e,O),t,O),n,(()=>[])),s),o),je=(e,t,n)=>E(W(W(W(f,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ee(Xe(e,t,n))])),We=e=>F(w)||F(Z[e])?0:z(e?G(w,K):w,((t,n)=>z(t,((t,s)=>z(t,((t,o)=>te(Z[e],[n,s,o],t))))))),Pe=(e,t,n)=>{if(!F(t))return te(e,n),1},Be=e=>{const t=F(A[e]),n=F(U[e])&&F(D[e])&&t&&F(b[e]),s=F(Y[e])&&F(J[e])&&F(C[e])&&F(y[e]);if(!n||!s){const r=e?[G(o),K(a),G(d,K),G(f,K)]:[o,a,d,f];if(!n){z(r[2],((t,n)=>z(t,((t,s)=>Pe(U[e],t,[n,s])))));const n=V();z(r[1],((s,o)=>{Pe(D[e],s,[o])&&!t&&(te(A[e],[o,null]),X(n,o))})),t||z(r[3],((t,s)=>{if(!x(n,s)){const n=V();z(t,(e=>z(e,(([t,s],o)=>s!==t?X(n,o):N(e,o))))),z(n,(t=>te(A[e],[s,t])))}})),Pe(b[e],r[0])}if(!s){let t;z(r[3],((n,s)=>{let o;z(n,((n,r)=>{let a;z(n,(([n,i],l)=>{i!==n&&(te(Y[e],[s,r,l],i,n,je),t=o=a=1)})),a&&te(J[e],[s,r],je)})),o&&te(C[e],[s],je)})),t&&te(y[e],void 0,je)}}},He=(e,...t)=>($e((()=>e(...h(t,he)))),tt),qe=()=>q(T,(e=>q(e,q))),Ge=()=>j(T),Ke=e=>j(W(T,he(e))),Ue=(e,t,n,s=0,o)=>{const r=[];return P(W(T,he(e)),((e,n)=>v(r,[m(t)?e:W(n,he(t)),e]))),h(R(c(r,(([e],[t])=>ue(e,t)*(n?-1:1))),s,m(o)?o:s+o),(([,e])=>e))},Ve=(e,t)=>j(W(W(T,he(e)),he(t))),Xe=(e,t,n)=>W(W(W(T,he(e)),he(t)),he(n)),Ye=e=>He((()=>(e=>De(e,fe,Oe))(e)?ve(e):0)),Ze=()=>He((()=>ve({}))),$e=(e,t)=>{if(-1==s)return;_e();const n=e?.();return et(t),n},_e=()=>(s++,tt),et=e=>(s>0&&(s--,0==s&&(t=!F(f),s=1,We(1),t&&Be(1),s=-1,e?.(q(f,(e=>q(e,(e=>q(e,(e=>[...e]),(([e,t])=>e===t))),ie)),ie),q(w,(e=>q(e,q))))&&(s=1,z(f,((e,t)=>z(e,((e,n)=>z(e,(([e],s)=>de(tt,t,n,s,e))))))),s=-1,t=!1),te($[0],void 0,t),We(0),t&&Be(0),te($[1],void 0,t),s=0,u([f,w,o,a,d],Q))),tt),tt={getTables:qe,getTableIds:Ge,getTable:e=>q(W(T,he(e)),q),getRowIds:Ke,getSortedRowIds:Ue,getRow:(e,t)=>q(W(W(T,he(e)),he(t))),getCellIds:Ve,getCell:Xe,hasTables:()=>!F(T),hasTable:e=>x(T,he(e)),hasRow:(e,t)=>x(W(T,he(e)),he(t)),hasCell:(e,t,n)=>x(W(W(T,he(e)),he(t)),he(n)),getJson:()=>S(T),getSchemaJson:()=>S(L),setTables:Ye,setTable:(e,t)=>He((e=>fe(t,e)?Ie(e,t):0),e),setRow:(e,t,n)=>He(((e,t)=>ge(he(e),he(t),n)?Se(he(e),be(he(e)),he(t),n):0),e,t),addRow:(e,t,n)=>$e((()=>{e=he(e);const s=ge(e,void 0,t),o=s||n?ye(W(T,e)):void 0;return s&&Se(e,be(e),o,t),o})),setPartialRow:(e,t,n)=>He(((e,t)=>{if(ge(e,t,n,1)){const s=be(e);ae(n,((n,o)=>Te(e,s,t,o,n)))}}),e,t),setCell:(e,t,n,s)=>He(((e,t,n)=>E(we(e,t,n,M(s)?s(Xe(e,t,n)):s),(s=>Te(e,be(e),t,n,s)))),e,t,n),setJson:e=>{try{"{}"===e?Ze():Ye(p(e))}catch{}return tt},setSchema:t=>He((()=>{if((e=(e=>De(e,(e=>De(e,(e=>{if(!De(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!k(t)&&t!=r||(le(e.default)!=t&&re(e,"default"),0))})))))(t))&&(Re(t),!F(T))){const e=qe();Ze(),Ye(e)}})),delTables:Ze,delTable:e=>He((e=>x(T,e)?Ce(e):0),e),delRow:(e,t)=>He(((e,t)=>E(W(T,e),(n=>x(n,t)?me(e,n,t):0))),e,t),delCell:(e,t,n,s)=>He(((e,t,n)=>E(W(T,e),(o=>E(W(o,t),(r=>x(r,n)?Fe(e,o,t,r,n,s):0))))),e,t,n),delSchema:()=>He((()=>{Re({}),e=!1})),transaction:$e,startTransaction:_e,finishTransaction:et,forEachTable:e=>z(T,((t,n)=>e(n,(e=>z(t,((t,n)=>e(n,(e=>P(t,e))))))))),forEachRow:(e,t)=>z(W(T,he(e)),((e,n)=>t(n,(t=>P(e,t))))),forEachCell:(e,t,n)=>P(W(W(T,he(e)),he(t)),n),addSortedRowIdsListener:(e,t,n,s,o,r,a)=>{let i=Ue(e,t,n,s,o);return ee((()=>{const a=Ue(e,t,n,s,o);var d,c;c=i,g(d=a)===g(c)&&l(d,((e,t)=>c[t]===e))||(i=a,r(tt,e,t,n,s,o,i))}),A[a?1:0],[e,t])},addWillFinishTransactionListener:e=>ee(e,$[0]),addDidFinishTransactionListener:e=>ee(e,$[1]),callListener:e=>(ce(e,[Ge,Ke,Ve],(e=>m(e[2])?[]:Ee(Xe(...e)))),tt),delListener:e=>(ne(e),tt),getListenerStats:()=>({}),createStore:xe};return ae({Tables:[0,y],TableIds:[0,b],Table:[1,C],RowIds:[1,D],Row:[2,J],CellIds:[2,U],Cell:[3,Y],InvalidCell:[3,Z]},(([e,t],n)=>{tt["add"+n+"Listener"]=(...n)=>ee(n[e],t[n[e+1]?1:0],e>0?R(n,0,e):void 0)})),se(tt)};export{ce as createCheckpoints,Re as createCustomPersister,Te as createFilePersister,fe as createIndexes,Se as createLocalPersister,Le as createMetrics,Ce as createQueries,me as createRelationships,be as createRemotePersister,pe as createSessionPersister,xe as createStore,ue as defaultSorter,he as id};
1
+ import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),r=s(0),a=s(s),i=(e,t)=>e.includes(t),l=(e,t)=>e.every(t),d=(e,t)=>l(e,((s,n)=>0==n||t(e[n-1],s)<=0)),c=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),h=(e,t)=>e.map(t),g=e=>L(e,((e,t)=>e+t),0),f=e=>e.length,w=e=>0==f(e),L=(e,t,s)=>e.reduce(t,s),R=(e,t,s)=>e.slice(t,s),v=(e,...t)=>e.push(...t),I=e=>e.pop(),S=e=>e.shift(),p=e=>JSON.stringify(e,((e,t)=>m(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),T=JSON.parse,y=Math.max,b=Math.min,C=isFinite,m=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,s)=>E(e)?s?.():t(e),M=e=>e==n||e==o,D=e=>s(e)==a,A=()=>{},x=e=>e.size,F=(e,t)=>e?.has(t)??!1,J=e=>E(e)||0==x(e),Q=e=>[...e?.values()??[]],z=e=>e.clear(),N=(e,t)=>e?.forEach(t),O=(e,t)=>e?.delete(t),j=e=>new Map(e),W=e=>[...e?.keys()??[]],P=(e,t)=>e?.get(t),B=(e,t)=>N(e,((e,s)=>t(s,e))),H=(e,t,s)=>E(s)?(O(e,t),e):e?.set(t,s),$=(e,t,s)=>(F(e,t)||H(e,t,s()),P(e,t)),q=(e,t,s)=>{const n={},o=t??(e=>e);return N(e,((e,t)=>k(o(e),(e=>s?.(e)?0:n[t]=e)))),n},G=(e,t)=>{const s=j(),n=t??(e=>e);return N(e,((e,t)=>s.set(t,n(e)))),s},K=e=>G(e,G),U=(e,t,s,n,o=0)=>k((s?$:P)(e,t[o],o>f(t)-2?s:j),(r=>{if(o>f(t)-2)return n?.(r)&&H(e,t[o]),r;const a=U(r,t,s,n,o+1);return J(r)&&H(e,t[o]),a})),V=e=>new Set(e),X=(e,t)=>e?.add(t),Y=(e,t,s)=>{const n=e.hasRow,o=j(),r=j(),a=j(),i=j(),l=j(),d=(t,s,...n)=>{const o=$(l,t,V);return u(n,(t=>X(o,t)&&s&&e.callListener(t))),n},c=(t,...s)=>k(P(l,t),(n=>{u(w(s)?Q(n):s,(t=>{e.delListener(t),O(n,t)})),J(n)&&H(l,t)})),h=(e,s)=>{H(o,e,s),F(r,e)||(H(r,e,t()),H(a,e,j()),H(i,e,j()))},g=e=>{H(o,e),H(r,e),H(a,e),H(i,e),c(e)};return[()=>e,()=>W(o),e=>B(r,e),e=>F(r,e),e=>P(o,e),e=>P(r,e),(e,t)=>H(r,e,t),h,(t,o,r,l,g)=>{h(t,o);const f=j(),w=j(),L=P(a,t),R=P(i,t),v=t=>{const r=s=>e.getCell(o,t,s),a=P(L,t),i=n(o,t)?s(l(r,t)):void 0;if(a!=i&&H(f,t,[a,i]),!E(g)){const e=P(R,t),s=n(o,t)?g(r,t):void 0;e!=s&&H(w,t,s)}},I=e=>{r((()=>{N(f,(([,e],t)=>H(L,t,e))),N(w,((e,t)=>H(R,t,e)))}),f,w,L,R,e),z(f),z(w)};B(L,v),e.hasTable(o)&&u(e.getRowIds(o),(e=>{F(L,e)||v(e)})),I(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>v(s))),e.addTableListener(o,(()=>I())))},g,()=>B(l,g),d,c]},Z=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),_=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},ee=/^\d+$/,te=()=>{const e=[];let t=0;return[()=>S(e)??""+t++,t=>{ee.test(t)&&f(e)<1e3&&v(e,t)}]},se=e=>{let t;const[s,n]=te(),o=j();return[(n,r,a)=>{t??=e();const i=s();return H(o,i,[n,r,a]),X(U(r,a??[""],V),i),i},(e,s,...n)=>u(((e,t=[""])=>{const s=[],n=(e,o)=>o==f(t)?v(s,e):null===t[o]?N(e,(e=>n(e,o+1))):u([t[o],null],(t=>n(P(e,t),o+1)));return n(e,0),s})(e,s),(e=>N(e,(e=>P(o,e)[0](t,...s??[],...n))))),e=>k(P(o,e),(([,t,s])=>(U(t,s??[""],void 0,(t=>(O(t,e),J(t)?1:0))),H(o,e),n(e),s))),(e,s,n)=>k(P(o,e),(([e,,o=[]])=>{const r=(...a)=>{const i=f(a);i==f(o)?e(t,...a,...n(a)):E(o[i])?u(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},ne=Object,oe=ne.keys,re=ne.isFrozen,ae=ne.freeze,ie=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),le=(e,t)=>delete e[t],de=(e,t)=>u(ne.entries(e),(([e,s])=>t(s,e))),ce=e=>w(oe(e)),ue=e=>{const t=s(e);return M(t)||t==r&&C(e)?t:void 0},he=(e,t,s,n,o)=>E(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),ge=_((e=>{let t,s,n,o=100,r=j(),a=1;const l=j(),d=j(),[c,h,g]=se((()=>q)),L=j(),R=j(),p=[],T=[],y=(t,s)=>{a=0,e.transaction((()=>N(P(L,s),((s,n)=>N(s,((s,o)=>N(s,((s,r)=>he(e,n,o,r,s[t]))))))))),a=1},b=e=>{H(L,e),H(R,e),h(d,[e])},C=(e,t)=>u(((e,t)=>e.splice(0,t))(e,t??f(e)),b),m=()=>C(p,f(p)-o),M=e.addCellListener(null,null,null,((e,s,o,i,l,d)=>{if(a){k(t,(()=>{v(p,t),m(),C(T),t=void 0,n=1}));const e=$(r,s,j),a=$(e,o,j),c=$(a,i,(()=>[d,void 0]));c[1]=l,c[0]===l&&J(H(a,i))&&J(H(e,o))&&J(H(r,s))&&(t=I(p),n=1),Q()}})),D=(e="")=>(E(t)&&(t=""+s++,H(L,t,r),O(t,e),r=j(),n=1),t),A=()=>{w(p)||(T.unshift(D()),y(0,t),t=I(p),n=1)},x=()=>{w(T)||(v(p,t),t=S(T),y(1,t),n=1)},Q=()=>{n&&(h(l),n=0)},z=e=>{const t=D(e);return Q(),t},O=(e,t)=>(W(e)&&P(R,e)!==t&&(H(R,e,t),h(d,[e])),q),W=e=>F(L,e),q={setSize:e=>(o=e,m(),q),addCheckpoint:z,setCheckpoint:O,getStore:()=>e,getCheckpointIds:()=>[[...p],t,[...T]],forEachCheckpoint:e=>B(R,e),hasCheckpoint:W,getCheckpoint:e=>P(R,e),goBackward:()=>(A(),Q(),q),goForward:()=>(x(),Q(),q),goTo:e=>{const s=i(p,e)?A:i(T,e)?x:null;for(;!E(s)&&e!=t;)s();return Q(),q},addCheckpointIdsListener:e=>c(e,l),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(g(e),q),clear:()=>(C(p),C(T),E(t)||b(t),t=void 0,s=0,z(),q),destroy:()=>{e.delListener(M)},getListenerStats:()=>({})};return ae(q.clear())})),fe=(e,t)=>e<t?-1:1,we=e=>""+e,Le=_((e=>{const t=j(),s=j(),[n,o,r,a,i,l,u,,h,g,f]=Y(e,j,(e=>E(e)?"":e+"")),[w,L,R]=se((()=>I)),v=(t,s,n)=>{const o=i(t);N(n,((t,n)=>s(n,(s=>N(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},I={setIndexDefinition:(e,n,o,r,a,i=fe)=>{const g=E(a)?void 0:([e],[t])=>a(e,t);return h(e,n,((n,o,a,h,f,w)=>{let R=0;const v=V(),I=V(),S=l(e);if(N(o,(([e,t],s)=>{E(e)||(X(v,e),k(P(S,e),(t=>{O(t,s),J(t)&&(H(S,e),R=1)}))),E(t)||(X(v,t),F(S,t)||(H(S,t,V()),R=1),X(P(S,t),s),E(r)||X(I,t))})),n(),J(f)||(w?B(S,(e=>X(I,e))):B(a,(e=>k(P(h,e),(e=>X(I,e))))),N(I,(e=>{const t=(t,s)=>i(P(f,t),P(f,s),e),s=[...P(S,e)];d(s,t)||(H(S,e,V(c(s,t))),X(v,e))}))),(R||w)&&!E(g)){const t=[...S];d(t,g)||(u(e,j(c(t,g))),R=1)}R&&L(t,[e]),N(v,(t=>L(s,[e,t])))}),Z(o),k(r,Z)),I},delIndexDefinition:e=>(g(e),I),getStore:n,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,l(e)),hasIndex:a,hasSlice:(e,t)=>F(l(e),t),getTableId:i,getSliceIds:e=>W(l(e)),getSliceRowIds:(e,t)=>Q(P(l(e),t)),addSliceIdsListener:(e,s)=>w(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>w(n,s,[e,t]),delListener:e=>(R(e),I),destroy:f,getListenerStats:()=>({})};return ae(I)})),Re=j([["avg",[(e,t)=>g(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=>y(...e),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:y(t,e)]],["min",[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)]],["sum",[e=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ve=(e,t,s,n,o,r=!1)=>{if(J(s))return;const[a,i,l,d]=o;return r||=E(e),N(n,(([s,n])=>{r||(e=E(s)?i?.(e,n,t++):E(n)?l?.(e,s,t--):d?.(e,n,s,t),r||=E(e))})),r?a(Q(s),x(s)):e},Ie=_((e=>{const t=j(),[s,n,o,r,a,i,l,,d,c,u]=Y(e,A,(e=>isNaN(e)||E(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,g,f]=se((()=>w)),w={setMetricDefinition:(e,s,n,o,r,a,c)=>{const u=D(n)?[n,r,a,c]:P(Re,n)??P(Re,"sum");return d(e,s,((s,n,o,r,a,d)=>{const c=i(e),h=x(r);d||=E(c),s();let f=ve(c,h,r,n,u,d);C(f)||(f=void 0),f!=c&&(l(e,f),g(t,[e],f,c))}),Z(o,1)),w},delMetricDefinition:e=>(c(e),w),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(f(e),w),destroy:u,getListenerStats:()=>({})};return ae(w)})),Se=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();E(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(k(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ae(i)},pe=globalThis.window,Te=(e,t,s)=>{let n;return Se(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},pe.addEventListener("storage",n)}),(()=>{pe.removeEventListener("storage",n),n=void 0}))},ye=(e,t)=>Te(e,t,localStorage),be=(e,t)=>Te(e,t,sessionStorage),Ce=(s,n)=>{let o;return Se(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},me=e=>e.headers.get("ETag"),Ee=(e,t,s,n)=>{let o,r;return Se(e,(async()=>{const e=await fetch(t);return r=me(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=me(s);E(r)||E(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{k(o,clearInterval),o=void 0}))},ke=_((e=>{const t=e.createStore,[s,n,o,r,a,,,i,,d,c,h,g]=Y(e,(()=>!0),A),L=t(),I=t(),S=j(),p=(e,t,...s)=>u(s,(s=>X($($(S,t,j),e,V),s))),T=e=>{k(P(S,e),(e=>{B(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),u([I,L],(t=>t.delTable(e)))},y=(e,t,s)=>p(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{i(t,s),T(t);const o=[],r=[[null,[s,null,null,[],j()]]],a=[],d=[],c=[];n({select:(e,t)=>{const s=D(e)?[f(o)+"",e]:[E(t)?e:t,s=>s(e,t)];return v(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=E(s)||D(t)?null:t,o=E(n)?t:s,a=[e,[e,n,D(o)?o:e=>e(o),[],j()]];return v(r,a),{as:e=>a[0]=e}},where:(e,t,s)=>v(a,D(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,D(t)?[t,s,n,o]:P(Re,t)??[(e,t)=>t]]];return v(d,r),{as:e=>r[0]=e}},having:(e,t)=>v(c,D(e)?e:s=>s(e)===t)});const R=j(o);if(J(R))return b;const S=j(r);B(S,((e,[,t])=>k(P(S,t),(({3:t})=>E(e)?0:v(t,e)))));const C=j(d);let m=L;if(J(C)&&w(c))m=I;else{y(t,m,I);const e=j();B(C,((t,[s,n])=>X($(e,s,V),[t,n])));const s=V();B(R,(t=>F(e,t)?0:X(s,t)));const n=j(),o=(s,n,o,r)=>k(s,(([a,i,d,u])=>{B(n,((t,[s])=>{const n=$(a,t,j),i=P(n,o),l=r?void 0:s;if(i!==l){const s=V([[i,l]]),r=x(n);H(n,o,l),N(P(e,t),(([e,t])=>{const o=ve(u[e],r,n,s,t);u[e]=E(ue(o))?null:o}))}})),J(i)||!l(c,(e=>e((e=>u[e]))))?I.delRow(t,d):E(d)?s[2]=I.addRow(t,u):I.setRow(t,d,u)}));p(m,t,m.addRowListener(t,null,((r,a,i,l)=>{const d=[],c=[],u=j(),h=m.hasRow(t,i);let g=!h;N(s,(e=>{const[s,n,o]=l(t,i,e);v(d,n),v(c,o),g||=s})),B(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&H(u,e,[n])})),g&&o(U(n,d,void 0,(([,e])=>(O(e,i),J(e)))),u,i,1),h&&o(U(n,c,(()=>{const e={};return N(s,(s=>e[s]=m.getCell(t,i,s))),[j(),V(),void 0,e]}),(([,e])=>{X(e,i)})),u,i)})))}y(t,e,m);const M=(n,o,r,i)=>{const d=t=>e.getCell(o,r,t);u(i,(s=>{const[o,,r,a,i]=P(S,s),l=r?.(d,n),[c,u]=P(i,n)??[];l!=c&&(E(u)||g(t,u),H(i,n,E(l)?null:[l,...h(t,1,e.addRowListener(o,l,(()=>M(n,o,l,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...E(o)?[s,n,t]:t===s?[s,n,o]:[P(S,t)?.[0],P(P(S,t)?.[4],n)?.[0],o]);m.transaction((()=>l(a,(e=>e(o)))?B(R,((e,s)=>he(m,t,n,e,s(o,n)))):m.delRow(t,n)))})(n)},{3:A}=P(S,null);return m.transaction((()=>h(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?M(r,s,r,A):(m.delRow(t,r),N(S,(({4:e})=>k(P(e,r),(([,s])=>{g(t,s),H(e,r)})))))}))))),b},delQueryDefinition:e=>(T(e),d(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(I.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=I.getListenerStats();return n}};return de({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{u(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>I[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>I["add"+s+"Listener"](...R(e,0,t),((s,...n)=>e[t](b,...n)))})),ae(b)})),Me=_((e=>{const t=j(),s=j(),n=j(),o=j(),[r,a,i,l,d,c,,,u,h,g]=Y(e,(()=>[j(),j(),j(),j()]),(e=>E(e)?void 0:e+"")),[f,w,L]=se((()=>S)),R=(e,t,s)=>k(c(e),(([n,,o])=>{if(!F(o,t)){const r=V();if(d(e)!=I(e))X(r,t);else{let e=t;for(;!E(e)&&!F(r,e);)X(r,e),e=P(n,e)}if(s)return r;H(o,t,r)}return P(o,t)})),v=(e,t)=>k(c(e),(([,,e])=>H(e,t))),I=e=>P(t,e),S={setRelationshipDefinition:(e,r,a,i)=>(H(t,e,a),u(e,r,((t,r)=>{const a=V(),i=V(),l=V(),[d,u]=c(e);N(r,(([t,s],n)=>{E(t)||(X(i,t),k(P(u,t),(e=>{O(e,n),J(e)&&H(u,t)}))),E(s)||(X(i,s),F(u,s)||H(u,s,V()),X(P(u,s),n)),X(a,n),H(d,n,s),B(P(o,e),(t=>{F(R(e,t),n)&&X(l,t)}))})),t(),N(a,(t=>w(s,[e,t]))),N(i,(t=>w(n,[e,t]))),N(l,(t=>{v(e,t),w(o,[e,t])}))}),Z(i)),S),delRelationshipDefinition:e=>(H(t,e),h(e),S),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:l,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>P(c(e)?.[0],t),getLocalRowIds:(e,t)=>Q(P(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(c(e))?[t]:Q(R(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>f(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>f(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),f(s,o,[e,t])),delListener:e=>(v(...L(e)),S),destroy:g,getListenerStats:()=>({})};return ae(S)})),De=e=>[e,e],Ae=()=>[j(),j()],xe=(e,t,s,n=H)=>{const o=(r=W(e),a=e=>!ie(t,e),r.filter(a));var r,a;return u(oe(t),(n=>s(e,n,t[n]))),u(o,(t=>n(e,t))),e},Fe=(e,t,s)=>E(e)||!(e=>m(e,ne)&&e.constructor==ne)(e)||ce(e)||re(e)?(s?.(),!1):(de(e,((s,n)=>{t(s,n)||le(e,n)})),!ce(e)),Je=(e,t,s)=>H(e,t,P(e,t)==-s?void 0:s),Qe=()=>{let e,t,s=0;const n=j(),o=j(),a=j(),d=j(),g=j(),w=j(),L=j(),I=j(),S=j(),y=Ae(),b=Ae(),C=Ae(),m=Ae(),A=Ae(),x=Ae(),Q=Ae(),U=Ae(),Y=Ae(),Z=Ae(),[_,ee,ne,oe]=se((()=>st)),re=(t,s)=>(!e||F(w,s)||je(s))&&Fe(t,((e,t)=>ge(s,t,e)),(()=>je(s))),ge=(e,t,s,n)=>Fe(n?s:Re(s,e,t),((n,o)=>k(Le(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>je(e,t))),Le=(t,s,n,o)=>e?k(P(P(w,t),n),(e=>ue(o)!=e.type?je(t,s,n,o,e.default):o),(()=>je(t,s,n,o))):E(ue(o))?je(t,s,n,o):o,Re=(e,t,s)=>(k(P(L,t),(([n,o])=>{N(n,((t,s)=>{ie(e,s)||(e[s]=t)})),N(o,(n=>{ie(e,n)||je(t,s,n)}))})),e),ve=e=>xe(w,e,((e,t,s)=>{const n=j(),o=V();xe($(w,t,j),s,((e,t,s)=>{H(e,t,s),k(s.default,(e=>H(n,t,e)),(()=>X(o,t)))})),H(L,t,[n,o])}),((e,t)=>{H(w,t),H(L,t)})),Ie=e=>xe(S,e,((e,t,s)=>Se(t,s)),((e,t)=>me(t))),Se=(e,t)=>xe($(S,e,(()=>(Me(e,1),j()))),t,((t,s,n)=>pe(e,t,s,n)),((t,s)=>Ee(e,t,s))),pe=(e,t,s,n,o)=>xe($(t,s,(()=>(ze(e,s,1),j()))),n,((t,n,o)=>Te(e,s,t,n,o)),((n,r)=>ke(e,t,s,n,r,o))),Te=(e,t,s,n,o)=>{F(s,n)||Ne(e,t,n,1);const r=P(s,n);o!==r&&(Oe(e,t,n,r,o),H(s,n,o))},ye=(e,t,s,n,o)=>k(P(t,s),(t=>Te(e,s,t,n,o)),(()=>pe(e,t,s,Re({[n]:o},e,s)))),be=e=>{const[t]=$(I,e,te),s=t();return F(P(S,e),s)?be(e):s},Ce=e=>P(S,e)??Se(e,{}),me=e=>Se(e,{}),Ee=(e,t,s)=>{const[,n]=$(I,e,te);n(s),pe(e,t,s,{},!0)},ke=(e,t,s,n,o,r)=>{const a=P(P(L,e)?.[0],o);if(!E(a)&&!r)return Te(e,s,n,o,a);const i=t=>{Oe(e,s,t,P(n,t)),Ne(e,s,t,-1),H(n,t)};E(a)?i(o):B(n,i),J(n)&&(ze(e,s,-1),J(H(t,s))&&(Me(e,-1),H(S,e)))},Me=(e,t)=>Je(n,e,t),ze=(e,t,s)=>Je($(o,e,j),t,s),Ne=(e,t,s,n)=>Je($($(a,e,j),t,j),s,n),Oe=(e,t,s,n,o)=>$($($(d,e,j),t,j),s,(()=>[n,0]))[1]=o,je=(e,t,s,n,o)=>(v($($($(g,e,j),t,j),s,(()=>[])),n),o),We=(e,t,s)=>k(P(P(P(d,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...De(Xe(e,t,s))])),Pe=e=>J(g)||J(Y[e])?0:N(e?G(g,K):g,((t,s)=>N(t,((t,n)=>N(t,((t,o)=>ee(Y[e],[s,n,o],t))))))),Be=(e,t,s)=>{if(!J(t))return ee(e,s),1},He=e=>{const t=J(A[e]),s=J(Q[e])&&J(m[e])&&t&&J(b[e]),r=J(U[e])&&J(x[e])&&J(C[e])&&J(y[e]);if(!s||!r){const i=e?[G(n),K(o),G(a,K),G(d,K)]:[n,o,a,d];if(!s){N(i[2],((t,s)=>N(t,((t,n)=>Be(Q[e],t,[s,n])))));const s=V();N(i[1],((n,o)=>{Be(m[e],n,[o])&&!t&&(ee(A[e],[o,null]),X(s,o))})),t||N(i[3],((t,n)=>{if(!F(s,n)){const s=V();N(t,(e=>N(e,(([t,n],o)=>n!==t?X(s,o):O(e,o))))),N(s,(t=>ee(A[e],[n,t])))}})),Be(b[e],i[0])}if(!r){let t;N(i[3],((s,n)=>{let o;N(s,((s,r)=>{let a;N(s,(([s,i],l)=>{i!==s&&(ee(U[e],[n,r,l],i,s,We),t=o=a=1)})),a&&ee(x[e],[n,r],We)})),o&&ee(C[e],[n],We)})),t&&ee(y[e],void 0,We)}}},$e=(e,...t)=>(_e((()=>e(...h(t,we)))),st),qe=()=>q(S,(e=>q(e,q))),Ge=()=>W(S),Ke=e=>W(P(S,we(e))),Ue=(e,t,s,n=0,o)=>{const r=[];return B(P(S,we(e)),((e,s)=>v(r,[E(t)?e:P(s,we(t)),e]))),h(R(c(r,(([e],[t])=>fe(e,t)*(s?-1:1))),n,E(o)?o:n+o),(([,e])=>e))},Ve=(e,t)=>W(P(P(S,we(e)),we(t))),Xe=(e,t,s)=>P(P(P(S,we(e)),we(t)),we(s)),Ye=e=>$e((()=>(e=>Fe(e,re,je))(e)?Ie(e):0)),Ze=()=>$e((()=>Ie({}))),_e=(e,t)=>{if(-1==s)return;et();const n=e?.();return tt(t),n},et=()=>(s++,st),tt=e=>(s>0&&(s--,0==s&&(t=!J(d),s=1,Pe(1),t&&He(1),s=-1,e?.(q(d,(e=>q(e,(e=>q(e,(e=>[...e]),(([e,t])=>e===t))),ce)),ce),q(g,(e=>q(e,q))))&&(s=1,N(d,((e,t)=>N(e,((e,s)=>N(e,(([e],n)=>he(st,t,s,n,e))))))),s=-1,t=!1),ee(Z[0],void 0,t),Pe(0),t&&He(0),ee(Z[1],void 0,t),s=0,u([d,g,n,o,a],z))),st),st={getTables:qe,getTableIds:Ge,getTable:e=>q(P(S,we(e)),q),getRowIds:Ke,getSortedRowIds:Ue,getRow:(e,t)=>q(P(P(S,we(e)),we(t))),getCellIds:Ve,getCell:Xe,hasTables:()=>!J(S),hasTable:e=>F(S,we(e)),hasRow:(e,t)=>F(P(S,we(e)),we(t)),hasCell:(e,t,s)=>F(P(P(S,we(e)),we(t)),we(s)),getJson:()=>p(S),getSchemaJson:()=>p(w),setTables:Ye,setTable:(e,t)=>$e((e=>re(t,e)?Se(e,t):0),e),setRow:(e,t,s)=>$e(((e,t)=>ge(we(e),we(t),s)?pe(we(e),Ce(we(e)),we(t),s):0),e,t),addRow:(e,t)=>_e((()=>{let s;return ge(e,s,t)&&(e=we(e),pe(e,Ce(e),s=be(e),t)),s})),setPartialRow:(e,t,s)=>$e(((e,t)=>{if(ge(e,t,s,1)){const n=Ce(e);de(s,((s,o)=>ye(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>$e(((e,t,s)=>k(Le(e,t,s,D(n)?n(Xe(e,t,s)):n),(n=>ye(e,Ce(e),t,s,n)))),e,t,s),setJson:e=>{try{"{}"===e?Ze():Ye(T(e))}catch{}return st},setSchema:t=>$e((()=>{if((e=(e=>Fe(e,(e=>Fe(e,(e=>{if(!Fe(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!M(t)&&t!=r||(ue(e.default)!=t&&le(e,"default"),0))})))))(t))&&(ve(t),!J(S))){const e=qe();Ze(),Ye(e)}})),delTables:Ze,delTable:e=>$e((e=>F(S,e)?me(e):0),e),delRow:(e,t)=>$e(((e,t)=>k(P(S,e),(s=>F(s,t)?Ee(e,s,t):0))),e,t),delCell:(e,t,s,n)=>$e(((e,t,s)=>k(P(S,e),(o=>k(P(o,t),(r=>F(r,s)?ke(e,o,t,r,s,n):0))))),e,t,s),delSchema:()=>$e((()=>{ve({}),e=!1})),transaction:_e,startTransaction:et,finishTransaction:tt,forEachTable:e=>N(S,((t,s)=>e(s,(e=>N(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>N(P(S,we(e)),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(P(P(S,we(e)),we(t)),s),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=Ue(e,t,s,n,o);return _((()=>{const a=Ue(e,t,s,n,o);var d,c;c=i,f(d=a)===f(c)&&l(d,((e,t)=>c[t]===e))||(i=a,r(st,e,t,s,n,o,i))}),A[a?1:0],[e,t])},addWillFinishTransactionListener:e=>_(e,Z[0]),addDidFinishTransactionListener:e=>_(e,Z[1]),callListener:e=>(oe(e,[Ge,Ke,Ve],(e=>E(e[2])?[]:De(Xe(...e)))),st),delListener:e=>(ne(e),st),getListenerStats:()=>({}),createStore:Qe};return de({Tables:[0,y],TableIds:[0,b],Table:[1,C],RowIds:[1,m],Row:[2,x],CellIds:[2,Q],Cell:[3,U],InvalidCell:[3,Y]},(([e,t],s)=>{st["add"+s+"Listener"]=(...s)=>_(s[e],t[s[e+1]?1:0],e>0?R(s,0,e):void 0)})),ae(st)};export{ge as createCheckpoints,Se as createCustomPersister,Ce as createFilePersister,Le as createIndexes,ye as createLocalPersister,Ie as createMetrics,ke as createQueries,Me as createRelationships,Ee as createRemotePersister,be as createSessionPersister,Qe as createStore,fe as defaultSorter,we as id};
Binary file
package/lib/ui-react.d.ts CHANGED
@@ -14,6 +14,7 @@
14
14
  * @see Building UIs With Metrics guide
15
15
  * @see Building UIs With Indexes guide
16
16
  * @see Building UIs With Relationships guide
17
+ * @see Building UIs With Queries guide
17
18
  * @see Building UIs With Checkpoints guide
18
19
  * @see Countries demo
19
20
  * @see Todo App demos
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t="",n=(e,t)=>e.includes(t),o=(e,t)=>e.forEach(t),s=e=>e.length,r=e=>0==s(e),i=(e,...t)=>e.push(...t),l=e=>e.pop(),c=e=>null==e,d=(e,t,n)=>c(e)?n?.():t(e),a=(e,t)=>e?.has(t)??!1,u=e=>c(e)||0==(e=>e.size)(e),p=(e,t)=>e?.forEach(t),h=(e,t)=>e?.delete(t),f=e=>new Map(e),C=(e,t)=>e?.get(t),g=(e,t,n)=>c(n)?(h(e,t),e):e?.set(t,n),k=(e,t,n)=>(a(e,t)||g(e,t,n()),C(e,t)),v=(e,t,n,o,r=0)=>d((n?k:C)(e,t[r],r>s(t)-2?n:f),(i=>{if(r>s(t)-2)return o?.(i)&&g(e,t[r]),i;const l=v(i,t,n,o,r+1);return u(i)&&g(e,t[r]),l})),y=e=>new Set(e),L=e=>{let n,r=0;const a=[],k=f();return[(o,s,i)=>{n??=e();const c=l(a)??t+r++;var d,u;return g(k,c,[o,s,i]),d=v(s,i??[t],y),u=c,d?.add(u),c},(e,r,...l)=>o(((e,n=[t])=>{const r=[],l=(e,t)=>t==s(n)?i(r,e):null===n[t]?p(e,(e=>l(e,t+1))):o([n[t],null],(n=>l(C(e,n),t+1)));return l(e,0),r})(e,r),(e=>p(e,(e=>C(k,e)[0](n,...r??[],...l))))),e=>d(C(k,e),(([,n,o])=>(v(n,o??[t],void 0,(t=>(h(t,e),u(t)?1:0))),g(k,e),s(a)<1e3&&i(a,e),o))),(e,t,r)=>d(C(k,e),(([e,,i=[]])=>{const l=(...d)=>{const a=s(d);a==s(i)?e(n,...d,...r(d)):c(i[a])?o(t[a](...d),(e=>l(...d,e))):l(...d,i[a])};l()}))]},b=Object.freeze,w=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{let h,v,y,w=100,S=f(),T=1;const j=f(),x=f(),[z,E,M]=L((()=>Q)),m=f(),B=f(),I=[],O=[],_=(t,n)=>{T=0,e.transaction((()=>p(C(m,n),((n,o)=>p(n,((n,s)=>p(n,((n,r)=>((e,t,n,o,s)=>c(s)?e.delCell(t,n,o,!0):e.setCell(t,n,o,s))(e,o,s,r,n[t]))))))))),T=1},F=e=>{g(m,e),g(B,e),E(x,[e])},P=(e,t)=>o(((e,t)=>e.splice(0,t))(e,t??s(e)),F),W=()=>P(I,s(I)-w),q=e.addCellListener(null,null,null,((e,t,n,o,s,r)=>{if(T){d(h,(()=>{i(I,h),W(),P(O),h=void 0,y=1}));const e=k(S,t,f),c=k(e,n,f),a=k(c,o,(()=>[r,void 0]));a[1]=s,a[0]===s&&u(g(c,o))&&u(g(e,n))&&u(g(S,t))&&(h=l(I),y=1),H()}})),A=(e="")=>(c(h)&&(h=t+v++,g(m,h,S),K(h,e),S=f(),y=1),h),D=()=>{r(I)||(O.unshift(A()),_(0,h),h=l(I),y=1)},G=()=>{r(O)||(i(I,h),h=O.shift(),_(1,h),y=1)},H=()=>{y&&(E(j),y=0)},J=e=>{const t=A(e);return H(),t},K=(e,t)=>(N(e)&&C(B,e)!==t&&(g(B,e,t),E(x,[e])),Q),N=e=>a(m,e),Q={setSize:e=>(w=e,W(),Q),addCheckpoint:J,setCheckpoint:K,getStore:()=>e,getCheckpointIds:()=>[[...I],h,[...O]],forEachCheckpoint:e=>{return t=e,p(B,((e,n)=>t(n,e)));var t},hasCheckpoint:N,getCheckpoint:e=>C(B,e),goBackward:()=>(D(),H(),Q),goForward:()=>(G(),H(),Q),goTo:e=>{const t=n(I,e)?D:n(O,e)?G:null;for(;!c(t)&&e!=h;)t();return H(),Q},addCheckpointIdsListener:e=>z(e,j),addCheckpointListener:(e,t)=>z(t,x,[e]),delListener:e=>(M(e),Q),clear:()=>(P(I),P(O),c(h)||F(h),h=void 0,v=0,J(),Q),destroy:()=>{e.delListener(q)},getListenerStats:()=>({})};return b(Q.clear())}));e.createCheckpoints=w,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
1
+ var e,t;e=this,t=function(e){"use strict";const t="",n=(e,t)=>e.includes(t),o=(e,t)=>e.forEach(t),s=e=>e.length,r=e=>0==s(e),i=(e,...t)=>e.push(...t),l=e=>e.pop(),c=e=>e.shift(),d=e=>null==e,a=(e,t,n)=>d(e)?n?.():t(e),u=(e,t)=>e?.has(t)??!1,p=e=>d(e)||0==(e=>e.size)(e),h=(e,t)=>e?.forEach(t),f=(e,t)=>e?.delete(t),C=e=>new Map(e),g=(e,t)=>e?.get(t),k=(e,t,n)=>d(n)?(f(e,t),e):e?.set(t,n),v=(e,t,n)=>(u(e,t)||k(e,t,n()),g(e,t)),y=(e,t,n,o,r=0)=>a((n?v:g)(e,t[r],r>s(t)-2?n:C),(i=>{if(r>s(t)-2)return o?.(i)&&k(e,t[r]),i;const l=y(i,t,n,o,r+1);return p(i)&&k(e,t[r]),l})),L=e=>new Set(e),b=/^\d+$/,w=e=>{let n;const[r,l]=(()=>{const e=[];let n=0;return[()=>c(e)??t+n++,t=>{b.test(t)&&s(e)<1e3&&i(e,t)}]})(),u=C();return[(o,s,i)=>{n??=e();const l=r();var c,d;return k(u,l,[o,s,i]),c=y(s,i??[t],L),d=l,c?.add(d),l},(e,r,...l)=>o(((e,n=[t])=>{const r=[],l=(e,t)=>t==s(n)?i(r,e):null===n[t]?h(e,(e=>l(e,t+1))):o([n[t],null],(n=>l(g(e,n),t+1)));return l(e,0),r})(e,r),(e=>h(e,(e=>g(u,e)[0](n,...r??[],...l))))),e=>a(g(u,e),(([,n,o])=>(y(n,o??[t],void 0,(t=>(f(t,e),p(t)?1:0))),k(u,e),l(e),o))),(e,t,r)=>a(g(u,e),(([e,,i=[]])=>{const l=(...c)=>{const a=s(c);a==s(i)?e(n,...c,...r(c)):d(i[a])?o(t[a](...c),(e=>l(...c,e))):l(...c,i[a])};l()}))]},S=Object.freeze,T=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{let f,y,L,b=100,T=C(),j=1;const x=C(),z=C(),[E,M,m]=w((()=>Q)),B=C(),I=C(),O=[],_=[],F=(t,n)=>{j=0,e.transaction((()=>h(g(B,n),((n,o)=>h(n,((n,s)=>h(n,((n,r)=>((e,t,n,o,s)=>d(s)?e.delCell(t,n,o,!0):e.setCell(t,n,o,s))(e,o,s,r,n[t]))))))))),j=1},P=e=>{k(B,e),k(I,e),M(z,[e])},W=(e,t)=>o(((e,t)=>e.splice(0,t))(e,t??s(e)),P),$=()=>W(O,s(O)-b),q=e.addCellListener(null,null,null,((e,t,n,o,s,r)=>{if(j){a(f,(()=>{i(O,f),$(),W(_),f=void 0,L=1}));const e=v(T,t,C),c=v(e,n,C),d=v(c,o,(()=>[r,void 0]));d[1]=s,d[0]===s&&p(k(c,o))&&p(k(e,n))&&p(k(T,t))&&(f=l(O),L=1),H()}})),A=(e="")=>(d(f)&&(f=t+y++,k(B,f,T),K(f,e),T=C(),L=1),f),D=()=>{r(O)||(_.unshift(A()),F(0,f),f=l(O),L=1)},G=()=>{r(_)||(i(O,f),f=c(_),F(1,f),L=1)},H=()=>{L&&(M(x),L=0)},J=e=>{const t=A(e);return H(),t},K=(e,t)=>(N(e)&&g(I,e)!==t&&(k(I,e,t),M(z,[e])),Q),N=e=>u(B,e),Q={setSize:e=>(b=e,$(),Q),addCheckpoint:J,setCheckpoint:K,getStore:()=>e,getCheckpointIds:()=>[[...O],f,[..._]],forEachCheckpoint:e=>{return t=e,h(I,((e,n)=>t(n,e)));var t},hasCheckpoint:N,getCheckpoint:e=>g(I,e),goBackward:()=>(D(),H(),Q),goForward:()=>(G(),H(),Q),goTo:e=>{const t=n(O,e)?D:n(_,e)?G:null;for(;!d(t)&&e!=f;)t();return H(),Q},addCheckpointIdsListener:e=>E(e,x),addCheckpointListener:(e,t)=>E(t,z,[e]),delListener:e=>(m(e),Q),clear:()=>(W(O),W(_),d(f)||P(f),f=void 0,y=0,J(),Q),destroy:()=>{e.delListener(q)},getListenerStats:()=>({})};return S(Q.clear())}));e.createCheckpoints=T,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),o=(e,t)=>((e,t)=>e.every(t))(e,((n,s)=>0==s||t(e[s-1],n)<=0)),r=(e,t)=>e.sort(t),d=(e,t)=>e.forEach(t),i=e=>e.length,l=(e,...t)=>e.push(...t),c=e=>null==e,a=(e,t,n)=>c(e)?n?.():t(e),f=(e,t)=>e?.has(t)??!1,u=e=>c(e)||0==(e=>e.size)(e),h=e=>[...e?.values()??[]],p=e=>e.clear(),I=(e,t)=>e?.forEach(t),g=(e,t)=>e?.delete(t),x=e=>new Map(e),y=e=>[...e?.keys()??[]],S=(e,t)=>e?.get(t),b=(e,t)=>I(e,((e,n)=>t(n,e))),v=(e,t,n)=>c(n)?(g(e,t),e):e?.set(t,n),w=(e,t,n)=>(f(e,t)||v(e,t,n()),S(e,t)),L=(e,t,n,s,o=0)=>a((n?w:S)(e,t[o],o>i(t)-2?n:x),(r=>{if(o>i(t)-2)return s?.(r)&&v(e,t[o]),r;const d=L(r,t,n,s,o+1);return u(r)&&v(e,t[o]),d})),T=e=>new Set(e),E=(e,t)=>e?.add(t),R=(e,t,n)=>{const s=e.hasRow,o=x(),r=x(),l=x(),L=x(),R=x(),j=(t,n,...s)=>{const o=w(R,t,T);return d(s,(t=>E(o,t)&&n&&e.callListener(t))),s},M=(t,...n)=>a(S(R,t),(s=>{d(0==i(n)?h(s):n,(t=>{e.delListener(t),g(s,t)})),u(s)&&v(R,t)})),k=(e,n)=>{v(o,e,n),f(r,e)||(v(r,e,t()),v(l,e,x()),v(L,e,x()))},m=e=>{v(o,e),v(r,e),v(l,e),v(L,e),M(e)};return[()=>e,()=>y(o),e=>b(r,e),e=>f(r,e),e=>S(o,e),e=>S(r,e),(e,t)=>v(r,e,t),k,(t,o,r,i,a)=>{k(t,o);const u=x(),h=x(),g=S(l,t),y=S(L,t),w=t=>{const r=n=>e.getCell(o,t,n),d=S(g,t),l=s(o,t)?n(i(r,t)):void 0;if(d!=l&&v(u,t,[d,l]),!c(a)){const e=S(y,t),n=s(o,t)?a(r,t):void 0;e!=n&&v(h,t,n)}},T=e=>{r((()=>{I(u,(([,e],t)=>v(g,t,e))),I(h,((e,t)=>v(y,t,e)))}),u,h,g,y,e),p(u),p(h)};b(g,w),e.hasTable(o)&&d(e.getRowIds(o),(e=>{f(g,e)||w(e)})),T(!0),M(t),j(t,0,e.addRowListener(o,null,((e,t,n)=>w(n))),e.addTableListener(o,(()=>T())))},m,()=>b(R,m),j,M]},j=(e,o)=>t(e)==s?t=>t(e):e??(()=>o??n),M=(e,t)=>e<t?-1:1,k=e=>{let t,s=0;const o=[],r=x();return[(d,i,l)=>{t??=e();const c=o.pop()??n+s++;return v(r,c,[d,i,l]),E(L(i,l??[n],T),c),c},(e,s,...o)=>d(((e,t=[n])=>{const s=[],o=(e,n)=>n==i(t)?l(s,e):null===t[n]?I(e,(e=>o(e,n+1))):d([t[n],null],(t=>o(S(e,t),n+1)));return o(e,0),s})(e,s),(e=>I(e,(e=>S(r,e)[0](t,...s??[],...o))))),e=>a(S(r,e),(([,t,s])=>(L(t,s??[n],void 0,(t=>(g(t,e),u(t)?1:0))),v(r,e),i(o)<1e3&&l(o,e),s))),(e,n,s)=>a(S(r,e),(([e,,o=[]])=>{const r=(...l)=>{const a=i(l);a==i(o)?e(t,...l,...s(l)):c(o[a])?d(n[a](...l),(e=>r(...l,e))):r(...l,o[a])};r()}))]},m=Object.freeze,z=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=x(),s=x(),[d,i,l,p,w,L,z,,C,D,O]=R(e,x,(e=>c(e)?n:e+n)),[_,B,P]=k((()=>q)),W=(t,n,s)=>{const o=w(t);I(s,((t,s)=>n(s,(n=>I(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},q={setIndexDefinition:(e,n,d,i,l,h=M)=>{const p=c(l)?void 0:([e],[t])=>l(e,t);return C(e,n,((n,d,l,y,w,R)=>{let j=0;const M=T(),k=T(),m=L(e);if(I(d,(([e,t],n)=>{c(e)||(E(M,e),a(S(m,e),(t=>{g(t,n),u(t)&&(v(m,e),j=1)}))),c(t)||(E(M,t),f(m,t)||(v(m,t,T()),j=1),E(S(m,t),n),c(i)||E(k,t))})),n(),u(w)||(R?b(m,(e=>E(k,e))):b(l,(e=>a(S(y,e),(e=>E(k,e))))),I(k,(e=>{const t=(t,n)=>h(S(w,t),S(w,n),e),n=[...S(m,e)];o(n,t)||(v(m,e,T(r(n,t))),E(M,e))}))),(j||R)&&!c(p)){const t=[...m];o(t,p)||(z(e,x(r(t,p))),j=1)}j&&B(t,[e]),I(M,(t=>B(s,[e,t])))}),j(d),a(i,j)),q},delIndexDefinition:e=>(D(e),q),getStore:d,getIndexIds:i,forEachIndex:e=>l(((t,n)=>e(t,(e=>W(t,e,n))))),forEachSlice:(e,t)=>W(e,t,L(e)),hasIndex:p,hasSlice:(e,t)=>f(L(e),t),getTableId:w,getSliceIds:e=>y(L(e)),getSliceRowIds:(e,t)=>h(S(L(e),t)),addSliceIdsListener:(e,n)=>_(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>_(n,s,[e,t]),delListener:e=>(P(e),q),destroy:O,getListenerStats:()=>({})};return m(q)}));e.createIndexes=z,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),o=(e,t)=>((e,t)=>e.every(t))(e,((n,s)=>0==s||t(e[s-1],n)<=0)),r=(e,t)=>e.sort(t),d=(e,t)=>e.forEach(t),i=e=>e.length,l=(e,...t)=>e.push(...t),c=e=>null==e,a=(e,t,n)=>c(e)?n?.():t(e),f=(e,t)=>e?.has(t)??!1,u=e=>c(e)||0==(e=>e.size)(e),h=e=>[...e?.values()??[]],I=e=>e.clear(),g=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),x=e=>new Map(e),y=e=>[...e?.keys()??[]],S=(e,t)=>e?.get(t),b=(e,t)=>g(e,((e,n)=>t(n,e))),v=(e,t,n)=>c(n)?(p(e,t),e):e?.set(t,n),w=(e,t,n)=>(f(e,t)||v(e,t,n()),S(e,t)),L=(e,t,n,s,o=0)=>a((n?w:S)(e,t[o],o>i(t)-2?n:x),(r=>{if(o>i(t)-2)return s?.(r)&&v(e,t[o]),r;const d=L(r,t,n,s,o+1);return u(r)&&v(e,t[o]),d})),T=e=>new Set(e),E=(e,t)=>e?.add(t),R=(e,t,n)=>{const s=e.hasRow,o=x(),r=x(),l=x(),L=x(),R=x(),j=(t,n,...s)=>{const o=w(R,t,T);return d(s,(t=>E(o,t)&&n&&e.callListener(t))),s},M=(t,...n)=>a(S(R,t),(s=>{d(0==i(n)?h(s):n,(t=>{e.delListener(t),p(s,t)})),u(s)&&v(R,t)})),k=(e,n)=>{v(o,e,n),f(r,e)||(v(r,e,t()),v(l,e,x()),v(L,e,x()))},m=e=>{v(o,e),v(r,e),v(l,e),v(L,e),M(e)};return[()=>e,()=>y(o),e=>b(r,e),e=>f(r,e),e=>S(o,e),e=>S(r,e),(e,t)=>v(r,e,t),k,(t,o,r,i,a)=>{k(t,o);const u=x(),h=x(),p=S(l,t),y=S(L,t),w=t=>{const r=n=>e.getCell(o,t,n),d=S(p,t),l=s(o,t)?n(i(r,t)):void 0;if(d!=l&&v(u,t,[d,l]),!c(a)){const e=S(y,t),n=s(o,t)?a(r,t):void 0;e!=n&&v(h,t,n)}},T=e=>{r((()=>{g(u,(([,e],t)=>v(p,t,e))),g(h,((e,t)=>v(y,t,e)))}),u,h,p,y,e),I(u),I(h)};b(p,w),e.hasTable(o)&&d(e.getRowIds(o),(e=>{f(p,e)||w(e)})),T(!0),M(t),j(t,0,e.addRowListener(o,null,((e,t,n)=>w(n))),e.addTableListener(o,(()=>T())))},m,()=>b(R,m),j,M]},j=(e,o)=>t(e)==s?t=>t(e):e??(()=>o??n),M=(e,t)=>e<t?-1:1,k=/^\d+$/,m=e=>{let t;const[s,o]=(()=>{const e=[];let t=0;return[()=>e.shift()??n+t++,t=>{k.test(t)&&i(e)<1e3&&l(e,t)}]})(),r=x();return[(o,d,i)=>{t??=e();const l=s();return v(r,l,[o,d,i]),E(L(d,i??[n],T),l),l},(e,s,...o)=>d(((e,t=[n])=>{const s=[],o=(e,n)=>n==i(t)?l(s,e):null===t[n]?g(e,(e=>o(e,n+1))):d([t[n],null],(t=>o(S(e,t),n+1)));return o(e,0),s})(e,s),(e=>g(e,(e=>S(r,e)[0](t,...s??[],...o))))),e=>a(S(r,e),(([,t,s])=>(L(t,s??[n],void 0,(t=>(p(t,e),u(t)?1:0))),v(r,e),o(e),s))),(e,n,s)=>a(S(r,e),(([e,,o=[]])=>{const r=(...l)=>{const a=i(l);a==i(o)?e(t,...l,...s(l)):c(o[a])?d(n[a](...l),(e=>r(...l,e))):r(...l,o[a])};r()}))]},z=Object.freeze,C=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=x(),s=x(),[d,i,l,I,w,L,k,,C,D,O]=R(e,x,(e=>c(e)?n:e+n)),[_,B,P]=m((()=>$)),W=(t,n,s)=>{const o=w(t);g(s,((t,s)=>n(s,(n=>g(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},$={setIndexDefinition:(e,n,d,i,l,h=M)=>{const I=c(l)?void 0:([e],[t])=>l(e,t);return C(e,n,((n,d,l,y,w,R)=>{let j=0;const M=T(),m=T(),z=L(e);if(g(d,(([e,t],n)=>{c(e)||(E(M,e),a(S(z,e),(t=>{p(t,n),u(t)&&(v(z,e),j=1)}))),c(t)||(E(M,t),f(z,t)||(v(z,t,T()),j=1),E(S(z,t),n),c(i)||E(m,t))})),n(),u(w)||(R?b(z,(e=>E(m,e))):b(l,(e=>a(S(y,e),(e=>E(m,e))))),g(m,(e=>{const t=(t,n)=>h(S(w,t),S(w,n),e),n=[...S(z,e)];o(n,t)||(v(z,e,T(r(n,t))),E(M,e))}))),(j||R)&&!c(I)){const t=[...z];o(t,I)||(k(e,x(r(t,I))),j=1)}j&&B(t,[e]),g(M,(t=>B(s,[e,t])))}),j(d),a(i,j)),$},delIndexDefinition:e=>(D(e),$),getStore:d,getIndexIds:i,forEachIndex:e=>l(((t,n)=>e(t,(e=>W(t,e,n))))),forEachSlice:(e,t)=>W(e,t,L(e)),hasIndex:I,hasSlice:(e,t)=>f(L(e),t),getTableId:w,getSliceIds:e=>y(L(e)),getSliceRowIds:(e,t)=>h(S(L(e),t)),addSliceIdsListener:(e,n)=>_(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>_(n,s,[e,t]),delListener:e=>(P(e),$),destroy:O,getListenerStats:()=>({})};return z($)}));e.createIndexes=C,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),r=t(t),i=(e,t)=>e.forEach(t),o=e=>d(e,((e,t)=>e+t),0),c=e=>e.length,d=(e,t,n)=>e.reduce(t,n),a=(e,...t)=>e.push(...t),l=Math.max,u=Math.min,f=isFinite,h=e=>null==e,p=(e,t,n)=>h(e)?n?.():t(e),M=()=>{},g=e=>e.size,v=(e,t)=>e?.has(t)??!1,y=e=>h(e)||0==g(e),b=e=>[...e?.values()??[]],m=e=>e.clear(),L=(e,t)=>e?.forEach(t),w=(e,t)=>e?.delete(t),T=e=>new Map(e),x=(e,t)=>e?.get(t),j=(e,t)=>L(e,((e,n)=>t(n,e))),E=(e,t,n)=>h(n)?(w(e,t),e):e?.set(t,n),I=(e,t,n)=>(v(e,t)||E(e,t,n()),x(e,t)),R=(e,t,n,s,r=0)=>p((n?I:x)(e,t[r],r>c(t)-2?n:T),(i=>{if(r>c(t)-2)return s?.(i)&&E(e,t[r]),i;const o=R(i,t,n,s,r+1);return y(i)&&E(e,t[r]),o})),S=T([["avg",[(e,t)=>o(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=>l(...e),(e,t)=>l(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:l(t,e)]],["min",[e=>u(...e),(e,t)=>u(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:u(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),k=e=>new Set(e),z=(e,t)=>e?.add(t),D=(e,t,n)=>{const s=e.hasRow,r=T(),o=T(),d=T(),a=T(),l=T(),u=(t,n,...s)=>{const r=I(l,t,k);return i(s,(t=>z(r,t)&&n&&e.callListener(t))),s},f=(t,...n)=>p(x(l,t),(s=>{i(0==c(n)?b(s):n,(t=>{e.delListener(t),w(s,t)})),y(s)&&E(l,t)})),M=(e,n)=>{E(r,e,n),v(o,e)||(E(o,e,t()),E(d,e,T()),E(a,e,T()))},g=e=>{E(r,e),E(o,e),E(d,e),E(a,e),f(e)};return[()=>e,()=>[...r?.keys()??[]],e=>j(o,e),e=>v(o,e),e=>x(r,e),e=>x(o,e),(e,t)=>E(o,e,t),M,(t,r,o,c,l)=>{M(t,r);const p=T(),g=T(),y=x(d,t),b=x(a,t),w=t=>{const i=n=>e.getCell(r,t,n),o=x(y,t),d=s(r,t)?n(c(i,t)):void 0;if(o!=d&&E(p,t,[o,d]),!h(l)){const e=x(b,t),n=s(r,t)?l(i,t):void 0;e!=n&&E(g,t,n)}},I=e=>{o((()=>{L(p,(([,e],t)=>E(y,t,e))),L(g,((e,t)=>E(b,t,e)))}),p,g,y,b,e),m(p),m(g)};j(y,w),e.hasTable(r)&&i(e.getRowIds(r),(e=>{v(y,e)||w(e)})),I(!0),f(t),u(t,0,e.addRowListener(r,null,((e,t,n)=>w(n))),e.addTableListener(r,(()=>I())))},g,()=>j(l,g),u,f]},N=(e,r)=>t(e)==s?t=>t(e):e??(()=>r??n),O=e=>{let t,s=0;const r=[],o=T();return[(i,c,d)=>{t??=e();const a=r.pop()??n+s++;return E(o,a,[i,c,d]),z(R(c,d??[n],k),a),a},(e,s,...r)=>i(((e,t=[n])=>{const s=[],r=(e,n)=>n==c(t)?a(s,e):null===t[n]?L(e,(e=>r(e,n+1))):i([t[n],null],(t=>r(x(e,t),n+1)));return r(e,0),s})(e,s),(e=>L(e,(e=>x(o,e)[0](t,...s??[],...r))))),e=>p(x(o,e),(([,t,s])=>(R(t,s??[n],void 0,(t=>(w(t,e),y(t)?1:0))),E(o,e),c(r)<1e3&&a(r,e),s))),(e,n,s)=>p(x(o,e),(([e,,r=[]])=>{const o=(...d)=>{const a=c(d);a==c(r)?e(t,...d,...s(d)):h(r[a])?i(n[a](...d),(e=>o(...d,e))):o(...d,r[a])};o()}))]},_=Object.freeze,B=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const s=T(),[i,o,c,d,a,l,u,,p,v,m]=D(e,M,(e=>isNaN(e)||h(e)||!0===e||!1===e||e===n?void 0:1*e)),[w,j,E]=O((()=>I)),I={setMetricDefinition:(e,n,i,o,c,d,a)=>{const M=t(i)==r?[i,c,d,a]:x(S,i)??x(S,"sum");return p(e,n,((t,n,r,i,o,c)=>{const d=l(e),a=g(i);c||=h(d),t();let p=((e,t,n,s,r,i=!1)=>{if(y(n))return;const[o,c,d,a]=r;return i||=h(e),L(s,(([n,s])=>{i||(e=h(n)?c?.(e,s,t++):h(s)?d?.(e,n,t--):a?.(e,s,n,t),i||=h(e))})),i?o(b(n),g(n)):e})(d,a,i,n,M,c);f(p)||(p=void 0),p!=d&&(u(e,p),j(s,[e],p,d))}),N(o,1)),I},delMetricDefinition:e=>(v(e),I),getStore:i,getMetricIds:o,forEachMetric:c,hasMetric:d,getTableId:a,getMetric:l,addMetricListener:(e,t)=>w(t,s,[e]),delListener:e=>(E(e),I),destroy:m,getListenerStats:()=>({})};return _(I)}));e.createMetrics=B,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),r=t(t),i=(e,t)=>e.forEach(t),o=e=>d(e,((e,t)=>e+t),0),c=e=>e.length,d=(e,t,n)=>e.reduce(t,n),a=(e,...t)=>e.push(...t),l=Math.max,u=Math.min,f=isFinite,h=e=>null==e,M=(e,t,n)=>h(e)?n?.():t(e),g=()=>{},v=e=>e.size,p=(e,t)=>e?.has(t)??!1,y=e=>h(e)||0==v(e),b=e=>[...e?.values()??[]],m=e=>e.clear(),L=(e,t)=>e?.forEach(t),w=(e,t)=>e?.delete(t),T=e=>new Map(e),x=(e,t)=>e?.get(t),j=(e,t)=>L(e,((e,n)=>t(n,e))),E=(e,t,n)=>h(n)?(w(e,t),e):e?.set(t,n),I=(e,t,n)=>(p(e,t)||E(e,t,n()),x(e,t)),R=(e,t,n,s,r=0)=>M((n?I:x)(e,t[r],r>c(t)-2?n:T),(i=>{if(r>c(t)-2)return s?.(i)&&E(e,t[r]),i;const o=R(i,t,n,s,r+1);return y(i)&&E(e,t[r]),o})),S=T([["avg",[(e,t)=>o(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=>l(...e),(e,t)=>l(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:l(t,e)]],["min",[e=>u(...e),(e,t)=>u(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:u(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),k=e=>new Set(e),z=(e,t)=>e?.add(t),D=(e,t,n)=>{const s=e.hasRow,r=T(),o=T(),d=T(),a=T(),l=T(),u=(t,n,...s)=>{const r=I(l,t,k);return i(s,(t=>z(r,t)&&n&&e.callListener(t))),s},f=(t,...n)=>M(x(l,t),(s=>{i(0==c(n)?b(s):n,(t=>{e.delListener(t),w(s,t)})),y(s)&&E(l,t)})),g=(e,n)=>{E(r,e,n),p(o,e)||(E(o,e,t()),E(d,e,T()),E(a,e,T()))},v=e=>{E(r,e),E(o,e),E(d,e),E(a,e),f(e)};return[()=>e,()=>[...r?.keys()??[]],e=>j(o,e),e=>p(o,e),e=>x(r,e),e=>x(o,e),(e,t)=>E(o,e,t),g,(t,r,o,c,l)=>{g(t,r);const M=T(),v=T(),y=x(d,t),b=x(a,t),w=t=>{const i=n=>e.getCell(r,t,n),o=x(y,t),d=s(r,t)?n(c(i,t)):void 0;if(o!=d&&E(M,t,[o,d]),!h(l)){const e=x(b,t),n=s(r,t)?l(i,t):void 0;e!=n&&E(v,t,n)}},I=e=>{o((()=>{L(M,(([,e],t)=>E(y,t,e))),L(v,((e,t)=>E(b,t,e)))}),M,v,y,b,e),m(M),m(v)};j(y,w),e.hasTable(r)&&i(e.getRowIds(r),(e=>{p(y,e)||w(e)})),I(!0),f(t),u(t,0,e.addRowListener(r,null,((e,t,n)=>w(n))),e.addTableListener(r,(()=>I())))},v,()=>j(l,v),u,f]},N=(e,r)=>t(e)==s?t=>t(e):e??(()=>r??n),O=/^\d+$/,_=e=>{let t;const[s,r]=(()=>{const e=[];let t=0;return[()=>e.shift()??n+t++,t=>{O.test(t)&&c(e)<1e3&&a(e,t)}]})(),o=T();return[(r,i,c)=>{t??=e();const d=s();return E(o,d,[r,i,c]),z(R(i,c??[n],k),d),d},(e,s,...r)=>i(((e,t=[n])=>{const s=[],r=(e,n)=>n==c(t)?a(s,e):null===t[n]?L(e,(e=>r(e,n+1))):i([t[n],null],(t=>r(x(e,t),n+1)));return r(e,0),s})(e,s),(e=>L(e,(e=>x(o,e)[0](t,...s??[],...r))))),e=>M(x(o,e),(([,t,s])=>(R(t,s??[n],void 0,(t=>(w(t,e),y(t)?1:0))),E(o,e),r(e),s))),(e,n,s)=>M(x(o,e),(([e,,r=[]])=>{const o=(...d)=>{const a=c(d);a==c(r)?e(t,...d,...s(d)):h(r[a])?i(n[a](...d),(e=>o(...d,e))):o(...d,r[a])};o()}))]},B=Object.freeze,C=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const s=T(),[i,o,c,d,a,l,u,,M,p,m]=D(e,g,(e=>isNaN(e)||h(e)||!0===e||!1===e||e===n?void 0:1*e)),[w,j,E]=_((()=>I)),I={setMetricDefinition:(e,n,i,o,c,d,a)=>{const g=t(i)==r?[i,c,d,a]:x(S,i)??x(S,"sum");return M(e,n,((t,n,r,i,o,c)=>{const d=l(e),a=v(i);c||=h(d),t();let M=((e,t,n,s,r,i=!1)=>{if(y(n))return;const[o,c,d,a]=r;return i||=h(e),L(s,(([n,s])=>{i||(e=h(n)?c?.(e,s,t++):h(s)?d?.(e,n,t--):a?.(e,s,n,t),i||=h(e))})),i?o(b(n),v(n)):e})(d,a,i,n,g,c);f(M)||(M=void 0),M!=d&&(u(e,M),j(s,[e],M,d))}),N(o,1)),I},delMetricDefinition:e=>(p(e),I),getStore:i,getMetricIds:o,forEachMetric:c,hasMetric:d,getTableId:a,getMetric:l,addMetricListener:(e,t)=>w(t,s,[e]),delListener:e=>(E(e),I),destroy:m,getListenerStats:()=>({})};return B(I)}));e.createMetrics=C,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=t(!0),o=t(0),r=t(t),l="Listener",i="Result",a=(e,t)=>e.every(t),d=(e,t)=>e.forEach(t),c=e=>h(e,((e,t)=>e+t),0),u=e=>e.length,f=e=>0==u(e),h=(e,t,n)=>e.reduce(t,n),w=(e,...t)=>e.push(...t),g=Math.max,R=Math.min,v=isFinite,y=e=>null==e,L=(e,t,n)=>y(e)?n?.():t(e),p=e=>t(e)==r,b=()=>{},T=e=>e.size,C=(e,t)=>e?.has(t)??!1,m=e=>y(e)||0==T(e),I=e=>[...e?.values()??[]],Q=e=>e.clear(),S=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),M=e=>new Map(e),j=(e,t)=>e?.get(t),E=(e,t)=>S(e,((e,n)=>t(n,e))),D=(e,t,n)=>y(n)?(x(e,t),e):e?.set(t,n),F=(e,t,n)=>(C(e,t)||D(e,t,n()),j(e,t)),k=(e,t,n,s,o=0)=>L((n?F:j)(e,t[o],o>u(t)-2?n:M),(r=>{if(o>u(t)-2)return s?.(r)&&D(e,t[o]),r;const l=k(r,t,n,s,o+1);return m(r)&&D(e,t[o]),l})),z=e=>new Set(e),O=(e,t)=>e?.add(t),W=M([["avg",[(e,t)=>c(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=>g(...e),(e,t)=>g(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:g(t,e)]],["min",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:R(t,e)]],["sum",[e=>c(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),_=e=>{const r=t(e);return(e=>e==n||e==s)(r)||r==o&&v(e)?r:void 0},B=Object,P=B.freeze,q=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=e.createStore,[n,s,o,r,c,,,h,,g,R,v,q]=((e,t,n)=>{const s=e.hasRow,o=M(),r=M(),l=M(),i=M(),a=M(),c=(t,n,...s)=>{const o=F(a,t,z);return d(s,(t=>O(o,t)&&n&&e.callListener(t))),s},u=(t,...n)=>L(j(a,t),(s=>{d(f(n)?I(s):n,(t=>{e.delListener(t),x(s,t)})),m(s)&&D(a,t)})),h=(e,n)=>{D(o,e,n),C(r,e)||(D(r,e,t()),D(l,e,M()),D(i,e,M()))},w=e=>{D(o,e),D(r,e),D(l,e),D(i,e),u(e)};return[()=>e,()=>[...o?.keys()??[]],e=>E(r,e),e=>C(r,e),e=>j(o,e),e=>j(r,e),(e,t)=>D(r,e,t),h,(t,o,r,a,f)=>{h(t,o);const w=M(),g=M(),R=j(l,t),v=j(i,t),L=t=>{const r=n=>e.getCell(o,t,n),l=j(R,t),i=s(o,t)?n(a(r,t)):void 0;if(l!=i&&D(w,t,[l,i]),!y(f)){const e=j(v,t),n=s(o,t)?f(r,t):void 0;e!=n&&D(g,t,n)}},p=e=>{r((()=>{S(w,(([,e],t)=>D(R,t,e))),S(g,((e,t)=>D(v,t,e)))}),w,g,R,v,e),Q(w),Q(g)};E(R,L),e.hasTable(o)&&d(e.getRowIds(o),(e=>{C(R,e)||L(e)})),p(!0),u(t),c(t,0,e.addRowListener(o,null,((e,t,n)=>L(n))),e.addTableListener(o,(()=>p())))},w,()=>E(a,w),c,u]})(e,(()=>!0),b),A=t(),G=t(),H=M(),J=(e,t,...n)=>d(n,(n=>O(F(F(H,t,M),e,z),n))),K=e=>{E(j(H,e),((e,t)=>S(t,(t=>e.delListener(t))))),d([G,A],(t=>t.delTable(e)))},N=(e,t,n)=>J(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),U={setQueryDefinition:(t,n,s)=>{h(t,n),K(t);const o=[],r=[[null,[n,null,null,[],M()]]],l=[],i=[],c=[];s({select:(e,t)=>{const n=p(e)?[u(o)+"",e]:[y(t)?e:t,n=>n(e,t)];return w(o,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=y(n)||p(t)?null:t,o=y(s)?t:n,l=[e,[e,s,p(o)?o:e=>e(o),[],M()]];return w(r,l),{as:e=>l[0]=e}},where:(e,t,n)=>w(l,p(e)?e:y(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,o)=>{const r=[e,[e,p(t)?[t,n,s,o]:j(W,t)??[(e,t)=>t]]];return w(i,r),{as:e=>r[0]=e}},having:(e,t)=>w(c,p(e)?e:n=>n(e)===t)});const g=M(o);if(m(g))return U;const R=M(r);E(R,((e,[,t])=>L(j(R,t),(({3:t})=>y(e)?0:w(t,e)))));const b=M(i);let Q=A;if(m(b)&&f(c))Q=G;else{N(t,Q,G);const e=M();E(b,((t,[n,s])=>O(F(e,n,z),[t,s])));const n=z();E(g,(t=>C(e,t)?0:O(n,t)));const s=M(),o=(n,s,o,r)=>L(n,(([n,l,i,d])=>{E(s,((t,[s])=>{const l=F(n,t,M),i=j(l,o),a=r?void 0:s;if(i!==a){const n=z([[i,a]]),s=T(l);D(l,o,a),S(j(e,t),(([e,t])=>{const o=((e,t,n,s,o,r=!1)=>{if(m(n))return;const[l,i,a,d]=o;return r||=y(e),S(s,(([n,s])=>{r||(e=y(n)?i?.(e,s,t++):y(s)?a?.(e,n,t--):d?.(e,s,n,t),r||=y(e))})),r?l(I(n),T(n)):e})(d[e],s,l,n,t);d[e]=y(_(o))?null:o}))}})),(m(l)||!a(c,(e=>e((e=>d[e]))))?G.delRow:G.setRow)(t,i,d)}));J(Q,t,Q.addRowListener(t,null,((r,l,i,a)=>{const d=[],c=[],u=M(),f=Q.hasRow(t,i);let h=!f;S(n,(e=>{const[n,s,o]=a(t,i,e);w(d,s),w(c,o),h||=n})),E(e,(e=>{const[n,,s]=a(t,i,e);(h||n)&&D(u,e,[s])})),h&&o(k(s,d,void 0,(([,e,n])=>{if(x(e,i),m(e))return G.delRow(t,n),1})),u,i,1),f&&o(k(s,c,(()=>{const e={};return S(n,(n=>e[n]=Q.getCell(t,i,n))),[M(),z(),G.addRow(t,e,1),e]}),(([,e])=>{O(e,i)})),u,i)})))}N(t,e,Q);const B=s=>{const o=(t,o)=>e.getCell(...y(o)?[n,s,t]:t===n?[n,s,o]:[j(R,t)?.[0],j(j(R,t)?.[4],s)?.[0],o]);Q.transaction((()=>a(l,(e=>e(o)))?E(g,((e,n)=>((e,t,n,s,o)=>y(o)?e.delCell(t,n,s,!0):e.setCell(t,n,s,o))(Q,t,s,e,n(o,s)))):Q.delRow(t,s)))},P=(n,s,o,r)=>{const l=t=>e.getCell(s,o,t);d(r,(s=>{const[o,,r,i,a]=j(R,s),d=r?.(l,n),[c,u]=j(a,n)??[];d!=c&&(y(u)||q(t,u),D(a,n,y(d)?null:[d,...v(t,1,e.addRowListener(o,d,(()=>P(n,o,d,i))))]))})),B(n)},{3:H}=j(R,null);return Q.transaction((()=>v(t,1,e.addRowListener(n,null,((s,o,r)=>{e.hasRow(n,r)?P(r,n,r,H):(Q.delRow(t,r),S(R,(({4:e})=>L(j(e,r),(([,n])=>{q(t,n),D(e,r)})))))}))))),U},delQueryDefinition:e=>(K(e),g(e),U),getStore:n,getQueryIds:s,forEachQuery:o,hasQuery:r,getTableId:c,delListener:e=>(G.delListener(e),U),destroy:R,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=G.getListenerStats();return s}};var V,X;return V={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},X=([e,t],n)=>{d(e?["get","has","forEach"]:["get"],(e=>U[e+i+n]=(...t)=>G[e+n](...t))),U["addResult"+n+l]=(...e)=>{return G["add"+n+l](...(s=e,o=0,r=t,s.slice(o,r)),((n,...s)=>e[t](U,...s)));var s,o,r}},d(B.entries(V),(([e,t])=>X(t,e))),P(U)}));e.createQueries=q,Object.defineProperty(e,"__esModule",{value:!0})},"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),o=t(0),r=t(t),l="Listener",i="Result",a=(e,t)=>e.every(t),d=(e,t)=>e.forEach(t),c=e=>h(e,((e,t)=>e+t),0),u=e=>e.length,f=e=>0==u(e),h=(e,t,n)=>e.reduce(t,n),g=(e,...t)=>e.push(...t),w=Math.max,v=Math.min,R=isFinite,y=e=>null==e,L=(e,t,n)=>y(e)?n?.():t(e),p=e=>t(e)==r,b=()=>{},T=e=>e.size,C=(e,t)=>e?.has(t)??!1,m=e=>y(e)||0==T(e),I=e=>[...e?.values()??[]],Q=e=>e.clear(),S=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),M=e=>new Map(e),j=(e,t)=>e?.get(t),E=(e,t)=>S(e,((e,n)=>t(n,e))),D=(e,t,n)=>y(n)?(x(e,t),e):e?.set(t,n),F=(e,t,n)=>(C(e,t)||D(e,t,n()),j(e,t)),k=(e,t,n,s,o=0)=>L((n?F:j)(e,t[o],o>u(t)-2?n:M),(r=>{if(o>u(t)-2)return s?.(r)&&D(e,t[o]),r;const l=k(r,t,n,s,o+1);return m(r)&&D(e,t[o]),l})),z=e=>new Set(e),O=(e,t)=>e?.add(t),W=M([["avg",[(e,t)=>c(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=>w(...e),(e,t)=>w(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:w(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=>c(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),_=e=>{const r=t(e);return(e=>e==n||e==s)(r)||r==o&&R(e)?r:void 0},B=Object,P=B.freeze,q=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=e.createStore,[n,s,o,r,c,,,h,,w,v,R,q]=((e,t,n)=>{const s=e.hasRow,o=M(),r=M(),l=M(),i=M(),a=M(),c=(t,n,...s)=>{const o=F(a,t,z);return d(s,(t=>O(o,t)&&n&&e.callListener(t))),s},u=(t,...n)=>L(j(a,t),(s=>{d(f(n)?I(s):n,(t=>{e.delListener(t),x(s,t)})),m(s)&&D(a,t)})),h=(e,n)=>{D(o,e,n),C(r,e)||(D(r,e,t()),D(l,e,M()),D(i,e,M()))},g=e=>{D(o,e),D(r,e),D(l,e),D(i,e),u(e)};return[()=>e,()=>[...o?.keys()??[]],e=>E(r,e),e=>C(r,e),e=>j(o,e),e=>j(r,e),(e,t)=>D(r,e,t),h,(t,o,r,a,f)=>{h(t,o);const g=M(),w=M(),v=j(l,t),R=j(i,t),L=t=>{const r=n=>e.getCell(o,t,n),l=j(v,t),i=s(o,t)?n(a(r,t)):void 0;if(l!=i&&D(g,t,[l,i]),!y(f)){const e=j(R,t),n=s(o,t)?f(r,t):void 0;e!=n&&D(w,t,n)}},p=e=>{r((()=>{S(g,(([,e],t)=>D(v,t,e))),S(w,((e,t)=>D(R,t,e)))}),g,w,v,R,e),Q(g),Q(w)};E(v,L),e.hasTable(o)&&d(e.getRowIds(o),(e=>{C(v,e)||L(e)})),p(!0),u(t),c(t,0,e.addRowListener(o,null,((e,t,n)=>L(n))),e.addTableListener(o,(()=>p())))},g,()=>E(a,g),c,u]})(e,(()=>!0),b),A=t(),G=t(),H=M(),J=(e,t,...n)=>d(n,(n=>O(F(F(H,t,M),e,z),n))),K=e=>{L(j(H,e),(e=>{E(e,((e,t)=>S(t,(t=>e.delListener(t))))),Q(e)})),d([G,A],(t=>t.delTable(e)))},N=(e,t,n)=>J(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),U={setQueryDefinition:(t,n,s)=>{h(t,n),K(t);const o=[],r=[[null,[n,null,null,[],M()]]],l=[],i=[],c=[];s({select:(e,t)=>{const n=p(e)?[u(o)+"",e]:[y(t)?e:t,n=>n(e,t)];return g(o,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=y(n)||p(t)?null:t,o=y(s)?t:n,l=[e,[e,s,p(o)?o:e=>e(o),[],M()]];return g(r,l),{as:e=>l[0]=e}},where:(e,t,n)=>g(l,p(e)?e:y(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,o)=>{const r=[e,[e,p(t)?[t,n,s,o]:j(W,t)??[(e,t)=>t]]];return g(i,r),{as:e=>r[0]=e}},having:(e,t)=>g(c,p(e)?e:n=>n(e)===t)});const w=M(o);if(m(w))return U;const v=M(r);E(v,((e,[,t])=>L(j(v,t),(({3:t})=>y(e)?0:g(t,e)))));const b=M(i);let Q=A;if(m(b)&&f(c))Q=G;else{N(t,Q,G);const e=M();E(b,((t,[n,s])=>O(F(e,n,z),[t,s])));const n=z();E(w,(t=>C(e,t)?0:O(n,t)));const s=M(),o=(n,s,o,r)=>L(n,(([l,i,d,u])=>{E(s,((t,[n])=>{const s=F(l,t,M),i=j(s,o),a=r?void 0:n;if(i!==a){const n=z([[i,a]]),r=T(s);D(s,o,a),S(j(e,t),(([e,t])=>{const o=((e,t,n,s,o,r=!1)=>{if(m(n))return;const[l,i,a,d]=o;return r||=y(e),S(s,(([n,s])=>{r||(e=y(n)?i?.(e,s,t++):y(s)?a?.(e,n,t--):d?.(e,s,n,t),r||=y(e))})),r?l(I(n),T(n)):e})(u[e],r,s,n,t);u[e]=y(_(o))?null:o}))}})),m(i)||!a(c,(e=>e((e=>u[e]))))?G.delRow(t,d):y(d)?n[2]=G.addRow(t,u):G.setRow(t,d,u)}));J(Q,t,Q.addRowListener(t,null,((r,l,i,a)=>{const d=[],c=[],u=M(),f=Q.hasRow(t,i);let h=!f;S(n,(e=>{const[n,s,o]=a(t,i,e);g(d,s),g(c,o),h||=n})),E(e,(e=>{const[n,,s]=a(t,i,e);(h||n)&&D(u,e,[s])})),h&&o(k(s,d,void 0,(([,e])=>(x(e,i),m(e)))),u,i,1),f&&o(k(s,c,(()=>{const e={};return S(n,(n=>e[n]=Q.getCell(t,i,n))),[M(),z(),void 0,e]}),(([,e])=>{O(e,i)})),u,i)})))}N(t,e,Q);const B=s=>{const o=(t,o)=>e.getCell(...y(o)?[n,s,t]:t===n?[n,s,o]:[j(v,t)?.[0],j(j(v,t)?.[4],s)?.[0],o]);Q.transaction((()=>a(l,(e=>e(o)))?E(w,((e,n)=>((e,t,n,s,o)=>y(o)?e.delCell(t,n,s,!0):e.setCell(t,n,s,o))(Q,t,s,e,n(o,s)))):Q.delRow(t,s)))},P=(n,s,o,r)=>{const l=t=>e.getCell(s,o,t);d(r,(s=>{const[o,,r,i,a]=j(v,s),d=r?.(l,n),[c,u]=j(a,n)??[];d!=c&&(y(u)||q(t,u),D(a,n,y(d)?null:[d,...R(t,1,e.addRowListener(o,d,(()=>P(n,o,d,i))))]))})),B(n)},{3:H}=j(v,null);return Q.transaction((()=>R(t,1,e.addRowListener(n,null,((s,o,r)=>{e.hasRow(n,r)?P(r,n,r,H):(Q.delRow(t,r),S(v,(({4:e})=>L(j(e,r),(([,n])=>{q(t,n),D(e,r)})))))}))))),U},delQueryDefinition:e=>(K(e),w(e),U),getStore:n,getQueryIds:s,forEachQuery:o,hasQuery:r,getTableId:c,delListener:e=>(G.delListener(e),U),destroy:v,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:n,...s}=G.getListenerStats();return s}};var V,X;return V={Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},X=([e,t],n)=>{d(e?["get","has","forEach"]:["get"],(e=>U[e+i+n]=(...t)=>G[e+n](...t))),U["addResult"+n+l]=(...e)=>{return G["add"+n+l](...(s=e,o=0,r=t,s.slice(o,r)),((n,...s)=>e[t](U,...s)));var s,o,r}},d(B.entries(V),(([e,t])=>X(t,e))),P(U)}));e.createQueries=q,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseQueries={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",o=t(n),s=(e,t)=>e.forEach(t),i=e=>e.length,r=(e,...t)=>e.push(...t),d=e=>null==e,l=(e,t,n)=>d(e)?n?.():t(e),a=(e,t)=>e?.has(t)??!1,c=e=>d(e)||0==(e=>e.size)(e),f=e=>[...e?.values()??[]],u=e=>e.clear(),h=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),R=e=>new Map(e),g=(e,t)=>e?.get(t),L=(e,t)=>h(e,((e,n)=>t(n,e))),w=(e,t,n)=>d(n)?(p(e,t),e):e?.set(t,n),I=(e,t,n)=>(a(e,t)||w(e,t,n()),g(e,t)),b=(e,t,n,o,s=0)=>l((n?I:g)(e,t[s],s>i(t)-2?n:R),(r=>{if(s>i(t)-2)return o?.(r)&&w(e,t[s]),r;const d=b(r,t,n,o,s+1);return c(r)&&w(e,t[s]),d})),y=e=>new Set(e),v=(e,t)=>e?.add(t),T=(e,t,n)=>{const o=e.hasRow,r=R(),b=R(),T=R(),m=R(),k=R(),E=(t,n,...o)=>{const i=I(k,t,y);return s(o,(t=>v(i,t)&&n&&e.callListener(t))),o},j=(t,...n)=>l(g(k,t),(o=>{s(0==i(n)?f(o):n,(t=>{e.delListener(t),p(o,t)})),c(o)&&w(k,t)})),x=(e,n)=>{w(r,e,n),a(b,e)||(w(b,e,t()),w(T,e,R()),w(m,e,R()))},M=e=>{w(r,e),w(b,e),w(T,e),w(m,e),j(e)};return[()=>e,()=>[...r?.keys()??[]],e=>L(b,e),e=>a(b,e),e=>g(r,e),e=>g(b,e),(e,t)=>w(b,e,t),x,(t,i,r,l,c)=>{x(t,i);const f=R(),p=R(),I=g(T,t),b=g(m,t),y=t=>{const s=n=>e.getCell(i,t,n),r=g(I,t),a=o(i,t)?n(l(s,t)):void 0;if(r!=a&&w(f,t,[r,a]),!d(c)){const e=g(b,t),n=o(i,t)?c(s,t):void 0;e!=n&&w(p,t,n)}},v=e=>{r((()=>{h(f,(([,e],t)=>w(I,t,e))),h(p,((e,t)=>w(b,t,e)))}),f,p,I,b,e),u(f),u(p)};L(I,y),e.hasTable(i)&&s(e.getRowIds(i),(e=>{a(I,e)||y(e)})),v(!0),j(t),E(t,0,e.addRowListener(i,null,((e,t,n)=>y(n))),e.addTableListener(i,(()=>v())))},M,()=>L(k,M),E,j]},m=(e,s)=>t(e)==o?t=>t(e):e??(()=>s??n),k=e=>{let t,o=0;const a=[],f=R();return[(s,i,r)=>{t??=e();const d=a.pop()??n+o++;return w(f,d,[s,i,r]),v(b(i,r??[n],y),d),d},(e,o,...d)=>s(((e,t=[n])=>{const o=[],d=(e,n)=>n==i(t)?r(o,e):null===t[n]?h(e,(e=>d(e,n+1))):s([t[n],null],(t=>d(g(e,t),n+1)));return d(e,0),o})(e,o),(e=>h(e,(e=>g(f,e)[0](t,...o??[],...d))))),e=>l(g(f,e),(([,t,o])=>(b(t,o??[n],void 0,(t=>(p(t,e),c(t)?1:0))),w(f,e),i(a)<1e3&&r(a,e),o))),(e,n,o)=>l(g(f,e),(([e,,r=[]])=>{const l=(...a)=>{const c=i(a);c==i(r)?e(t,...a,...o(a)):d(r[c])?s(n[c](...a),(e=>l(...a,e))):l(...a,r[c])};l()}))]},E=Object.freeze,j=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=R(),o=R(),s=R(),i=R(),[r,u,I,b,j,x,,,M,S,z]=T(e,(()=>[R(),R(),R(),R()]),(e=>d(e)?void 0:e+n)),[D,O,_]=k((()=>W)),B=(e,t,n)=>l(x(e),(([o,,s])=>{if(!a(s,t)){const i=y();if(j(e)!=P(e))v(i,t);else{let e=t;for(;!d(e)&&!a(i,e);)v(i,e),e=g(o,e)}if(n)return i;w(s,t,i)}return g(s,t)})),C=(e,t)=>l(x(e),(([,,e])=>w(e,t))),P=e=>g(t,e),W={setRelationshipDefinition:(e,n,r,f)=>(w(t,e,r),M(e,n,((t,n)=>{const r=y(),f=y(),u=y(),[R,I]=x(e);h(n,(([t,n],o)=>{d(t)||(v(f,t),l(g(I,t),(e=>{p(e,o),c(e)&&w(I,t)}))),d(n)||(v(f,n),a(I,n)||w(I,n,y()),v(g(I,n),o)),v(r,o),w(R,o,n),L(g(i,e),(t=>{a(B(e,t),o)&&v(u,t)}))})),t(),h(r,(t=>O(o,[e,t]))),h(f,(t=>O(s,[e,t]))),h(u,(t=>{C(e,t),O(i,[e,t])}))}),m(f)),W),delRelationshipDefinition:e=>(w(t,e),S(e),W),getStore:r,getRelationshipIds:u,forEachRelationship:t=>I((n=>t(n,(t=>e.forEachRow(j(n),t))))),hasRelationship:b,getLocalTableId:j,getRemoteTableId:P,getRemoteRowId:(e,t)=>g(x(e)?.[0],t),getLocalRowIds:(e,t)=>f(g(x(e)?.[1],t)),getLinkedRowIds:(e,t)=>d(x(e))?[t]:f(B(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>D(n,o,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(B(e,t),D(n,i,[e,t])),delListener:e=>(C(..._(e)),W),destroy:z,getListenerStats:()=>({})};return E(W)}));e.createRelationships=j,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",o=t(n),s=(e,t)=>e.forEach(t),i=e=>e.length,r=(e,...t)=>e.push(...t),d=e=>null==e,l=(e,t,n)=>d(e)?n?.():t(e),a=(e,t)=>e?.has(t)??!1,c=e=>d(e)||0==(e=>e.size)(e),f=e=>[...e?.values()??[]],u=e=>e.clear(),h=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),p=e=>new Map(e),g=(e,t)=>e?.get(t),L=(e,t)=>h(e,((e,n)=>t(n,e))),w=(e,t,n)=>d(n)?(R(e,t),e):e?.set(t,n),I=(e,t,n)=>(a(e,t)||w(e,t,n()),g(e,t)),b=(e,t,n,o,s=0)=>l((n?I:g)(e,t[s],s>i(t)-2?n:p),(r=>{if(s>i(t)-2)return o?.(r)&&w(e,t[s]),r;const d=b(r,t,n,o,s+1);return c(r)&&w(e,t[s]),d})),y=e=>new Set(e),v=(e,t)=>e?.add(t),T=(e,t,n)=>{const o=e.hasRow,r=p(),b=p(),T=p(),m=p(),k=p(),E=(t,n,...o)=>{const i=I(k,t,y);return s(o,(t=>v(i,t)&&n&&e.callListener(t))),o},j=(t,...n)=>l(g(k,t),(o=>{s(0==i(n)?f(o):n,(t=>{e.delListener(t),R(o,t)})),c(o)&&w(k,t)})),x=(e,n)=>{w(r,e,n),a(b,e)||(w(b,e,t()),w(T,e,p()),w(m,e,p()))},M=e=>{w(r,e),w(b,e),w(T,e),w(m,e),j(e)};return[()=>e,()=>[...r?.keys()??[]],e=>L(b,e),e=>a(b,e),e=>g(r,e),e=>g(b,e),(e,t)=>w(b,e,t),x,(t,i,r,l,c)=>{x(t,i);const f=p(),R=p(),I=g(T,t),b=g(m,t),y=t=>{const s=n=>e.getCell(i,t,n),r=g(I,t),a=o(i,t)?n(l(s,t)):void 0;if(r!=a&&w(f,t,[r,a]),!d(c)){const e=g(b,t),n=o(i,t)?c(s,t):void 0;e!=n&&w(R,t,n)}},v=e=>{r((()=>{h(f,(([,e],t)=>w(I,t,e))),h(R,((e,t)=>w(b,t,e)))}),f,R,I,b,e),u(f),u(R)};L(I,y),e.hasTable(i)&&s(e.getRowIds(i),(e=>{a(I,e)||y(e)})),v(!0),j(t),E(t,0,e.addRowListener(i,null,((e,t,n)=>y(n))),e.addTableListener(i,(()=>v())))},M,()=>L(k,M),E,j]},m=(e,s)=>t(e)==o?t=>t(e):e??(()=>s??n),k=/^\d+$/,E=e=>{let t;const[o,a]=(()=>{const e=[];let t=0;return[()=>e.shift()??n+t++,t=>{k.test(t)&&i(e)<1e3&&r(e,t)}]})(),f=p();return[(s,i,r)=>{t??=e();const d=o();return w(f,d,[s,i,r]),v(b(i,r??[n],y),d),d},(e,o,...d)=>s(((e,t=[n])=>{const o=[],d=(e,n)=>n==i(t)?r(o,e):null===t[n]?h(e,(e=>d(e,n+1))):s([t[n],null],(t=>d(g(e,t),n+1)));return d(e,0),o})(e,o),(e=>h(e,(e=>g(f,e)[0](t,...o??[],...d))))),e=>l(g(f,e),(([,t,o])=>(b(t,o??[n],void 0,(t=>(R(t,e),c(t)?1:0))),w(f,e),a(e),o))),(e,n,o)=>l(g(f,e),(([e,,r=[]])=>{const l=(...a)=>{const c=i(a);c==i(r)?e(t,...a,...o(a)):d(r[c])?s(n[c](...a),(e=>l(...a,e))):l(...a,r[c])};l()}))]},j=Object.freeze,x=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=p(),o=p(),s=p(),i=p(),[r,u,I,b,k,x,,,M,S,z]=T(e,(()=>[p(),p(),p(),p()]),(e=>d(e)?void 0:e+n)),[D,O,_]=E((()=>W)),B=(e,t,n)=>l(x(e),(([o,,s])=>{if(!a(s,t)){const i=y();if(k(e)!=P(e))v(i,t);else{let e=t;for(;!d(e)&&!a(i,e);)v(i,e),e=g(o,e)}if(n)return i;w(s,t,i)}return g(s,t)})),C=(e,t)=>l(x(e),(([,,e])=>w(e,t))),P=e=>g(t,e),W={setRelationshipDefinition:(e,n,r,f)=>(w(t,e,r),M(e,n,((t,n)=>{const r=y(),f=y(),u=y(),[p,I]=x(e);h(n,(([t,n],o)=>{d(t)||(v(f,t),l(g(I,t),(e=>{R(e,o),c(e)&&w(I,t)}))),d(n)||(v(f,n),a(I,n)||w(I,n,y()),v(g(I,n),o)),v(r,o),w(p,o,n),L(g(i,e),(t=>{a(B(e,t),o)&&v(u,t)}))})),t(),h(r,(t=>O(o,[e,t]))),h(f,(t=>O(s,[e,t]))),h(u,(t=>{C(e,t),O(i,[e,t])}))}),m(f)),W),delRelationshipDefinition:e=>(w(t,e),S(e),W),getStore:r,getRelationshipIds:u,forEachRelationship:t=>I((n=>t(n,(t=>e.forEachRow(k(n),t))))),hasRelationship:b,getLocalTableId:k,getRemoteTableId:P,getRemoteRowId:(e,t)=>g(x(e)?.[0],t),getLocalRowIds:(e,t)=>f(g(x(e)?.[1],t)),getLinkedRowIds:(e,t)=>d(x(e))?[t]:f(B(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>D(n,o,[e,t]),addLocalRowIdsListener:(e,t,n)=>D(n,s,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(B(e,t),D(n,i,[e,t])),delListener:e=>(C(..._(e)),W),destroy:z,getListenerStats:()=>({})};return j(W)}));e.createRelationships=x,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
Binary file
package/lib/umd/store.js CHANGED
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),r=t(!0),o=t(0),l=t(t),a="type",i="default",c=(e,t)=>e.forEach(t),d=(e,t)=>e.map(t),u=e=>e.length,f=(e,t,n)=>e.slice(t,n),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>{return v(t,Map)?(n=[...t],s=(e,[t,n])=>(e[t]=n,e),r={},n.reduce(s,r)):t;var n,s,r})),p=JSON.parse,b=isFinite,v=(e,t)=>e instanceof t,g=e=>null==e,y=(e,t,n)=>g(e)?n?.():t(e),w=e=>e==s||e==r,R=(e,t)=>e?.has(t)??!1,S=e=>g(e)||0==(e=>e.size)(e),C=e=>e.clear(),I=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),m=e=>new Map(e),E=e=>[...e?.keys()??[]],J=(e,t)=>e?.get(t),F=(e,t)=>I(e,((e,n)=>t(n,e))),O=(e,t,n)=>g(n)?(L(e,t),e):e?.set(t,n),j=(e,t,n)=>(R(e,t)||O(e,t,n()),J(e,t)),x=(e,t,n)=>{const s={},r=t??(e=>e);return I(e,((e,t)=>y(r(e),(e=>n?.(e)?0:s[t]=e)))),s},z=(e,t)=>{const n=m(),s=t??(e=>e);return I(e,((e,t)=>n.set(t,s(e)))),n},M=e=>z(e,z),k=(e,t,n,s,r=0)=>y((n?j:J)(e,t[r],r>u(t)-2?n:m),(o=>{if(r>u(t)-2)return s?.(o)&&O(e,t[r]),o;const l=k(o,t,n,s,r+1);return S(o)&&O(e,t[r]),l})),N=Object,P=N.keys,_=N.isFrozen,B=N.freeze,D=(e,t)=>!g(((e,t)=>y(e,(e=>e[t])))(e,t)),W=(e,t)=>delete e[t],q=(e,t)=>c(N.entries(e),(([e,n])=>t(n,e))),A=e=>{return t=P(e),0==u(t);var t},G=e=>new Set(e),H=(e,t)=>e?.add(t),K=e=>{let t,s=0;const r=[],o=m();return[(l,a,i)=>{t??=e();const c=r.pop()??n+s++;return O(o,c,[l,a,i]),H(k(a,i??[n],G),c),c},(e,s,...r)=>c(((e,t=[n])=>{const s=[],r=(e,n)=>n==u(t)?h(s,e):null===t[n]?I(e,(e=>r(e,n+1))):c([t[n],null],(t=>r(J(e,t),n+1)));return r(e,0),s})(e,s),(e=>I(e,(e=>J(o,e)[0](t,...s??[],...r))))),e=>y(J(o,e),(([,t,s])=>(k(t,s??[n],void 0,(t=>(L(t,e),S(t)?1:0))),O(o,e),u(r)<1e3&&h(r,e),s))),(e,n,s)=>y(J(o,e),(([e,,r=[]])=>{const o=(...l)=>{const a=u(l);a==u(r)?e(t,...l,...s(l)):g(r[a])?c(n[a](...l),(e=>o(...l,e))):o(...l,r[a])};o()}))]},Q=e=>[e,e],U=()=>[m(),m()],V=e=>{const n=t(e);return w(n)||n==o&&b(e)?n:void 0},X=e=>n+e,Y=(e,t,n,s=O)=>{const r=(o=E(e),l=e=>!D(t,e),o.filter(l));var o,l;return c(P(t),(s=>n(e,s,t[s]))),c(r,(t=>s(e,t))),e},Z=(e,t,n)=>g(e)||!(e=>v(e,N)&&e.constructor==N)(e)||A(e)||_(e)?(n?.(),!1):(q(e,((n,s)=>{t(n,s)||W(e,s)})),!A(e)),$=(e,t,n)=>O(e,t,J(e,t)==-n?void 0:n),ee=()=>{let e,s,r=0,b=0;const v=m(),k=m(),N=m(),P=m(),_=m(),te=m(),ne=m(),se=m(),re=U(),oe=U(),le=U(),ae=U(),ie=U(),ce=U(),de=U(),ue=U(),fe=U(),he=U(),[Te,pe,be,ve]=K((()=>et)),ge=(t,n)=>(!e||R(te,n)||Pe(n))&&Z(t,((e,t)=>ye(n,t,e)),(()=>Pe(n))),ye=(e,t,n,s)=>Z(s?n:Re(n,e,t),((s,r)=>y(we(e,t,r,s),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Pe(e,t))),we=(t,n,s,r)=>e?y(J(J(te,t),s),(e=>V(r)!=e.type?Pe(t,n,s,r,e.default):r),(()=>Pe(t,n,s,r))):g(V(r))?Pe(t,n,s,r):r,Re=(e,t,n)=>(y(J(ne,t),(([s,r])=>{I(s,((t,n)=>{D(e,n)||(e[n]=t)})),I(r,(s=>{D(e,s)||Pe(t,n,s)}))})),e),Se=e=>Y(te,e,((e,t,n)=>{const s=m(),r=G();Y(j(te,t,m),n,((e,t,n)=>{O(e,t,n),y(n.default,(e=>O(s,t,e)),(()=>H(r,t)))})),O(ne,t,[s,r])}),((e,t)=>{O(te,t),O(ne,t)})),Ce=e=>Y(se,e,((e,t,n)=>Ie(t,n)),((e,t)=>Oe(t))),Ie=(e,t)=>Y(j(se,e,(()=>(ze(e,1),m()))),t,((t,n,s)=>Le(e,t,n,s)),((t,n)=>je(e,t,n))),Le=(e,t,n,s,r)=>Y(j(t,n,(()=>(Me(e,n,1),m()))),s,((t,s,r)=>me(e,n,t,s,r)),((s,o)=>xe(e,t,n,s,o,r))),me=(e,t,n,s,r)=>{R(n,s)||ke(e,t,s,1);const o=J(n,s);r!==o&&(Ne(e,t,s,o,r),O(n,s,r))},Ee=(e,t,n,s,r)=>y(J(t,n),(t=>me(e,n,t,s,r)),(()=>Le(e,t,n,Re({[s]:r},e,n)))),Je=e=>{const t=n+r++;return R(e,t)?Je(e):t},Fe=e=>J(se,e)??Ie(e,{}),Oe=e=>Ie(e,{}),je=(e,t,n)=>Le(e,t,n,{},!0),xe=(e,t,n,s,r,o)=>{const l=J(J(ne,e)?.[0],r);if(!g(l)&&!o)return me(e,n,s,r,l);const a=t=>{Ne(e,n,t,J(s,t)),ke(e,n,t,-1),O(s,t)};g(l)?a(r):F(s,a),S(s)&&(Me(e,n,-1),S(O(t,n))&&(ze(e,-1),O(se,e)))},ze=(e,t)=>$(v,e,t),Me=(e,t,n)=>$(j(k,e,m),t,n),ke=(e,t,n,s)=>$(j(j(N,e,m),t,m),n,s),Ne=(e,t,n,s,r)=>j(j(j(P,e,m),t,m),n,(()=>[s,0]))[1]=r,Pe=(e,t,n,s,r)=>(h(j(j(j(_,e,m),t,m),n,(()=>[])),s),r),_e=(e,t,n)=>y(J(J(J(P,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Q(Ue(e,t,n))])),Be=e=>S(_)||S(fe[e])?0:I(e?z(_,M):_,((t,n)=>I(t,((t,s)=>I(t,((t,r)=>pe(fe[e],[n,s,r],t))))))),De=(e,t,n)=>{if(!S(t))return pe(e,n),1},We=e=>{const t=S(ie[e]),n=S(de[e])&&S(ae[e])&&t&&S(oe[e]),s=S(ue[e])&&S(ce[e])&&S(le[e])&&S(re[e]);if(!n||!s){const r=e?[z(v),M(k),z(N,M),z(P,M)]:[v,k,N,P];if(!n){I(r[2],((t,n)=>I(t,((t,s)=>De(de[e],t,[n,s])))));const n=G();I(r[1],((s,r)=>{De(ae[e],s,[r])&&!t&&(pe(ie[e],[r,null]),H(n,r))})),t||I(r[3],((t,s)=>{if(!R(n,s)){const n=G();I(t,(e=>I(e,(([t,s],r)=>s!==t?H(n,r):L(e,r))))),I(n,(t=>pe(ie[e],[s,t])))}})),De(oe[e],r[0])}if(!s){let t;I(r[3],((n,s)=>{let r;I(n,((n,o)=>{let l;I(n,(([n,a],i)=>{a!==n&&(pe(ue[e],[s,o,i],a,n,_e),t=r=l=1)})),l&&pe(ce[e],[s,o],_e)})),r&&pe(le[e],[s],_e)})),t&&pe(re[e],void 0,_e)}}},qe=(e,...t)=>(Ye((()=>e(...d(t,X)))),et),Ae=()=>x(se,(e=>x(e,x))),Ge=()=>E(se),He=e=>E(J(se,X(e))),Ke=(e,t,n,s=0,r)=>{const o=[];return F(J(se,X(e)),((e,n)=>h(o,[g(t)?e:J(n,X(t)),e]))),d(f(o.sort((([e],[t])=>(e<t?-1:1)*(n?-1:1))),s,g(r)?r:s+r),(([,e])=>e))},Qe=(e,t)=>E(J(J(se,X(e)),X(t))),Ue=(e,t,n)=>J(J(J(se,X(e)),X(t)),X(n)),Ve=e=>qe((()=>(e=>Z(e,ge,Pe))(e)?Ce(e):0)),Xe=()=>qe((()=>Ce({}))),Ye=(e,t)=>{if(-1==b)return;Ze();const n=e?.();return $e(t),n},Ze=()=>(b++,et),$e=e=>(b>0&&(b--,0==b&&(s=!S(P),b=1,Be(1),s&&We(1),b=-1,e?.(x(P,(e=>x(e,(e=>x(e,(e=>[...e]),(([e,t])=>e===t))),A)),A),x(_,(e=>x(e,x))))&&(b=1,I(P,((e,t)=>I(e,((e,n)=>I(e,(([e],s)=>((e,t,n,s,r)=>g(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(et,t,n,s,e))))))),b=-1,s=!1),pe(he[0],void 0,s),Be(0),s&&We(0),pe(he[1],void 0,s),b=0,c([P,_,v,k,N],C))),et),et={getTables:Ae,getTableIds:Ge,getTable:e=>x(J(se,X(e)),x),getRowIds:He,getSortedRowIds:Ke,getRow:(e,t)=>x(J(J(se,X(e)),X(t))),getCellIds:Qe,getCell:Ue,hasTables:()=>!S(se),hasTable:e=>R(se,X(e)),hasRow:(e,t)=>R(J(se,X(e)),X(t)),hasCell:(e,t,n)=>R(J(J(se,X(e)),X(t)),X(n)),getJson:()=>T(se),getSchemaJson:()=>T(te),setTables:Ve,setTable:(e,t)=>qe((e=>ge(t,e)?Ie(e,t):0),e),setRow:(e,t,n)=>qe(((e,t)=>ye(X(e),X(t),n)?Le(X(e),Fe(X(e)),X(t),n):0),e,t),addRow:(e,t,n)=>Ye((()=>{e=X(e);const s=ye(e,void 0,t),r=s||n?Je(J(se,e)):void 0;return s&&Le(e,Fe(e),r,t),r})),setPartialRow:(e,t,n)=>qe(((e,t)=>{if(ye(e,t,n,1)){const s=Fe(e);q(n,((n,r)=>Ee(e,s,t,r,n)))}}),e,t),setCell:(e,n,s,r)=>qe(((e,n,s)=>y(we(e,n,s,t(r)==l?r(Ue(e,n,s)):r),(t=>Ee(e,Fe(e),n,s,t)))),e,n,s),setJson:e=>{try{"{}"===e?Xe():Ve(p(e))}catch{}return et},setSchema:t=>qe((()=>{if((e=(e=>Z(e,(e=>Z(e,(e=>{if(!Z(e,((e,t)=>[a,i].includes(t))))return!1;const t=e.type;return!(!w(t)&&t!=o||(V(e.default)!=t&&W(e,i),0))})))))(t))&&(Se(t),!S(se))){const e=Ae();Xe(),Ve(e)}})),delTables:Xe,delTable:e=>qe((e=>R(se,e)?Oe(e):0),e),delRow:(e,t)=>qe(((e,t)=>y(J(se,e),(n=>R(n,t)?je(e,n,t):0))),e,t),delCell:(e,t,n,s)=>qe(((e,t,n)=>y(J(se,e),(r=>y(J(r,t),(o=>R(o,n)?xe(e,r,t,o,n,s):0))))),e,t,n),delSchema:()=>qe((()=>{Se({}),e=!1})),transaction:Ye,startTransaction:Ze,finishTransaction:$e,forEachTable:e=>I(se,((t,n)=>e(n,(e=>I(t,((t,n)=>e(n,(e=>F(t,e))))))))),forEachRow:(e,t)=>I(J(se,X(e)),((e,n)=>t(n,(t=>F(e,t))))),forEachCell:(e,t,n)=>F(J(J(se,X(e)),X(t)),n),addSortedRowIdsListener:(e,t,n,s,r,o,l)=>{let a=Ke(e,t,n,s,r);return Te((()=>{const l=Ke(e,t,n,s,r);var i,c,d;c=a,u(i=l)===u(c)&&(d=(e,t)=>c[t]===e,i.every(d))||(a=l,o(et,e,t,n,s,r,a))}),ie[l?1:0],[e,t])},addWillFinishTransactionListener:e=>Te(e,he[0]),addDidFinishTransactionListener:e=>Te(e,he[1]),callListener:e=>(ve(e,[Ge,He,Qe],(e=>g(e[2])?[]:Q(Ue(...e)))),et),delListener:e=>(be(e),et),getListenerStats:()=>({}),createStore:ee};return q({Tables:[0,re],TableIds:[0,oe],Table:[1,le],RowIds:[1,ae],Row:[2,ce],CellIds:[2,de],Cell:[3,ue],InvalidCell:[3,fe]},(([e,t],n)=>{et["add"+n+"Listener"]=(...n)=>Te(n[e],t[n[e+1]?1:0],e>0?f(n,0,e):void 0)})),B(et)};e.createStore=ee,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),r=t(!0),o=t(0),l=t(t),a="type",i="default",c=(e,t)=>e.forEach(t),d=(e,t)=>e.map(t),u=e=>e.length,f=(e,t,n)=>e.slice(t,n),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>{return g(t,Map)?(n=[...t],s=(e,[t,n])=>(e[t]=n,e),r={},n.reduce(s,r)):t;var n,s,r})),b=JSON.parse,p=isFinite,g=(e,t)=>e instanceof t,v=e=>null==e,y=(e,t,n)=>v(e)?n?.():t(e),w=e=>e==s||e==r,R=(e,t)=>e?.has(t)??!1,S=e=>v(e)||0==(e=>e.size)(e),C=e=>e.clear(),I=(e,t)=>e?.forEach(t),L=(e,t)=>e?.delete(t),m=e=>new Map(e),E=e=>[...e?.keys()??[]],J=(e,t)=>e?.get(t),F=(e,t)=>I(e,((e,n)=>t(n,e))),O=(e,t,n)=>v(n)?(L(e,t),e):e?.set(t,n),j=(e,t,n)=>(R(e,t)||O(e,t,n()),J(e,t)),x=(e,t,n)=>{const s={},r=t??(e=>e);return I(e,((e,t)=>y(r(e),(e=>n?.(e)?0:s[t]=e)))),s},z=(e,t)=>{const n=m(),s=t??(e=>e);return I(e,((e,t)=>n.set(t,s(e)))),n},M=e=>z(e,z),k=(e,t,n,s,r=0)=>y((n?j:J)(e,t[r],r>u(t)-2?n:m),(o=>{if(r>u(t)-2)return s?.(o)&&O(e,t[r]),o;const l=k(o,t,n,s,r+1);return S(o)&&O(e,t[r]),l})),N=Object,P=N.keys,_=N.isFrozen,B=N.freeze,D=(e,t)=>!v(((e,t)=>y(e,(e=>e[t])))(e,t)),W=(e,t)=>delete e[t],$=(e,t)=>c(N.entries(e),(([e,n])=>t(n,e))),q=e=>{return t=P(e),0==u(t);var t},A=e=>new Set(e),G=(e,t)=>e?.add(t),H=/^\d+$/,K=()=>{const e=[];let t=0;return[()=>e.shift()??n+t++,t=>{H.test(t)&&u(e)<1e3&&h(e,t)}]},Q=e=>{let t;const[s,r]=K(),o=m();return[(r,l,a)=>{t??=e();const i=s();return O(o,i,[r,l,a]),G(k(l,a??[n],A),i),i},(e,s,...r)=>c(((e,t=[n])=>{const s=[],r=(e,n)=>n==u(t)?h(s,e):null===t[n]?I(e,(e=>r(e,n+1))):c([t[n],null],(t=>r(J(e,t),n+1)));return r(e,0),s})(e,s),(e=>I(e,(e=>J(o,e)[0](t,...s??[],...r))))),e=>y(J(o,e),(([,t,s])=>(k(t,s??[n],void 0,(t=>(L(t,e),S(t)?1:0))),O(o,e),r(e),s))),(e,n,s)=>y(J(o,e),(([e,,r=[]])=>{const o=(...l)=>{const a=u(l);a==u(r)?e(t,...l,...s(l)):v(r[a])?c(n[a](...l),(e=>o(...l,e))):o(...l,r[a])};o()}))]},U=e=>[e,e],V=()=>[m(),m()],X=e=>{const n=t(e);return w(n)||n==o&&p(e)?n:void 0},Y=e=>n+e,Z=(e,t,n,s=O)=>{const r=(o=E(e),l=e=>!D(t,e),o.filter(l));var o,l;return c(P(t),(s=>n(e,s,t[s]))),c(r,(t=>s(e,t))),e},ee=(e,t,n)=>v(e)||!(e=>g(e,N)&&e.constructor==N)(e)||q(e)||_(e)?(n?.(),!1):($(e,((n,s)=>{t(n,s)||W(e,s)})),!q(e)),te=(e,t,n)=>O(e,t,J(e,t)==-n?void 0:n),ne=()=>{let e,n,s=0;const r=m(),p=m(),g=m(),k=m(),N=m(),P=m(),_=m(),H=m(),se=m(),re=V(),oe=V(),le=V(),ae=V(),ie=V(),ce=V(),de=V(),ue=V(),fe=V(),he=V(),[Te,be,pe,ge]=Q((()=>et)),ve=(t,n)=>(!e||R(P,n)||Pe(n))&&ee(t,((e,t)=>ye(n,t,e)),(()=>Pe(n))),ye=(e,t,n,s)=>ee(s?n:Re(n,e,t),((s,r)=>y(we(e,t,r,s),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Pe(e,t))),we=(t,n,s,r)=>e?y(J(J(P,t),s),(e=>X(r)!=e.type?Pe(t,n,s,r,e.default):r),(()=>Pe(t,n,s,r))):v(X(r))?Pe(t,n,s,r):r,Re=(e,t,n)=>(y(J(_,t),(([s,r])=>{I(s,((t,n)=>{D(e,n)||(e[n]=t)})),I(r,(s=>{D(e,s)||Pe(t,n,s)}))})),e),Se=e=>Z(P,e,((e,t,n)=>{const s=m(),r=A();Z(j(P,t,m),n,((e,t,n)=>{O(e,t,n),y(n.default,(e=>O(s,t,e)),(()=>G(r,t)))})),O(_,t,[s,r])}),((e,t)=>{O(P,t),O(_,t)})),Ce=e=>Z(se,e,((e,t,n)=>Ie(t,n)),((e,t)=>Oe(t))),Ie=(e,t)=>Z(j(se,e,(()=>(ze(e,1),m()))),t,((t,n,s)=>Le(e,t,n,s)),((t,n)=>je(e,t,n))),Le=(e,t,n,s,r)=>Z(j(t,n,(()=>(Me(e,n,1),m()))),s,((t,s,r)=>me(e,n,t,s,r)),((s,o)=>xe(e,t,n,s,o,r))),me=(e,t,n,s,r)=>{R(n,s)||ke(e,t,s,1);const o=J(n,s);r!==o&&(Ne(e,t,s,o,r),O(n,s,r))},Ee=(e,t,n,s,r)=>y(J(t,n),(t=>me(e,n,t,s,r)),(()=>Le(e,t,n,Re({[s]:r},e,n)))),Je=e=>{const[t]=j(H,e,K),n=t();return R(J(se,e),n)?Je(e):n},Fe=e=>J(se,e)??Ie(e,{}),Oe=e=>Ie(e,{}),je=(e,t,n)=>{const[,s]=j(H,e,K);s(n),Le(e,t,n,{},!0)},xe=(e,t,n,s,r,o)=>{const l=J(J(_,e)?.[0],r);if(!v(l)&&!o)return me(e,n,s,r,l);const a=t=>{Ne(e,n,t,J(s,t)),ke(e,n,t,-1),O(s,t)};v(l)?a(r):F(s,a),S(s)&&(Me(e,n,-1),S(O(t,n))&&(ze(e,-1),O(se,e)))},ze=(e,t)=>te(r,e,t),Me=(e,t,n)=>te(j(p,e,m),t,n),ke=(e,t,n,s)=>te(j(j(g,e,m),t,m),n,s),Ne=(e,t,n,s,r)=>j(j(j(k,e,m),t,m),n,(()=>[s,0]))[1]=r,Pe=(e,t,n,s,r)=>(h(j(j(j(N,e,m),t,m),n,(()=>[])),s),r),_e=(e,t,n)=>y(J(J(J(k,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...U(Qe(e,t,n))])),Be=e=>S(N)||S(fe[e])?0:I(e?z(N,M):N,((t,n)=>I(t,((t,s)=>I(t,((t,r)=>be(fe[e],[n,s,r],t))))))),De=(e,t,n)=>{if(!S(t))return be(e,n),1},We=e=>{const t=S(ie[e]),n=S(de[e])&&S(ae[e])&&t&&S(oe[e]),s=S(ue[e])&&S(ce[e])&&S(le[e])&&S(re[e]);if(!n||!s){const o=e?[z(r),M(p),z(g,M),z(k,M)]:[r,p,g,k];if(!n){I(o[2],((t,n)=>I(t,((t,s)=>De(de[e],t,[n,s])))));const n=A();I(o[1],((s,r)=>{De(ae[e],s,[r])&&!t&&(be(ie[e],[r,null]),G(n,r))})),t||I(o[3],((t,s)=>{if(!R(n,s)){const n=A();I(t,(e=>I(e,(([t,s],r)=>s!==t?G(n,r):L(e,r))))),I(n,(t=>be(ie[e],[s,t])))}})),De(oe[e],o[0])}if(!s){let t;I(o[3],((n,s)=>{let r;I(n,((n,o)=>{let l;I(n,(([n,a],i)=>{a!==n&&(be(ue[e],[s,o,i],a,n,_e),t=r=l=1)})),l&&be(ce[e],[s,o],_e)})),r&&be(le[e],[s],_e)})),t&&be(re[e],void 0,_e)}}},$e=(e,...t)=>(Xe((()=>e(...d(t,Y)))),et),qe=()=>x(se,(e=>x(e,x))),Ae=()=>E(se),Ge=e=>E(J(se,Y(e))),He=(e,t,n,s=0,r)=>{const o=[];return F(J(se,Y(e)),((e,n)=>h(o,[v(t)?e:J(n,Y(t)),e]))),d(f(o.sort((([e],[t])=>(e<t?-1:1)*(n?-1:1))),s,v(r)?r:s+r),(([,e])=>e))},Ke=(e,t)=>E(J(J(se,Y(e)),Y(t))),Qe=(e,t,n)=>J(J(J(se,Y(e)),Y(t)),Y(n)),Ue=e=>$e((()=>(e=>ee(e,ve,Pe))(e)?Ce(e):0)),Ve=()=>$e((()=>Ce({}))),Xe=(e,t)=>{if(-1==s)return;Ye();const n=e?.();return Ze(t),n},Ye=()=>(s++,et),Ze=e=>(s>0&&(s--,0==s&&(n=!S(k),s=1,Be(1),n&&We(1),s=-1,e?.(x(k,(e=>x(e,(e=>x(e,(e=>[...e]),(([e,t])=>e===t))),q)),q),x(N,(e=>x(e,x))))&&(s=1,I(k,((e,t)=>I(e,((e,n)=>I(e,(([e],s)=>((e,t,n,s,r)=>v(r)?e.delCell(t,n,s,!0):e.setCell(t,n,s,r))(et,t,n,s,e))))))),s=-1,n=!1),be(he[0],void 0,n),Be(0),n&&We(0),be(he[1],void 0,n),s=0,c([k,N,r,p,g],C))),et),et={getTables:qe,getTableIds:Ae,getTable:e=>x(J(se,Y(e)),x),getRowIds:Ge,getSortedRowIds:He,getRow:(e,t)=>x(J(J(se,Y(e)),Y(t))),getCellIds:Ke,getCell:Qe,hasTables:()=>!S(se),hasTable:e=>R(se,Y(e)),hasRow:(e,t)=>R(J(se,Y(e)),Y(t)),hasCell:(e,t,n)=>R(J(J(se,Y(e)),Y(t)),Y(n)),getJson:()=>T(se),getSchemaJson:()=>T(P),setTables:Ue,setTable:(e,t)=>$e((e=>ve(t,e)?Ie(e,t):0),e),setRow:(e,t,n)=>$e(((e,t)=>ye(Y(e),Y(t),n)?Le(Y(e),Fe(Y(e)),Y(t),n):0),e,t),addRow:(e,t)=>Xe((()=>{let n;return ye(e,n,t)&&(e=Y(e),Le(e,Fe(e),n=Je(e),t)),n})),setPartialRow:(e,t,n)=>$e(((e,t)=>{if(ye(e,t,n,1)){const s=Fe(e);$(n,((n,r)=>Ee(e,s,t,r,n)))}}),e,t),setCell:(e,n,s,r)=>$e(((e,n,s)=>y(we(e,n,s,t(r)==l?r(Qe(e,n,s)):r),(t=>Ee(e,Fe(e),n,s,t)))),e,n,s),setJson:e=>{try{"{}"===e?Ve():Ue(b(e))}catch{}return et},setSchema:t=>$e((()=>{if((e=(e=>ee(e,(e=>ee(e,(e=>{if(!ee(e,((e,t)=>[a,i].includes(t))))return!1;const t=e.type;return!(!w(t)&&t!=o||(X(e.default)!=t&&W(e,i),0))})))))(t))&&(Se(t),!S(se))){const e=qe();Ve(),Ue(e)}})),delTables:Ve,delTable:e=>$e((e=>R(se,e)?Oe(e):0),e),delRow:(e,t)=>$e(((e,t)=>y(J(se,e),(n=>R(n,t)?je(e,n,t):0))),e,t),delCell:(e,t,n,s)=>$e(((e,t,n)=>y(J(se,e),(r=>y(J(r,t),(o=>R(o,n)?xe(e,r,t,o,n,s):0))))),e,t,n),delSchema:()=>$e((()=>{Se({}),e=!1})),transaction:Xe,startTransaction:Ye,finishTransaction:Ze,forEachTable:e=>I(se,((t,n)=>e(n,(e=>I(t,((t,n)=>e(n,(e=>F(t,e))))))))),forEachRow:(e,t)=>I(J(se,Y(e)),((e,n)=>t(n,(t=>F(e,t))))),forEachCell:(e,t,n)=>F(J(J(se,Y(e)),Y(t)),n),addSortedRowIdsListener:(e,t,n,s,r,o,l)=>{let a=He(e,t,n,s,r);return Te((()=>{const l=He(e,t,n,s,r);var i,c,d;c=a,u(i=l)===u(c)&&(d=(e,t)=>c[t]===e,i.every(d))||(a=l,o(et,e,t,n,s,r,a))}),ie[l?1:0],[e,t])},addWillFinishTransactionListener:e=>Te(e,he[0]),addDidFinishTransactionListener:e=>Te(e,he[1]),callListener:e=>(ge(e,[Ae,Ge,Ke],(e=>v(e[2])?[]:U(Qe(...e)))),et),delListener:e=>(pe(e),et),getListenerStats:()=>({}),createStore:ne};return $({Tables:[0,re],TableIds:[0,oe],Table:[1,le],RowIds:[1,ae],Row:[2,ce],CellIds:[2,de],Cell:[3,ue],InvalidCell:[3,fe]},(([e,t],n)=>{et["add"+n+"Listener"]=(...n)=>Te(n[e],t[n[e+1]?1:0],e>0?f(n,0,e):void 0)})),B(et)};e.createStore=ne,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),l="type",d="default",c="utf8",u="Listener",f="Result",h="add",g="Table",w="RowIds",L="CellIds",p="Cell",v=(e,t)=>e.includes(t),R=(e,t)=>e.every(t),I=(e,t)=>R(e,((s,n)=>0==n||t(e[n-1],s)<=0)),y=(e,t)=>e.sort(t),S=(e,t)=>e.forEach(t),T=(e,t)=>e.map(t),b=e=>E(e,((e,t)=>e+t),0),C=e=>e.length,m=e=>0==C(e),E=(e,t,s)=>e.reduce(t,s),k=(e,t,s)=>e.slice(t,s),M=(e,...t)=>e.push(...t),x=e=>e.pop(),D=e=>JSON.stringify(e,((e,t)=>Q(t,Map)?E([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),A=JSON.parse,F=Math.max,P=Math.min,J=isFinite,Q=(e,t)=>e instanceof t,j=e=>null==e,O=(e,t,s)=>j(e)?s?.():t(e),z=e=>e==o||e==r,N=e=>s(e)==i,W=()=>{},B=e=>e.size,_=(e,t)=>e?.has(t)??!1,q=e=>j(e)||0==B(e),H=e=>[...e?.values()??[]],G=e=>e.clear(),K=(e,t)=>e?.forEach(t),U=(e,t)=>e?.delete(t),V=e=>new Map(e),X=e=>[...e?.keys()??[]],Y=(e,t)=>e?.get(t),Z=(e,t)=>K(e,((e,s)=>t(s,e))),$=(e,t,s)=>j(s)?(U(e,t),e):e?.set(t,s),ee=(e,t,s)=>(_(e,t)||$(e,t,s()),Y(e,t)),te=(e,t,s)=>{const n={},o=t??(e=>e);return K(e,((e,t)=>O(o(e),(e=>s?.(e)?0:n[t]=e)))),n},se=(e,t)=>{const s=V(),n=t??(e=>e);return K(e,((e,t)=>s.set(t,n(e)))),s},ne=e=>se(e,se),oe=(e,t,s,n,o=0)=>O((s?ee:Y)(e,t[o],o>C(t)-2?s:V),(r=>{if(o>C(t)-2)return n?.(r)&&$(e,t[o]),r;const a=oe(r,t,s,n,o+1);return q(r)&&$(e,t[o]),a})),re=e=>new Set(e),ae=(e,t)=>e?.add(t),ie=(e,t,s)=>{const n=e.hasRow,o=V(),r=V(),a=V(),i=V(),l=V(),d=(t,s,...n)=>{const o=ee(l,t,re);return S(n,(t=>ae(o,t)&&s&&e.callListener(t))),n},c=(t,...s)=>O(Y(l,t),(n=>{S(m(s)?H(n):s,(t=>{e.delListener(t),U(n,t)})),q(n)&&$(l,t)})),u=(e,s)=>{$(o,e,s),_(r,e)||($(r,e,t()),$(a,e,V()),$(i,e,V()))},f=e=>{$(o,e),$(r,e),$(a,e),$(i,e),c(e)};return[()=>e,()=>X(o),e=>Z(r,e),e=>_(r,e),e=>Y(o,e),e=>Y(r,e),(e,t)=>$(r,e,t),u,(t,o,r,l,f)=>{u(t,o);const h=V(),g=V(),w=Y(a,t),L=Y(i,t),p=t=>{const r=s=>e.getCell(o,t,s),a=Y(w,t),i=n(o,t)?s(l(r,t)):void 0;if(a!=i&&$(h,t,[a,i]),!j(f)){const e=Y(L,t),s=n(o,t)?f(r,t):void 0;e!=s&&$(g,t,s)}},v=e=>{r((()=>{K(h,(([,e],t)=>$(w,t,e))),K(g,((e,t)=>$(L,t,e)))}),h,g,w,L,e),G(h),G(g)};Z(w,p),e.hasTable(o)&&S(e.getRowIds(o),(e=>{_(w,e)||p(e)})),v(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>p(s))),e.addTableListener(o,(()=>v())))},f,()=>Z(l,f),d,c]},le=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),de=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},ce=e=>{let t,s=0;const o=[],r=V();return[(a,i,l)=>{t??=e();const d=x(o)??n+s++;return $(r,d,[a,i,l]),ae(oe(i,l??[n],re),d),d},(e,s,...o)=>S(((e,t=[n])=>{const s=[],o=(e,n)=>n==C(t)?M(s,e):null===t[n]?K(e,(e=>o(e,n+1))):S([t[n],null],(t=>o(Y(e,t),n+1)));return o(e,0),s})(e,s),(e=>K(e,(e=>Y(r,e)[0](t,...s??[],...o))))),e=>O(Y(r,e),(([,t,s])=>(oe(t,s??[n],void 0,(t=>(U(t,e),q(t)?1:0))),$(r,e),C(o)<1e3&&M(o,e),s))),(e,s,n)=>O(Y(r,e),(([e,,o=[]])=>{const r=(...a)=>{const i=C(a);i==C(o)?e(t,...a,...n(a)):j(o[i])?S(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},ue=Object,fe=ue.keys,he=ue.isFrozen,ge=ue.freeze,we=(e,t)=>!j(((e,t)=>O(e,(e=>e[t])))(e,t)),Le=(e,t)=>delete e[t],pe=(e,t)=>S(ue.entries(e),(([e,s])=>t(s,e))),ve=e=>m(fe(e)),Re=e=>{const t=s(e);return z(t)||t==a&&J(e)?t:void 0},Ie=(e,t,s,n,o)=>j(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),ye=de((e=>{let t,s,o,r=100,a=V(),i=1;const l=V(),d=V(),[c,u,f]=ce((()=>J)),h=V(),g=V(),w=[],L=[],p=(t,s)=>{i=0,e.transaction((()=>K(Y(h,s),((s,n)=>K(s,((s,o)=>K(s,((s,r)=>Ie(e,n,o,r,s[t]))))))))),i=1},R=e=>{$(h,e),$(g,e),u(d,[e])},I=(e,t)=>S(((e,t)=>e.splice(0,t))(e,t??C(e)),R),y=()=>I(w,C(w)-r),T=e.addCellListener(null,null,null,((e,s,n,r,l,d)=>{if(i){O(t,(()=>{M(w,t),y(),I(L),t=void 0,o=1}));const e=ee(a,s,V),i=ee(e,n,V),c=ee(i,r,(()=>[d,void 0]));c[1]=l,c[0]===l&&q($(i,r))&&q($(e,n))&&q($(a,s))&&(t=x(w),o=1),D()}})),b=(e="")=>(j(t)&&(t=n+s++,$(h,t,a),F(t,e),a=V(),o=1),t),E=()=>{m(w)||(L.unshift(b()),p(0,t),t=x(w),o=1)},k=()=>{m(L)||(M(w,t),t=L.shift(),p(1,t),o=1)},D=()=>{o&&(u(l),o=0)},A=e=>{const t=b(e);return D(),t},F=(e,t)=>(P(e)&&Y(g,e)!==t&&($(g,e,t),u(d,[e])),J),P=e=>_(h,e),J={setSize:e=>(r=e,y(),J),addCheckpoint:A,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...L]],forEachCheckpoint:e=>Z(g,e),hasCheckpoint:P,getCheckpoint:e=>Y(g,e),goBackward:()=>(E(),D(),J),goForward:()=>(k(),D(),J),goTo:e=>{const s=v(w,e)?E:v(L,e)?k:null;for(;!j(s)&&e!=t;)s();return D(),J},addCheckpointIdsListener:e=>c(e,l),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(f(e),J),clear:()=>(I(w),I(L),j(t)||R(t),t=void 0,s=0,A(),J),destroy:()=>{e.delListener(T)},getListenerStats:()=>({})};return ge(J.clear())})),Se=(e,t)=>e<t?-1:1,Te=e=>n+e,be=de((e=>{const t=V(),s=V(),[o,r,a,i,l,d,c,,u,f,h]=ie(e,V,(e=>j(e)?n:e+n)),[g,w,L]=ce((()=>v)),p=(t,s,n)=>{const o=l(t);K(n,((t,n)=>s(n,(s=>K(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},v={setIndexDefinition:(e,n,o,r,a,i=Se)=>{const l=j(a)?void 0:([e],[t])=>a(e,t);return u(e,n,((n,o,a,u,f,h)=>{let g=0;const L=re(),p=re(),v=d(e);if(K(o,(([e,t],s)=>{j(e)||(ae(L,e),O(Y(v,e),(t=>{U(t,s),q(t)&&($(v,e),g=1)}))),j(t)||(ae(L,t),_(v,t)||($(v,t,re()),g=1),ae(Y(v,t),s),j(r)||ae(p,t))})),n(),q(f)||(h?Z(v,(e=>ae(p,e))):Z(a,(e=>O(Y(u,e),(e=>ae(p,e))))),K(p,(e=>{const t=(t,s)=>i(Y(f,t),Y(f,s),e),s=[...Y(v,e)];I(s,t)||($(v,e,re(y(s,t))),ae(L,e))}))),(g||h)&&!j(l)){const t=[...v];I(t,l)||(c(e,V(y(t,l))),g=1)}g&&w(t,[e]),K(L,(t=>w(s,[e,t])))}),le(o),O(r,le)),v},delIndexDefinition:e=>(f(e),v),getStore:o,getIndexIds:r,forEachIndex:e=>a(((t,s)=>e(t,(e=>p(t,e,s))))),forEachSlice:(e,t)=>p(e,t,d(e)),hasIndex:i,hasSlice:(e,t)=>_(d(e),t),getTableId:l,getSliceIds:e=>X(d(e)),getSliceRowIds:(e,t)=>H(Y(d(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>g(n,s,[e,t]),delListener:e=>(L(e),v),destroy:h,getListenerStats:()=>({})};return ge(v)})),Ce=V([["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=>F(...e),(e,t)=>F(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:F(t,e)]],["min",[e=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["sum",[e=>b(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),me=(e,t,s,n,o,r=!1)=>{if(q(s))return;const[a,i,l,d]=o;return r||=j(e),K(n,(([s,n])=>{r||(e=j(s)?i?.(e,n,t++):j(n)?l?.(e,s,t--):d?.(e,n,s,t),r||=j(e))})),r?a(H(s),B(s)):e},Ee=de((e=>{const t=V(),[s,o,r,a,i,l,d,,c,u,f]=ie(e,W,(e=>isNaN(e)||j(e)||!0===e||!1===e||e===n?void 0:1*e)),[h,g,w]=ce((()=>L)),L={setMetricDefinition:(e,s,n,o,r,a,i)=>{const u=N(n)?[n,r,a,i]:Y(Ce,n)??Y(Ce,"sum");return c(e,s,((s,n,o,r,a,i)=>{const c=l(e),f=B(r);i||=j(c),s();let h=me(c,f,r,n,u,i);J(h)||(h=void 0),h!=c&&(d(e,h),g(t,[e],h,c))}),le(o,1)),L},delMetricDefinition:e=>(u(e),L),getStore:s,getMetricIds:o,forEachMetric:r,hasMetric:a,getTableId:i,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(w(e),L),destroy:f,getListenerStats:()=>({})};return ge(L)})),ke=(e,t,s,o,r)=>{let a,i=0;const l={load:async s=>{if(2!=i){i=1;const o=await t();j(o)||o==n?e.setTables(s):e.setJson(o),i=0}return l},startAutoLoad:async e=>(l.stopAutoLoad(),await l.load(e),o(l.load),l),stopAutoLoad:()=>(r(),l),save:async()=>(1!=i&&(i=2,await s(e.getJson()),i=0),l),startAutoSave:async()=>(await l.stopAutoSave().save(),a=e.addTablesListener((()=>l.save())),l),stopAutoSave:()=>(O(a,e.delListener),l),getStore:()=>e,destroy:()=>l.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ge(l)},Me="storage",xe=globalThis.window,De=(e,t,s)=>{let n;return ke(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},xe.addEventListener(Me,n)}),(()=>{xe.removeEventListener(Me,n),n=void 0}))},Ae=e=>e.headers.get("ETag"),Fe=de((e=>{const t=e.createStore,[s,o,r,a,i,,,l,,d,c,v,I]=ie(e,(()=>!0),W),y=t(),T=t(),b=V(),E=(e,t,...s)=>S(s,(s=>ae(ee(ee(b,t,V),e,re),s))),x=e=>{Z(Y(b,e),((e,t)=>K(t,(t=>e.delListener(t))))),S([T,y],(t=>t.delTable(e)))},D=(e,t,s)=>E(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),A={setQueryDefinition:(t,s,o)=>{l(t,s),x(t);const r=[],a=[[null,[s,null,null,[],V()]]],i=[],d=[],c=[];o({select:(e,t)=>{const s=N(e)?[C(r)+n,e]:[j(t)?e:t,s=>s(e,t)];return M(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=j(s)||N(t)?null:t,o=j(n)?t:s,r=[e,[e,n,N(o)?o:e=>e(o),[],V()]];return M(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>M(i,N(e)?e:j(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,N(t)?[t,s,n,o]:Y(Ce,t)??[(e,t)=>t]]];return M(d,r),{as:e=>r[0]=e}},having:(e,t)=>M(c,N(e)?e:s=>s(e)===t)});const u=V(r);if(q(u))return A;const f=V(a);Z(f,((e,[,t])=>O(Y(f,t),(({3:t})=>j(e)?0:M(t,e)))));const h=V(d);let g=y;if(q(h)&&m(c))g=T;else{D(t,g,T);const e=V();Z(h,((t,[s,n])=>ae(ee(e,s,re),[t,n])));const s=re();Z(u,(t=>_(e,t)?0:ae(s,t)));const n=V(),o=(s,n,o,r)=>O(s,(([s,a,i,l])=>{Z(n,((t,[n])=>{const a=ee(s,t,V),i=Y(a,o),d=r?void 0:n;if(i!==d){const s=re([[i,d]]),n=B(a);$(a,o,d),K(Y(e,t),(([e,t])=>{const o=me(l[e],n,a,s,t);l[e]=j(Re(o))?null:o}))}})),(q(a)||!R(c,(e=>e((e=>l[e]))))?T.delRow:T.setRow)(t,i,l)}));E(g,t,g.addRowListener(t,null,((r,a,i,l)=>{const d=[],c=[],u=V(),f=g.hasRow(t,i);let h=!f;K(s,(e=>{const[s,n,o]=l(t,i,e);M(d,n),M(c,o),h||=s})),Z(e,(e=>{const[s,,n]=l(t,i,e);(h||s)&&$(u,e,[n])})),h&&o(oe(n,d,void 0,(([,e,s])=>{if(U(e,i),q(e))return T.delRow(t,s),1})),u,i,1),f&&o(oe(n,c,(()=>{const e={};return K(s,(s=>e[s]=g.getCell(t,i,s))),[V(),re(),T.addRow(t,e,1),e]}),(([,e])=>{ae(e,i)})),u,i)})))}D(t,e,g);const w=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);S(a,(s=>{const[o,,r,a,i]=Y(f,s),d=r?.(l,n),[c,u]=Y(i,n)??[];d!=c&&(j(u)||I(t,u),$(i,n,j(d)?null:[d,...v(t,1,e.addRowListener(o,d,(()=>w(n,o,d,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...j(o)?[s,n,t]:t===s?[s,n,o]:[Y(f,t)?.[0],Y(Y(f,t)?.[4],n)?.[0],o]);g.transaction((()=>R(i,(e=>e(o)))?Z(u,((e,s)=>Ie(g,t,n,e,s(o,n)))):g.delRow(t,n)))})(n)},{3:L}=Y(f,null);return g.transaction((()=>v(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?w(r,s,r,L):(g.delRow(t,r),K(f,(({4:e})=>O(Y(e,r),(([,s])=>{I(t,s),$(e,r)})))))}))))),A},delQueryDefinition:e=>(x(e),d(e),A),getStore:s,getQueryIds:o,forEachQuery:r,hasQuery:a,getTableId:i,delListener:e=>(T.delListener(e),A),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=T.getListenerStats();return n}};return pe({[g]:[1,1],[w]:[0,1],SortedRowIds:[0,5],Row:[1,2],[L]:[0,2],[p]:[1,3]},(([e,t],s)=>{S(e?["get","has","forEach"]:["get"],(e=>A[e+f+s]=(...t)=>T[e+s](...t))),A[h+f+s+u]=(...e)=>T[h+s+u](...k(e,0,t),((s,...n)=>e[t](A,...n)))})),ge(A)})),Pe=de((e=>{const t=V(),s=V(),o=V(),r=V(),[a,i,l,d,c,u,,,f,h,g]=ie(e,(()=>[V(),V(),V(),V()]),(e=>j(e)?void 0:e+n)),[w,L,p]=ce((()=>y)),v=(e,t,s)=>O(u(e),(([n,,o])=>{if(!_(o,t)){const r=re();if(c(e)!=I(e))ae(r,t);else{let e=t;for(;!j(e)&&!_(r,e);)ae(r,e),e=Y(n,e)}if(s)return r;$(o,t,r)}return Y(o,t)})),R=(e,t)=>O(u(e),(([,,e])=>$(e,t))),I=e=>Y(t,e),y={setRelationshipDefinition:(e,n,a,i)=>($(t,e,a),f(e,n,((t,n)=>{const a=re(),i=re(),l=re(),[d,c]=u(e);K(n,(([t,s],n)=>{j(t)||(ae(i,t),O(Y(c,t),(e=>{U(e,n),q(e)&&$(c,t)}))),j(s)||(ae(i,s),_(c,s)||$(c,s,re()),ae(Y(c,s),n)),ae(a,n),$(d,n,s),Z(Y(r,e),(t=>{_(v(e,t),n)&&ae(l,t)}))})),t(),K(a,(t=>L(s,[e,t]))),K(i,(t=>L(o,[e,t]))),K(l,(t=>{R(e,t),L(r,[e,t])}))}),le(i)),y),delRelationshipDefinition:e=>($(t,e),h(e),y),getStore:a,getRelationshipIds:i,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(c(s),t))))),hasRelationship:d,getLocalTableId:c,getRemoteTableId:I,getRemoteRowId:(e,t)=>Y(u(e)?.[0],t),getLocalRowIds:(e,t)=>H(Y(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>j(u(e))?[t]:H(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>w(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>w(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),w(s,r,[e,t])),delListener:e=>(R(...p(e)),y),destroy:g,getListenerStats:()=>({})};return ge(y)})),Je=e=>[e,e],Qe=()=>[V(),V()],je=(e,t,s,n=$)=>{const o=(r=X(e),a=e=>!we(t,e),r.filter(a));var r,a;return S(fe(t),(n=>s(e,n,t[n]))),S(o,(t=>n(e,t))),e},Oe=(e,t,s)=>j(e)||!(e=>Q(e,ue)&&e.constructor==ue)(e)||ve(e)||he(e)?(s?.(),!1):(pe(e,((s,n)=>{t(s,n)||Le(e,n)})),!ve(e)),ze=(e,t,s)=>$(e,t,Y(e,t)==-s?void 0:s),Ne=()=>{let e,t,s=0,o=0;const r=V(),i=V(),c=V(),f=V(),I=V(),b=V(),m=V(),E=V(),x=Qe(),F=Qe(),P=Qe(),J=Qe(),Q=Qe(),W=Qe(),B=Qe(),H=Qe(),oe=Qe(),ie=Qe(),[le,de,ue,fe]=ce((()=>ct)),he=(t,s)=>(!e||_(b,s)||Ke(s))&&Oe(t,((e,t)=>ye(s,t,e)),(()=>Ke(s))),ye=(e,t,s,n)=>Oe(n?s:Ce(s,e,t),((n,o)=>O(be(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Ke(e,t))),be=(t,s,n,o)=>e?O(Y(Y(b,t),n),(e=>Re(o)!=e.type?Ke(t,s,n,o,e.default):o),(()=>Ke(t,s,n,o))):j(Re(o))?Ke(t,s,n,o):o,Ce=(e,t,s)=>(O(Y(m,t),(([n,o])=>{K(n,((t,s)=>{we(e,s)||(e[s]=t)})),K(o,(n=>{we(e,n)||Ke(t,s,n)}))})),e),me=e=>je(b,e,((e,t,s)=>{const n=V(),o=re();je(ee(b,t,V),s,((e,t,s)=>{$(e,t,s),O(s.default,(e=>$(n,t,e)),(()=>ae(o,t)))})),$(m,t,[n,o])}),((e,t)=>{$(b,t),$(m,t)})),Ee=e=>je(E,e,((e,t,s)=>ke(t,s)),((e,t)=>Pe(t))),ke=(e,t)=>je(ee(E,e,(()=>(_e(e,1),V()))),t,((t,s,n)=>Me(e,t,s,n)),((t,s)=>We(e,t,s))),Me=(e,t,s,n,o)=>je(ee(t,s,(()=>(qe(e,s,1),V()))),n,((t,n,o)=>xe(e,s,t,n,o)),((n,r)=>Be(e,t,s,n,r,o))),xe=(e,t,s,n,o)=>{_(s,n)||He(e,t,n,1);const r=Y(s,n);o!==r&&(Ge(e,t,n,r,o),$(s,n,o))},De=(e,t,s,n,o)=>O(Y(t,s),(t=>xe(e,s,t,n,o)),(()=>Me(e,t,s,Ce({[n]:o},e,s)))),Ae=e=>{const t=n+s++;return _(e,t)?Ae(e):t},Fe=e=>Y(E,e)??ke(e,{}),Pe=e=>ke(e,{}),We=(e,t,s)=>Me(e,t,s,{},!0),Be=(e,t,s,n,o,r)=>{const a=Y(Y(m,e)?.[0],o);if(!j(a)&&!r)return xe(e,s,n,o,a);const i=t=>{Ge(e,s,t,Y(n,t)),He(e,s,t,-1),$(n,t)};j(a)?i(o):Z(n,i),q(n)&&(qe(e,s,-1),q($(t,s))&&(_e(e,-1),$(E,e)))},_e=(e,t)=>ze(r,e,t),qe=(e,t,s)=>ze(ee(i,e,V),t,s),He=(e,t,s,n)=>ze(ee(ee(c,e,V),t,V),s,n),Ge=(e,t,s,n,o)=>ee(ee(ee(f,e,V),t,V),s,(()=>[n,0]))[1]=o,Ke=(e,t,s,n,o)=>(M(ee(ee(ee(I,e,V),t,V),s,(()=>[])),n),o),Ue=(e,t,s)=>O(Y(Y(Y(f,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Je(ot(e,t,s))])),Ve=e=>q(I)||q(oe[e])?0:K(e?se(I,ne):I,((t,s)=>K(t,((t,n)=>K(t,((t,o)=>de(oe[e],[s,n,o],t))))))),Xe=(e,t,s)=>{if(!q(t))return de(e,s),1},Ye=e=>{const t=q(Q[e]),s=q(B[e])&&q(J[e])&&t&&q(F[e]),n=q(H[e])&&q(W[e])&&q(P[e])&&q(x[e]);if(!s||!n){const o=e?[se(r),ne(i),se(c,ne),se(f,ne)]:[r,i,c,f];if(!s){K(o[2],((t,s)=>K(t,((t,n)=>Xe(B[e],t,[s,n])))));const s=re();K(o[1],((n,o)=>{Xe(J[e],n,[o])&&!t&&(de(Q[e],[o,null]),ae(s,o))})),t||K(o[3],((t,n)=>{if(!_(s,n)){const s=re();K(t,(e=>K(e,(([t,n],o)=>n!==t?ae(s,o):U(e,o))))),K(s,(t=>de(Q[e],[n,t])))}})),Xe(F[e],o[0])}if(!n){let t;K(o[3],((s,n)=>{let o;K(s,((s,r)=>{let a;K(s,(([s,i],l)=>{i!==s&&(de(H[e],[n,r,l],i,s,Ue),t=o=a=1)})),a&&de(W[e],[n,r],Ue)})),o&&de(P[e],[n],Ue)})),t&&de(x[e],void 0,Ue)}}},Ze=(e,...t)=>(it((()=>e(...T(t,Te)))),ct),$e=()=>te(E,(e=>te(e,te))),et=()=>X(E),tt=e=>X(Y(E,Te(e))),st=(e,t,s,n=0,o)=>{const r=[];return Z(Y(E,Te(e)),((e,s)=>M(r,[j(t)?e:Y(s,Te(t)),e]))),T(k(y(r,(([e],[t])=>Se(e,t)*(s?-1:1))),n,j(o)?o:n+o),(([,e])=>e))},nt=(e,t)=>X(Y(Y(E,Te(e)),Te(t))),ot=(e,t,s)=>Y(Y(Y(E,Te(e)),Te(t)),Te(s)),rt=e=>Ze((()=>(e=>Oe(e,he,Ke))(e)?Ee(e):0)),at=()=>Ze((()=>Ee({}))),it=(e,t)=>{if(-1==o)return;lt();const s=e?.();return dt(t),s},lt=()=>(o++,ct),dt=e=>(o>0&&(o--,0==o&&(t=!q(f),o=1,Ve(1),t&&Ye(1),o=-1,e?.(te(f,(e=>te(e,(e=>te(e,(e=>[...e]),(([e,t])=>e===t))),ve)),ve),te(I,(e=>te(e,te))))&&(o=1,K(f,((e,t)=>K(e,((e,s)=>K(e,(([e],n)=>Ie(ct,t,s,n,e))))))),o=-1,t=!1),de(ie[0],void 0,t),Ve(0),t&&Ye(0),de(ie[1],void 0,t),o=0,S([f,I,r,i,c],G))),ct),ct={getTables:$e,getTableIds:et,getTable:e=>te(Y(E,Te(e)),te),getRowIds:tt,getSortedRowIds:st,getRow:(e,t)=>te(Y(Y(E,Te(e)),Te(t))),getCellIds:nt,getCell:ot,hasTables:()=>!q(E),hasTable:e=>_(E,Te(e)),hasRow:(e,t)=>_(Y(E,Te(e)),Te(t)),hasCell:(e,t,s)=>_(Y(Y(E,Te(e)),Te(t)),Te(s)),getJson:()=>D(E),getSchemaJson:()=>D(b),setTables:rt,setTable:(e,t)=>Ze((e=>he(t,e)?ke(e,t):0),e),setRow:(e,t,s)=>Ze(((e,t)=>ye(Te(e),Te(t),s)?Me(Te(e),Fe(Te(e)),Te(t),s):0),e,t),addRow:(e,t,s)=>it((()=>{e=Te(e);const n=ye(e,void 0,t),o=n||s?Ae(Y(E,e)):void 0;return n&&Me(e,Fe(e),o,t),o})),setPartialRow:(e,t,s)=>Ze(((e,t)=>{if(ye(e,t,s,1)){const n=Fe(e);pe(s,((s,o)=>De(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ze(((e,t,s)=>O(be(e,t,s,N(n)?n(ot(e,t,s)):n),(n=>De(e,Fe(e),t,s,n)))),e,t,s),setJson:e=>{try{"{}"===e?at():rt(A(e))}catch{}return ct},setSchema:t=>Ze((()=>{if((e=(e=>Oe(e,(e=>Oe(e,(e=>{if(!Oe(e,((e,t)=>v([l,d],t))))return!1;const t=e.type;return!(!z(t)&&t!=a||(Re(e.default)!=t&&Le(e,d),0))})))))(t))&&(me(t),!q(E))){const e=$e();at(),rt(e)}})),delTables:at,delTable:e=>Ze((e=>_(E,e)?Pe(e):0),e),delRow:(e,t)=>Ze(((e,t)=>O(Y(E,e),(s=>_(s,t)?We(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Ze(((e,t,s)=>O(Y(E,e),(o=>O(Y(o,t),(r=>_(r,s)?Be(e,o,t,r,s,n):0))))),e,t,s),delSchema:()=>Ze((()=>{me({}),e=!1})),transaction:it,startTransaction:lt,finishTransaction:dt,forEachTable:e=>K(E,((t,s)=>e(s,(e=>K(t,((t,s)=>e(s,(e=>Z(t,e))))))))),forEachRow:(e,t)=>K(Y(E,Te(e)),((e,s)=>t(s,(t=>Z(e,t))))),forEachCell:(e,t,s)=>Z(Y(Y(E,Te(e)),Te(t)),s),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=st(e,t,s,n,o);return le((()=>{const a=st(e,t,s,n,o);var l,d;d=i,C(l=a)===C(d)&&R(l,((e,t)=>d[t]===e))||(i=a,r(ct,e,t,s,n,o,i))}),Q[a?1:0],[e,t])},addWillFinishTransactionListener:e=>le(e,ie[0]),addDidFinishTransactionListener:e=>le(e,ie[1]),callListener:e=>(fe(e,[et,tt,nt],(e=>j(e[2])?[]:Je(ot(...e)))),ct),delListener:e=>(ue(e),ct),getListenerStats:()=>({}),createStore:Ne};return pe({Tables:[0,x],TableIds:[0,F],[g]:[1,P],[w]:[1,J],Row:[2,W],[L]:[2,B],[p]:[3,H],InvalidCell:[3,oe]},(([e,t],s)=>{ct[h+s+u]=(...s)=>le(s[e],t[s[e+1]?1:0],e>0?k(s,0,e):void 0)})),ge(ct)};e.createCheckpoints=ye,e.createCustomPersister=ke,e.createFilePersister=(e,s)=>{let n;return ke(e,(async()=>{try{return await t.promises.readFile(s,c)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,c)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=be,e.createLocalPersister=(e,t)=>De(e,t,localStorage),e.createMetrics=Ee,e.createQueries=Fe,e.createRelationships=Pe,e.createRemotePersister=(e,t,s,n)=>{let o,r;return ke(e,(async()=>{const e=await fetch(t);return r=Ae(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Ae(s);j(r)||j(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{O(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>De(e,t,sessionStorage),e.createStore=Ne,e.defaultSorter=Se,e.id=Te,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
1
+ var e,t;e=this,t=function(e,t){"use strict";const s=e=>typeof e,n="",o=s(n),r=s(!0),a=s(0),i=s(s),l="type",c="default",d="utf8",u="Listener",f="Result",h="add",g="Table",w="RowIds",L="CellIds",p="Cell",v=(e,t)=>e.includes(t),R=(e,t)=>e.every(t),I=(e,t)=>R(e,((s,n)=>0==n||t(e[n-1],s)<=0)),y=(e,t)=>e.sort(t),S=(e,t)=>e.forEach(t),T=(e,t)=>e.map(t),b=e=>E(e,((e,t)=>e+t),0),C=e=>e.length,m=e=>0==C(e),E=(e,t,s)=>e.reduce(t,s),k=(e,t,s)=>e.slice(t,s),M=(e,...t)=>e.push(...t),x=e=>e.pop(),D=e=>e.shift(),A=e=>JSON.stringify(e,((e,t)=>j(t,Map)?E([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),F=JSON.parse,P=Math.max,J=Math.min,Q=isFinite,j=(e,t)=>e instanceof t,O=e=>null==e,z=(e,t,s)=>O(e)?s?.():t(e),N=e=>e==o||e==r,W=e=>s(e)==i,B=()=>{},_=e=>e.size,q=(e,t)=>e?.has(t)??!1,H=e=>O(e)||0==_(e),$=e=>[...e?.values()??[]],G=e=>e.clear(),K=(e,t)=>e?.forEach(t),U=(e,t)=>e?.delete(t),V=e=>new Map(e),X=e=>[...e?.keys()??[]],Y=(e,t)=>e?.get(t),Z=(e,t)=>K(e,((e,s)=>t(s,e))),ee=(e,t,s)=>O(s)?(U(e,t),e):e?.set(t,s),te=(e,t,s)=>(q(e,t)||ee(e,t,s()),Y(e,t)),se=(e,t,s)=>{const n={},o=t??(e=>e);return K(e,((e,t)=>z(o(e),(e=>s?.(e)?0:n[t]=e)))),n},ne=(e,t)=>{const s=V(),n=t??(e=>e);return K(e,((e,t)=>s.set(t,n(e)))),s},oe=e=>ne(e,ne),re=(e,t,s,n,o=0)=>z((s?te:Y)(e,t[o],o>C(t)-2?s:V),(r=>{if(o>C(t)-2)return n?.(r)&&ee(e,t[o]),r;const a=re(r,t,s,n,o+1);return H(r)&&ee(e,t[o]),a})),ae=e=>new Set(e),ie=(e,t)=>e?.add(t),le=(e,t,s)=>{const n=e.hasRow,o=V(),r=V(),a=V(),i=V(),l=V(),c=(t,s,...n)=>{const o=te(l,t,ae);return S(n,(t=>ie(o,t)&&s&&e.callListener(t))),n},d=(t,...s)=>z(Y(l,t),(n=>{S(m(s)?$(n):s,(t=>{e.delListener(t),U(n,t)})),H(n)&&ee(l,t)})),u=(e,s)=>{ee(o,e,s),q(r,e)||(ee(r,e,t()),ee(a,e,V()),ee(i,e,V()))},f=e=>{ee(o,e),ee(r,e),ee(a,e),ee(i,e),d(e)};return[()=>e,()=>X(o),e=>Z(r,e),e=>q(r,e),e=>Y(o,e),e=>Y(r,e),(e,t)=>ee(r,e,t),u,(t,o,r,l,f)=>{u(t,o);const h=V(),g=V(),w=Y(a,t),L=Y(i,t),p=t=>{const r=s=>e.getCell(o,t,s),a=Y(w,t),i=n(o,t)?s(l(r,t)):void 0;if(a!=i&&ee(h,t,[a,i]),!O(f)){const e=Y(L,t),s=n(o,t)?f(r,t):void 0;e!=s&&ee(g,t,s)}},v=e=>{r((()=>{K(h,(([,e],t)=>ee(w,t,e))),K(g,((e,t)=>ee(L,t,e)))}),h,g,w,L,e),G(h),G(g)};Z(w,p),e.hasTable(o)&&S(e.getRowIds(o),(e=>{q(w,e)||p(e)})),v(!0),d(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>p(s))),e.addTableListener(o,(()=>v())))},f,()=>Z(l,f),c,d]},ce=(e,t)=>s(e)==o?t=>t(e):e??(()=>t??n),de=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},ue=/^\d+$/,fe=()=>{const e=[];let t=0;return[()=>D(e)??n+t++,t=>{ue.test(t)&&C(e)<1e3&&M(e,t)}]},he=e=>{let t;const[s,o]=fe(),r=V();return[(o,a,i)=>{t??=e();const l=s();return ee(r,l,[o,a,i]),ie(re(a,i??[n],ae),l),l},(e,s,...o)=>S(((e,t=[n])=>{const s=[],o=(e,n)=>n==C(t)?M(s,e):null===t[n]?K(e,(e=>o(e,n+1))):S([t[n],null],(t=>o(Y(e,t),n+1)));return o(e,0),s})(e,s),(e=>K(e,(e=>Y(r,e)[0](t,...s??[],...o))))),e=>z(Y(r,e),(([,t,s])=>(re(t,s??[n],void 0,(t=>(U(t,e),H(t)?1:0))),ee(r,e),o(e),s))),(e,s,n)=>z(Y(r,e),(([e,,o=[]])=>{const r=(...a)=>{const i=C(a);i==C(o)?e(t,...a,...n(a)):O(o[i])?S(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},ge=Object,we=ge.keys,Le=ge.isFrozen,pe=ge.freeze,ve=(e,t)=>!O(((e,t)=>z(e,(e=>e[t])))(e,t)),Re=(e,t)=>delete e[t],Ie=(e,t)=>S(ge.entries(e),(([e,s])=>t(s,e))),ye=e=>m(we(e)),Se=e=>{const t=s(e);return N(t)||t==a&&Q(e)?t:void 0},Te=(e,t,s,n,o)=>O(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),be=de((e=>{let t,s,o,r=100,a=V(),i=1;const l=V(),c=V(),[d,u,f]=he((()=>Q)),h=V(),g=V(),w=[],L=[],p=(t,s)=>{i=0,e.transaction((()=>K(Y(h,s),((s,n)=>K(s,((s,o)=>K(s,((s,r)=>Te(e,n,o,r,s[t]))))))))),i=1},R=e=>{ee(h,e),ee(g,e),u(c,[e])},I=(e,t)=>S(((e,t)=>e.splice(0,t))(e,t??C(e)),R),y=()=>I(w,C(w)-r),T=e.addCellListener(null,null,null,((e,s,n,r,l,c)=>{if(i){z(t,(()=>{M(w,t),y(),I(L),t=void 0,o=1}));const e=te(a,s,V),i=te(e,n,V),d=te(i,r,(()=>[c,void 0]));d[1]=l,d[0]===l&&H(ee(i,r))&&H(ee(e,n))&&H(ee(a,s))&&(t=x(w),o=1),A()}})),b=(e="")=>(O(t)&&(t=n+s++,ee(h,t,a),P(t,e),a=V(),o=1),t),E=()=>{m(w)||(L.unshift(b()),p(0,t),t=x(w),o=1)},k=()=>{m(L)||(M(w,t),t=D(L),p(1,t),o=1)},A=()=>{o&&(u(l),o=0)},F=e=>{const t=b(e);return A(),t},P=(e,t)=>(J(e)&&Y(g,e)!==t&&(ee(g,e,t),u(c,[e])),Q),J=e=>q(h,e),Q={setSize:e=>(r=e,y(),Q),addCheckpoint:F,setCheckpoint:P,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...L]],forEachCheckpoint:e=>Z(g,e),hasCheckpoint:J,getCheckpoint:e=>Y(g,e),goBackward:()=>(E(),A(),Q),goForward:()=>(k(),A(),Q),goTo:e=>{const s=v(w,e)?E:v(L,e)?k:null;for(;!O(s)&&e!=t;)s();return A(),Q},addCheckpointIdsListener:e=>d(e,l),addCheckpointListener:(e,t)=>d(t,c,[e]),delListener:e=>(f(e),Q),clear:()=>(I(w),I(L),O(t)||R(t),t=void 0,s=0,F(),Q),destroy:()=>{e.delListener(T)},getListenerStats:()=>({})};return pe(Q.clear())})),Ce=(e,t)=>e<t?-1:1,me=e=>n+e,Ee=de((e=>{const t=V(),s=V(),[o,r,a,i,l,c,d,,u,f,h]=le(e,V,(e=>O(e)?n:e+n)),[g,w,L]=he((()=>v)),p=(t,s,n)=>{const o=l(t);K(n,((t,n)=>s(n,(s=>K(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},v={setIndexDefinition:(e,n,o,r,a,i=Ce)=>{const l=O(a)?void 0:([e],[t])=>a(e,t);return u(e,n,((n,o,a,u,f,h)=>{let g=0;const L=ae(),p=ae(),v=c(e);if(K(o,(([e,t],s)=>{O(e)||(ie(L,e),z(Y(v,e),(t=>{U(t,s),H(t)&&(ee(v,e),g=1)}))),O(t)||(ie(L,t),q(v,t)||(ee(v,t,ae()),g=1),ie(Y(v,t),s),O(r)||ie(p,t))})),n(),H(f)||(h?Z(v,(e=>ie(p,e))):Z(a,(e=>z(Y(u,e),(e=>ie(p,e))))),K(p,(e=>{const t=(t,s)=>i(Y(f,t),Y(f,s),e),s=[...Y(v,e)];I(s,t)||(ee(v,e,ae(y(s,t))),ie(L,e))}))),(g||h)&&!O(l)){const t=[...v];I(t,l)||(d(e,V(y(t,l))),g=1)}g&&w(t,[e]),K(L,(t=>w(s,[e,t])))}),ce(o),z(r,ce)),v},delIndexDefinition:e=>(f(e),v),getStore:o,getIndexIds:r,forEachIndex:e=>a(((t,s)=>e(t,(e=>p(t,e,s))))),forEachSlice:(e,t)=>p(e,t,c(e)),hasIndex:i,hasSlice:(e,t)=>q(c(e),t),getTableId:l,getSliceIds:e=>X(c(e)),getSliceRowIds:(e,t)=>$(Y(c(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>g(n,s,[e,t]),delListener:e=>(L(e),v),destroy:h,getListenerStats:()=>({})};return pe(v)})),ke=V([["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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(t,e)]],["min",[e=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["sum",[e=>b(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Me=(e,t,s,n,o,r=!1)=>{if(H(s))return;const[a,i,l,c]=o;return r||=O(e),K(n,(([s,n])=>{r||(e=O(s)?i?.(e,n,t++):O(n)?l?.(e,s,t--):c?.(e,n,s,t),r||=O(e))})),r?a($(s),_(s)):e},xe=de((e=>{const t=V(),[s,o,r,a,i,l,c,,d,u,f]=le(e,B,(e=>isNaN(e)||O(e)||!0===e||!1===e||e===n?void 0:1*e)),[h,g,w]=he((()=>L)),L={setMetricDefinition:(e,s,n,o,r,a,i)=>{const u=W(n)?[n,r,a,i]:Y(ke,n)??Y(ke,"sum");return d(e,s,((s,n,o,r,a,i)=>{const d=l(e),f=_(r);i||=O(d),s();let h=Me(d,f,r,n,u,i);Q(h)||(h=void 0),h!=d&&(c(e,h),g(t,[e],h,d))}),ce(o,1)),L},delMetricDefinition:e=>(u(e),L),getStore:s,getMetricIds:o,forEachMetric:r,hasMetric:a,getTableId:i,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(w(e),L),destroy:f,getListenerStats:()=>({})};return pe(L)})),De=(e,t,s,o,r)=>{let a,i=0;const l={load:async s=>{if(2!=i){i=1;const o=await t();O(o)||o==n?e.setTables(s):e.setJson(o),i=0}return l},startAutoLoad:async e=>(l.stopAutoLoad(),await l.load(e),o(l.load),l),stopAutoLoad:()=>(r(),l),save:async()=>(1!=i&&(i=2,await s(e.getJson()),i=0),l),startAutoSave:async()=>(await l.stopAutoSave().save(),a=e.addTablesListener((()=>l.save())),l),stopAutoSave:()=>(z(a,e.delListener),l),getStore:()=>e,destroy:()=>l.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return pe(l)},Ae="storage",Fe=globalThis.window,Pe=(e,t,s)=>{let n;return De(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Fe.addEventListener(Ae,n)}),(()=>{Fe.removeEventListener(Ae,n),n=void 0}))},Je=e=>e.headers.get("ETag"),Qe=de((e=>{const t=e.createStore,[s,o,r,a,i,,,l,,c,d,v,I]=le(e,(()=>!0),B),y=t(),T=t(),b=V(),E=(e,t,...s)=>S(s,(s=>ie(te(te(b,t,V),e,ae),s))),x=e=>{z(Y(b,e),(e=>{Z(e,((e,t)=>K(t,(t=>e.delListener(t))))),G(e)})),S([T,y],(t=>t.delTable(e)))},D=(e,t,s)=>E(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),A={setQueryDefinition:(t,s,o)=>{l(t,s),x(t);const r=[],a=[[null,[s,null,null,[],V()]]],i=[],c=[],d=[];o({select:(e,t)=>{const s=W(e)?[C(r)+n,e]:[O(t)?e:t,s=>s(e,t)];return M(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=O(s)||W(t)?null:t,o=O(n)?t:s,r=[e,[e,n,W(o)?o:e=>e(o),[],V()]];return M(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>M(i,W(e)?e:O(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,W(t)?[t,s,n,o]:Y(ke,t)??[(e,t)=>t]]];return M(c,r),{as:e=>r[0]=e}},having:(e,t)=>M(d,W(e)?e:s=>s(e)===t)});const u=V(r);if(H(u))return A;const f=V(a);Z(f,((e,[,t])=>z(Y(f,t),(({3:t})=>O(e)?0:M(t,e)))));const h=V(c);let g=y;if(H(h)&&m(d))g=T;else{D(t,g,T);const e=V();Z(h,((t,[s,n])=>ie(te(e,s,ae),[t,n])));const s=ae();Z(u,(t=>q(e,t)?0:ie(s,t)));const n=V(),o=(s,n,o,r)=>z(s,(([a,i,l,c])=>{Z(n,((t,[s])=>{const n=te(a,t,V),i=Y(n,o),l=r?void 0:s;if(i!==l){const s=ae([[i,l]]),r=_(n);ee(n,o,l),K(Y(e,t),(([e,t])=>{const o=Me(c[e],r,n,s,t);c[e]=O(Se(o))?null:o}))}})),H(i)||!R(d,(e=>e((e=>c[e]))))?T.delRow(t,l):O(l)?s[2]=T.addRow(t,c):T.setRow(t,l,c)}));E(g,t,g.addRowListener(t,null,((r,a,i,l)=>{const c=[],d=[],u=V(),f=g.hasRow(t,i);let h=!f;K(s,(e=>{const[s,n,o]=l(t,i,e);M(c,n),M(d,o),h||=s})),Z(e,(e=>{const[s,,n]=l(t,i,e);(h||s)&&ee(u,e,[n])})),h&&o(re(n,c,void 0,(([,e])=>(U(e,i),H(e)))),u,i,1),f&&o(re(n,d,(()=>{const e={};return K(s,(s=>e[s]=g.getCell(t,i,s))),[V(),ae(),void 0,e]}),(([,e])=>{ie(e,i)})),u,i)})))}D(t,e,g);const w=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);S(a,(s=>{const[o,,r,a,i]=Y(f,s),c=r?.(l,n),[d,u]=Y(i,n)??[];c!=d&&(O(u)||I(t,u),ee(i,n,O(c)?null:[c,...v(t,1,e.addRowListener(o,c,(()=>w(n,o,c,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...O(o)?[s,n,t]:t===s?[s,n,o]:[Y(f,t)?.[0],Y(Y(f,t)?.[4],n)?.[0],o]);g.transaction((()=>R(i,(e=>e(o)))?Z(u,((e,s)=>Te(g,t,n,e,s(o,n)))):g.delRow(t,n)))})(n)},{3:L}=Y(f,null);return g.transaction((()=>v(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?w(r,s,r,L):(g.delRow(t,r),K(f,(({4:e})=>z(Y(e,r),(([,s])=>{I(t,s),ee(e,r)})))))}))))),A},delQueryDefinition:e=>(x(e),c(e),A),getStore:s,getQueryIds:o,forEachQuery:r,hasQuery:a,getTableId:i,delListener:e=>(T.delListener(e),A),destroy:d,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=T.getListenerStats();return n}};return Ie({[g]:[1,1],[w]:[0,1],SortedRowIds:[0,5],Row:[1,2],[L]:[0,2],[p]:[1,3]},(([e,t],s)=>{S(e?["get","has","forEach"]:["get"],(e=>A[e+f+s]=(...t)=>T[e+s](...t))),A[h+f+s+u]=(...e)=>T[h+s+u](...k(e,0,t),((s,...n)=>e[t](A,...n)))})),pe(A)})),je=de((e=>{const t=V(),s=V(),o=V(),r=V(),[a,i,l,c,d,u,,,f,h,g]=le(e,(()=>[V(),V(),V(),V()]),(e=>O(e)?void 0:e+n)),[w,L,p]=he((()=>y)),v=(e,t,s)=>z(u(e),(([n,,o])=>{if(!q(o,t)){const r=ae();if(d(e)!=I(e))ie(r,t);else{let e=t;for(;!O(e)&&!q(r,e);)ie(r,e),e=Y(n,e)}if(s)return r;ee(o,t,r)}return Y(o,t)})),R=(e,t)=>z(u(e),(([,,e])=>ee(e,t))),I=e=>Y(t,e),y={setRelationshipDefinition:(e,n,a,i)=>(ee(t,e,a),f(e,n,((t,n)=>{const a=ae(),i=ae(),l=ae(),[c,d]=u(e);K(n,(([t,s],n)=>{O(t)||(ie(i,t),z(Y(d,t),(e=>{U(e,n),H(e)&&ee(d,t)}))),O(s)||(ie(i,s),q(d,s)||ee(d,s,ae()),ie(Y(d,s),n)),ie(a,n),ee(c,n,s),Z(Y(r,e),(t=>{q(v(e,t),n)&&ie(l,t)}))})),t(),K(a,(t=>L(s,[e,t]))),K(i,(t=>L(o,[e,t]))),K(l,(t=>{R(e,t),L(r,[e,t])}))}),ce(i)),y),delRelationshipDefinition:e=>(ee(t,e),h(e),y),getStore:a,getRelationshipIds:i,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>Y(u(e)?.[0],t),getLocalRowIds:(e,t)=>$(Y(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>O(u(e))?[t]:$(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>w(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>w(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),w(s,r,[e,t])),delListener:e=>(R(...p(e)),y),destroy:g,getListenerStats:()=>({})};return pe(y)})),Oe=e=>[e,e],ze=()=>[V(),V()],Ne=(e,t,s,n=ee)=>{const o=(r=X(e),a=e=>!ve(t,e),r.filter(a));var r,a;return S(we(t),(n=>s(e,n,t[n]))),S(o,(t=>n(e,t))),e},We=(e,t,s)=>O(e)||!(e=>j(e,ge)&&e.constructor==ge)(e)||ye(e)||Le(e)?(s?.(),!1):(Ie(e,((s,n)=>{t(s,n)||Re(e,n)})),!ye(e)),Be=(e,t,s)=>ee(e,t,Y(e,t)==-s?void 0:s),_e=()=>{let e,t,s=0;const n=V(),o=V(),r=V(),i=V(),d=V(),f=V(),I=V(),b=V(),m=V(),E=ze(),x=ze(),D=ze(),P=ze(),J=ze(),Q=ze(),j=ze(),B=ze(),_=ze(),$=ze(),[re,le,ce,de]=he((()=>dt)),ue=(t,s)=>(!e||q(f,s)||Ge(s))&&We(t,((e,t)=>ge(s,t,e)),(()=>Ge(s))),ge=(e,t,s,n)=>We(n?s:Le(s,e,t),((n,o)=>z(we(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Ge(e,t))),we=(t,s,n,o)=>e?z(Y(Y(f,t),n),(e=>Se(o)!=e.type?Ge(t,s,n,o,e.default):o),(()=>Ge(t,s,n,o))):O(Se(o))?Ge(t,s,n,o):o,Le=(e,t,s)=>(z(Y(I,t),(([n,o])=>{K(n,((t,s)=>{ve(e,s)||(e[s]=t)})),K(o,(n=>{ve(e,n)||Ge(t,s,n)}))})),e),be=e=>Ne(f,e,((e,t,s)=>{const n=V(),o=ae();Ne(te(f,t,V),s,((e,t,s)=>{ee(e,t,s),z(s.default,(e=>ee(n,t,e)),(()=>ie(o,t)))})),ee(I,t,[n,o])}),((e,t)=>{ee(f,t),ee(I,t)})),Ee=e=>Ne(m,e,((e,t,s)=>ke(t,s)),((e,t)=>Pe(t))),ke=(e,t)=>Ne(te(m,e,(()=>(je(e,1),V()))),t,((t,s,n)=>Me(e,t,s,n)),((t,s)=>Je(e,t,s))),Me=(e,t,s,n,o)=>Ne(te(t,s,(()=>(qe(e,s,1),V()))),n,((t,n,o)=>xe(e,s,t,n,o)),((n,r)=>Qe(e,t,s,n,r,o))),xe=(e,t,s,n,o)=>{q(s,n)||He(e,t,n,1);const r=Y(s,n);o!==r&&($e(e,t,n,r,o),ee(s,n,o))},De=(e,t,s,n,o)=>z(Y(t,s),(t=>xe(e,s,t,n,o)),(()=>Me(e,t,s,Le({[n]:o},e,s)))),Ae=e=>{const[t]=te(b,e,fe),s=t();return q(Y(m,e),s)?Ae(e):s},Fe=e=>Y(m,e)??ke(e,{}),Pe=e=>ke(e,{}),Je=(e,t,s)=>{const[,n]=te(b,e,fe);n(s),Me(e,t,s,{},!0)},Qe=(e,t,s,n,o,r)=>{const a=Y(Y(I,e)?.[0],o);if(!O(a)&&!r)return xe(e,s,n,o,a);const i=t=>{$e(e,s,t,Y(n,t)),He(e,s,t,-1),ee(n,t)};O(a)?i(o):Z(n,i),H(n)&&(qe(e,s,-1),H(ee(t,s))&&(je(e,-1),ee(m,e)))},je=(e,t)=>Be(n,e,t),qe=(e,t,s)=>Be(te(o,e,V),t,s),He=(e,t,s,n)=>Be(te(te(r,e,V),t,V),s,n),$e=(e,t,s,n,o)=>te(te(te(i,e,V),t,V),s,(()=>[n,0]))[1]=o,Ge=(e,t,s,n,o)=>(M(te(te(te(d,e,V),t,V),s,(()=>[])),n),o),Ke=(e,t,s)=>z(Y(Y(Y(i,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Oe(ot(e,t,s))])),Ue=e=>H(d)||H(_[e])?0:K(e?ne(d,oe):d,((t,s)=>K(t,((t,n)=>K(t,((t,o)=>le(_[e],[s,n,o],t))))))),Ve=(e,t,s)=>{if(!H(t))return le(e,s),1},Xe=e=>{const t=H(J[e]),s=H(j[e])&&H(P[e])&&t&&H(x[e]),a=H(B[e])&&H(Q[e])&&H(D[e])&&H(E[e]);if(!s||!a){const l=e?[ne(n),oe(o),ne(r,oe),ne(i,oe)]:[n,o,r,i];if(!s){K(l[2],((t,s)=>K(t,((t,n)=>Ve(j[e],t,[s,n])))));const s=ae();K(l[1],((n,o)=>{Ve(P[e],n,[o])&&!t&&(le(J[e],[o,null]),ie(s,o))})),t||K(l[3],((t,n)=>{if(!q(s,n)){const s=ae();K(t,(e=>K(e,(([t,n],o)=>n!==t?ie(s,o):U(e,o))))),K(s,(t=>le(J[e],[n,t])))}})),Ve(x[e],l[0])}if(!a){let t;K(l[3],((s,n)=>{let o;K(s,((s,r)=>{let a;K(s,(([s,i],l)=>{i!==s&&(le(B[e],[n,r,l],i,s,Ke),t=o=a=1)})),a&&le(Q[e],[n,r],Ke)})),o&&le(D[e],[n],Ke)})),t&&le(E[e],void 0,Ke)}}},Ye=(e,...t)=>(it((()=>e(...T(t,me)))),dt),Ze=()=>se(m,(e=>se(e,se))),et=()=>X(m),tt=e=>X(Y(m,me(e))),st=(e,t,s,n=0,o)=>{const r=[];return Z(Y(m,me(e)),((e,s)=>M(r,[O(t)?e:Y(s,me(t)),e]))),T(k(y(r,(([e],[t])=>Ce(e,t)*(s?-1:1))),n,O(o)?o:n+o),(([,e])=>e))},nt=(e,t)=>X(Y(Y(m,me(e)),me(t))),ot=(e,t,s)=>Y(Y(Y(m,me(e)),me(t)),me(s)),rt=e=>Ye((()=>(e=>We(e,ue,Ge))(e)?Ee(e):0)),at=()=>Ye((()=>Ee({}))),it=(e,t)=>{if(-1==s)return;lt();const n=e?.();return ct(t),n},lt=()=>(s++,dt),ct=e=>(s>0&&(s--,0==s&&(t=!H(i),s=1,Ue(1),t&&Xe(1),s=-1,e?.(se(i,(e=>se(e,(e=>se(e,(e=>[...e]),(([e,t])=>e===t))),ye)),ye),se(d,(e=>se(e,se))))&&(s=1,K(i,((e,t)=>K(e,((e,s)=>K(e,(([e],n)=>Te(dt,t,s,n,e))))))),s=-1,t=!1),le($[0],void 0,t),Ue(0),t&&Xe(0),le($[1],void 0,t),s=0,S([i,d,n,o,r],G))),dt),dt={getTables:Ze,getTableIds:et,getTable:e=>se(Y(m,me(e)),se),getRowIds:tt,getSortedRowIds:st,getRow:(e,t)=>se(Y(Y(m,me(e)),me(t))),getCellIds:nt,getCell:ot,hasTables:()=>!H(m),hasTable:e=>q(m,me(e)),hasRow:(e,t)=>q(Y(m,me(e)),me(t)),hasCell:(e,t,s)=>q(Y(Y(m,me(e)),me(t)),me(s)),getJson:()=>A(m),getSchemaJson:()=>A(f),setTables:rt,setTable:(e,t)=>Ye((e=>ue(t,e)?ke(e,t):0),e),setRow:(e,t,s)=>Ye(((e,t)=>ge(me(e),me(t),s)?Me(me(e),Fe(me(e)),me(t),s):0),e,t),addRow:(e,t)=>it((()=>{let s;return ge(e,s,t)&&(e=me(e),Me(e,Fe(e),s=Ae(e),t)),s})),setPartialRow:(e,t,s)=>Ye(((e,t)=>{if(ge(e,t,s,1)){const n=Fe(e);Ie(s,((s,o)=>De(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Ye(((e,t,s)=>z(we(e,t,s,W(n)?n(ot(e,t,s)):n),(n=>De(e,Fe(e),t,s,n)))),e,t,s),setJson:e=>{try{"{}"===e?at():rt(F(e))}catch{}return dt},setSchema:t=>Ye((()=>{if((e=(e=>We(e,(e=>We(e,(e=>{if(!We(e,((e,t)=>v([l,c],t))))return!1;const t=e.type;return!(!N(t)&&t!=a||(Se(e.default)!=t&&Re(e,c),0))})))))(t))&&(be(t),!H(m))){const e=Ze();at(),rt(e)}})),delTables:at,delTable:e=>Ye((e=>q(m,e)?Pe(e):0),e),delRow:(e,t)=>Ye(((e,t)=>z(Y(m,e),(s=>q(s,t)?Je(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Ye(((e,t,s)=>z(Y(m,e),(o=>z(Y(o,t),(r=>q(r,s)?Qe(e,o,t,r,s,n):0))))),e,t,s),delSchema:()=>Ye((()=>{be({}),e=!1})),transaction:it,startTransaction:lt,finishTransaction:ct,forEachTable:e=>K(m,((t,s)=>e(s,(e=>K(t,((t,s)=>e(s,(e=>Z(t,e))))))))),forEachRow:(e,t)=>K(Y(m,me(e)),((e,s)=>t(s,(t=>Z(e,t))))),forEachCell:(e,t,s)=>Z(Y(Y(m,me(e)),me(t)),s),addSortedRowIdsListener:(e,t,s,n,o,r,a)=>{let i=st(e,t,s,n,o);return re((()=>{const a=st(e,t,s,n,o);var l,c;c=i,C(l=a)===C(c)&&R(l,((e,t)=>c[t]===e))||(i=a,r(dt,e,t,s,n,o,i))}),J[a?1:0],[e,t])},addWillFinishTransactionListener:e=>re(e,$[0]),addDidFinishTransactionListener:e=>re(e,$[1]),callListener:e=>(de(e,[et,tt,nt],(e=>O(e[2])?[]:Oe(ot(...e)))),dt),delListener:e=>(ce(e),dt),getListenerStats:()=>({}),createStore:_e};return Ie({Tables:[0,E],TableIds:[0,x],[g]:[1,D],[w]:[1,P],Row:[2,Q],[L]:[2,j],[p]:[3,B],InvalidCell:[3,_]},(([e,t],s)=>{dt[h+s+u]=(...s)=>re(s[e],t[s[e+1]?1:0],e>0?k(s,0,e):void 0)})),pe(dt)};e.createCheckpoints=be,e.createCustomPersister=De,e.createFilePersister=(e,s)=>{let n;return De(e,(async()=>{try{return await t.promises.readFile(s,d)}catch{}}),(async e=>{try{await t.promises.writeFile(s,e,d)}catch{}}),(e=>{n=t.watch(s,e)}),(()=>{n?.close(),n=void 0}))},e.createIndexes=Ee,e.createLocalPersister=(e,t)=>Pe(e,t,localStorage),e.createMetrics=xe,e.createQueries=Qe,e.createRelationships=je,e.createRemotePersister=(e,t,s,n)=>{let o,r;return De(e,(async()=>{const e=await fetch(t);return r=Je(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Je(s);O(r)||O(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{z(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>Pe(e,t,sessionStorage),e.createStore=_e,e.defaultSorter=Ce,e.id=me,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
Binary file
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "tinybase",
3
- "version": "2.0.0-beta.4",
3
+ "version": "2.0.0",
4
4
  "author": "jamesgpearce",
5
5
  "repository": "github:tinyplex/tinybase",
6
6
  "license": "MIT",
7
7
  "homepage": "https://tinybase.org",
8
- "description": "A tiny, reactive JavaScript library for structured state and tabular data.",
8
+ "description": "The reactive data store for local-first apps.",
9
9
  "keywords": [
10
10
  "tiny",
11
11
  "reactive",
@@ -59,33 +59,33 @@
59
59
  },
60
60
  "devDependencies": {
61
61
  "@babel/cli": "^7.18.10",
62
- "@babel/core": "^7.19.0",
63
- "@babel/preset-env": "^7.19.0",
62
+ "@babel/core": "^7.19.1",
63
+ "@babel/preset-env": "^7.19.1",
64
64
  "@babel/preset-react": "^7.18.6",
65
65
  "@babel/preset-typescript": "^7.18.6",
66
66
  "@rollup/plugin-replace": "^4.0.0",
67
67
  "@types/asciichart": "^1.5.6",
68
68
  "@types/expect-puppeteer": "^5.0.1",
69
69
  "@types/http-server": "^0.12.1",
70
- "@types/jest": "^29.0.1",
70
+ "@types/jest": "^29.0.3",
71
71
  "@types/jest-environment-puppeteer": "^5.0.2",
72
72
  "@types/less": "^3.0.3",
73
- "@types/node": "^18.7.16",
73
+ "@types/node": "^18.7.18",
74
74
  "@types/puppeteer": "^5.4.6",
75
75
  "@types/react": "^17.0.41",
76
76
  "@types/react-dom": "^17.0.14",
77
77
  "@types/react-test-renderer": "^17.0.1",
78
78
  "@types/tmp": "^0.2.3",
79
- "@typescript-eslint/eslint-plugin": "^5.36.2",
80
- "@typescript-eslint/parser": "^5.36.2",
79
+ "@typescript-eslint/eslint-plugin": "^5.37.0",
80
+ "@typescript-eslint/parser": "^5.37.0",
81
81
  "asciichart": "^1.5.25",
82
82
  "babel-eslint": "^10.1.0",
83
83
  "babel-jest": "^29.0.3",
84
84
  "babel-preset-minify": "^0.5.2",
85
85
  "country-flag-emoji-json": "^2.0.0",
86
- "cspell": "^6.8.1",
86
+ "cspell": "^6.9.0",
87
87
  "esbuild": "^0.15.7",
88
- "eslint": "^8.23.0",
88
+ "eslint": "^8.23.1",
89
89
  "eslint-config-prettier": "^8.5.0",
90
90
  "eslint-plugin-jest": "^27.0.4",
91
91
  "eslint-plugin-jsdoc": "^39.3.6",