tinybase 1.3.3 → 2.0.0-beta.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.
Files changed (53) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/debug/checkpoints.js +67 -54
  4. package/lib/debug/indexes.js +104 -67
  5. package/lib/debug/metrics.js +185 -129
  6. package/lib/debug/persisters.js +2 -1
  7. package/lib/debug/queries.d.ts +3066 -0
  8. package/lib/debug/queries.js +883 -0
  9. package/lib/debug/relationships.d.ts +6 -5
  10. package/lib/debug/relationships.js +103 -67
  11. package/lib/debug/store.d.ts +137 -66
  12. package/lib/debug/store.js +215 -119
  13. package/lib/debug/tinybase.d.ts +1 -0
  14. package/lib/debug/tinybase.js +896 -176
  15. package/lib/debug/ui-react.d.ts +49 -2
  16. package/lib/debug/ui-react.js +85 -74
  17. package/lib/indexes.js +1 -1
  18. package/lib/indexes.js.gz +0 -0
  19. package/lib/metrics.js +1 -1
  20. package/lib/metrics.js.gz +0 -0
  21. package/lib/queries.d.ts +3066 -0
  22. package/lib/queries.js +1 -0
  23. package/lib/queries.js.gz +0 -0
  24. package/lib/relationships.d.ts +6 -5
  25. package/lib/relationships.js +1 -1
  26. package/lib/relationships.js.gz +0 -0
  27. package/lib/store.d.ts +137 -66
  28. package/lib/store.js +1 -1
  29. package/lib/store.js.gz +0 -0
  30. package/lib/tinybase.d.ts +1 -0
  31. package/lib/tinybase.js +1 -1
  32. package/lib/tinybase.js.gz +0 -0
  33. package/lib/ui-react.d.ts +49 -2
  34. package/lib/ui-react.js +1 -1
  35. package/lib/ui-react.js.gz +0 -0
  36. package/lib/umd/checkpoints.js +1 -1
  37. package/lib/umd/checkpoints.js.gz +0 -0
  38. package/lib/umd/indexes.js +1 -1
  39. package/lib/umd/indexes.js.gz +0 -0
  40. package/lib/umd/metrics.js +1 -1
  41. package/lib/umd/metrics.js.gz +0 -0
  42. package/lib/umd/queries.js +1 -0
  43. package/lib/umd/queries.js.gz +0 -0
  44. package/lib/umd/relationships.js +1 -1
  45. package/lib/umd/relationships.js.gz +0 -0
  46. package/lib/umd/store.js +1 -1
  47. package/lib/umd/store.js.gz +0 -0
  48. package/lib/umd/tinybase.js +1 -1
  49. package/lib/umd/tinybase.js.gz +0 -0
  50. package/lib/umd/ui-react.js +1 -1
  51. package/lib/umd/ui-react.js.gz +0 -0
  52. package/package.json +24 -24
  53. package/readme.md +2 -2
package/lib/store.js.gz CHANGED
Binary file
package/lib/tinybase.d.ts CHANGED
@@ -9,5 +9,6 @@ export * from './common';
9
9
  export * from './indexes';
10
10
  export * from './metrics';
11
11
  export * from './persisters';
12
+ export * from './queries';
12
13
  export * from './relationships';
