tinybase 0.9.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/lib/checkpoints.d.ts +38 -20
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/common.d.ts +56 -0
  5. package/lib/common.js +1 -0
  6. package/lib/common.js.gz +0 -0
  7. package/lib/debug/checkpoints.d.ts +38 -20
  8. package/lib/debug/checkpoints.js +1 -1
  9. package/lib/debug/common.d.ts +56 -0
  10. package/lib/debug/common.js +3 -0
  11. package/lib/debug/indexes.d.ts +39 -76
  12. package/lib/debug/indexes.js +18 -10
  13. package/lib/debug/metrics.d.ts +49 -20
  14. package/lib/debug/metrics.js +1 -1
  15. package/lib/debug/persisters.d.ts +207 -17
  16. package/lib/debug/persisters.js +1 -1
  17. package/lib/debug/relationships.d.ts +48 -23
  18. package/lib/debug/relationships.js +1 -1
  19. package/lib/debug/store.d.ts +184 -102
  20. package/lib/debug/store.js +1 -1
  21. package/lib/debug/tinybase.d.ts +1 -2
  22. package/lib/debug/tinybase.js +18 -1029
  23. package/lib/debug/{react.d.ts → ui-react.d.ts} +270 -162
  24. package/lib/debug/{react.js → ui-react.js} +28 -19
  25. package/lib/indexes.d.ts +39 -76
  26. package/lib/indexes.js +1 -1
  27. package/lib/indexes.js.gz +0 -0
  28. package/lib/metrics.d.ts +49 -20
  29. package/lib/metrics.js +1 -1
  30. package/lib/metrics.js.gz +0 -0
  31. package/lib/persisters.d.ts +207 -17
  32. package/lib/persisters.js +1 -1
  33. package/lib/persisters.js.gz +0 -0
  34. package/lib/relationships.d.ts +48 -23
  35. package/lib/relationships.js +1 -1
  36. package/lib/relationships.js.gz +0 -0
  37. package/lib/store.d.ts +184 -102
  38. package/lib/store.js +1 -1
  39. package/lib/store.js.gz +0 -0
  40. package/lib/tinybase.d.ts +1 -2
  41. package/lib/tinybase.js +1 -1
  42. package/lib/tinybase.js.gz +0 -0
  43. package/lib/{react.d.ts → ui-react.d.ts} +270 -162
  44. package/lib/ui-react.js +1 -0
  45. package/lib/ui-react.js.gz +0 -0
  46. package/lib/umd/checkpoints.js +1 -1
  47. package/lib/umd/checkpoints.js.gz +0 -0
  48. package/lib/umd/common.js +1 -0
  49. package/lib/umd/common.js.gz +0 -0
  50. package/lib/umd/indexes.js +1 -1
  51. package/lib/umd/indexes.js.gz +0 -0
  52. package/lib/umd/metrics.js +1 -1
  53. package/lib/umd/metrics.js.gz +0 -0
  54. package/lib/umd/persisters.js +1 -1
  55. package/lib/umd/persisters.js.gz +0 -0
  56. package/lib/umd/relationships.js +1 -1
  57. package/lib/umd/relationships.js.gz +0 -0
  58. package/lib/umd/store.js +1 -1
  59. package/lib/umd/store.js.gz +0 -0
  60. package/lib/umd/tinybase.js +1 -1
  61. package/lib/umd/tinybase.js.gz +0 -0
  62. package/lib/umd/ui-react.js +1 -0
  63. package/lib/umd/ui-react.js.gz +0 -0
  64. package/package.json +28 -16
  65. package/readme.md +13 -13
  66. package/lib/react.js +0 -1
  67. package/lib/react.js.gz +0 -0
  68. package/lib/umd/react.js +0 -1
  69. package/lib/umd/react.js.gz +0 -0
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),s=e(!0),n=e(0),r=e(e),l=(e,t)=>e.forEach(t),o=e=>e.length,a=e=>0==o(e),c=e=>e.slice(1),d=e=>JSON.stringify(e,((e,t)=>{return f(t,Map)?(s=[...t],n=(e,[t,s])=>(e[t]=s,e),r={},s.reduce(n,r)):t;var s,n,r})),i=JSON.parse,u=isFinite,f=(e,t)=>e instanceof t,h=e=>null==e,b=(e,t,s)=>h(e)?s?.():t(e),g=e=>e==t||e==s,w=(e,t)=>e?.has(t)??!1,T=e=>h(e)||0==(e=>e.size)(e),p=e=>e.clear(),L=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),y=e=>new Map(e),C=(e=y)=>[e(),e()],S=e=>[...e?.keys()??[]],I=(e,t)=>e?.get(t),v=(e,t)=>L(e,((e,s)=>t(s,e))),E=(e,t,s)=>h(s)?(R(e,t),e):e?.set(t,s),J=(e,t,s,n)=>(w(e,t)||(n?.(s),e.set(t,s)),I(e,t)),m=(e,t)=>{const s={},n=t??(e=>e);return L(e,((e,t)=>s[t]=n(e))),s},z=(e,t)=>{const s=y(),n=t??(e=>e);return L(e,((e,t)=>s.set(t,n(e)))),s},O=Object,k=O.keys,F=O.isFrozen,M=O.freeze,N=(e,t)=>!h(((e,t)=>b(e,(e=>e[t])))(e,t)),j=(e,t)=>delete e[t],x=(e,t)=>l(O.entries(e),(([e,s])=>t(s,e))),P=e=>new Set(e),q=(e,t,s)=>o(s)<2?((e,t)=>e?.add(t))(a(s)?e:J(e,s[0],P()),t):q(J(e,s[0],y()),t,c(s)),A=e=>{const t=(s,n,...r)=>b(s,(s=>a(r)?e(s,n):l([r[0],null],(e=>t(I(s,e),n,...c(r))))));return t},B=(e,t,s,n=E)=>{const r=(o=S(e),a=e=>!N(t,e),o.filter(a));var o,a;return l(k(t),(n=>s(e,n,t[n]))),l(r,(t=>n(e,t))),e},D=t=>{const s=e(t);return g(s)||s==n&&u(t)?s:void 0},G=(e,t)=>!(h(e)||!(e=>f(e,O)&&e.constructor==O)(e)||F(e))&&(x(e,((s,n)=>{t(s,n)||j(e,n)})),!(e=>a(k(e)))(e)),H=(e,t,s)=>E(e,t,I(e,t)==-s?void 0:s),K=()=>{let t,s=0,a=0;const c=y(),u=y(),f=y(),O=y(),k=y(),F=y(),K=y(),Q=C(P),U=C(P),V=C(),W=C(),X=C(),Y=C(),Z=C(),[$,_,ee,te]=(e=>{let t,s=0;const n=[],r=y();return[(l,o,a=[])=>{t??(t=e());const c=n.pop()??""+s++;return E(r,c,[l,o,a]),q(o,c,a),c},(e,s=[],...n)=>A(L)(e,(e=>b(I(r,e),(([e])=>e(t,...s,...n)))),...s),e=>b(I(r,e),(([,t,s])=>(A(R)(t,e,...s),E(r,e),o(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>b(I(r,e),(([e,,r])=>{const a=(...c)=>{const d=o(c);d==o(r)?e(t,...c,...n(c)):h(r[d])?l(s[d](...c),(e=>a(...c,e))):a(...c,r[d])};a()}))]})((()=>Fe)),se=(e,s)=>(!t||w(k,s))&&G(e,(e=>ne(s,e))),ne=(e,t,s)=>G(s?t:le(t,e),((s,n)=>b(re(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),re=(e,s,n)=>t?b(I(I(k,e),s),(e=>D(n)!=e.type?e.default:n)):h(D(n))?void 0:n,le=(e,t)=>(b(I(F,t),(t=>x(t,((t,s)=>{N(e,s)||(e[s]=t)})))),e),oe=e=>B(k,e,((e,t,s)=>{const n={};B(J(k,t,y()),s,((e,t,s)=>{E(e,t,s),b(s.default,(e=>n[t]=e))})),E(F,t,n)}),((e,t)=>{E(k,t),E(F,t)})),ae=e=>B(K,e,((e,t,s)=>ce(t,s)),((e,t)=>ge(t))),ce=(e,t)=>B(J(K,e,y(),(()=>pe(e,1))),t,((t,s,n)=>de(e,t,s,n)),((t,s)=>we(e,t,s))),de=(e,t,s,n,r)=>B(J(t,s,y(),(()=>Le(e,s,1))),n,((t,n,r)=>ie(e,s,t,n,r)),((n,l)=>Te(e,t,s,n,l,r))),ie=(e,t,s,n,r)=>{w(s,n)||Re(e,t,n,1);const l=I(s,n);r!==l&&(ye(e,t,n,l),E(s,n,r))},ue=(e,t,s)=>ke((()=>de(e,be(e),t,s))),fe=(e,t,s,n,r)=>b(I(t,s),(t=>ie(e,s,t,n,r)),(()=>de(e,t,s,le({[n]:r},e)))),he=e=>{const t=""+s++;return w(e,t)?he(e):t},be=e=>I(K,e)??ce(e,{}),ge=e=>ce(e,{}),we=(e,t,s)=>de(e,t,s,{},!0),Te=(e,t,s,n,r,l)=>{const o=I(F,e)?.[r];if(!h(o)&&!l)return ie(e,s,n,r,o);const a=t=>{ye(e,s,t,I(n,t)),Re(e,s,t,-1),E(n,t)};h(o)?a(r):v(n,a),T(n)&&(Le(e,s,-1),T(E(t,s))&&(pe(e,-1),E(K,e)))},pe=(e,t)=>H(c,e,t),Le=(e,t,s)=>H(J(u,e,y()),t,s),Re=(e,t,s,n)=>H(J(J(f,e,y()),t,y()),s,n),ye=(e,t,s,n)=>J(J(J(O,e,y()),t,y()),s,n),Ce=(e,t,s)=>{const n=I(I(O,e),t),r=me(e,t,s);return w(n,s)?[!0,I(n,s),r]:[!1,r,r]},Se=e=>{const t=T(Y[e])&&T(W[e])&&T(U[e]),s=T(Z[e])&&T(X[e])&&T(V[e])&&T(Q[e]);if(t&&s)return;const n=e?[z(c),z(u,z),z(f,(e=>z(e,z))),z(O,(e=>z(e,z)))]:[c,u,f,O];if(t||(L(n[2],((t,s)=>L(t,((t,n)=>{T(t)||_(Y[e],[s,n])})))),L(n[1],((t,s)=>{T(t)||_(W[e],[s])})),T(n[0])||_(U[e])),!s){let t;L(n[3],((s,n)=>{let r;L(s,((s,l)=>{let o;L(s,((s,a)=>{const c=me(n,l,a);c!==s&&(_(Z[e],[n,l,a],c,s,Ce),t=r=o=1)})),o&&_(X[e],[n,l],Ce)})),r&&_(V[e],[n],Ce)})),t&&_(Q[e],[],Ce)}},Ie=()=>m(K,(e=>m(e,m))),ve=()=>S(K),Ee=e=>S(I(K,e)),Je=(e,t)=>S(I(I(K,e),t)),me=(e,t,s)=>I(I(I(K,e),t),s),ze=e=>((e=>G(e,se))(e)&&ke((()=>ae(e))),Fe),Oe=()=>(ke((()=>ae({}))),Fe),ke=e=>{if(-1==a)return;a++;const t=e();return a--,0==a&&(a=1,Se(1),a=-1,Se(0),a=0,l([O,c,u,f],p)),t},Fe={getTables:Ie,getTableIds:ve,getTable:e=>m(I(K,e),m),getRowIds:Ee,getRow:(e,t)=>m(I(I(K,e),t)),getCellIds:Je,getCell:me,hasTable:e=>w(K,e),hasRow:(e,t)=>w(I(K,e),t),hasCell:(e,t,s)=>w(I(I(K,e),t),s),getJson:()=>d(K),getSchemaJson:()=>d(k),setTables:ze,setTable:(e,t)=>(se(t,e)&&ke((()=>ce(e,t))),Fe),setRow:(e,t,s)=>(ne(e,s)&&ue(e,t,s),Fe),addRow:(e,t)=>{let s;return ne(e,t)&&(s=he(I(K,e)),ue(e,s,t)),s},setPartialRow:(e,t,s)=>(ne(e,s,1)&&ke((()=>{const n=be(e);x(s,((s,r)=>fe(e,n,t,r,s)))})),Fe),setCell:(t,s,n,l)=>(b(re(t,n,e(l)==r?l(me(t,s,n)):l),(e=>ke((()=>fe(t,be(t),s,n,e))))),Fe),setJson:e=>{try{"{}"===e?Oe():ze(i(e))}catch{}return Fe},setSchema:e=>{if((t=(e=>G(e,(e=>G(e,(e=>{if(!G(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!g(t)&&t!=n||(D(e.default)!=t&&j(e,"default"),0))})))))(e))&&(oe(e),!T(K))){const e=Ie();Oe(),ze(e)}return Fe},delTables:Oe,delTable:e=>(w(K,e)&&ke((()=>ge(e))),Fe),delRow:(e,t)=>(b(I(K,e),(s=>{w(s,t)&&ke((()=>we(e,s,t)))})),Fe),delCell:(e,t,s,n)=>(b(I(K,e),(r=>b(I(r,t),(l=>{w(l,s)&&ke((()=>Te(e,r,t,l,s,n)))})))),Fe),delSchema:()=>(oe({}),t=!1,Fe),transaction:ke,forEachTable:e=>L(K,((t,s)=>e(s,(e=>L(t,((t,s)=>e(s,(e=>v(t,e))))))))),forEachRow:(e,t)=>L(I(K,e),((e,s)=>t(s,(t=>v(e,t))))),forEachCell:(e,t,s)=>v(I(I(K,e),t),s),addTablesListener:(e,t)=>$(e,Q[t?1:0]),addTableIdsListener:(e,t)=>$(e,U[t?1:0]),addTableListener:(e,t,s)=>$(t,V[s?1:0],[e]),addRowIdsListener:(e,t,s)=>$(t,W[s?1:0],[e]),addRowListener:(e,t,s,n)=>$(s,X[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>$(s,Y[n?1:0],[e,t]),addCellListener:(e,t,s,n,r)=>$(n,Z[r?1:0],[e,t,s]),callListener:e=>(te(e,[ve,Ee,Je],(e=>h(e[2])?[]:[,,].fill(me(...e)))),Fe),delListener:e=>(ee(e),Fe),getListenerStats:()=>({})};return M(Fe)};export{K as createStore};
1
+ const e=e=>typeof e,t=e(""),s=e(!0),n=e(0),r=e(e),l=(e,t)=>e.forEach(t),o=e=>e.length,a=e=>0==o(e),c=e=>e.slice(1),d=e=>JSON.stringify(e,((e,t)=>{return f(t,Map)?(s=[...t],n=(e,[t,s])=>(e[t]=s,e),r={},s.reduce(n,r)):t;var s,n,r})),i=JSON.parse,u=isFinite,f=(e,t)=>e instanceof t,h=e=>null==e,b=(e,t,s)=>h(e)?s?.():t(e),g=e=>e==t||e==s,w=(e,t)=>e?.has(t)??!1,T=e=>h(e)||0==(e=>e.size)(e),p=e=>e.clear(),L=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),y=e=>new Map(e),C=(e=y)=>[e(),e()],S=e=>[...e?.keys()??[]],I=(e,t)=>e?.get(t),v=(e,t)=>L(e,((e,s)=>t(s,e))),E=(e,t,s)=>h(s)?(R(e,t),e):e?.set(t,s),J=(e,t,s,n)=>(w(e,t)||(n?.(s),e.set(t,s)),I(e,t)),m=(e,t)=>{const s={},n=t??(e=>e);return L(e,((e,t)=>s[t]=n(e))),s},z=(e,t)=>{const s=y(),n=t??(e=>e);return L(e,((e,t)=>s.set(t,n(e)))),s},O=Object,k=O.keys,F=O.isFrozen,M=O.freeze,N=(e,t)=>!h(((e,t)=>b(e,(e=>e[t])))(e,t)),j=(e,t)=>delete e[t],x=(e,t)=>l(O.entries(e),(([e,s])=>t(s,e))),P=e=>new Set(e),q=(e,t,s)=>o(s)<2?((e,t)=>e?.add(t))(a(s)?e:J(e,s[0],P()),t):q(J(e,s[0],y()),t,c(s)),A=e=>{const t=(s,n,...r)=>b(s,(s=>a(r)?e(s,n):l([r[0],null],(e=>t(I(s,e),n,...c(r))))));return t},B=(e,t,s,n=E)=>{const r=(o=S(e),a=e=>!N(t,e),o.filter(a));var o,a;return l(k(t),(n=>s(e,n,t[n]))),l(r,(t=>n(e,t))),e},D=t=>{const s=e(t);return g(s)||s==n&&u(t)?s:void 0},G=(e,t)=>!(h(e)||!(e=>f(e,O)&&e.constructor==O)(e)||F(e))&&(x(e,((s,n)=>{t(s,n)||j(e,n)})),!(e=>a(k(e)))(e)),H=(e,t,s)=>E(e,t,I(e,t)==-s?void 0:s),K=()=>{let t,s=0,a=0;const c=y(),u=y(),f=y(),O=y(),k=y(),F=y(),K=y(),Q=C(P),U=C(P),V=C(),W=C(),X=C(),Y=C(),Z=C(),[$,_,ee,te]=(e=>{let t,s=0;const n=[],r=y();return[(l,o,a=[])=>{t??=e();const c=n.pop()??""+s++;return E(r,c,[l,o,a]),q(o,c,a),c},(e,s=[],...n)=>A(L)(e,(e=>b(I(r,e),(([e])=>e(t,...s,...n)))),...s),e=>b(I(r,e),(([,t,s])=>(A(R)(t,e,...s),E(r,e),o(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>b(I(r,e),(([e,,r])=>{const a=(...c)=>{const d=o(c);d==o(r)?e(t,...c,...n(c)):h(r[d])?l(s[d](...c),(e=>a(...c,e))):a(...c,r[d])};a()}))]})((()=>Fe)),se=(e,s)=>(!t||w(k,s))&&G(e,(e=>ne(s,e))),ne=(e,t,s)=>G(s?t:le(t,e),((s,n)=>b(re(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),re=(e,s,n)=>t?b(I(I(k,e),s),(e=>D(n)!=e.type?e.default:n)):h(D(n))?void 0:n,le=(e,t)=>(b(I(F,t),(t=>x(t,((t,s)=>{N(e,s)||(e[s]=t)})))),e),oe=e=>B(k,e,((e,t,s)=>{const n={};B(J(k,t,y()),s,((e,t,s)=>{E(e,t,s),b(s.default,(e=>n[t]=e))})),E(F,t,n)}),((e,t)=>{E(k,t),E(F,t)})),ae=e=>B(K,e,((e,t,s)=>ce(t,s)),((e,t)=>ge(t))),ce=(e,t)=>B(J(K,e,y(),(()=>pe(e,1))),t,((t,s,n)=>de(e,t,s,n)),((t,s)=>we(e,t,s))),de=(e,t,s,n,r)=>B(J(t,s,y(),(()=>Le(e,s,1))),n,((t,n,r)=>ie(e,s,t,n,r)),((n,l)=>Te(e,t,s,n,l,r))),ie=(e,t,s,n,r)=>{w(s,n)||Re(e,t,n,1);const l=I(s,n);r!==l&&(ye(e,t,n,l),E(s,n,r))},ue=(e,t,s)=>ke((()=>de(e,be(e),t,s))),fe=(e,t,s,n,r)=>b(I(t,s),(t=>ie(e,s,t,n,r)),(()=>de(e,t,s,le({[n]:r},e)))),he=e=>{const t=""+s++;return w(e,t)?he(e):t},be=e=>I(K,e)??ce(e,{}),ge=e=>ce(e,{}),we=(e,t,s)=>de(e,t,s,{},!0),Te=(e,t,s,n,r,l)=>{const o=I(F,e)?.[r];if(!h(o)&&!l)return ie(e,s,n,r,o);const a=t=>{ye(e,s,t,I(n,t)),Re(e,s,t,-1),E(n,t)};h(o)?a(r):v(n,a),T(n)&&(Le(e,s,-1),T(E(t,s))&&(pe(e,-1),E(K,e)))},pe=(e,t)=>H(c,e,t),Le=(e,t,s)=>H(J(u,e,y()),t,s),Re=(e,t,s,n)=>H(J(J(f,e,y()),t,y()),s,n),ye=(e,t,s,n)=>J(J(J(O,e,y()),t,y()),s,n),Ce=(e,t,s)=>{const n=I(I(O,e),t),r=me(e,t,s);return w(n,s)?[!0,I(n,s),r]:[!1,r,r]},Se=e=>{const t=T(Y[e])&&T(W[e])&&T(U[e]),s=T(Z[e])&&T(X[e])&&T(V[e])&&T(Q[e]);if(t&&s)return;const n=e?[z(c),z(u,z),z(f,(e=>z(e,z))),z(O,(e=>z(e,z)))]:[c,u,f,O];if(t||(L(n[2],((t,s)=>L(t,((t,n)=>{T(t)||_(Y[e],[s,n])})))),L(n[1],((t,s)=>{T(t)||_(W[e],[s])})),T(n[0])||_(U[e])),!s){let t;L(n[3],((s,n)=>{let r;L(s,((s,l)=>{let o;L(s,((s,a)=>{const c=me(n,l,a);c!==s&&(_(Z[e],[n,l,a],c,s,Ce),t=r=o=1)})),o&&_(X[e],[n,l],Ce)})),r&&_(V[e],[n],Ce)})),t&&_(Q[e],[],Ce)}},Ie=()=>m(K,(e=>m(e,m))),ve=()=>S(K),Ee=e=>S(I(K,e)),Je=(e,t)=>S(I(I(K,e),t)),me=(e,t,s)=>I(I(I(K,e),t),s),ze=e=>((e=>G(e,se))(e)&&ke((()=>ae(e))),Fe),Oe=()=>(ke((()=>ae({}))),Fe),ke=e=>{if(-1==a)return;a++;const t=e();return a--,0==a&&(a=1,Se(1),a=-1,Se(0),a=0,l([O,c,u,f],p)),t},Fe={getTables:Ie,getTableIds:ve,getTable:e=>m(I(K,e),m),getRowIds:Ee,getRow:(e,t)=>m(I(I(K,e),t)),getCellIds:Je,getCell:me,hasTable:e=>w(K,e),hasRow:(e,t)=>w(I(K,e),t),hasCell:(e,t,s)=>w(I(I(K,e),t),s),getJson:()=>d(K),getSchemaJson:()=>d(k),setTables:ze,setTable:(e,t)=>(se(t,e)&&ke((()=>ce(e,t))),Fe),setRow:(e,t,s)=>(ne(e,s)&&ue(e,t,s),Fe),addRow:(e,t)=>{let s;return ne(e,t)&&(s=he(I(K,e)),ue(e,s,t)),s},setPartialRow:(e,t,s)=>(ne(e,s,1)&&ke((()=>{const n=be(e);x(s,((s,r)=>fe(e,n,t,r,s)))})),Fe),setCell:(t,s,n,l)=>(b(re(t,n,e(l)==r?l(me(t,s,n)):l),(e=>ke((()=>fe(t,be(t),s,n,e))))),Fe),setJson:e=>{try{"{}"===e?Oe():ze(i(e))}catch{}return Fe},setSchema:e=>{if((t=(e=>G(e,(e=>G(e,(e=>{if(!G(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!g(t)&&t!=n||(D(e.default)!=t&&j(e,"default"),0))})))))(e))&&(oe(e),!T(K))){const e=Ie();Oe(),ze(e)}return Fe},delTables:Oe,delTable:e=>(w(K,e)&&ke((()=>ge(e))),Fe),delRow:(e,t)=>(b(I(K,e),(s=>{w(s,t)&&ke((()=>we(e,s,t)))})),Fe),delCell:(e,t,s,n)=>(b(I(K,e),(r=>b(I(r,t),(l=>{w(l,s)&&ke((()=>Te(e,r,t,l,s,n)))})))),Fe),delSchema:()=>(oe({}),t=!1,Fe),transaction:ke,forEachTable:e=>L(K,((t,s)=>e(s,(e=>L(t,((t,s)=>e(s,(e=>v(t,e))))))))),forEachRow:(e,t)=>L(I(K,e),((e,s)=>t(s,(t=>v(e,t))))),forEachCell:(e,t,s)=>v(I(I(K,e),t),s),addTablesListener:(e,t)=>$(e,Q[t?1:0]),addTableIdsListener:(e,t)=>$(e,U[t?1:0]),addTableListener:(e,t,s)=>$(t,V[s?1:0],[e]),addRowIdsListener:(e,t,s)=>$(t,W[s?1:0],[e]),addRowListener:(e,t,s,n)=>$(s,X[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>$(s,Y[n?1:0],[e,t]),addCellListener:(e,t,s,n,r)=>$(n,Z[r?1:0],[e,t,s]),callListener:e=>(te(e,[ve,Ee,Je],(e=>h(e[2])?[]:[,,].fill(me(...e)))),Fe),delListener:e=>(ee(e),Fe),getListenerStats:()=>({})};return M(Fe)};export{K as createStore};
package/lib/store.js.gz CHANGED
Binary file
package/lib/tinybase.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This everything.
2
+ * This is everything.
3
3
  *
4
4
  * @packageDocumentation
5
5
  */
@@ -9,6 +9,5 @@ export * from './common';
9
9
  export * from './indexes';
10
10
  export * from './metrics';
11
11
  export * from './persisters';
12
- export * from './react';
13
12
  export * from './relationships';
14
13
  export * from './store';
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- import{promises as e,watch as t}from"fs";import o from"react";const s=e=>typeof e,n=s(""),r=s(!0),d=s(0),a=s(s),i=(e,t)=>e.includes(t),l=(e,t)=>e.every(((o,s)=>0==s||t(e[s-1],o)<=0)),c=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),I=(e,t)=>e.map(t),p=e=>b(e,((e,t)=>e+t),0),g=e=>e.length,w=e=>0==g(e),b=(e,t,o)=>e.reduce(t,o),h=e=>e.slice(1),v=e=>JSON.stringify(e,((e,t)=>m(t,Map)?b([...t],((e,[t,o])=>(e[t]=o,e)),{}):t)),C=JSON.parse,L=Math.max,R=Math.min,f=isFinite,m=(e,t)=>e instanceof t,y=e=>null==e,k=(e,t,o)=>y(e)?o?.():t(e),T=e=>e==n||e==r,S=e=>s(e)==n,x=e=>s(e)==a,M=()=>{},A=e=>e.size,P=(e,t)=>e?.has(t)??!1,E=e=>y(e)||0==A(e),B=e=>[...e?.values()??[]],D=e=>e.clear(),J=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),z=e=>new Map(e),N=(e=z)=>[e(),e()],O=e=>[...e?.keys()??[]],j=(e,t)=>e?.get(t),$=(e,t)=>J(e,((e,o)=>t(o,e))),H=(e,t,o)=>y(o)?(F(e,t),e):e?.set(t,o),W=(e,t,o,s)=>(P(e,t)||(s?.(o),e.set(t,o)),j(e,t)),q=(e,t)=>{const o={},s=t??(e=>e);return J(e,((e,t)=>o[t]=s(e))),o},G=(e,t)=>{const o=z(),s=t??(e=>e);return J(e,((e,t)=>o.set(t,s(e)))),o},K=e=>new Set(e),Q=(e,t)=>e?.add(t),U=(e,t,o)=>{const s=e.hasRow,n=z(),r=z(),d=z(),a=z(),i=z(),l=t=>k(j(i,t),(o=>{J(o,e.delListener),H(i,t)})),c=e=>{H(n,e),H(r,e),H(d,e),H(a,e),l(e)};return[()=>e,()=>O(n),e=>j(n,e),e=>j(r,e),(e,t)=>H(r,e,t),(c,I,p,g,w)=>{const b=z(),h=z();H(n,c,I),P(r,c)||(H(r,c,t()),H(d,c,z()),H(a,c,z()));const v=j(d,c),C=j(a,c),L=t=>{const n=o=>e.getCell(I,t,o),r=j(v,t),d=s(I,t)?o(g(n,t)):void 0;if(r!=d&&H(b,t,[r,d]),!y(w)){const e=j(C,t),o=s(I,t)?w(n,t):void 0;e!=o&&H(h,t,o)}},R=e=>{p((()=>{J(b,(([,e],t)=>H(v,t,e))),J(h,((e,t)=>H(C,t,e)))}),b,h,v,C,e),D(b),D(h)};$(v,L),e.hasTable(I)&&u(e.getRowIds(I),(e=>{P(v,e)||L(e)})),R(!0),l(c),H(i,c,K([e.addRowListener(I,null,((e,t,o)=>L(o))),e.addTableListener(I,(()=>R()))]))},c,()=>$(i,c)]},V=(e,t)=>S(e)?t=>t(e):e??(()=>t??""),X=e=>{const t=new WeakMap;return o=>(t.has(o)||t.set(o,e(o)),t.get(o))},Y=(e,t,o)=>g(o)<2?Q(w(o)?e:W(e,o[0],K()),t):Y(W(e,o[0],z()),t,h(o)),Z=e=>{const t=(o,s,...n)=>k(o,(o=>w(n)?e(o,s):u([n[0],null],(e=>t(j(o,e),s,...h(n))))));return t},_=e=>{let t,o=0;const s=[],n=z();return[(r,d,a=[])=>{t??(t=e());const i=s.pop()??""+o++;return H(n,i,[r,d,a]),Y(d,i,a),i},(e,o=[],...s)=>Z(J)(e,(e=>k(j(n,e),(([e])=>e(t,...o,...s)))),...o),e=>k(j(n,e),(([,t,o])=>(Z(F)(t,e,...o),H(n,e),g(s)<1e3&&s.push(e),o)),(()=>[])),(e,o,s)=>k(j(n,e),(([e,,n])=>{const r=(...d)=>{const a=g(d);a==g(n)?e(t,...d,...s(d)):y(n[a])?u(o[a](...d),(e=>r(...d,e))):r(...d,n[a])};r()}))]},ee=Object,te=ee.keys,oe=ee.isFrozen,se=ee.freeze,ne=(e,t)=>k(e,(e=>e[t])),re=(e,t)=>!y(ne(e,t)),de=(e,t)=>delete e[t],ae=(e,t)=>u(ee.entries(e),(([e,o])=>t(o,e))),ie=X((e=>{let t,o,s,n=100,r=z(),d=1;const a=K(),l=z(),[c,I,p]=_((()=>F)),b=z(),h=z(),v=[],C=[],L=(t,o)=>{d=0,e.transaction((()=>J(j(b,o),((o,s)=>J(o,((o,n)=>J(o,((o,r)=>y(o[t])?e.delCell(s,n,r,!0):e.setCell(s,n,r,o[t]))))))))),d=1},R=e=>{H(b,e),H(h,e),I(l,[e])},f=(e,t)=>u(((e,t)=>e.splice(0,t))(e,t??g(e)),R),m=()=>f(v,g(v)-n),T=e.addCellListener(null,null,null,((e,o,n,a,i,l)=>{if(d){k(t,(()=>{v.push(t),m(),f(C),t=void 0,s=1}));const e=W(r,o,z()),d=W(e,n,z()),c=W(d,a,[void 0,void 0],(e=>e[0]=l));c[1]=i,c[0]===c[1]&&E(H(d,a))&&E(H(e,n))&&E(H(r,o))&&(t=v.pop(),s=1),A()}})),S=(e="")=>(y(t)&&(t=""+o++,H(b,t,r),D(t,e),r=z(),s=1),t),x=()=>{w(v)||(C.unshift(S()),L(0,t),t=v.pop(),s=1)},M=()=>{w(C)||(v.push(t),t=C.shift(),L(1,t),s=1)},A=()=>{s&&(I(a),s=0)},B=e=>{const t=S(e);return A(),t},D=(e,t)=>(P(b,e)&&j(h,e)!==t&&(H(h,e,t),I(l,[e])),F),F={setSize:e=>(n=e,m(),F),addCheckpoint:B,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...C]],getCheckpoint:e=>j(h,e),goBackward:()=>(x(),A(),F),goForward:()=>(M(),A(),F),goTo:e=>{const o=i(v,e)?x:i(C,e)?M:null;for(;!y(o)&&e!=t;)o();return A(),F},addCheckpointIdsListener:e=>c(e,a),addCheckpointListener:(e,t)=>c(t,l,[e]),delListener:e=>(p(e),F),clear:()=>(f(v),f(C),y(t)||R(t),t=void 0,o=0,B(),F),destroy:()=>{e.delListener(T)},getListenerStats:()=>({})};return se(F.clear())})),le=X((e=>{const t=z(),o=z(),[s,n,r,d,a,i,u,I]=U(e,z,(e=>y(e)?"":e+"")),[p,g,w]=_((()=>b)),b={setIndexDefinition:(e,s,n,r,u,I=ce)=>{const p=y(u)?void 0:([e],[t])=>u(e,t);return i(e,s,((s,n,i,u,w)=>{let b=0;const h=K(),v=K(),C=d(e);if(J(n,(([e,t],o)=>{y(e)||(Q(h,e),k(j(C,e),(t=>{F(t,o),E(t)&&(H(C,e),b=1)}))),y(t)||(Q(h,t),P(C,t)||(H(C,t,K()),b=1),Q(j(C,t),o),y(r)||Q(v,t))})),s(),$(i,(e=>k(j(u,e),(e=>Q(v,e))))),E(w)||J(v,(e=>{const t=(t,o)=>I(j(w,t),j(w,o),e),o=[...j(C,e)];l(o,t)||(H(C,e,K(c(o,t))),Q(h,e))})),b){if(!y(p)){const t=[...C];l(t,p)||a(e,z(c(t,p)))}g(t,[e])}J(h,(t=>g(o,[e,t])))}),V(n),k(r,V)),b},delIndexDefinition:e=>(u(e),b),getStore:s,getIndexIds:n,getTableId:r,getSliceIds:e=>O(d(e)),getSliceRowIds:(e,t)=>B(j(d(e),t)),addSliceIdsListener:(e,o)=>p(o,t,[e]),addSliceRowIdsListener:(e,t,s)=>p(s,o,[e,t]),delListener:e=>(w(e),b),destroy:I,getListenerStats:()=>({})};return se(b)})),ce=(e,t)=>e<t?-1:1,ue=z([["avg",[(e,t)=>p(e)/t,(e,t,o)=>e+(t-e)/(o+1),(e,t,o)=>e+(e-t)/(o-1),(e,t,o,s)=>e+(t-o)/s]],["max",[e=>L(...e),(e,t)=>L(t,e),(e,t)=>t==e?void 0:e,(e,t,o)=>o==e?void 0:L(t,e)]],["min",[e=>R(...e),(e,t)=>R(t,e),(e,t)=>t==e?void 0:e,(e,t,o)=>o==e?void 0:R(t,e)]],["sum",[e=>p(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,o)=>e-o+t]]]),Ie=X((e=>{const t=z(),[o,s,n,r,d,a,i,l]=U(e,M,(e=>isNaN(e)||y(e)||!0===e||!1===e||""===e?void 0:1*e)),[c,u,I]=_((()=>p)),p={setMetricDefinition:(e,o,s,n,i,l,c)=>{const I=x(s)?[s,i,l,c]:j(ue,s)??j(ue,"sum");return a(e,o,((o,s,n,a,i,l)=>{let c=r(e),p=A(a);const[g,w,b,h]=I;l=l||y(c),J(s,(([e,t])=>{l||(c=y(e)?w?.(c,t,p++):y(t)?b?.(c,e,p--):h?.(c,t,e,p)),l=l||y(c)})),o(),E(a)?c=void 0:l&&(c=g(B(a),A(a))),f(c)||(c=void 0);const v=r(e);c!=v&&(d(e,c),u(t,[e],c,v))}),V(n,1)),p},delMetricDefinition:e=>(i(e),p),getStore:o,getMetricIds:s,getTableId:n,getMetric:r,addMetricListener:(e,o)=>c(o,t,[e]),delListener:e=>(I(e),p),destroy:l,getListenerStats:()=>({})};return se(p)})),pe=(e,t,o,s,n)=>{let r,d=0;const a={load:async o=>{if(2!=d){d=1;const s=await t();y(s)||""==s?e.setTables(o):e.setJson(s),d=0}return a},startAutoLoad:async e=>(a.stopAutoLoad(),await a.load(e),s(a.load),a),stopAutoLoad:()=>(n(),a),save:async()=>(1!=d&&(d=2,await o(e.getJson()),d=0),a),startAutoSave:async()=>(await a.stopAutoSave().save(),r=e.addTablesListener((()=>a.save())),a),stopAutoSave:()=>(k(r,e.delListener),a),getStore:()=>e,destroy:()=>a.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return se(a)},ge=window,we=(e,t,o)=>{let s;return pe(e,(async()=>o.getItem(t)),(async e=>o.setItem(t,e)),(e=>{s=s=>{s.storageArea===o&&s.key===t&&e()},ge.addEventListener("storage",s)}),(()=>{ge.removeEventListener("storage",s),s=void 0}))},be=(e,t)=>we(e,t,localStorage),he=(e,t)=>we(e,t,sessionStorage),ve=(o,s)=>{let n;return pe(o,(async()=>{try{return await e.readFile(s,"utf8")}catch{}}),(async t=>{try{await e.writeFile(s,t,"utf8")}catch{}}),(e=>{n=t(s,e)}),(()=>{n?.close(),n=void 0}))},Ce=e=>e.headers.get("ETag"),Le=(e,t,o,s)=>{let n,r;return pe(e,(async()=>{const e=await fetch(t);return r=Ce(e),e.text()}),(async e=>await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{n=setInterval((async()=>{const o=await fetch(t,{method:"HEAD"}),s=Ce(o);y(r)||y(s)||s==r||(r=s,e())}),1e3*s)}),(()=>{k(n,clearInterval),n=void 0}))},{createContext:Re,useContext:fe}=o??{},me=Re?.([]),ye=(e,t)=>{const o=fe(me);return y(e)?o[t]:ne(o[t+1],e)},ke=(e,t)=>{const o=ye(e,t);return y(e)||S(e)?o:e},Te=e=>ye(e,0),Se=e=>ye(e,2),xe=e=>ye(e,4),Me=e=>ye(e,6),Ae=e=>ye(e,8),Pe=e=>ke(e,0),Ee=e=>ke(e,2),Be=e=>ke(e,4),De=e=>ke(e,6),Je=e=>ke(e,8),{useCallback:Fe,useEffect:ze,useMemo:Ne,useState:Oe}=o??{},je=(e,t,o=[])=>Ne((()=>t(e)),[e,...o]),$e=(e,t,o,...s)=>{const n=t?.["get"+e]??(()=>o),r=n(...s),[,d]=Oe(r);return ze((()=>{const o=t?.[`add${e}Listener`]?.(...s,(()=>d(n(...s))),!1);return()=>t?.delListener(o)}),[t,e,d,n,...s]),r},He=(e,t,o,s=[],n,...r)=>{ze((()=>{const s=t?.[`add${e}Listener`]?.(...r,o,n);return()=>t?.delListener(s)}),[t,e,...s,n,...r])},We=(e,t,o,s=[],n=M,r=[],...d)=>{const a=Pe(e);return Fe((e=>k(a,(s=>k(o(e,s),(e=>n(s["set"+t](...d,e),e)))))),[a,t,...s,...r,...d])},qe=(e,t,o=M,s=[],...n)=>{const r=Pe(e);return Fe((()=>o(r?.["del"+t](...n))),[r,t,...s,...n])},Ge=(e,t,o)=>{const s=Je(e);return Fe((()=>s?.[t](o)),[s,t,o])},Ke=(e,t=[])=>Ne(e,t),Qe=e=>$e("Tables",Pe(e),{}),Ue=e=>$e("TableIds",Pe(e),[]),Ve=(e,t)=>$e("Table",Pe(t),{},e),Xe=(e,t)=>$e("RowIds",Pe(t),[],e),Ye=(e,t,o)=>$e("Row",Pe(o),{},e,t),Ze=(e,t,o)=>$e("CellIds",Pe(o),[],e,t),_e=(e,t,o,s)=>$e("Cell",Pe(s),void 0,e,t,o),et=(e,t,o,s,n)=>We(o,"Tables",e,t,s,n),tt=(e,t,o,s,n,r)=>We(s,"Table",t,o,n,r,e),ot=(e,t,o,s,n,r,d)=>We(n,"Row",o,s,r,d,e,t),st=(e,t,o=[],s,n=M,r=[])=>{const d=Pe(s);return Fe((o=>k(d,(s=>k(t(o,s),(t=>n(s.addRow(e,t),s,t)))))),[d,e,...o,...r])},nt=(e,t,o,s,n,r,d)=>We(n,"PartialRow",o,s,r,d,e,t),rt=(e,t,o,s,n,r,d,a)=>We(r,"Cell",s,n,d,a,e,t,o),dt=(e,t,o)=>qe(e,"Tables",t,o),at=(e,t,o,s)=>qe(t,"Table",o,s,e),it=(e,t,o,s,n)=>qe(o,"Row",s,n,e,t),lt=(e,t,o,s,n,r,d)=>qe(n,"Cell",r,d,e,t,o,s),ct=(e,t,o,s)=>He("Tables",Pe(s),e,t,o),ut=(e,t,o,s)=>He("TableIds",Pe(s),e,t,o),It=(e,t,o,s,n)=>He("Table",Pe(n),t,o,s,e),pt=(e,t,o,s,n)=>He("RowIds",Pe(n),t,o,s,e),gt=(e,t,o,s,n,r)=>He("Row",Pe(r),o,s,n,e,t),wt=(e,t,o,s,n,r)=>He("CellIds",Pe(r),o,s,n,e,t),bt=(e,t,o,s,n,r,d)=>He("Cell",Pe(d),s,n,r,e,t,o),ht=(e,t,o)=>je(e,t,o),vt=(e,t)=>$e("Metric",Ee(t),void 0,e),Ct=(e,t,o,s)=>He("Metric",Ee(s),t,o,void 0,e),Lt=(e,t,o)=>je(e,t,o),Rt=(e,t)=>$e("SliceIds",Be(t),[],e),ft=(e,t,o)=>$e("SliceRowIds",Be(o),[],e,t),mt=(e,t,o,s)=>He("SliceIds",Be(s),t,o,void 0,e),yt=(e,t,o,s,n)=>He("SliceRowIds",Be(n),o,s,void 0,e,t),kt=(e,t,o)=>je(e,t,o),Tt=(e,t,o)=>$e("RemoteRowId",De(o),void 0,e,t),St=(e,t,o)=>$e("LocalRowIds",De(o),[],e,t),xt=(e,t,o)=>$e("LinkedRowIds",De(o),[],e,t),Mt=(e,t,o,s,n)=>He("RemoteRowId",De(n),o,s,void 0,e,t),At=(e,t,o,s,n)=>He("LocalRowIds",De(n),o,s,void 0,e,t),Pt=(e,t,o,s,n)=>He("LinkedRowIds",De(n),o,s,void 0,e,t),Et=(e,t,o)=>je(e,t,o),Bt=e=>$e("CheckpointIds",Je(e),[[],void 0,[]]),Dt=(e,t)=>$e("Checkpoint",Je(t),void 0,e),Jt=(e=M,t=[],o,s=M,n=[])=>{const r=Je(o);return Fe((t=>k(r,(o=>{const n=e(t);s(o.addCheckpoint(n),o,n)}))),[r,...t,...n])},Ft=e=>Ge(e,"goBackward"),zt=e=>Ge(e,"goForward"),Nt=(e,t=[],o,s=M,n=[])=>{const r=Je(o);return Fe((t=>k(r,(o=>k(e(t),(e=>s(o.goTo(e),e)))))),[r,...t,...n])},Ot=e=>{const t=Je(e),[o,s]=Bt(t);return[!w(o),Ft(t),s,k(s,(e=>t?.getCheckpoint(e)))??""]},jt=e=>{const t=Je(e),[,,[o]]=Bt(t);return[!y(o),zt(t),o,k(o,(e=>t?.getCheckpoint(e)))??""]},$t=(e,t,o)=>He("CheckpointIds",Je(o),e,t),Ht=(e,t,o,s)=>He("Checkpoint",Je(s),t,o,void 0,e),Wt=(e,t,o=[],s,n=[])=>{const[,r]=Oe(),d=Ne((()=>t(e)),[e,...o]);return ze((()=>{(async()=>{await(s?.(d)),r(1)})()}),[d,...n]),d},{createElement:qt,useMemo:Gt}=o??{},Kt=e=>{const t=De(e);return[t,t?.getStore()]},Qt=({relationshipId:e,relationships:t,rowComponent:o=_t,getRowComponentProps:s,separator:n,debugIds:r},d,a)=>{const[i,l]=Kt(t),c=i?.getLocalTableId(e),u=d(e,a,i);return Yt(I(u,(e=>qt(o,{...Vt(s,e),key:e,tableId:c,rowId:e,store:l,debugIds:r}))),n,r,a)},Ut=e=>({checkpoints:t,checkpointComponent:o=lo,getCheckpointComponentProps:s,separator:n,debugIds:r})=>{const d=Je(t);return Yt(I(e(Bt(d)),(e=>qt(o,{...Vt(s,e),key:e,checkpoints:d,checkpointId:e,debugIds:r}))),n)},Vt=(e,t)=>y(e)?{}:e(t),Xt=({store:e,storesById:t,metrics:o,metricsById:s,indexes:n,indexesById:r,relationships:d,relationshipsById:a,checkpoints:i,checkpointsById:l,children:c})=>qt(me.Provider,{value:Gt((()=>[e,t,o,s,n,r,d,a,i,l]),[e,t,o,s,n,r,d,a,i,l])},c),Yt=(e,t,o,s)=>{const n=y(t)||!Array.isArray(e)?e:I(e,((e,o)=>o>0?[t,e]:e));return o?[s,":{",n,"}"]:n},Zt=({tableId:e,rowId:t,cellId:o,store:s,debugIds:n})=>Yt(""+(_e(e,t,o,s)??""),void 0,n,o),_t=({tableId:e,rowId:t,store:o,cellComponent:s=Zt,getCellComponentProps:n,separator:r,debugIds:d})=>Yt(I(Ze(e,t,o),(r=>qt(s,{...Vt(n,r),key:r,tableId:e,rowId:t,cellId:r,store:o,debugIds:d}))),r,d,t),eo=({tableId:e,store:t,rowComponent:o=_t,getRowComponentProps:s,separator:n,debugIds:r})=>Yt(I(Xe(e,t),(n=>qt(o,{...Vt(s,n),key:n,tableId:e,rowId:n,store:t,debugIds:r}))),n,r,e),to=({store:e,tableComponent:t=eo,getTableComponentProps:o,separator:s,debugIds:n})=>Yt(I(Ue(e),(s=>qt(t,{...Vt(o,s),key:s,tableId:s,store:e,debugIds:n}))),s),oo=({metricId:e,metrics:t,debugIds:o})=>Yt(vt(e,t)??"",void 0,o,e),so=({indexId:e,sliceId:t,indexes:o,rowComponent:s=_t,getRowComponentProps:n,separator:r,debugIds:d})=>{const a=Be(o),i=a?.getStore(),l=a?.getTableId(e),c=ft(e,t,a);return Yt(I(c,(e=>qt(s,{...Vt(n,e),key:e,tableId:l,rowId:e,store:i,debugIds:d}))),r,d,t)},no=({indexId:e,indexes:t,sliceComponent:o=so,getSliceComponentProps:s,separator:n,debugIds:r})=>Yt(I(Rt(e,t),(n=>qt(o,{...Vt(s,n),key:n,indexId:e,sliceId:n,indexes:t,debugIds:r}))),n,r,e),ro=({relationshipId:e,localRowId:t,relationships:o,rowComponent:s=_t,getRowComponentProps:n,debugIds:r})=>{const[d,a]=Kt(o),i=d?.getRemoteTableId(e),l=Tt(e,t,d);return Yt(y(i)||y(l)?null:qt(s,{...Vt(n,l),key:l,tableId:i,rowId:l,store:a,debugIds:r}),void 0,r,t)},ao=e=>Qt(e,St,e.remoteRowId),io=e=>Qt(e,xt,e.firstRowId),lo=({checkpoints:e,checkpointId:t,debugIds:o})=>Yt(Dt(t,e)??"",void 0,o,t),co=Ut((e=>e[0])),uo=Ut((e=>y(e[1])?[]:[e[1]])),Io=Ut((e=>e[2])),po=X((e=>{const t=z(),o=z(),s=z(),n=z(),[r,d,a,i,l,c,u,I]=U(e,(()=>[z(),z(),z(),z()]),(e=>y(e)?void 0:e+"")),[p,g,w]=_((()=>C)),b=(e,t,o)=>k(i(e),(([s,,n])=>{if(!P(n,t)){const r=K();if(a(e)!=v(e))Q(r,t);else{let e=t;for(;!y(e)&&!P(r,e);)Q(r,e),e=j(s,e)}if(o)return r;H(n,t,r)}return j(n,t)})),h=(e,t)=>k(i(e),(([,,e])=>H(e,t))),v=e=>j(t,e),C={setRelationshipDefinition:(e,r,d,a)=>(H(t,e,d),c(e,r,((t,r)=>{const d=K(),a=K(),l=K(),[c,u]=i(e);J(r,(([t,o],s)=>{y(t)||(Q(a,t),k(j(u,t),(e=>{F(e,s),E(e)&&H(u,t)}))),y(o)||(Q(a,o),P(u,o)||H(u,o,K()),Q(j(u,o),s)),Q(d,s),H(c,s,o),$(j(n,e),(t=>{P(b(e,t),s)&&Q(l,t)}))})),t(),J(d,(t=>g(o,[e,t]))),J(a,(t=>g(s,[e,t]))),J(l,(t=>{h(e,t),g(n,[e,t])}))}),V(a)),C),delRelationshipDefinition:e=>(H(t,e),u(e),C),getStore:r,getRelationshipIds:d,getLocalTableId:a,getRemoteTableId:v,getRemoteRowId:(e,t)=>j(i(e)?.[0],t),getLocalRowIds:(e,t)=>B(j(i(e)?.[1],t)),getLinkedRowIds:(e,t)=>y(i(e))?[t]:B(b(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>p(s,o,[e,t]),addLocalRowIdsListener:(e,t,o)=>p(o,s,[e,t]),addLinkedRowIdsListener:(e,t,o)=>(b(e,t),p(o,n,[e,t])),delListener:e=>(h(...w(e)),C),destroy:I,getListenerStats:()=>({})};return se(C)})),go=(e,t,o,s=H)=>{const n=(r=O(e),d=e=>!re(t,e),r.filter(d));var r,d;return u(te(t),(s=>o(e,s,t[s]))),u(n,(t=>s(e,t))),e},wo=e=>{const t=s(e);return T(t)||t==d&&f(e)?t:void 0},bo=(e,t)=>!(y(e)||!(e=>m(e,ee)&&e.constructor==ee)(e)||oe(e))&&(ae(e,((o,s)=>{t(o,s)||de(e,s)})),!(e=>w(te(e)))(e)),ho=(e,t,o)=>H(e,t,j(e,t)==-o?void 0:o),vo=()=>{let e,t=0,o=0;const s=z(),n=z(),r=z(),a=z(),l=z(),c=z(),I=z(),p=N(K),g=N(K),w=N(),b=N(),h=N(),L=N(),R=N(),[f,m,S,M]=_((()=>ke)),A=(t,o)=>(!e||P(l,o))&&bo(t,(e=>B(o,e))),B=(e,t,o)=>bo(o?t:Q(t,e),((o,s)=>k(F(e,s,o),(e=>(t[s]=e,!0)),(()=>!1)))),F=(t,o,s)=>e?k(j(j(l,t),o),(e=>wo(s)!=e.type?e.default:s)):y(wo(s))?void 0:s,Q=(e,t)=>(k(j(c,t),(t=>ae(t,((t,o)=>{re(e,o)||(e[o]=t)})))),e),U=e=>go(l,e,((e,t,o)=>{const s={};go(W(l,t,z()),o,((e,t,o)=>{H(e,t,o),k(o.default,(e=>s[t]=e))})),H(c,t,s)}),((e,t)=>{H(l,t),H(c,t)})),V=e=>go(I,e,((e,t,o)=>X(t,o)),((e,t)=>ie(t))),X=(e,t)=>go(W(I,e,z(),(()=>ue(e,1))),t,((t,o,s)=>Y(e,t,o,s)),((t,o)=>le(e,t,o))),Y=(e,t,o,s,n)=>go(W(t,o,z(),(()=>Ie(e,o,1))),s,((t,s,n)=>Z(e,o,t,s,n)),((s,r)=>ce(e,t,o,s,r,n))),Z=(e,t,o,s,n)=>{P(o,s)||pe(e,t,s,1);const r=j(o,s);n!==r&&(ge(e,t,s,r),H(o,s,n))},ee=(e,t,o)=>ye((()=>Y(e,ne(e),t,o))),te=(e,t,o,s,n)=>k(j(t,o),(t=>Z(e,o,t,s,n)),(()=>Y(e,t,o,Q({[s]:n},e)))),oe=e=>{const o=""+t++;return P(e,o)?oe(e):o},ne=e=>j(I,e)??X(e,{}),ie=e=>X(e,{}),le=(e,t,o)=>Y(e,t,o,{},!0),ce=(e,t,o,s,n,r)=>{const d=j(c,e)?.[n];if(!y(d)&&!r)return Z(e,o,s,n,d);const a=t=>{ge(e,o,t,j(s,t)),pe(e,o,t,-1),H(s,t)};y(d)?a(n):$(s,a),E(s)&&(Ie(e,o,-1),E(H(t,o))&&(ue(e,-1),H(I,e)))},ue=(e,t)=>ho(s,e,t),Ie=(e,t,o)=>ho(W(n,e,z()),t,o),pe=(e,t,o,s)=>ho(W(W(r,e,z()),t,z()),o,s),ge=(e,t,o,s)=>W(W(W(a,e,z()),t,z()),o,s),we=(e,t,o)=>{const s=j(j(a,e),t),n=Re(e,t,o);return P(s,o)?[!0,j(s,o),n]:[!1,n,n]},be=e=>{const t=E(L[e])&&E(b[e])&&E(g[e]),o=E(R[e])&&E(h[e])&&E(w[e])&&E(p[e]);if(t&&o)return;const d=e?[G(s),G(n,G),G(r,(e=>G(e,G))),G(a,(e=>G(e,G)))]:[s,n,r,a];if(t||(J(d[2],((t,o)=>J(t,((t,s)=>{E(t)||m(L[e],[o,s])})))),J(d[1],((t,o)=>{E(t)||m(b[e],[o])})),E(d[0])||m(g[e])),!o){let t;J(d[3],((o,s)=>{let n;J(o,((o,r)=>{let d;J(o,((o,a)=>{const i=Re(s,r,a);i!==o&&(m(R[e],[s,r,a],i,o,we),t=n=d=1)})),d&&m(h[e],[s,r],we)})),n&&m(w[e],[s],we)})),t&&m(p[e],[],we)}},he=()=>q(I,(e=>q(e,q))),ve=()=>O(I),Ce=e=>O(j(I,e)),Le=(e,t)=>O(j(j(I,e),t)),Re=(e,t,o)=>j(j(j(I,e),t),o),fe=e=>((e=>bo(e,A))(e)&&ye((()=>V(e))),ke),me=()=>(ye((()=>V({}))),ke),ye=e=>{if(-1==o)return;o++;const t=e();return o--,0==o&&(o=1,be(1),o=-1,be(0),o=0,u([a,s,n,r],D)),t},ke={getTables:he,getTableIds:ve,getTable:e=>q(j(I,e),q),getRowIds:Ce,getRow:(e,t)=>q(j(j(I,e),t)),getCellIds:Le,getCell:Re,hasTable:e=>P(I,e),hasRow:(e,t)=>P(j(I,e),t),hasCell:(e,t,o)=>P(j(j(I,e),t),o),getJson:()=>v(I),getSchemaJson:()=>v(l),setTables:fe,setTable:(e,t)=>(A(t,e)&&ye((()=>X(e,t))),ke),setRow:(e,t,o)=>(B(e,o)&&ee(e,t,o),ke),addRow:(e,t)=>{let o;return B(e,t)&&(o=oe(j(I,e)),ee(e,o,t)),o},setPartialRow:(e,t,o)=>(B(e,o,1)&&ye((()=>{const s=ne(e);ae(o,((o,n)=>te(e,s,t,n,o)))})),ke),setCell:(e,t,o,s)=>(k(F(e,o,x(s)?s(Re(e,t,o)):s),(s=>ye((()=>te(e,ne(e),t,o,s))))),ke),setJson:e=>{try{"{}"===e?me():fe(C(e))}catch{}return ke},setSchema:t=>{if((e=(e=>bo(e,(e=>bo(e,(e=>{if(!bo(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!T(t)&&t!=d||(wo(e.default)!=t&&de(e,"default"),0))})))))(t))&&(U(t),!E(I))){const e=he();me(),fe(e)}return ke},delTables:me,delTable:e=>(P(I,e)&&ye((()=>ie(e))),ke),delRow:(e,t)=>(k(j(I,e),(o=>{P(o,t)&&ye((()=>le(e,o,t)))})),ke),delCell:(e,t,o,s)=>(k(j(I,e),(n=>k(j(n,t),(r=>{P(r,o)&&ye((()=>ce(e,n,t,r,o,s)))})))),ke),delSchema:()=>(U({}),e=!1,ke),transaction:ye,forEachTable:e=>J(I,((t,o)=>e(o,(e=>J(t,((t,o)=>e(o,(e=>$(t,e))))))))),forEachRow:(e,t)=>J(j(I,e),((e,o)=>t(o,(t=>$(e,t))))),forEachCell:(e,t,o)=>$(j(j(I,e),t),o),addTablesListener:(e,t)=>f(e,p[t?1:0]),addTableIdsListener:(e,t)=>f(e,g[t?1:0]),addTableListener:(e,t,o)=>f(t,w[o?1:0],[e]),addRowIdsListener:(e,t,o)=>f(t,b[o?1:0],[e]),addRowListener:(e,t,o,s)=>f(o,h[s?1:0],[e,t]),addCellIdsListener:(e,t,o,s)=>f(o,L[s?1:0],[e,t]),addCellListener:(e,t,o,s,n)=>f(s,R[n?1:0],[e,t,o]),callListener:e=>(M(e,[ve,Ce,Le],(e=>y(e[2])?[]:[,,].fill(Re(...e)))),ke),delListener:e=>(S(e),ke),getListenerStats:()=>({})};return se(ke)};export{co as BackwardCheckpointsView,Zt as CellView,lo as CheckpointView,uo as CurrentCheckpointView,Io as ForwardCheckpointsView,no as IndexView,io as LinkedRowsView,ao as LocalRowsView,oo as MetricView,Xt as Provider,ro as RemoteRowView,_t as RowView,so as SliceView,eo as TableView,to as TablesView,ie as createCheckpoints,pe as createCustomPersister,ve as createFilePersister,le as createIndexes,be as createLocalPersister,Ie as createMetrics,po as createRelationships,Le as createRemotePersister,he as createSessionPersister,vo as createStore,ce as defaultSorter,st as useAddRowCallback,_e as useCell,Ze as useCellIds,wt as useCellIdsListener,bt as useCellListener,Dt as useCheckpoint,Bt as useCheckpointIds,$t as useCheckpointIdsListener,Ht as useCheckpointListener,Ae as useCheckpoints,Et as useCreateCheckpoints,Lt as useCreateIndexes,ht as useCreateMetrics,Wt as useCreatePersister,kt as useCreateRelationships,Ke as useCreateStore,lt as useDelCellCallback,it as useDelRowCallback,at as useDelTableCallback,dt as useDelTablesCallback,Ft as useGoBackwardCallback,zt as useGoForwardCallback,Nt as useGoToCallback,xe as useIndexes,xt as useLinkedRowIds,Pt as useLinkedRowIdsListener,St as useLocalRowIds,At as useLocalRowIdsListener,vt as useMetric,Ct as useMetricListener,Se as useMetrics,jt as useRedoInformation,Me as useRelationships,Tt as useRemoteRowId,Mt as useRemoteRowIdListener,Ye as useRow,Xe as useRowIds,pt as useRowIdsListener,gt as useRowListener,rt as useSetCellCallback,Jt as useSetCheckpointCallback,nt as useSetPartialRowCallback,ot as useSetRowCallback,tt as useSetTableCallback,et as useSetTablesCallback,Rt as useSliceIds,mt as useSliceIdsListener,ft as useSliceRowIds,yt as useSliceRowIdsListener,Te as useStore,Ve as useTable,Ue as useTableIds,ut as useTableIdsListener,It as useTableListener,Qe as useTables,ct as useTablesListener,Ot as useUndoInformation};
1
+ import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),r=s(0),a=s(s),i=(e,t)=>e.includes(t),d=(e,t)=>e.every(((s,n)=>0==n||t(e[n-1],s)<=0)),l=(e,t)=>e.sort(t),c=(e,t)=>e.forEach(t),u=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),h=e=>e.slice(1),p=e=>JSON.stringify(e,((e,t)=>S(t,Map)?L([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),w=JSON.parse,v=Math.max,I=Math.min,y=isFinite,S=(e,t)=>e instanceof t,R=e=>null==e,T=(e,t,s)=>R(e)?s?.():t(e),b=e=>e==n||e==o,m=e=>s(e)==a,C=()=>{},k=e=>e.size,A=(e,t)=>e?.has(t)??!1,M=e=>R(e)||0==k(e),E=e=>[...e?.values()??[]],x=e=>e.clear(),D=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),F=e=>new Map(e),z=(e=F)=>[e(),e()],N=e=>[...e?.keys()??[]],O=(e,t)=>e?.get(t),j=(e,t)=>D(e,((e,s)=>t(s,e))),P=(e,t,s)=>R(s)?(J(e,t),e):e?.set(t,s),B=(e,t,s,n)=>(A(e,t)||(n?.(s),e.set(t,s)),O(e,t)),H=(e,t)=>{const s={},n=t??(e=>e);return D(e,((e,t)=>s[t]=n(e))),s},W=(e,t)=>{const s=F(),n=t??(e=>e);return D(e,((e,t)=>s.set(t,n(e)))),s},q=e=>new Set(e),G=(e,t)=>e?.add(t),K=(e,t,s)=>{const n=e.hasRow,o=F(),r=F(),a=F(),i=F(),d=F(),l=t=>T(O(d,t),(s=>{D(s,e.delListener),P(d,t)})),u=e=>{P(o,e),P(r,e),P(a,e),P(i,e),l(e)};return[()=>e,()=>N(o),e=>O(o,e),e=>O(r,e),(e,t)=>P(r,e,t),(u,g,f,L,h)=>{const p=F(),w=F();P(o,u,g),A(r,u)||(P(r,u,t()),P(a,u,F()),P(i,u,F()));const v=O(a,u),I=O(i,u),y=t=>{const o=s=>e.getCell(g,t,s),r=O(v,t),a=n(g,t)?s(L(o,t)):void 0;if(r!=a&&P(p,t,[r,a]),!R(h)){const e=O(I,t),s=n(g,t)?h(o,t):void 0;e!=s&&P(w,t,s)}},S=e=>{f((()=>{D(p,(([,e],t)=>P(v,t,e))),D(w,((e,t)=>P(I,t,e)))}),p,w,v,I,e),x(p),x(w)};j(v,y),e.hasTable(g)&&c(e.getRowIds(g),(e=>{A(v,e)||y(e)})),S(!0),l(u),P(d,u,q([e.addRowListener(g,null,((e,t,s)=>y(s))),e.addTableListener(g,(()=>S()))]))},u,()=>j(d,u)]},Q=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),U=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},V=(e,t,s)=>g(s)<2?G(f(s)?e:B(e,s[0],q()),t):V(B(e,s[0],F()),t,h(s)),X=e=>{const t=(s,n,...o)=>T(s,(s=>f(o)?e(s,n):c([o[0],null],(e=>t(O(s,e),n,...h(o))))));return t},Y=e=>{let t,s=0;const n=[],o=F();return[(r,a,i=[])=>{t??=e();const d=n.pop()??""+s++;return P(o,d,[r,a,i]),V(a,d,i),d},(e,s=[],...n)=>X(D)(e,(e=>T(O(o,e),(([e])=>e(t,...s,...n)))),...s),e=>T(O(o,e),(([,t,s])=>(X(J)(t,e,...s),P(o,e),g(n)<1e3&&n.push(e),s)),(()=>[])),(e,s,n)=>T(O(o,e),(([e,,o])=>{const r=(...a)=>{const i=g(a);i==g(o)?e(t,...a,...n(a)):R(o[i])?c(s[i](...a),(e=>r(...a,e))):r(...a,o[i])};r()}))]},Z=Object,$=Z.keys,_=Z.isFrozen,ee=Z.freeze,te=(e,t)=>!R(((e,t)=>T(e,(e=>e[t])))(e,t)),se=(e,t)=>delete e[t],ne=(e,t)=>c(Z.entries(e),(([e,s])=>t(s,e))),oe=U((e=>{let t,s,n,o=100,r=F(),a=1;const d=q(),l=F(),[u,L,h]=Y((()=>j)),p=F(),w=F(),v=[],I=[],y=(t,s)=>{a=0,e.transaction((()=>D(O(p,s),((s,n)=>D(s,((s,o)=>D(s,((s,r)=>R(s[t])?e.delCell(n,o,r,!0):e.setCell(n,o,r,s[t]))))))))),a=1},S=e=>{P(p,e),P(w,e),L(l,[e])},b=(e,t)=>c(((e,t)=>e.splice(0,t))(e,t??g(e)),S),m=()=>b(v,g(v)-o),C=e.addCellListener(null,null,null,((e,s,o,i,d,l)=>{if(a){T(t,(()=>{v.push(t),m(),b(I),t=void 0,n=1}));const e=B(r,s,F()),a=B(e,o,F()),c=B(a,i,[void 0,void 0],(e=>e[0]=l));c[1]=d,c[0]===c[1]&&M(P(a,i))&&M(P(e,o))&&M(P(r,s))&&(t=v.pop(),n=1),J()}})),k=(e="")=>(R(t)&&(t=""+s++,P(p,t,r),N(t,e),r=F(),n=1),t),E=()=>{f(v)||(I.unshift(k()),y(0,t),t=v.pop(),n=1)},x=()=>{f(I)||(v.push(t),t=I.shift(),y(1,t),n=1)},J=()=>{n&&(L(d),n=0)},z=e=>{const t=k(e);return J(),t},N=(e,t)=>(A(p,e)&&O(w,e)!==t&&(P(w,e,t),L(l,[e])),j),j={setSize:e=>(o=e,m(),j),addCheckpoint:z,setCheckpoint:N,getStore:()=>e,getCheckpointIds:()=>[[...v],t,[...I]],getCheckpoint:e=>O(w,e),goBackward:()=>(E(),J(),j),goForward:()=>(x(),J(),j),goTo:e=>{const s=i(v,e)?E:i(I,e)?x:null;for(;!R(s)&&e!=t;)s();return J(),j},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,l,[e]),delListener:e=>(h(e),j),clear:()=>(b(v),b(I),R(t)||S(t),t=void 0,s=0,z(),j),destroy:()=>{e.delListener(C)},getListenerStats:()=>({})};return ee(j.clear())})),re=(e,t)=>e<t?-1:1,ae=U((e=>{const t=F(),s=F(),[n,o,r,a,i,c,u,g]=K(e,F,(e=>R(e)?"":e+"")),[f,L,h]=Y((()=>p)),p={setIndexDefinition:(e,n,o,r,u,g=re)=>{const f=R(u)?void 0:([e],[t])=>u(e,t);return c(e,n,((n,o,c,u,h,p)=>{let w=0;const v=q(),I=q(),y=a(e);if(D(o,(([e,t],s)=>{R(e)||(G(v,e),T(O(y,e),(t=>{J(t,s),M(t)&&(P(y,e),w=1)}))),R(t)||(G(v,t),A(y,t)||(P(y,t,q()),w=1),G(O(y,t),s),R(r)||G(I,t))})),n(),M(h)||(p?j(y,(e=>G(I,e))):j(c,(e=>T(O(u,e),(e=>G(I,e))))),D(I,(e=>{const t=(t,s)=>g(O(h,t),O(h,s),e),s=[...O(y,e)];d(s,t)||(P(y,e,q(l(s,t))),G(v,e))}))),(w||p)&&!R(f)){const t=[...y];d(t,f)||(i(e,F(l(t,f))),w=1)}w&&L(t,[e]),D(v,(t=>L(s,[e,t])))}),Q(o),T(r,Q)),p},delIndexDefinition:e=>(u(e),p),getStore:n,getIndexIds:o,getTableId:r,getSliceIds:e=>N(a(e)),getSliceRowIds:(e,t)=>E(O(a(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,s,[e,t]),delListener:e=>(h(e),p),destroy:g,getListenerStats:()=>({})};return ee(p)})),ie=F([["avg",[(e,t)=>u(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=>v(...e),(e,t)=>v(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:v(t,e)]],["min",[e=>I(...e),(e,t)=>I(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:I(t,e)]],["sum",[e=>u(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),de=U((e=>{const t=F(),[s,n,o,r,a,i,d,l]=K(e,C,(e=>isNaN(e)||R(e)||!0===e||!1===e||""===e?void 0:1*e)),[c,u,g]=Y((()=>f)),f={setMetricDefinition:(e,s,n,o,d,l,c)=>{const g=m(n)?[n,d,l,c]:O(ie,n)??O(ie,"sum");return i(e,s,((s,n,o,i,d,l)=>{let c=r(e),f=k(i);const[L,h,p,w]=g;l=l||R(c),D(n,(([e,t])=>{l||(c=R(e)?h?.(c,t,f++):R(t)?p?.(c,e,f--):w?.(c,t,e,f)),l=l||R(c)})),s(),M(i)?c=void 0:l&&(c=L(E(i),k(i))),y(c)||(c=void 0);const v=r(e);c!=v&&(a(e,c),u(t,[e],c,v))}),Q(o,1)),f},delMetricDefinition:e=>(d(e),f),getStore:s,getMetricIds:n,getTableId:o,getMetric:r,addMetricListener:(e,s)=>c(s,t,[e]),delListener:e=>(g(e),f),destroy:l,getListenerStats:()=>({})};return ee(f)})),le=(e,t,s,n,o)=>{let r,a=0;const i={load:async s=>{if(2!=a){a=1;const n=await t();R(n)||""==n?e.setTables(s):e.setJson(n),a=0}return i},startAutoLoad:async e=>(i.stopAutoLoad(),await i.load(e),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=a&&(a=2,await s(e.getJson()),a=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),r=e.addTablesListener((()=>i.save())),i),stopAutoSave:()=>(T(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(i)},ce=globalThis.window,ue=(e,t,s)=>{let n;return le(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},ce.addEventListener("storage",n)}),(()=>{ce.removeEventListener("storage",n),n=void 0}))},ge=(e,t)=>ue(e,t,localStorage),fe=(e,t)=>ue(e,t,sessionStorage),Le=(s,n)=>{let o;return le(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}))},he=e=>e.headers.get("ETag"),pe=(e,t,s,n)=>{let o,r;return le(e,(async()=>{const e=await fetch(t);return r=he(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=he(s);R(r)||R(n)||n==r||(r=n,e())}),1e3*n)}),(()=>{T(o,clearInterval),o=void 0}))},we=U((e=>{const t=F(),s=F(),n=F(),o=F(),[r,a,i,d,l,c,u,g]=K(e,(()=>[F(),F(),F(),F()]),(e=>R(e)?void 0:e+"")),[f,L,h]=Y((()=>I)),p=(e,t,s)=>T(d(e),(([n,,o])=>{if(!A(o,t)){const r=q();if(i(e)!=v(e))G(r,t);else{let e=t;for(;!R(e)&&!A(r,e);)G(r,e),e=O(n,e)}if(s)return r;P(o,t,r)}return O(o,t)})),w=(e,t)=>T(d(e),(([,,e])=>P(e,t))),v=e=>O(t,e),I={setRelationshipDefinition:(e,r,a,i)=>(P(t,e,a),c(e,r,((t,r)=>{const a=q(),i=q(),l=q(),[c,u]=d(e);D(r,(([t,s],n)=>{R(t)||(G(i,t),T(O(u,t),(e=>{J(e,n),M(e)&&P(u,t)}))),R(s)||(G(i,s),A(u,s)||P(u,s,q()),G(O(u,s),n)),G(a,n),P(c,n,s),j(O(o,e),(t=>{A(p(e,t),n)&&G(l,t)}))})),t(),D(a,(t=>L(s,[e,t]))),D(i,(t=>L(n,[e,t]))),D(l,(t=>{w(e,t),L(o,[e,t])}))}),Q(i)),I),delRelationshipDefinition:e=>(P(t,e),u(e),I),getStore:r,getRelationshipIds:a,getLocalTableId:i,getRemoteTableId:v,getRemoteRowId:(e,t)=>O(d(e)?.[0],t),getLocalRowIds:(e,t)=>E(O(d(e)?.[1],t)),getLinkedRowIds:(e,t)=>R(d(e))?[t]:E(p(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)=>(p(e,t),f(s,o,[e,t])),delListener:e=>(w(...h(e)),I),destroy:g,getListenerStats:()=>({})};return ee(I)})),ve=(e,t,s,n=P)=>{const o=(r=N(e),a=e=>!te(t,e),r.filter(a));var r,a;return c($(t),(n=>s(e,n,t[n]))),c(o,(t=>n(e,t))),e},Ie=e=>{const t=s(e);return b(t)||t==r&&y(e)?t:void 0},ye=(e,t)=>!(R(e)||!(e=>S(e,Z)&&e.constructor==Z)(e)||_(e))&&(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!(e=>f($(e)))(e)),Se=(e,t,s)=>P(e,t,O(e,t)==-s?void 0:s),Re=()=>{let e,t=0,s=0;const n=F(),o=F(),a=F(),d=F(),l=F(),u=F(),g=F(),f=z(q),L=z(q),h=z(),v=z(),I=z(),y=z(),S=z(),[C,k,E,J]=Y((()=>Me)),G=(t,s)=>(!e||A(l,s))&&ye(t,(e=>K(s,e))),K=(e,t,s)=>ye(s?t:U(t,e),((s,n)=>T(Q(e,n,s),(e=>(t[n]=e,!0)),(()=>!1)))),Q=(t,s,n)=>e?T(O(O(l,t),s),(e=>Ie(n)!=e.type?e.default:n)):R(Ie(n))?void 0:n,U=(e,t)=>(T(O(u,t),(t=>ne(t,((t,s)=>{te(e,s)||(e[s]=t)})))),e),V=e=>ve(l,e,((e,t,s)=>{const n={};ve(B(l,t,F()),s,((e,t,s)=>{P(e,t,s),T(s.default,(e=>n[t]=e))})),P(u,t,n)}),((e,t)=>{P(l,t),P(u,t)})),X=e=>ve(g,e,((e,t,s)=>Z(t,s)),((e,t)=>de(t))),Z=(e,t)=>ve(B(g,e,F(),(()=>ue(e,1))),t,((t,s,n)=>$(e,t,s,n)),((t,s)=>le(e,t,s))),$=(e,t,s,n,o)=>ve(B(t,s,F(),(()=>ge(e,s,1))),n,((t,n,o)=>_(e,s,t,n,o)),((n,r)=>ce(e,t,s,n,r,o))),_=(e,t,s,n,o)=>{A(s,n)||fe(e,t,n,1);const r=O(s,n);o!==r&&(Le(e,t,n,r),P(s,n,o))},oe=(e,t,s)=>Ae((()=>$(e,ie(e),t,s))),re=(e,t,s,n,o)=>T(O(t,s),(t=>_(e,s,t,n,o)),(()=>$(e,t,s,U({[n]:o},e)))),ae=e=>{const s=""+t++;return A(e,s)?ae(e):s},ie=e=>O(g,e)??Z(e,{}),de=e=>Z(e,{}),le=(e,t,s)=>$(e,t,s,{},!0),ce=(e,t,s,n,o,r)=>{const a=O(u,e)?.[o];if(!R(a)&&!r)return _(e,s,n,o,a);const i=t=>{Le(e,s,t,O(n,t)),fe(e,s,t,-1),P(n,t)};R(a)?i(o):j(n,i),M(n)&&(ge(e,s,-1),M(P(t,s))&&(ue(e,-1),P(g,e)))},ue=(e,t)=>Se(n,e,t),ge=(e,t,s)=>Se(B(o,e,F()),t,s),fe=(e,t,s,n)=>Se(B(B(a,e,F()),t,F()),s,n),Le=(e,t,s,n)=>B(B(B(d,e,F()),t,F()),s,n),he=(e,t,s)=>{const n=O(O(d,e),t),o=me(e,t,s);return A(n,s)?[!0,O(n,s),o]:[!1,o,o]},pe=e=>{const t=M(y[e])&&M(v[e])&&M(L[e]),s=M(S[e])&&M(I[e])&&M(h[e])&&M(f[e]);if(t&&s)return;const r=e?[W(n),W(o,W),W(a,(e=>W(e,W))),W(d,(e=>W(e,W)))]:[n,o,a,d];if(t||(D(r[2],((t,s)=>D(t,((t,n)=>{M(t)||k(y[e],[s,n])})))),D(r[1],((t,s)=>{M(t)||k(v[e],[s])})),M(r[0])||k(L[e])),!s){let t;D(r[3],((s,n)=>{let o;D(s,((s,r)=>{let a;D(s,((s,i)=>{const d=me(n,r,i);d!==s&&(k(S[e],[n,r,i],d,s,he),t=o=a=1)})),a&&k(I[e],[n,r],he)})),o&&k(h[e],[n],he)})),t&&k(f[e],[],he)}},we=()=>H(g,(e=>H(e,H))),Re=()=>N(g),Te=e=>N(O(g,e)),be=(e,t)=>N(O(O(g,e),t)),me=(e,t,s)=>O(O(O(g,e),t),s),Ce=e=>((e=>ye(e,G))(e)&&Ae((()=>X(e))),Me),ke=()=>(Ae((()=>X({}))),Me),Ae=e=>{if(-1==s)return;s++;const t=e();return s--,0==s&&(s=1,pe(1),s=-1,pe(0),s=0,c([d,n,o,a],x)),t},Me={getTables:we,getTableIds:Re,getTable:e=>H(O(g,e),H),getRowIds:Te,getRow:(e,t)=>H(O(O(g,e),t)),getCellIds:be,getCell:me,hasTable:e=>A(g,e),hasRow:(e,t)=>A(O(g,e),t),hasCell:(e,t,s)=>A(O(O(g,e),t),s),getJson:()=>p(g),getSchemaJson:()=>p(l),setTables:Ce,setTable:(e,t)=>(G(t,e)&&Ae((()=>Z(e,t))),Me),setRow:(e,t,s)=>(K(e,s)&&oe(e,t,s),Me),addRow:(e,t)=>{let s;return K(e,t)&&(s=ae(O(g,e)),oe(e,s,t)),s},setPartialRow:(e,t,s)=>(K(e,s,1)&&Ae((()=>{const n=ie(e);ne(s,((s,o)=>re(e,n,t,o,s)))})),Me),setCell:(e,t,s,n)=>(T(Q(e,s,m(n)?n(me(e,t,s)):n),(n=>Ae((()=>re(e,ie(e),t,s,n))))),Me),setJson:e=>{try{"{}"===e?ke():Ce(w(e))}catch{}return Me},setSchema:t=>{if((e=(e=>ye(e,(e=>ye(e,(e=>{if(!ye(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!b(t)&&t!=r||(Ie(e.default)!=t&&se(e,"default"),0))})))))(t))&&(V(t),!M(g))){const e=we();ke(),Ce(e)}return Me},delTables:ke,delTable:e=>(A(g,e)&&Ae((()=>de(e))),Me),delRow:(e,t)=>(T(O(g,e),(s=>{A(s,t)&&Ae((()=>le(e,s,t)))})),Me),delCell:(e,t,s,n)=>(T(O(g,e),(o=>T(O(o,t),(r=>{A(r,s)&&Ae((()=>ce(e,o,t,r,s,n)))})))),Me),delSchema:()=>(V({}),e=!1,Me),transaction:Ae,forEachTable:e=>D(g,((t,s)=>e(s,(e=>D(t,((t,s)=>e(s,(e=>j(t,e))))))))),forEachRow:(e,t)=>D(O(g,e),((e,s)=>t(s,(t=>j(e,t))))),forEachCell:(e,t,s)=>j(O(O(g,e),t),s),addTablesListener:(e,t)=>C(e,f[t?1:0]),addTableIdsListener:(e,t)=>C(e,L[t?1:0]),addTableListener:(e,t,s)=>C(t,h[s?1:0],[e]),addRowIdsListener:(e,t,s)=>C(t,v[s?1:0],[e]),addRowListener:(e,t,s,n)=>C(s,I[n?1:0],[e,t]),addCellIdsListener:(e,t,s,n)=>C(s,y[n?1:0],[e,t]),addCellListener:(e,t,s,n,o)=>C(n,S[o?1:0],[e,t,s]),callListener:e=>(J(e,[Re,Te,be],(e=>R(e[2])?[]:[,,].fill(me(...e)))),Me),delListener:e=>(E(e),Me),getListenerStats:()=>({})};return ee(Me)};export{oe as createCheckpoints,le as createCustomPersister,Le as createFilePersister,ae as createIndexes,ge as createLocalPersister,de as createMetrics,we as createRelationships,pe as createRemotePersister,fe as createSessionPersister,Re as createStore,re as defaultSorter};
Binary file