tinybase 2.2.6 → 3.0.0-beta.1

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 (110) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.d.ts +18 -3
  3. package/lib/checkpoints.js +1 -1
  4. package/lib/checkpoints.js.gz +0 -0
  5. package/lib/debug/checkpoints.d.ts +18 -3
  6. package/lib/debug/checkpoints.js +97 -49
  7. package/lib/debug/indexes.js +31 -16
  8. package/lib/debug/metrics.js +31 -16
  9. package/lib/debug/persisters.d.ts +33 -23
  10. package/lib/debug/persisters.js +10 -5
  11. package/lib/debug/queries.js +2 -2
  12. package/lib/debug/relationships.js +31 -16
  13. package/lib/debug/store.d.ts +2022 -383
  14. package/lib/debug/store.js +440 -108
  15. package/lib/debug/tinybase.js +508 -140
  16. package/lib/debug/tools.d.ts +89 -38
  17. package/lib/debug/tools.js +757 -453
  18. package/lib/debug/ui-react.d.ts +1525 -381
  19. package/lib/debug/ui-react.js +163 -12
  20. package/lib/es6/checkpoints.d.ts +18 -3
  21. package/lib/es6/checkpoints.js +1 -1
  22. package/lib/es6/checkpoints.js.gz +0 -0
  23. package/lib/es6/indexes.js +1 -1
  24. package/lib/es6/indexes.js.gz +0 -0
  25. package/lib/es6/metrics.js +1 -1
  26. package/lib/es6/metrics.js.gz +0 -0
  27. package/lib/es6/persisters.d.ts +33 -23
  28. package/lib/es6/persisters.js +1 -1
  29. package/lib/es6/persisters.js.gz +0 -0
  30. package/lib/es6/relationships.js +1 -1
  31. package/lib/es6/relationships.js.gz +0 -0
  32. package/lib/es6/store.d.ts +2022 -383
  33. package/lib/es6/store.js +1 -1
  34. package/lib/es6/store.js.gz +0 -0
  35. package/lib/es6/tinybase.js +1 -1
  36. package/lib/es6/tinybase.js.gz +0 -0
  37. package/lib/es6/tools.d.ts +89 -38
  38. package/lib/es6/tools.js +1 -1
  39. package/lib/es6/tools.js.gz +0 -0
  40. package/lib/es6/ui-react.d.ts +1525 -381
  41. package/lib/es6/ui-react.js +1 -1
  42. package/lib/es6/ui-react.js.gz +0 -0
  43. package/lib/indexes.js +1 -1
  44. package/lib/indexes.js.gz +0 -0
  45. package/lib/metrics.js +1 -1
  46. package/lib/metrics.js.gz +0 -0
  47. package/lib/persisters.d.ts +33 -23
  48. package/lib/persisters.js +1 -1
  49. package/lib/persisters.js.gz +0 -0
  50. package/lib/relationships.js +1 -1
  51. package/lib/relationships.js.gz +0 -0
  52. package/lib/store.d.ts +2022 -383
  53. package/lib/store.js +1 -1
  54. package/lib/store.js.gz +0 -0
  55. package/lib/tinybase.js +1 -1
  56. package/lib/tinybase.js.gz +0 -0
  57. package/lib/tools.d.ts +89 -38
  58. package/lib/tools.js +1 -1
  59. package/lib/tools.js.gz +0 -0
  60. package/lib/ui-react.d.ts +1525 -381
  61. package/lib/ui-react.js +1 -1
  62. package/lib/ui-react.js.gz +0 -0
  63. package/lib/umd/checkpoints.d.ts +18 -3
  64. package/lib/umd/checkpoints.js +1 -1
  65. package/lib/umd/checkpoints.js.gz +0 -0
  66. package/lib/umd/indexes.js +1 -1
  67. package/lib/umd/indexes.js.gz +0 -0
  68. package/lib/umd/metrics.js +1 -1
  69. package/lib/umd/metrics.js.gz +0 -0
  70. package/lib/umd/persisters.d.ts +33 -23
  71. package/lib/umd/persisters.js +1 -1
  72. package/lib/umd/persisters.js.gz +0 -0
  73. package/lib/umd/relationships.js +1 -1
  74. package/lib/umd/relationships.js.gz +0 -0
  75. package/lib/umd/store.d.ts +2022 -383
  76. package/lib/umd/store.js +1 -1
  77. package/lib/umd/store.js.gz +0 -0
  78. package/lib/umd/tinybase.js +1 -1
  79. package/lib/umd/tinybase.js.gz +0 -0
  80. package/lib/umd/tools.d.ts +89 -38
  81. package/lib/umd/tools.js +1 -1
  82. package/lib/umd/tools.js.gz +0 -0
  83. package/lib/umd/ui-react.d.ts +1525 -381
  84. package/lib/umd/ui-react.js +1 -1
  85. package/lib/umd/ui-react.js.gz +0 -0
  86. package/lib/umd-es6/checkpoints.d.ts +18 -3
  87. package/lib/umd-es6/checkpoints.js +1 -1
  88. package/lib/umd-es6/checkpoints.js.gz +0 -0
  89. package/lib/umd-es6/indexes.js +1 -1
  90. package/lib/umd-es6/indexes.js.gz +0 -0
  91. package/lib/umd-es6/metrics.js +1 -1
  92. package/lib/umd-es6/metrics.js.gz +0 -0
  93. package/lib/umd-es6/persisters.d.ts +33 -23
  94. package/lib/umd-es6/persisters.js +1 -1
  95. package/lib/umd-es6/persisters.js.gz +0 -0
  96. package/lib/umd-es6/relationships.js +1 -1
  97. package/lib/umd-es6/relationships.js.gz +0 -0
  98. package/lib/umd-es6/store.d.ts +2022 -383
  99. package/lib/umd-es6/store.js +1 -1
  100. package/lib/umd-es6/store.js.gz +0 -0
  101. package/lib/umd-es6/tinybase.js +1 -1
  102. package/lib/umd-es6/tinybase.js.gz +0 -0
  103. package/lib/umd-es6/tools.d.ts +89 -38
  104. package/lib/umd-es6/tools.js +1 -1
  105. package/lib/umd-es6/tools.js.gz +0 -0
  106. package/lib/umd-es6/ui-react.d.ts +1525 -381
  107. package/lib/umd-es6/ui-react.js +1 -1
  108. package/lib/umd-es6/ui-react.js.gz +0 -0
  109. package/package.json +26 -26
  110. package/readme.md +20 -19
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",l=t(n),r=t(!0),s=t(0),o=t(t),i="type",a="default",u=e=>n+e,d=(e,t)=>e.forEach(t),c=(e,t)=>e.map(t),f=e=>e.length,v=(e,t,n)=>e.slice(t,n),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>{return p(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})),b=JSON.parse,g=isFinite,p=(e,t)=>e instanceof t,y=e=>null==e,w=(e,t,n)=>y(e)?null==n?void 0:n():t(e),R=e=>e==l||e==r,S=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},C=e=>y(e)||0==(e=>e.size)(e),I=e=>e.clear(),L=(e,t)=>null==e?void 0:e.forEach(t),m=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),J=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},F=(e,t)=>null==e?void 0:e.get(t),x=(e,t)=>L(e,((e,n)=>t(n,e))),z=(e,t,n)=>y(n)?(m(e,t),e):null==e?void 0:e.set(t,n),O=(e,t,n)=>(S(e,t)||z(e,t,n()),F(e,t)),j=(e,t,n)=>{const l={},r=null!=t?t:e=>e;return L(e,((e,t)=>w(r(e),(e=>(null==n?void 0:n(e))?0:l[t]=e)))),l},k=(e,t)=>{const n=E(),l=null!=t?t:e=>e;return L(e,((e,t)=>n.set(t,l(e)))),n},A=e=>k(e,k),M=(e,t,n,l,r=0)=>w((n?O:F)(e,t[r],r>f(t)-2?n:E),(s=>{if(r>f(t)-2)return(null==l?void 0:l(s))&&z(e,t[r]),s;const o=M(s,t,n,l,r+1);return C(s)&&z(e,t[r]),o})),N=Object,B=N.keys,D=N.isFrozen,P=N.freeze,W=(e,t)=>!y(((e,t)=>w(e,(e=>e[t])))(e,t)),$=(e,t)=>delete e[t],q=(e,t)=>c(N.entries(e),(([e,n])=>t(n,e))),G=e=>{return t=B(e),0==f(t);var t},H=e=>new Set(Array.isArray(e)||y(e)?e:[e]),K=(e,t)=>null==e?void 0:e.add(t),Q=/^\d+$/,U=()=>{const e=[];let t=0;return[()=>{var l;return null!=(l=e.shift())?l:n+t++},t=>{Q.test(t)&&f(e)<1e3&&h(e,t)}]},V=e=>[e,e],X=()=>[E(),E()],Y=e=>{const n=t(e);return R(n)||n==s&&g(e)?n:void 0},Z=(e,t,n,l=z)=>{const r=(s=e=>!W(t,e),J(e).filter(s));var s;return d(B(t),(l=>n(e,l,t[l]))),d(r,(t=>l(e,t))),e},_=(e,t,n)=>y(e)||!(e=>p(e,N)&&e.constructor==N)(e)||G(e)||D(e)?(null==n||n(),!1):(q(e,((n,l)=>{t(n,l)||$(e,l)})),!G(e)),ee=(e,t,n)=>z(e,t,F(e,t)==-n?void 0:n),te=()=>{let e,l,r=0;const g=E(),p=E(),N=E(),B=E(),D=E(),Q=E(),ne=E(),le=E(),re=E(),se=X(),oe=X(),ie=X(),ae=X(),ue=X(),de=X(),ce=X(),fe=X(),ve=X(),he=X(),[Te,be,ge,pe]=(e=>{let t;const[l,r]=U(),s=E();return[(e,r,o)=>{null!=t||(t=tt);const i=l();return z(s,i,[e,r,o]),K(M(r,null!=o?o:[n],H),i),i},(e,l,...r)=>d(((e,t=[n])=>{const l=[],r=(e,n)=>n==f(t)?h(l,e):null===t[n]?L(e,(e=>r(e,n+1))):d([t[n],null],(t=>r(F(e,t),n+1)));return r(e,0),l})(e,l),(e=>L(e,(e=>F(s,e)[0](t,...null!=l?l:[],...r))))),e=>w(F(s,e),(([,t,l])=>(M(t,null!=l?l:[n],void 0,(t=>(m(t,e),C(t)?1:0))),z(s,e),r(e),l))),(e,n,l)=>w(F(s,e),(([e,,r=[]])=>{const s=(...o)=>{const i=f(o);i==f(r)?e(t,...o,...l(o)):y(r[i])?d(n[i](...o),(e=>s(...o,e))):s(...o,r[i])};s()}))]})(),ye=(t,n)=>(!e||S(Q,n)||Be(n))&&_(t,((e,t)=>we(n,t,e)),(()=>Be(n))),we=(e,t,n,l)=>_(l?n:Se(n,e,t),((l,r)=>w(Re(e,t,r,l),(e=>(n[r]=e,!0)),(()=>!1))),(()=>Be(e,t))),Re=(t,n,l,r)=>e?w(F(F(Q,t),l),(e=>Y(r)!=e.type?Be(t,n,l,r,e.default):r),(()=>Be(t,n,l,r))):y(Y(r))?Be(t,n,l,r):r,Se=(e,t,n)=>(w(F(ne,t),(([l,r])=>{L(l,((t,n)=>{W(e,n)||(e[n]=t)})),L(r,(l=>{W(e,l)||Be(t,n,l)}))})),e),Ce=e=>Z(Q,e,((e,t,n)=>{const l=E(),r=H();Z(O(Q,t,E),n,((e,t,n)=>{z(e,t,n),w(n.default,(e=>z(l,t,e)),(()=>K(r,t)))})),z(ne,t,[l,r])}),((e,t)=>{z(Q,t),z(ne,t)})),Ie=e=>Z(re,e,((e,t,n)=>Le(t,n)),((e,t)=>ze(t))),Le=(e,t)=>Z(O(re,e,(()=>(ke(e,1),E()))),t,((t,n,l)=>me(e,t,n,l)),((t,n)=>Oe(e,t,n))),me=(e,t,n,l,r)=>Z(O(t,n,(()=>(Ae(e,n,1),E()))),l,((t,l,r)=>Ee(e,n,t,l,r)),((l,s)=>je(e,t,n,l,s,r))),Ee=(e,t,n,l,r)=>{S(n,l)||Me(e,t,l,1);const s=F(n,l);r!==s&&(Ne(e,t,l,s,r),z(n,l,r))},Je=(e,t,n,l,r)=>w(F(t,n),(t=>Ee(e,n,t,l,r)),(()=>me(e,t,n,Se({[l]:r},e,n)))),Fe=e=>{const[t]=O(le,e,U),n=t();return S(F(re,e),n)?Fe(e):n},xe=e=>{var t;return null!=(t=F(re,e))?t:Le(e,{})},ze=e=>Le(e,{}),Oe=(e,t,n)=>{const[,l]=O(le,e,U);l(n),me(e,t,n,{},!0)},je=(e,t,n,l,r,s)=>{var o;const i=F(null==(o=F(ne,e))?void 0:o[0],r);if(!y(i)&&!s)return Ee(e,n,l,r,i);const a=t=>{Ne(e,n,t,F(l,t)),Me(e,n,t,-1),z(l,t)};y(i)?a(r):x(l,a),C(l)&&(Ae(e,n,-1),C(z(t,n))&&(ke(e,-1),z(re,e),z(le,e)))},ke=(e,t)=>ee(g,e,t),Ae=(e,t,n)=>ee(O(p,e,E),t,n),Me=(e,t,n,l)=>ee(O(O(N,e,E),t,E),n,l),Ne=(e,t,n,l,r)=>O(O(O(B,e,E),t,E),n,(()=>[l,0]))[1]=r,Be=(e,t,n,l,r)=>(h(O(O(O(D,e,E),t,E),n,(()=>[])),l),r),De=(e,t,n)=>w(F(F(F(B,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...V(Ve(e,t,n))])),Pe=e=>C(D)||C(ve[e])?0:L(e?k(D,A):D,((t,n)=>L(t,((t,l)=>L(t,((t,r)=>be(ve[e],[n,l,r],t))))))),We=(e,t,n)=>{if(!C(t))return be(e,n),1},$e=e=>{const t=C(ue[e]),n=C(ce[e])&&C(ae[e])&&t&&C(oe[e]),l=C(fe[e])&&C(de[e])&&C(ie[e])&&C(se[e]);if(!n||!l){const r=e?[k(g),A(p),k(N,A),k(B,A)]:[g,p,N,B];if(!n){L(r[2],((t,n)=>L(t,((t,l)=>We(ce[e],t,[n,l])))));const n=H();L(r[1],((l,r)=>{We(ae[e],l,[r])&&!t&&(be(ue[e],[r,null]),K(n,r))})),t||L(r[3],((t,l)=>{if(!S(n,l)){const n=H();L(t,(e=>L(e,(([t,l],r)=>l!==t?K(n,r):m(e,r))))),L(n,(t=>be(ue[e],[l,t])))}})),We(oe[e],r[0])}if(!l){let t;L(r[3],((n,l)=>{let r;L(n,((n,s)=>{let o;L(n,(([n,i],a)=>{i!==n&&(be(fe[e],[l,s,a],i,n,De),t=r=o=1)})),o&&be(de[e],[l,s],De)})),r&&be(ie[e],[l],De)})),t&&be(se[e],void 0,De)}}},qe=(e,...t)=>(Ze((()=>e(...c(t,u)))),tt),Ge=()=>j(re,(e=>j(e,j))),He=()=>J(re),Ke=e=>J(F(re,u(e))),Qe=(e,t,n,l=0,r)=>{return c(v((o=F(re,u(e)),i=(e,n)=>[y(t)?n:F(e,u(t)),n],s=([e],[t])=>(e<t?-1:1)*(n?-1:1),c([...null!=(a=null==o?void 0:o.entries())?a:[]],(([e,t])=>i(t,e))).sort(s)),l,y(r)?r:l+r),(([,e])=>e));var s,o,i,a},Ue=(e,t)=>J(F(F(re,u(e)),u(t))),Ve=(e,t,n)=>F(F(F(re,u(e)),u(t)),u(n)),Xe=e=>qe((()=>(e=>_(e,ye,Be))(e)?Ie(e):0)),Ye=()=>qe((()=>Ie({}))),Ze=(e,t)=>{if(-1==r)return;_e();const n=e();return et(t),n},_e=()=>(r++,tt),et=e=>(r>0&&(r--,0==r&&(l=!C(B),r=1,Pe(1),l&&$e(1),r=-1,(null==e?void 0:e(j(B,(e=>j(e,(e=>j(e,(e=>[...e]),(([e,t])=>e===t))),G)),G),j(D,(e=>j(e,j)))))&&(r=1,L(B,((e,t)=>L(e,((e,n)=>L(e,(([e],l)=>((e,t,n,l,r)=>y(r)?e.delCell(t,n,l,!0):e.setCell(t,n,l,r))(tt,t,n,l,e))))))),r=-1,l=!1),be(he[0],void 0,l),Pe(0),l&&$e(0),be(he[1],void 0,l),r=0,d([B,D,g,p,N],I))),tt),tt={getTables:Ge,getTableIds:He,getTable:e=>j(F(re,u(e)),j),getRowIds:Ke,getSortedRowIds:Qe,getRow:(e,t)=>j(F(F(re,u(e)),u(t))),getCellIds:Ue,getCell:Ve,hasTables:()=>!C(re),hasTable:e=>S(re,u(e)),hasRow:(e,t)=>S(F(re,u(e)),u(t)),hasCell:(e,t,n)=>S(F(F(re,u(e)),u(t)),u(n)),getJson:()=>T(re),getSchemaJson:()=>T(Q),setTables:Xe,setTable:(e,t)=>qe((e=>ye(t,e)?Le(e,t):0),e),setRow:(e,t,n)=>qe(((e,t)=>we(u(e),u(t),n)?me(u(e),xe(u(e)),u(t),n):0),e,t),addRow:(e,t)=>Ze((()=>{let n;return we(e,n,t)&&(e=u(e),me(e,xe(e),n=Fe(e),t)),n})),setPartialRow:(e,t,n)=>qe(((e,t)=>{if(we(e,t,n,1)){const l=xe(e);q(n,((n,r)=>Je(e,l,t,r,n)))}}),e,t),setCell:(e,n,l,r)=>qe(((e,n,l)=>w(Re(e,n,l,t(r)==o?r(Ve(e,n,l)):r),(t=>Je(e,xe(e),n,l,t)))),e,n,l),setJson:e=>{try{"{}"===e?Ye():Xe(b(e))}catch(e){}return tt},setSchema:t=>qe((()=>{if((e=(e=>_(e,(e=>_(e,(e=>{if(!_(e,((e,t)=>[i,a].includes(t))))return!1;const t=e.type;return!(!R(t)&&t!=s||(Y(e.default)!=t&&$(e,a),0))})))))(t))&&(Ce(t),!C(re))){const e=Ge();Ye(),Xe(e)}})),delTables:Ye,delTable:e=>qe((e=>S(re,e)?ze(e):0),e),delRow:(e,t)=>qe(((e,t)=>w(F(re,e),(n=>S(n,t)?Oe(e,n,t):0))),e,t),delCell:(e,t,n,l)=>qe(((e,t,n)=>w(F(re,e),(r=>w(F(r,t),(s=>S(s,n)?je(e,r,t,s,n,l):0))))),e,t,n),delSchema:()=>qe((()=>{Ce({}),e=!1})),transaction:Ze,startTransaction:_e,finishTransaction:et,forEachTable:e=>L(re,((t,n)=>e(n,(e=>L(t,((t,n)=>e(n,(e=>x(t,e))))))))),forEachRow:(e,t)=>L(F(re,u(e)),((e,n)=>t(n,(t=>x(e,t))))),forEachCell:(e,t,n)=>x(F(F(re,u(e)),u(t)),n),addSortedRowIdsListener:(e,t,n,l,r,s,o)=>{let i=Qe(e,t,n,l,r);return Te((()=>{const o=Qe(e,t,n,l,r);var a,u,d;u=i,f(a=o)===f(u)&&(d=(e,t)=>u[t]===e,a.every(d))||(i=o,s(tt,e,t,n,l,r,i))}),ue[o?1:0],[e,t])},addWillFinishTransactionListener:e=>Te(e,he[0]),addDidFinishTransactionListener:e=>Te(e,he[1]),callListener:e=>(pe(e,[He,Ke,Ue],(e=>y(e[2])?[]:V(Ve(...e)))),tt),delListener:e=>(ge(e),tt),getListenerStats:()=>({}),createStore:te};return q({Tables:[0,se],TableIds:[0,oe],Table:[1,ie],RowIds:[1,ae],Row:[2,de],CellIds:[2,ce],Cell:[3,fe],InvalidCell:[3,ve]},(([e,t],n)=>{tt["add"+n+"Listener"]=(...n)=>Te(n[e],t[n[e+1]?1:0],e>0?v(n,0,e):void 0)})),P(tt)};e.createStore=te},"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,l="",n=t(l),s=t(!0),r=t(0),a=t(t),o="type",u="default",i=e=>l+e,d=(e,t)=>e.forEach(t),c=(e,t)=>e.map(t),f=e=>e.length,v=(e,t,l)=>e.slice(t,l),h=(e,...t)=>e.push(...t),T=e=>JSON.stringify(e,((e,t)=>{return V(t,Map)?(l=(e,[t,l])=>(e[t]=l,e),n={},[...t].reduce(l,n)):t;var l,n})),g=JSON.parse,b=isFinite,V=(e,t)=>e instanceof t,y=e=>null==e,p=(e,t,l)=>y(e)?null==l?void 0:l():t(e),S=e=>e==n||e==s,w=e=>t(e)==a,I=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},R=e=>y(e)||0==(e=>e.size)(e),m=e=>e.clear(),C=(e,t)=>null==e?void 0:e.forEach(t),J=(e,t)=>null==e?void 0:e.delete(t),L=e=>new Map(e),E=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},F=(e,t)=>null==e?void 0:e.get(t),x=(e,t)=>C(e,((e,l)=>t(l,e))),z=(e,t,l)=>y(l)?(J(e,t),e):null==e?void 0:e.set(t,l),O=(e,t,l)=>(I(e,t)||z(e,t,l()),F(e,t)),j=(e,t,l)=>{const n={},s=null!=t?t:e=>e;return C(e,((e,t)=>p(s(e),(e=>(null==l?void 0:l(e))?0:n[t]=e)))),n},k=(e,t)=>{const l=L(),n=null!=t?t:e=>e;return C(e,((e,t)=>l.set(t,n(e)))),l},A=e=>k(e,k),M=(e,t,l,n,s=0)=>p((l?O:F)(e,t[s],s>f(t)-2?l:L),(r=>{if(s>f(t)-2)return(null==n?void 0:n(r))&&z(e,t[s]),r;const a=M(r,t,l,n,s+1);return R(r)&&z(e,t[s]),a})),N=e=>new Set(Array.isArray(e)||y(e)?e:[e]),P=(e,t)=>null==e?void 0:e.add(t),B=/^\d+$/,D=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=e.shift())?n:l+t++},t=>{B.test(t)&&f(e)<1e3&&h(e,t)}]},W=Object,$=W.keys,q=W.isFrozen,G=W.freeze,H=e=>V(e,W)&&e.constructor==W,K=(e,t)=>!y(((e,t)=>p(e,(e=>e[t])))(e,t)),Q=(e,t)=>delete e[t],U=(e,t)=>c(W.entries(e),(([e,l])=>t(l,e))),X=e=>{return H(e)&&(t=$(e),0==f(t));var t},Y=e=>[e,e],Z=()=>[L(),L()],_=e=>{const l=t(e);return S(l)||l==r&&b(e)?l:void 0},ee=(e,t,l,n=z)=>{const s=(r=e=>!K(t,e),E(e).filter(r));var r;return d($(t),(n=>l(e,n,t[n]))),d(s,(t=>n(e,t))),e},te=(e,t,l)=>y(e)||!H(e)||X(e)||q(e)?(null==l||l(),!1):(U(e,((l,n)=>{t(l,n)||Q(e,n)})),!X(e)),le=(e,t,l)=>z(e,t,F(e,t)==-l?void 0:l),ne=()=>{let e,t,n,s,a=0;const b=L(),V=L(),B=L(),W=L(),$=L(),q=L(),H=L(),se=L(),re=L(),ae=L(),oe=L(),ue=L(),ie=N(),de=L(),ce=L(),fe=L(),ve=Z(),he=Z(),Te=Z(),ge=Z(),be=Z(),Ve=Z(),ye=Z(),pe=Z(),Se=Z(),we=Z(),Ie=Z(),Re=Z(),me=Z(),Ce=Z(),[Je,Le,Ee,Fe]=(e=>{let t;const[n,s]=D(),r=L();return[(e,s,a,o=[],u=(()=>[]))=>{null!=t||(t=Nt);const i=n();return z(r,i,[e,s,a,o,u]),P(M(s,null!=a?a:[l],N),i),i},(e,n,...s)=>d(((e,t=[l])=>{const n=[],s=(e,l)=>l==f(t)?h(n,e):null===t[l]?C(e,(e=>s(e,l+1))):d([t[l],null],(t=>s(F(e,t),l+1)));return s(e,0),n})(e,n),(e=>C(e,(e=>F(r,e)[0](t,...null!=n?n:[],...s))))),e=>p(F(r,e),(([,t,n])=>(M(t,null!=n?n:[l],void 0,(t=>(J(t,e),R(t)?1:0))),z(r,e),s(e),n))),e=>p(F(r,e),(([e,,l=[],n,s])=>{const r=(...a)=>{var o,u;const i=f(a);i==f(l)?e(t,...a,...s(a)):y(l[i])?d(null!=(u=null==(o=n[i])?void 0:o.call(n,...a))?u:[],(e=>r(...a,e))):r(...a,l[i])};r()}))]})(),xe=e=>{if(!te(e,((e,t)=>[o,u].includes(t))))return!1;const t=e.type;return!(!S(t)&&t!=r||(_(e.default)!=t&&Q(e,u),0))},ze=(t,l)=>(!e||I(re,l)||ut(l))&&te(t,((e,t)=>Oe(l,t,e)),(()=>ut(l))),Oe=(e,t,l,n)=>te(n?l:Me(l,e,t),((n,s)=>p(je(e,t,s,n),(e=>(l[s]=e,!0)),(()=>!1))),(()=>ut(e,t))),je=(t,l,n,s)=>e?p(F(F(re,t),n),(e=>_(s)!=e.type?ut(t,l,n,s,e.default):s),(()=>ut(t,l,n,s))):y(_(s))?ut(t,l,n,s):s,ke=(e,t)=>te(t?e:Ne(e),((t,l)=>p(Ae(l,t),(t=>(e[l]=t,!0)),(()=>!1))),(()=>it())),Ae=(e,l)=>t?p(F(oe,e),(t=>_(l)!=t.type?it(e,l,t.default):l),(()=>it(e,l))):y(_(l))?it(e,l):l,Me=(e,t,l)=>(p(F(ae,t),(([n,s])=>{C(n,((t,l)=>{K(e,l)||(e[l]=t)})),C(s,(n=>{K(e,n)||ut(t,l,n)}))})),e),Ne=e=>(t&&(C(ue,((t,l)=>{K(e,l)||(e[l]=t)})),C(ie,(t=>{K(e,t)||it(t)}))),e),Pe=e=>ee(re,e,((e,t,l)=>{const n=L(),s=N();ee(O(re,t,L),l,((e,t,l)=>{z(e,t,l),p(l.default,(e=>z(n,t,e)),(()=>P(s,t)))})),z(ae,t,[n,s])}),((e,t)=>{z(re,t),z(ae,t)})),Be=e=>ee(oe,e,((e,t,l)=>{z(oe,t,l),p(l.default,(e=>z(ue,t,e)),(()=>P(ie,t)))}),((e,t)=>{z(oe,t),z(ue,t),J(ie,t)})),De=e=>X(e)?zt():Jt(e),We=e=>ee(ce,e,((e,t,l)=>$e(t,l)),((e,t)=>Ze(t))),$e=(e,t)=>ee(O(ce,e,(()=>(lt(e,1),L()))),t,((t,l,n)=>qe(e,t,l,n)),((t,l)=>_e(e,t,l))),qe=(e,t,l,n,s)=>ee(O(t,l,(()=>(nt(e,l,1),L()))),n,((t,n,s)=>Ge(e,l,t,n,s)),((n,r)=>et(e,t,l,n,r,s))),Ge=(e,t,l,n,s)=>{I(l,n)||st(e,t,n,1);const r=F(l,n);s!==r&&(rt(e,t,n,r,s),z(l,n,s))},He=(e,t,l,n,s)=>p(F(t,l),(t=>Ge(e,l,t,n,s)),(()=>qe(e,t,l,Me({[n]:s},e,l)))),Ke=e=>X(e)?Ot():Lt(e),Qe=e=>ee(fe,e,((e,t,l)=>Ue(t,l)),((e,t)=>tt(t))),Ue=(e,t)=>{I(fe,e)||at(e,1);const l=F(fe,e);t!==l&&(ot(e,l,t),z(fe,e,t))},Xe=e=>{const[t]=O(de,e,D),l=t();return I(F(ce,e),l)?Xe(e):l},Ye=e=>{var t;return null!=(t=F(ce,e))?t:$e(e,{})},Ze=e=>$e(e,{}),_e=(e,t,l)=>{const[,n]=O(de,e,D);n(l),qe(e,t,l,{},!0)},et=(e,t,l,n,s,r)=>{var a;const o=F(null==(a=F(ae,e))?void 0:a[0],s);if(!y(o)&&!r)return Ge(e,l,n,s,o);const u=t=>{rt(e,l,t,F(n,t)),st(e,l,t,-1),z(n,t)};y(o)?u(s):x(n,u),R(n)&&(nt(e,l,-1),R(z(t,l))&&(lt(e,-1),z(ce,e),z(de,e)))},tt=e=>{const t=F(ue,e);if(!y(t))return Ue(e,t);ot(e,F(fe,e)),at(e,-1),z(fe,e)},lt=(e,t)=>le(b,e,t),nt=(e,t,l)=>le(O(V,e,L),t,l),st=(e,t,l,n)=>le(O(O(B,e,L),t,L),l,n),rt=(e,t,l,n,s)=>O(O(O(W,e,L),t,L),l,(()=>[n,0]))[1]=s,at=(e,t)=>le($,e,t),ot=(e,t,l)=>O(q,e,(()=>[t,0]))[1]=l,ut=(e,t,l,n,s)=>(h(O(O(O(H,e,L),t,L),l,(()=>[])),n),s),it=(e,t,l)=>(h(O(se,e,(()=>[])),t),l),dt=(e,t,l)=>p(F(F(F(W,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(It(e,t,l))])),ct=e=>p(F(q,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(Ct(e))])),ft=e=>R(H)||R(Se[e])?0:C(e?k(H,A):H,((t,l)=>C(t,((t,n)=>C(t,((t,s)=>Le(Se[e],[l,n,s],t))))))),vt=e=>R(se)||R(we[e])?0:C(e?k(se):se,((t,l)=>Le(we[e],[l],t))),ht=(e,t,l)=>{if(!R(t))return Le(e,l),1},Tt=e=>{const t=R(be[e]),l=R(ye[e])&&R(ge[e])&&t&&R(he[e]),n=R(pe[e])&&R(Ve[e])&&R(Te[e])&&R(ve[e]);if(!l||!n){const s=e?[k(b),A(V),k(B,A),k(W,A)]:[b,V,B,W];if(!l){C(s[2],((t,l)=>C(t,((t,n)=>ht(ye[e],t,[l,n])))));const l=N();C(s[1],((n,s)=>{ht(ge[e],n,[s])&&!t&&(Le(be[e],[s,null]),P(l,s))})),t||C(s[3],((t,n)=>{if(!I(l,n)){const l=N();C(t,(e=>C(e,(([t,n],s)=>n!==t?P(l,s):J(e,s))))),C(l,(t=>Le(be[e],[n,t])))}})),ht(he[e],s[0])}if(!n){let t;C(s[3],((l,n)=>{let s;C(l,((l,r)=>{let a;C(l,(([l,o],u)=>{o!==l&&(Le(pe[e],[n,r,u],o,l,dt),t=s=a=1)})),a&&Le(Ve[e],[n,r],dt)})),s&&Le(Te[e],[n],dt)})),t&&Le(ve[e],void 0,dt)}}},gt=e=>{const t=R(Re[e]),l=R(me[e])&&R(Ie[e]);if(!t||!l){const n=e?[k($),k(q)]:[$,q];if(t||ht(Re[e],n[0]),!l){let t;C(n[1],(([l,n],s)=>{n!==l&&(Le(me[e],[s],n,l,ct),t=1)})),t&&Le(Ie[e],void 0,ct)}}},bt=(e,...t)=>(kt((()=>e(...c(t,i)))),Nt),Vt=()=>j(ce,(e=>j(e,j))),yt=()=>E(ce),pt=e=>E(F(ce,i(e))),St=(e,t,l,n=0,s)=>{return c(v((a=F(ce,i(e)),o=(e,l)=>[y(t)?l:F(e,i(t)),l],r=([e],[t])=>(e<t?-1:1)*(l?-1:1),c([...null!=(u=null==a?void 0:a.entries())?u:[]],(([e,t])=>o(t,e))).sort(r)),n,y(s)?s:n+s),(([,e])=>e));var r,a,o,u},wt=(e,t)=>E(F(F(ce,i(e)),i(t))),It=(e,t,l)=>F(F(F(ce,i(e)),i(t)),i(l)),Rt=()=>j(fe),mt=()=>E(fe),Ct=e=>F(fe,i(e)),Jt=e=>bt((()=>(e=>te(e,ze,ut))(e)?We(e):0)),Lt=e=>bt((()=>ke(e)?Qe(e):0)),Et=e=>{try{De(g(e))}catch(e){}return Nt},Ft=t=>bt((()=>{if((e=te(t,(e=>te(e,xe))))&&(Pe(t),!R(ce))){const e=Vt();zt(),Jt(e)}})),xt=e=>bt((()=>{if(t=(e=>te(e,xe))(e)){const l=Rt();jt(),Ot(),t=!0,Be(e),Lt(l)}})),zt=()=>bt((()=>We({}))),Ot=()=>bt((()=>Qe({}))),jt=()=>bt((()=>{Be({}),t=!1})),kt=(e,t)=>{if(-1==a)return;At();const l=e();return Mt(t),l},At=()=>(a++,Nt),Mt=e=>(a>0&&(a--,0==a&&(n=!R(W),s=!R(q),a=1,ft(1),n&&Tt(1),vt(1),s&&gt(1),a=-1,(null==e?void 0:e(j(W,(e=>j(e,(e=>j(e,(e=>[...e]),(([e,t])=>e===t))),X)),X),j(H,(e=>j(e,j))),j(q,(e=>[...e]),(([e,t])=>e===t)),j(se)))&&(a=1,C(W,((e,t)=>C(e,((e,l)=>C(e,(([e],n)=>((e,t,l,n,s)=>y(s)?e.delCell(t,l,n,!0):e.setCell(t,l,n,s))(Nt,t,l,n,e))))))),C(q,(([e],t)=>((e,t,l)=>y(l)?e.delValue(t):e.setValue(t,l))(Nt,t,e))),a=-1,n=s=!1),Le(Ce[0],void 0,n,s),ft(0),n&&Tt(0),vt(0),s&&gt(0),Le(Ce[1],void 0,n,s),a=0,d([b,V,B,W,H,$,q,se],m))),Nt),Nt={getTables:Vt,getTableIds:yt,getTable:e=>j(F(ce,i(e)),j),getRowIds:pt,getSortedRowIds:St,getRow:(e,t)=>j(F(F(ce,i(e)),i(t))),getCellIds:wt,getCell:It,getValues:Rt,getValueIds:mt,getValue:Ct,hasTables:()=>!R(ce),hasTable:e=>I(ce,i(e)),hasRow:(e,t)=>I(F(ce,i(e)),i(t)),hasCell:(e,t,l)=>I(F(F(ce,i(e)),i(t)),i(l)),hasValues:()=>!R(fe),hasValue:e=>I(fe,i(e)),getTablesJson:()=>T(ce),getValuesJson:()=>T(fe),getJson:()=>T([ce,fe]),getTablesSchemaJson:()=>T(re),getValuesSchemaJson:()=>T(oe),getSchemaJson:()=>T([re,oe]),setTables:Jt,setTable:(e,t)=>bt((e=>ze(t,e)?$e(e,t):0),e),setRow:(e,t,l)=>bt(((e,t)=>Oe(e,t,l)?qe(e,Ye(e),t,l):0),e,t),addRow:(e,t)=>kt((()=>{let l;return Oe(e,l,t)&&(e=i(e),qe(e,Ye(e),l=Xe(e),t)),l})),setPartialRow:(e,t,l)=>bt(((e,t)=>{if(Oe(e,t,l,1)){const n=Ye(e);U(l,((l,s)=>He(e,n,t,s,l)))}}),e,t),setCell:(e,t,l,n)=>bt(((e,t,l)=>p(je(e,t,l,w(n)?n(It(e,t,l)):n),(n=>He(e,Ye(e),t,l,n)))),e,t,l),setValues:Lt,setPartialValues:e=>bt((()=>ke(e,1)?U(e,((e,t)=>Ue(t,e))):0)),setValue:(e,t)=>bt((e=>p(Ae(e,w(t)?t(Ct(e)):t),(t=>Ue(e,t)))),e),setTablesJson:Et,setValuesJson:e=>{try{Ke(g(e))}catch(e){}return Nt},setJson:e=>{try{const[t,l]=g(e);De(t),Ke(l)}catch(t){Et(e)}return Nt},setTablesSchema:Ft,setValuesSchema:xt,setSchema:(e,t)=>bt((()=>{Ft(e),xt(t)})),delTables:zt,delTable:e=>bt((e=>I(ce,e)?Ze(e):0),e),delRow:(e,t)=>bt(((e,t)=>p(F(ce,e),(l=>I(l,t)?_e(e,l,t):0))),e,t),delCell:(e,t,l,n)=>bt(((e,t,l)=>p(F(ce,e),(s=>p(F(s,t),(r=>I(r,l)?et(e,s,t,r,l,n):0))))),e,t,l),delValues:Ot,delValue:e=>bt((e=>I(fe,e)?tt(e):0),e),delTablesSchema:()=>bt((()=>{Pe({}),e=!1})),delValuesSchema:jt,transaction:kt,startTransaction:At,finishTransaction:Mt,forEachTable:e=>C(ce,((t,l)=>e(l,(e=>C(t,((t,l)=>e(l,(e=>x(t,e))))))))),forEachRow:(e,t)=>C(F(ce,i(e)),((e,l)=>t(l,(t=>x(e,t))))),forEachCell:(e,t,l)=>x(F(F(ce,i(e)),i(t)),l),forEachValue:e=>x(fe,e),addSortedRowIdsListener:(e,t,l,n,s,r,a)=>{let o=St(e,t,l,n,s);return Je((()=>{const a=St(e,t,l,n,s);var u,i,d;i=o,f(u=a)===f(i)&&(d=(e,t)=>i[t]===e,u.every(d))||(o=a,r(Nt,e,t,l,n,s,o))}),be[a?1:0],[e,t],[yt])},addWillFinishTransactionListener:e=>Je(e,Ce[0]),addDidFinishTransactionListener:e=>Je(e,Ce[1]),callListener:e=>(Fe(e),Nt),delListener:e=>(Ee(e),Nt),getListenerStats:()=>({}),createStore:ne};return U({Tables:[0,ve],TableIds:[0,he],Table:[1,Te,[yt]],RowIds:[1,ge,[yt]],Row:[2,Ve,[yt,pt]],CellIds:[2,ye,[yt,pt]],Cell:[3,pe,[yt,pt,wt],e=>Y(It(...e))],InvalidCell:[3,Se],Values:[0,Ie],ValueIds:[0,Re],Value:[1,me,[mt],e=>Y(Ct(e[0]))],InvalidValue:[1,we]},(([e,t,l,n],s)=>{Nt["add"+s+"Listener"]=(...s)=>Je(s[e],t[s[e+1]?1:0],e>0?v(s,0,e):void 0,l,n)})),G(Nt)};e.createStore=ne},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e,t){"use strict";const n=e=>typeof e,r="",o=n(r),l=n(!0),s=n(0),i=n(n),a="default",d="utf8",c="Listener",u="Result",v="add",f="Table",h="RowIds",g="CellIds",p="Cell",y=e=>r+e,w=(e,t)=>e.includes(t),L=(e,t)=>e.every(t),R=(e,t)=>C(e)===C(t)&&L(e,((e,n)=>t[n]===e)),I=(e,t)=>L(e,((n,r)=>0==r||t(e[r-1],n)<=0)),S=(e,t)=>e.sort(t),T=(e,t)=>e.forEach(t),b=(e,t)=>e.map(t),m=e=>E(e,((e,t)=>e+t),0),C=e=>e.length,x=e=>0==C(e),E=(e,t,n)=>e.reduce(t,n),P=(e,t,n)=>e.slice(t,n),k=(e,...t)=>e.push(...t),M=e=>e.pop(),A=e=>e.shift(),D=e=>JSON.stringify(e,((e,t)=>Q(t,Map)?E([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),O=JSON.parse,F=Math.max,j=Math.min,J=isFinite,Q=(e,t)=>e instanceof t,z=e=>null==e,N=(e,t,n)=>z(e)?null==n?void 0:n():t(e),W=e=>e==o||e==l,B=e=>n(e)==i,q=e=>Array.isArray(e),H=()=>{},$=e=>e.size,G=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},K=e=>z(e)||0==$(e),U=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},V=e=>e.clear(),X=(e,t)=>null==e?void 0:e.forEach(t),Y=(e,t)=>null==e?void 0:e.delete(t),Z=e=>new Map(e),_=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ee=(e,t)=>null==e?void 0:e.get(t),te=(e,t)=>X(e,((e,n)=>t(n,e))),ne=(e,t,n)=>z(n)?(Y(e,t),e):null==e?void 0:e.set(t,n),re=(e,t,n)=>(G(e,t)||ne(e,t,n()),ee(e,t)),oe=(e,t,n)=>{const r={},o=null!=t?t:e=>e;return X(e,((e,t)=>N(o(e),(e=>(null==n?void 0:n(e))?0:r[t]=e)))),r},le=(e,t)=>{const n=Z(),r=null!=t?t:e=>e;return X(e,((e,t)=>n.set(t,r(e)))),n},se=e=>le(e,le),ie=(e,t,n,r,o=0)=>N((n?re:ee)(e,t[o],o>C(t)-2?n:Z),(l=>{if(o>C(t)-2)return(null==r?void 0:r(l))&&ne(e,t[o]),l;const s=ie(l,t,n,r,o+1);return K(l)&&ne(e,t[o]),s})),ae=e=>new Set(q(e)||z(e)?e:[e]),de=(e,t)=>null==e?void 0:e.add(t),ce=(e,t,n)=>{const r=e.hasRow,o=Z(),l=Z(),s=Z(),i=Z(),a=Z(),d=(t,n,...r)=>{const o=re(a,t,ae);return T(r,(t=>de(o,t)&&n&&e.callListener(t))),r},c=(t,...n)=>N(ee(a,t),(r=>{T(x(n)?U(r):n,(t=>{e.delListener(t),Y(r,t)})),K(r)&&ne(a,t)})),u=(e,n)=>{ne(o,e,n),G(l,e)||(ne(l,e,t()),ne(s,e,Z()),ne(i,e,Z()))},v=e=>{ne(o,e),ne(l,e),ne(s,e),ne(i,e),c(e)};return[()=>e,()=>_(o),e=>te(l,e),e=>G(l,e),e=>ee(o,e),e=>ee(l,e),(e,t)=>ne(l,e,t),u,(t,o,l,a,v)=>{u(t,o);const f=Z(),h=Z(),g=ee(s,t),p=ee(i,t),y=t=>{const l=n=>e.getCell(o,t,n),s=ee(g,t),i=r(o,t)?n(a(l,t)):void 0;if(s===i||q(s)&&q(i)&&R(s,i)||ne(f,t,[s,i]),!z(v)){const e=ee(p,t),n=r(o,t)?v(l,t):void 0;e!=n&&ne(h,t,n)}},w=e=>{l((()=>{X(f,(([,e],t)=>ne(g,t,e))),X(h,((e,t)=>ne(p,t,e)))}),f,h,g,p,e),V(f),V(h)};te(g,y),e.hasTable(o)&&T(e.getRowIds(o),(e=>{G(g,e)||y(e)})),w(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,n)=>y(n))),e.addTableListener(o,(()=>w())))},v,()=>te(a,v),d,c]},ue=(e,t)=>n(e)==o?t=>t(e):null!=e?e:()=>null!=t?t:r,ve=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},fe=/^\d+$/,he=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=A(e))?n:r+t++},t=>{fe.test(t)&&C(e)<1e3&&k(e,t)}]},ge=e=>{let t;const[n,o]=he(),l=Z();return[(o,s,i)=>{null!=t||(t=e());const a=n();return ne(l,a,[o,s,i]),de(ie(s,null!=i?i:[r],ae),a),a},(e,n,...o)=>T(((e,t=[r])=>{const n=[],o=(e,r)=>r==C(t)?k(n,e):null===t[r]?X(e,(e=>o(e,r+1))):T([t[r],null],(t=>o(ee(e,t),r+1)));return o(e,0),n})(e,n),(e=>X(e,(e=>ee(l,e)[0](t,...null!=n?n:[],...o))))),e=>N(ee(l,e),(([,t,n])=>(ie(t,null!=n?n:[r],void 0,(t=>(Y(t,e),K(t)?1:0))),ne(l,e),o(e),n))),(e,n,r)=>N(ee(l,e),(([e,,o=[]])=>{const l=(...s)=>{const i=C(s);i==C(o)?e(t,...s,...r(s)):z(o[i])?T(n[i](...s),(e=>l(...s,e))):l(...s,o[i])};l()}))]},pe=Object,ye=pe.keys,we=pe.isFrozen,Le=pe.freeze,Re=(e,t)=>!z(((e,t)=>N(e,(e=>e[t])))(e,t)),Ie=(e,t)=>delete e[t],Se=(e,t)=>b(pe.entries(e),(([e,n])=>t(n,e))),Te=e=>x(ye(e)),be=e=>{const t=n(e);return W(t)||t==s&&J(e)?t:void 0},me=(e,t,n,r,o)=>z(o)?e.delCell(t,n,r,!0):e.setCell(t,n,r,o),Ce=ve((e=>{let t,n,o,l=100,s=Z(),i=1;const a=Z(),d=Z(),[c,u,v]=ge((()=>j)),f=Z(),h=Z(),g=[],p=[],y=(t,n)=>{i=0,e.transaction((()=>X(ee(f,n),((n,r)=>X(n,((n,o)=>X(n,((n,l)=>me(e,r,o,l,n[t]))))))))),i=1},L=e=>{ne(f,e),ne(h,e),u(d,[e])},R=(e,t)=>T(((e,t)=>e.splice(0,t))(e,null!=t?t:C(e)),L),I=()=>R(g,C(g)-l),S=e.addCellListener(null,null,null,((e,n,r,l,a,d)=>{if(i){N(t,(()=>{k(g,t),I(),R(p),t=void 0,o=1}));const e=re(s,n,Z),i=re(e,r,Z),c=re(i,l,(()=>[d,void 0]));c[1]=a,c[0]===a&&K(ne(i,l))&&K(ne(e,r))&&K(ne(s,n))&&(t=M(g),o=1),P()}})),b=(e="")=>(z(t)&&(t=r+n++,ne(f,t,s),O(t,e),s=Z(),o=1),t),m=()=>{x(g)||(((e,...t)=>{e.unshift(...t)})(p,b()),y(0,t),t=M(g),o=1)},E=()=>{x(p)||(k(g,t),t=A(p),y(1,t),o=1)},P=()=>{o&&(u(a),o=0)},D=e=>{const t=b(e);return P(),t},O=(e,t)=>(F(e)&&ee(h,e)!==t&&(ne(h,e,t),u(d,[e])),j),F=e=>G(f,e),j={setSize:e=>(l=e,I(),j),addCheckpoint:D,setCheckpoint:O,getStore:()=>e,getCheckpointIds:()=>[[...g],t,[...p]],forEachCheckpoint:e=>te(h,e),hasCheckpoint:F,getCheckpoint:e=>ee(h,e),goBackward:()=>(m(),P(),j),goForward:()=>(E(),P(),j),goTo:e=>{const n=w(g,e)?m:w(p,e)?E:null;for(;!z(n)&&e!=t;)n();return P(),j},addCheckpointIdsListener:e=>c(e,a),addCheckpointListener:(e,t)=>c(t,d,[e]),delListener:e=>(v(e),j),clear:()=>(R(g),R(p),z(t)||L(t),t=void 0,n=0,D(),j),destroy:()=>{e.delListener(S)},getListenerStats:()=>({})};return Le(j.clear())})),xe=(e,t)=>e<t?-1:1,Ee=ve((e=>{const t=Z(),n=Z(),[o,l,s,i,a,d,c,,u,v,f]=ce(e,Z,(e=>z(e)?r:q(e)?b(e,y):y(e))),[h,g,p]=ge((()=>L)),w=(t,n,r)=>{const o=a(t);X(r,((t,r)=>n(r,(n=>X(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},L={setIndexDefinition:(e,r,o,l,s,i=xe)=>{const a=z(s)?void 0:([e],[t])=>s(e,t);return u(e,r,((r,o,s,u,v,f)=>{let h=0;const p=ae(),y=ae(),w=d(e);if(X(o,(([e,t],n)=>{const r=ae(e),o=ae(t);X(r,(e=>Y(o,e)?Y(r,e):0)),X(r,(e=>{de(p,e),N(ee(w,e),(t=>{Y(t,n),K(t)&&(ne(w,e),h=1)}))})),X(o,(e=>{de(p,e),G(w,e)||(ne(w,e,ae()),h=1),de(ee(w,e),n),z(l)||de(y,e)}))})),r(),K(v)||(f?te(w,(e=>de(y,e))):te(s,(e=>N(ee(u,e),(e=>de(y,e))))),X(y,(e=>{const t=(t,n)=>i(ee(v,t),ee(v,n),e),n=[...ee(w,e)];I(n,t)||(ne(w,e,ae(S(n,t))),de(p,e))}))),(h||f)&&!z(a)){const t=[...w];I(t,a)||(c(e,Z(S(t,a))),h=1)}h&&g(t,[e]),X(p,(t=>g(n,[e,t])))}),ue(o),N(l,ue)),L},delIndexDefinition:e=>(v(e),L),getStore:o,getIndexIds:l,forEachIndex:e=>s(((t,n)=>e(t,(e=>w(t,e,n))))),forEachSlice:(e,t)=>w(e,t,d(e)),hasIndex:i,hasSlice:(e,t)=>G(d(e),t),getTableId:a,getSliceIds:e=>_(d(e)),getSliceRowIds:(e,t)=>U(ee(d(e),t)),addSliceIdsListener:(e,n)=>h(n,t,[e]),addSliceRowIdsListener:(e,t,r)=>h(r,n,[e,t]),delListener:e=>(p(e),L),destroy:f,getListenerStats:()=>({})};return Le(L)})),Pe=Z([["avg",[(e,t)=>m(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=>F(...e),(e,t)=>F(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:F(t,e)]],["min",[e=>j(...e),(e,t)=>j(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:j(t,e)]],["sum",[e=>m(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),ke=(e,t,n,r,o,l=!1)=>{if(K(n))return;const[s,i,a,d]=o;return l||(l=z(e)),X(r,(([n,r])=>{l||(e=z(n)?null==i?void 0:i(e,r,t++):z(r)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,r,n,t),l||(l=z(e)))})),l?s(U(n),$(n)):e},Me=ve((e=>{const t=Z(),[n,o,l,s,i,a,d,,c,u,v]=ce(e,H,(e=>isNaN(e)||z(e)||!0===e||!1===e||e===r?void 0:1*e)),[f,h,g]=ge((()=>p)),p={setMetricDefinition:(e,n,r,o,l,s,i)=>{var u;const v=B(r)?[r,l,s,i]:null!=(u=ee(Pe,r))?u:ee(Pe,"sum");return c(e,n,((n,r,o,l,s,i)=>{const c=a(e),u=$(l);i||(i=z(c)),n();let f=ke(c,u,l,r,v,i);J(f)||(f=void 0),f!=c&&(d(e,f),h(t,[e],f,c))}),ue(o,1)),p},delMetricDefinition:e=>(u(e),p),getStore:n,getMetricIds:o,forEachMetric:l,hasMetric:s,getTableId:i,getMetric:a,addMetricListener:(e,n)=>f(n,t,[e]),delListener:e=>(g(e),p),destroy:v,getListenerStats:()=>({})};return Le(p)}));var Ae=(e,t,n)=>new Promise(((r,o)=>{var l=e=>{try{i(n.next(e))}catch(e){o(e)}},s=e=>{try{i(n.throw(e))}catch(e){o(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const De=(e,t,n,o,l)=>{let s,i=0;const a={load:n=>Ae(void 0,null,(function*(){if(2!=i){i=1;const o=yield t();z(o)||o==r?e.setTables(n):e.setJson(o),i=0}return a})),startAutoLoad:e=>Ae(void 0,null,(function*(){return a.stopAutoLoad(),yield a.load(e),o(a.load),a})),stopAutoLoad:()=>(l(),a),save:()=>Ae(void 0,null,(function*(){return 1!=i&&(i=2,yield n(e.getJson()),i=0),a})),startAutoSave:()=>Ae(void 0,null,(function*(){return yield a.stopAutoSave().save(),s=e.addTablesListener((()=>a.save())),a})),stopAutoSave:()=>(N(s,e.delListener),a),getStore:()=>e,destroy:()=>a.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Le(a)};var Oe=(e,t,n)=>new Promise(((r,o)=>{var l=e=>{try{i(n.next(e))}catch(e){o(e)}},s=e=>{try{i(n.throw(e))}catch(e){o(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Fe="storage",je=globalThis.window,Je=(e,t,n)=>{let r;return De(e,(()=>Oe(void 0,null,(function*(){return n.getItem(t)}))),(e=>Oe(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{r=r=>{r.storageArea===n&&r.key===t&&e()},je.addEventListener(Fe,r)}),(()=>{je.removeEventListener(Fe,r),r=void 0}))};var Qe=(e,t,n)=>new Promise(((r,o)=>{var l=e=>{try{i(n.next(e))}catch(e){o(e)}},s=e=>{try{i(n.throw(e))}catch(e){o(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())})),ze=(e,t,n)=>new Promise(((r,o)=>{var l=e=>{try{i(n.next(e))}catch(e){o(e)}},s=e=>{try{i(n.throw(e))}catch(e){o(e)}},i=e=>e.done?r(e.value):Promise.resolve(e.value).then(l,s);i((n=n.apply(e,t)).next())}));const Ne=e=>e.headers.get("ETag");var We=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;const He=ve((e=>{const t=e.createStore,[n,o,l,s,i,,,a,,d,y,w,R]=ce(e,(()=>!0),H),I=t(),S=t(),b=Z(),m=(e,t,...n)=>T(n,(n=>de(re(re(b,t,Z),e,ae),n))),E=e=>{N(ee(b,e),(e=>{te(e,((e,t)=>X(t,(t=>e.delListener(t))))),V(e)})),T([S,I],(t=>t.delTable(e)))},M=(e,t,n)=>m(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),A={setQueryDefinition:(t,n,o)=>{a(t,n),E(t);const l=[],s=[[null,[n,null,null,[],Z()]]],i=[],d=[],c=[];o({select:(e,t)=>{const n=B(e)?[C(l)+r,e]:[z(t)?e:t,n=>n(e,t)];return k(l,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const r=z(n)||B(t)?null:t,o=z(r)?t:n,l=[e,[e,r,B(o)?o:e=>e(o),[],Z()]];return k(s,l),{as:e=>l[0]=e}},where:(e,t,n)=>k(i,B(e)?e:z(n)?n=>n(e)===t:r=>r(e,t)===n),group:(e,t,n,r,o)=>{var l;const s=[e,[e,B(t)?[t,n,r,o]:null!=(l=ee(Pe,t))?l:[(e,t)=>t]]];return k(d,s),{as:e=>s[0]=e}},having:(e,t)=>k(c,B(e)?e:n=>n(e)===t)});const u=Z(l);if(K(u))return A;const v=Z(s);te(v,((e,[,t])=>N(ee(v,t),(({3:t})=>z(e)?0:k(t,e)))));const f=Z(d);let h=I;if(K(f)&&x(c))h=S;else{M(t,h,S);const e=Z();te(f,((t,[n,r])=>de(re(e,n,ae),[t,r])));const n=ae();te(u,(t=>G(e,t)?0:de(n,t)));const r=Z(),o=(n,r,o,l)=>N(n,(([s,i,a,d])=>{te(r,((t,[n])=>{const r=re(s,t,Z),i=ee(r,o),a=l?void 0:n;if(i!==a){const n=ae([[i,a]]),l=$(r);ne(r,o,a),X(ee(e,t),(([e,t])=>{const o=ke(d[e],l,r,n,t);d[e]=z(be(o))?null:o}))}})),K(i)||!L(c,(e=>e((e=>d[e]))))?S.delRow(t,a):z(a)?n[2]=S.addRow(t,d):S.setRow(t,a,d)}));m(h,t,h.addRowListener(t,null,((l,s,i,a)=>{const d=[],c=[],u=Z(),v=h.hasRow(t,i);let f=!v;X(n,(e=>{const[n,r,o]=a(t,i,e);k(d,r),k(c,o),f||(f=n)})),te(e,(e=>{const[n,,r]=a(t,i,e);(f||n)&&ne(u,e,[r])})),f&&o(ie(r,d,void 0,(([,e])=>(Y(e,i),K(e)))),u,i,1),v&&o(ie(r,c,(()=>{const e={};return X(n,(n=>e[n]=h.getCell(t,i,n))),[Z(),ae(),void 0,e]}),(([,e])=>{de(e,i)})),u,i)})))}M(t,e,h);const g=(r,o,l,s)=>{const a=t=>e.getCell(o,l,t);T(s,(n=>{var o;const[l,,s,i,d]=ee(v,n),c=null==s?void 0:s(a,r),[u,f]=null!=(o=ee(d,r))?o:[];c!=u&&(z(f)||R(t,f),ne(d,r,z(c)?null:[c,...w(t,1,e.addRowListener(l,c,(()=>g(r,l,c,i))))]))})),(r=>{const o=(t,o)=>{var l,s,i;return e.getCell(...z(o)?[n,r,t]:t===n?[n,r,o]:[null==(l=ee(v,t))?void 0:l[0],null==(i=ee(null==(s=ee(v,t))?void 0:s[4],r))?void 0:i[0],o])};h.transaction((()=>L(i,(e=>e(o)))?te(u,((e,n)=>me(h,t,r,e,n(o,r)))):h.delRow(t,r)))})(r)},{3:p}=ee(v,null);return h.transaction((()=>w(t,1,e.addRowListener(n,null,((r,o,l)=>{e.hasRow(n,l)?g(l,n,l,p):(h.delRow(t,l),X(v,(({4:e})=>N(ee(e,l),(([,n])=>{R(t,n),ne(e,l)})))))}))))),A},delQueryDefinition:e=>(E(e),d(e),A),getStore:n,getQueryIds:o,forEachQuery:l,hasQuery:s,getTableId:i,delListener:e=>(S.delListener(e),A),destroy:y,getListenerStats:()=>((e,t)=>{var n={};for(var r in e)Be.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&We)for(var r of We(e))t.indexOf(r)<0&&qe.call(e,r)&&(n[r]=e[r]);return n})(S.getListenerStats(),["tables","tableIds","transaction"])};return Se({[f]:[1,1],[h]:[0,1],SortedRowIds:[0,5],Row:[1,2],[g]:[0,2],[p]:[1,3]},(([e,t],n)=>{T(e?["get","has","forEach"]:["get"],(e=>A[e+u+n]=(...t)=>S[e+n](...t))),A[v+u+n+c]=(...e)=>S[v+n+c](...P(e,0,t),((n,...r)=>e[t](A,...r)))})),Le(A)})),$e=ve((e=>{const t=Z(),n=Z(),o=Z(),l=Z(),[s,i,a,d,c,u,,,v,f,h]=ce(e,(()=>[Z(),Z(),Z(),Z()]),(e=>z(e)?void 0:e+r)),[g,p,y]=ge((()=>I)),w=(e,t,n)=>N(u(e),(([r,,o])=>{if(!G(o,t)){const l=ae();if(c(e)!=R(e))de(l,t);else{let e=t;for(;!z(e)&&!G(l,e);)de(l,e),e=ee(r,e)}if(n)return l;ne(o,t,l)}return ee(o,t)})),L=(e,t)=>N(u(e),(([,,e])=>ne(e,t))),R=e=>ee(t,e),I={setRelationshipDefinition:(e,r,s,i)=>(ne(t,e,s),v(e,r,((t,r)=>{const s=ae(),i=ae(),a=ae(),[d,c]=u(e);X(r,(([t,n],r)=>{z(t)||(de(i,t),N(ee(c,t),(e=>{Y(e,r),K(e)&&ne(c,t)}))),z(n)||(de(i,n),G(c,n)||ne(c,n,ae()),de(ee(c,n),r)),de(s,r),ne(d,r,n),te(ee(l,e),(t=>{G(w(e,t),r)&&de(a,t)}))})),t(),X(s,(t=>p(n,[e,t]))),X(i,(t=>p(o,[e,t]))),X(a,(t=>{L(e,t),p(l,[e,t])}))}),ue(i)),I),delRelationshipDefinition:e=>(ne(t,e),f(e),I),getStore:s,getRelationshipIds:i,forEachRelationship:t=>a((n=>t(n,(t=>e.forEachRow(c(n),t))))),hasRelationship:d,getLocalTableId:c,getRemoteTableId:R,getRemoteRowId:(e,t)=>{var n;return ee(null==(n=u(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return U(ee(null==(n=u(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>z(u(e))?[t]:U(w(e,t,!0)),addRemoteRowIdListener:(e,t,r)=>g(r,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(w(e,t),g(n,l,[e,t])),delListener:e=>(L(...y(e)),I),destroy:h,getListenerStats:()=>({})};return Le(I)})),Ge=e=>[e,e],Ke=()=>[Z(),Z()],Ue=(e,t,n,r=ne)=>{const o=(l=e=>!Re(t,e),_(e).filter(l));var l;return T(ye(t),(r=>n(e,r,t[r]))),T(o,(t=>r(e,t))),e},Ve=(e,t,n)=>z(e)||!(e=>Q(e,pe)&&e.constructor==pe)(e)||Te(e)||we(e)?(null==n||n(),!1):(Se(e,((n,r)=>{t(n,r)||Ie(e,r)})),!Te(e)),Xe=(e,t,n)=>ne(e,t,ee(e,t)==-n?void 0:n),Ye=()=>{let e,t,n=0;const r=Z(),o=Z(),l=Z(),i=Z(),d=Z(),u=Z(),L=Z(),I=Z(),m=Z(),C=Ke(),x=Ke(),E=Ke(),M=Ke(),A=Ke(),F=Ke(),j=Ke(),J=Ke(),Q=Ke(),q=Ke(),[H,$,U,ie]=ge((()=>at)),ce=(t,n)=>(!e||G(u,n)||ze(n))&&Ve(t,((e,t)=>ue(n,t,e)),(()=>ze(n))),ue=(e,t,n,r)=>Ve(r?n:fe(n,e,t),((r,o)=>N(ve(e,t,o,r),(e=>(n[o]=e,!0)),(()=>!1))),(()=>ze(e,t))),ve=(t,n,r,o)=>e?N(ee(ee(u,t),r),(e=>be(o)!=e.type?ze(t,n,r,o,e.default):o),(()=>ze(t,n,r,o))):z(be(o))?ze(t,n,r,o):o,fe=(e,t,n)=>(N(ee(L,t),(([r,o])=>{X(r,((t,n)=>{Re(e,n)||(e[n]=t)})),X(o,(r=>{Re(e,r)||ze(t,n,r)}))})),e),pe=e=>Ue(u,e,((e,t,n)=>{const r=Z(),o=ae();Ue(re(u,t,Z),n,((e,t,n)=>{ne(e,t,n),N(n.default,(e=>ne(r,t,e)),(()=>de(o,t)))})),ne(L,t,[r,o])}),((e,t)=>{ne(u,t),ne(L,t)})),ye=e=>Ue(m,e,((e,t,n)=>we(t,n)),((e,t)=>Ae(t))),we=(e,t)=>Ue(re(m,e,(()=>(Fe(e,1),Z()))),t,((t,n,r)=>Ce(e,t,n,r)),((t,n)=>De(e,t,n))),Ce=(e,t,n,r,o)=>Ue(re(t,n,(()=>(je(e,n,1),Z()))),r,((t,r,o)=>Ee(e,n,t,r,o)),((r,l)=>Oe(e,t,n,r,l,o))),Ee=(e,t,n,r,o)=>{G(n,r)||Je(e,t,r,1);const l=ee(n,r);o!==l&&(Qe(e,t,r,l,o),ne(n,r,o))},Pe=(e,t,n,r,o)=>N(ee(t,n),(t=>Ee(e,n,t,r,o)),(()=>Ce(e,t,n,fe({[r]:o},e,n)))),ke=e=>{const[t]=re(I,e,he),n=t();return G(ee(m,e),n)?ke(e):n},Me=e=>{var t;return null!=(t=ee(m,e))?t:we(e,{})},Ae=e=>we(e,{}),De=(e,t,n)=>{const[,r]=re(I,e,he);r(n),Ce(e,t,n,{},!0)},Oe=(e,t,n,r,o,l)=>{var s;const i=ee(null==(s=ee(L,e))?void 0:s[0],o);if(!z(i)&&!l)return Ee(e,n,r,o,i);const a=t=>{Qe(e,n,t,ee(r,t)),Je(e,n,t,-1),ne(r,t)};z(i)?a(o):te(r,a),K(r)&&(je(e,n,-1),K(ne(t,n))&&(Fe(e,-1),ne(m,e),ne(I,e)))},Fe=(e,t)=>Xe(r,e,t),je=(e,t,n)=>Xe(re(o,e,Z),t,n),Je=(e,t,n,r)=>Xe(re(re(l,e,Z),t,Z),n,r),Qe=(e,t,n,r,o)=>re(re(re(i,e,Z),t,Z),n,(()=>[r,0]))[1]=o,ze=(e,t,n,r,o)=>(k(re(re(re(d,e,Z),t,Z),n,(()=>[])),r),o),Ne=(e,t,n)=>N(ee(ee(ee(i,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(nt(e,t,n))])),We=e=>K(d)||K(Q[e])?0:X(e?le(d,se):d,((t,n)=>X(t,((t,r)=>X(t,((t,o)=>$(Q[e],[n,r,o],t))))))),Be=(e,t,n)=>{if(!K(t))return $(e,n),1},qe=e=>{const t=K(A[e]),n=K(j[e])&&K(M[e])&&t&&K(x[e]),s=K(J[e])&&K(F[e])&&K(E[e])&&K(C[e]);if(!n||!s){const a=e?[le(r),se(o),le(l,se),le(i,se)]:[r,o,l,i];if(!n){X(a[2],((t,n)=>X(t,((t,r)=>Be(j[e],t,[n,r])))));const n=ae();X(a[1],((r,o)=>{Be(M[e],r,[o])&&!t&&($(A[e],[o,null]),de(n,o))})),t||X(a[3],((t,r)=>{if(!G(n,r)){const n=ae();X(t,(e=>X(e,(([t,r],o)=>r!==t?de(n,o):Y(e,o))))),X(n,(t=>$(A[e],[r,t])))}})),Be(x[e],a[0])}if(!s){let t;X(a[3],((n,r)=>{let o;X(n,((n,l)=>{let s;X(n,(([n,i],a)=>{i!==n&&($(J[e],[r,l,a],i,n,Ne),t=o=s=1)})),s&&$(F[e],[r,l],Ne)})),o&&$(E[e],[r],Ne)})),t&&$(C[e],void 0,Ne)}}},He=(e,...t)=>(lt((()=>e(...b(t,y)))),at),$e=()=>oe(m,(e=>oe(e,oe))),Ze=()=>_(m),_e=e=>_(ee(m,y(e))),et=(e,t,n,r=0,o)=>{return b(P(S((l=ee(m,y(e)),s=(e,n)=>[z(t)?n:ee(e,y(t)),n],b([...null!=(i=null==l?void 0:l.entries())?i:[]],(([e,t])=>s(t,e)))),(([e],[t])=>xe(e,t)*(n?-1:1))),r,z(o)?o:r+o),(([,e])=>e));var l,s,i},tt=(e,t)=>_(ee(ee(m,y(e)),y(t))),nt=(e,t,n)=>ee(ee(ee(m,y(e)),y(t)),y(n)),rt=e=>He((()=>(e=>Ve(e,ce,ze))(e)?ye(e):0)),ot=()=>He((()=>ye({}))),lt=(e,t)=>{if(-1==n)return;st();const r=e();return it(t),r},st=()=>(n++,at),it=e=>(n>0&&(n--,0==n&&(t=!K(i),n=1,We(1),t&&qe(1),n=-1,(null==e?void 0:e(oe(i,(e=>oe(e,(e=>oe(e,(e=>[...e]),(([e,t])=>e===t))),Te)),Te),oe(d,(e=>oe(e,oe)))))&&(n=1,X(i,((e,t)=>X(e,((e,n)=>X(e,(([e],r)=>me(at,t,n,r,e))))))),n=-1,t=!1),$(q[0],void 0,t),We(0),t&&qe(0),$(q[1],void 0,t),n=0,T([i,d,r,o,l],V))),at),at={getTables:$e,getTableIds:Ze,getTable:e=>oe(ee(m,y(e)),oe),getRowIds:_e,getSortedRowIds:et,getRow:(e,t)=>oe(ee(ee(m,y(e)),y(t))),getCellIds:tt,getCell:nt,hasTables:()=>!K(m),hasTable:e=>G(m,y(e)),hasRow:(e,t)=>G(ee(m,y(e)),y(t)),hasCell:(e,t,n)=>G(ee(ee(m,y(e)),y(t)),y(n)),getJson:()=>D(m),getSchemaJson:()=>D(u),setTables:rt,setTable:(e,t)=>He((e=>ce(t,e)?we(e,t):0),e),setRow:(e,t,n)=>He(((e,t)=>ue(y(e),y(t),n)?Ce(y(e),Me(y(e)),y(t),n):0),e,t),addRow:(e,t)=>lt((()=>{let n;return ue(e,n,t)&&(e=y(e),Ce(e,Me(e),n=ke(e),t)),n})),setPartialRow:(e,t,n)=>He(((e,t)=>{if(ue(e,t,n,1)){const r=Me(e);Se(n,((n,o)=>Pe(e,r,t,o,n)))}}),e,t),setCell:(e,t,n,r)=>He(((e,t,n)=>N(ve(e,t,n,B(r)?r(nt(e,t,n)):r),(r=>Pe(e,Me(e),t,n,r)))),e,t,n),setJson:e=>{try{"{}"===e?ot():rt(O(e))}catch(e){}return at},setSchema:t=>He((()=>{if((e=(e=>Ve(e,(e=>Ve(e,(e=>{if(!Ve(e,((e,t)=>w(["type",a],t))))return!1;const t=e.type;return!(!W(t)&&t!=s||(be(e.default)!=t&&Ie(e,a),0))})))))(t))&&(pe(t),!K(m))){const e=$e();ot(),rt(e)}})),delTables:ot,delTable:e=>He((e=>G(m,e)?Ae(e):0),e),delRow:(e,t)=>He(((e,t)=>N(ee(m,e),(n=>G(n,t)?De(e,n,t):0))),e,t),delCell:(e,t,n,r)=>He(((e,t,n)=>N(ee(m,e),(o=>N(ee(o,t),(l=>G(l,n)?Oe(e,o,t,l,n,r):0))))),e,t,n),delSchema:()=>He((()=>{pe({}),e=!1})),transaction:lt,startTransaction:st,finishTransaction:it,forEachTable:e=>X(m,((t,n)=>e(n,(e=>X(t,((t,n)=>e(n,(e=>te(t,e))))))))),forEachRow:(e,t)=>X(ee(m,y(e)),((e,n)=>t(n,(t=>te(e,t))))),forEachCell:(e,t,n)=>te(ee(ee(m,y(e)),y(t)),n),addSortedRowIdsListener:(e,t,n,r,o,l,s)=>{let i=et(e,t,n,r,o);return H((()=>{const s=et(e,t,n,r,o);R(s,i)||(i=s,l(at,e,t,n,r,o,i))}),A[s?1:0],[e,t])},addWillFinishTransactionListener:e=>H(e,q[0]),addDidFinishTransactionListener:e=>H(e,q[1]),callListener:e=>(ie(e,[Ze,_e,tt],(e=>z(e[2])?[]:Ge(nt(...e)))),at),delListener:e=>(U(e),at),getListenerStats:()=>({}),createStore:Ye};return Se({Tables:[0,C],TableIds:[0,x],[f]:[1,E],[h]:[1,M],Row:[2,F],[g]:[2,j],[p]:[3,J],InvalidCell:[3,Q]},(([e,t],n)=>{at[v+n+c]=(...n)=>H(n[e],t[n[e+1]?1:0],e>0?P(n,0,e):void 0)})),Le(at)};e.createCheckpoints=Ce,e.createCustomPersister=De,e.createFilePersister=(e,n)=>{let r;return De(e,(()=>Qe(void 0,null,(function*(){try{return yield t.promises.readFile(n,d)}catch(e){}}))),(e=>Qe(void 0,null,(function*(){try{yield t.promises.writeFile(n,e,d)}catch(e){}}))),(e=>{r=t.watch(n,e)}),(()=>{null==r||r.close(),r=void 0}))},e.createIndexes=Ee,e.createLocalPersister=(e,t)=>Je(e,t,localStorage),e.createMetrics=Me,e.createQueries=He,e.createRelationships=$e,e.createRemotePersister=(e,t,n,r)=>{let o,l;return De(e,(()=>ze(void 0,null,(function*(){const e=yield fetch(t);return l=Ne(e),e.text()}))),(e=>ze(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{o=setInterval((()=>ze(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),r=Ne(n);z(l)||z(r)||r==l||(l=r,e())}))),1e3*r)}),(()=>{N(o,clearInterval),o=void 0}))},e.createSessionPersister=(e,t)=>Je(e,t,sessionStorage),e.createStore=Ye,e.defaultSorter=xe},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
1
+ var e,t;e=this,t=function(e,t){"use strict";const n=e=>typeof e,s="",l=n(s),o=n(!0),r=n(0),a=n(n),i="default",d="utf8",c="Listener",u="Result",v="add",h="Table",f="RowIds",g="CellIds",p="Cell",y=e=>s+e,L=(e,t)=>e.includes(t),w=(e,t)=>e.every(t),S=(e,t)=>C(e)===C(t)&&w(e,((e,n)=>t[n]===e)),I=(e,t)=>w(e,((n,s)=>0==s||t(e[s-1],n)<=0)),R=(e,t)=>e.sort(t),T=(e,t)=>e.forEach(t),b=(e,t)=>e.map(t),m=e=>x(e,((e,t)=>e+t),0),C=e=>e.length,V=e=>0==C(e),x=(e,t,n)=>e.reduce(t,n),E=(e,t,n)=>e.slice(t,n),P=(e,...t)=>e.push(...t),k=e=>e.pop(),J=e=>e.shift(),M=e=>JSON.stringify(e,((e,t)=>j(t,Map)?x([...t],((e,[t,n])=>(e[t]=n,e)),{}):t)),A=JSON.parse,D=Math.max,O=Math.min,F=isFinite,j=(e,t)=>e instanceof t,Q=e=>null==e,z=(e,t,n)=>Q(e)?null==n?void 0:n():t(e),N=e=>e==l||e==o,W=e=>n(e)==a,B=e=>Array.isArray(e),q=()=>{},H=e=>e.size,$=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},G=e=>Q(e)||0==H(e),K=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},U=e=>e.clear(),X=(e,t)=>null==e?void 0:e.forEach(t),Y=(e,t)=>null==e?void 0:e.delete(t),Z=e=>new Map(e),_=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ee=(e,t)=>null==e?void 0:e.get(t),te=(e,t)=>X(e,((e,n)=>t(n,e))),ne=(e,t,n)=>Q(n)?(Y(e,t),e):null==e?void 0:e.set(t,n),se=(e,t,n)=>($(e,t)||ne(e,t,n()),ee(e,t)),le=(e,t,n)=>{const s={},l=null!=t?t:e=>e;return X(e,((e,t)=>z(l(e),(e=>(null==n?void 0:n(e))?0:s[t]=e)))),s},oe=(e,t)=>{const n=Z(),s=null!=t?t:e=>e;return X(e,((e,t)=>n.set(t,s(e)))),n},re=e=>oe(e,oe),ae=(e,t,n,s,l=0)=>z((n?se:ee)(e,t[l],l>C(t)-2?n:Z),(o=>{if(l>C(t)-2)return(null==s?void 0:s(o))&&ne(e,t[l]),o;const r=ae(o,t,n,s,l+1);return G(o)&&ne(e,t[l]),r})),ie=e=>{const t=n(e);return N(t)||t==r&&F(e)?t:void 0},de=(e,t,n,s,l)=>Q(l)?e.delCell(t,n,s,!0):e.setCell(t,n,s,l),ce=(e,t,n)=>Q(n)?e.delValue(t):e.setValue(t,n),ue=e=>new Set(B(e)||Q(e)?e:[e]),ve=(e,t)=>null==e?void 0:e.add(t),he=(e,t,n)=>{const s=e.hasRow,l=Z(),o=Z(),r=Z(),a=Z(),i=Z(),d=(t,n,...s)=>{const l=se(i,t,ue);return T(s,(t=>ve(l,t)&&n&&e.callListener(t))),s},c=(t,...n)=>z(ee(i,t),(s=>{T(V(n)?K(s):n,(t=>{e.delListener(t),Y(s,t)})),G(s)&&ne(i,t)})),u=(e,n)=>{ne(l,e,n),$(o,e)||(ne(o,e,t()),ne(r,e,Z()),ne(a,e,Z()))},v=e=>{ne(l,e),ne(o,e),ne(r,e),ne(a,e),c(e)};return[()=>e,()=>_(l),e=>te(o,e),e=>$(o,e),e=>ee(l,e),e=>ee(o,e),(e,t)=>ne(o,e,t),u,(t,l,o,i,v)=>{u(t,l);const h=Z(),f=Z(),g=ee(r,t),p=ee(a,t),y=t=>{const o=n=>e.getCell(l,t,n),r=ee(g,t),a=s(l,t)?n(i(o,t)):void 0;if(r===a||B(r)&&B(a)&&S(r,a)||ne(h,t,[r,a]),!Q(v)){const e=ee(p,t),n=s(l,t)?v(o,t):void 0;e!=n&&ne(f,t,n)}},L=e=>{o((()=>{X(h,(([,e],t)=>ne(g,t,e))),X(f,((e,t)=>ne(p,t,e)))}),h,f,g,p,e),U(h),U(f)};te(g,y),e.hasTable(l)&&T(e.getRowIds(l),(e=>{$(g,e)||y(e)})),L(!0),c(t),d(t,0,e.addRowListener(l,null,((e,t,n)=>y(n))),e.addTableListener(l,(()=>L())))},v,()=>te(i,v),d,c]},fe=(e,t)=>n(e)==l?t=>t(e):null!=e?e:()=>null!=t?t:s,ge=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},pe=/^\d+$/,ye=()=>{const e=[];let t=0;return[()=>{var n;return null!=(n=J(e))?n:s+t++},t=>{pe.test(t)&&C(e)<1e3&&P(e,t)}]},Le=e=>{let t;const[n,l]=ye(),o=Z();return[(l,r,a,i=[],d=(()=>[]))=>{null!=t||(t=e());const c=n();return ne(o,c,[l,r,a,i,d]),ve(ae(r,null!=a?a:[s],ue),c),c},(e,n,...l)=>T(((e,t=[s])=>{const n=[],l=(e,s)=>s==C(t)?P(n,e):null===t[s]?X(e,(e=>l(e,s+1))):T([t[s],null],(t=>l(ee(e,t),s+1)));return l(e,0),n})(e,n),(e=>X(e,(e=>ee(o,e)[0](t,...null!=n?n:[],...l))))),e=>z(ee(o,e),(([,t,n])=>(ae(t,null!=n?n:[s],void 0,(t=>(Y(t,e),G(t)?1:0))),ne(o,e),l(e),n))),e=>z(ee(o,e),(([e,,n=[],s,l])=>{const o=(...r)=>{var a,i;const d=C(r);d==C(n)?e(t,...r,...l(r)):Q(n[d])?T(null!=(i=null==(a=s[d])?void 0:a.call(s,...r))?i:[],(e=>o(...r,e))):o(...r,n[d])};o()}))]},we=Object,Se=we.keys,Ie=we.isFrozen,Re=we.freeze,Te=e=>j(e,we)&&e.constructor==we,be=(e,t)=>!Q(((e,t)=>z(e,(e=>e[t])))(e,t)),me=(e,t)=>delete e[t],Ce=(e,t)=>b(we.entries(e),(([e,n])=>t(n,e))),Ve=e=>Te(e)&&V(Se(e)),xe=ge((e=>{let t,n,l,o=100,r=Z(),a=Z(),i=1;const d=Z(),c=Z(),[u,v,h]=Le((()=>W)),f=Z(),g=Z(),p=[],y=[],w=(t,n)=>{i=0,e.transaction((()=>{const[s,l]=ee(f,n);X(s,((n,s)=>X(n,((n,l)=>X(n,((n,o)=>de(e,s,l,o,n[t]))))))),X(l,((n,s)=>ce(e,s,n[t])))})),i=1},S=e=>{ne(f,e),ne(g,e),v(c,[e])},I=(e,t)=>T(((e,t)=>e.splice(0,t))(e,null!=t?t:C(e)),S),R=()=>I(p,C(p)-o),b=()=>z(t,(()=>{P(p,t),R(),I(y),t=void 0,l=1})),m=()=>{t=k(p),l=1},x=e.addCellListener(null,null,null,((e,t,n,s,l,o)=>{if(i){b();const e=se(r,t,Z),a=se(e,n,Z),i=se(a,s,(()=>[o,void 0]));i[1]=l,i[0]===l&&G(ne(a,s))&&G(ne(e,n))&&G(ne(r,t))&&m(),O()}})),E=e.addValueListener(null,((e,t,n,s)=>{if(i){b();const e=se(a,t,(()=>[s,void 0]));e[1]=n,e[0]===n&&G(ne(a,t))&&m(),O()}})),M=(e="")=>(Q(t)&&(t=s+n++,ne(f,t,[r,a]),j(t,e),r=Z(),a=Z(),l=1),t),A=()=>{V(p)||(((e,...t)=>{e.unshift(...t)})(y,M()),w(0,t),t=k(p),l=1)},D=()=>{V(y)||(P(p,t),t=J(y),w(1,t),l=1)},O=()=>{l&&(v(d),l=0)},F=e=>{const t=M(e);return O(),t},j=(e,t)=>(N(e)&&ee(g,e)!==t&&(ne(g,e,t),v(c,[e])),W),N=e=>$(f,e),W={setSize:e=>(o=e,R(),W),addCheckpoint:F,setCheckpoint:j,getStore:()=>e,getCheckpointIds:()=>[[...p],t,[...y]],forEachCheckpoint:e=>te(g,e),hasCheckpoint:N,getCheckpoint:e=>ee(g,e),goBackward:()=>(A(),O(),W),goForward:()=>(D(),O(),W),goTo:e=>{const n=L(p,e)?A:L(y,e)?D:null;for(;!Q(n)&&e!=t;)n();return O(),W},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),W),clear:()=>(I(p),I(y),Q(t)||S(t),t=void 0,n=0,F(),W),destroy:()=>{e.delListener(x),e.delListener(E)},getListenerStats:()=>({})};return Re(W.clear())})),Ee=(e,t)=>e<t?-1:1,Pe=ge((e=>{const t=Z(),n=Z(),[l,o,r,a,i,d,c,,u,v,h]=he(e,Z,(e=>Q(e)?s:B(e)?b(e,y):y(e))),[f,g,p]=Le((()=>w)),L=(t,n,s)=>{const l=i(t);X(s,((t,s)=>n(s,(n=>X(t,(t=>n(t,(n=>e.forEachCell(l,t,n)))))))))},w={setIndexDefinition:(e,s,l,o,r,a=Ee)=>{const i=Q(r)?void 0:([e],[t])=>r(e,t);return u(e,s,((s,l,r,u,v,h)=>{let f=0;const p=ue(),y=ue(),L=d(e);if(X(l,(([e,t],n)=>{const s=ue(e),l=ue(t);X(s,(e=>Y(l,e)?Y(s,e):0)),X(s,(e=>{ve(p,e),z(ee(L,e),(t=>{Y(t,n),G(t)&&(ne(L,e),f=1)}))})),X(l,(e=>{ve(p,e),$(L,e)||(ne(L,e,ue()),f=1),ve(ee(L,e),n),Q(o)||ve(y,e)}))})),s(),G(v)||(h?te(L,(e=>ve(y,e))):te(r,(e=>z(ee(u,e),(e=>ve(y,e))))),X(y,(e=>{const t=(t,n)=>a(ee(v,t),ee(v,n),e),n=[...ee(L,e)];I(n,t)||(ne(L,e,ue(R(n,t))),ve(p,e))}))),(f||h)&&!Q(i)){const t=[...L];I(t,i)||(c(e,Z(R(t,i))),f=1)}f&&g(t,[e]),X(p,(t=>g(n,[e,t])))}),fe(l),z(o,fe)),w},delIndexDefinition:e=>(v(e),w),getStore:l,getIndexIds:o,forEachIndex:e=>r(((t,n)=>e(t,(e=>L(t,e,n))))),forEachSlice:(e,t)=>L(e,t,d(e)),hasIndex:a,hasSlice:(e,t)=>$(d(e),t),getTableId:i,getSliceIds:e=>_(d(e)),getSliceRowIds:(e,t)=>K(ee(d(e),t)),addSliceIdsListener:(e,n)=>f(n,t,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(p(e),w),destroy:h,getListenerStats:()=>({})};return Re(w)})),ke=Z([["avg",[(e,t)=>m(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,s)=>e+(t-n)/s]],["max",[e=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:D(t,e)]],["min",[e=>O(...e),(e,t)=>O(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:O(t,e)]],["sum",[e=>m(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),Je=(e,t,n,s,l,o=!1)=>{if(G(n))return;const[r,a,i,d]=l;return o||(o=Q(e)),X(s,(([n,s])=>{o||(e=Q(n)?null==a?void 0:a(e,s,t++):Q(s)?null==i?void 0:i(e,n,t--):null==d?void 0:d(e,s,n,t),o||(o=Q(e)))})),o?r(K(n),H(n)):e},Me=ge((e=>{const t=Z(),[n,l,o,r,a,i,d,,c,u,v]=he(e,q,(e=>isNaN(e)||Q(e)||!0===e||!1===e||e===s?void 0:1*e)),[h,f,g]=Le((()=>p)),p={setMetricDefinition:(e,n,s,l,o,r,a)=>{var u;const v=W(s)?[s,o,r,a]:null!=(u=ee(ke,s))?u:ee(ke,"sum");return c(e,n,((n,s,l,o,r,a)=>{const c=i(e),u=H(o);a||(a=Q(c)),n();let h=Je(c,u,o,s,v,a);F(h)||(h=void 0),h!=c&&(d(e,h),f(t,[e],h,c))}),fe(l,1)),p},delMetricDefinition:e=>(u(e),p),getStore:n,getMetricIds:l,forEachMetric:o,hasMetric:r,getTableId:a,getMetric:i,addMetricListener:(e,n)=>h(n,t,[e]),delListener:e=>(g(e),p),destroy:v,getListenerStats:()=>({})};return Re(p)}));var Ae=(e,t,n)=>new Promise(((s,l)=>{var o=e=>{try{a(n.next(e))}catch(e){l(e)}},r=e=>{try{a(n.throw(e))}catch(e){l(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const De=(e,t,n,l,o)=>{let r,a,i=0;const d={load:(n,l)=>Ae(void 0,null,(function*(){if(2!=i){i=1;const o=yield t();Q(o)||o==s?e.transaction((()=>e.setTables(n).setValues(l))):e.setJson(o),i=0}return d})),startAutoLoad:(e,t)=>Ae(void 0,null,(function*(){return d.stopAutoLoad(),yield d.load(e,t),l(d.load),d})),stopAutoLoad:()=>(o(),d),save:()=>Ae(void 0,null,(function*(){return 1!=i&&(i=2,yield n(e.getJson()),i=0),d})),startAutoSave:()=>Ae(void 0,null,(function*(){return yield d.stopAutoSave().save(),r=e.addTablesListener(d.save),a=e.addValuesListener(d.save),d})),stopAutoSave:()=>(z(r,e.delListener),z(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Re(d)};var Oe=(e,t,n)=>new Promise(((s,l)=>{var o=e=>{try{a(n.next(e))}catch(e){l(e)}},r=e=>{try{a(n.throw(e))}catch(e){l(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const Fe="storage",je=globalThis.window,Qe=(e,t,n)=>{let s;return De(e,(()=>Oe(void 0,null,(function*(){return n.getItem(t)}))),(e=>Oe(void 0,null,(function*(){return n.setItem(t,e)}))),(e=>{s=s=>{s.storageArea===n&&s.key===t&&e()},je.addEventListener(Fe,s)}),(()=>{je.removeEventListener(Fe,s),s=void 0}))};var ze=(e,t,n)=>new Promise(((s,l)=>{var o=e=>{try{a(n.next(e))}catch(e){l(e)}},r=e=>{try{a(n.throw(e))}catch(e){l(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())})),Ne=(e,t,n)=>new Promise(((s,l)=>{var o=e=>{try{a(n.next(e))}catch(e){l(e)}},r=e=>{try{a(n.throw(e))}catch(e){l(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(o,r);a((n=n.apply(e,t)).next())}));const We=e=>e.headers.get("ETag");var Be=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;const $e=ge((e=>{const t=e.createStore,[n,l,o,r,a,,,i,,d,y,L,S]=he(e,(()=>!0),q),I=t(),R=t(),b=Z(),m=(e,t,...n)=>T(n,(n=>ve(se(se(b,t,Z),e,ue),n))),x=e=>{z(ee(b,e),(e=>{te(e,((e,t)=>X(t,(t=>e.delListener(t))))),U(e)})),T([R,I],(t=>t.delTable(e)))},k=(e,t,n)=>m(t,e,t.addWillFinishTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),J={setQueryDefinition:(t,n,l)=>{i(t,n),x(t);const o=[],r=[[null,[n,null,null,[],Z()]]],a=[],d=[],c=[];l({select:(e,t)=>{const n=W(e)?[C(o)+s,e]:[Q(t)?e:t,n=>n(e,t)];return P(o,n),{as:e=>n[0]=e}},join:(e,t,n)=>{const s=Q(n)||W(t)?null:t,l=Q(s)?t:n,o=[e,[e,s,W(l)?l:e=>e(l),[],Z()]];return P(r,o),{as:e=>o[0]=e}},where:(e,t,n)=>P(a,W(e)?e:Q(n)?n=>n(e)===t:s=>s(e,t)===n),group:(e,t,n,s,l)=>{var o;const r=[e,[e,W(t)?[t,n,s,l]:null!=(o=ee(ke,t))?o:[(e,t)=>t]]];return P(d,r),{as:e=>r[0]=e}},having:(e,t)=>P(c,W(e)?e:n=>n(e)===t)});const u=Z(o);if(G(u))return J;const v=Z(r);te(v,((e,[,t])=>z(ee(v,t),(({3:t})=>Q(e)?0:P(t,e)))));const h=Z(d);let f=I;if(G(h)&&V(c))f=R;else{k(t,f,R);const e=Z();te(h,((t,[n,s])=>ve(se(e,n,ue),[t,s])));const n=ue();te(u,(t=>$(e,t)?0:ve(n,t)));const s=Z(),l=(n,s,l,o)=>z(n,(([r,a,i,d])=>{te(s,((t,[n])=>{const s=se(r,t,Z),a=ee(s,l),i=o?void 0:n;if(a!==i){const n=ue([[a,i]]),o=H(s);ne(s,l,i),X(ee(e,t),(([e,t])=>{const l=Je(d[e],o,s,n,t);d[e]=Q(ie(l))?null:l}))}})),G(a)||!w(c,(e=>e((e=>d[e]))))?R.delRow(t,i):Q(i)?n[2]=R.addRow(t,d):R.setRow(t,i,d)}));m(f,t,f.addRowListener(t,null,((o,r,a,i)=>{const d=[],c=[],u=Z(),v=f.hasRow(t,a);let h=!v;X(n,(e=>{const[n,s,l]=i(t,a,e);P(d,s),P(c,l),h||(h=n)})),te(e,(e=>{const[n,,s]=i(t,a,e);(h||n)&&ne(u,e,[s])})),h&&l(ae(s,d,void 0,(([,e])=>(Y(e,a),G(e)))),u,a,1),v&&l(ae(s,c,(()=>{const e={};return X(n,(n=>e[n]=f.getCell(t,a,n))),[Z(),ue(),void 0,e]}),(([,e])=>{ve(e,a)})),u,a)})))}k(t,e,f);const g=(s,l,o,r)=>{const i=t=>e.getCell(l,o,t);T(r,(n=>{var l;const[o,,r,a,d]=ee(v,n),c=null==r?void 0:r(i,s),[u,h]=null!=(l=ee(d,s))?l:[];c!=u&&(Q(h)||S(t,h),ne(d,s,Q(c)?null:[c,...L(t,1,e.addRowListener(o,c,(()=>g(s,o,c,a))))]))})),(s=>{const l=(t,l)=>{var o,r,a;return e.getCell(...Q(l)?[n,s,t]:t===n?[n,s,l]:[null==(o=ee(v,t))?void 0:o[0],null==(a=ee(null==(r=ee(v,t))?void 0:r[4],s))?void 0:a[0],l])};f.transaction((()=>w(a,(e=>e(l)))?te(u,((e,n)=>de(f,t,s,e,n(l,s)))):f.delRow(t,s)))})(s)},{3:p}=ee(v,null);return f.transaction((()=>L(t,1,e.addRowListener(n,null,((s,l,o)=>{e.hasRow(n,o)?g(o,n,o,p):(f.delRow(t,o),X(v,(({4:e})=>z(ee(e,o),(([,n])=>{S(t,n),ne(e,o)})))))}))))),J},delQueryDefinition:e=>(x(e),d(e),J),getStore:n,getQueryIds:l,forEachQuery:o,hasQuery:r,getTableId:a,delListener:e=>(R.delListener(e),J),destroy:y,getListenerStats:()=>((e,t)=>{var n={};for(var s in e)qe.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&Be)for(var s of Be(e))t.indexOf(s)<0&&He.call(e,s)&&(n[s]=e[s]);return n})(R.getListenerStats(),["tables","tableIds","transaction"])};return Ce({[h]:[1,1],[f]:[0,1],SortedRowIds:[0,5],Row:[1,2],[g]:[0,2],[p]:[1,3]},(([e,t],n)=>{T(e?["get","has","forEach"]:["get"],(e=>J[e+u+n]=(...t)=>R[e+n](...t))),J[v+u+n+c]=(...e)=>R[v+n+c](...E(e,0,t),((n,...s)=>e[t](J,...s)))})),Re(J)})),Ge=ge((e=>{const t=Z(),n=Z(),l=Z(),o=Z(),[r,a,i,d,c,u,,,v,h,f]=he(e,(()=>[Z(),Z(),Z(),Z()]),(e=>Q(e)?void 0:e+s)),[g,p,y]=Le((()=>I)),L=(e,t,n)=>z(u(e),(([s,,l])=>{if(!$(l,t)){const o=ue();if(c(e)!=S(e))ve(o,t);else{let e=t;for(;!Q(e)&&!$(o,e);)ve(o,e),e=ee(s,e)}if(n)return o;ne(l,t,o)}return ee(l,t)})),w=(e,t)=>z(u(e),(([,,e])=>ne(e,t))),S=e=>ee(t,e),I={setRelationshipDefinition:(e,s,r,a)=>(ne(t,e,r),v(e,s,((t,s)=>{const r=ue(),a=ue(),i=ue(),[d,c]=u(e);X(s,(([t,n],s)=>{Q(t)||(ve(a,t),z(ee(c,t),(e=>{Y(e,s),G(e)&&ne(c,t)}))),Q(n)||(ve(a,n),$(c,n)||ne(c,n,ue()),ve(ee(c,n),s)),ve(r,s),ne(d,s,n),te(ee(o,e),(t=>{$(L(e,t),s)&&ve(i,t)}))})),t(),X(r,(t=>p(n,[e,t]))),X(a,(t=>p(l,[e,t]))),X(i,(t=>{w(e,t),p(o,[e,t])}))}),fe(a)),I),delRelationshipDefinition:e=>(ne(t,e),h(e),I),getStore:r,getRelationshipIds:a,forEachRelationship:t=>i((n=>t(n,(t=>e.forEachRow(c(n),t))))),hasRelationship:d,getLocalTableId:c,getRemoteTableId:S,getRemoteRowId:(e,t)=>{var n;return ee(null==(n=u(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return K(ee(null==(n=u(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>Q(u(e))?[t]:K(L(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>g(s,n,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,l,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(L(e,t),g(n,o,[e,t])),delListener:e=>(w(...y(e)),I),destroy:f,getListenerStats:()=>({})};return Re(I)})),Ke=e=>[e,e],Ue=()=>[Z(),Z()],Xe=(e,t,n,s=ne)=>{const l=(o=e=>!be(t,e),_(e).filter(o));var o;return T(Se(t),(s=>n(e,s,t[s]))),T(l,(t=>s(e,t))),e},Ye=(e,t,n)=>Q(e)||!Te(e)||Ve(e)||Ie(e)?(null==n||n(),!1):(Ce(e,((n,s)=>{t(n,s)||me(e,s)})),!Ve(e)),Ze=(e,t,n)=>ne(e,t,ee(e,t)==-n?void 0:n),_e=()=>{let e,t,n,s,l=0;const o=Z(),a=Z(),d=Z(),u=Z(),w=Z(),I=Z(),m=Z(),C=Z(),V=Z(),x=Z(),k=Z(),J=Z(),D=ue(),O=Z(),F=Z(),j=Z(),B=Ue(),q=Ue(),H=Ue(),K=Ue(),ae=Ue(),he=Ue(),fe=Ue(),ge=Ue(),pe=Ue(),we=Ue(),Se=Ue(),Ie=Ue(),Te=Ue(),xe=Ue(),[Pe,ke,Je,Me]=Le((()=>Gt)),Ae=e=>{if(!Ye(e,((e,t)=>L(["type",i],t))))return!1;const t=e.type;return!(!N(t)&&t!=r||(ie(e.default)!=t&&me(e,i),0))},De=(t,n)=>(!e||$(V,n)||yt(n))&&Ye(t,((e,t)=>Oe(n,t,e)),(()=>yt(n))),Oe=(e,t,n,s)=>Ye(s?n:ze(n,e,t),((s,l)=>z(Fe(e,t,l,s),(e=>(n[l]=e,!0)),(()=>!1))),(()=>yt(e,t))),Fe=(t,n,s,l)=>e?z(ee(ee(V,t),s),(e=>ie(l)!=e.type?yt(t,n,s,l,e.default):l),(()=>yt(t,n,s,l))):Q(ie(l))?yt(t,n,s,l):l,je=(e,t)=>Ye(t?e:Ne(e),((t,n)=>z(Qe(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>Lt())),Qe=(e,n)=>t?z(ee(k,e),(t=>ie(n)!=t.type?Lt(e,n,t.default):n),(()=>Lt(e,n))):Q(ie(n))?Lt(e,n):n,ze=(e,t,n)=>(z(ee(x,t),(([s,l])=>{X(s,((t,n)=>{be(e,n)||(e[n]=t)})),X(l,(s=>{be(e,s)||yt(t,n,s)}))})),e),Ne=e=>(t&&(X(J,((t,n)=>{be(e,n)||(e[n]=t)})),X(D,(t=>{be(e,t)||Lt(t)}))),e),We=e=>Xe(V,e,((e,t,n)=>{const s=Z(),l=ue();Xe(se(V,t,Z),n,((e,t,n)=>{ne(e,t,n),z(n.default,(e=>ne(s,t,e)),(()=>ve(l,t)))})),ne(x,t,[s,l])}),((e,t)=>{ne(V,t),ne(x,t)})),Be=e=>Xe(k,e,((e,t,n)=>{ne(k,t,n),z(n.default,(e=>ne(J,t,e)),(()=>ve(D,t)))}),((e,t)=>{ne(k,t),ne(J,t),Y(D,t)})),qe=e=>Ve(e)?Nt():Ot(e),He=e=>Xe(F,e,((e,t,n)=>$e(t,n)),((e,t)=>at(t))),$e=(e,t)=>Xe(se(F,e,(()=>(ut(e,1),Z()))),t,((t,n,s)=>Ge(e,t,n,s)),((t,n)=>it(e,t,n))),Ge=(e,t,n,s,l)=>Xe(se(t,n,(()=>(vt(e,n,1),Z()))),s,((t,s,l)=>et(e,n,t,s,l)),((s,o)=>dt(e,t,n,s,o,l))),et=(e,t,n,s,l)=>{$(n,s)||ht(e,t,s,1);const o=ee(n,s);l!==o&&(ft(e,t,s,o,l),ne(n,s,l))},tt=(e,t,n,s,l)=>z(ee(t,n),(t=>et(e,n,t,s,l)),(()=>Ge(e,t,n,ze({[s]:l},e,n)))),nt=e=>Ve(e)?Wt():Ft(e),st=e=>Xe(j,e,((e,t,n)=>lt(t,n)),((e,t)=>ct(t))),lt=(e,t)=>{$(j,e)||gt(e,1);const n=ee(j,e);t!==n&&(pt(e,n,t),ne(j,e,t))},ot=e=>{const[t]=se(O,e,ye),n=t();return $(ee(F,e),n)?ot(e):n},rt=e=>{var t;return null!=(t=ee(F,e))?t:$e(e,{})},at=e=>$e(e,{}),it=(e,t,n)=>{const[,s]=se(O,e,ye);s(n),Ge(e,t,n,{},!0)},dt=(e,t,n,s,l,o)=>{var r;const a=ee(null==(r=ee(x,e))?void 0:r[0],l);if(!Q(a)&&!o)return et(e,n,s,l,a);const i=t=>{ft(e,n,t,ee(s,t)),ht(e,n,t,-1),ne(s,t)};Q(a)?i(l):te(s,i),G(s)&&(vt(e,n,-1),G(ne(t,n))&&(ut(e,-1),ne(F,e),ne(O,e)))},ct=e=>{const t=ee(J,e);if(!Q(t))return lt(e,t);pt(e,ee(j,e)),gt(e,-1),ne(j,e)},ut=(e,t)=>Ze(o,e,t),vt=(e,t,n)=>Ze(se(a,e,Z),t,n),ht=(e,t,n,s)=>Ze(se(se(d,e,Z),t,Z),n,s),ft=(e,t,n,s,l)=>se(se(se(u,e,Z),t,Z),n,(()=>[s,0]))[1]=l,gt=(e,t)=>Ze(w,e,t),pt=(e,t,n)=>se(I,e,(()=>[t,0]))[1]=n,yt=(e,t,n,s,l)=>(P(se(se(se(m,e,Z),t,Z),n,(()=>[])),s),l),Lt=(e,t,n)=>(P(se(C,e,(()=>[])),t),n),wt=(e,t,n)=>z(ee(ee(ee(u,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(Jt(e,t,n))])),St=e=>z(ee(I,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(Dt(e))])),It=e=>G(m)||G(pe[e])?0:X(e?oe(m,re):m,((t,n)=>X(t,((t,s)=>X(t,((t,l)=>ke(pe[e],[n,s,l],t))))))),Rt=e=>G(C)||G(we[e])?0:X(e?oe(C):C,((t,n)=>ke(we[e],[n],t))),Tt=(e,t,n)=>{if(!G(t))return ke(e,n),1},bt=e=>{const t=G(ae[e]),n=G(fe[e])&&G(K[e])&&t&&G(q[e]),s=G(ge[e])&&G(he[e])&&G(H[e])&&G(B[e]);if(!n||!s){const l=e?[oe(o),re(a),oe(d,re),oe(u,re)]:[o,a,d,u];if(!n){X(l[2],((t,n)=>X(t,((t,s)=>Tt(fe[e],t,[n,s])))));const n=ue();X(l[1],((s,l)=>{Tt(K[e],s,[l])&&!t&&(ke(ae[e],[l,null]),ve(n,l))})),t||X(l[3],((t,s)=>{if(!$(n,s)){const n=ue();X(t,(e=>X(e,(([t,s],l)=>s!==t?ve(n,l):Y(e,l))))),X(n,(t=>ke(ae[e],[s,t])))}})),Tt(q[e],l[0])}if(!s){let t;X(l[3],((n,s)=>{let l;X(n,((n,o)=>{let r;X(n,(([n,a],i)=>{a!==n&&(ke(ge[e],[s,o,i],a,n,wt),t=l=r=1)})),r&&ke(he[e],[s,o],wt)})),l&&ke(H[e],[s],wt)})),t&&ke(B[e],void 0,wt)}}},mt=e=>{const t=G(Ie[e]),n=G(Te[e])&&G(Se[e]);if(!t||!n){const s=e?[oe(w),oe(I)]:[w,I];if(t||Tt(Ie[e],s[0]),!n){let t;X(s[1],(([n,s],l)=>{s!==n&&(ke(Te[e],[l],s,n,St),t=1)})),t&&ke(Se[e],void 0,St)}}},Ct=(e,...t)=>(qt((()=>e(...b(t,y)))),Gt),Vt=()=>le(F,(e=>le(e,le))),xt=()=>_(F),Et=e=>_(ee(F,y(e))),Pt=(e,t,n,s=0,l)=>{return b(E(R((o=ee(F,y(e)),r=(e,n)=>[Q(t)?n:ee(e,y(t)),n],b([...null!=(a=null==o?void 0:o.entries())?a:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ee(e,t)*(n?-1:1))),s,Q(l)?l:s+l),(([,e])=>e));var o,r,a},kt=(e,t)=>_(ee(ee(F,y(e)),y(t))),Jt=(e,t,n)=>ee(ee(ee(F,y(e)),y(t)),y(n)),Mt=()=>le(j),At=()=>_(j),Dt=e=>ee(j,y(e)),Ot=e=>Ct((()=>(e=>Ye(e,De,yt))(e)?He(e):0)),Ft=e=>Ct((()=>je(e)?st(e):0)),jt=e=>{try{qe(A(e))}catch(e){}return Gt},Qt=t=>Ct((()=>{if((e=Ye(t,(e=>Ye(e,Ae))))&&(We(t),!G(F))){const e=Vt();Nt(),Ot(e)}})),zt=e=>Ct((()=>{if(t=(e=>Ye(e,Ae))(e)){const n=Mt();Bt(),Wt(),t=!0,Be(e),Ft(n)}})),Nt=()=>Ct((()=>He({}))),Wt=()=>Ct((()=>st({}))),Bt=()=>Ct((()=>{Be({}),t=!1})),qt=(e,t)=>{if(-1==l)return;Ht();const n=e();return $t(t),n},Ht=()=>(l++,Gt),$t=e=>(l>0&&(l--,0==l&&(n=!G(u),s=!G(I),l=1,It(1),n&&bt(1),Rt(1),s&&mt(1),l=-1,(null==e?void 0:e(le(u,(e=>le(e,(e=>le(e,(e=>[...e]),(([e,t])=>e===t))),Ve)),Ve),le(m,(e=>le(e,le))),le(I,(e=>[...e]),(([e,t])=>e===t)),le(C)))&&(l=1,X(u,((e,t)=>X(e,((e,n)=>X(e,(([e],s)=>de(Gt,t,n,s,e))))))),X(I,(([e],t)=>ce(Gt,t,e))),l=-1,n=s=!1),ke(xe[0],void 0,n,s),It(0),n&&bt(0),Rt(0),s&&mt(0),ke(xe[1],void 0,n,s),l=0,T([o,a,d,u,m,w,I,C],U))),Gt),Gt={getTables:Vt,getTableIds:xt,getTable:e=>le(ee(F,y(e)),le),getRowIds:Et,getSortedRowIds:Pt,getRow:(e,t)=>le(ee(ee(F,y(e)),y(t))),getCellIds:kt,getCell:Jt,getValues:Mt,getValueIds:At,getValue:Dt,hasTables:()=>!G(F),hasTable:e=>$(F,y(e)),hasRow:(e,t)=>$(ee(F,y(e)),y(t)),hasCell:(e,t,n)=>$(ee(ee(F,y(e)),y(t)),y(n)),hasValues:()=>!G(j),hasValue:e=>$(j,y(e)),getTablesJson:()=>M(F),getValuesJson:()=>M(j),getJson:()=>M([F,j]),getTablesSchemaJson:()=>M(V),getValuesSchemaJson:()=>M(k),getSchemaJson:()=>M([V,k]),setTables:Ot,setTable:(e,t)=>Ct((e=>De(t,e)?$e(e,t):0),e),setRow:(e,t,n)=>Ct(((e,t)=>Oe(e,t,n)?Ge(e,rt(e),t,n):0),e,t),addRow:(e,t)=>qt((()=>{let n;return Oe(e,n,t)&&(e=y(e),Ge(e,rt(e),n=ot(e),t)),n})),setPartialRow:(e,t,n)=>Ct(((e,t)=>{if(Oe(e,t,n,1)){const s=rt(e);Ce(n,((n,l)=>tt(e,s,t,l,n)))}}),e,t),setCell:(e,t,n,s)=>Ct(((e,t,n)=>z(Fe(e,t,n,W(s)?s(Jt(e,t,n)):s),(s=>tt(e,rt(e),t,n,s)))),e,t,n),setValues:Ft,setPartialValues:e=>Ct((()=>je(e,1)?Ce(e,((e,t)=>lt(t,e))):0)),setValue:(e,t)=>Ct((e=>z(Qe(e,W(t)?t(Dt(e)):t),(t=>lt(e,t)))),e),setTablesJson:jt,setValuesJson:e=>{try{nt(A(e))}catch(e){}return Gt},setJson:e=>{try{const[t,n]=A(e);qe(t),nt(n)}catch(t){jt(e)}return Gt},setTablesSchema:Qt,setValuesSchema:zt,setSchema:(e,t)=>Ct((()=>{Qt(e),zt(t)})),delTables:Nt,delTable:e=>Ct((e=>$(F,e)?at(e):0),e),delRow:(e,t)=>Ct(((e,t)=>z(ee(F,e),(n=>$(n,t)?it(e,n,t):0))),e,t),delCell:(e,t,n,s)=>Ct(((e,t,n)=>z(ee(F,e),(l=>z(ee(l,t),(o=>$(o,n)?dt(e,l,t,o,n,s):0))))),e,t,n),delValues:Wt,delValue:e=>Ct((e=>$(j,e)?ct(e):0),e),delTablesSchema:()=>Ct((()=>{We({}),e=!1})),delValuesSchema:Bt,transaction:qt,startTransaction:Ht,finishTransaction:$t,forEachTable:e=>X(F,((t,n)=>e(n,(e=>X(t,((t,n)=>e(n,(e=>te(t,e))))))))),forEachRow:(e,t)=>X(ee(F,y(e)),((e,n)=>t(n,(t=>te(e,t))))),forEachCell:(e,t,n)=>te(ee(ee(F,y(e)),y(t)),n),forEachValue:e=>te(j,e),addSortedRowIdsListener:(e,t,n,s,l,o,r)=>{let a=Pt(e,t,n,s,l);return Pe((()=>{const r=Pt(e,t,n,s,l);S(r,a)||(a=r,o(Gt,e,t,n,s,l,a))}),ae[r?1:0],[e,t],[xt])},addWillFinishTransactionListener:e=>Pe(e,xe[0]),addDidFinishTransactionListener:e=>Pe(e,xe[1]),callListener:e=>(Me(e),Gt),delListener:e=>(Je(e),Gt),getListenerStats:()=>({}),createStore:_e};return Ce({Tables:[0,B],TableIds:[0,q],[h]:[1,H,[xt]],[f]:[1,K,[xt]],Row:[2,he,[xt,Et]],[g]:[2,fe,[xt,Et]],[p]:[3,ge,[xt,Et,kt],e=>Ke(Jt(...e))],InvalidCell:[3,pe],Values:[0,Se],ValueIds:[0,Ie],Value:[1,Te,[At],e=>Ke(Dt(e[0]))],InvalidValue:[1,we]},(([e,t,n,s],l)=>{Gt[v+l+c]=(...l)=>Pe(l[e],t[l[e+1]?1:0],e>0?E(l,0,e):void 0,n,s)})),Re(Gt)};e.createCheckpoints=xe,e.createCustomPersister=De,e.createFilePersister=(e,n)=>{let s;return De(e,(()=>ze(void 0,null,(function*(){try{return yield t.promises.readFile(n,d)}catch(e){}}))),(e=>ze(void 0,null,(function*(){try{yield t.promises.writeFile(n,e,d)}catch(e){}}))),(e=>{s=t.watch(n,e)}),(()=>{null==s||s.close(),s=void 0}))},e.createIndexes=Pe,e.createLocalPersister=(e,t)=>Qe(e,t,localStorage),e.createMetrics=Me,e.createQueries=$e,e.createRelationships=Ge,e.createRemotePersister=(e,t,n,s)=>{let l,o;return De(e,(()=>Ne(void 0,null,(function*(){const e=yield fetch(t);return o=We(e),e.text()}))),(e=>Ne(void 0,null,(function*(){return yield fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:e})}))),(e=>{l=setInterval((()=>Ne(void 0,null,(function*(){const n=yield fetch(t,{method:"HEAD"}),s=We(n);Q(o)||Q(s)||s==o||(o=s,e())}))),1e3*s)}),(()=>{z(l,clearInterval),l=void 0}))},e.createSessionPersister=(e,t)=>Qe(e,t,sessionStorage),e.createStore=_e,e.defaultSorter=Ee},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs")):"function"==typeof define&&define.amd?define(["exports","fs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={},e.fs);
Binary file
@@ -10,7 +10,7 @@
10
10
  * @since v2.2.0
11
11
  */
12
12
 
13
- import {Schema, Store} from './store.d';
13
+ import {Store, TablesSchema, ValuesSchema} from './store.d';
14
14
  import {Id} from './common.d';
15
15
 
16
16
  /**
@@ -36,6 +36,10 @@ export type StoreStats = {
36
36
  * Table objects.
37
37
  */
38
38
  totalCells: number;
39
+ /**
40
+ * The number of Value objects in the Store, since v3.0.0.
41
+ */
42
+ totalValues: number;
39
43
  /**
40
44
  * The string length of the Store when serialized to JSON.
41
45
  */
@@ -106,6 +110,7 @@ export type StoreStatsRowDetail = {
106
110
  * @since v2.2.0
107
111
  */
108
112
  export interface Tools {
113
+ /* eslint-disable max-len */
109
114
  /**
110
115
  * The getStoreStats method provides a set of statistics about the Store, and
111
116
  * is used for debugging purposes.
@@ -125,10 +130,11 @@ export interface Tools {
125
130
  * .setTable('species', {
126
131
  * dog: {price: 5},
127
132
  * cat: {price: 4},
128
- * });
133
+ * })
134
+ * .setValues({open: true, employees: 3});
129
135
  * const tools = createTools(store);
130
136
  * console.log(tools.getStoreStats());
131
- * // -> {totalTables: 2, totalRows: 5, totalCells: 8, jsonLength: 182}
137
+ * // -> {totalTables: 2, totalRows: 5, totalCells: 8, totalValues: 2, jsonLength: 212}
132
138
  * ```
133
139
  * @example
134
140
  * This example creates a Tools object and gets detailed statistics about it.
@@ -162,24 +168,27 @@ export interface Tools {
162
168
  * @since v2.2.0
163
169
  */
164
170
  getStoreStats(detail?: boolean): StoreStats;
171
+ /* eslint-enable max-len */
165
172
 
166
173
  /**
167
- * The getStoreSchema method returns the Schema of the Store as an object.
174
+ * The getStoreTablesSchema method returns the TablesSchema of the Store as an
175
+ * object.
168
176
  *
169
- * If the Store does not already have an explicit Schema associated with it,
170
- * the data in the Store will be scanned to attempt to infer a new Schema.
177
+ * If the Store does not already have an explicit TablesSchema associated with
178
+ * it, the data in the Store will be scanned to attempt to infer a new
179
+ * TablesSchema.
171
180
  *
172
181
  * To be successful, this requires all the values of a given Cell across a
173
- * Table object's Row objects to have a consistent type. If a given Cell Id
182
+ * Table object's Row objects to have a consistent type. If a given Cell Id
174
183
  * appears in every Row, then a `default` for that Cell is specified in the
175
- * Schema, based on the most common value found.
184
+ * TablesSchema, based on the most common value found.
176
185
  *
177
- * @returns A Schema object for the Store.
186
+ * @returns A TablesSchema object for the Store.
178
187
  * @example
179
- * This example creates a Tools object and gets basic statistics about a Store
180
- * that already has a Schema.
188
+ * This example creates a Tools object and gets the schema of a Store that
189
+ * already has a TablesSchema.
181
190
  * ```js
182
- * const store = createStore().setSchema({
191
+ * const store = createStore().setTablesSchema({
183
192
  * pets: {
184
193
  * species: {type: 'string'},
185
194
  * color: {type: 'string'},
@@ -188,13 +197,13 @@ export interface Tools {
188
197
  * price: {type: 'number'},
189
198
  * },
190
199
  * });
191
- * const schema = createTools(store).getStoreSchema();
200
+ * const schema = createTools(store).getStoreTablesSchema();
192
201
  * console.log(schema.pets);
193
202
  * // -> {species: {type: 'string'}, color: {type: 'string'}}
194
203
  * ```
195
204
  * @example
196
- * This example creates a Tools object and gets basic statistics about a Store
197
- * that doesn't already have a Schema.
205
+ * This example creates a Tools object and infers the schema of a Store that
206
+ * doesn't already have a TablesSchema.
198
207
  * ```js
199
208
  * const store = createStore()
200
209
  * .setTable('pets', {
@@ -206,7 +215,7 @@ export interface Tools {
206
215
  * dog: {price: 5, barks: true},
207
216
  * cat: {price: 4, purrs: true},
208
217
  * });
209
- * const schema = createTools(store).getStoreSchema();
218
+ * const schema = createTools(store).getStoreTablesSchema();
210
219
  * console.log(schema.pets.species);
211
220
  * // -> {type: 'string', default: 'dog'}
212
221
  * console.log(schema.pets.color);
@@ -219,18 +228,57 @@ export interface Tools {
219
228
  * // -> {type: 'boolean'}
220
229
  * ```
221
230
  * @category Modelling
222
- * @since v2.2.0
231
+ * @since v3.0.0
223
232
  */
224
- getStoreSchema(): Schema;
233
+ getStoreTablesSchema(): TablesSchema;
234
+
235
+ /**
236
+ * The getStoreValuesSchema method returns the ValuesSchema of the Store as an
237
+ * object.
238
+ *
239
+ * If the Store does not already have an explicit ValuesSchema associated with
240
+ * it, the data in the Store will be scanned to infer a new ValuesSchema,
241
+ * based on the types of the Values present. Note that, unlike the inference
242
+ * of Cell values in the TablesSchema, it is not able to determine whether a
243
+ * Value should have a default or not.
244
+ *
245
+ * @returns A ValuesSchema object for the Store.
246
+ * @example
247
+ * This example creates a Tools object and gets the schema of a Store that
248
+ * already has a ValuesSchema.
249
+ * ```js
250
+ * const store = createStore().setValuesSchema({
251
+ * open: {type: 'boolean', default: true},
252
+ * employees: {type: 'number'},
253
+ * });
254
+ *
255
+ * const schema = createTools(store).getStoreValuesSchema();
256
+ * console.log(schema);
257
+ * // -> {open: {type: 'boolean', default: true}, employees: {type: 'number'}}
258
+ * ```
259
+ * @example
260
+ * This example creates a Tools object and infers the schema of a Store that
261
+ * doesn't already have a ValuesSchema.
262
+ * ```js
263
+ * const store = createStore().setValues({open: true, employees: 3});
264
+ * const schema = createTools(store).getStoreValuesSchema();
265
+ *
266
+ * console.log(schema);
267
+ * // -> {open: {type: 'boolean'}, employees: {type: 'number'}}
268
+ * ```
269
+ * @category Modelling
270
+ * @since v3.0.0
271
+ */
272
+ getStoreValuesSchema(): ValuesSchema;
225
273
 
226
274
  /**
227
275
  * The getStoreApi method returns a code-generated .d.ts file and a .ts file
228
276
  * that describe the schema of a Store in an ORM style.
229
277
  *
230
- * If the Store does not already have an explicit Schema associated with it,
231
- * the data in the Store will be scanned to attempt to infer a new Schema. The
232
- * method returns two strings (which should be saved as files) though if no
233
- * schema can be inferred, the strings will be empty.
278
+ * If the Store does not already have an explicit TablesSchema associated with
279
+ * it, the data in the Store will be scanned to attempt to infer a new
280
+ * TablesSchema. The method returns two strings (which should be saved as
281
+ * files) though if no schema can be inferred, the strings will be empty.
234
282
  *
235
283
  * The method takes a single argument which represents the name you want the
236
284
  * generated store object to have in code. You are expected to save the files
@@ -278,9 +326,9 @@ export interface Tools {
278
326
  * `.ts` files.
279
327
  * @example
280
328
  * This example creates a Tools object and generates code for a Store that
281
- * already has a Schema.
329
+ * already has a TablesSchema.
282
330
  * ```js
283
- * const store = createStore().setSchema({
331
+ * const store = createStore().setTablesSchema({
284
332
  * pets: {
285
333
  * price: {type: 'number'},
286
334
  * },
@@ -294,12 +342,12 @@ export interface Tools {
294
342
  * // -> 'export type PetsRow = {\'price\'?: number;};'
295
343
  *
296
344
  * const tsLines = ts.split('\n');
297
- * console.log(tsLines[40]);
345
+ * console.log(tsLines[41]);
298
346
  * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
299
347
  * ```
300
348
  * @example
301
349
  * This example creates a Tools object and generates code for a Store that
302
- * doesn't already have a Schema.
350
+ * doesn't already have a TablesSchema.
303
351
  * ```js
304
352
  * const store = createStore().setTable('pets', {
305
353
  * fido: {price: 5},
@@ -314,7 +362,7 @@ export interface Tools {
314
362
  * // -> 'export type PetsRow = {\'price\': number;};'
315
363
  *
316
364
  * const tsLines = ts.split('\n');
317
- * console.log(tsLines[42]);
365
+ * console.log(tsLines[43]);
318
366
  * // -> 'getPetsTable: (): PetsTable => store.getTable(PETS) as PetsTable,'
319
367
  * ```
320
368
  * @category Modelling
@@ -349,9 +397,9 @@ export interface Tools {
349
397
  * `.ts` files.
350
398
  * @example
351
399
  * This example creates a Tools object and generates code for a Store that
352
- * already has a Schema.
400
+ * already has a TablesSchema.
353
401
  * ```js
354
- * const store = createStore().setSchema({
402
+ * const store = createStore().setTablesSchema({
355
403
  * pets: {
356
404
  * price: {type: 'number'},
357
405
  * },
@@ -360,18 +408,18 @@ export interface Tools {
360
408
  * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
361
409
  *
362
410
  * const dTsLines = dTs.split('\n');
363
- * console.log(dTsLines[14]);
411
+ * console.log(dTsLines[5]);
364
412
  * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
365
- * console.log(dTsLines[19]);
413
+ * console.log(dTsLines[10]);
366
414
  * // -> 'export type PetsRow = {price?: number};'
367
415
  *
368
416
  * const tsLines = ts.split('\n');
369
- * console.log(tsLines[73]);
417
+ * console.log(tsLines[72]);
370
418
  * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
371
419
  * ```
372
420
  * @example
373
421
  * This example creates a Tools object and generates code for a Store that
374
- * doesn't already have a Schema.
422
+ * doesn't already have a TablesSchema.
375
423
  * ```js
376
424
  * const store = createStore().setTable('pets', {
377
425
  * fido: {price: 5},
@@ -381,13 +429,13 @@ export interface Tools {
381
429
  * const [dTs, ts] = await tools.getPrettyStoreApi('shop');
382
430
  *
383
431
  * const dTsLines = dTs.split('\n');
384
- * console.log(dTsLines[14]);
432
+ * console.log(dTsLines[5]);
385
433
  * // -> 'export type PetsTable = {[rowId: Id]: PetsRow};'
386
- * console.log(dTsLines[19]);
434
+ * console.log(dTsLines[10]);
387
435
  * // -> 'export type PetsRow = {price: number};'
388
436
  *
389
437
  * const tsLines = ts.split('\n');
390
- * console.log(tsLines[75]);
438
+ * console.log(tsLines[74]);
391
439
  * // -> ' hasPetsTable: (): boolean => store.hasTable(PETS),'
392
440
  * ```
393
441
  * @category Modelling
@@ -396,6 +444,7 @@ export interface Tools {
396
444
  getPrettyStoreApi(storeName: string): Promise<[string, string]>;
397
445
  }
398
446
 
447
+ /* eslint-disable max-len */
399
448
  /**
400
449
  * The createTools function creates a Tools object, and is the main entry point
401
450
  * into the tools module.
@@ -419,10 +468,11 @@ export interface Tools {
419
468
  * .setTable('species', {
420
469
  * dog: {price: 5},
421
470
  * cat: {price: 4},
422
- * });
471
+ * })
472
+ * .setValues({open: true, employees: 3});
423
473
  * const tools = createTools(store);
424
474
  * console.log(tools.getStoreStats());
425
- * // -> {totalTables: 2, totalRows: 5, totalCells: 8, jsonLength: 182}
475
+ * // -> {totalTables: 2, totalRows: 5, totalCells: 8, totalValues: 2, jsonLength: 212}
426
476
  * ```
427
477
  * @example
428
478
  * This example creates a Tools object, and calls the method a second time
@@ -439,3 +489,4 @@ export interface Tools {
439
489
  * @since v2.2.0
440
490
  */
441
491
  export function createTools(store: Store): Tools;
492
+ /* eslint-enable max-len */
@@ -1 +1 @@
1
- var e,l;e=this,l=function(e){"use strict";const l=e=>typeof e,t="",a=l(t),o=l(!0),n=l(0),r="type",d="default",s=(e,l)=>e.every(l),$=(e,l)=>e.sort(l),i=(e,l)=>e.forEach(l),I=(e,l)=>e.map(l),c=e=>e.length,b=e=>0==c(e),w=(e,...l)=>e.push(...l),u=e=>e.pop(),h=(e,...l)=>e.unshift(...l),C=e=>e.shift(),g=JSON.parse,f=isFinite,T=e=>null==e,p=e=>e==a||e==o,R=e=>l(e)==a,m=e=>Array.isArray(e),v=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},y=e=>{var l;return[...null!=(l=null==e?void 0:e.values())?l:[]]},L=(e,l)=>null==e?void 0:e.forEach(l),S=(e,l)=>null==e?void 0:e.delete(l),k=e=>new Map(e),j=(e,l)=>null==e?void 0:e.get(l),E=(e,l)=>L(e,((e,t)=>l(t,e))),O=(e,l)=>{var t;return I([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>l(t,e)))},x=(e,l,t)=>T(t)?(S(e,l),e):null==e?void 0:e.set(l,t),A=(e,l,t)=>(v(e,l)||x(e,l,t()),j(e,l)),J=e=>new Set(m(e)||T(e)?e:[e]),N=(e,l)=>null==e?void 0:e.add(l),P=e=>[e,e],z=()=>[k(),k()],D=/[^A-Za-z0-9]+/,F=/^( *)\/\*\* *(.*?) *\*\/$/gm,G=(e,l,t)=>e.substring(l,t),M=e=>e.toUpperCase(),W=e=>e.toLowerCase(),_=(e,l,t,a=1)=>{const o=`${l}${1==a?"":a}`;return v(e,o)?_(e,l,t,a+1):(x(e,o,t),o)},B=e=>e.replace(F,((e,l,t)=>{const a=77-Q(l);return`${l}/**\n${t.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),l+" * $1\n")}${l} */`})),Q=e=>e.length,U=(e,l=t)=>e.join(l),Z=e=>e.flat(1e3),q=(e,l=0)=>U(I(e.split(D),((e,t)=>(t>0||l?M:W)(G(e,0,1))+G(e,1)))),H=e=>M(U((e||" ").split(D),"_")),K=e=>`/** ${e}. */`,V=()=>{const e=z(),l=k(),a=k(),o=k();return[(...e)=>U(Z(e),"\n"),(l,t,...a)=>i(a,(a=>N(A(e[l],t,J),a))),(e,t="",a="")=>_(l,e,[t,a]),(e,l,t,o,n,r="")=>_(a,e,[l,t,o,n,r]),(e,l,t)=>_(o,e,m(t)?[`(${l}) => {`,t,"}"]:[`(${l}) => ${t}`]),(e,l)=>j(o,e)===l?e:_(o,e,l),l=>[...$(O(e[l],((e,l)=>`import {${U($(y(e)),", ")}} from '${l}';`))),t],()=>O(l,(([e,l],a)=>[K(l),`export type ${a} = ${e};`,t])),e=>O(a,(([l,a,o,n,r],d)=>{const s=e?[`${d}: ${r}(${l}): ${a} => ${o},`]:[`${d}${r}(${l}): ${a};`];return e||h(s,K(n)),w(s,t),s})),()=>O(o,((e,l)=>(e=m(e)?e:[e],w(e,u(e)+";"),[`const ${l} = ${C(e)}`,e,t])))]},X=Object,Y=X.keys,ee=X.freeze,le=(e,l)=>I(X.entries(e),(([e,t])=>l(t,e))),te=e=>b(Y(e)),ae=e=>{const t=l(e);return p(t)||t==n&&f(e)?t:void 0},oe=e=>{const l=new WeakMap;return t=>(l.has(t)||l.set(t,e(t)),l.get(t))},ne="the content of",re="the Store",de="A function for",se="export",$e="listener",ie=" | undefined",Ie=`Registers a ${$e} that will be called`,ce="Represents",be=" => void",we=`${ne} ${re}`,ue="the end of the transaction",he="the specified Row",Ce=(e,l=0)=>`${ce} a Row when ${l?"s":"g"}etting ${ne} the '${e}' Table`,ge=(e,l,t=0)=>`Gets ${t?"sorted, paginated":"the"} Ids of the ${e}s in ${l}`,fe=(e,l)=>`Calls a function for each ${e} in ${l}`,Te=(e,l=re)=>`Gets whether ${e} exists in ${l}`,pe=e=>"A function that takes "+e,Re=(e=0,l=0)=>`${de} listening to changes to ${xe[e]} in ${xe[l]}`,me=(e,l,a=0)=>`${Ie} whenever ${e} in ${l} change`+(a?t:"s"),ve=(e=0)=>`${Oe[e]} ${we}`,ye=e=>`the '${e}' Table`,Le=e=>`${he} in ${ye(e)}`,Se=e=>`the '${e}' Cell`,ke=(e,l=0)=>`${Oe[l]} ${ne} ${ye(e)}`,je=(e,l=0)=>`${Oe[l]} ${ne} ${Le(e)}`,Ee=(e,l,t=0)=>`${Oe[t]} ${Se(l)} for ${Le(e)}`,Oe=["Gets","Sets","Sets part of","Deletes"],xe=[re,"anything","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes"],Ae=["ChangedCells","Id","IdOrNull","Ids","InvalidCells","Json","Store"],Je=(e,l=t,a=t)=>`store.${e}(${l})${a?" as "+a:t}`,Ne=(e,l=t)=>`fluent(() => ${Je(e,l)})`,Pe=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(${$e})${a?", "+a:t})`,ze=(e,l)=>{if(te(e))return P(t);const[a,n,s,$,i,I,c,b,w,u]=V(),h=`./${q(l)}.d`,C=q(l,1),g=q(C),f=k(),p=l=>le(e,((e,a)=>l(a,A(f,a,(()=>{const e=q(a,1);return[s(e+"Table",`{[rowId: Id]: ${e}Row}`,`${ce} the '${a}' Table`),s(e+"Row",`{${U(m(a,((e,l,a)=>`'${e}'${T(a)?"?":t}: ${l};`))," ")}}`,Ce(a)),s(e+"RowWhenSet",`{${U(m(a,((e,l)=>`'${e}'?: ${l};`))," ")}}`,Ce(a,1)),s(e+"CellId",U(m(a,(e=>`'${e}'`))," | "),`A Cell Id for the '${a}' Table`),s(e+"CellCallback",`(...[cellId, cell]: ${U(m(a,((e,l)=>`[cellId: '${e}', cell: ${l}]`))," | ")})${be}`,pe(`a Cell Id and value from a Row in the '${a}' Table`)),s(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${be})${be}`,pe(`a Row Id from the '${a}' Table, and a Cell iterator`))]})),q(a,1),I(H(a),`'${a}'`)))),m=(l,t)=>le(e[l],((e,l)=>t(l,e[r],e[d],I(H(l),`'${l}'`),q(l,1)))),v=s("Tables",`{${U(p(((e,l)=>`'${e}'?: ${l[0]};`))," ")}}`,`${ce} ${we}`),L=s("TableId",U(p((e=>`'${e}'`))," | "),"A Table Id in "+re),S=s("TableCallback",`(...[tableId, rowCallback]: ${U(p(((e,l)=>`[tableId: '${e}', forEachRow: (rowCallback: ${l[5]})${be}]`))," | ")})${be}`,pe("a Table Id, and a Row iterator")),j=s("GetCellChange",`(...[tableId, rowId, cellId]: ${U(p(((e,l)=>`[tableId: '${e}', rowId: Id, cellId: ${l[3]}]`))," | ")}) => CellChange`,de+" returning information about any Cell's changes during a transaction"),O=s("TablesListener",`(${g}: ${C}, getCellChange: ${j}${ie})${be}`,Re(1)),J=s("TableIdsListener",`(${g}: ${C})${be}`,Re(2)),N=s("TableListener",`(${g}: ${C}, tableId: ${L}, getCellChange: ${j}${ie})${be}`,Re(3)),z=s("RowIdsListener",`(${g}: ${C}, tableId: ${L})${be}`,Re(4,3)),D=s("RowListener",`(${g}: ${C}, tableId: ${L}, rowId: Id, getCellChange: ${j}${ie})${be}`,Re(5,3)),F=s("CellIdsListener",`(${g}: ${C}, tableId: ${L}, rowId: Id)`+be,Re(6,5)),G=s("CellListener",`(...[${g}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${U(Z(p((e=>m(e,((l,t)=>`[${g}: ${C}, tableId: '${e}', rowId: Id, cellId: '${l}', newCell: ${t}${ie}, oldCell: ${t}${ie}, getCellChange: ${j} | undefined]`)))))," | ")})${be}`,Re(7,5)),M=s("InvalidCellListener",`(${g}: ${C}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${be}`,Re(8)),W=s("TransactionListener",`(${g}: ${C}, cellsTouched: boolean)${be}`,de+" listening to the completion of a transaction");$("hasTables",t,o,Je("hasTables"),Te("any Table")),$("getTables",t,v,Je("getTables"),ve()),$("setTables","tables: "+v,C,Ne("setTables","tables"),ve(1)),$("delTables",t,C,Ne("delTables"),ve(3)),$("getTableIds",t,L+"[]",Je("getTableIds",t,L+"[]"),ge("Table",re)),$("forEachTable","tableCallback: "+S,"void",Je("forEachTable","tableCallback as any"),fe("Table",re));const _=k();return p(((e,[l,a,r,d,s,i],I,c)=>{n(1,h,l,a,r,d,s,i),$(`has${I}Table`,t,o,Je("hasTable",c),Te(ye(e))),$(`get${I}Table`,t,l,Je("getTable",c,l),ke(e)),$(`set${I}Table`,"table: "+l,C,Ne("setTable",c+", table"),ke(e,1)),$(`del${I}Table`,t,C,Ne("delTable",c),ke(e,3)),$(`get${I}RowIds`,t,"Ids",Je("getRowIds",c),ge("Row",ye(e))),$(`get${I}SortedRowIds`,`cellId?: ${d}, descending?: boolean, offset?: number, limit?: number`,"Ids",Je("getSortedRowIds",c+", cellId, descending, offset, limit"),ge("Row",ye(e),1)),$(`forEach${I}Row`,"rowCallback: "+i,"void",Je("forEachRow",c+", rowCallback as any"),fe("Row",ye(e))),$(`has${I}Row`,"rowId: Id",o,Je("hasRow",c+", rowId"),Te(he,ye(e))),$(`get${I}Row`,"rowId: Id",a,Je("getRow",c+", rowId",a),je(e)),$(`set${I}Row`,"rowId: Id, row: "+r,C,Ne("setRow",c+", rowId, row"),je(e,1)),$(`add${I}Row`,"row: "+r,"Id"+ie,Je("addRow",c+", row"),"Adds a new Row to "+ye(e)),$(`set${I}PartialRow`,"rowId: Id, partialRow: "+r,C,Ne("setPartialRow",c+", rowId, partialRow"),je(e,2)),$(`del${I}Row`,"rowId: Id",C,Ne("delRow",c+", rowId"),je(e,3)),$(`get${I}CellIds`,"rowId: Id",d+"[]",Je("getCellIds",c+", rowId",d+"[]"),ge("Cell",Le(e))),$(`forEach${I}Cell`,"rowId: Id, cellCallback: "+s,"void",Je("forEachCell",c+", rowId, cellCallback as any"),fe("Cell",Le(e))),m(e,((l,a,n,r,d)=>{const s="Map"+q(a,1);x(_,a,s),$(`has${I}${d}Cell`,"rowId: Id",o,Je("hasCell",`${c}, rowId, ${r}`),Te(Se(l),Le(e)));const i=`${a}${T(n)?ie:t}`;$(`get${I}${d}Cell`,"rowId: Id",i,Je("getCell",`${c}, rowId, ${r}`,i),Ee(e,l)),$(`set${I}${d}Cell`,`rowId: Id, cell: ${a} | ${s}`,C,Ne("setCell",`${c}, rowId, ${r}, cell as any`),Ee(e,l,1)),$(`del${I}${d}Cell`,"rowId: Id",C,Ne("delCell",`${c}, rowId, ${r}`),Ee(e,l,3))}))})),$("getJson",t,"Json",Je("getJson"),`${Oe[0]} a string serialization ${we}`),$("setJson","json: Json",C,Ne("setJson","json"),`${Oe[1]} ${we} from a serialized string`),$("transaction","actions: () => Return, doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean","Return",Je("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),$("startTransaction",t,C,Ne("startTransaction"),"Explicitly starts a transaction"),$("finishTransaction","doRollback?: (changedCells: ChangedCells, invalidCells: InvalidCells) => boolean,",C,Ne("finishTransaction","doRollback"),"Explicitly finishes a transaction"),$("addTablesListener",`${$e}: ${O}, mutator?: boolean`,"Id",Pe("addTablesListener",t,"mutator"),`${Ie} whenever ${we} changes`),$("addTableIdsListener",`${$e}: ${J}, mutator?: boolean`,"Id",Pe("addTableIdsListener",t,"mutator"),me("the Table Ids",re,1)),$("addTableListener",`tableId: ${L} | null, ${$e}: ${N}, mutator?: boolean`,"Id",Pe("addTableListener","tableId","mutator"),me("a Table",re)),$("addRowIdsListener",`tableId: ${L} | null, ${$e}: ${z}, mutator?: boolean`,"Id",Pe("addRowIdsListener","tableId","mutator"),me("the Row Ids","a Table",1)),$("addRowListener",`tableId: ${L} | null, rowId: IdOrNull, ${$e}: ${D}, mutator?: boolean`,"Id",Pe("addRowListener","tableId, rowId","mutator"),me("a Row","a Table")),$("addCellIdsListener",`tableId: ${L} | null, rowId: IdOrNull, ${$e}: ${F}, mutator?: boolean`,"Id",Pe("addCellIdsListener","tableId, rowId","mutator"),me("the Cell Ids","a Row",1)),$("addCellListener",`tableId: ${L} | null, rowId: IdOrNull, cellId: ${U(p(((e,l)=>l[3]))," | ")} | null, ${$e}: ${G}, mutator?: boolean`,"Id",Pe("addCellListener","tableId, rowId, cellId","mutator"),me("a Cell","a Row")),$("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${$e}: ${M}, mutator?: boolean`,"Id",Pe("addCellListener","tableId, rowId, cellId","mutator"),Ie+" whenever an invalid Cell change was attempted"),$("addWillFinishTransactionListener",`${$e}: ${W}`,"Id",Pe("addWillFinishTransactionListener"),`${Ie} just before ${ue}`),$("addDidFinishTransactionListener",`${$e}: ${W}`,"Id",Pe("addDidFinishTransactionListener"),`${Ie} just after ${ue}`),$("callListener",$e+"Id: Id",C,Ne("callListener",$e+"Id"),`Manually provoke a ${$e} to be called`),$("delListener",$e+"Id: Id",C,Ne("delListener",$e+"Id"),`Remove a ${$e} that was previously added to ${re}`),$("getStore",t,"Store","store",Oe[0]+" the underlying Store object"),E(_,((e,l)=>s(l,`(cell: ${e}${ie}) => ${e}`,`Takes a ${e} Cell value and returns another`))),n(0,"tinybase","CellChange",...Ae),n(1,"tinybase","createStore",...Ae),n(1,h,C,`create${C} as create${C}Decl`,v,L,S,O,J,N,z,D,F,G,M,W,...y(_)),I("store",["createStore().setSchema({",Z(p(((e,l,a,o)=>[`[${o}]: {`,...m(e,((e,l,a,o)=>`[${o}]: {[${I(H(r),`'${r}'`)}]: ${I(H(l),`'${l}'`)}${T(a)?t:`, [${I(H(d),`'${d}'`)}]: ${R(a)?I(H(a),`'${a}'`):a}`}},`)),"},"]))),"})"]),i("fluent","actions: () => Store",["actions();",`return ${g};`]),i("proxy",$e+": any",`(_: Store, ...args: any[]) => ${$e}(${g}, ...args)`),I(g,["{",...w(1),"}"]),[a(...c(0),...b(),`${se} interface ${C} {`,...w(0),"}",t,K(`Creates a ${C} object`),`${se} function create${C}(): ${C};`),a(...c(1),`${se} const create${C}: typeof create${C}Decl = () => {`,...u(),`return Object.freeze(${g});`,"};")]};var De=Object.defineProperty,Fe=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable,We=(e,l,t)=>l in e?De(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,_e=(e,l)=>{for(var t in l||(l={}))Ge.call(l,t)&&We(e,t,l[t]);if(Fe)for(var t of Fe(l))Me.call(l,t)&&We(e,t,l[t]);return e},Be=(e,l,t)=>new Promise(((a,o)=>{var n=e=>{try{d(t.next(e))}catch(e){o(e)}},r=e=>{try{d(t.throw(e))}catch(e){o(e)}},d=e=>e.done?a(e.value):Promise.resolve(e.value).then(n,r);d((t=t.apply(e,l)).next())}));const Qe={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Ue=oe((e=>{const l=()=>{const l=g(e.getSchemaJson());return!te(l)||s(e.getTableIds(),(t=>{const a=e.getRowIds(t),o=k();if(s(a,(l=>s(e.getCellIds(t,l),(a=>{const n=e.getCell(t,l,a),r=A(o,a,(()=>[ae(n),k(),[0],0])),[d,s,[$]]=r,i=A(s,n,(()=>0))+1;return i>$&&(r[2]=[i,n]),x(s,n,i),r[3]++,d==ae(n)})))))return l[t]={},L(o,(([e,,[,o],n],s)=>{l[t][s]=_e({[r]:e},n==c(a)?{[d]:o}:{})})),1}))?l:{}},t=e=>ze(l(),e),a=e=>Be(void 0,null,(function*(){let l;try{l=(yield import("prettier")).format}catch(e){l=e=>e}return I(t(e),(e=>B(l(e,Qe))))}));return ee({getStoreStats:l=>{let t=0,a=0,o=0;const n={};return e.forEachTable(((e,r)=>{t++;let d=0,s=0;const $={};r(((e,t)=>{d++;let a=0;t((()=>a++)),s+=a,l&&($[e]={rowCells:a})})),a+=d,o+=s,l&&(n[e]={tableRows:d,tableCells:s,rows:$})})),_e({totalTables:t,totalRows:a,totalCells:o,jsonLength:Q(e.getJson())},l?{detail:{tables:n}}:{})},getStoreSchema:l,getStoreApi:t,getPrettyStoreApi:a})}));e.createTools=Ue},"object"==typeof exports&&"undefined"!=typeof module?l(exports):"function"==typeof define&&define.amd?define(["exports"],l):l((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseTools={});
1
+ var e,a;e=this,a=function(e){"use strict";const a=e=>typeof e,l="",t=a(l),o=a(!0),n=a(0),s="type",r="default",d=(e,a)=>e.every(a),$=(e,a)=>e.sort(a),i=(e,a)=>e.forEach(a),u=(e,a)=>e.map(a),I=e=>e.length,c=e=>0==I(e),b=(e,...a)=>e.push(...a),w=e=>e.pop(),h=(e,...a)=>e.unshift(...a),g=e=>e.shift(),C=JSON.parse,f=isFinite,T=(e,a)=>e instanceof a,V=e=>null==e,v=e=>e==t||e==o,p=e=>a(e)==t,R=e=>Array.isArray(e),m=e=>{const l=a(e);return v(l)||l==n&&f(e)?l:void 0},y=(e,a)=>{var l;return null!=(l=null==e?void 0:e.has(a))&&l},L=e=>{var a;return[...null!=(a=null==e?void 0:e.values())?a:[]]},S=(e,a)=>null==e?void 0:e.forEach(a),k=(e,a)=>null==e?void 0:e.delete(a),J=e=>new Map(e),E=(e,a)=>null==e?void 0:e.get(a),O=(e,a)=>S(e,((e,l)=>a(l,e))),j=(e,a)=>{var l;return u([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>a(l,e)))},x=(e,a,l)=>V(l)?(k(e,a),e):null==e?void 0:e.set(a,l),A=(e,a,l)=>(y(e,a)||x(e,a,l()),E(e,a)),P=e=>new Set(R(e)||V(e)?e:[e]),D=(e,a)=>null==e?void 0:e.add(a),N=e=>[e,e],G=()=>[J(),J()],z=/[^A-Za-z]+/,F=/[^A-Za-z0-9]+/,W=/^( *)\/\*\* *(.*?) *\*\/$/gm,M=(e,a,l)=>e.substring(a,l),Z=e=>e.toUpperCase(),_=e=>e.toLowerCase(),B=(e,a,l,t=1)=>{const o=`${a}${1==t?"":t}`;return y(e,o)?B(e,a,l,t+1):(x(e,o,l),o)},Q=e=>e.replace(W,((e,a,l)=>{const t=77-U(a);return`${a}/**\n${l.replace(RegExp(`([^\\n]{1,${t}})(\\s|$)`,"g"),a+" * $1\n")}${a} */`})),U=e=>e.length,q=(e,a=l)=>e.join(a),H=e=>e.flat(1e3),K=(e,a=0)=>q(u(e.split(F),((e,l)=>(l>0||a?Z:_)(M(e,0,1))+M(e,1)))),X=e=>Z(q((e&&!z.test(e[0])?e:" "+e).split(F),"_")),Y=e=>`/** ${e}. */`,ee=()=>{const e=G(),a=J(),t=J(),o=J();return[(...e)=>q(H(e),"\n"),(a,l,...t)=>i(t,(t=>D(A(e[a],l,P),t))),(e,l,t)=>B(a,e,[l,t]),(e,a,l,o,n,s="")=>B(t,e,[a,l,o,n,s]),(e,a,l)=>B(o,e,R(l)?[`(${a}) => {`,l,"}"]:[`(${a}) => ${l}`]),(e,a)=>E(o,e)===a?e:B(o,e,a),a=>[...$(j(e[a],((e,a)=>`import {${q($(L(e)),", ")}} from '${a}';`))),l],()=>j(a,(([e,a],t)=>[Y(a),`export type ${t} = ${e};`,l])),e=>j(t,(([a,t,o,n,s],r)=>{const d=e?[`${r}: ${s}(${a}): ${t} => ${o},`]:[`${r}${s}(${a}): ${t};`];return e||h(d,Y(n)),b(d,l),d})),()=>j(o,((e,a)=>(e=R(e)?e:[e],b(e,w(e)+";"),[`const ${a} = ${g(e)}`,e,l])))]},ae=Object,le=ae.keys,te=ae.freeze,oe=e=>T(e,ae)&&e.constructor==ae,ne=(e,a)=>u(ae.entries(e),(([e,l])=>a(l,e))),se=e=>oe(e)&&c(le(e)),re=e=>{const a=new WeakMap;return l=>(a.has(l)||a.set(l,e(l)),a.get(l))},de="the Store",$e="A function for",ie="export",ue="listener",Ie=" | undefined",ce=`Registers a ${ue} that will be called`,be="Represents",we=" => void",he="the end of the transaction",ge="the specified Row",Ce="a string serialization of",fe=(e=0,a=0)=>`the ${Ne[e]}content of${a?" "+de:""}`,Te=(e,a=0,l=0)=>`${Pe[e]} ${fe(a,1)}${l?" when set":""}`,Ve=(e,a=0)=>`${be} a Row when ${a?"s":"g"}etting ${fe()} the '${e}' Table`,ve=(e,a,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${a}`,pe=(e,a)=>`Calls a function for each ${e} in ${a}`,Re=(e,a=de)=>`Gets whether ${e} exists in ${a}`,me=e=>"A function that takes "+e,ye=(e,a=0)=>`${$e} listening to changes to ${De[e]} in ${De[a]}`,Le=(e,a,t=0)=>`${ce} whenever ${e} in ${a} change`+(t?l:"s"),Se=e=>`the '${e}' Table`,ke=e=>`${ge} in ${Se(e)}`,Je=e=>`the '${e}' Cell`,Ee=e=>`the '${e}' Value`,Oe=(e,a=0)=>`${Pe[a]} ${fe()} ${Se(e)}`,je=(e,a=0)=>`${Pe[a]} ${fe()} ${ke(e)}`,xe=(e,a,l=0)=>`${Pe[l]} ${Je(a)} for ${ke(e)}`,Ae=(e,a=0)=>`${Pe[a]} ${Ee(e)}`,Pe=["Gets","Sets","Sets part of","Deletes",be,"Gets "+Ce,"Sets "+Ce,ce+" whenever"],De=[de,"Tables","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes","Values","Value Ids","a Value","invalid Value changes"],Ne=["","tabular ","keyed value "],Ge=["DoRollback","Id","IdOrNull","Ids","Json","Store"],ze=(e,a=l,t=l)=>`store.${e}(${a})${t?" as "+t:l}`,Fe=(e,a=l)=>`fluent(() => ${ze(e,a)})`,We=(e,a=l,t=l)=>`store.${e}(${a?a+", ":l}proxy(${ue})${t?", "+t:l})`,Me=(e,a,t)=>{if(se(e)&&se(a))return N(l);const[n,d,$,i,u,I,c,w,h,g]=ee(),C=`./${K(t)}.d`,f=K(t,1),T=K(f),v=[],R=J(),m=a=>ne(e,((e,t)=>a(t,A(R,t,(()=>{const e=K(t,1);return[$(e+"Table",`{[rowId: Id]: ${e}Row}`,`${be} the '${t}' Table`),$(e+"Row",`{${q(y(t,((e,a,t)=>`'${e}'${V(t)?"?":l}: ${a};`))," ")}}`,Ve(t)),$(e+"RowWhenSet",`{${q(y(t,((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ve(t,1)),$(e+"CellId",q(y(t,(e=>`'${e}'`))," | "),`A Cell Id for the '${t}' Table`),$(e+"CellCallback",`(...[cellId, cell]: ${q(y(t,((e,a)=>`[cellId: '${e}', cell: ${a}]`))," | ")})${we}`,me(`a Cell Id and value from a Row in the '${t}' Table`)),$(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${we})${we}`,me(`a Row Id from the '${t}' Table, and a Cell iterator`))]})),K(t,1),I(X(t),`'${t}'`)))),y=(a,l)=>ne(e[a],((e,a)=>l(a,e[s],e[r],I(X(a),`'${a}'`),K(a,1)))),S=e=>ne(a,((a,l)=>e(l,a[s],a[r],I(X(l),`'${l}'`),K(l,1))));if(d(1,C,f,`create${f} as create${f}Decl`),!se(e)){const e=$("Tables",`{${q(m(((e,a)=>`'${e}'?: ${a[0]};`))," ")}}`,Te(4,1)),a=$("TableId",q(m((e=>`'${e}'`))," | "),"A Table Id in "+de),t=$("TableCallback",`(...[tableId, rowCallback]: ${q(m(((e,a)=>`[tableId: '${e}', forEachRow: (rowCallback: ${a[5]})${we}]`))," | ")})${we}`,me("a Table Id, and a Row iterator")),n=$("GetCellChange",`(...[tableId, rowId, cellId]: ${q(m(((e,a)=>`[tableId: '${e}', rowId: Id, cellId: ${a[3]}]`))," | ")}) => CellChange`,$e+" returning information about any Cell's changes during a transaction"),u=$("TablesListener",`(${T}: ${f}, getCellChange: ${n}${Ie})${we}`,ye(1)),c=$("TableIdsListener",`(${T}: ${f})${we}`,ye(2)),w=$("TableListener",`(${T}: ${f}, tableId: ${a}, getCellChange: ${n}${Ie})${we}`,ye(3)),h=$("RowIdsListener",`(${T}: ${f}, tableId: ${a})`+we,ye(4,3)),g=$("RowListener",`(${T}: ${f}, tableId: ${a}, rowId: Id, getCellChange: ${n}${Ie})${we}`,ye(5,3)),R=$("CellIdsListener",`(${T}: ${f}, tableId: ${a}, rowId: Id)`+we,ye(6,5)),S=$("CellListener",`(...[${T}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${q(H(m((e=>y(e,((a,l)=>`[${T}: ${f}, tableId: '${e}', rowId: Id, cellId: '${a}', newCell: ${l}${Ie}, oldCell: ${l}${Ie}, getCellChange: ${n} | undefined]`)))))," | ")})${we}`,ye(7,5)),k=$("InvalidCellListener",`(${T}: ${f}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${we}`,ye(8));i("hasTables",l,o,ze("hasTables"),Re("any Table")),i("getTables",l,e,ze("getTables"),Te(0,1)),i("setTables","tables: "+e,f,Fe("setTables","tables"),Te(1,1)),i("delTables",l,f,Fe("delTables"),Te(3,1)),i("getTableIds",l,a+"[]",ze("getTableIds",l,a+"[]"),ve("Table",de)),i("forEachTable","tableCallback: "+t,"void",ze("forEachTable","tableCallback as any"),pe("Table",de));const E=J();m(((e,[a,t,n,s,r,$],u,I)=>{d(1,C,a,t,n,s,r,$),i(`has${u}Table`,l,o,ze("hasTable",I),Re(Se(e))),i(`get${u}Table`,l,a,ze("getTable",I,a),Oe(e)),i(`set${u}Table`,"table: "+a,f,Fe("setTable",I+", table"),Oe(e,1)),i(`del${u}Table`,l,f,Fe("delTable",I),Oe(e,3)),i(`get${u}RowIds`,l,"Ids",ze("getRowIds",I),ve("Row",Se(e))),i(`get${u}SortedRowIds`,`cellId?: ${s}, descending?: boolean, offset?: number, limit?: number`,"Ids",ze("getSortedRowIds",I+", cellId, descending, offset, limit"),ve("Row",Se(e),1)),i(`forEach${u}Row`,"rowCallback: "+$,"void",ze("forEachRow",I+", rowCallback as any"),pe("Row",Se(e))),i(`has${u}Row`,"rowId: Id",o,ze("hasRow",I+", rowId"),Re(ge,Se(e))),i(`get${u}Row`,"rowId: Id",t,ze("getRow",I+", rowId",t),je(e)),i(`set${u}Row`,"rowId: Id, row: "+n,f,Fe("setRow",I+", rowId, row"),je(e,1)),i(`add${u}Row`,"row: "+n,"Id"+Ie,ze("addRow",I+", row"),"Adds a new Row to "+Se(e)),i(`set${u}PartialRow`,"rowId: Id, partialRow: "+n,f,Fe("setPartialRow",I+", rowId, partialRow"),je(e,2)),i(`del${u}Row`,"rowId: Id",f,Fe("delRow",I+", rowId"),je(e,3)),i(`get${u}CellIds`,"rowId: Id",s+"[]",ze("getCellIds",I+", rowId",s+"[]"),ve("Cell",ke(e))),i(`forEach${u}Cell`,"rowId: Id, cellCallback: "+r,"void",ze("forEachCell",I+", rowId, cellCallback as any"),pe("Cell",ke(e))),y(e,((a,t,n,s,r)=>{const d="Map"+K(t,1);x(E,t,d),i(`has${u}${r}Cell`,"rowId: Id",o,ze("hasCell",`${I}, rowId, ${s}`),Re(Je(a),ke(e)));const $=`${t}${V(n)?Ie:l}`;i(`get${u}${r}Cell`,"rowId: Id",$,ze("getCell",`${I}, rowId, ${s}`,$),xe(e,a)),i(`set${u}${r}Cell`,`rowId: Id, cell: ${t} | ${d}`,f,Fe("setCell",`${I}, rowId, ${s}, cell as any`),xe(e,a,1)),i(`del${u}${r}Cell`,"rowId: Id",f,Fe("delCell",`${I}, rowId, ${s}`),xe(e,a,3))}))})),i("getTablesJson",l,"Json",ze("getTablesJson"),Te(5,1)),i("setTablesJson","tablesJson: Json",f,Fe("setTablesJson","tablesJson"),Te(6,1)),i("addTablesListener",`${ue}: ${u}, mutator?: boolean`,"Id",We("addTablesListener",l,"mutator"),Te(7,1)+" changes"),i("addTableIdsListener",`${ue}: ${c}, mutator?: boolean`,"Id",We("addTableIdsListener",l,"mutator"),Le("the Table Ids",de,1)),i("addTableListener",`tableId: ${a} | null, ${ue}: ${w}, mutator?: boolean`,"Id",We("addTableListener","tableId","mutator"),Le("a Table",de)),i("addRowIdsListener",`tableId: ${a} | null, ${ue}: ${h}, mutator?: boolean`,"Id",We("addRowIdsListener","tableId","mutator"),Le("the Row Ids","a Table",1)),i("addRowListener",`tableId: ${a} | null, rowId: IdOrNull, ${ue}: ${g}, mutator?: boolean`,"Id",We("addRowListener","tableId, rowId","mutator"),Le("a Row","a Table")),i("addCellIdsListener",`tableId: ${a} | null, rowId: IdOrNull, ${ue}: ${R}, mutator?: boolean`,"Id",We("addCellIdsListener","tableId, rowId","mutator"),Le("the Cell Ids","a Row",1)),i("addCellListener",`tableId: ${a} | null, rowId: IdOrNull, cellId: ${q(m(((e,a)=>a[3]))," | ")} | null, ${ue}: ${S}, mutator?: boolean`,"Id",We("addCellListener","tableId, rowId, cellId","mutator"),Le("a Cell","a Row")),i("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${ue}: ${k}, mutator?: boolean`,"Id",We("addInvalidCellListener","tableId, rowId, cellId","mutator"),ce+" whenever an invalid Cell change was attempted"),O(E,((e,a)=>$(a,`(cell: ${e}${Ie}) => ${e}`,`Takes a ${e} Cell value and returns another`))),d(1,C,e,a,t,u,c,w,h,g,R,S,k,...L(E)),d(0,"tinybase","CellChange"),b(v,".setTablesSchema({",H(m(((e,a,t,o)=>[`[${o}]: {`,...y(e,((e,a,t,o)=>`[${o}]: {[${I(X(s),`'${s}'`)}]: ${I(X(a),`'${a}'`)}${V(t)?l:`, [${I(X(r),`'${r}'`)}]: ${p(t)?I(X(t),`'${t}'`):t}`}},`)),"},"]))),"})")}if(!se(a)){const e=$("Values",`{${q(S(((e,a,t)=>`'${e}'${V(t)?"?":l}: ${a};`))," ")}}`,Te(4,2)),a=$("ValuesWhenSet",`{${q(S(((e,a)=>`'${e}'?: ${a};`))," ")}}`,Te(4,2,1)),t=$("ValueId",q(S((e=>`'${e}'`))," | "),"A Value Id in "+de),n=$("ValueCallback",`(...[valueId, rowCallback]: ${q(S(((e,a)=>`[valueId: '${e}', value: ${a}]`))," | ")})${we}`,me("a Value Id, and value")),u=$("GetValueChange",`(valueId: ${t}) => ValueChange`,$e+" returning information about any Value's changes during a transaction"),c=$("ValuesListener",`(${T}: ${f}, getValueChange: ${u}${Ie})`+we,ye(9)),w=$("ValueIdsListener",`(${T}: ${f})${we}`,ye(10)),h=$("ValueListener",`(...[${T}, valueId, newValue, oldValue, getValueChange]: ${q(S(((e,a)=>`[${T}: ${f}, valueId: '${e}', newValue: ${a}${Ie}, oldValue: ${a}${Ie}, getValueChange: ${u} | undefined]`))," | ")})${we}`,ye(11)),g=$("InvalidValueListener",`(${T}: ${f}, valueId: Id, invalidValues: any[])${we}`,ye(12));i("hasValues",l,o,ze("hasValues"),Re("any Value")),i("getValues",l,e,ze("getValues"),Te(0,2)),i("setValues","values: "+a,f,Fe("setValues","values"),Te(1,2)),i("setPartialValues","partialValues: "+a,f,Fe("setPartialValues","partialValues"),Te(2,2)),i("delValues",l,f,Fe("delValues"),Te(3,2)),i("getValueIds",l,t+"[]",ze("getValueIds",l,t+"[]"),ve("Value",de)),i("forEachValue","valueCallback: "+n,"void",ze("forEachValue","valueCallback as any"),pe("Value",de)),S(((e,a,t,n,s)=>{i(`has${s}Value`,l,o,ze("hasValue",n),Re(Ee(e))),i(`get${s}Value`,l,a,ze("getValue",n,a),Ae(e)),i(`set${s}Value`,"value: "+a,f,Fe("setValue",n+", value"),Ae(e,1)),i(`del${s}Value`,l,f,Fe("delValue",n),Ae(e,3))})),i("getValuesJson",l,"Json",ze("getValuesJson"),Te(5,2)),i("setValuesJson","valuesJson: Json",f,Fe("setValuesJson","valuesJson"),Te(6,2)),i("addValuesListener",`${ue}: ${c}, mutator?: boolean`,"Id",We("addValuesListener",l,"mutator"),Te(7,2)+" changes"),i("addValueIdsListener",`${ue}: ${w}, mutator?: boolean`,"Id",We("addValueIdsListener",l,"mutator"),Le("the Value Ids",de,1)),i("addValueListener",`valueId: ${t} | null, ${ue}: ${h}, mutator?: boolean`,"Id",We("addValueListener","valueId","mutator"),Le("a Value",de)),i("addInvalidValueListener",`valueId: IdOrNull, ${ue}: ${g}, mutator?: boolean`,"Id",We("addInvalidValueListener","valueId","mutator"),ce+" whenever an invalid Cell change was attempted"),d(1,C,e,t,n,c,w,h,g),d(0,"tinybase","ValueChange"),b(v,".setValuesSchema({",S(((e,a,t,o)=>[`[${o}]: {[${I(X(s),`'${s}'`)}]: ${I(X(a),`'${a}'`)}${V(t)?l:`, [${I(X(r),`'${r}'`)}]: ${p(t)?I(X(t),`'${t}'`):t}`}},`])),"})")}d(0,"tinybase",...Ge);const k=$("TransactionListener",`(${T}: ${f}, cellsTouched: boolean, valuesTouched: boolean)${we}`,$e+" listening to the completion of a transaction");return i("getJson",l,"Json",ze("getJson"),Te(5)),i("setJson","json: Json",f,Fe("setJson","json"),Te(6)),i("transaction","actions: () => Return, doRollback?: DoRollback","Return",ze("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),i("startTransaction",l,f,Fe("startTransaction"),"Explicitly starts a transaction"),i("finishTransaction","doRollback?: DoRollback,",f,Fe("finishTransaction","doRollback"),"Explicitly finishes a transaction"),i("addWillFinishTransactionListener",`${ue}: ${k}`,"Id",We("addWillFinishTransactionListener"),`${ce} just before ${he}`),i("addDidFinishTransactionListener",`${ue}: ${k}`,"Id",We("addDidFinishTransactionListener"),`${ce} just after ${he}`),i("callListener",ue+"Id: Id",f,Fe("callListener",ue+"Id"),`Manually provoke a ${ue} to be called`),i("delListener",ue+"Id: Id",f,Fe("delListener",ue+"Id"),`Remove a ${ue} that was previously added to ${de}`),i("getStore",l,"Store","store",Pe[0]+" the underlying Store object"),d(1,"tinybase","createStore",...Ge),d(1,C,f,`create${f} as create${f}Decl`,k),I("store",["createStore()",...v]),u("fluent","actions: () => Store",["actions();",`return ${T};`]),u("proxy",ue+": any",`(_: Store, ...args: any[]) => ${ue}(${T}, ...args)`),I(T,["{",...h(1),"}"]),[n(...c(0),...w(),`${ie} interface ${f} {`,...h(0),"}",l,Y(`Creates a ${f} object`),`${ie} function create${f}(): ${f};`),n(...c(1),`${ie} const create${f}: typeof create${f}Decl = () => {`,...g(),`return Object.freeze(${T});`,"};")]};var Ze=Object.defineProperty,_e=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable,Ue=(e,a,l)=>a in e?Ze(e,a,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[a]=l,qe=(e,a)=>{for(var l in a||(a={}))Be.call(a,l)&&Ue(e,l,a[l]);if(_e)for(var l of _e(a))Qe.call(a,l)&&Ue(e,l,a[l]);return e},He=(e,a,l)=>new Promise(((t,o)=>{var n=e=>{try{r(l.next(e))}catch(e){o(e)}},s=e=>{try{r(l.throw(e))}catch(e){o(e)}},r=e=>e.done?t(e.value):Promise.resolve(e.value).then(n,s);r((l=l.apply(e,a)).next())}));const Ke={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Xe=re((e=>{const a=()=>{const a=C(e.getTablesSchemaJson());return!se(a)||d(e.getTableIds(),(l=>{const t=e.getRowIds(l),o=J();if(d(t,(a=>d(e.getCellIds(l,a),(t=>{const n=e.getCell(l,a,t),s=A(o,t,(()=>[m(n),J(),[0],0])),[r,d,[$]]=s,i=A(d,n,(()=>0))+1;return i>$&&(s[2]=[i,n]),x(d,n,i),s[3]++,r==m(n)})))))return a[l]={},S(o,(([e,,[,o],n],d)=>{a[l][d]=qe({[s]:e},n==I(t)?{[r]:o}:{})})),1}))?a:{}},l=()=>{const a=C(e.getValuesSchemaJson());return se(a)&&e.forEachValue(((e,l)=>{a[e]={[s]:m(l)}})),a},t=e=>Me(a(),l(),e),o=e=>He(void 0,null,(function*(){let a;try{a=(yield import("prettier")).format}catch(e){a=e=>e}return u(t(e),(e=>Q(a(e,Ke))))}));return te({getStoreStats:a=>{let l=0,t=0,o=0;const n={};return e.forEachTable(((e,s)=>{l++;let r=0,d=0;const $={};s(((e,l)=>{r++;let t=0;l((()=>t++)),d+=t,a&&($[e]={rowCells:t})})),t+=r,o+=d,a&&(n[e]={tableRows:r,tableCells:d,rows:$})})),qe({totalTables:l,totalRows:t,totalCells:o,totalValues:I(e.getValueIds()),jsonLength:U(e.getJson())},a?{detail:{tables:n}}:{})},getStoreTablesSchema:a,getStoreValuesSchema:l,getStoreApi:t,getPrettyStoreApi:o})}));e.createTools=Xe},"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseTools={});
Binary file