13
14
  export * from './store';
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),a=s(0),r=s(s),i=e=>[e,e],d=(e,t)=>e.includes(t),l=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),c=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),h=e=>L(e,((e,t)=>e+t),0),g=e=>e.length,f=e=>0==g(e),L=(e,t,s)=>e.reduce(t,s),w=e=>e.slice(1),p=(e,t)=>e.push(t),v=e=>e.pop(),I=e=>JSON.stringify(e,((e,t)=>b(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),S=JSON.parse,y=Math.max,R=Math.min,T=isFinite,b=(e,t)=>e instanceof t,C=e=>null==e,m=(e,t,s)=>C(e)?s?.():t(e),E=e=>e==n||e==o,k=e=>s(e)==r,M=()=>{},A=e=>e.size,x=(e,t)=>e?.has(t)??!1,D=e=>C(e)||0==A(e),F=e=>[...e?.values()??[]],J=e=>e.clear(),z=(e,t)=>e?.forEach(t),N=(e,t)=>e?.delete(t),O=e=>new Map(e),j=(e=O)=>[e(),e()],P=e=>[...e?.keys()??[]],W=(e,t)=>e?.get(t),B=(e,t)=>z(e,((e,s)=>t(s,e))),H=(e,t,s)=>C(s)?(N(e,t),e):e?.set(t,s),q=(e,t,s)=>(x(e,t)||e.set(t,s()),W(e,t)),G=(e,t,s)=>{const n={},o=t??(e=>e);return z(e,((e,t)=>m(o(e),(e=>s?.(e)?0:n[t]=e)))),n},K=(e,t)=>{const s=O(),n=t??(e=>e);return z(e,((e,t)=>s.set(t,n(e)))),s},Q=e=>K(e,K),U=e=>new Set(e),V=(e,t)=>e?.add(t),X=(e,t,s)=>{const n=e.hasRow,o=O(),a=O(),r=O(),i=O(),d=O(),l=t=>m(W(d,t),(s=>{z(s,e.delListener),H(d,t)})),c=e=>{H(o,e),H(a,e),H(r,e),H(i,e),l(e)};return[()=>e,()=>P(o),e=>B(a,e),e=>x(a,e),e=>W(o,e),e=>W(a,e),(e,t)=>H(a,e,t),(c,h,g,f,L)=>{const w=O(),p=O();H(o,c,h),x(a,c)||(H(a,c,t()),H(r,c,O()),H(i,c,O()));const v=W(r,c),I=W(i,c),S=t=>{const o=s=>e.getCell(h,t,s),a=W(v,t),r=n(h,t)?s(f(o,t)):void 0;if(a!=r&&H(w,t,[a,r]),!C(L)){const e=W(I,t),s=n(h,t)?L(o,t):void 0;e!=s&&H(p,t,s)}},y=e=>{g((()=>{z(w,(([,e],t)=>H(v,t,e))),z(p,((e,t)=>H(I,t,e)))}),w,p,v,I,e),J(w),J(p)};B(v,S),e.hasTable(h)&&u(e.getRowIds(h),(e=>{x(v,e)||S(e)})),y(!0),l(c),H(d,c,U([e.addRowListener(h,null,((e,t,s)=>S(s))),e.addTableListener(h,(()=>y()))]))},c,()=>B(d,c)]},Y=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),Z=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},$=(e,t,s)=>g(s)<2?V(f(s)?e:q(e,s[0],U),t):$(q(e,s[0],O),t,w(s)),_=e=>{const t=(s,n,...o)=>m(s,(s=>f(o)?e(s,n):u([o[0],null],(e=>t(W(s,e),n,...w(o))))));return t},ee=e=>{let t,s=0;const n=[],o=O();return[(a,r,i=[])=>{t??=e();const d=v(n)??""+s++;return H(o,d,[a,r,i]),$(r,d,i),d},(e,s=[],...n)=>_(z)(e,(e=>m(W(o,e),(([e])=>e(t,...s,...n)))),...s),e=>m(W(o,e),(([,t,s])=>(_(N)(t,e,...s),H(o,e),g(n)<1e3&&p(n,e),s)),(()=>[])),(e,s,n)=>m(W(o,e),(([e,,o])=>{const a=(...r)=>{const i=g(r);i==g(o)?e(t,...r,...n(r)):C(o[i])?u(s[i](...r),(e=>a(...r,e))):a(...r,o[i])};a()}))]},te=Object,se=te.keys,ne=te.isFrozen,oe=te.freeze,ae=(e,t)=>!C(((e,t)=>m(e,(e=>e[t])))(e,t)),re=(e,t)=>delete e[t],ie=(e,t)=>u(te.entries(e),(([e,s])=>t(s,e))),de=e=>f(se(e)),le=Z((e=>{let t,s,n,o=100,a=O(),r=1;const i=U(),l=O(),[c,h,L]=ee((()=>G)),w=O(),I=O(),S=[],y=[],R=(t,s)=>{r=0,e.transaction((()=>z(W(w,s),((s,n)=>z(s,((s,o)=>z(s,((s,a)=>C(s[t])?e.delCell(n,o,a,!0):e.setCell(n,o,a,s[t]))))))))),r=1},T=e=>{H(w,e),H(I,e),h(l,[e])},b=(e,t)=>u(((e,t)=>e.splice(0,t))(e,t??g(e)),T),E=()=>b(S,g(S)-o),k=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(r){m(t,(()=>{p(S,t),E(),b(y),t=void 0,n=1}));const e=q(a,s,O),r=q(e,o,O),c=q(r,i,(()=>[l,void 0]));c[1]=d,c[0]===d&&D(H(r,i))&&D(H(e,o))&&D(H(a,s))&&(t=v(S),n=1),J()}})),M=(e="")=>(C(t)&&(t=""+s++,H(w,t,a),j(t,e),a=O(),n=1),t),A=()=>{f(S)||(y.unshift(M()),R(0,t),t=v(S),n=1)},F=()=>{f(y)||(p(S,t),t=y.shift(),R(1,t),n=1)},J=()=>{n&&(h(i),n=0)},N=e=>{const t=M(e);return J(),t},j=(e,t)=>(P(e)&&W(I,e)!==t&&(H(I,e,t),h(l,[e])),G),P=e=>x(w,e),G={setSize:e=>(o=e,E(),G),addCheckpoint:N,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...S],t,[...y]],forEachCheckpoint:e=>B(I,e),hasCheckpoint:P,getCheckpoint:e=>W(I,e),goBackward:()=>(A(),J(),G),goForward:()=>(F(),J(),G),goTo:e=>{const s=d(S,e)?A:d(y,e)?F:null;for(;!C(s)&&e!=t;)s();return J(),G},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,l,[e]),delListener:e=>(L(e),G),clear:()=>(b(S),b(y),C(t)||T(t),t=void 0,s=0,N(),G),destroy:()=>{e.delListener(k)},getListenerStats:()=>({})};return oe(G.clear())})),ce=(e,t)=>e<t?-1:1,ue=Z((e=>{const t=O(),s=O(),[n,o,a,r,i,d,u,h,g,f]=X(e,O,(e=>C(e)?"":e+"")),[L,w,p]=ee((()=>I)),v=(t,s,n)=>{const o=i(t);z(n,((t,n)=>s(n,(s=>z(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},I={setIndexDefinition:(e,n,o,a,r,i=ce)=>{const g=C(r)?void 0:([e],[t])=>r(e,t);return h(e,n,((n,o,r,h,f,L)=>{let p=0;const v=U(),I=U(),S=d(e);if(z(o,(([e,t],s)=>{C(e)||(V(v,e),m(W(S,e),(t=>{N(t,s),D(t)&&(H(S,e),p=1)}))),C(t)||(V(v,t),x(S,t)||(H(S,t,U()),p=1),V(W(S,t),s),C(a)||V(I,t))})),n(),D(f)||(L?B(S,(e=>V(I,e))):B(r,(e=>m(W(h,e),(e=>V(I,e))))),z(I,(e=>{const t=(t,s)=>i(W(f,t),W(f,s),e),s=[...W(S,e)];l(s,t)||(H(S,e,U(c(s,t))),V(v,e))}))),(p||L)&&!C(g)){const t=[...S];l(t,g)||(u(e,O(c(t,g))),p=1)}p&&w(t,[e]),z(v,(t=>w(s,[e,t])))}),Y(o),m(a,Y)),I},delIndexDefinition:e=>(g(e),I),getStore:n,getIndexIds:o,forEachIndex:e=>a(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,d(e)),hasIndex:r,hasSlice:(e,t)=>x(d(e),t),getTableId:i,getSliceIds:e=>P(d(e)),getSliceRowIds:(e,t)=>F(W(d(e),t)),addSliceIdsListener:(e,s)=>L(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>L(n,s,[e,t]),delListener:e=>(p(e),I),destroy:f,getListenerStats:()=>({})};return oe(I)})),he=O([["avg",[(e,t)=>h(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=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:R(t,e)]],["sum",[e=>h(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ge=Z((e=>{const t=O(),[s,n,o,a,r,i,d,l,c,u]=X(e,M,(e=>isNaN(e)||C(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,g,f]=ee((()=>L)),L={setMetricDefinition:(e,s,n,o,a,r,c)=>{const u=k(n)?[n,a,r,c]:W(he,n)??W(he,"sum");return l(e,s,((s,n,o,a,r,l)=>{let c=i(e),h=A(a);const[f,L,w,p]=u;l=l||C(c),z(n,(([e,t])=>{l||(c=C(e)?L?.(c,t,h++):C(t)?w?.(c,e,h--):p?.(c,t,e,h)),l=l||C(c)})),s(),D(a)?c=void 0:l&&(c=f(F(a),A(a))),T(c)||(c=void 0);const v=i(e);c!=v&&(d(e,c),g(t,[e],c,v))}),Y(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:a,getTableId:r,getMetric:i,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(f(e),L),destroy:u,getListenerStats:()=>({})};return oe(L)})),fe=(e,t,s,n,o)=>{let a,r=0;const i={load:async s=>{if(2!=r){r=1;const n=await t();C(n)||""==n?e.setTables(s):e.setJson(n),r=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=r&&(r=2,await s(e.getJson()),r=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),a=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(m(a,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return oe(i)},Le=globalThis.window,we=(e,t,s)=>{let n;return fe(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Le.addEventListener("storage",n)}),(()=>{Le.removeEventListener("storage",n),n=void 0}))},pe=(e,t)=>we(e,t,localStorage),ve=(e,t)=>we(e,t,sessionStorage),Ie=(s,n)=>{let o;return fe(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}))},Se=e=>e.headers.get("ETag"),ye=(e,t,s,n)=>{let o,a;return fe(e,(async()=>{const e=await fetch(t);return a=Se(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=Se(s);C(a)||C(n)||n==a||(a=n,e())}),1e3*n)}),(()=>{m(o,clearInterval),o=void 0}))},Re=Z((e=>{const t=O(),s=O(),n=O(),o=O(),[a,r,i,d,l,c,u,h,g,f]=X(e,(()=>[O(),O(),O(),O()]),(e=>C(e)?void 0:e+"")),[L,w,p]=ee((()=>y)),v=(e,t,s)=>m(c(e),(([n,,o])=>{if(!x(o,t)){const a=U();if(l(e)!=S(e))V(a,t);else{let e=t;for(;!C(e)&&!x(a,e);)V(a,e),e=W(n,e)}if(s)return a;H(o,t,a)}return W(o,t)})),I=(e,t)=>m(c(e),(([,,e])=>H(e,t))),S=e=>W(t,e),y={setRelationshipDefinition:(e,a,r,i)=>(H(t,e,r),h(e,a,((t,a)=>{const r=U(),i=U(),d=U(),[l,u]=c(e);z(a,(([t,s],n)=>{C(t)||(V(i,t),m(W(u,t),(e=>{N(e,n),D(e)&&H(u,t)}))),C(s)||(V(i,s),x(u,s)||H(u,s,U()),V(W(u,s),n)),V(r,n),H(l,n,s),B(W(o,e),(t=>{x(v(e,t),n)&&V(d,t)}))})),t(),z(r,(t=>w(s,[e,t]))),z(i,(t=>w(n,[e,t]))),z(d,(t=>{I(e,t),w(o,[e,t])}))}),Y(i)),y),delRelationshipDefinition:e=>(H(t,e),g(e),y),getStore:a,getRelationshipIds:r,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(l(s),t))))),hasRelationship:d,getLocalTableId:l,getRemoteTableId:S,getRemoteRowId:(e,t)=>W(c(e)?.[0],t),getLocalRowIds:(e,t)=>F(W(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>C(c(e))?[t]:F(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>L(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),L(s,o,[e,t])),delListener:e=>(I(...p(e)),y),destroy:f,getListenerStats:()=>({})};return oe(y)})),Te=(e,t,s,n=H)=>{const o=(a=P(e),r=e=>!ae(t,e),a.filter(r));var a,r;return u(se(t),(n=>s(e,n,t[n]))),u(o,(t=>n(e,t))),e},be=e=>{const t=s(e);return E(t)||t==a&&T(e)?t:void 0},Ce=(e,t,s)=>C(e)||!(e=>b(e,te)&&e.constructor==te)(e)||de(e)||ne(e)?(s?.(),!1):(ie(e,((s,n)=>{t(s,n)||re(e,n)})),!de(e)),me=(e,t,s)=>H(e,t,W(e,t)==-s?void 0:s),Ee=()=>{let e,t,s=0,n=0;const o=O(),r=O(),l=O(),c=O(),h=O(),g=O(),f=O(),L=O(),w=j(U),v=j(U),y=j(),R=j(),T=j(),b=j(),M=j(),A=j(),F=j(U),[N,X,Y,Z]=ee((()=>Ge)),$=(t,s)=>(!e||x(g,s)||Ee(s))&&Ce(t,((e,t)=>_(s,t,e)),(()=>Ee(s))),_=(e,t,s,n)=>Ce(n?s:se(s,e,t),((n,o)=>m(te(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Ee(e,t))),te=(t,s,n,o)=>e?m(W(W(g,t),n),(e=>be(o)!=e.type?Ee(t,s,n,o,e.default):o),(()=>Ee(t,s,n,o))):C(be(o))?Ee(t,s,n,o):o,se=(e,t,s)=>(m(W(f,t),(([n,o])=>{z(n,((t,s)=>{ae(e,s)||(e[s]=t)})),z(o,(n=>{ae(e,n)||Ee(t,s,n)}))})),e),ne=e=>Te(g,e,((e,t,s)=>{const n=O(),o=U();Te(q(g,t,O),s,((e,t,s)=>{H(e,t,s),m(s.default,(e=>H(n,t,e)),(()=>V(o,t)))})),H(f,t,[n,o])}),((e,t)=>{H(g,t),H(f,t)})),le=e=>Te(L,e,((e,t,s)=>ce(t,s)),((e,t)=>we(t))),ce=(e,t)=>Te(q(L,e,(()=>(Ie(e,1),O()))),t,((t,s,n)=>ue(e,t,s,n)),((t,s)=>pe(e,t,s))),ue=(e,t,s,n,o)=>Te(q(t,s,(()=>(Se(e,s,1),O()))),n,((t,n,o)=>he(e,s,t,n,o)),((n,a)=>ve(e,t,s,n,a,o))),he=(e,t,s,n,o)=>{x(s,n)||ye(e,t,n,1);const a=W(s,n);o!==a&&(Re(e,t,n,a,o),H(s,n,o))},ge=(e,t,s,n,o)=>m(W(t,s),(t=>he(e,s,t,n,o)),(()=>ue(e,t,s,se({[n]:o},e,s)))),fe=e=>{const t=""+s++;return x(e,t)?fe(e):t},Le=e=>W(L,e)??ce(e,{}),we=e=>ce(e,{}),pe=(e,t,s)=>ue(e,t,s,{},!0),ve=(e,t,s,n,o,a)=>{const r=W(W(f,e)?.[0],o);if(!C(r)&&!a)return he(e,s,n,o,r);const i=t=>{Re(e,s,t,W(n,t)),ye(e,s,t,-1),H(n,t)};C(r)?i(o):B(n,i),D(n)&&(Se(e,s,-1),D(H(t,s))&&(Ie(e,-1),H(L,e)))},Ie=(e,t)=>me(o,e,t),Se=(e,t,s)=>me(q(r,e,O),t,s),ye=(e,t,s,n)=>me(q(q(l,e,O),t,O),s,n),Re=(e,t,s,n,o)=>q(q(q(c,e,O),t,O),s,(()=>[n,0]))[1]=o,Ee=(e,t,s,n,o)=>(p(q(q(q(h,e,O),t,O),s,(()=>[])),n),o),ke=(e,t,s)=>m(W(W(W(c,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...i(Ne(e,t,s))])),Me=e=>D(h)||D(A[e])?0:z(e?K(h,Q):h,((t,s)=>z(t,((t,n)=>z(t,((t,o)=>X(A[e],[s,n,o],t))))))),Ae=e=>{const t=D(b[e])&&D(R[e])&&D(v[e]),s=D(M[e])&&D(T[e])&&D(y[e])&&D(w[e]);if(!t||!s){const n=e?[K(o),Q(r),K(l,Q),K(c,Q)]:[o,r,l,c];if(t||(z(n[2],((t,s)=>z(t,((t,n)=>{D(t)||X(b[e],[s,n])})))),z(n[1],((t,s)=>{D(t)||X(R[e],[s])})),D(n[0])||X(v[e])),!s){let t;z(n[3],((s,n)=>{let o;z(s,((s,a)=>{let r;z(s,(([s,i],d)=>{i!==s&&(X(M[e],[n,a,d],i,s,ke),t=o=r=1)})),r&&X(T[e],[n,a],ke)})),o&&X(y[e],[n],ke)})),t&&X(w[e],[],ke)}}},xe=e=>(Be(e),Ge),De=()=>G(L,(e=>G(e,G))),Fe=()=>P(L),Je=e=>P(W(L,e)),ze=(e,t)=>P(W(W(L,e),t)),Ne=(e,t,s)=>W(W(W(L,e),t),s),Oe=e=>xe((()=>(e=>Ce(e,$,Ee))(e)?le(e):0)),je=(e,t,s,n)=>xe((()=>m(te(e,t,s,k(n)?n(Ne(e,t,s)):n),(n=>ge(e,Le(e),t,s,n))))),Pe=()=>xe((()=>le({}))),We=(e,t,s,n)=>xe((()=>m(W(L,e),(o=>m(W(o,t),(a=>x(a,s)?ve(e,o,t,a,s,n):0)))))),Be=(e,t)=>{if(-1==n)return;He();const s=e?.();return qe(t),s},He=()=>(n++,Ge),qe=e=>(n>0&&(n--,0==n&&(t=!D(c),n=1,Me(1),t&&Ae(1),n=-1,e?.(G(c,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),de)),de),G(h,(e=>G(e,G))))&&(n=1,z(c,((e,t)=>z(e,((e,s)=>z(e,(([e],n)=>C(e)?We(t,s,n,!0):je(t,s,n,e))))))),n=-1,t=!1),X(F[0],[],t),Me(0),t&&Ae(0),X(F[1],[],t),n=0,u([c,h,o,r,l],J))),Ge),Ge={getTables:De,getTableIds:Fe,getTable:e=>G(W(L,e),G),getRowIds:Je,getRow:(e,t)=>G(W(W(L,e),t)),getCellIds:ze,getCell:Ne,hasTables:()=>!D(L),hasTable:e=>x(L,e),hasRow:(e,t)=>x(W(L,e),t),hasCell:(e,t,s)=>x(W(W(L,e),t),s),getJson:()=>I(L),getSchemaJson:()=>I(g),setTables:Oe,setTable:(e,t)=>xe((()=>$(t,e)?ce(e,t):0)),setRow:(e,t,s)=>xe((()=>_(e,t,s)?ue(e,Le(e),t,s):0)),addRow:(e,t)=>Be((()=>{let s;return _(e,s,t)&&ue(e,Le(e),s=fe(W(L,e)),t),s})),setPartialRow:(e,t,s)=>xe((()=>{if(_(e,t,s,1)){const n=Le(e);ie(s,((s,o)=>ge(e,n,t,o,s)))}})),setCell:je,setJson:e=>{try{"{}"===e?Pe():Oe(S(e))}catch{}return Ge},setSchema:t=>xe((()=>{if((e=(e=>Ce(e,(e=>Ce(e,(e=>{if(!Ce(e,((e,t)=>d(["type","default"],t))))return!1;const t=e.type;return!(!E(t)&&t!=a||(be(e.default)!=t&&re(e,"default"),0))})))))(t))&&(ne(t),!D(L))){const e=De();Pe(),Oe(e)}})),delTables:Pe,delTable:e=>xe((()=>x(L,e)?we(e):0)),delRow:(e,t)=>xe((()=>m(W(L,e),(s=>x(s,t)?pe(e,s,t):0)))),delCell:We,delSchema:()=>xe((()=>{ne({}),e=!1})),transaction:Be,startTransaction:He,finishTransaction:qe,forEachTable:e=>z(L,((t,s)=>e(s,(e=>z(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>z(W(L,e),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(W(W(L,e),t),s),addTablesListener:(e,t)=>N(e,w[t?1:0]),addTableIdsListener:(e,t)=>N(e,v[t?1:0]),addTableListener:(e,t,s)=>N(t,y[s?1:0],[e]),addRowIdsListener:(e,t,s)=>N(t,R[s?1:0],[e]),addRowListener:(e,t,s,n)=>N(s,T[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>N(s,b[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>N(n,M[o?1:0],[e,t,s]),addInvalidCellListener:(e,t,s,n,o)=>N(n,A[o?1:0],[e,t,s]),addWillFinishTransactionListener:e=>N(e,F[0]),addDidFinishTransactionListener:e=>N(e,F[1]),callListener:e=>(Z(e,[Fe,Je,ze],(e=>C(e[2])?[]:i(Ne(...e)))),Ge),delListener:e=>(Y(e),Ge),getListenerStats:()=>({})};return oe(Ge)};export{le as createCheckpoints,fe as createCustomPersister,Ie as createFilePersister,ue as createIndexes,pe as createLocalPersister,ge as createMetrics,Re as createRelationships,ye as createRemotePersister,ve as createSessionPersister,Ee as createStore,ce as defaultSorter};
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),l=(e,t)=>e.includes(t),i=(e,t)=>e.every(t),d=(e,t)=>f(e)===f(t)&&i(e,((e,s)=>t[s]===e)),c=(e,t)=>i(e,((s,n)=>0==n||t(e[n-1],s)<=0)),u=(e,t)=>e.sort(t),h=(e,t)=>e.forEach(t),g=e=>L(e,((e,t)=>e+t),0),f=e=>e.length,R=e=>0==f(e),L=(e,t,s)=>e.reduce(t,s),w=(e,...t)=>e.push(...t),T=e=>e.pop(),I=e=>JSON.stringify(e,((e,t)=>S(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),v=JSON.parse,b=Math.max,p=Math.min,C=isFinite,S=(e,t)=>e instanceof t,y=e=>null==e,E=(e,t,s)=>y(e)?s?.():t(e),m=e=>e==n||e==o,k=e=>s(e)==a,M=()=>{},D=e=>e.size,x=(A=D,e=>L(Q(e),((e,t)=>e+A(t)),0));var A;const F=(e,t)=>e?.has(t)??!1,J=e=>y(e)||0==D(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)=>y(s)?(O(e,t),e):e?.set(t,s),q=(e,t,s)=>(F(e,t)||e.set(t,s()),P(e,t)),G=(e,t,s)=>{const n={},o=t??(e=>e);return N(e,((e,t)=>E(o(e),(e=>s?.(e)?0:n[t]=e)))),n},K=(e,t)=>{const s=j(),n=t??(e=>e);return N(e,((e,t)=>s.set(t,n(e)))),s},U=e=>K(e,K),V=(e,t,s,n,o=0)=>E((s?q: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=V(r,t,s,n,o+1);return J(r)&&H(e,t[o]),a})),X=e=>new Set(e),Y=(e,t)=>e?.add(t),Z=(e,t,s)=>{const n=e.hasRow,o=j(),r=j(),a=j(),l=j(),i=j(),d=(t,s,...n)=>{const o=q(i,t,X);return h(n,(t=>Y(o,t)&&s&&e.callListener(t))),n},c=(t,...s)=>E(P(i,t),(n=>{h(R(s)?Q(n):s,(t=>{e.delListener(t),O(n,t)})),J(n)&&H(i,t)})),u=(e,s)=>{H(o,e,s),F(r,e)||(H(r,e,t()),H(a,e,j()),H(l,e,j()))},g=e=>{H(o,e),H(r,e),H(a,e),H(l,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),u,(t,o,r,i,g)=>{u(t,o);const f=j(),R=j(),L=P(a,t),w=P(l,t),T=t=>{const r=s=>e.getCell(o,t,s),a=P(L,t),l=n(o,t)?s(i(r,t)):void 0;if(a!=l&&H(f,t,[a,l]),!y(g)){const e=P(w,t),s=n(o,t)?g(r,t):void 0;e!=s&&H(R,t,s)}},I=e=>{r((()=>{N(f,(([,e],t)=>H(L,t,e))),N(R,((e,t)=>H(w,t,e)))}),f,R,L,w,e),z(f),z(R)};B(L,T),e.hasTable(o)&&h(e.getRowIds(o),(e=>{F(L,e)||T(e)})),I(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>T(s))),e.addTableListener(o,(()=>I())))},g,()=>B(i,g),d,c]},$=(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=(e,t=[""])=>{const s=[],n=(e,o)=>o==f(t)?w(s,e):h([t[o],null],(t=>n(P(e,t),o+1)));return n(e,0),s},te=e=>{let t,s=0;const n=[],o=j();return[(r,a,l)=>{t??=e();const i=T(n)??""+s++;return H(o,i,[r,a,l]),Y(V(a,l??[""],X),i),i},(e,s,...n)=>h(ee(e,s),(e=>N(e,(e=>E(P(o,e),(([e])=>e(t,...s??[],...n))))))),e=>E(P(o,e),(([,t,s])=>(V(t,s??[""],void 0,(t=>(O(t,e),J(t)?1:0))),H(o,e),f(n)<1e3&&w(n,e),s))),(e,t)=>!i(ee(e,t),y),(e,s,n)=>E(P(o,e),(([e,,o=[]])=>{const r=(...a)=>{const l=f(a);l==f(o)?e(t,...a,...n(a)):y(o[l])?h(s[l](...a),(e=>r(...a,e))):r(...a,o[l])};r()}))]},se=Object,ne=se.keys,oe=se.isFrozen,re=se.freeze,ae=(e,t)=>!y(((e,t)=>E(e,(e=>e[t])))(e,t)),le=(e,t)=>delete e[t],ie=(e,t)=>h(se.entries(e),(([e,s])=>t(s,e))),de=e=>R(ne(e)),ce=e=>{const t=s(e);return m(t)||t==r&&C(e)?t:void 0},ue=(e,t,s,n,o)=>y(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),he=_((e=>{let t,s,n,o=100,r=j(),a=1;const i=j(),d=j(),[c,u,g]=te((()=>W)),L=j(),I=j(),v=[],b=[],p=(t,s)=>{a=0,e.transaction((()=>N(P(L,s),((s,n)=>N(s,((s,o)=>N(s,((s,r)=>ue(e,n,o,r,s[t]))))))))),a=1},C=e=>{H(L,e),H(I,e),u(d,[e])},S=(e,t)=>h(((e,t)=>e.splice(0,t))(e,t??f(e)),C),m=()=>S(v,f(v)-o),k=e.addCellListener(null,null,null,((e,s,o,l,i,d)=>{if(a){E(t,(()=>{w(v,t),m(),S(b),t=void 0,n=1}));const e=q(r,s,j),a=q(e,o,j),c=q(a,l,(()=>[d,void 0]));c[1]=i,c[0]===i&&J(H(a,l))&&J(H(e,o))&&J(H(r,s))&&(t=T(v),n=1),A()}})),M=(e="")=>(y(t)&&(t=""+s++,H(L,t,r),z(t,e),r=j(),n=1),t),D=()=>{R(v)||(b.unshift(M()),p(0,t),t=T(v),n=1)},x=()=>{R(b)||(w(v,t),t=b.shift(),p(1,t),n=1)},A=()=>{n&&(u(i),n=0)},Q=e=>{const t=M(e);return A(),t},z=(e,t)=>(O(e)&&P(I,e)!==t&&(H(I,e,t),u(d,[e])),W),O=e=>F(L,e),W={setSize:e=>(o=e,m(),W),addCheckpoint:Q,setCheckpoint:z,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...b]],forEachCheckpoint:e=>B(I,e),hasCheckpoint:O,getCheckpoint:e=>P(I,e),goBackward:()=>(D(),A(),W),goForward:()=>(x(),A(),W),goTo:e=>{const s=l(v,e)?D:l(b,e)?x:null;for(;!y(s)&&e!=t;)s();return A(),W},addCheckpointIdsListener:e=>c(e,i),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(g(e),W),clear:()=>(S(v),S(b),y(t)||C(t),t=void 0,s=0,Q(),W),destroy:()=>{e.delListener(k)},getListenerStats:()=>({})};return re(W.clear())})),ge=(e,t)=>e<t?-1:1,fe=_((e=>{const t=j(),s=j(),[n,o,r,a,l,i,d,,h,g,f]=Z(e,j,(e=>y(e)?"":e+"")),[R,L,w]=te((()=>I)),T=(t,s,n)=>{const o=l(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,l=ge)=>{const g=y(a)?void 0:([e],[t])=>a(e,t);return h(e,n,((n,o,a,h,f,R)=>{let w=0;const T=X(),I=X(),v=i(e);if(N(o,(([e,t],s)=>{y(e)||(Y(T,e),E(P(v,e),(t=>{O(t,s),J(t)&&(H(v,e),w=1)}))),y(t)||(Y(T,t),F(v,t)||(H(v,t,X()),w=1),Y(P(v,t),s),y(r)||Y(I,t))})),n(),J(f)||(R?B(v,(e=>Y(I,e))):B(a,(e=>E(P(h,e),(e=>Y(I,e))))),N(I,(e=>{const t=(t,s)=>l(P(f,t),P(f,s),e),s=[...P(v,e)];c(s,t)||(H(v,e,X(u(s,t))),Y(T,e))}))),(w||R)&&!y(g)){const t=[...v];c(t,g)||(d(e,j(u(t,g))),w=1)}w&&L(t,[e]),N(T,(t=>L(s,[e,t])))}),$(o),E(r,$)),I},delIndexDefinition:e=>(g(e),I),getStore:n,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>T(t,e,s))))),forEachSlice:(e,t)=>T(e,t,i(e)),hasIndex:a,hasSlice:(e,t)=>F(i(e),t),getTableId:l,getSliceIds:e=>W(i(e)),getSliceRowIds:(e,t)=>Q(P(i(e),t)),addSliceIdsListener:(e,s)=>R(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>R(n,s,[e,t]),delListener:e=>(w(e),I),destroy:f,getListenerStats:()=>({})};return re(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=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>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=>g(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Le=(e,t,s,n,o,r=!1)=>{if(J(s))return;const[a,l,i,d]=o;return r||=y(e),N(n,(([s,n])=>{r||(e=y(s)?l?.(e,n,t++):y(n)?i?.(e,s,t--):d?.(e,n,s,t),r||=y(e))})),r?a(Q(s),D(s)):e},we=_((e=>{const t=j(),[s,n,o,r,a,l,i,,d,c,u]=Z(e,M,(e=>isNaN(e)||y(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,g,f]=te((()=>R)),R={setMetricDefinition:(e,s,n,o,r,a,c)=>{const u=k(n)?[n,r,a,c]:P(Re,n)??P(Re,"sum");return d(e,s,((s,n,o,r,a,d)=>{const c=l(e),h=D(r);d||=y(c),s();let f=Le(c,h,r,n,u,d);C(f)||(f=void 0),f!=c&&(i(e,f),g(t,[e],f,c))}),$(o,1)),R},delMetricDefinition:e=>(c(e),R),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(f(e),R),destroy:u,getListenerStats:()=>({})};return re(R)})),Te=(e,t,s,n,o)=>{let r,a=0;const l={load:async s=>{if(2!=a){a=1;const n=await t();y(n)||""==n?e.setTables(s):e.setJson(n),a=0}return l},startAutoLoad:async e=>(l.stopAutoLoad(),await l.load(e),n(l.load),l),stopAutoLoad:()=>(o(),l),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),l),startAutoSave:async()=>(await l.stopAutoSave().save(),r=e.addTablesListener((()=>l.save())),l),stopAutoSave:()=>(E(r,e.delListener),l),getStore:()=>e,destroy:()=>l.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return re(l)},Ie=globalThis.window,ve=(e,t,s)=>{let n;return Te(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Ie.addEventListener("storage",n)}),(()=>{Ie.removeEventListener("storage",n),n=void 0}))},be=(e,t)=>ve(e,t,localStorage),pe=(e,t)=>ve(e,t,sessionStorage),Ce=(s,n)=>{let o;return Te(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}))},Se=e=>e.headers.get("ETag"),ye=(e,t,s,n)=>{let o,r;return Te(e,(async()=>{const e=await fetch(t);return r=Se(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=Se(s);y(r)||y(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{E(o,clearInterval),o=void 0}))},Ee=_((e=>{const[t,s,n,o,r,,,a,,l,c,g,L]=Z(e,(()=>!0),M),T=e.createStore(),I=e.createStore(),v=e.createStore(),b=j(),p=(e,t,...s)=>h(s,(s=>Y(q(q(b,t,j),e,X),s))),C=(e,t,s)=>g(e,0,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),S={setQueryDefinition:(t,s,n)=>{let o;a(t,s),T.delTable(t),I.delTable(t),v.delTable(t);const r=[],l=[[null,[s,null,null,[],j()]]],c=[],b=[],m=[],M=[];n({select:(e,t)=>{const s=k(e)?[f(r)+"",e]:[y(t)?e:t,s=>s(e,t)];return w(r,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=y(s)||k(t)?null:t,o=y(n)?t:s,r=[e,[e,n,k(o)?o:e=>e(o),[],j()]];return w(l,r),{as:e=>r[0]=e}},where:(e,t,s)=>w(c,k(e)?e:y(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const r=[e,[e,k(t)?[t,s,n,o]:P(Re,t)??[(e,t)=>t]]];return w(b,r),{as:e=>r[0]=e}},having:(e,t)=>w(m,k(e)?e:s=>s(e)===t),order:(e,t)=>w(M,[k(e)?e:t=>t(e)??0,t]),limit:(e,t)=>{o=y(t)?[0,e]:[e,t]}});const x=j(r);if(J(x))return S;const A=j(l);B(A,((e,[,t])=>E(P(A,t),(({3:t})=>y(e)?0:w(t,e)))));const Q=j(b);let G=T,K=I;if(R(M)&&y(o))K=v;else{C(t,K,v);const e=(e,t)=>{const n=P(s,e)??[],o=P(s,t)??[],r=M.findIndex(((e,t)=>n[t]!==o[t]));return r<0?0:ge(n[r],o[r])*(M[r][1]?-1:1)},s=j(),n=j();p(K,t,R(M)?K.addRowIdsListener(t,(()=>z(n))):K.addRowListener(t,null,((e,o,r)=>{let a=null;if(K.hasRow(t,r)){const e=P(s,r)??[],o=K.getRow(t,r),i=e=>o[e];if(l=([e])=>e(i,r),a=M.map(l),d(e,a))return void(P(n,r)&&v.setRow(t,r,o))}var l;H(s,r,a),z(n)})),K.addTableListener(t,(()=>{if(J(n)&&(v.delTable(t),K.hasTable(t))){const s=K.getTable(t);h(u(ne(s),e),(e=>H(n,e,0))),h(E(o,(([e,t])=>{return s=W(n),o=e,r=e+t,s.slice(o,r);var s,o,r}),(()=>W(n))),(e=>{v.setRow(t,e,s[e]),H(n,e,1)}))}})))}if(J(Q)&&R(m))G=K;else{C(t,G,K);const e=j();B(Q,((t,[s,n])=>Y(q(e,s,X),[t,n])));const s=X();B(x,(t=>F(e,t)?0:Y(s,t)));const n=j(),o=(s,n,o,r)=>E(s,(([s,a,l,d])=>{B(n,((t,[n])=>{const a=q(s,t,j),l=P(a,o),i=r?void 0:n;if(l!==i){const s=X([[l,i]]),n=D(a);H(a,o,i),N(P(e,t),(([e,t])=>{const o=Le(d[e],n,a,s,t);d[e]=y(ce(o))?null:o}))}})),(J(a)||!i(m,(e=>e((e=>d[e]))))?K.delRow:K.setRow)(t,l,d)}));p(G,t,G.addRowListener(t,null,((r,a,l,i)=>{const d=[],c=[],u=j(),h=G.hasRow(t,l);let g=!h;N(s,(e=>{const[s,n,o]=i(t,l,e);w(d,n),w(c,o),g||=s})),B(e,(e=>{const[s,,n]=i(t,l,e);(g||s)&&H(u,e,[n])})),g&&o(V(n,d,void 0,(([,e,s])=>{if(O(e,l),J(e))return K.delRow(t,s),1})),u,l,1),h&&o(V(n,c,(()=>{const e={};return N(s,(s=>e[s]=G.getCell(t,l,s))),[j(),X(),K.addRow(t,e,1),e]}),(([,e])=>{Y(e,l)})),u,l)})))}C(t,e,G);const U=(n,o,r,a)=>{const l=t=>e.getCell(o,r,t);h(a,(s=>{const[o,,r,a,i]=P(A,s),d=r?.(l,n),[c,u]=P(i,n)??[];d!=c&&(y(u)||L(t,u),H(i,n,y(d)?null:[d,...g(t,1,e.addRowListener(o,d,(()=>U(n,o,d,a))))]))})),(n=>{const o=(t,o)=>e.getCell(...y(o)?[s,n,t]:t===s?[s,n,o]:[P(A,t)?.[0],P(P(A,t)?.[4],n)?.[0],o]);G.transaction((()=>i(c,(e=>e(o)))?B(x,((e,s)=>ue(G,t,n,e,s(o,n)))):G.delRow(t,n)))})(n)},{3:Z}=P(A,null);return G.transaction((()=>g(t,1,e.addRowListener(s,null,((n,o,r)=>{e.hasRow(s,r)?U(r,s,r,Z):(G.delRow(t,r),N(A,(({4:e})=>E(P(e,r),(([,s])=>{L(t,s),H(e,r)})))))}))))),S},delQueryDefinition:e=>(B(P(b,e),((e,t)=>N(t,(t=>e.delListener(t))))),l(e),S),getStore:t,getQueryIds:s,forEachQuery:n,hasQuery:o,getTableId:r,getResultTable:e=>v.getTable(e),getResultRowIds:e=>v.getRowIds(e),getResultRow:(e,t)=>v.getRow(e,t),getResultCellIds:(e,t)=>v.getCellIds(e,t),getResultCell:(e,t,s)=>v.getCell(e,t,s),hasResultTable:e=>v.hasTable(e),hasResultRow:(e,t)=>v.hasRow(e,t),hasResultCell:(e,t,s)=>v.hasCell(e,t,s),forEachResultTable:e=>v.forEachTable(e),forEachResultRow:(e,t)=>v.forEachRow(e,t),forEachResultCell:(e,t,s)=>v.forEachCell(e,t,s),addResultTableListener:(e,t)=>v.addTableListener(e,((e,...s)=>t(S,...s))),addResultRowIdsListener:(e,t,s)=>v.addRowIdsListener(e,((e,...s)=>t(S,...s)),s),addResultRowListener:(e,t,s)=>v.addRowListener(e,t,((e,...t)=>s(S,...t))),addResultCellIdsListener:(e,t,s,n)=>v.addCellIdsListener(e,t,((e,...t)=>s(S,...t)),n),addResultCellListener:(e,t,s,n)=>v.addCellListener(e,t,s,((e,...t)=>n(S,...t))),delListener:e=>(v.delListener(e),S),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=v.getListenerStats();return n}};return re(S)})),me=_((e=>{const t=j(),s=j(),n=j(),o=j(),[r,a,l,i,d,c,,,u,h,g]=Z(e,(()=>[j(),j(),j(),j()]),(e=>y(e)?void 0:e+"")),[f,R,L]=te((()=>v)),w=(e,t,s)=>E(c(e),(([n,,o])=>{if(!F(o,t)){const r=X();if(d(e)!=I(e))Y(r,t);else{let e=t;for(;!y(e)&&!F(r,e);)Y(r,e),e=P(n,e)}if(s)return r;H(o,t,r)}return P(o,t)})),T=(e,t)=>E(c(e),(([,,e])=>H(e,t))),I=e=>P(t,e),v={setRelationshipDefinition:(e,r,a,l)=>(H(t,e,a),u(e,r,((t,r)=>{const a=X(),l=X(),i=X(),[d,u]=c(e);N(r,(([t,s],n)=>{y(t)||(Y(l,t),E(P(u,t),(e=>{O(e,n),J(e)&&H(u,t)}))),y(s)||(Y(l,s),F(u,s)||H(u,s,X()),Y(P(u,s),n)),Y(a,n),H(d,n,s),B(P(o,e),(t=>{F(w(e,t),n)&&Y(i,t)}))})),t(),N(a,(t=>R(s,[e,t]))),N(l,(t=>R(n,[e,t]))),N(i,(t=>{T(e,t),R(o,[e,t])}))}),$(l)),v),delRelationshipDefinition:e=>(H(t,e),h(e),v),getStore:r,getRelationshipIds:a,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:I,getRemoteRowId:(e,t)=>P(c(e)?.[0],t),getLocalRowIds:(e,t)=>Q(P(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>y(c(e))?[t]:Q(w(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)=>(w(e,t),f(s,o,[e,t])),delListener:e=>(T(...L(e)),v),destroy:g,getListenerStats:()=>({})};return re(v)})),ke=e=>[e,e],Me=e=>0==((e,t=x)=>t(e[0])+t(e[1]))(e),De=()=>[j(),j()],xe=()=>[De(),De()],Ae=(e,t,s,n=H)=>{const o=(r=W(e),a=e=>!ae(t,e),r.filter(a));var r,a;return h(ne(t),(n=>s(e,n,t[n]))),h(o,(t=>n(e,t))),e},Fe=(e,t,s)=>y(e)||!(e=>S(e,se)&&e.constructor==se)(e)||de(e)||oe(e)?(s?.(),!1):(ie(e,((s,n)=>{t(s,n)||le(e,n)})),!de(e)),Je=(e,t,s)=>H(e,t,P(e,t)==-s?void 0:s),Qe=()=>{let e,t,s=0,n=0;const o=j(),a=j(),i=j(),c=j(),u=j(),g=j(),f=j(),R=j(),L=De(),T=xe(),b=De(),p=xe(),C=De(),S=xe(),M=De(),x=De(),A=De(),[Q,O,V,Z,$]=te((()=>Ze)),_=(t,s)=>(!e||F(g,s)||ye(s))&&Fe(t,((e,t)=>ee(s,t,e)),(()=>ye(s))),ee=(e,t,s,n)=>Fe(n?s:ne(s,e,t),((n,o)=>E(se(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>ye(e,t))),se=(t,s,n,o)=>e?E(P(P(g,t),n),(e=>ce(o)!=e.type?ye(t,s,n,o,e.default):o),(()=>ye(t,s,n,o))):y(ce(o))?ye(t,s,n,o):o,ne=(e,t,s)=>(E(P(f,t),(([n,o])=>{N(n,((t,s)=>{ae(e,s)||(e[s]=t)})),N(o,(n=>{ae(e,n)||ye(t,s,n)}))})),e),oe=e=>Ae(g,e,((e,t,s)=>{const n=j(),o=X();Ae(q(g,t,j),s,((e,t,s)=>{H(e,t,s),E(s.default,(e=>H(n,t,e)),(()=>Y(o,t)))})),H(f,t,[n,o])}),((e,t)=>{H(g,t),H(f,t)})),ue=e=>Ae(R,e,((e,t,s)=>he(t,s)),((e,t)=>Te(t))),he=(e,t)=>Ae(q(R,e,(()=>(be(e,1),j()))),t,((t,s,n)=>ge(e,t,s,n)),((t,s)=>Ie(e,t,s))),ge=(e,t,s,n,o)=>Ae(q(t,s,(()=>(pe(e,s,1),j()))),n,((t,n,o)=>fe(e,s,t,n,o)),((n,r)=>ve(e,t,s,n,r,o))),fe=(e,t,s,n,o)=>{F(s,n)||Ce(e,t,n,1);const r=P(s,n);o!==r&&(Se(e,t,n,r,o),H(s,n,o))},Re=(e,t,s,n,o)=>E(P(t,s),(t=>fe(e,s,t,n,o)),(()=>ge(e,t,s,ne({[n]:o},e,s)))),Le=e=>{const t=""+s++;return F(e,t)?Le(e):t},we=e=>P(R,e)??he(e,{}),Te=e=>he(e,{}),Ie=(e,t,s)=>ge(e,t,s,{},!0),ve=(e,t,s,n,o,r)=>{const a=P(P(f,e)?.[0],o);if(!y(a)&&!r)return fe(e,s,n,o,a);const l=t=>{Se(e,s,t,P(n,t)),Ce(e,s,t,-1),H(n,t)};y(a)?l(o):B(n,l),J(n)&&(pe(e,s,-1),J(H(t,s))&&(be(e,-1),H(R,e)))},be=(e,t)=>Je(J(o)?H(o,null,Z(T[0][1])||Z(T[1][1])?We():0):o,e,t),pe=(e,t,s)=>Je(q(a,e,(()=>j([[null,Z(p[0][1],[e])||Z(p[1][1],[e])?Pe(e):0]]))),t,s),Ce=(e,t,s,n)=>Je(q(q(i,e,j),t,(()=>j([[null,Z(S[0][1],[e,t])||Z(S[1][1],[e,t])?Be(e,t):0]]))),s,n),Se=(e,t,s,n,o)=>q(q(q(c,e,j),t,j),s,(()=>[n,0]))[1]=o,ye=(e,t,s,n,o)=>(w(q(q(q(u,e,j),t,j),s,(()=>[])),n),o),Ee=(e,t,s)=>E(P(P(P(c,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ke(He(e,t,s))])),me=e=>J(u)||J(x[e])?0:N(e?K(u,U):u,((t,s)=>N(t,((t,n)=>N(t,((t,o)=>O(x[e],[s,n,o],t))))))),ze=(e,t,s,n)=>{D(t)>1?(O(e[0],n),O(e[1],n)):J(t)||0==P(t,null)||d(P(t,null),s(...n??[]))||O(e[1],n)},Ne=e=>{const t=Me(S[e])&&Me(p[e])&&Me(T[e]),s=J(M[e])&&J(C[e])&&J(b[e])&&J(L[e]);if(!t||!s){const n=e?[K(o),U(a),K(i,U),K(c,U)]:[o,a,i,c];if(t||(N(n[2],((t,s)=>N(t,((t,n)=>ze(S[e],t,Be,[s,n]))))),N(n[1],((t,s)=>ze(p[e],t,Pe,[s]))),ze(T[e],n[0],We)),!s){let t;N(n[3],((s,n)=>{let o;N(s,((s,r)=>{let a;N(s,(([s,l],i)=>{l!==s&&(O(M[e],[n,r,i],l,s,Ee),t=o=a=1)})),a&&O(C[e],[n,r],Ee)})),o&&O(b[e],[n],Ee)})),t&&O(L[e],void 0,Ee)}}},Oe=e=>(Ve(e),Ze),je=()=>G(R,(e=>G(e,G))),We=()=>W(R),Pe=e=>W(P(R,e)),Be=(e,t)=>W(P(P(R,e),t)),He=(e,t,s)=>P(P(P(R,e),t),s),qe=e=>Oe((()=>(e=>Fe(e,_,ye))(e)?ue(e):0)),Ge=(e,t,s,n)=>Oe((()=>E(se(e,t,s,k(n)?n(He(e,t,s)):n),(n=>Re(e,we(e),t,s,n))))),Ke=()=>Oe((()=>ue({}))),Ue=(e,t,s,n)=>Oe((()=>E(P(R,e),(o=>E(P(o,t),(r=>F(r,s)?ve(e,o,t,r,s,n):0)))))),Ve=(e,t)=>{if(-1==n)return;Xe();const s=e?.();return Ye(t),s},Xe=()=>(n++,Ze),Ye=e=>(n>0&&(n--,0==n&&(t=!J(c),n=1,me(1),t&&Ne(1),n=-1,e?.(G(c,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),de)),de),G(u,(e=>G(e,G))))&&(n=1,N(c,((e,t)=>N(e,((e,s)=>N(e,(([e],n)=>y(e)?Ue(t,s,n,!0):Ge(t,s,n,e))))))),n=-1,t=!1),O(A[0],void 0,t),me(0),t&&Ne(0),O(A[1],void 0,t),n=0,h([c,u,o,a,i],z))),Ze),Ze={getTables:je,getTableIds:We,getTable:e=>G(P(R,e),G),getRowIds:Pe,getRow:(e,t)=>G(P(P(R,e),t)),getCellIds:Be,getCell:He,hasTables:()=>!J(R),hasTable:e=>F(R,e),hasRow:(e,t)=>F(P(R,e),t),hasCell:(e,t,s)=>F(P(P(R,e),t),s),getJson:()=>I(R),getSchemaJson:()=>I(g),setTables:qe,setTable:(e,t)=>Oe((()=>_(t,e)?he(e,t):0)),setRow:(e,t,s)=>Oe((()=>ee(e,t,s)?ge(e,we(e),t,s):0)),addRow:(e,t,s)=>Ve((()=>{const n=ee(e,void 0,t),o=n||s?Le(P(R,e)):void 0;return n&&ge(e,we(e),o,t),o})),setPartialRow:(e,t,s)=>Oe((()=>{if(ee(e,t,s,1)){const n=we(e);ie(s,((s,o)=>Re(e,n,t,o,s)))}})),setCell:Ge,setJson:e=>{try{"{}"===e?Ke():qe(v(e))}catch{}return Ze},setSchema:t=>Oe((()=>{if((e=(e=>Fe(e,(e=>Fe(e,(e=>{if(!Fe(e,((e,t)=>l(["type","default"],t))))return!1;const t=e.type;return!(!m(t)&&t!=r||(ce(e.default)!=t&&le(e,"default"),0))})))))(t))&&(oe(t),!J(R))){const e=je();Ke(),qe(e)}})),delTables:Ke,delTable:e=>Oe((()=>F(R,e)?Te(e):0)),delRow:(e,t)=>Oe((()=>E(P(R,e),(s=>F(s,t)?Ie(e,s,t):0)))),delCell:Ue,delSchema:()=>Oe((()=>{oe({}),e=!1})),transaction:Ve,startTransaction:Xe,finishTransaction:Ye,forEachTable:e=>N(R,((t,s)=>e(s,(e=>N(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>N(P(R,e),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(P(P(R,e),t),s),addTablesListener:(e,t)=>Q(e,L[t?1:0]),addTableIdsListener:(e,t,s)=>Q(e,T[s?1:0][t?1:0]),addTableListener:(e,t,s)=>Q(t,b[s?1:0],[e]),addRowIdsListener:(e,t,s,n)=>Q(t,p[n?1:0][s?1:0],[e]),addRowListener:(e,t,s,n)=>Q(s,C[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n,o)=>Q(s,S[o?1:0][n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>Q(n,M[o?1:0],[e,t,s]),addInvalidCellListener:(e,t,s,n,o)=>Q(n,x[o?1:0],[e,t,s]),addWillFinishTransactionListener:e=>Q(e,A[0]),addDidFinishTransactionListener:e=>Q(e,A[1]),callListener:e=>($(e,[We,Pe,Be],(e=>y(e[2])?[]:ke(He(...e)))),Ze),delListener:e=>(V(e),Ze),getListenerStats:()=>({}),createStore:Qe};return re(Ze)};export{he as createCheckpoints,Te as createCustomPersister,Ce as createFilePersister,fe as createIndexes,be as createLocalPersister,we as createMetrics,Ee as createQueries,me as createRelationships,ye as createRemotePersister,pe as createSessionPersister,Qe as createStore,ge as defaultSorter};
Binary file
package/lib/ui-react.d.ts CHANGED
@@ -399,6 +399,9 @@ export function useTables(storeOrStoreId?: StoreOrStoreId): Tables;
399
399
  * @param storeOrStoreId The Store to be accessed: omit for the default context
400
400
  * Store, provide an Id for a named context Store, or provide an explicit
401
401
  * reference.
402
+ * @param trackReorder Since v2.0.0, an optional boolean that indicates that the
403
+ * listener should be called if the set of Ids remains the same but their order
404
+ * changes. See the addTableIdsListener method for more details.
402
405
  * @returns An array of the Ids of every Table in the Store.
403
406
  * @example
404
407
  * This example creates a Store outside the application, which is used in the
@@ -456,7 +459,10 @@ export function useTables(storeOrStoreId?: StoreOrStoreId): Tables;
456
459
  * ```
457
460
  * @category Store hooks
458
461
  */
459
- export function useTableIds(storeOrStoreId?: StoreOrStoreId): Ids;
462
+ export function useTableIds(
463
+ storeOrStoreId?: StoreOrStoreId,
464
+ trackReorder?: boolean,
465
+ ): Ids;
460
466
 
461
467
  /**
462
468
  * The useTable hook returns an object containing the entire data of a single
@@ -557,6 +563,9 @@ export function useTable(tableId: Id, storeOrStoreId?: StoreOrStoreId): Table;
557
563
  * @param storeOrStoreId The Store to be accessed: omit for the default context
558
564
  * Store, provide an Id for a named context Store, or provide an explicit
559
565
  * reference.
566
+ * @param trackReorder Since v2.0.0, an optional boolean that indicates that the
567
+ * listener should be called if the set of Ids remains the same but their order
568
+ * changes. See the addRowIdsListener method for more details.
560
569
  * @returns An array of the Ids of every Row in the Table.
561
570
  * @example
562
571
  * This example creates a Store outside the application, which is used in the
@@ -616,7 +625,11 @@ export function useTable(tableId: Id, storeOrStoreId?: StoreOrStoreId): Table;
616
625
  * ```
617
626
  * @category Store hooks
618
627
  */
619
- export function useRowIds(tableId: Id, storeOrStoreId?: StoreOrStoreId): Ids;
628
+ export function useRowIds(
629
+ tableId: Id,
630
+ storeOrStoreId?: StoreOrStoreId,
631
+ trackReorder?: boolean,
632
+ ): Ids;
620
633
 
621
634
  /**
622
635
  * The useRow hook returns an object containing the entire data of a single Row
@@ -725,6 +738,9 @@ export function useRow(
725
738
  * @param storeOrStoreId The Store to be accessed: omit for the default context
726
739
  * Store, provide an Id for a named context Store, or provide an explicit
727
740
  * reference.
741
+ * @param trackReorder Since v2.0.0, an optional boolean that indicates that the
742
+ * listener should be called if the set of Ids remains the same but their order
743
+ * changes. See the addCellIdsListener method for more details.
728
744
  * @returns An array of the Ids of every Cell in the Row.
729
745
  * @example
730
746
  * This example creates a Store outside the application, which is used in the
@@ -792,6 +808,7 @@ export function useCellIds(
792
808
  tableId: Id,
793
809
  rowId: Id,
794
810
  storeOrStoreId?: StoreOrStoreId,
811
+ trackReorder?: boolean,
795
812
  ): Ids;
796
813
 
797
814
  /**
@@ -1798,6 +1815,9 @@ export function useTablesListener(
1798
1815
  * @param listenerDeps An optional array of dependencies for the `listener`
1799
1816
  * function, which, if any change, result in the re-registration of the
1800
1817
  * listener. This parameter defaults to an empty array.
1818
+ * @param trackReorder Since v2.0.0, an optional boolean that indicates that the
1819
+ * listener should be called if the set of Ids remains the same but their order
1820
+ * changes. See the addTableIdsListener method for more details.
1801
1821
  * @param mutator An optional boolean that indicates that the listener mutates
1802
1822
  * Store data.
1803
1823
  * @param storeOrStoreId The Store to register the listener with: omit for the
@@ -1837,6 +1857,7 @@ export function useTablesListener(
1837
1857
  export function useTableIdsListener(
1838
1858
  listener: TableIdsListener,
1839
1859
  listenerDeps?: React.DependencyList,
1860
+ trackReorder?: boolean,
1840
1861
  mutator?: boolean,
1841
1862
  storeOrStoreId?: StoreOrStoreId,
1842
1863
  ): void;
@@ -1929,6 +1950,9 @@ export function useTableListener(
1929
1950
  * @param listenerDeps An optional array of dependencies for the `listener`
1930
1951
  * function, which, if any change, result in the re-registration of the
1931
1952
  * listener. This parameter defaults to an empty array.
1953
+ * @param trackReorder Since v2.0.0, an optional boolean that indicates that the
1954
+ * listener should be called if the set of Ids remains the same but their order
1955
+ * changes. See the addRowIdsListener method for more details.
1932
1956
  * @param mutator An optional boolean that indicates that the listener mutates
1933
1957
  * Store data.
1934
1958
  * @param storeOrStoreId The Store to register the listener with: omit for the
@@ -1969,6 +1993,7 @@ export function useRowIdsListener(
1969
1993
  tableId: IdOrNull,
1970
1994
  listener: RowIdsListener,
1971
1995
  listenerDeps?: React.DependencyList,
1996
+ trackReorder?: boolean,
1972
1997
  mutator?: boolean,
1973
1998
  storeOrStoreId?: StoreOrStoreId,
1974
1999
  ): void;
@@ -2077,6 +2102,9 @@ export function useRowListener(
2077
2102
  * @param listenerDeps An optional array of dependencies for the `listener`
2078
2103
  * function, which, if any change, result in the re-registration of the
2079
2104
  * listener. This parameter defaults to an empty array.
2105
+ * @param trackReorder Since v2.0.0, an optional boolean that indicates that the
2106
+ * listener should be called if the set of Ids remains the same but their order
2107
+ * changes. See the addCellIdsListener method for more details.
2080
2108
  * @param mutator An optional boolean that indicates that the listener mutates
2081
2109
  * Store data.
2082
2110
  * @param storeOrStoreId The Store to register the listener with: omit for the
@@ -2120,6 +2148,7 @@ export function useCellIdsListener(
2120
2148
  rowId: IdOrNull,
2121
2149
  listener: CellIdsListener,
2122
2150
  listenerDeps?: React.DependencyList,
2151
+ trackReorder?: boolean,
2123
2152
  mutator?: boolean,
2124
2153
  storeOrStoreId?: StoreOrStoreId,
2125
2154
  ): void;
@@ -4898,6 +4927,12 @@ export type TablesProps = {
4898
4927
  * for a named context Store, or provide an explicit reference.
4899
4928
  */
4900
4929
  readonly store?: StoreOrStoreId;
4930
+ /**
4931
+ * An optional boolean that indicates that the component should re-render if
4932
+ * the set of Table Ids in the Store remains the same but their order changes.
4933
+ * See the addTableIdsListener method for more details.
4934
+ */
4935
+ readonly trackReorder?: boolean;
4901
4936
  /**
4902
4937
  * A component for rendering each Table in the Store (to override the default
4903
4938
  * TableView component).
@@ -4935,6 +4970,12 @@ export type TableProps = {
4935
4970
  * for a named context Store, or provide an explicit reference.
4936
4971
  */
4937
4972
  readonly store?: StoreOrStoreId;
4973
+ /**
4974
+ * An optional boolean that indicates that the component should re-render if
4975
+ * the set of Row Ids in the Table remains the same but their order changes.
4976
+ * See the addRowIdsListener method for more details.
4977
+ */
4978
+ readonly trackReorder?: boolean;
4938
4979
  /**
4939
4980
  * A custom component for rendering each Row in the Table (to override the
4940
4981
  * default RowView component).
@@ -4976,6 +5017,12 @@ export type RowProps = {
4976
5017
  * for a named context Store, or provide an explicit reference.
4977
5018
  */
4978
5019
  readonly store?: StoreOrStoreId;
5020
+ /**
5021
+ * An optional boolean that indicates that the component should re-render if
5022
+ * the set of Cell Ids remains the same but their order changes. See the
5023
+ * addCellIdsListener method for more details.
5024
+ */
5025
+ readonly trackReorder?: boolean;
4979
5026
  /**
4980
5027
  * A custom component for rendering each Cell in the Row (to override the
4981
5028
  * default CellView component).
package/lib/ui-react.js CHANGED
@@ -1 +1 @@
1
- import e,{useContext as o}from"react";const t=e=>typeof e,d=t(""),s=(e,o)=>e.map(o),r=e=>null==e,n=(e,o,t)=>r(e)?t?.():o(e),i=()=>{},{createContext:c,useContext:l}=e,I=c([]),a=(e,o)=>{const t=l(I);return r(e)?t[o]:((e,o)=>n(e,(e=>e[o])))(t[o+1],e)},p=(e,o)=>{const s=a(e,o);return r(e)||(e=>t(e)==d)(e)?s:e},u=e=>a(e,0),b=e=>a(e,2),g=e=>a(e,4),w=e=>a(e,6),C=e=>a(e,8),m=e=>p(e,0),k=e=>p(e,2),R=e=>p(e,4),h=e=>p(e,6),v=e=>p(e,8),{useCallback:y,useEffect:T,useMemo:x,useState:P}=e,L=(e,o,t=[])=>{const d=x((()=>o(e)),[e,...t]);return T((()=>()=>d.destroy()),[d]),d},S=(e,o,t,...d)=>{const s=o?.["get"+e]??(()=>t),r=s(...d),[,n]=P(r);return T((()=>{const t=o?.[`add${e}Listener`]?.(...d,(()=>n(s(...d))),!1);return()=>o?.delListener(t)}),[o,e,n,s,...d]),r},B=(e,o,t,d=[],s,...r)=>{T((()=>{const d=o?.[`add${e}Listener`]?.(...r,t,s);return()=>o?.delListener(d)}),[o,e,...d,s,...r])},f=(e,o,t,d=[],s=i,r=[],...c)=>{const l=m(e);return y((e=>n(l,(d=>n(t(e,d),(e=>s(d["set"+o](...c,e),e)))))),[l,o,...d,...r,...c])},M=(e,o,t=i,d=[],...s)=>{const r=m(e);return y((()=>t(r?.["del"+o](...s))),[r,o,...d,...s])},A=(e,o,t)=>{const d=v(e);return y((()=>d?.[o](t)),[d,o,t])},E=(e,o=[])=>x(e,o),$=e=>S("Tables",m(e),{}),F=e=>S("TableIds",m(e),[]),j=(e,o)=>S("Table",m(o),{},e),q=(e,o)=>S("RowIds",m(o),[],e),z=(e,o,t)=>S("Row",m(t),{},e,o),D=(e,o,t)=>S("CellIds",m(t),[],e,o),G=(e,o,t,d)=>S("Cell",m(d),void 0,e,o,t),H=(e,o,t,d,s)=>f(t,"Tables",e,o,d,s),J=(e,o,t,d,s,r)=>f(d,"Table",o,t,s,r,e),K=(e,o,t,d,s,r,n)=>f(s,"Row",t,d,r,n,e,o),N=(e,o,t=[],d,s=i,r=[])=>{const c=m(d);return y((t=>n(c,(d=>n(o(t,d),(o=>s(d.addRow(e,o),d,o)))))),[c,e,...t,...r])},O=(e,o,t,d,s,r,n)=>f(s,"PartialRow",t,d,r,n,e,o),Q=(e,o,t,d,s,r,n,i)=>f(r,"Cell",d,s,n,i,e,o,t),U=(e,o,t)=>M(e,"Tables",o,t),V=(e,o,t,d)=>M(o,"Table",t,d,e),W=(e,o,t,d,s)=>M(t,"Row",d,s,e,o),X=(e,o,t,d,s,r,n)=>M(s,"Cell",r,n,e,o,t,d),Y=(e,o,t,d)=>B("Tables",m(d),e,o,t),Z=(e,o,t,d)=>B("TableIds",m(d),e,o,t),_=(e,o,t,d,s)=>B("Table",m(s),o,t,d,e),ee=(e,o,t,d,s)=>B("RowIds",m(s),o,t,d,e),oe=(e,o,t,d,s,r)=>B("Row",m(r),t,d,s,e,o),te=(e,o,t,d,s,r)=>B("CellIds",m(r),t,d,s,e,o),de=(e,o,t,d,s,r,n)=>B("Cell",m(n),d,s,r,e,o,t),se=(e,o,t)=>L(e,o,t),re=(e,o)=>S("Metric",k(o),void 0,e),ne=(e,o,t,d)=>B("Metric",k(d),o,t,void 0,e),ie=(e,o,t)=>L(e,o,t),ce=(e,o)=>S("SliceIds",R(o),[],e),le=(e,o,t)=>S("SliceRowIds",R(t),[],e,o),Ie=(e,o,t,d)=>B("SliceIds",R(d),o,t,void 0,e),ae=(e,o,t,d,s)=>B("SliceRowIds",R(s),t,d,void 0,e,o),pe=(e,o,t)=>L(e,o,t),ue=(e,o,t)=>S("RemoteRowId",h(t),void 0,e,o),be=(e,o,t)=>S("LocalRowIds",h(t),[],e,o),ge=(e,o,t)=>S("LinkedRowIds",h(t),[],e,o),we=(e,o,t,d,s)=>B("RemoteRowId",h(s),t,d,void 0,e,o),Ce=(e,o,t,d,s)=>B("LocalRowIds",h(s),t,d,void 0,e,o),me=(e,o,t,d,s)=>B("LinkedRowIds",h(s),t,d,void 0,e,o),ke=(e,o,t)=>L(e,o,t),Re=e=>S("CheckpointIds",v(e),[[],void 0,[]]),he=(e,o)=>S("Checkpoint",v(o),void 0,e),ve=(e=i,o=[],t,d=i,s=[])=>{const r=v(t);return y((o=>n(r,(t=>{const s=e(o);d(t.addCheckpoint(s),t,s)}))),[r,...o,...s])},ye=e=>A(e,"goBackward"),Te=e=>A(e,"goForward"),xe=(e,o=[],t,d=i,s=[])=>{const r=v(t);return y((o=>n(r,(t=>n(e(o),(e=>d(t.goTo(e),e)))))),[r,...o,...s])},Pe=e=>{const o=v(e),[t,d]=Re(o);return[(s=t,!(0==(e=>e.length)(s))),ye(o),d,n(d,(e=>o?.getCheckpoint(e)))??""];var s},Le=e=>{const o=v(e),[,,[t]]=Re(o);return[!r(t),Te(o),t,n(t,(e=>o?.getCheckpoint(e)))??""]},Se=(e,o,t)=>B("CheckpointIds",v(t),e,o),Be=(e,o,t,d)=>B("Checkpoint",v(d),o,t,void 0,e),fe=(e,o,t=[],d,s=[])=>{const[,r]=P(),n=x((()=>o(e)),[e,...t]);return T((()=>((async()=>{await(d?.(n)),r(1)})(),()=>{n.destroy()})),[n,...s]),n},{createElement:Me,useMemo:Ae}=e,Ee=e=>{const o=h(e);return[o,o?.getStore()]},$e=({relationshipId:e,relationships:o,rowComponent:t=Ge,getRowComponentProps:d,separator:r,debugIds:n},i,c)=>{const[l,I]=Ee(o),a=l?.getLocalTableId(e),p=i(e,c,l);return ze(s(p,(e=>Me(t,{...je(d,e),key:e,tableId:a,rowId:e,store:I,debugIds:n}))),r,n,c)},Fe=e=>({checkpoints:o,checkpointComponent:t=We,getCheckpointComponentProps:d,separator:r,debugIds:n})=>{const i=v(o);return ze(s(e(Re(i)),(e=>Me(t,{...je(d,e),key:e,checkpoints:i,checkpointId:e,debugIds:n}))),r)},je=(e,o)=>r(e)?{}:e(o),qe=({store:e,storesById:t,metrics:d,metricsById:s,indexes:r,indexesById:n,relationships:i,relationshipsById:c,checkpoints:l,checkpointsById:a,children:p})=>{const u=o(I);return Me(I.Provider,{value:Ae((()=>[e??u[0],{...u[1],...t},d??u[2],{...u[3],...s},r??u[4],{...u[5],...n},i??u[6],{...u[7],...c},l??u[8],{...u[9],...a}]),[e,t,d,s,r,n,i,c,l,a,u])},p)},ze=(e,o,t,d)=>{const n=r(o)||!Array.isArray(e)?e:s(e,((e,t)=>t>0?[o,e]:e));return t?[d,":{",n,"}"]:n},De=({tableId:e,rowId:o,cellId:t,store:d,debugIds:s})=>ze(""+(G(e,o,t,d)??""),void 0,s,t),Ge=({tableId:e,rowId:o,store:t,cellComponent:d=De,getCellComponentProps:r,separator:n,debugIds:i})=>ze(s(D(e,o,t),(s=>Me(d,{...je(r,s),key:s,tableId:e,rowId:o,cellId:s,store:t,debugIds:i}))),n,i,o),He=({tableId:e,store:o,rowComponent:t=Ge,getRowComponentProps:d,separator:r,debugIds:n})=>ze(s(q(e,o),(s=>Me(t,{...je(d,s),key:s,tableId:e,rowId:s,store:o,debugIds:n}))),r,n,e),Je=({store:e,tableComponent:o=He,getTableComponentProps:t,separator:d,debugIds:r})=>ze(s(F(e),(d=>Me(o,{...je(t,d),key:d,tableId:d,store:e,debugIds:r}))),d),Ke=({metricId:e,metrics:o,debugIds:t})=>ze(re(e,o)??"",void 0,t,e),Ne=({indexId:e,sliceId:o,indexes:t,rowComponent:d=Ge,getRowComponentProps:r,separator:n,debugIds:i})=>{const c=R(t),l=c?.getStore(),I=c?.getTableId(e),a=le(e,o,c);return ze(s(a,(e=>Me(d,{...je(r,e),key:e,tableId:I,rowId:e,store:l,debugIds:i}))),n,i,o)},Oe=({indexId:e,indexes:o,sliceComponent:t=Ne,getSliceComponentProps:d,separator:r,debugIds:n})=>ze(s(ce(e,o),(s=>Me(t,{...je(d,s),key:s,indexId:e,sliceId:s,indexes:o,debugIds:n}))),r,n,e),Qe=({relationshipId:e,localRowId:o,relationships:t,rowComponent:d=Ge,getRowComponentProps:s,debugIds:n})=>{const[i,c]=Ee(t),l=i?.getRemoteTableId(e),I=ue(e,o,i);return ze(r(l)||r(I)?null:Me(d,{...je(s,I),key:I,tableId:l,rowId:I,store:c,debugIds:n}),void 0,n,o)},Ue=e=>$e(e,be,e.remoteRowId),Ve=e=>$e(e,ge,e.firstRowId),We=({checkpoints:e,checkpointId:o,debugIds:t})=>ze(he(o,e)??"",void 0,t,o),Xe=Fe((e=>e[0])),Ye=Fe((e=>r(e[1])?[]:[e[1]])),Ze=Fe((e=>e[2]));export{Xe as BackwardCheckpointsView,De as CellView,We as CheckpointView,Ye as CurrentCheckpointView,Ze as ForwardCheckpointsView,Oe as IndexView,Ve as LinkedRowsView,Ue as LocalRowsView,Ke as MetricView,qe as Provider,Qe as RemoteRowView,Ge as RowView,Ne as SliceView,He as TableView,Je as TablesView,N as useAddRowCallback,G as useCell,D as useCellIds,te as useCellIdsListener,de as useCellListener,he as useCheckpoint,Re as useCheckpointIds,Se as useCheckpointIdsListener,Be as useCheckpointListener,C as useCheckpoints,ke as useCreateCheckpoints,ie as useCreateIndexes,se as useCreateMetrics,fe as useCreatePersister,pe as useCreateRelationships,E as useCreateStore,X as useDelCellCallback,W as useDelRowCallback,V as useDelTableCallback,U as useDelTablesCallback,ye as useGoBackwardCallback,Te as useGoForwardCallback,xe as useGoToCallback,g as useIndexes,ge as useLinkedRowIds,me as useLinkedRowIdsListener,be as useLocalRowIds,Ce as useLocalRowIdsListener,re as useMetric,ne as useMetricListener,b as useMetrics,Le as useRedoInformation,w as useRelationships,ue as useRemoteRowId,we as useRemoteRowIdListener,z as useRow,q as useRowIds,ee as useRowIdsListener,oe as useRowListener,Q as useSetCellCallback,ve as useSetCheckpointCallback,O as useSetPartialRowCallback,K as useSetRowCallback,J as useSetTableCallback,H as useSetTablesCallback,ce as useSliceIds,Ie as useSliceIdsListener,le as useSliceRowIds,ae as useSliceRowIdsListener,u as useStore,j as useTable,F as useTableIds,Z as useTableIdsListener,_ as useTableListener,$ as useTables,Y as useTablesListener,Pe as useUndoInformation};
1
+ import e,{useContext as o}from"react";const t=e=>typeof e,r=t(""),s=(e,o)=>e.map(o),d=e=>null==e,n=(e,o,t)=>d(e)?t?.():o(e),c=()=>{},{createContext:l,useContext:I}=e,a=l([]),i=(e,o)=>{const t=I(a);return d(e)?t[o]:((e,o)=>n(e,(e=>e[o])))(t[o+1],e)},p=(e,o)=>{const s=i(e,o);return d(e)||(e=>t(e)==r)(e)?s:e},u=e=>i(e,0),b=e=>i(e,2),g=e=>i(e,4),w=e=>i(e,6),C=e=>i(e,8),k=e=>p(e,0),m=e=>p(e,2),R=e=>p(e,4),h=e=>p(e,6),y=e=>p(e,8),{useCallback:T,useEffect:v,useMemo:x,useState:P}=e,L=(e,o,t=[])=>{const r=x((()=>o(e)),[e,...t]);return v((()=>()=>r.destroy()),[r]),r},S=(e,o,t,r=[],...s)=>{const d=o?.["get"+e]??(()=>t),n=d(...r),[,c]=P(n);return v((()=>{const t=o?.[`add${e}Listener`]?.(...r,(()=>c(d(...r))),...s);return()=>o?.delListener(t)}),[o,e,c,d,...r]),n},B=(e,o,t,r=[],s=[],...d)=>{v((()=>{const r=o?.[`add${e}Listener`]?.(...s,t,...d);return()=>o?.delListener(r)}),[o,e,...r,...s,...d])},f=(e,o,t,r=[],s=c,d=[],...l)=>{const I=k(e);return T((e=>n(I,(r=>n(t(e,r),(e=>s(r["set"+o](...l,e),e)))))),[I,o,...r,...d,...l])},M=(e,o,t=c,r=[],...s)=>{const d=k(e);return T((()=>t(d?.["del"+o](...s))),[d,o,...r,...s])},A=(e,o,t)=>{const r=y(e);return T((()=>r?.[o](t)),[r,o,t])},E=(e,o=[])=>x(e,o),$=e=>S("Tables",k(e),{}),F=(e,o)=>S("TableIds",k(e),[],[],o),j=(e,o)=>S("Table",k(o),{},[e]),q=(e,o,t)=>S("RowIds",k(o),[],[e],t),z=(e,o,t)=>S("Row",k(t),{},[e,o]),D=(e,o,t,r)=>S("CellIds",k(t),[],[e,o],r),G=(e,o,t,r)=>S("Cell",k(r),void 0,[e,o,t]),H=(e,o,t,r,s)=>f(t,"Tables",e,o,r,s),J=(e,o,t,r,s,d)=>f(r,"Table",o,t,s,d,e),K=(e,o,t,r,s,d,n)=>f(s,"Row",t,r,d,n,e,o),N=(e,o,t=[],r,s=c,d=[])=>{const l=k(r);return T((t=>n(l,(r=>n(o(t,r),(o=>s(r.addRow(e,o),r,o)))))),[l,e,...t,...d])},O=(e,o,t,r,s,d,n)=>f(s,"PartialRow",t,r,d,n,e,o),Q=(e,o,t,r,s,d,n,c)=>f(d,"Cell",r,s,n,c,e,o,t),U=(e,o,t)=>M(e,"Tables",o,t),V=(e,o,t,r)=>M(o,"Table",t,r,e),W=(e,o,t,r,s)=>M(t,"Row",r,s,e,o),X=(e,o,t,r,s,d,n)=>M(s,"Cell",d,n,e,o,t,r),Y=(e,o,t,r)=>B("Tables",k(r),e,o,[],t),Z=(e,o,t,r,s)=>B("TableIds",k(s),e,o,[],t,r),_=(e,o,t,r,s)=>B("Table",k(s),o,t,[e],r),ee=(e,o,t,r,s,d)=>B("RowIds",k(d),o,t,[e],r,s),oe=(e,o,t,r,s,d)=>B("Row",k(d),t,r,[e,o],s),te=(e,o,t,r,s,d,n)=>B("CellIds",k(n),t,r,[e,o],s,d),re=(e,o,t,r,s,d,n)=>B("Cell",k(n),r,s,[e,o,t],d),se=(e,o,t)=>L(e,o,t),de=(e,o)=>S("Metric",m(o),void 0,[e]),ne=(e,o,t,r)=>B("Metric",m(r),o,t,[e]),ce=(e,o,t)=>L(e,o,t),le=(e,o)=>S("SliceIds",R(o),[],[e]),Ie=(e,o,t)=>S("SliceRowIds",R(t),[],[e,o]),ae=(e,o,t,r)=>B("SliceIds",R(r),o,t,[e]),ie=(e,o,t,r,s)=>B("SliceRowIds",R(s),t,r,[e,o]),pe=(e,o,t)=>L(e,o,t),ue=(e,o,t)=>S("RemoteRowId",h(t),void 0,[e,o]),be=(e,o,t)=>S("LocalRowIds",h(t),[],[e,o]),ge=(e,o,t)=>S("LinkedRowIds",h(t),[],[e,o]),we=(e,o,t,r,s)=>B("RemoteRowId",h(s),t,r,[e,o]),Ce=(e,o,t,r,s)=>B("LocalRowIds",h(s),t,r,[e,o]),ke=(e,o,t,r,s)=>B("LinkedRowIds",h(s),t,r,[e,o]),me=(e,o,t)=>L(e,o,t),Re=e=>S("CheckpointIds",y(e),[[],void 0,[]]),he=(e,o)=>S("Checkpoint",y(o),void 0,[e]),ye=(e=c,o=[],t,r=c,s=[])=>{const d=y(t);return T((o=>n(d,(t=>{const s=e(o);r(t.addCheckpoint(s),t,s)}))),[d,...o,...s])},Te=e=>A(e,"goBackward"),ve=e=>A(e,"goForward"),xe=(e,o=[],t,r=c,s=[])=>{const d=y(t);return T((o=>n(d,(t=>n(e(o),(e=>r(t.goTo(e),e)))))),[d,...o,...s])},Pe=e=>{const o=y(e),[t,r]=Re(o);return[(s=t,!(0==(e=>e.length)(s))),Te(o),r,n(r,(e=>o?.getCheckpoint(e)))??""];var s},Le=e=>{const o=y(e),[,,[t]]=Re(o);return[!d(t),ve(o),t,n(t,(e=>o?.getCheckpoint(e)))??""]},Se=(e,o,t)=>B("CheckpointIds",y(t),e,o),Be=(e,o,t,r)=>B("Checkpoint",y(r),o,t,[e]),fe=(e,o,t=[],r,s=[])=>{const[,d]=P(),n=x((()=>o(e)),[e,...t]);return v((()=>((async()=>{await(r?.(n)),d(1)})(),()=>{n.destroy()})),[n,...s]),n},{createElement:Me,useMemo:Ae}=e,Ee=e=>{const o=h(e);return[o,o?.getStore()]},$e=({relationshipId:e,relationships:o,rowComponent:t=Ge,getRowComponentProps:r,separator:d,debugIds:n},c,l)=>{const[I,a]=Ee(o),i=I?.getLocalTableId(e),p=c(e,l,I);return ze(s(p,(e=>Me(t,{...je(r,e),key:e,tableId:i,rowId:e,store:a,debugIds:n}))),d,n,l)},Fe=e=>({checkpoints:o,checkpointComponent:t=We,getCheckpointComponentProps:r,separator:d,debugIds:n})=>{const c=y(o);return ze(s(e(Re(c)),(e=>Me(t,{...je(r,e),key:e,checkpoints:c,checkpointId:e,debugIds:n}))),d)},je=(e,o)=>d(e)?{}:e(o),qe=({store:e,storesById:t,metrics:r,metricsById:s,indexes:d,indexesById:n,relationships:c,relationshipsById:l,checkpoints:I,checkpointsById:i,children:p})=>{const u=o(a);return Me(a.Provider,{value:Ae((()=>[e??u[0],{...u[1],...t},r??u[2],{...u[3],...s},d??u[4],{...u[5],...n},c??u[6],{...u[7],...l},I??u[8],{...u[9],...i}]),[e,t,r,s,d,n,c,l,I,i,u])},p)},ze=(e,o,t,r)=>{const n=d(o)||!Array.isArray(e)?e:s(e,((e,t)=>t>0?[o,e]:e));return t?[r,":{",n,"}"]:n},De=({tableId:e,rowId:o,cellId:t,store:r,debugIds:s})=>ze(""+(G(e,o,t,r)??""),void 0,s,t),Ge=({tableId:e,rowId:o,store:t,trackReorder:r,cellComponent:d=De,getCellComponentProps:n,separator:c,debugIds:l})=>ze(s(D(e,o,t,r),(r=>Me(d,{...je(n,r),key:r,tableId:e,rowId:o,cellId:r,store:t,debugIds:l}))),c,l,o),He=({tableId:e,store:o,trackReorder:t,rowComponent:r=Ge,getRowComponentProps:d,separator:n,debugIds:c})=>ze(s(q(e,o,t),(t=>Me(r,{...je(d,t),key:t,tableId:e,rowId:t,store:o,debugIds:c}))),n,c,e),Je=({store:e,trackReorder:o,tableComponent:t=He,getTableComponentProps:r,separator:d,debugIds:n})=>ze(s(F(e,o),(o=>Me(t,{...je(r,o),key:o,tableId:o,store:e,debugIds:n}))),d),Ke=({metricId:e,metrics:o,debugIds:t})=>ze(de(e,o)??"",void 0,t,e),Ne=({indexId:e,sliceId:o,indexes:t,rowComponent:r=Ge,getRowComponentProps:d,separator:n,debugIds:c})=>{const l=R(t),I=l?.getStore(),a=l?.getTableId(e),i=Ie(e,o,l);return ze(s(i,(e=>Me(r,{...je(d,e),key:e,tableId:a,rowId:e,store:I,debugIds:c}))),n,c,o)},Oe=({indexId:e,indexes:o,sliceComponent:t=Ne,getSliceComponentProps:r,separator:d,debugIds:n})=>ze(s(le(e,o),(s=>Me(t,{...je(r,s),key:s,indexId:e,sliceId:s,indexes:o,debugIds:n}))),d,n,e),Qe=({relationshipId:e,localRowId:o,relationships:t,rowComponent:r=Ge,getRowComponentProps:s,debugIds:n})=>{const[c,l]=Ee(t),I=c?.getRemoteTableId(e),a=ue(e,o,c);return ze(d(I)||d(a)?null:Me(r,{...je(s,a),key:a,tableId:I,rowId:a,store:l,debugIds:n}),void 0,n,o)},Ue=e=>$e(e,be,e.remoteRowId),Ve=e=>$e(e,ge,e.firstRowId),We=({checkpoints:e,checkpointId:o,debugIds:t})=>ze(he(o,e)??"",void 0,t,o),Xe=Fe((e=>e[0])),Ye=Fe((e=>d(e[1])?[]:[e[1]])),Ze=Fe((e=>e[2]));export{Xe as BackwardCheckpointsView,De as CellView,We as CheckpointView,Ye as CurrentCheckpointView,Ze as ForwardCheckpointsView,Oe as IndexView,Ve as LinkedRowsView,Ue as LocalRowsView,Ke as MetricView,qe as Provider,Qe as RemoteRowView,Ge as RowView,Ne as SliceView,He as TableView,Je as TablesView,N as useAddRowCallback,G as useCell,D as useCellIds,te as useCellIdsListener,re as useCellListener,he as useCheckpoint,Re as useCheckpointIds,Se as useCheckpointIdsListener,Be as useCheckpointListener,C as useCheckpoints,me as useCreateCheckpoints,ce as useCreateIndexes,se as useCreateMetrics,fe as useCreatePersister,pe as useCreateRelationships,E as useCreateStore,X as useDelCellCallback,W as useDelRowCallback,V as useDelTableCallback,U as useDelTablesCallback,Te as useGoBackwardCallback,ve as useGoForwardCallback,xe as useGoToCallback,g as useIndexes,ge as useLinkedRowIds,ke as useLinkedRowIdsListener,be as useLocalRowIds,Ce as useLocalRowIdsListener,de as useMetric,ne as useMetricListener,b as useMetrics,Le as useRedoInformation,w as useRelationships,ue as useRemoteRowId,we as useRemoteRowIdListener,z as useRow,q as useRowIds,ee as useRowIdsListener,oe as useRowListener,Q as useSetCellCallback,ye as useSetCheckpointCallback,O as useSetPartialRowCallback,K as useSetRowCallback,J as useSetTableCallback,H as useSetTablesCallback,le as useSliceIds,ae as useSliceIdsListener,Ie as useSliceRowIds,ie as useSliceRowIdsListener,u as useStore,j as useTable,F as useTableIds,Z as useTableIdsListener,_ as useTableListener,$ as useTables,Y as useTablesListener,Pe as useUndoInformation};
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=(e,t)=>e.includes(t),n=(e,t)=>e.forEach(t),o=e=>e.length,s=e=>0==o(e),r=e=>e.slice(1),i=(e,t)=>e.push(t),c=e=>e.pop(),l=e=>null==e,d=(e,t,n)=>l(e)?n?.():t(e),a=(e,t)=>e?.has(t)??!1,u=e=>l(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)=>l(n)?(h(e,t),e):e?.set(t,n),k=(e,t,n)=>(a(e,t)||e.set(t,n()),C(e,t)),y=e=>new Set(e),v=(e,t,n)=>o(n)<2?((e,t)=>e?.add(t))(s(n)?e:k(e,n[0],y),t):v(k(e,n[0],f),t,r(n)),L=e=>{const t=(o,i,...c)=>d(o,(o=>s(c)?e(o,i):n([c[0],null],(e=>t(C(o,e),i,...r(c))))));return t},b=Object.freeze,w=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{let r,w,S,T=100,j=f(),x=1;const z=y(),E=f(),[M,m,B]=(e=>{let t,s=0;const r=[],a=f();return[(n,o,i=[])=>{t??=e();const l=c(r)??""+s++;return g(a,l,[n,o,i]),v(o,l,i),l},(e,n=[],...o)=>L(p)(e,(e=>d(C(a,e),(([e])=>e(t,...n,...o)))),...n),e=>d(C(a,e),(([,t,n])=>(L(h)(t,e,...n),g(a,e),o(r)<1e3&&i(r,e),n)),(()=>[])),(e,s,r)=>d(C(a,e),(([e,,i])=>{const c=(...d)=>{const a=o(d);a==o(i)?e(t,...d,...r(d)):l(i[a])?n(s[a](...d),(e=>c(...d,e))):c(...d,i[a])};c()}))]})((()=>U)),I=f(),O=f(),_=[],F=[],P=(t,n)=>{x=0,e.transaction((()=>p(C(I,n),((n,o)=>p(n,((n,s)=>p(n,((n,r)=>l(n[t])?e.delCell(o,s,r,!0):e.setCell(o,s,r,n[t]))))))))),x=1},W=e=>{g(I,e),g(O,e),m(E,[e])},q=(e,t)=>n(((e,t)=>e.splice(0,t))(e,t??o(e)),W),A=()=>q(_,o(_)-T),D=e.addCellListener(null,null,null,((e,t,n,o,s,l)=>{if(x){d(r,(()=>{i(_,r),A(),q(F),r=void 0,S=1}));const e=k(j,t,f),a=k(e,n,f),p=k(a,o,(()=>[l,void 0]));p[1]=s,p[0]===s&&u(g(a,o))&&u(g(e,n))&&u(g(j,t))&&(r=c(_),S=1),K()}})),G=(e="")=>(l(r)&&(r=""+w++,g(I,r,j),Q(r,e),j=f(),S=1),r),H=()=>{s(_)||(F.unshift(G()),P(0,r),r=c(_),S=1)},J=()=>{s(F)||(i(_,r),r=F.shift(),P(1,r),S=1)},K=()=>{S&&(m(z),S=0)},N=e=>{const t=G(e);return K(),t},Q=(e,t)=>(R(e)&&C(O,e)!==t&&(g(O,e,t),m(E,[e])),U),R=e=>a(I,e),U={setSize:e=>(T=e,A(),U),addCheckpoint:N,setCheckpoint:Q,getStore:()=>e,getCheckpointIds:()=>[[..._],r,[...F]],forEachCheckpoint:e=>{return t=e,p(O,((e,n)=>t(n,e)));var t},hasCheckpoint:R,getCheckpoint:e=>C(O,e),goBackward:()=>(H(),K(),U),goForward:()=>(J(),K(),U),goTo:e=>{const n=t(_,e)?H:t(F,e)?J:null;for(;!l(n)&&e!=r;)n();return K(),U},addCheckpointIdsListener:e=>M(e,z),addCheckpointListener:(e,t)=>M(t,E,[e]),delListener:e=>(B(e),U),clear:()=>(q(_),q(F),l(r)||W(r),r=void 0,w=0,N(),U),destroy:()=>{e.delListener(D)},getListenerStats:()=>({})};return b(U.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),r=e=>e.length,s=e=>0==r(e),i=(e,...t)=>e.push(...t),c=e=>e.pop(),l=e=>null==e,d=(e,t,n)=>l(e)?n?.():t(e),a=(e,t)=>e?.has(t)??!1,u=e=>l(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)=>l(n)?(h(e,t),e):e?.set(t,n),k=(e,t,n)=>(a(e,t)||e.set(t,n()),C(e,t)),v=(e,t,n,o,s=0)=>d((n?k:C)(e,t[s],s>r(t)-2?n:f),(i=>{if(s>r(t)-2)return o?.(i)&&g(e,t[s]),i;const c=v(i,t,n,o,s+1);return u(i)&&g(e,t[s]),c})),y=e=>new Set(e),L=(e,n=[t])=>{const s=[],c=(e,t)=>t==r(n)?i(s,e):o([n[t],null],(n=>c(C(e,n),t+1)));return c(e,0),s},b=Object.freeze,w=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{let w,S,T,j=100,x=f(),z=1;const E=f(),M=f(),[m,B,I]=(e=>{let n,s=0;const a=[],k=f();return[(o,r,i)=>{n??=e();const l=c(a)??t+s++;var d;return g(k,l,[o,r,i]),d=l,v(r,i??[t],y)?.add(d),l},(e,t,...r)=>o(L(e,t),(e=>p(e,(e=>d(C(k,e),(([e])=>e(n,...t??[],...r))))))),e=>d(C(k,e),(([,n,o])=>(v(n,o??[t],void 0,(t=>(h(t,e),u(t)?1:0))),g(k,e),r(a)<1e3&&i(a,e),o))),(e,t)=>{return n=L(e,t),o=l,!n.every(o);var n,o},(e,t,s)=>d(C(k,e),(([e,,i=[]])=>{const c=(...d)=>{const a=r(d);a==r(i)?e(n,...d,...s(d)):l(i[a])?o(t[a](...d),(e=>c(...d,e))):c(...d,i[a])};c()}))]})((()=>V)),O=f(),_=f(),F=[],P=[],W=(t,n)=>{z=0,e.transaction((()=>p(C(O,n),((n,o)=>p(n,((n,r)=>p(n,((n,s)=>((e,t,n,o,r)=>l(r)?e.delCell(t,n,o,!0):e.setCell(t,n,o,r))(e,o,r,s,n[t]))))))))),z=1},q=e=>{g(O,e),g(_,e),B(M,[e])},A=(e,t)=>o(((e,t)=>e.splice(0,t))(e,t??r(e)),q),D=()=>A(F,r(F)-j),G=e.addCellListener(null,null,null,((e,t,n,o,r,s)=>{if(z){d(w,(()=>{i(F,w),D(),A(P),w=void 0,T=1}));const e=k(x,t,f),l=k(e,n,f),a=k(l,o,(()=>[s,void 0]));a[1]=r,a[0]===r&&u(g(l,o))&&u(g(e,n))&&u(g(x,t))&&(w=c(F),T=1),N()}})),H=(e="")=>(l(w)&&(w=t+S++,g(O,w,x),R(w,e),x=f(),T=1),w),J=()=>{s(F)||(P.unshift(H()),W(0,w),w=c(F),T=1)},K=()=>{s(P)||(i(F,w),w=P.shift(),W(1,w),T=1)},N=()=>{T&&(B(E),T=0)},Q=e=>{const t=H(e);return N(),t},R=(e,t)=>(U(e)&&C(_,e)!==t&&(g(_,e,t),B(M,[e])),V),U=e=>a(O,e),V={setSize:e=>(j=e,D(),V),addCheckpoint:Q,setCheckpoint:R,getStore:()=>e,getCheckpointIds:()=>[[...F],w,[...P]],forEachCheckpoint:e=>{return t=e,p(_,((e,n)=>t(n,e)));var t},hasCheckpoint:U,getCheckpoint:e=>C(_,e),goBackward:()=>(J(),N(),V),goForward:()=>(K(),N(),V),goTo:e=>{const t=n(F,e)?J:n(P,e)?K:null;for(;!l(t)&&e!=w;)t();return N(),V},addCheckpointIdsListener:e=>m(e,E),addCheckpointListener:(e,t)=>m(t,M,[e]),delListener:e=>(I(e),V),clear:()=>(A(F),A(P),l(w)||q(w),w=void 0,S=0,Q(),V),destroy:()=>{e.delListener(G)},getListenerStats:()=>({})};return b(V.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={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n=t(""),s=(e,t)=>e.every(((n,s)=>0==s||t(e[s-1],n)<=0)),o=(e,t)=>e.sort(t),d=(e,t)=>e.forEach(t),r=e=>e.length,i=e=>0==r(e),c=e=>e.slice(1),l=e=>null==e,a=(e,t,n)=>l(e)?n?.():t(e),f=(e,t)=>e?.has(t)??!1,u=e=>l(e)||0==(e=>e.size)(e),h=e=>e.clear(),p=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),g=e=>new Map(e),x=e=>[...e?.keys()??[]],y=(e,t)=>e?.get(t),S=(e,t)=>p(e,((e,n)=>t(n,e))),b=(e,t,n)=>l(n)?(I(e,t),e):e?.set(t,n),w=(e,t,n)=>(f(e,t)||e.set(t,n()),y(e,t)),v=e=>new Set(e),L=(e,t)=>e?.add(t),T=(e,s)=>t(e)==n?t=>t(e):e??(()=>s??""),E=(e,t)=>e<t?-1:1,R=(e,t,n)=>r(n)<2?L(i(n)?e:w(e,n[0],v),t):R(w(e,n[0],g),t,c(n)),j=e=>{const t=(n,s,...o)=>a(n,(n=>i(o)?e(n,s):d([o[0],null],(e=>t(y(n,e),s,...c(o))))));return t},M=Object.freeze,k=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=g(),n=g(),[i,c,w,k,m,z,C,D,O,_]=((e,t,n)=>{const s=e.hasRow,o=g(),r=g(),i=g(),c=g(),u=g(),I=t=>a(y(u,t),(n=>{p(n,e.delListener),b(u,t)})),w=e=>{b(o,e),b(r,e),b(i,e),b(c,e),I(e)};return[()=>e,()=>x(o),e=>S(r,e),e=>f(r,e),e=>y(o,e),e=>y(r,e),(e,t)=>b(r,e,t),(a,x,w,L,T)=>{const E=g(),R=g();b(o,a,x),f(r,a)||(b(r,a,t()),b(i,a,g()),b(c,a,g()));const j=y(i,a),M=y(c,a),k=t=>{const o=n=>e.getCell(x,t,n),d=y(j,t),r=s(x,t)?n(L(o,t)):void 0;if(d!=r&&b(E,t,[d,r]),!l(T)){const e=y(M,t),n=s(x,t)?T(o,t):void 0;e!=n&&b(R,t,n)}},m=e=>{w((()=>{p(E,(([,e],t)=>b(j,t,e))),p(R,((e,t)=>b(M,t,e)))}),E,R,j,M,e),h(E),h(R)};S(j,k),e.hasTable(x)&&d(e.getRowIds(x),(e=>{f(j,e)||k(e)})),m(!0),I(a),b(u,a,v([e.addRowListener(x,null,((e,t,n)=>k(n))),e.addTableListener(x,(()=>m()))]))},w,()=>S(u,w)]})(e,g,(e=>l(e)?"":e+"")),[B,P,W]=(e=>{let t,n=0;const s=[],o=g();return[(d,r,i=[])=>{t??=e();const c=s.pop()??""+n++;return b(o,c,[d,r,i]),R(r,c,i),c},(e,n=[],...s)=>j(p)(e,(e=>a(y(o,e),(([e])=>e(t,...n,...s)))),...n),e=>a(y(o,e),(([,t,n])=>(j(I)(t,e,...n),b(o,e),r(s)<1e3&&s.push(e),n)),(()=>[])),(e,n,s)=>a(y(o,e),(([e,,o])=>{const i=(...c)=>{const a=r(c);a==r(o)?e(t,...c,...s(c)):l(o[a])?d(n[a](...c),(e=>i(...c,e))):i(...c,o[a])};i()}))]})((()=>A)),q=(t,n,s)=>{const o=m(t);p(s,((t,s)=>n(s,(n=>p(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},A={setIndexDefinition:(e,d,r,i,c,h=E)=>{const x=l(c)?void 0:([e],[t])=>c(e,t);return D(e,d,((d,r,c,w,T,E)=>{let R=0;const j=v(),M=v(),k=z(e);if(p(r,(([e,t],n)=>{l(e)||(L(j,e),a(y(k,e),(t=>{I(t,n),u(t)&&(b(k,e),R=1)}))),l(t)||(L(j,t),f(k,t)||(b(k,t,v()),R=1),L(y(k,t),n),l(i)||L(M,t))})),d(),u(T)||(E?S(k,(e=>L(M,e))):S(c,(e=>a(y(w,e),(e=>L(M,e))))),p(M,(e=>{const t=(t,n)=>h(y(T,t),y(T,n),e),n=[...y(k,e)];s(n,t)||(b(k,e,v(o(n,t))),L(j,e))}))),(R||E)&&!l(x)){const t=[...k];s(t,x)||(C(e,g(o(t,x))),R=1)}R&&P(t,[e]),p(j,(t=>P(n,[e,t])))}),T(r),a(i,T)),A},delIndexDefinition:e=>(O(e),A),getStore:i,getIndexIds:c,forEachIndex:e=>w(((t,n)=>e(t,(e=>q(t,e,n))))),forEachSlice:(e,t)=>q(e,t,z(e)),hasIndex:k,hasSlice:(e,t)=>f(z(e),t),getTableId:m,getSliceIds:e=>x(z(e)),getSliceRowIds:(e,t)=>[...y(z(e),t)?.values()??[]],addSliceIdsListener:(e,n)=>B(n,t,[e]),addSliceRowIdsListener:(e,t,s)=>B(s,n,[e,t]),delListener:e=>(W(e),A),destroy:_,getListenerStats:()=>({})};return M(A)}));e.createIndexes=k,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.every(t),r=(e,t)=>o(e,((n,s)=>0==s||t(e[s-1],n)<=0)),d=(e,t)=>e.sort(t),i=(e,t)=>e.forEach(t),c=e=>e.length,l=(e,...t)=>e.push(...t),a=e=>null==e,f=(e,t,n)=>a(e)?n?.():t(e),u=(e,t)=>e?.has(t)??!1,h=e=>a(e)||0==(e=>e.size)(e),p=e=>[...e?.values()??[]],I=e=>e.clear(),g=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),y=e=>new Map(e),S=e=>[...e?.keys()??[]],b=(e,t)=>e?.get(t),v=(e,t)=>g(e,((e,n)=>t(n,e))),w=(e,t,n)=>a(n)?(x(e,t),e):e?.set(t,n),L=(e,t,n)=>(u(e,t)||e.set(t,n()),b(e,t)),T=(e,t,n,s,o=0)=>f((n?L:b)(e,t[o],o>c(t)-2?n:y),(r=>{if(o>c(t)-2)return s?.(r)&&w(e,t[o]),r;const d=T(r,t,n,s,o+1);return h(r)&&w(e,t[o]),d})),E=e=>new Set(e),R=(e,t)=>e?.add(t),j=(e,t,n)=>{const s=e.hasRow,o=y(),r=y(),d=y(),l=y(),T=y(),j=(t,n,...s)=>{const o=L(T,t,E);return i(s,(t=>R(o,t)&&n&&e.callListener(t))),s},M=(t,...n)=>f(b(T,t),(s=>{i(0==c(n)?p(s):n,(t=>{e.delListener(t),x(s,t)})),h(s)&&w(T,t)})),k=(e,n)=>{w(o,e,n),u(r,e)||(w(r,e,t()),w(d,e,y()),w(l,e,y()))},m=e=>{w(o,e),w(r,e),w(d,e),w(l,e),M(e)};return[()=>e,()=>S(o),e=>v(r,e),e=>u(r,e),e=>b(o,e),e=>b(r,e),(e,t)=>w(r,e,t),k,(t,o,r,c,f)=>{k(t,o);const h=y(),p=y(),x=b(d,t),S=b(l,t),L=t=>{const r=n=>e.getCell(o,t,n),d=b(x,t),i=s(o,t)?n(c(r,t)):void 0;if(d!=i&&w(h,t,[d,i]),!a(f)){const e=b(S,t),n=s(o,t)?f(r,t):void 0;e!=n&&w(p,t,n)}},T=e=>{r((()=>{g(h,(([,e],t)=>w(x,t,e))),g(p,((e,t)=>w(S,t,e)))}),h,p,x,S,e),I(h),I(p)};v(x,L),e.hasTable(o)&&i(e.getRowIds(o),(e=>{u(x,e)||L(e)})),T(!0),M(t),j(t,0,e.addRowListener(o,null,((e,t,n)=>L(n))),e.addTableListener(o,(()=>T())))},m,()=>v(T,m),j,M]},M=(e,o)=>t(e)==s?t=>t(e):e??(()=>o??n),k=(e,t)=>e<t?-1:1,m=(e,t=[n])=>{const s=[],o=(e,n)=>n==c(t)?l(s,e):i([t[n],null],(t=>o(b(e,t),n+1)));return o(e,0),s},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=y(),s=y(),[I,L,C,D,O,_,B,,P,W,q]=j(e,y,(e=>a(e)?n:e+n)),[A,F,G]=(e=>{let t,s=0;const r=[],d=y();return[(o,i,c)=>{t??=e();const l=r.pop()??n+s++;return w(d,l,[o,i,c]),R(T(i,c??[n],E),l),l},(e,n,...s)=>i(m(e,n),(e=>g(e,(e=>f(b(d,e),(([e])=>e(t,...n??[],...s))))))),e=>f(b(d,e),(([,t,s])=>(T(t,s??[n],void 0,(t=>(x(t,e),h(t)?1:0))),w(d,e),c(r)<1e3&&l(r,e),s))),(e,t)=>!o(m(e,t),a),(e,n,s)=>f(b(d,e),(([e,,o=[]])=>{const r=(...d)=>{const l=c(d);l==c(o)?e(t,...d,...s(d)):a(o[l])?i(n[l](...d),(e=>r(...d,e))):r(...d,o[l])};r()}))]})((()=>J)),H=(t,n,s)=>{const o=O(t);g(s,((t,s)=>n(s,(n=>g(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},J={setIndexDefinition:(e,n,o,i,c,l=k)=>{const p=a(c)?void 0:([e],[t])=>c(e,t);return P(e,n,((n,o,c,I,S,L)=>{let T=0;const j=E(),M=E(),k=_(e);if(g(o,(([e,t],n)=>{a(e)||(R(j,e),f(b(k,e),(t=>{x(t,n),h(t)&&(w(k,e),T=1)}))),a(t)||(R(j,t),u(k,t)||(w(k,t,E()),T=1),R(b(k,t),n),a(i)||R(M,t))})),n(),h(S)||(L?v(k,(e=>R(M,e))):v(c,(e=>f(b(I,e),(e=>R(M,e))))),g(M,(e=>{const t=(t,n)=>l(b(S,t),b(S,n),e),n=[...b(k,e)];r(n,t)||(w(k,e,E(d(n,t))),R(j,e))}))),(T||L)&&!a(p)){const t=[...k];r(t,p)||(B(e,y(d(t,p))),T=1)}T&&F(t,[e]),g(j,(t=>F(s,[e,t])))}),M(o),f(i,M)),J},delIndexDefinition:e=>(W(e),J),getStore:I,getIndexIds:L,forEachIndex:e=>C(((t,n)=>e(t,(e=>H(t,e,n))))),forEachSlice:(e,t)=>H(e,t,_(e)),hasIndex:D,hasSlice:(e,t)=>u(_(e),t),getTableId:O,getSliceIds:e=>S(_(e)),getSliceRowIds:(e,t)=>p(b(_(e),t)),addSliceIdsListener:(e,n)=>A(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>A(n,s,[e,t]),delListener:e=>(G(e),J),destroy:q,getListenerStats:()=>({})};return z(J)}));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,s=t(""),n=t(t),i=(e,t)=>e.forEach(t),o=e=>d(e,((e,t)=>e+t),0),r=e=>e.length,c=e=>0==r(e),d=(e,t,s)=>e.reduce(t,s),a=e=>e.slice(1),l=Math.max,u=Math.min,f=isFinite,h=e=>null==e,p=(e,t,s)=>h(e)?s?.():t(e),v=()=>{},M=e=>e.size,g=(e,t)=>e?.has(t)??!1,y=e=>e.clear(),b=(e,t)=>e?.forEach(t),m=(e,t)=>e?.delete(t),w=e=>new Map(e),L=(e,t)=>e?.get(t),T=(e,t)=>b(e,((e,s)=>t(s,e))),x=(e,t,s)=>h(s)?(m(e,t),e):e?.set(t,s),j=(e,t,s)=>(g(e,t)||e.set(t,s()),L(e,t)),E=e=>new Set(e),I=(e,n)=>t(e)==s?t=>t(e):e??(()=>n??""),R=(e,t,s)=>r(s)<2?((e,t)=>e?.add(t))(c(s)?e:j(e,s[0],E),t):R(j(e,s[0],w),t,a(s)),S=e=>{const t=(s,n,...o)=>p(s,(s=>c(o)?e(s,n):i([o[0],null],(e=>t(L(s,e),n,...a(o))))));return t},k=Object.freeze,z=w([["avg",[(e,t)=>o(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=>l(...e),(e,t)=>l(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:l(t,e)]],["min",[e=>u(...e),(e,t)=>u(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:u(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),D=(e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))})((e=>{const s=w(),[o,c,d,a,l,u,j,D,N,O]=((e,t,s)=>{const n=e.hasRow,o=w(),r=w(),c=w(),d=w(),a=w(),l=t=>p(L(a,t),(s=>{b(s,e.delListener),x(a,t)})),u=e=>{x(o,e),x(r,e),x(c,e),x(d,e),l(e)};return[()=>e,()=>[...o?.keys()??[]],e=>T(r,e),e=>g(r,e),e=>L(o,e),e=>L(r,e),(e,t)=>x(r,e,t),(u,f,p,v,M)=>{const m=w(),j=w();x(o,u,f),g(r,u)||(x(r,u,t()),x(c,u,w()),x(d,u,w()));const I=L(c,u),R=L(d,u),S=t=>{const i=s=>e.getCell(f,t,s),o=L(I,t),r=n(f,t)?s(v(i,t)):void 0;if(o!=r&&x(m,t,[o,r]),!h(M)){const e=L(R,t),s=n(f,t)?M(i,t):void 0;e!=s&&x(j,t,s)}},k=e=>{p((()=>{b(m,(([,e],t)=>x(I,t,e))),b(j,((e,t)=>x(R,t,e)))}),m,j,I,R,e),y(m),y(j)};T(I,S),e.hasTable(f)&&i(e.getRowIds(f),(e=>{g(I,e)||S(e)})),k(!0),l(u),x(a,u,E([e.addRowListener(f,null,((e,t,s)=>S(s))),e.addTableListener(f,(()=>k()))]))},u,()=>T(a,u)]})(e,v,(e=>isNaN(e)||h(e)||!0===e||!1===e||""===e?void 0:1*e)),[_,B,C]=(e=>{let t,s=0;const n=[],o=w();return[(i,r,c=[])=>{t??=e();const d=n.pop()??""+s++;return x(o,d,[i,r,c]),R(r,d,c),d},(e,s=[],...n)=>S(b)(e,(e=>p(L(o,e),(([e])=>e(t,...s,...n)))),...s),e=>p(L(o,e),(([,t,s])=>(S(m)(t,e,...s),x(o,e),r(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>p(L(o,e),(([e,,o])=>{const c=(...d)=>{const a=r(d);a==r(o)?e(t,...d,...n(d)):h(o[a])?i(s[a](...d),(e=>c(...d,e))):c(...d,o[a])};c()}))]})((()=>F)),F={setMetricDefinition:(e,i,o,r,c,d,a)=>{const l=t(o)==n?[o,c,d,a]:L(z,o)??L(z,"sum");return D(e,i,((t,n,i,o,r,c)=>{let d=u(e),a=M(o);const[p,v,g,y]=l;var m;c=c||h(d),b(n,(([e,t])=>{c||(d=h(e)?v?.(d,t,a++):h(t)?g?.(d,e,a--):y?.(d,t,e,a)),c=c||h(d)})),t(),h(m=o)||0==M(m)?d=void 0:c&&(d=p((e=>[...e?.values()??[]])(o),M(o))),f(d)||(d=void 0);const w=u(e);d!=w&&(j(e,d),B(s,[e],d,w))}),I(r,1)),F},delMetricDefinition:e=>(N(e),F),getStore:o,getMetricIds:c,forEachMetric:d,hasMetric:a,getTableId:l,getMetric:u,addMetricListener:(e,t)=>_(t,s,[e]),delListener:e=>(C(e),F),destroy:O,getListenerStats:()=>({})};return k(F)}));e.createMetrics=D,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="",r=t(n),s=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,v=(e,t,n)=>h(e)?n?.():t(e),p=()=>{},M=e=>e.size,g=(e,t)=>e?.has(t)??!1,y=e=>h(e)||0==M(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)=>(g(e,t)||e.set(t,n()),x(e,t)),R=(e,t,n,r,s=0)=>v((n?I:x)(e,t[s],s>c(t)-2?n:T),(i=>{if(s>c(t)-2)return r?.(i)&&E(e,t[s]),i;const o=R(i,t,n,r,s+1);return y(i)&&E(e,t[s]),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,r)=>e+(t-n)/r]],["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 r=e.hasRow,s=T(),o=T(),d=T(),a=T(),l=T(),u=(t,n,...r)=>{const s=I(l,t,k);return i(r,(t=>z(s,t)&&n&&e.callListener(t))),r},f=(t,...n)=>v(x(l,t),(r=>{i(0==c(n)?b(r):n,(t=>{e.delListener(t),w(r,t)})),y(r)&&E(l,t)})),p=(e,n)=>{E(s,e,n),g(o,e)||(E(o,e,t()),E(d,e,T()),E(a,e,T()))},M=e=>{E(s,e),E(o,e),E(d,e),E(a,e),f(e)};return[()=>e,()=>[...s?.keys()??[]],e=>j(o,e),e=>g(o,e),e=>x(s,e),e=>x(o,e),(e,t)=>E(o,e,t),p,(t,s,o,c,l)=>{p(t,s);const v=T(),M=T(),y=x(d,t),b=x(a,t),w=t=>{const i=n=>e.getCell(s,t,n),o=x(y,t),d=r(s,t)?n(c(i,t)):void 0;if(o!=d&&E(v,t,[o,d]),!h(l)){const e=x(b,t),n=r(s,t)?l(i,t):void 0;e!=n&&E(M,t,n)}},I=e=>{o((()=>{L(v,(([,e],t)=>E(y,t,e))),L(M,((e,t)=>E(b,t,e)))}),v,M,y,b,e),m(v),m(M)};j(y,w),e.hasTable(s)&&i(e.getRowIds(s),(e=>{g(y,e)||w(e)})),I(!0),f(t),u(t,0,e.addRowListener(s,null,((e,t,n)=>w(n))),e.addTableListener(s,(()=>I())))},M,()=>j(l,M),u,f]},N=(e,s)=>t(e)==r?t=>t(e):e??(()=>s??n),O=(e,t=[n])=>{const r=[],s=(e,n)=>n==c(t)?a(r,e):i([t[n],null],(t=>s(x(e,t),n+1)));return s(e,0),r},_=Object.freeze,B=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const r=T(),[o,d,l,u,g,m,j,,I,B,C]=D(e,p,(e=>isNaN(e)||h(e)||!0===e||!1===e||e===n?void 0:1*e)),[F,P,W]=(e=>{let t,r=0;const s=[],o=T();return[(i,c,d)=>{t??=e();const a=s.pop()??n+r++;return E(o,a,[i,c,d]),z(R(c,d??[n],k),a),a},(e,n,...r)=>i(O(e,n),(e=>L(e,(e=>v(x(o,e),(([e])=>e(t,...n??[],...r))))))),e=>v(x(o,e),(([,t,r])=>(R(t,r??[n],void 0,(t=>(w(t,e),y(t)?1:0))),E(o,e),c(s)<1e3&&a(s,e),r))),(e,t)=>{return n=O(e,t),r=h,!n.every(r);var n,r},(e,n,r)=>v(x(o,e),(([e,,s=[]])=>{const o=(...d)=>{const a=c(d);a==c(s)?e(t,...d,...r(d)):h(s[a])?i(n[a](...d),(e=>o(...d,e))):o(...d,s[a])};o()}))]})((()=>q)),q={setMetricDefinition:(e,n,i,o,c,d,a)=>{const l=t(i)==s?[i,c,d,a]:x(S,i)??x(S,"sum");return I(e,n,((t,n,s,i,o,c)=>{const d=m(e),a=M(i);c||=h(d),t();let u=((e,t,n,r,s,i=!1)=>{if(y(n))return;const[o,c,d,a]=s;return i||=h(e),L(r,(([n,r])=>{i||(e=h(n)?c?.(e,r,t++):h(r)?d?.(e,n,t--):a?.(e,r,n,t),i||=h(e))})),i?o(b(n),M(n)):e})(d,a,i,n,l,c);f(u)||(u=void 0),u!=d&&(j(e,u),P(r,[e],u,d))}),N(o,1)),q},delMetricDefinition:e=>(B(e),q),getStore:o,getMetricIds:d,forEachMetric:l,hasMetric:u,getTableId:g,getMetric:m,addMetricListener:(e,t)=>F(t,r,[e]),delListener:e=>(W(e),q),destroy:C,getListenerStats:()=>({})};return _(q)}));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={});
Binary file
@@ -0,0 +1 @@
1
+ var e,t;e=this,t=function(e){"use strict";const t=(e,t)=>e.every(t),s=(e,t)=>e.forEach(t),n=e=>r(e,((e,t)=>e+t),0),l=e=>e.length,o=e=>0==l(e),r=(e,t,s)=>e.reduce(t,s),a=(e,...t)=>e.push(...t),d=e=>typeof e,i=d(""),c=d(!0),u=d(0),R=d(d),f=Math.max,h=Math.min,w=isFinite,g=e=>null==e,L=(e,t,s)=>g(e)?s?.():t(e),b=e=>d(e)==R,T=()=>{},v=e=>e.size,C=(e,t)=>e?.has(t)??!1,y=e=>g(e)||0==v(e),p=e=>[...e?.values()??[]],I=e=>e.clear(),m=(e,t)=>e?.forEach(t),E=(e,t)=>e?.delete(t),Q=e=>new Map(e),S=e=>[...e?.keys()??[]],x=(e,t)=>e?.get(t),M=(e,t)=>m(e,((e,s)=>t(s,e))),j=(e,t,s)=>g(s)?(E(e,t),e):e?.set(t,s),k=(e,t,s)=>(C(e,t)||e.set(t,s()),x(e,t)),D=(e,t,s,n,o=0)=>L((s?k:x)(e,t[o],o>l(t)-2?s:Q),(r=>{if(o>l(t)-2)return n?.(r)&&j(e,t[o]),r;const a=D(r,t,s,n,o+1);return y(r)&&j(e,t[o]),a})),F=e=>new Set(e),z=(e,t)=>e?.add(t),O=Q([["avg",[(e,t)=>n(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=>h(...e),(e,t)=>h(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:h(t,e)]],["sum",[e=>n(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),W=e=>{const t=d(e);return(e=>e==i||e==c)(t)||t==u&&w(e)?t:void 0},_=Object,B=_.keys,P=_.freeze,q=(e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))})((e=>{const[n,r,d,i,c,,,u,,R,f,h,w]=((e,t,n)=>{const l=e.hasRow,r=Q(),a=Q(),d=Q(),i=Q(),c=Q(),u=(t,n,...l)=>{const o=k(c,t,F);return s(l,(t=>z(o,t)&&n&&e.callListener(t))),l},R=(t,...n)=>L(x(c,t),(l=>{s(o(n)?p(l):n,(t=>{e.delListener(t),E(l,t)})),y(l)&&j(c,t)})),f=(e,s)=>{j(r,e,s),C(a,e)||(j(a,e,t()),j(d,e,Q()),j(i,e,Q()))},h=e=>{j(r,e),j(a,e),j(d,e),j(i,e),R(e)};return[()=>e,()=>S(r),e=>M(a,e),e=>C(a,e),e=>x(r,e),e=>x(a,e),(e,t)=>j(a,e,t),f,(t,o,r,a,c)=>{f(t,o);const h=Q(),w=Q(),L=x(d,t),b=x(i,t),T=t=>{const s=s=>e.getCell(o,t,s),r=x(L,t),d=l(o,t)?n(a(s,t)):void 0;if(r!=d&&j(h,t,[r,d]),!g(c)){const e=x(b,t),n=l(o,t)?c(s,t):void 0;e!=n&&j(w,t,n)}},v=e=>{r((()=>{m(h,(([,e],t)=>j(L,t,e))),m(w,((e,t)=>j(b,t,e)))}),h,w,L,b,e),I(h),I(w)};M(L,T),e.hasTable(o)&&s(e.getRowIds(o),(e=>{C(L,e)||T(e)})),v(!0),R(t),u(t,0,e.addRowListener(o,null,((e,t,s)=>T(s))),e.addTableListener(o,(()=>v())))},h,()=>M(c,h),u,R]})(e,(()=>!0),T),_=e.createStore(),q=e.createStore(),A=e.createStore(),G=Q(),H=(e,t,...n)=>s(n,(s=>z(k(k(G,t,Q),e,F),s))),J=(e,t,s)=>h(e,0,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),K={setQueryDefinition:(n,r,d)=>{let i;u(n,r),_.delTable(n),q.delTable(n),A.delTable(n);const c=[],R=[[null,[r,null,null,[],Q()]]],f=[],T=[],P=[],G=[];d({select:(e,t)=>{const s=b(e)?[l(c)+"",e]:[g(t)?e:t,s=>s(e,t)];return a(c,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=g(s)||b(t)?null:t,l=g(n)?t:s,o=[e,[e,n,b(l)?l:e=>e(l),[],Q()]];return a(R,o),{as:e=>o[0]=e}},where:(e,t,s)=>a(f,b(e)?e:g(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,l)=>{const o=[e,[e,b(t)?[t,s,n,l]:x(O,t)??[(e,t)=>t]]];return a(T,o),{as:e=>o[0]=e}},having:(e,t)=>a(P,b(e)?e:s=>s(e)===t),order:(e,t)=>a(G,[b(e)?e:t=>t(e)??0,t]),limit:(e,t)=>{i=g(t)?[0,e]:[e,t]}});const N=Q(c);if(y(N))return K;const U=Q(R);M(U,((e,[,t])=>L(x(U,t),(({3:t})=>g(e)?0:a(t,e)))));const V=Q(T);let X=_,Y=q;if(o(G)&&g(i))Y=A;else{J(n,Y,A);const e=(e,t)=>{const s=x(r,e)??[],n=x(r,t)??[],l=G.findIndex(((e,t)=>s[t]!==n[t]));return l<0?0:(o=s[l],a=n[l],(o<a?-1:1)*(G[l][1]?-1:1));var o,a},r=Q(),a=Q();H(Y,n,o(G)?Y.addRowIdsListener(n,(()=>I(a))):Y.addRowListener(n,null,((e,s,o)=>{let d=null;if(Y.hasRow(n,o)){const e=x(r,o)??[],s=Y.getRow(n,o),R=e=>s[e];if(u=([e])=>e(R,o),d=G.map(u),c=d,l(i=e)===l(c)&&t(i,((e,t)=>c[t]===e)))return void(x(a,o)&&A.setRow(n,o,s))}var i,c,u;j(r,o,d),I(a)})),Y.addTableListener(n,(()=>{if(y(a)&&(A.delTable(n),Y.hasTable(n))){const o=Y.getTable(n);s((t=B(o),l=e,t.sort(l)),(e=>j(a,e,0))),s(L(i,(([e,t])=>((e,t,s)=>e.slice(t,s))(S(a),e,e+t)),(()=>S(a))),(e=>{A.setRow(n,e,o[e]),j(a,e,1)}))}var t,l})))}if(y(V)&&o(P))X=Y;else{J(n,X,Y);const e=Q();M(V,((t,[s,n])=>z(k(e,s,F),[t,n])));const s=F();M(N,(t=>C(e,t)?0:z(s,t)));const l=Q(),o=(s,l,o,r)=>L(s,(([s,a,d,i])=>{M(l,((t,[n])=>{const l=k(s,t,Q),a=x(l,o),d=r?void 0:n;if(a!==d){const s=F([[a,d]]),n=v(l);j(l,o,d),m(x(e,t),(([e,t])=>{const o=((e,t,s,n,l,o=!1)=>{if(y(s))return;const[r,a,d,i]=l;return o||=g(e),m(n,(([s,n])=>{o||(e=g(s)?a?.(e,n,t++):g(n)?d?.(e,s,t--):i?.(e,n,s,t),o||=g(e))})),o?r(p(s),v(s)):e})(i[e],n,l,s,t);i[e]=g(W(o))?null:o}))}})),(y(a)||!t(P,(e=>e((e=>i[e]))))?Y.delRow:Y.setRow)(n,d,i)}));H(X,n,X.addRowListener(n,null,((t,r,d,i)=>{const c=[],u=[],R=Q(),f=X.hasRow(n,d);let h=!f;m(s,(e=>{const[t,s,l]=i(n,d,e);a(c,s),a(u,l),h||=t})),M(e,(e=>{const[t,,s]=i(n,d,e);(h||t)&&j(R,e,[s])})),h&&o(D(l,c,void 0,(([,e,t])=>{if(E(e,d),y(e))return Y.delRow(n,t),1})),R,d,1),f&&o(D(l,u,(()=>{const e={};return m(s,(t=>e[t]=X.getCell(n,d,t))),[Q(),F(),Y.addRow(n,e,1),e]}),(([,e])=>{z(e,d)})),R,d)})))}J(n,e,X);const Z=s=>{const l=(t,n)=>e.getCell(...g(n)?[r,s,t]:t===r?[r,s,n]:[x(U,t)?.[0],x(x(U,t)?.[4],s)?.[0],n]);X.transaction((()=>t(f,(e=>e(l)))?M(N,((e,t)=>((e,t,s,n,l)=>g(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l))(X,n,s,e,t(l,s)))):X.delRow(n,s)))},$=(t,l,o,r)=>{const a=t=>e.getCell(l,o,t);s(r,(s=>{const[l,,o,r,d]=x(U,s),i=o?.(a,t),[c,u]=x(d,t)??[];i!=c&&(g(u)||w(n,u),j(d,t,g(i)?null:[i,...h(n,1,e.addRowListener(l,i,(()=>$(t,l,i,r))))]))})),Z(t)},{3:ee}=x(U,null);return X.transaction((()=>h(n,1,e.addRowListener(r,null,((t,s,l)=>{e.hasRow(r,l)?$(l,r,l,ee):(X.delRow(n,l),m(U,(({4:e})=>L(x(e,l),(([,t])=>{w(n,t),j(e,l)})))))}))))),K},delQueryDefinition:e=>(M(x(G,e),((e,t)=>m(t,(t=>e.delListener(t))))),R(e),K),getStore:n,getQueryIds:r,forEachQuery:d,hasQuery:i,getTableId:c,getResultTable:e=>A.getTable(e),getResultRowIds:e=>A.getRowIds(e),getResultRow:(e,t)=>A.getRow(e,t),getResultCellIds:(e,t)=>A.getCellIds(e,t),getResultCell:(e,t,s)=>A.getCell(e,t,s),hasResultTable:e=>A.hasTable(e),hasResultRow:(e,t)=>A.hasRow(e,t),hasResultCell:(e,t,s)=>A.hasCell(e,t,s),forEachResultTable:e=>A.forEachTable(e),forEachResultRow:(e,t)=>A.forEachRow(e,t),forEachResultCell:(e,t,s)=>A.forEachCell(e,t,s),addResultTableListener:(e,t)=>A.addTableListener(e,((e,...s)=>t(K,...s))),addResultRowIdsListener:(e,t,s)=>A.addRowIdsListener(e,((e,...s)=>t(K,...s)),s),addResultRowListener:(e,t,s)=>A.addRowListener(e,t,((e,...t)=>s(K,...t))),addResultCellIdsListener:(e,t,s,n)=>A.addCellIdsListener(e,t,((e,...t)=>s(K,...t)),n),addResultCellListener:(e,t,s,n)=>A.addCellListener(e,t,s,((e,...t)=>n(K,...t))),delListener:e=>(A.delListener(e),K),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=A.getListenerStats();return n}};return P(K)}));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,o=t(""),s=(e,t)=>e.forEach(t),n=e=>e.length,i=e=>0==n(e),a=e=>e.slice(1),d=e=>null==e,r=(e,t,o)=>d(e)?o?.():t(e),l=(e,t)=>e?.has(t)??!1,c=e=>[...e?.values()??[]],f=e=>e.clear(),h=(e,t)=>e?.forEach(t),p=(e,t)=>e?.delete(t),u=e=>new Map(e),R=(e,t)=>e?.get(t),g=(e,t)=>h(e,((e,o)=>t(o,e))),w=(e,t,o)=>d(o)?(p(e,t),e):e?.set(t,o),L=(e,t,o)=>(l(e,t)||e.set(t,o()),R(e,t)),I=e=>new Set(e),b=(e,t)=>e?.add(t),y=(e,s)=>t(e)==o?t=>t(e):e??(()=>s??""),v=(e,t,o)=>n(o)<2?b(i(o)?e:L(e,o[0],I),t):v(L(e,o[0],u),t,a(o)),T=e=>{const t=(o,n,...d)=>r(o,(o=>i(d)?e(o,n):s([d[0],null],(e=>t(R(o,e),n,...a(d))))));return t},m=Object.freeze,k=(e=>{const t=new WeakMap;return o=>(t.has(o)||t.set(o,e(o)),t.get(o))})((e=>{const t=u(),o=u(),i=u(),a=u(),[L,k,E,j,x,M,S,z,D,O]=((e,t,o)=>{const n=e.hasRow,i=u(),a=u(),c=u(),p=u(),L=u(),b=t=>r(R(L,t),(o=>{h(o,e.delListener),w(L,t)})),y=e=>{w(i,e),w(a,e),w(c,e),w(p,e),b(e)};return[()=>e,()=>[...i?.keys()??[]],e=>g(a,e),e=>l(a,e),e=>R(i,e),e=>R(a,e),(e,t)=>w(a,e,t),(r,y,v,T,m)=>{const k=u(),E=u();w(i,r,y),l(a,r)||(w(a,r,t()),w(c,r,u()),w(p,r,u()));const j=R(c,r),x=R(p,r),M=t=>{const s=o=>e.getCell(y,t,o),i=R(j,t),a=n(y,t)?o(T(s,t)):void 0;if(i!=a&&w(k,t,[i,a]),!d(m)){const e=R(x,t),o=n(y,t)?m(s,t):void 0;e!=o&&w(E,t,o)}},S=e=>{v((()=>{h(k,(([,e],t)=>w(j,t,e))),h(E,((e,t)=>w(x,t,e)))}),k,E,j,x,e),f(k),f(E)};g(j,M),e.hasTable(y)&&s(e.getRowIds(y),(e=>{l(j,e)||M(e)})),S(!0),b(r),w(L,r,I([e.addRowListener(y,null,((e,t,o)=>M(o))),e.addTableListener(y,(()=>S()))]))},y,()=>g(L,y)]})(e,(()=>[u(),u(),u(),u()]),(e=>d(e)?void 0:e+"")),[_,B,C]=(e=>{let t,o=0;const i=[],a=u();return[(s,n,d=[])=>{t??=e();const r=i.pop()??""+o++;return w(a,r,[s,n,d]),v(n,r,d),r},(e,o=[],...s)=>T(h)(e,(e=>r(R(a,e),(([e])=>e(t,...o,...s)))),...o),e=>r(R(a,e),(([,t,o])=>(T(p)(t,e,...o),w(a,e),n(i)<1e3&&i.push(e),o)),(()=>[])),(e,o,i)=>r(R(a,e),(([e,,a])=>{const r=(...l)=>{const c=n(l);c==n(a)?e(t,...l,...i(l)):d(a[c])?s(o[c](...l),(e=>r(...l,e))):r(...l,a[c])};r()}))]})((()=>A)),P=(e,t,o)=>r(M(e),(([s,,n])=>{if(!l(n,t)){const i=I();if(x(e)!=q(e))b(i,t);else{let e=t;for(;!d(e)&&!l(i,e);)b(i,e),e=R(s,e)}if(o)return i;w(n,t,i)}return R(n,t)})),W=(e,t)=>r(M(e),(([,,e])=>w(e,t))),q=e=>R(t,e),A={setRelationshipDefinition:(e,s,n,c)=>(w(t,e,n),z(e,s,((t,s)=>{const n=I(),c=I(),f=I(),[u,L]=M(e);h(s,(([t,o],s)=>{d(t)||(b(c,t),r(R(L,t),(e=>{var o;p(e,s),(d(o=e)||0==(e=>e.size)(o))&&w(L,t)}))),d(o)||(b(c,o),l(L,o)||w(L,o,I()),b(R(L,o),s)),b(n,s),w(u,s,o),g(R(a,e),(t=>{l(P(e,t),s)&&b(f,t)}))})),t(),h(n,(t=>B(o,[e,t]))),h(c,(t=>B(i,[e,t]))),h(f,(t=>{W(e,t),B(a,[e,t])}))}),y(c)),A),delRelationshipDefinition:e=>(w(t,e),D(e),A),getStore:L,getRelationshipIds:k,forEachRelationship:t=>E((o=>t(o,(t=>e.forEachRow(x(o),t))))),hasRelationship:j,getLocalTableId:x,getRemoteTableId:q,getRemoteRowId:(e,t)=>R(M(e)?.[0],t),getLocalRowIds:(e,t)=>c(R(M(e)?.[1],t)),getLinkedRowIds:(e,t)=>d(M(e))?[t]:c(P(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>_(s,o,[e,t]),addLocalRowIdsListener:(e,t,o)=>_(o,i,[e,t]),addLinkedRowIdsListener:(e,t,o)=>(P(e,t),_(o,a,[e,t])),delListener:e=>(W(...C(e)),A),destroy:O,getListenerStats:()=>({})};return m(A)}));e.createRelationships=k,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),a=e=>null==e,d=(e,t,n)=>a(e)?n?.():t(e),l=(e,t)=>e?.has(t)??!1,c=e=>a(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)=>a(n)?(p(e,t),e):e?.set(t,n),y=(e,t,n)=>(l(e,t)||e.set(t,n()),g(e,t)),I=(e,t,n,o,s=0)=>d((n?y: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 a=I(r,t,n,o,s+1);return c(r)&&w(e,t[s]),a})),b=e=>new Set(e),v=(e,t)=>e?.add(t),T=(e,t,n)=>{const o=e.hasRow,r=R(),I=R(),T=R(),m=R(),k=R(),E=(t,n,...o)=>{const i=y(k,t,b);return s(o,(t=>v(i,t)&&n&&e.callListener(t))),o},j=(t,...n)=>d(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),l(I,e)||(w(I,e,t()),w(T,e,R()),w(m,e,R()))},M=e=>{w(r,e),w(I,e),w(T,e),w(m,e),j(e)};return[()=>e,()=>[...r?.keys()??[]],e=>L(I,e),e=>l(I,e),e=>g(r,e),e=>g(I,e),(e,t)=>w(I,e,t),x,(t,i,r,d,c)=>{x(t,i);const f=R(),p=R(),y=g(T,t),I=g(m,t),b=t=>{const s=n=>e.getCell(i,t,n),r=g(y,t),l=o(i,t)?n(d(s,t)):void 0;if(r!=l&&w(f,t,[r,l]),!a(c)){const e=g(I,t),n=o(i,t)?c(s,t):void 0;e!=n&&w(p,t,n)}},v=e=>{r((()=>{h(f,(([,e],t)=>w(y,t,e))),h(p,((e,t)=>w(I,t,e)))}),f,p,y,I,e),u(f),u(p)};L(y,b),e.hasTable(i)&&s(e.getRowIds(i),(e=>{l(y,e)||b(e)})),v(!0),j(t),E(t,0,e.addRowListener(i,null,((e,t,n)=>b(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,t=[n])=>{const o=[],a=(e,n)=>n==i(t)?r(o,e):s([t[n],null],(t=>a(g(e,t),n+1)));return a(e,0),o},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(),u=R(),y=R(),[j,x,M,S,z,D,,,O,_,B]=T(e,(()=>[R(),R(),R(),R()]),(e=>a(e)?void 0:e+n)),[C,P,W]=(e=>{let t,o=0;const l=[],f=R();return[(s,i,r)=>{t??=e();const a=l.pop()??n+o++;return w(f,a,[s,i,r]),v(I(i,r??[n],b),a),a},(e,n,...o)=>s(k(e,n),(e=>h(e,(e=>d(g(f,e),(([e])=>e(t,...n??[],...o))))))),e=>d(g(f,e),(([,t,o])=>(I(t,o??[n],void 0,(t=>(p(t,e),c(t)?1:0))),w(f,e),i(l)<1e3&&r(l,e),o))),(e,t)=>{return n=k(e,t),o=a,!n.every(o);var n,o},(e,n,o)=>d(g(f,e),(([e,,r=[]])=>{const d=(...l)=>{const c=i(l);c==i(r)?e(t,...l,...o(l)):a(r[c])?s(n[c](...l),(e=>d(...l,e))):d(...l,r[c])};d()}))]})((()=>G)),q=(e,t,n)=>d(D(e),(([o,,s])=>{if(!l(s,t)){const i=b();if(z(e)!=F(e))v(i,t);else{let e=t;for(;!a(e)&&!l(i,e);)v(i,e),e=g(o,e)}if(n)return i;w(s,t,i)}return g(s,t)})),A=(e,t)=>d(D(e),(([,,e])=>w(e,t))),F=e=>g(t,e),G={setRelationshipDefinition:(e,n,s,i)=>(w(t,e,s),O(e,n,((t,n)=>{const s=b(),i=b(),r=b(),[f,R]=D(e);h(n,(([t,n],o)=>{a(t)||(v(i,t),d(g(R,t),(e=>{p(e,o),c(e)&&w(R,t)}))),a(n)||(v(i,n),l(R,n)||w(R,n,b()),v(g(R,n),o)),v(s,o),w(f,o,n),L(g(y,e),(t=>{l(q(e,t),o)&&v(r,t)}))})),t(),h(s,(t=>P(o,[e,t]))),h(i,(t=>P(u,[e,t]))),h(r,(t=>{A(e,t),P(y,[e,t])}))}),m(i)),G),delRelationshipDefinition:e=>(w(t,e),_(e),G),getStore:j,getRelationshipIds:x,forEachRelationship:t=>M((n=>t(n,(t=>e.forEachRow(z(n),t))))),hasRelationship:S,getLocalTableId:z,getRemoteTableId:F,getRemoteRowId:(e,t)=>g(D(e)?.[0],t),getLocalRowIds:(e,t)=>f(g(D(e)?.[1],t)),getLinkedRowIds:(e,t)=>a(D(e))?[t]:f(q(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>C(n,o,[e,t]),addLocalRowIdsListener:(e,t,n)=>C(n,u,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(q(e,t),C(n,y,[e,t])),delListener:e=>(A(...W(e)),G),destroy:B,getListenerStats:()=>({})};return E(G)}));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={});
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,s=t(""),n=t(!0),r=t(0),a=t(t),l="type",o="default",i=e=>[e,e],d=(e,t)=>e.forEach(t),c=e=>e.length,f=e=>0==c(e),u=e=>e.slice(1),h=(e,t)=>e.push(t),T=e=>JSON.stringify(e,((e,t)=>{return g(t,Map)?(s=[...t],n=(e,[t,s])=>(e[t]=s,e),r={},s.reduce(n,r)):t;var s,n,r})),b=JSON.parse,p=isFinite,g=(e,t)=>e instanceof t,y=e=>null==e,L=(e,t,s)=>y(e)?s?.():t(e),w=e=>e==s||e==n,R=(e,t)=>e?.has(t)??!1,C=e=>y(e)||0==(e=>e.size)(e),S=e=>e.clear(),v=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),m=e=>new Map(e),E=(e=m)=>[e(),e()],J=e=>[...e?.keys()??[]],F=(e,t)=>e?.get(t),O=(e,t)=>v(e,((e,s)=>t(s,e))),j=(e,t,s)=>y(s)?(I(e,t),e):e?.set(t,s),x=(e,t,s)=>(R(e,t)||e.set(t,s()),F(e,t)),z=(e,t,s)=>{const n={},r=t??(e=>e);return v(e,((e,t)=>L(r(e),(e=>s?.(e)?0:n[t]=e)))),n},M=(e,t)=>{const s=m(),n=t??(e=>e);return v(e,((e,t)=>s.set(t,n(e)))),s},k=e=>M(e,M),N=Object,P=N.keys,_=N.isFrozen,B=N.freeze,D=(e,t)=>!y(((e,t)=>L(e,(e=>e[t])))(e,t)),W=(e,t)=>delete e[t],q=(e,t)=>d(N.entries(e),(([e,s])=>t(s,e))),A=e=>f(P(e)),G=e=>new Set(e),H=(e,t)=>e?.add(t),K=(e,t,s)=>c(s)<2?H(f(s)?e:x(e,s[0],G),t):K(x(e,s[0],m),t,u(s)),Q=e=>{const t=(s,n,...r)=>L(s,(s=>f(r)?e(s,n):d([r[0],null],(e=>t(F(s,e),n,...u(r))))));return t},U=(e,t,s,n=j)=>{const r=(a=J(e),l=e=>!D(t,e),a.filter(l));var a,l;return d(P(t),(n=>s(e,n,t[n]))),d(r,(t=>n(e,t))),e},V=e=>{const s=t(e);return w(s)||s==r&&p(e)?s:void 0},X=(e,t,s)=>y(e)||!(e=>g(e,N)&&e.constructor==N)(e)||A(e)||_(e)?(s?.(),!1):(q(e,((s,n)=>{t(s,n)||W(e,n)})),!A(e)),Y=(e,t,s)=>j(e,t,F(e,t)==-s?void 0:s);e.createStore=()=>{let e,s,n=0,f=0;const u=m(),p=m(),g=m(),N=m(),P=m(),_=m(),Z=m(),$=m(),ee=E(G),te=E(G),se=E(),ne=E(),re=E(),ae=E(),le=E(),oe=E(),ie=E(G),[de,ce,fe,ue]=(e=>{let t,s=0;const n=[],r=m();return[(a,l,o=[])=>{t??=e();const i=n.pop()??""+s++;return j(r,i,[a,l,o]),K(l,i,o),i},(e,s=[],...n)=>Q(v)(e,(e=>L(F(r,e),(([e])=>e(t,...s,...n)))),...s),e=>L(F(r,e),(([,t,s])=>(Q(I)(t,e,...s),j(r,e),c(n)<1e3&&h(n,e),s)),(()=>[])),(e,s,n)=>L(F(r,e),(([e,,r])=>{const a=(...l)=>{const o=c(l);o==c(r)?e(t,...l,...n(l)):y(r[o])?d(s[o](...l),(e=>a(...l,e))):a(...l,r[o])};a()}))]})((()=>Ve)),he=(t,s)=>(!e||R(_,s)||xe(s))&&X(t,((e,t)=>Te(s,t,e)),(()=>xe(s))),Te=(e,t,s,n)=>X(n?s:pe(s,e,t),((n,r)=>L(be(e,t,r,n),(e=>(s[r]=e,!0)),(()=>!1))),(()=>xe(e,t))),be=(t,s,n,r)=>e?L(F(F(_,t),n),(e=>V(r)!=e.type?xe(t,s,n,r,e.default):r),(()=>xe(t,s,n,r))):y(V(r))?xe(t,s,n,r):r,pe=(e,t,s)=>(L(F(Z,t),(([n,r])=>{v(n,((t,s)=>{D(e,s)||(e[s]=t)})),v(r,(n=>{D(e,n)||xe(t,s,n)}))})),e),ge=e=>U(_,e,((e,t,s)=>{const n=m(),r=G();U(x(_,t,m),s,((e,t,s)=>{j(e,t,s),L(s.default,(e=>j(n,t,e)),(()=>H(r,t)))})),j(Z,t,[n,r])}),((e,t)=>{j(_,t),j(Z,t)})),ye=e=>U($,e,((e,t,s)=>Le(t,s)),((e,t)=>Ie(t))),Le=(e,t)=>U(x($,e,(()=>(Je(e,1),m()))),t,((t,s,n)=>we(e,t,s,n)),((t,s)=>me(e,t,s))),we=(e,t,s,n,r)=>U(x(t,s,(()=>(Fe(e,s,1),m()))),n,((t,n,r)=>Re(e,s,t,n,r)),((n,a)=>Ee(e,t,s,n,a,r))),Re=(e,t,s,n,r)=>{R(s,n)||Oe(e,t,n,1);const a=F(s,n);r!==a&&(je(e,t,n,a,r),j(s,n,r))},Ce=(e,t,s,n,r)=>L(F(t,s),(t=>Re(e,s,t,n,r)),(()=>we(e,t,s,pe({[n]:r},e,s)))),Se=e=>{const t=""+n++;return R(e,t)?Se(e):t},ve=e=>F($,e)??Le(e,{}),Ie=e=>Le(e,{}),me=(e,t,s)=>we(e,t,s,{},!0),Ee=(e,t,s,n,r,a)=>{const l=F(F(Z,e)?.[0],r);if(!y(l)&&!a)return Re(e,s,n,r,l);const o=t=>{je(e,s,t,F(n,t)),Oe(e,s,t,-1),j(n,t)};y(l)?o(r):O(n,o),C(n)&&(Fe(e,s,-1),C(j(t,s))&&(Je(e,-1),j($,e)))},Je=(e,t)=>Y(u,e,t),Fe=(e,t,s)=>Y(x(p,e,m),t,s),Oe=(e,t,s,n)=>Y(x(x(g,e,m),t,m),s,n),je=(e,t,s,n,r)=>x(x(x(N,e,m),t,m),s,(()=>[n,0]))[1]=r,xe=(e,t,s,n,r)=>(h(x(x(x(P,e,m),t,m),s,(()=>[])),n),r),ze=(e,t,s)=>L(F(F(F(N,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...i(We(e,t,s))])),Me=e=>C(P)||C(oe[e])?0:v(e?M(P,k):P,((t,s)=>v(t,((t,n)=>v(t,((t,r)=>ce(oe[e],[s,n,r],t))))))),ke=e=>{const t=C(ae[e])&&C(ne[e])&&C(te[e]),s=C(le[e])&&C(re[e])&&C(se[e])&&C(ee[e]);if(!t||!s){const n=e?[M(u),k(p),M(g,k),M(N,k)]:[u,p,g,N];if(t||(v(n[2],((t,s)=>v(t,((t,n)=>{C(t)||ce(ae[e],[s,n])})))),v(n[1],((t,s)=>{C(t)||ce(ne[e],[s])})),C(n[0])||ce(te[e])),!s){let t;v(n[3],((s,n)=>{let r;v(s,((s,a)=>{let l;v(s,(([s,o],i)=>{o!==s&&(ce(le[e],[n,a,i],o,s,ze),t=r=l=1)})),l&&ce(re[e],[n,a],ze)})),r&&ce(se[e],[n],ze)})),t&&ce(ee[e],[],ze)}}},Ne=e=>(Ke(e),Ve),Pe=()=>z($,(e=>z(e,z))),_e=()=>J($),Be=e=>J(F($,e)),De=(e,t)=>J(F(F($,e),t)),We=(e,t,s)=>F(F(F($,e),t),s),qe=e=>Ne((()=>(e=>X(e,he,xe))(e)?ye(e):0)),Ae=(e,s,n,r)=>Ne((()=>L(be(e,s,n,t(r)==a?r(We(e,s,n)):r),(t=>Ce(e,ve(e),s,n,t))))),Ge=()=>Ne((()=>ye({}))),He=(e,t,s,n)=>Ne((()=>L(F($,e),(r=>L(F(r,t),(a=>R(a,s)?Ee(e,r,t,a,s,n):0)))))),Ke=(e,t)=>{if(-1==f)return;Qe();const s=e?.();return Ue(t),s},Qe=()=>(f++,Ve),Ue=e=>(f>0&&(f--,0==f&&(s=!C(N),f=1,Me(1),s&&ke(1),f=-1,e?.(z(N,(e=>z(e,(e=>z(e,(e=>[...e]),(([e,t])=>e===t))),A)),A),z(P,(e=>z(e,z))))&&(f=1,v(N,((e,t)=>v(e,((e,s)=>v(e,(([e],n)=>y(e)?He(t,s,n,!0):Ae(t,s,n,e))))))),f=-1,s=!1),ce(ie[0],[],s),Me(0),s&&ke(0),ce(ie[1],[],s),f=0,d([N,P,u,p,g],S))),Ve),Ve={getTables:Pe,getTableIds:_e,getTable:e=>z(F($,e),z),getRowIds:Be,getRow:(e,t)=>z(F(F($,e),t)),getCellIds:De,getCell:We,hasTables:()=>!C($),hasTable:e=>R($,e),hasRow:(e,t)=>R(F($,e),t),hasCell:(e,t,s)=>R(F(F($,e),t),s),getJson:()=>T($),getSchemaJson:()=>T(_),setTables:qe,setTable:(e,t)=>Ne((()=>he(t,e)?Le(e,t):0)),setRow:(e,t,s)=>Ne((()=>Te(e,t,s)?we(e,ve(e),t,s):0)),addRow:(e,t)=>Ke((()=>{let s;return Te(e,s,t)&&we(e,ve(e),s=Se(F($,e)),t),s})),setPartialRow:(e,t,s)=>Ne((()=>{if(Te(e,t,s,1)){const n=ve(e);q(s,((s,r)=>Ce(e,n,t,r,s)))}})),setCell:Ae,setJson:e=>{try{"{}"===e?Ge():qe(b(e))}catch{}return Ve},setSchema:t=>Ne((()=>{if((e=(e=>X(e,(e=>X(e,(e=>{if(!X(e,((e,t)=>[l,o].includes(t))))return!1;const t=e.type;return!(!w(t)&&t!=r||(V(e.default)!=t&&W(e,o),0))})))))(t))&&(ge(t),!C($))){const e=Pe();Ge(),qe(e)}})),delTables:Ge,delTable:e=>Ne((()=>R($,e)?Ie(e):0)),delRow:(e,t)=>Ne((()=>L(F($,e),(s=>R(s,t)?me(e,s,t):0)))),delCell:He,delSchema:()=>Ne((()=>{ge({}),e=!1})),transaction:Ke,startTransaction:Qe,finishTransaction:Ue,forEachTable:e=>v($,((t,s)=>e(s,(e=>v(t,((t,s)=>e(s,(e=>O(t,e))))))))),forEachRow:(e,t)=>v(F($,e),((e,s)=>t(s,(t=>O(e,t))))),forEachCell:(e,t,s)=>O(F(F($,e),t),s),addTablesListener:(e,t)=>de(e,ee[t?1:0]),addTableIdsListener:(e,t)=>de(e,te[t?1:0]),addTableListener:(e,t,s)=>de(t,se[s?1:0],[e]),addRowIdsListener:(e,t,s)=>de(t,ne[s?1:0],[e]),addRowListener:(e,t,s,n)=>de(s,re[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>de(s,ae[n?1:0],[e,t]),addCellListener:(e,t,s,n,r)=>de(n,le[r?1:0],[e,t,s]),addInvalidCellListener:(e,t,s,n,r)=>de(n,oe[r?1:0],[e,t,s]),addWillFinishTransactionListener:e=>de(e,ie[0]),addDidFinishTransactionListener:e=>de(e,ie[1]),callListener:e=>(ue(e,[_e,Be,De],(e=>y(e[2])?[]:i(We(...e)))),Ve),delListener:e=>(fe(e),Ve),getListenerStats:()=>({})};return B(Ve)},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),l=t(0),o=t(t),a="type",i="default",d=(e,t)=>e.every(t),c=(e,t)=>e.forEach(t),u=e=>e.length,f=(e,t,n)=>e.reduce(t,n),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>v(t,Map)?f([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),b=JSON.parse,p=isFinite,v=(e,t)=>e instanceof t,g=e=>null==e,y=(e,t,n)=>g(e)?n?.():t(e),L=e=>e==s||e==r,w=e=>e.size,R=(S=w,e=>f(m(e),((e,t)=>e+S(t)),0));var S;const C=(e,t)=>e?.has(t)??!1,I=e=>g(e)||0==w(e),m=e=>[...e?.values()??[]],E=e=>e.clear(),J=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),O=e=>new Map(e),j=e=>[...e?.keys()??[]],x=(e,t)=>e?.get(t),z=(e,t)=>J(e,((e,n)=>t(n,e))),M=(e,t,n)=>g(n)?(F(e,t),e):e?.set(t,n),k=(e,t,n)=>(C(e,t)||e.set(t,n()),x(e,t)),N=(e,t,n)=>{const s={},r=t??(e=>e);return J(e,((e,t)=>y(r(e),(e=>n?.(e)?0:s[t]=e)))),s},P=(e,t)=>{const n=O(),s=t??(e=>e);return J(e,((e,t)=>n.set(t,s(e)))),n},_=e=>P(e,P),B=(e,t,n,s,r=0)=>y((n?k:x)(e,t[r],r>u(t)-2?n:O),(l=>{if(r>u(t)-2)return s?.(l)&&M(e,t[r]),l;const o=B(l,t,n,s,r+1);return I(l)&&M(e,t[r]),o})),D=Object,W=D.keys,q=D.isFrozen,A=D.freeze,G=(e,t)=>!g(((e,t)=>y(e,(e=>e[t])))(e,t)),H=(e,t)=>delete e[t],K=(e,t)=>c(D.entries(e),(([e,n])=>t(n,e))),Q=e=>{return t=W(e),0==u(t);var t},U=e=>new Set(e),V=(e,t)=>e?.add(t),X=(e,t=[n])=>{const s=[],r=(e,n)=>n==u(t)?h(s,e):c([t[n],null],(t=>r(x(e,t),n+1)));return r(e,0),s},Y=e=>[e,e],Z=e=>0==((e,t=R)=>t(e[0])+t(e[1]))(e),$=()=>[O(),O()],ee=()=>[$(),$()],te=e=>{const n=t(e);return L(n)||n==l&&p(e)?n:void 0},ne=(e,t,n,s=M)=>{const r=(l=j(e),o=e=>!G(t,e),l.filter(o));var l,o;return c(W(t),(s=>n(e,s,t[s]))),c(r,(t=>s(e,t))),e},se=(e,t,n)=>g(e)||!(e=>v(e,D)&&e.constructor==D)(e)||Q(e)||q(e)?(n?.(),!1):(K(e,((n,s)=>{t(n,s)||H(e,s)})),!Q(e)),re=(e,t,n)=>M(e,t,x(e,t)==-n?void 0:n),le=()=>{let e,s,r=0,f=0;const p=O(),v=O(),R=O(),S=O(),m=O(),D=O(),W=O(),q=O(),oe=$(),ae=ee(),ie=$(),de=ee(),ce=$(),ue=ee(),fe=$(),he=$(),Te=$(),[be,pe,ve,ge,ye]=(e=>{let t,s=0;const r=[],l=O();return[(o,a,i)=>{t??=e();const d=r.pop()??n+s++;return M(l,d,[o,a,i]),V(B(a,i??[n],U),d),d},(e,n,...s)=>c(X(e,n),(e=>J(e,(e=>y(x(l,e),(([e])=>e(t,...n??[],...s))))))),e=>y(x(l,e),(([,t,s])=>(B(t,s??[n],void 0,(t=>(F(t,e),I(t)?1:0))),M(l,e),u(r)<1e3&&h(r,e),s))),(e,t)=>!d(X(e,t),g),(e,n,s)=>y(x(l,e),(([e,,r=[]])=>{const l=(...o)=>{const a=u(o);a==u(r)?e(t,...o,...s(o)):g(r[a])?c(n[a](...o),(e=>l(...o,e))):l(...o,r[a])};l()}))]})((()=>st)),Le=(t,n)=>(!e||C(D,n)||Be(n))&&se(t,((e,t)=>we(n,t,e)),(()=>Be(n))),we=(e,t,n,s)=>se(s?n:Se(n,e,t),((s,r)=>y(Re(e,t,r,s),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Be(e,t))),Re=(t,n,s,r)=>e?y(x(x(D,t),s),(e=>te(r)!=e.type?Be(t,n,s,r,e.default):r),(()=>Be(t,n,s,r))):g(te(r))?Be(t,n,s,r):r,Se=(e,t,n)=>(y(x(W,t),(([s,r])=>{J(s,((t,n)=>{G(e,n)||(e[n]=t)})),J(r,(s=>{G(e,s)||Be(t,n,s)}))})),e),Ce=e=>ne(D,e,((e,t,n)=>{const s=O(),r=U();ne(k(D,t,O),n,((e,t,n)=>{M(e,t,n),y(n.default,(e=>M(s,t,e)),(()=>V(r,t)))})),M(W,t,[s,r])}),((e,t)=>{M(D,t),M(W,t)})),Ie=e=>ne(q,e,((e,t,n)=>me(t,n)),((e,t)=>xe(t))),me=(e,t)=>ne(k(q,e,(()=>(ke(e,1),O()))),t,((t,n,s)=>Ee(e,t,n,s)),((t,n)=>ze(e,t,n))),Ee=(e,t,n,s,r)=>ne(k(t,n,(()=>(Ne(e,n,1),O()))),s,((t,s,r)=>Je(e,n,t,s,r)),((s,l)=>Me(e,t,n,s,l,r))),Je=(e,t,n,s,r)=>{C(n,s)||Pe(e,t,s,1);const l=x(n,s);r!==l&&(_e(e,t,s,l,r),M(n,s,r))},Fe=(e,t,n,s,r)=>y(x(t,n),(t=>Je(e,n,t,s,r)),(()=>Ee(e,t,n,Se({[s]:r},e,n)))),Oe=e=>{const t=n+r++;return C(e,t)?Oe(e):t},je=e=>x(q,e)??me(e,{}),xe=e=>me(e,{}),ze=(e,t,n)=>Ee(e,t,n,{},!0),Me=(e,t,n,s,r,l)=>{const o=x(x(W,e)?.[0],r);if(!g(o)&&!l)return Je(e,n,s,r,o);const a=t=>{_e(e,n,t,x(s,t)),Pe(e,n,t,-1),M(s,t)};g(o)?a(r):z(s,a),I(s)&&(Ne(e,n,-1),I(M(t,n))&&(ke(e,-1),M(q,e)))},ke=(e,t)=>re(I(p)?M(p,null,ge(ae[0][1])||ge(ae[1][1])?Ke():0):p,e,t),Ne=(e,t,n)=>re(k(v,e,(()=>O([[null,ge(de[0][1],[e])||ge(de[1][1],[e])?Qe(e):0]]))),t,n),Pe=(e,t,n,s)=>re(k(k(R,e,O),t,(()=>O([[null,ge(ue[0][1],[e,t])||ge(ue[1][1],[e,t])?Ue(e,t):0]]))),n,s),_e=(e,t,n,s,r)=>k(k(k(S,e,O),t,O),n,(()=>[s,0]))[1]=r,Be=(e,t,n,s,r)=>(h(k(k(k(m,e,O),t,O),n,(()=>[])),s),r),De=(e,t,n)=>y(x(x(x(S,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(Ve(e,t,n))])),We=e=>I(m)||I(he[e])?0:J(e?P(m,_):m,((t,n)=>J(t,((t,s)=>J(t,((t,r)=>pe(he[e],[n,s,r],t))))))),qe=(e,t,n,s)=>{var r,l;w(t)>1?(pe(e[0],s),pe(e[1],s)):I(t)||0==x(t,null)||(r=x(t,null),l=n(...s??[]),u(r)===u(l)&&d(r,((e,t)=>l[t]===e)))||pe(e[1],s)},Ae=e=>{const t=Z(ue[e])&&Z(de[e])&&Z(ae[e]),n=I(fe[e])&&I(ce[e])&&I(ie[e])&&I(oe[e]);if(!t||!n){const s=e?[P(p),_(v),P(R,_),P(S,_)]:[p,v,R,S];if(t||(J(s[2],((t,n)=>J(t,((t,s)=>qe(ue[e],t,Ue,[n,s]))))),J(s[1],((t,n)=>qe(de[e],t,Qe,[n]))),qe(ae[e],s[0],Ke)),!n){let t;J(s[3],((n,s)=>{let r;J(n,((n,l)=>{let o;J(n,(([n,a],i)=>{a!==n&&(pe(fe[e],[s,l,i],a,n,De),t=r=o=1)})),o&&pe(ce[e],[s,l],De)})),r&&pe(ie[e],[s],De)})),t&&pe(oe[e],void 0,De)}}},Ge=e=>(et(e),st),He=()=>N(q,(e=>N(e,N))),Ke=()=>j(q),Qe=e=>j(x(q,e)),Ue=(e,t)=>j(x(x(q,e),t)),Ve=(e,t,n)=>x(x(x(q,e),t),n),Xe=e=>Ge((()=>(e=>se(e,Le,Be))(e)?Ie(e):0)),Ye=(e,n,s,r)=>Ge((()=>y(Re(e,n,s,t(r)==o?r(Ve(e,n,s)):r),(t=>Fe(e,je(e),n,s,t))))),Ze=()=>Ge((()=>Ie({}))),$e=(e,t,n,s)=>Ge((()=>y(x(q,e),(r=>y(x(r,t),(l=>C(l,n)?Me(e,r,t,l,n,s):0)))))),et=(e,t)=>{if(-1==f)return;tt();const n=e?.();return nt(t),n},tt=()=>(f++,st),nt=e=>(f>0&&(f--,0==f&&(s=!I(S),f=1,We(1),s&&Ae(1),f=-1,e?.(N(S,(e=>N(e,(e=>N(e,(e=>[...e]),(([e,t])=>e===t))),Q)),Q),N(m,(e=>N(e,N))))&&(f=1,J(S,((e,t)=>J(e,((e,n)=>J(e,(([e],s)=>g(e)?$e(t,n,s,!0):Ye(t,n,s,e))))))),f=-1,s=!1),pe(Te[0],void 0,s),We(0),s&&Ae(0),pe(Te[1],void 0,s),f=0,c([S,m,p,v,R],E))),st),st={getTables:He,getTableIds:Ke,getTable:e=>N(x(q,e),N),getRowIds:Qe,getRow:(e,t)=>N(x(x(q,e),t)),getCellIds:Ue,getCell:Ve,hasTables:()=>!I(q),hasTable:e=>C(q,e),hasRow:(e,t)=>C(x(q,e),t),hasCell:(e,t,n)=>C(x(x(q,e),t),n),getJson:()=>T(q),getSchemaJson:()=>T(D),setTables:Xe,setTable:(e,t)=>Ge((()=>Le(t,e)?me(e,t):0)),setRow:(e,t,n)=>Ge((()=>we(e,t,n)?Ee(e,je(e),t,n):0)),addRow:(e,t,n)=>et((()=>{const s=we(e,void 0,t),r=s||n?Oe(x(q,e)):void 0;return s&&Ee(e,je(e),r,t),r})),setPartialRow:(e,t,n)=>Ge((()=>{if(we(e,t,n,1)){const s=je(e);K(n,((n,r)=>Fe(e,s,t,r,n)))}})),setCell:Ye,setJson:e=>{try{"{}"===e?Ze():Xe(b(e))}catch{}return st},setSchema:t=>Ge((()=>{if((e=(e=>se(e,(e=>se(e,(e=>{if(!se(e,((e,t)=>[a,i].includes(t))))return!1;const t=e.type;return!(!L(t)&&t!=l||(te(e.default)!=t&&H(e,i),0))})))))(t))&&(Ce(t),!I(q))){const e=He();Ze(),Xe(e)}})),delTables:Ze,delTable:e=>Ge((()=>C(q,e)?xe(e):0)),delRow:(e,t)=>Ge((()=>y(x(q,e),(n=>C(n,t)?ze(e,n,t):0)))),delCell:$e,delSchema:()=>Ge((()=>{Ce({}),e=!1})),transaction:et,startTransaction:tt,finishTransaction:nt,forEachTable:e=>J(q,((t,n)=>e(n,(e=>J(t,((t,n)=>e(n,(e=>z(t,e))))))))),forEachRow:(e,t)=>J(x(q,e),((e,n)=>t(n,(t=>z(e,t))))),forEachCell:(e,t,n)=>z(x(x(q,e),t),n),addTablesListener:(e,t)=>be(e,oe[t?1:0]),addTableIdsListener:(e,t,n)=>be(e,ae[n?1:0][t?1:0]),addTableListener:(e,t,n)=>be(t,ie[n?1:0],[e]),addRowIdsListener:(e,t,n,s)=>be(t,de[s?1:0][n?1:0],[e]),addRowListener:(e,t,n,s)=>be(n,ce[s?1:0],[e,t]),addCellIdsListener:(e,t,n,s,r)=>be(n,ue[r?1:0][s?1:0],[e,t]),addCellListener:(e,t,n,s,r)=>be(s,fe[r?1:0],[e,t,n]),addInvalidCellListener:(e,t,n,s,r)=>be(s,he[r?1:0],[e,t,n]),addWillFinishTransactionListener:e=>be(e,Te[0]),addDidFinishTransactionListener:e=>be(e,Te[1]),callListener:e=>(ye(e,[Ke,Qe,Ue],(e=>g(e[2])?[]:Y(Ve(...e)))),st),delListener:e=>(ve(e),st),getListenerStats:()=>({}),createStore:le};return A(st)};e.createStore=le,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