tinybase 3.2.0-beta.0 → 4.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 (185) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/metrics.cjs +1 -1
  8. package/lib/cjs/metrics.cjs.gz +0 -0
  9. package/lib/cjs/persister-browser.cjs +1 -0
  10. package/lib/cjs/persister-browser.cjs.gz +0 -0
  11. package/lib/cjs/persister-file.cjs +1 -0
  12. package/lib/cjs/persister-file.cjs.gz +0 -0
  13. package/lib/cjs/persister-remote.cjs +1 -0
  14. package/lib/cjs/persister-remote.cjs.gz +0 -0
  15. package/lib/cjs/persister-yjs.cjs +1 -0
  16. package/lib/cjs/persister-yjs.cjs.gz +0 -0
  17. package/lib/cjs/persisters.cjs +1 -1
  18. package/lib/cjs/persisters.cjs.gz +0 -0
  19. package/lib/cjs/relationships.cjs +1 -1
  20. package/lib/cjs/relationships.cjs.gz +0 -0
  21. package/lib/cjs/store.cjs +1 -1
  22. package/lib/cjs/store.cjs.gz +0 -0
  23. package/lib/cjs/tinybase.cjs +1 -1
  24. package/lib/cjs/tinybase.cjs.gz +0 -0
  25. package/lib/cjs/tools.cjs +1 -1
  26. package/lib/cjs/tools.cjs.gz +0 -0
  27. package/lib/cjs/ui-react.cjs +1 -1
  28. package/lib/cjs/ui-react.cjs.gz +0 -0
  29. package/lib/cjs-es6/checkpoints.cjs +1 -1
  30. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  31. package/lib/cjs-es6/indexes.cjs +1 -1
  32. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  33. package/lib/cjs-es6/metrics.cjs +1 -1
  34. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  35. package/lib/cjs-es6/persister-browser.cjs +1 -0
  36. package/lib/cjs-es6/persister-browser.cjs.gz +0 -0
  37. package/lib/cjs-es6/persister-file.cjs +1 -0
  38. package/lib/cjs-es6/persister-file.cjs.gz +0 -0
  39. package/lib/cjs-es6/persister-remote.cjs +1 -0
  40. package/lib/cjs-es6/persister-remote.cjs.gz +0 -0
  41. package/lib/cjs-es6/persister-yjs.cjs +1 -0
  42. package/lib/cjs-es6/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters.cjs +1 -1
  44. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  45. package/lib/cjs-es6/relationships.cjs +1 -1
  46. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  47. package/lib/cjs-es6/store.cjs +1 -1
  48. package/lib/cjs-es6/store.cjs.gz +0 -0
  49. package/lib/cjs-es6/tinybase.cjs +1 -1
  50. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  51. package/lib/cjs-es6/tools.cjs +1 -1
  52. package/lib/cjs-es6/tools.cjs.gz +0 -0
  53. package/lib/cjs-es6/ui-react.cjs +1 -1
  54. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  55. package/lib/debug/checkpoints.js +2 -2
  56. package/lib/debug/indexes.js +2 -2
  57. package/lib/debug/metrics.js +2 -2
  58. package/lib/debug/persister-browser.js +148 -0
  59. package/lib/debug/persister-file.js +140 -0
  60. package/lib/debug/persister-remote.js +156 -0
  61. package/lib/debug/persister-yjs.js +119 -0
  62. package/lib/debug/persisters.js +31 -130
  63. package/lib/debug/relationships.js +2 -2
  64. package/lib/debug/store.js +43 -28
  65. package/lib/debug/tinybase.js +73 -155
  66. package/lib/debug/tools.js +5 -4
  67. package/lib/debug/ui-react.js +3 -2
  68. package/lib/es6/checkpoints.js +1 -1
  69. package/lib/es6/checkpoints.js.gz +0 -0
  70. package/lib/es6/indexes.js +1 -1
  71. package/lib/es6/indexes.js.gz +0 -0
  72. package/lib/es6/metrics.js +1 -1
  73. package/lib/es6/metrics.js.gz +0 -0
  74. package/lib/es6/persister-browser.js +1 -0
  75. package/lib/es6/persister-browser.js.gz +0 -0
  76. package/lib/es6/persister-file.js +1 -0
  77. package/lib/es6/persister-file.js.gz +0 -0
  78. package/lib/es6/persister-remote.js +1 -0
  79. package/lib/es6/persister-remote.js.gz +0 -0
  80. package/lib/es6/persister-yjs.js +1 -0
  81. package/lib/es6/persister-yjs.js.gz +0 -0
  82. package/lib/es6/persisters.js +1 -1
  83. package/lib/es6/persisters.js.gz +0 -0
  84. package/lib/es6/relationships.js +1 -1
  85. package/lib/es6/relationships.js.gz +0 -0
  86. package/lib/es6/store.js +1 -1
  87. package/lib/es6/store.js.gz +0 -0
  88. package/lib/es6/tinybase.js +1 -1
  89. package/lib/es6/tinybase.js.gz +0 -0
  90. package/lib/es6/tools.js +1 -1
  91. package/lib/es6/tools.js.gz +0 -0
  92. package/lib/es6/ui-react.js +1 -1
  93. package/lib/es6/ui-react.js.gz +0 -0
  94. package/lib/indexes.js +1 -1
  95. package/lib/indexes.js.gz +0 -0
  96. package/lib/metrics.js +1 -1
  97. package/lib/metrics.js.gz +0 -0
  98. package/lib/persister-browser.js +1 -0
  99. package/lib/persister-browser.js.gz +0 -0
  100. package/lib/persister-file.js +1 -0
  101. package/lib/persister-file.js.gz +0 -0
  102. package/lib/persister-remote.js +1 -0
  103. package/lib/persister-remote.js.gz +0 -0
  104. package/lib/persister-yjs.js +1 -0
  105. package/lib/persister-yjs.js.gz +0 -0
  106. package/lib/persisters.js +1 -1
  107. package/lib/persisters.js.gz +0 -0
  108. package/lib/relationships.js +1 -1
  109. package/lib/relationships.js.gz +0 -0
  110. package/lib/store.js +1 -1
  111. package/lib/store.js.gz +0 -0
  112. package/lib/tinybase.js +1 -1
  113. package/lib/tinybase.js.gz +0 -0
  114. package/lib/tools.js +1 -1
  115. package/lib/tools.js.gz +0 -0
  116. package/lib/types/persister-browser.d.ts +85 -0
  117. package/lib/types/persister-file.d.ts +41 -0
  118. package/lib/types/persister-remote.d.ts +60 -0
  119. package/lib/types/persister-yjs.d.ts +44 -0
  120. package/lib/types/persisters.d.ts +45 -176
  121. package/lib/types/store.d.ts +127 -12
  122. package/lib/types/ui-react.d.ts +11 -0
  123. package/lib/types/with-schemas/persister-browser.d.ts +103 -0
  124. package/lib/types/with-schemas/persister-file.d.ts +50 -0
  125. package/lib/types/with-schemas/persister-remote.d.ts +71 -0
  126. package/lib/types/with-schemas/persister-yjs.d.ts +53 -0
  127. package/lib/types/with-schemas/persisters.d.ts +58 -218
  128. package/lib/types/with-schemas/store.d.ts +147 -12
  129. package/lib/types/with-schemas/ui-react.d.ts +12 -0
  130. package/lib/ui-react.js +1 -1
  131. package/lib/ui-react.js.gz +0 -0
  132. package/lib/umd/checkpoints.js +1 -1
  133. package/lib/umd/checkpoints.js.gz +0 -0
  134. package/lib/umd/indexes.js +1 -1
  135. package/lib/umd/indexes.js.gz +0 -0
  136. package/lib/umd/metrics.js +1 -1
  137. package/lib/umd/metrics.js.gz +0 -0
  138. package/lib/umd/persister-browser.js +1 -0
  139. package/lib/umd/persister-browser.js.gz +0 -0
  140. package/lib/umd/persister-file.js +1 -0
  141. package/lib/umd/persister-file.js.gz +0 -0
  142. package/lib/umd/persister-remote.js +1 -0
  143. package/lib/umd/persister-remote.js.gz +0 -0
  144. package/lib/umd/persister-yjs.js +1 -0
  145. package/lib/umd/persister-yjs.js.gz +0 -0
  146. package/lib/umd/persisters.js +1 -1
  147. package/lib/umd/persisters.js.gz +0 -0
  148. package/lib/umd/relationships.js +1 -1
  149. package/lib/umd/relationships.js.gz +0 -0
  150. package/lib/umd/store.js +1 -1
  151. package/lib/umd/store.js.gz +0 -0
  152. package/lib/umd/tinybase.js +1 -1
  153. package/lib/umd/tinybase.js.gz +0 -0
  154. package/lib/umd/tools.js +1 -1
  155. package/lib/umd/tools.js.gz +0 -0
  156. package/lib/umd/ui-react.js +1 -1
  157. package/lib/umd/ui-react.js.gz +0 -0
  158. package/lib/umd-es6/checkpoints.js +1 -1
  159. package/lib/umd-es6/checkpoints.js.gz +0 -0
  160. package/lib/umd-es6/indexes.js +1 -1
  161. package/lib/umd-es6/indexes.js.gz +0 -0
  162. package/lib/umd-es6/metrics.js +1 -1
  163. package/lib/umd-es6/metrics.js.gz +0 -0
  164. package/lib/umd-es6/persister-browser.js +1 -0
  165. package/lib/umd-es6/persister-browser.js.gz +0 -0
  166. package/lib/umd-es6/persister-file.js +1 -0
  167. package/lib/umd-es6/persister-file.js.gz +0 -0
  168. package/lib/umd-es6/persister-remote.js +1 -0
  169. package/lib/umd-es6/persister-remote.js.gz +0 -0
  170. package/lib/umd-es6/persister-yjs.js +1 -0
  171. package/lib/umd-es6/persister-yjs.js.gz +0 -0
  172. package/lib/umd-es6/persisters.js +1 -1
  173. package/lib/umd-es6/persisters.js.gz +0 -0
  174. package/lib/umd-es6/relationships.js +1 -1
  175. package/lib/umd-es6/relationships.js.gz +0 -0
  176. package/lib/umd-es6/store.js +1 -1
  177. package/lib/umd-es6/store.js.gz +0 -0
  178. package/lib/umd-es6/tinybase.js +1 -1
  179. package/lib/umd-es6/tinybase.js.gz +0 -0
  180. package/lib/umd-es6/tools.js +1 -1
  181. package/lib/umd-es6/tools.js.gz +0 -0
  182. package/lib/umd-es6/ui-react.js +1 -1
  183. package/lib/umd-es6/ui-react.js.gz +0 -0
  184. package/package.json +15 -10
  185. package/readme.md +2 -2
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),s=e(!0),l=e(0),a=e(e),n=e=>""+e,r=(e,t)=>e.forEach(t),o=(e,t)=>e.map(t),c=e=>e.length,u=(e,t,s)=>e.slice(t,s),i=(e,...t)=>e.push(...t),d=e=>JSON.stringify(e,((e,t)=>{return T(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),f=JSON.parse,h=isFinite,T=(e,t)=>e instanceof t,V=e=>null==e,g=(e,t,s)=>V(e)?s?.():t(e),b=e=>e==t||e==s,v=t=>e(t)==a,S=(e,t)=>e?.has(t)??!1,w=e=>V(e)||0==(e=>e.size)(e),y=e=>e.clear(),I=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),p=e=>new Map(e),C=e=>[...e?.keys()??[]],J=(e,t)=>e?.get(t),m=(e,t)=>I(e,((e,s)=>t(s,e))),L=(e,t,s)=>V(s)?(R(e,t),e):e?.set(t,s),E=(e,t,s)=>(S(e,t)||L(e,t,s()),J(e,t)),F=(e,t,s)=>{const l={},a=t??(e=>e);return I(e,((e,t)=>g(a(e),(e=>s?.(e)?0:l[t]=e)))),l},z=(e,t)=>{const s=p(),l=t??(e=>e);return I(e,((e,t)=>s.set(t,l(e)))),s},O=e=>z(e,z),k=(e,t,s,l,a=0)=>g((s?E:J)(e,t[a],a>c(t)-2?s:p),(n=>{if(a>c(t)-2)return l?.(n)&&L(e,t[a]),n;const r=k(n,t,s,l,a+1);return w(n)&&L(e,t[a]),r})),A=e=>new Set(Array.isArray(e)||V(e)?e:[e]),M=(e,t)=>e?.add(t),N=/^\d+$/,P=()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{N.test(t)&&c(e)<1e3&&i(e,t)}]},j=Object,x=j.keys,D=j.isFrozen,W=j.freeze,$=e=>T(e,j)&&e.constructor==j,q=(e,t)=>!V(((e,t)=>g(e,(e=>e[t])))(e,t)),B=(e,t)=>delete e[t],G=(e,t)=>o(j.entries(e),(([e,s])=>t(s,e))),H=e=>{return $(e)&&(t=x(e),0==c(t));var t},K=e=>[e,e],Q=()=>[p(),p()],U=t=>{const s=e(t);return b(s)||s==l&&h(t)?s:void 0},X=(e,t,s,l=L)=>{const a=(n=e=>!q(t,e),C(e).filter(n));var n;return r(x(t),(l=>s(e,l,t[l]))),r(a,(t=>l(e,t))),e},Y=(e,t,s)=>V(e)||!$(e)||H(e)||D(e)?(s?.(),!1):(G(e,((s,l)=>{t(s,l)||B(e,l)})),!H(e)),Z=(e,t,s)=>L(e,t,J(e,t)==-s?void 0:s),_=()=>{let e,t,s,a,h=0;const T=p(),N=p(),j=p(),x=p(),D=p(),$=p(),ee=p(),te=p(),se=p(),le=p(),ae=p(),ne=p(),re=A(),oe=p(),ce=p(),ue=p(),ie=Q(),de=Q(),fe=Q(),he=Q(),Te=Q(),Ve=Q(),ge=Q(),be=Q(),ve=Q(),Se=Q(),we=Q(),ye=Q(),Ie=Q(),Re=Q(),[pe,Ce,Je,me]=(e=>{let t;const[s,l]=P(),a=p();return[(e,l,n,r=[],o=(()=>[]))=>{t??=Nt;const c=s();return L(a,c,[e,l,n,r,o]),M(k(l,n??[""],A),c),c},(e,s,...l)=>r(((e,t=[""])=>{const s=[],l=(e,a)=>a==c(t)?i(s,e):null===t[a]?I(e,(e=>l(e,a+1))):r([t[a],null],(t=>l(J(e,t),a+1)));return l(e,0),s})(e,s),(e=>I(e,(e=>J(a,e)[0](t,...s??[],...l))))),e=>g(J(a,e),(([,t,s])=>(k(t,s??[""],void 0,(t=>(R(t,e),w(t)?1:0))),L(a,e),l(e),s))),e=>g(J(a,e),(([e,,s=[],l,a])=>{const n=(...o)=>{const u=c(o);u==c(s)?e(t,...o,...a(o)):V(s[u])?r(l[u]?.(...o)??[],(e=>n(...o,e))):n(...o,s[u])};n()}))]})(),Le=e=>{if(!Y(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!b(t)&&t!=l||(U(e.default)!=t&&B(e,"default"),0))},Ee=(t,s)=>(!e||S(se,s)||nt(s))&&Y(t,((e,t)=>Fe(s,t,e)),(()=>nt(s))),Fe=(e,t,s,l)=>Y(l?s:Ae(s,e,t),((l,a)=>g(ze(e,t,a,l),(e=>(s[a]=e,!0)),(()=>!1))),(()=>nt(e,t))),ze=(t,s,l,a)=>e?g(J(J(se,t),l),(e=>U(a)!=e.type?nt(t,s,l,a,e.default):a),(()=>nt(t,s,l,a))):V(U(a))?nt(t,s,l,a):a,Oe=(e,t)=>Y(t?e:Me(e),((t,s)=>g(ke(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>rt())),ke=(e,s)=>t?g(J(ae,e),(t=>U(s)!=t.type?rt(e,s,t.default):s),(()=>rt(e,s))):V(U(s))?rt(e,s):s,Ae=(e,t,s)=>(g(J(le,t),(([l,a])=>{I(l,((t,s)=>{q(e,s)||(e[s]=t)})),I(a,(l=>{q(e,l)||nt(t,s,l)}))})),e),Me=e=>(t&&(I(ne,((t,s)=>{q(e,s)||(e[s]=t)})),I(re,(t=>{q(e,t)||rt(t)}))),e),Ne=e=>X(se,e,((e,t,s)=>{const l=p(),a=A();X(E(se,t,p),s,((e,t,s)=>{L(e,t,s),g(s.default,(e=>L(l,t,e)),(()=>M(a,t)))})),L(le,t,[l,a])}),((e,t)=>{L(se,t),L(le,t)})),Pe=e=>X(ae,e,((e,t,s)=>{L(ae,t,s),g(s.default,(e=>L(ne,t,e)),(()=>M(re,t)))}),((e,t)=>{L(ae,t),L(ne,t),R(re,t)})),je=e=>H(e)?Et():pt(e),xe=e=>X(ce,e,((e,t,s)=>De(t,s)),((e,t)=>Ue(t))),De=(e,t)=>X(E(ce,e,(()=>(_e(e,1),p()))),t,((t,s,l)=>We(e,t,s,l)),((t,s)=>Xe(e,t,s))),We=(e,t,s,l,a)=>X(E(t,s,(()=>(et(e,s,1),p()))),l,((t,l,a)=>$e(e,s,t,l,a)),((l,n)=>Ye(e,t,s,l,n,a))),$e=(e,t,s,l,a)=>{S(s,l)||tt(e,t,l,1);const n=J(s,l);a!==n&&(st(e,t,l,n,a),L(s,l,a))},qe=(e,t,s,l,a)=>g(J(t,s),(t=>$e(e,s,t,l,a)),(()=>We(e,t,s,Ae({[l]:a},e,s)))),Be=e=>H(e)?Ft():Ct(e),Ge=e=>X(ue,e,((e,t,s)=>He(t,s)),((e,t)=>Ze(t))),He=(e,t)=>{S(ue,e)||lt(e,1);const s=J(ue,e);t!==s&&(at(e,s,t),L(ue,e,t))},Ke=e=>{const[t]=E(oe,e,P),s=t();return S(J(ce,e),s)?Ke(e):s},Qe=e=>J(ce,e)??De(e,{}),Ue=e=>De(e,{}),Xe=(e,t,s)=>{const[,l]=E(oe,e,P);l(s),We(e,t,s,{},!0)},Ye=(e,t,s,l,a,n)=>{const r=J(J(le,e)?.[0],a);if(!V(r)&&!n)return $e(e,s,l,a,r);const o=t=>{st(e,s,t,J(l,t)),tt(e,s,t,-1),L(l,t)};V(r)?o(a):m(l,o),w(l)&&(et(e,s,-1),w(L(t,s))&&(_e(e,-1),L(ce,e),L(oe,e)))},Ze=e=>{const t=J(ne,e);if(!V(t))return He(e,t);at(e,J(ue,e)),lt(e,-1),L(ue,e)},_e=(e,t)=>Z(T,e,t),et=(e,t,s)=>Z(E(N,e,p),t,s),tt=(e,t,s,l)=>Z(E(E(j,e,p),t,p),s,l),st=(e,t,s,l,a)=>E(E(E(x,e,p),t,p),s,(()=>[l,0]))[1]=a,lt=(e,t)=>Z(D,e,t),at=(e,t,s)=>E($,e,(()=>[t,0]))[1]=s,nt=(e,t,s,l,a)=>(i(E(E(E(ee,e,p),t,p),s,(()=>[])),l),a),rt=(e,t,s)=>(i(E(te,e,(()=>[])),t),s),ot=(e,t,s)=>g(J(J(J(x,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...K(wt(e,t,s))])),ct=e=>g(J($,e),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Rt(e))])),ut=e=>w(ee)||w(ve[e])?0:I(e?z(ee,O):ee,((t,s)=>I(t,((t,l)=>I(t,((t,a)=>Ce(ve[e],[s,l,a],t))))))),it=e=>w(te)||w(Se[e])?0:I(e?z(te):te,((t,s)=>Ce(Se[e],[s],t))),dt=(e,t,s)=>{if(!w(t))return Ce(e,s),1},ft=e=>{const t=w(Te[e]),s=w(ge[e])&&w(he[e])&&t&&w(de[e]),l=w(be[e])&&w(Ve[e])&&w(fe[e])&&w(ie[e]);if(!s||!l){const a=e?[z(T),O(N),z(j,O),z(x,O)]:[T,N,j,x];if(!s){I(a[2],((t,s)=>I(t,((t,l)=>dt(ge[e],t,[s,l])))));const s=A();I(a[1],((l,a)=>{dt(he[e],l,[a])&&!t&&(Ce(Te[e],[a,null]),M(s,a))})),t||I(a[3],((t,l)=>{if(!S(s,l)){const s=A();I(t,(e=>I(e,(([t,l],a)=>l!==t?M(s,a):R(e,a))))),I(s,(t=>Ce(Te[e],[l,t])))}})),dt(de[e],a[0])}if(!l){let t;I(a[3],((s,l)=>{let a;I(s,((s,n)=>{let r;I(s,(([s,o],c)=>{o!==s&&(Ce(be[e],[l,n,c],o,s,ot),t=a=r=1)})),r&&Ce(Ve[e],[l,n],ot)})),a&&Ce(fe[e],[l],ot)})),t&&Ce(ie[e],void 0,ot)}}},ht=e=>{const t=w(ye[e]),s=w(Ie[e])&&w(we[e]);if(!t||!s){const l=e?[z(D),z($)]:[D,$];if(t||dt(ye[e],l[0]),!s){let t;I(l[1],(([s,l],a)=>{l!==s&&(Ce(Ie[e],[a],l,s,ct),t=1)})),t&&Ce(we[e],void 0,ct)}}},Tt=(e,...t)=>(kt((()=>e(...o(t,n)))),Nt),Vt=()=>F(ce,(e=>F(e,F))),gt=()=>C(ce),bt=e=>C(J(ce,n(e))),vt=(e,t,s,l=0,a)=>{return o(u((c=J(ce,n(e)),i=(e,s)=>[V(t)?s:J(e,n(t)),s],r=([e],[t])=>(e<t?-1:1)*(s?-1:1),o([...c?.entries()??[]],(([e,t])=>i(t,e))).sort(r)),l,V(a)?a:l+a),(([,e])=>e));var r,c,i},St=(e,t)=>C(J(J(ce,n(e)),n(t))),wt=(e,t,s)=>J(J(J(ce,n(e)),n(t)),n(s)),yt=()=>F(ue),It=()=>C(ue),Rt=e=>J(ue,n(e)),pt=e=>Tt((()=>(e=>Y(e,Ee,nt))(e)?xe(e):0)),Ct=e=>Tt((()=>Oe(e)?Ge(e):0)),Jt=e=>{try{je(f(e))}catch{}return Nt},mt=t=>Tt((()=>{if((e=Y(t,(e=>Y(e,Le))))&&(Ne(t),!w(ce))){const e=Vt();Et(),pt(e)}})),Lt=e=>Tt((()=>{if(t=(e=>Y(e,Le))(e)){const s=yt();Ot(),Ft(),t=!0,Pe(e),Ct(s)}})),Et=()=>Tt((()=>xe({}))),Ft=()=>Tt((()=>Ge({}))),zt=()=>Tt((()=>{Ne({}),e=!1})),Ot=()=>Tt((()=>{Pe({}),t=!1})),kt=(e,t)=>{if(-1==h)return;At();const s=e();return Mt(t),s},At=()=>(h++,Nt),Mt=e=>(h>0&&(h--,0==h&&(s=!w(x),a=!w($),h=1,ut(1),s&&ft(1),it(1),a&&ht(1),h=-1,e?.(F(x,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),H)),H),F(ee,(e=>F(e,F))),F($,(e=>[...e]),(([e,t])=>e===t)),F(te))&&(h=1,I(x,((e,t)=>I(e,((e,s)=>I(e,(([e],l)=>((e,t,s,l,a)=>V(a)?e.delCell(t,s,l,!0):e.setCell(t,s,l,a))(Nt,t,s,l,e))))))),I($,(([e],t)=>((e,t,s)=>V(s)?e.delValue(t):e.setValue(t,s))(Nt,t,e))),h=-1,s=a=!1),Ce(Re[0],void 0,s,a),ut(0),s&&ft(0),it(0),a&&ht(0),Ce(Re[1],void 0,s,a),h=0,r([T,N,j,x,ee,D,$,te],y))),Nt),Nt={getTables:Vt,getTableIds:gt,getTable:e=>F(J(ce,n(e)),F),getRowIds:bt,getSortedRowIds:vt,getRow:(e,t)=>F(J(J(ce,n(e)),n(t))),getCellIds:St,getCell:wt,getValues:yt,getValueIds:It,getValue:Rt,hasTables:()=>!w(ce),hasTable:e=>S(ce,n(e)),hasRow:(e,t)=>S(J(ce,n(e)),n(t)),hasCell:(e,t,s)=>S(J(J(ce,n(e)),n(t)),n(s)),hasValues:()=>!w(ue),hasValue:e=>S(ue,n(e)),getTablesJson:()=>d(ce),getValuesJson:()=>d(ue),getJson:()=>d([ce,ue]),getTablesSchemaJson:()=>d(se),getValuesSchemaJson:()=>d(ae),getSchemaJson:()=>d([se,ae]),setTables:pt,setTable:(e,t)=>Tt((e=>Ee(t,e)?De(e,t):0),e),setRow:(e,t,s)=>Tt(((e,t)=>Fe(e,t,s)?We(e,Qe(e),t,s):0),e,t),addRow:(e,t)=>kt((()=>{let s;return Fe(e,s,t)&&(e=n(e),We(e,Qe(e),s=Ke(e),t)),s})),setPartialRow:(e,t,s)=>Tt(((e,t)=>{if(Fe(e,t,s,1)){const l=Qe(e);G(s,((s,a)=>qe(e,l,t,a,s)))}}),e,t),setCell:(e,t,s,l)=>Tt(((e,t,s)=>g(ze(e,t,s,v(l)?l(wt(e,t,s)):l),(l=>qe(e,Qe(e),t,s,l)))),e,t,s),setValues:Ct,setPartialValues:e=>Tt((()=>Oe(e,1)?G(e,((e,t)=>He(t,e))):0)),setValue:(e,t)=>Tt((e=>g(ke(e,v(t)?t(Rt(e)):t),(t=>He(e,t)))),e),setTablesJson:Jt,setValuesJson:e=>{try{Be(f(e))}catch{}return Nt},setJson:e=>{try{const[t,s]=f(e);je(t),Be(s)}catch{Jt(e)}return Nt},setTablesSchema:mt,setValuesSchema:Lt,setSchema:(e,t)=>Tt((()=>{mt(e),Lt(t)})),delTables:Et,delTable:e=>Tt((e=>S(ce,e)?Ue(e):0),e),delRow:(e,t)=>Tt(((e,t)=>g(J(ce,e),(s=>S(s,t)?Xe(e,s,t):0))),e,t),delCell:(e,t,s,l)=>Tt(((e,t,s)=>g(J(ce,e),(a=>g(J(a,t),(n=>S(n,s)?Ye(e,a,t,n,s,l):0))))),e,t,s),delValues:Ft,delValue:e=>Tt((e=>S(ue,e)?Ze(e):0),e),delTablesSchema:zt,delValuesSchema:Ot,delSchema:()=>Tt((()=>{zt(),Ot()})),transaction:kt,startTransaction:At,finishTransaction:Mt,forEachTable:e=>I(ce,((t,s)=>e(s,(e=>I(t,((t,s)=>e(s,(e=>m(t,e))))))))),forEachRow:(e,t)=>I(J(ce,n(e)),((e,s)=>t(s,(t=>m(e,t))))),forEachCell:(e,t,s)=>m(J(J(ce,n(e)),n(t)),s),forEachValue:e=>m(ue,e),addSortedRowIdsListener:(e,t,s,l,a,n,r)=>{let o=vt(e,t,s,l,a);return pe((()=>{const r=vt(e,t,s,l,a);var u,i,d;i=o,c(u=r)===c(i)&&(d=(e,t)=>i[t]===e,u.every(d))||(o=r,n(Nt,e,t,s,l,a,o))}),Te[r?1:0],[e,t],[gt])},addWillFinishTransactionListener:e=>pe(e,Re[0]),addDidFinishTransactionListener:e=>pe(e,Re[1]),callListener:e=>(me(e),Nt),delListener:e=>(Je(e),Nt),getListenerStats:()=>({}),createStore:_};return G({Tables:[0,ie],TableIds:[0,de],Table:[1,fe,[gt]],RowIds:[1,he,[gt]],Row:[2,Ve,[gt,bt]],CellIds:[2,ge,[gt,bt]],Cell:[3,be,[gt,bt,St],e=>K(wt(...e))],InvalidCell:[3,ve],Values:[0,we],ValueIds:[0,ye],Value:[1,Ie,[It],e=>K(Rt(e[0]))],InvalidValue:[1,Se]},(([e,t,s,l],a)=>{Nt["add"+a+"Listener"]=(...a)=>pe(a[e],t[a[e+1]?1:0],e>0?u(a,0,e):void 0,s,l)})),W(Nt)};export{_ as createStore};
1
+ const e=e=>typeof e,t=e(""),s=e(!0),l=e(0),n=e(e),a=e=>""+e,r=(e,t)=>e.forEach(t),o=(e,t)=>e.map(t),c=e=>e.length,u=(e,t,s)=>e.slice(t,s),i=(e,...t)=>e.push(...t),d=e=>JSON.stringify(e,((e,t)=>{return g(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),f=JSON.parse,h=isFinite,g=(e,t)=>e instanceof t,T=e=>null==e,V=(e,t,s)=>T(e)?s?.():t(e),b=e=>e==t||e==s,v=t=>e(t)==n,S=(e,t)=>e?.has(t)??!1,w=e=>T(e)||0==(e=>e.size)(e),y=e=>e.clear(),C=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),R=e=>new Map(e),p=e=>[...e?.keys()??[]],J=(e,t)=>e?.get(t),m=(e,t)=>C(e,((e,s)=>t(s,e))),L=(e,t,s)=>T(s)?(I(e,t),e):e?.set(t,s),E=(e,t,s)=>(S(e,t)||L(e,t,s()),J(e,t)),F=(e,t,s)=>{const l={},n=t??(e=>e);return C(e,((e,t)=>V(n(e),(e=>s?.(e)?0:l[t]=e)))),l},z=(e,t)=>{const s=R(),l=t??(e=>e);return C(e,((e,t)=>s.set(t,l(e)))),s},O=e=>z(e,z),k=(e,t,s,l,n=0)=>V((s?E:J)(e,t[n],n>c(t)-2?s:R),(a=>{if(n>c(t)-2)return l?.(a)&&L(e,t[n]),a;const r=k(a,t,s,l,n+1);return w(a)&&L(e,t[n]),r})),A=e=>new Set(Array.isArray(e)||T(e)?e:[e]),M=(e,t)=>e?.add(t),N=/^\d+$/,P=()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??""+t++,t=>{N.test(t)&&c(e)<1e3&&i(e,t)}]},j=Object,x=j.keys,D=j.isFrozen,W=j.freeze,$=e=>g(e,j)&&e.constructor==j,q=(e,t)=>!T(((e,t)=>V(e,(e=>e[t])))(e,t)),B=(e,t)=>delete e[t],G=(e,t)=>o(j.entries(e),(([e,s])=>t(s,e))),H=e=>{return $(e)&&(t=x(e),0==c(t));var t},K=e=>[e,e],Q=()=>[R(),R()],U=t=>{const s=e(t);return b(s)||s==l&&h(t)?s:void 0},X=(e,t,s,l=L)=>{const n=(a=e=>!q(t,e),p(e).filter(a));var a;return r(x(t),(l=>s(e,l,t[l]))),r(n,(t=>l(e,t))),e},Y=(e,t,s)=>T(e)||!$(e)||H(e)||D(e)?(s?.(),!1):(G(e,((s,l)=>{t(s,l)||B(e,l)})),!H(e)),Z=(e,t,s)=>L(e,t,J(e,t)==-s?void 0:s),_=()=>{let e,t,s,n,h=0;const g=R(),N=R(),j=R(),x=R(),D=R(),$=R(),ee=R(),te=R(),se=R(),le=R(),ne=R(),ae=R(),re=A(),oe=R(),ce=R(),ue=R(),ie=Q(),de=Q(),fe=Q(),he=Q(),ge=Q(),Te=Q(),Ve=Q(),be=Q(),ve=Q(),Se=Q(),we=Q(),ye=Q(),Ce=Q(),Ie=Q(),[Re,pe,Je,me]=(e=>{let t;const[s,l]=P(),n=R();return[(e,l,a,r=[],o=(()=>[]))=>{t??=Nt;const c=s(1);return L(n,c,[e,l,a,r,o]),M(k(l,a??[""],A),c),c},(e,s,...l)=>r(((e,t=[""])=>{const s=[],l=(e,n)=>n==c(t)?i(s,e):null===t[n]?C(e,(e=>l(e,n+1))):r([t[n],null],(t=>l(J(e,t),n+1)));return l(e,0),s})(e,s),(e=>C(e,(e=>J(n,e)[0](t,...s??[],...l))))),e=>V(J(n,e),(([,t,s])=>(k(t,s??[""],void 0,(t=>(I(t,e),w(t)?1:0))),L(n,e),l(e),s))),e=>V(J(n,e),(([e,,s=[],l,n])=>{const a=(...o)=>{const u=c(o);u==c(s)?e(t,...o,...n(o)):T(s[u])?r(l[u]?.(...o)??[],(e=>a(...o,e))):a(...o,s[u])};a()}))]})(),Le=e=>{if(!Y(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!b(t)&&t!=l||(U(e.default)!=t&&B(e,"default"),0))},Ee=(t,s)=>(!e||S(se,s)||at(s))&&Y(t,((e,t)=>Fe(s,t,e)),(()=>at(s))),Fe=(e,t,s,l)=>Y(l?s:Ae(s,e,t),((l,n)=>V(ze(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>at(e,t))),ze=(t,s,l,n)=>e?V(J(J(se,t),l),(e=>U(n)!=e.type?at(t,s,l,n,e.default):n),(()=>at(t,s,l,n))):T(U(n))?at(t,s,l,n):n,Oe=(e,t)=>Y(t?e:Me(e),((t,s)=>V(ke(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>rt())),ke=(e,s)=>t?V(J(ne,e),(t=>U(s)!=t.type?rt(e,s,t.default):s),(()=>rt(e,s))):T(U(s))?rt(e,s):s,Ae=(e,t,s)=>(V(J(le,t),(([l,n])=>{C(l,((t,s)=>{q(e,s)||(e[s]=t)})),C(n,(l=>{q(e,l)||at(t,s,l)}))})),e),Me=e=>(t&&(C(ae,((t,s)=>{q(e,s)||(e[s]=t)})),C(re,(t=>{q(e,t)||rt(t)}))),e),Ne=e=>X(se,e,((e,t,s)=>{const l=R(),n=A();X(E(se,t,R),s,((e,t,s)=>{L(e,t,s),V(s.default,(e=>L(l,t,e)),(()=>M(n,t)))})),L(le,t,[l,n])}),((e,t)=>{L(se,t),L(le,t)})),Pe=e=>X(ne,e,((e,t,s)=>{L(ne,t,s),V(s.default,(e=>L(ae,t,e)),(()=>M(re,t)))}),((e,t)=>{L(ne,t),L(ae,t),I(re,t)})),je=e=>H(e)?Et():Rt(e),xe=e=>X(ce,e,((e,t,s)=>De(t,s)),((e,t)=>Ue(t))),De=(e,t)=>X(E(ce,e,(()=>(_e(e,1),R()))),t,((t,s,l)=>We(e,t,s,l)),((t,s)=>Xe(e,t,s))),We=(e,t,s,l,n)=>X(E(t,s,(()=>(et(e,s,1),R()))),l,((t,l,n)=>$e(e,s,t,l,n)),((l,a)=>Ye(e,t,s,l,a,n))),$e=(e,t,s,l,n)=>{S(s,l)||tt(e,t,l,1);const a=J(s,l);n!==a&&(st(e,t,l,a,n),L(s,l,n))},qe=(e,t,s,l,n)=>V(J(t,s),(t=>$e(e,s,t,l,n)),(()=>We(e,t,s,Ae({[l]:n},e,s)))),Be=e=>H(e)?Ft():pt(e),Ge=e=>X(ue,e,((e,t,s)=>He(t,s)),((e,t)=>Ze(t))),He=(e,t)=>{S(ue,e)||lt(e,1);const s=J(ue,e);t!==s&&(nt(e,s,t),L(ue,e,t))},Ke=(e,t)=>{const[s]=E(oe,e,P),l=s(t);return S(J(ce,e),l)?Ke(e,t):l},Qe=e=>J(ce,e)??De(e,{}),Ue=e=>De(e,{}),Xe=(e,t,s)=>{const[,l]=E(oe,e,P);l(s),We(e,t,s,{},!0)},Ye=(e,t,s,l,n,a)=>{const r=J(J(le,e)?.[0],n);if(!T(r)&&!a)return $e(e,s,l,n,r);const o=t=>{st(e,s,t,J(l,t)),tt(e,s,t,-1),L(l,t)};T(r)?o(n):m(l,o),w(l)&&(et(e,s,-1),w(L(t,s))&&(_e(e,-1),L(ce,e),L(oe,e)))},Ze=e=>{const t=J(ae,e);if(!T(t))return He(e,t);nt(e,J(ue,e)),lt(e,-1),L(ue,e)},_e=(e,t)=>Z(g,e,t),et=(e,t,s)=>Z(E(N,e,R),t,s),tt=(e,t,s,l)=>Z(E(E(j,e,R),t,R),s,l),st=(e,t,s,l,n)=>E(E(E(x,e,R),t,R),s,(()=>[l,0]))[1]=n,lt=(e,t)=>Z(D,e,t),nt=(e,t,s)=>E($,e,(()=>[t,0]))[1]=s,at=(e,t,s,l,n)=>(i(E(E(E(ee,e,R),t,R),s,(()=>[])),l),n),rt=(e,t,s)=>(i(E(te,e,(()=>[])),t),s),ot=(e,t,s)=>V(J(J(J(x,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...K(wt(e,t,s))])),ct=e=>V(J($,e),(([e,t])=>[!0,e,t]),(()=>[!1,...K(It(e))])),ut=e=>w(ee)||w(ve[e])?0:C(e?z(ee,O):ee,((t,s)=>C(t,((t,l)=>C(t,((t,n)=>pe(ve[e],[s,l,n],t))))))),it=e=>w(te)||w(Se[e])?0:C(e?z(te):te,((t,s)=>pe(Se[e],[s],t))),dt=(e,t,s)=>{if(!w(t))return pe(e,s),1},ft=e=>{const t=w(ge[e]),s=w(Ve[e])&&w(he[e])&&t&&w(de[e]),l=w(be[e])&&w(Te[e])&&w(fe[e])&&w(ie[e]);if(!s||!l){const n=e?[z(g),O(N),z(j,O),z(x,O)]:[g,N,j,x];if(!s){C(n[2],((t,s)=>C(t,((t,l)=>dt(Ve[e],t,[s,l])))));const s=A();C(n[1],((l,n)=>{dt(he[e],l,[n])&&!t&&(pe(ge[e],[n,null]),M(s,n))})),t||C(n[3],((t,l)=>{if(!S(s,l)){const s=A();C(t,(e=>C(e,(([t,l],n)=>l!==t?M(s,n):I(e,n))))),C(s,(t=>pe(ge[e],[l,t])))}})),dt(de[e],n[0])}if(!l){let t;C(n[3],((s,l)=>{let n;C(s,((s,a)=>{let r;C(s,(([s,o],c)=>{o!==s&&(pe(be[e],[l,a,c],o,s,ot),t=n=r=1)})),r&&pe(Te[e],[l,a],ot)})),n&&pe(fe[e],[l],ot)})),t&&pe(ie[e],void 0,ot)}}},ht=e=>{const t=w(ye[e]),s=w(Ce[e])&&w(we[e]);if(!t||!s){const l=e?[z(D),z($)]:[D,$];if(t||dt(ye[e],l[0]),!s){let t;C(l[1],(([s,l],n)=>{l!==s&&(pe(Ce[e],[n],l,s,ct),t=1)})),t&&pe(we[e],void 0,ct)}}},gt=(e,...t)=>(kt((()=>e(...o(t,a)))),Nt),Tt=()=>F(ce,(e=>F(e,F))),Vt=()=>p(ce),bt=e=>p(J(ce,a(e))),vt=(e,t,s,l=0,n)=>{return o(u((c=J(ce,a(e)),i=(e,s)=>[T(t)?s:J(e,a(t)),s],r=([e],[t])=>(e<t?-1:1)*(s?-1:1),o([...c?.entries()??[]],(([e,t])=>i(t,e))).sort(r)),l,T(n)?n:l+n),(([,e])=>e));var r,c,i},St=(e,t)=>p(J(J(ce,a(e)),a(t))),wt=(e,t,s)=>J(J(J(ce,a(e)),a(t)),a(s)),yt=()=>F(ue),Ct=()=>p(ue),It=e=>J(ue,a(e)),Rt=e=>gt((()=>(e=>Y(e,Ee,at))(e)?xe(e):0)),pt=e=>gt((()=>Oe(e)?Ge(e):0)),Jt=e=>{try{je(f(e))}catch{}return Nt},mt=t=>gt((()=>{if((e=Y(t,(e=>Y(e,Le))))&&(Ne(t),!w(ce))){const e=Tt();Et(),Rt(e)}})),Lt=e=>gt((()=>{if(t=(e=>Y(e,Le))(e)){const s=yt();Ot(),Ft(),t=!0,Pe(e),pt(s)}})),Et=()=>gt((()=>xe({}))),Ft=()=>gt((()=>Ge({}))),zt=()=>gt((()=>{Ne({}),e=!1})),Ot=()=>gt((()=>{Pe({}),t=!1})),kt=(e,t)=>{if(-1==h)return;At();const s=e();return Mt(t),s},At=()=>(h++,Nt),Mt=e=>{if(h>0&&(h--,0==h)){s=!w(x),n=!w($),h=1,ut(1),s&&ft(1),it(1),n&&ht(1),h=-1;let t=!e&&w(Ie[0])&&w(Ie[1])?[{},{},{},{}]:[F(x,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),H)),H),F(ee,(e=>F(e,F))),F($,(e=>[...e]),(([e,t])=>e===t)),F(te)];e?.(...t)&&(h=1,C(x,((e,t)=>C(e,((e,s)=>C(e,(([e],l)=>((e,t,s,l,n)=>T(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n))(Nt,t,s,l,e))))))),C($,(([e],t)=>((e,t,s)=>T(s)?e.delValue(t):e.setValue(t,s))(Nt,t,e))),h=-1,s=n=!1,t=[{},{},{},{}]),pe(Ie[0],void 0,s,n,...t),ut(0),s&&ft(0),it(0),n&&ht(0),pe(Ie[1],void 0,s,n,...t),h=0,r([g,N,j,x,ee,D,$,te],y)}return Nt},Nt={getContent:()=>[Tt(),yt()],getTables:Tt,getTableIds:Vt,getTable:e=>F(J(ce,a(e)),F),getRowIds:bt,getSortedRowIds:vt,getRow:(e,t)=>F(J(J(ce,a(e)),a(t))),getCellIds:St,getCell:wt,getValues:yt,getValueIds:Ct,getValue:It,hasTables:()=>!w(ce),hasTable:e=>S(ce,a(e)),hasRow:(e,t)=>S(J(ce,a(e)),a(t)),hasCell:(e,t,s)=>S(J(J(ce,a(e)),a(t)),a(s)),hasValues:()=>!w(ue),hasValue:e=>S(ue,a(e)),getTablesJson:()=>d(ce),getValuesJson:()=>d(ue),getJson:()=>d([ce,ue]),getTablesSchemaJson:()=>d(se),getValuesSchemaJson:()=>d(ne),getSchemaJson:()=>d([se,ne]),setContent:([e,t])=>gt((()=>{Rt(e),pt(t)})),setTables:Rt,setTable:(e,t)=>gt((e=>Ee(t,e)?De(e,t):0),e),setRow:(e,t,s)=>gt(((e,t)=>Fe(e,t,s)?We(e,Qe(e),t,s):0),e,t),addRow:(e,t,s=!0)=>kt((()=>{let l;return Fe(e,l,t)&&(e=a(e),We(e,Qe(e),l=Ke(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>gt(((e,t)=>{if(Fe(e,t,s,1)){const l=Qe(e);G(s,((s,n)=>qe(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>gt(((e,t,s)=>V(ze(e,t,s,v(l)?l(wt(e,t,s)):l),(l=>qe(e,Qe(e),t,s,l)))),e,t,s),setValues:pt,setPartialValues:e=>gt((()=>Oe(e,1)?G(e,((e,t)=>He(t,e))):0)),setValue:(e,t)=>gt((e=>V(ke(e,v(t)?t(It(e)):t),(t=>He(e,t)))),e),setTablesJson:Jt,setValuesJson:e=>{try{Be(f(e))}catch{}return Nt},setJson:e=>{try{const[t,s]=f(e);je(t),Be(s)}catch{Jt(e)}return Nt},setTablesSchema:mt,setValuesSchema:Lt,setSchema:(e,t)=>gt((()=>{mt(e),Lt(t)})),delTables:Et,delTable:e=>gt((e=>S(ce,e)?Ue(e):0),e),delRow:(e,t)=>gt(((e,t)=>V(J(ce,e),(s=>S(s,t)?Xe(e,s,t):0))),e,t),delCell:(e,t,s,l)=>gt(((e,t,s)=>V(J(ce,e),(n=>V(J(n,t),(a=>S(a,s)?Ye(e,n,t,a,s,l):0))))),e,t,s),delValues:Ft,delValue:e=>gt((e=>S(ue,e)?Ze(e):0),e),delTablesSchema:zt,delValuesSchema:Ot,delSchema:()=>gt((()=>{zt(),Ot()})),transaction:kt,startTransaction:At,finishTransaction:Mt,forEachTable:e=>C(ce,((t,s)=>e(s,(e=>C(t,((t,s)=>e(s,(e=>m(t,e))))))))),forEachRow:(e,t)=>C(J(ce,a(e)),((e,s)=>t(s,(t=>m(e,t))))),forEachCell:(e,t,s)=>m(J(J(ce,a(e)),a(t)),s),forEachValue:e=>m(ue,e),addSortedRowIdsListener:(e,t,s,l,n,a,r)=>{let o=vt(e,t,s,l,n);return Re((()=>{const r=vt(e,t,s,l,n);var u,i,d;i=o,c(u=r)===c(i)&&(d=(e,t)=>i[t]===e,u.every(d))||(o=r,a(Nt,e,t,s,l,n,o))}),ge[r?1:0],[e,t],[Vt])},addWillFinishTransactionListener:e=>Re(e,Ie[0]),addDidFinishTransactionListener:e=>Re(e,Ie[1]),callListener:e=>(me(e),Nt),delListener:e=>(Je(e),Nt),getListenerStats:()=>({}),createStore:_};return G({Tables:[0,ie],TableIds:[0,de],Table:[1,fe,[Vt]],RowIds:[1,he,[Vt]],Row:[2,Te,[Vt,bt]],CellIds:[2,Ve,[Vt,bt]],Cell:[3,be,[Vt,bt,St],e=>K(wt(...e))],InvalidCell:[3,ve],Values:[0,we],ValueIds:[0,ye],Value:[1,Ce,[Ct],e=>K(It(e[0]))],InvalidValue:[1,Se]},(([e,t,s,l],n)=>{Nt["add"+n+"Listener"]=(...n)=>Re(n[e],t[n[e+1]?1:0],e>0?u(n,0,e):void 0,s,l)})),W(Nt)};export{_ as createStore};
package/lib/store.js.gz CHANGED
Binary file
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),a=s(0),r=s(s),l=e=>""+e,i=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>w(e)===w(t)&&d(e,((e,s)=>t[s]===e)),u=(e,t)=>d(e,((s,n)=>0==n||t(e[n-1],s)<=0)),h=(e,t)=>e.sort(t),f=(e,t)=>e.forEach(t),g=(e,t)=>e.map(t),L=e=>I(e,((e,t)=>e+t),0),w=e=>e.length,v=e=>0==w(e),I=(e,t,s)=>e.reduce(t,s),R=(e,t,s)=>e.slice(t,s),S=(e,...t)=>e.push(...t),T=e=>e.pop(),y=e=>e.shift(),p=e=>JSON.stringify(e,((e,t)=>E(t,Map)?I([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),b=JSON.parse,C=Math.max,m=Math.min,V=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,J=(e,t,s)=>k(e)?s?.():t(e),A=e=>e==n||e==o,M=e=>s(e)==r,D=e=>Array.isArray(e),x=()=>{},F=e=>e.size,Q=(e,t)=>e?.has(t)??!1,z=e=>k(e)||0==F(e),N=e=>[...e?.values()??[]],O=e=>e.clear(),j=(e,t)=>e?.forEach(t),P=(e,t)=>e?.delete(t),W=e=>new Map(e),B=e=>[...e?.keys()??[]],H=(e,t)=>e?.get(t),$=(e,t)=>j(e,((e,s)=>t(s,e))),q=(e,t,s)=>k(s)?(P(e,t),e):e?.set(t,s),G=(e,t,s)=>(Q(e,t)||q(e,t,s()),H(e,t)),K=(e,t,s)=>{const n={},o=t??(e=>e);return j(e,((e,t)=>J(o(e),(e=>s?.(e)?0:n[t]=e)))),n},U=(e,t)=>{const s=W(),n=t??(e=>e);return j(e,((e,t)=>s.set(t,n(e)))),s},X=e=>U(e,U),Y=(e,t,s,n,o=0)=>J((s?G:H)(e,t[o],o>w(t)-2?s:W),(a=>{if(o>w(t)-2)return n?.(a)&&q(e,t[o]),a;const r=Y(a,t,s,n,o+1);return z(a)&&q(e,t[o]),r})),Z=e=>{const t=s(e);return A(t)||t==a&&V(e)?t:void 0},_=(e,t,s,n,o)=>k(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),te=e=>new Set(D(e)||k(e)?e:[e]),se=(e,t)=>e?.add(t),ne=(e,t,s)=>{const n=e.hasRow,o=W(),a=W(),r=W(),l=W(),i=W(),d=(t,s,...n)=>{const o=G(i,t,te);return f(n,(t=>se(o,t)&&s&&e.callListener(t))),n},u=(t,...s)=>J(H(i,t),(n=>{f(v(s)?N(n):s,(t=>{e.delListener(t),P(n,t)})),z(n)&&q(i,t)})),h=(e,s)=>{q(o,e,s),Q(a,e)||(q(a,e,t()),q(r,e,W()),q(l,e,W()))},g=e=>{q(o,e),q(a,e),q(r,e),q(l,e),u(e)};return[()=>e,()=>B(o),e=>$(a,e),e=>Q(a,e),e=>H(o,e),e=>H(a,e),(e,t)=>q(a,e,t),h,(t,o,a,i,g)=>{h(t,o);const L=W(),w=W(),v=H(r,t),I=H(l,t),R=t=>{const a=s=>e.getCell(o,t,s),r=H(v,t),l=n(o,t)?s(i(a,t)):void 0;if(r===l||D(r)&&D(l)&&c(r,l)||q(L,t,[r,l]),!k(g)){const e=H(I,t),s=n(o,t)?g(a,t):void 0;e!=s&&q(w,t,s)}},S=e=>{a((()=>{j(L,(([,e],t)=>q(v,t,e))),j(w,((e,t)=>q(I,t,e)))}),L,w,v,I,e),O(L),O(w)};$(v,R),e.hasTable(o)&&f(e.getRowIds(o),(e=>{Q(v,e)||R(e)})),S(!0),u(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>R(s))),e.addTableListener(o,(()=>S())))},g,()=>$(i,g),d,u]},oe=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},re=/^\d+$/,le=()=>{const e=[];let t=0;return[()=>y(e)??""+t++,t=>{re.test(t)&&w(e)<1e3&&S(e,t)}]},ie=e=>{let t;const[s,n]=le(),o=W();return[(n,a,r,l=[],i=(()=>[]))=>{t??=e();const d=s();return q(o,d,[n,a,r,l,i]),se(Y(a,r??[""],te),d),d},(e,s,...n)=>f(((e,t=[""])=>{const s=[],n=(e,o)=>o==w(t)?S(s,e):null===t[o]?j(e,(e=>n(e,o+1))):f([t[o],null],(t=>n(H(e,t),o+1)));return n(e,0),s})(e,s),(e=>j(e,(e=>H(o,e)[0](t,...s??[],...n))))),e=>J(H(o,e),(([,t,s])=>(Y(t,s??[""],void 0,(t=>(P(t,e),z(t)?1:0))),q(o,e),n(e),s))),e=>J(H(o,e),(([e,,s=[],n,o])=>{const a=(...r)=>{const l=w(r);l==w(s)?e(t,...r,...o(r)):k(s[l])?f(n[l]?.(...r)??[],(e=>a(...r,e))):a(...r,s[l])};a()}))]},de=Object,ce=de.keys,ue=de.isFrozen,he=de.freeze,fe=e=>E(e,de)&&e.constructor==de,ge=(e,t)=>!k(((e,t)=>J(e,(e=>e[t])))(e,t)),Le=(e,t)=>delete e[t],we=(e,t)=>g(de.entries(e),(([e,s])=>t(s,e))),ve=e=>fe(e)&&v(ce(e)),Ie=ae((e=>{let t,s,n,o=100,a=W(),r=W(),l=1;const d=W(),c=W(),[u,h,g]=ie((()=>U)),L=W(),I=W(),R=[],p=[],b=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=H(L,s);j(n,((s,n)=>j(s,((s,o)=>j(s,((s,a)=>_(e,n,o,a,s[t]))))))),j(o,((s,n)=>ee(e,n,s[t])))})),l=1},C=e=>{q(L,e),q(I,e),h(c,[e])},m=(e,t)=>f(((e,t)=>e.splice(0,t))(e,t??w(e)),C),V=()=>m(R,w(R)-o),E=()=>J(t,(()=>{S(R,t),V(),m(p),t=void 0,n=1})),A=()=>{t=T(R),n=1},M=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){E();const e=G(a,t,W),l=G(e,s,W),i=G(l,n,(()=>[r,void 0]));i[1]=o,i[0]===o&&z(q(l,n))&&z(q(e,s))&&z(q(a,t))&&A(),O()}})),D=e.addValueListener(null,((e,t,s,n)=>{if(l){E();const e=G(r,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&z(q(r,t))&&A(),O()}})),x=(e="")=>(k(t)&&(t=""+s++,q(L,t,[a,r]),B(t,e),a=W(),r=W(),n=1),t),F=()=>{v(R)||(((e,...t)=>{e.unshift(...t)})(p,x()),b(0,t),t=T(R),n=1)},N=()=>{v(p)||(S(R,t),t=y(p),b(1,t),n=1)},O=()=>{n&&(h(d),n=0)},P=e=>{const t=x(e);return O(),t},B=(e,t)=>(K(e)&&H(I,e)!==t&&(q(I,e,t),h(c,[e])),U),K=e=>Q(L,e),U={setSize:e=>(o=e,V(),U),addCheckpoint:P,setCheckpoint:B,getStore:()=>e,getCheckpointIds:()=>[[...R],t,[...p]],forEachCheckpoint:e=>$(I,e),hasCheckpoint:K,getCheckpoint:e=>H(I,e),goBackward:()=>(F(),O(),U),goForward:()=>(N(),O(),U),goTo:e=>{const s=i(R,e)?F:i(p,e)?N:null;for(;!k(s)&&e!=t;)s();return O(),U},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(g(e),U),clear:()=>(m(R),m(p),k(t)||C(t),t=void 0,s=0,P(),U),destroy:()=>{e.delListener(M),e.delListener(D)},getListenerStats:()=>({})};return he(U.clear())})),Re=(e,t)=>e<t?-1:1,Se=ae((e=>{const t=W(),s=W(),[n,o,a,r,i,d,c,,f,L,w]=ne(e,W,(e=>k(e)?"":D(e)?g(e,l):l(e))),[v,I,R]=ie((()=>T)),S=(t,s,n)=>{const o=i(t);j(n,((t,n)=>s(n,(s=>j(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},T={setIndexDefinition:(e,n,o,a,r,l=Re)=>{const i=k(r)?void 0:([e],[t])=>r(e,t);return f(e,n,((n,o,r,f,g,L)=>{let w=0;const v=te(),R=te(),S=d(e);if(j(o,(([e,t],s)=>{const n=te(e),o=te(t);j(n,(e=>P(o,e)?P(n,e):0)),j(n,(e=>{se(v,e),J(H(S,e),(t=>{P(t,s),z(t)&&(q(S,e),w=1)}))})),j(o,(e=>{se(v,e),Q(S,e)||(q(S,e,te()),w=1),se(H(S,e),s),k(a)||se(R,e)}))})),n(),z(g)||(L?$(S,(e=>se(R,e))):$(r,(e=>J(H(f,e),(e=>se(R,e))))),j(R,(e=>{const t=(t,s)=>l(H(g,t),H(g,s),e),s=[...H(S,e)];u(s,t)||(q(S,e,te(h(s,t))),se(v,e))}))),(w||L)&&!k(i)){const t=[...S];u(t,i)||(c(e,W(h(t,i))),w=1)}w&&I(t,[e]),j(v,(t=>I(s,[e,t])))}),oe(o),J(a,oe)),T},delIndexDefinition:e=>(L(e),T),getStore:n,getIndexIds:o,forEachIndex:e=>a(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,d(e)),hasIndex:r,hasSlice:(e,t)=>Q(d(e),t),getTableId:i,getSliceIds:e=>B(d(e)),getSliceRowIds:(e,t)=>N(H(d(e),t)),addSliceIdsListener:(e,s)=>v(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>v(n,s,[e,t]),delListener:e=>(R(e),T),destroy:w,getListenerStats:()=>({})};return he(T)})),Te=W([["avg",[(e,t)=>L(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>L(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ye=(e,t,s,n,o,a=!1)=>{if(z(s))return;const[r,l,i,d]=o;return a||=k(e),j(n,(([s,n])=>{a||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=k(e))})),a?r(N(s),F(s)):e},pe=ae((e=>{const t=W(),[s,n,o,a,r,l,i,,d,c,u]=ne(e,x,(e=>isNaN(e)||k(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=ie((()=>L)),L={setMetricDefinition:(e,s,n,o,a,r,c)=>{const u=M(n)?[n,a,r,c]:H(Te,n)??H(Te,"sum");return d(e,s,((s,n,o,a,r,d)=>{const c=l(e),h=F(a);d||=k(c),s();let g=ye(c,h,a,n,u,d);V(g)||(g=void 0),g!=c&&(i(e,g),f(t,[e],g,c))}),oe(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:a,getTableId:r,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),L),destroy:u,getListenerStats:()=>({})};return he(L)})),be=(e,t,s,n,o)=>{let a,r,l=0;const i={load:async(s,n)=>{if(2!=l){l=1;const o=await t();k(o)||""==o?e.transaction((()=>e.setTables(s).setValues(n))):e.setJson(o),l=0}return i},startAutoLoad:async(e,t)=>(i.stopAutoLoad(),await i.load(e,t),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),a=e.addTablesListener(i.save),r=e.addValuesListener(i.save),i),stopAutoSave:()=>(J(a,e.delListener),J(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return he(i)},Ce=globalThis.window,me=(e,t,s)=>{let n;return be(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Ce.addEventListener("storage",n)}),(()=>{Ce.removeEventListener("storage",n),n=void 0}))},Ve=(e,t)=>me(e,t,localStorage),Ee=(e,t)=>me(e,t,sessionStorage),ke=(s,n)=>{let o;return be(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},Je=e=>e.headers.get("ETag"),Ae=(e,t,s,n)=>{let o,a;return be(e,(async()=>{const e=await fetch(t);return a=Je(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Je(s);k(a)||k(n)||n==a||(a=n,e())}),1e3*n)}),(()=>{J(o,clearInterval),o=void 0}))},Me=ae((e=>{const t=e.createStore,[s,n,o,a,r,,,l,,i,c,u,h]=ne(e,(()=>!0),x),g=t(),L=t(),I=W(),T=(e,t,...s)=>f(s,(s=>se(G(G(I,t,W),e,te),s))),y=e=>{J(H(I,e),(e=>{$(e,((e,t)=>j(t,(t=>e.delListener(t))))),O(e)})),f([L,g],(t=>t.delTable(e)))},p=(e,t,s)=>T(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{l(t,s),y(t);const o=[],a=[[null,[s,null,null,[],W()]]],r=[],i=[],c=[];n({select:(e,t)=>{const s=M(e)?[w(o)+"",e]:[k(t)?e:t,s=>s(e,t)];return S(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=k(s)||M(t)?null:t,o=k(n)?t:s,r=[e,[e,n,M(o)?o:e=>e(o),[],W()]];return S(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>S(r,M(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,M(t)?[t,s,n,o]:H(Te,t)??[(e,t)=>t]]];return S(i,a),{as:e=>a[0]=e}},having:(e,t)=>S(c,M(e)?e:s=>s(e)===t)});const I=W(o);if(z(I))return b;const R=W(a);$(R,((e,[,t])=>J(H(R,t),(({3:t})=>k(e)?0:S(t,e)))));const C=W(i);let m=g;if(z(C)&&v(c))m=L;else{p(t,m,L);const e=W();$(C,((t,[s,n])=>se(G(e,s,te),[t,n])));const s=te();$(I,(t=>Q(e,t)?0:se(s,t)));const n=W(),o=(s,n,o,a)=>J(s,(([r,l,i,u])=>{$(n,((t,[s])=>{const n=G(r,t,W),l=H(n,o),i=a?void 0:s;if(l!==i){const s=te([[l,i]]),a=F(n);q(n,o,i),j(H(e,t),(([e,t])=>{const o=ye(u[e],a,n,s,t);u[e]=k(Z(o))?null:o}))}})),z(l)||!d(c,(e=>e((e=>u[e]))))?L.delRow(t,i):k(i)?s[2]=L.addRow(t,u):L.setRow(t,i,u)}));T(m,t,m.addRowListener(t,null,((a,r,l,i)=>{const d=[],c=[],u=W(),h=m.hasRow(t,l);let f=!h;j(s,(e=>{const[s,n,o]=i(t,l,e);S(d,n),S(c,o),f||=s})),$(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&q(u,e,[n])})),f&&o(Y(n,d,void 0,(([,e])=>(P(e,l),z(e)))),u,l,1),h&&o(Y(n,c,(()=>{const e={};return j(s,(s=>e[s]=m.getCell(t,l,s))),[W(),te(),void 0,e]}),(([,e])=>{se(e,l)})),u,l)})))}p(t,e,m);const V=(n,o,a,l)=>{const i=t=>e.getCell(o,a,t);f(l,(s=>{const[o,,a,r,l]=H(R,s),d=a?.(i,n),[c,f]=H(l,n)??[];d!=c&&(k(f)||h(t,f),q(l,n,k(d)?null:[d,...u(t,1,e.addRowListener(o,d,(()=>V(n,o,d,r))))]))})),(n=>{const o=(t,o)=>e.getCell(...k(o)?[s,n,t]:t===s?[s,n,o]:[H(R,t)?.[0],H(H(R,t)?.[4],n)?.[0],o]);m.transaction((()=>d(r,(e=>e(o)))?$(I,((e,s)=>_(m,t,n,e,s(o,n)))):m.delRow(t,n)))})(n)},{3:E}=H(R,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,o,a)=>{e.hasRow(s,a)?V(a,s,a,E):(m.delRow(t,a),j(R,(({4:e})=>J(H(e,a),(([,s])=>{h(t,s),q(e,a)})))))}))))),b},delQueryDefinition:e=>(y(e),i(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:a,getTableId:r,delListener:e=>(L.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=L.getListenerStats();return n}};return we({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{f(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>L[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>L["add"+s+"Listener"](...R(e,0,t),((s,...n)=>e[t](b,...n)))})),he(b)})),De=ae((e=>{const t=W(),s=W(),n=W(),o=W(),[a,r,l,i,d,c,,,u,h,f]=ne(e,(()=>[W(),W(),W(),W()]),(e=>k(e)?void 0:e+"")),[g,L,w]=ie((()=>S)),v=(e,t,s)=>J(c(e),(([n,,o])=>{if(!Q(o,t)){const a=te();if(d(e)!=R(e))se(a,t);else{let e=t;for(;!k(e)&&!Q(a,e);)se(a,e),e=H(n,e)}if(s)return a;q(o,t,a)}return H(o,t)})),I=(e,t)=>J(c(e),(([,,e])=>q(e,t))),R=e=>H(t,e),S={setRelationshipDefinition:(e,a,r,l)=>(q(t,e,r),u(e,a,((t,a)=>{const r=te(),l=te(),i=te(),[d,u]=c(e);j(a,(([t,s],n)=>{k(t)||(se(l,t),J(H(u,t),(e=>{P(e,n),z(e)&&q(u,t)}))),k(s)||(se(l,s),Q(u,s)||q(u,s,te()),se(H(u,s),n)),se(r,n),q(d,n,s),$(H(o,e),(t=>{Q(v(e,t),n)&&se(i,t)}))})),t(),j(r,(t=>L(s,[e,t]))),j(l,(t=>L(n,[e,t]))),j(i,(t=>{I(e,t),L(o,[e,t])}))}),oe(l)),S),delRelationshipDefinition:e=>(q(t,e),h(e),S),getStore:a,getRelationshipIds:r,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>H(c(e)?.[0],t),getLocalRowIds:(e,t)=>N(H(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(c(e))?[t]:N(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),g(s,o,[e,t])),delListener:e=>(I(...w(e)),S),destroy:f,getListenerStats:()=>({})};return he(S)})),xe=e=>[e,e],Fe=()=>[W(),W()],Qe=(e,t,s,n=q)=>{const o=(a=e=>!ge(t,e),B(e).filter(a));var a;return f(ce(t),(n=>s(e,n,t[n]))),f(o,(t=>n(e,t))),e},ze=(e,t,s)=>k(e)||!fe(e)||ve(e)||ue(e)?(s?.(),!1):(we(e,((s,n)=>{t(s,n)||Le(e,n)})),!ve(e)),Ne=(e,t,s)=>q(e,t,H(e,t)==-s?void 0:s),Oe=()=>{let e,t,s,n,o=0;const r=W(),d=W(),u=W(),L=W(),w=W(),v=W(),I=W(),T=W(),y=W(),C=W(),m=W(),V=W(),E=te(),D=W(),x=W(),F=W(),N=Fe(),Y=Fe(),ne=Fe(),oe=Fe(),ae=Fe(),re=Fe(),de=Fe(),ce=Fe(),ue=Fe(),fe=Fe(),Ie=Fe(),Se=Fe(),Te=Fe(),ye=Fe(),[pe,be,Ce,me]=ie((()=>Pt)),Ve=e=>{if(!ze(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!A(t)&&t!=a||(Z(e.default)!=t&&Le(e,"default"),0))},Ee=(t,s)=>(!e||Q(y,s)||ct(s))&&ze(t,((e,t)=>ke(s,t,e)),(()=>ct(s))),ke=(e,t,s,n)=>ze(n?s:De(s,e,t),((n,o)=>J(Je(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>ct(e,t))),Je=(t,s,n,o)=>e?J(H(H(y,t),n),(e=>Z(o)!=e.type?ct(t,s,n,o,e.default):o),(()=>ct(t,s,n,o))):k(Z(o))?ct(t,s,n,o):o,Ae=(e,t)=>ze(t?e:je(e),((t,s)=>J(Me(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>ut())),Me=(e,s)=>t?J(H(m,e),(t=>Z(s)!=t.type?ut(e,s,t.default):s),(()=>ut(e,s))):k(Z(s))?ut(e,s):s,De=(e,t,s)=>(J(H(C,t),(([n,o])=>{j(n,((t,s)=>{ge(e,s)||(e[s]=t)})),j(o,(n=>{ge(e,n)||ct(t,s,n)}))})),e),je=e=>(t&&(j(V,((t,s)=>{ge(e,s)||(e[s]=t)})),j(E,(t=>{ge(e,t)||ut(t)}))),e),Pe=e=>Qe(y,e,((e,t,s)=>{const n=W(),o=te();Qe(G(y,t,W),s,((e,t,s)=>{q(e,t,s),J(s.default,(e=>q(n,t,e)),(()=>se(o,t)))})),q(C,t,[n,o])}),((e,t)=>{q(y,t),q(C,t)})),We=e=>Qe(m,e,((e,t,s)=>{q(m,t,s),J(s.default,(e=>q(V,t,e)),(()=>se(E,t)))}),((e,t)=>{q(m,t),q(V,t),P(E,t)})),Be=e=>ve(e)?xt():kt(e),He=e=>Qe(x,e,((e,t,s)=>$e(t,s)),((e,t)=>et(t))),$e=(e,t)=>Qe(G(x,e,(()=>(ot(e,1),W()))),t,((t,s,n)=>qe(e,t,s,n)),((t,s)=>tt(e,t,s))),qe=(e,t,s,n,o)=>Qe(G(t,s,(()=>(at(e,s,1),W()))),n,((t,n,o)=>Ge(e,s,t,n,o)),((n,a)=>st(e,t,s,n,a,o))),Ge=(e,t,s,n,o)=>{Q(s,n)||rt(e,t,n,1);const a=H(s,n);o!==a&&(lt(e,t,n,a,o),q(s,n,o))},Ke=(e,t,s,n,o)=>J(H(t,s),(t=>Ge(e,s,t,n,o)),(()=>qe(e,t,s,De({[n]:o},e,s)))),Ue=e=>ve(e)?Ft():Jt(e),Xe=e=>Qe(F,e,((e,t,s)=>Ye(t,s)),((e,t)=>nt(t))),Ye=(e,t)=>{Q(F,e)||it(e,1);const s=H(F,e);t!==s&&(dt(e,s,t),q(F,e,t))},Ze=e=>{const[t]=G(D,e,le),s=t();return Q(H(x,e),s)?Ze(e):s},_e=e=>H(x,e)??$e(e,{}),et=e=>$e(e,{}),tt=(e,t,s)=>{const[,n]=G(D,e,le);n(s),qe(e,t,s,{},!0)},st=(e,t,s,n,o,a)=>{const r=H(H(C,e)?.[0],o);if(!k(r)&&!a)return Ge(e,s,n,o,r);const l=t=>{lt(e,s,t,H(n,t)),rt(e,s,t,-1),q(n,t)};k(r)?l(o):$(n,l),z(n)&&(at(e,s,-1),z(q(t,s))&&(ot(e,-1),q(x,e),q(D,e)))},nt=e=>{const t=H(V,e);if(!k(t))return Ye(e,t);dt(e,H(F,e)),it(e,-1),q(F,e)},ot=(e,t)=>Ne(r,e,t),at=(e,t,s)=>Ne(G(d,e,W),t,s),rt=(e,t,s,n)=>Ne(G(G(u,e,W),t,W),s,n),lt=(e,t,s,n,o)=>G(G(G(L,e,W),t,W),s,(()=>[n,0]))[1]=o,it=(e,t)=>Ne(w,e,t),dt=(e,t,s)=>G(v,e,(()=>[t,0]))[1]=s,ct=(e,t,s,n,o)=>(S(G(G(G(I,e,W),t,W),s,(()=>[])),n),o),ut=(e,t,s)=>(S(G(T,e,(()=>[])),t),s),ht=(e,t,s)=>J(H(H(H(L,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Ct(e,t,s))])),ft=e=>J(H(v,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Et(e))])),gt=e=>z(I)||z(ue[e])?0:j(e?U(I,X):I,((t,s)=>j(t,((t,n)=>j(t,((t,o)=>be(ue[e],[s,n,o],t))))))),Lt=e=>z(T)||z(fe[e])?0:j(e?U(T):T,((t,s)=>be(fe[e],[s],t))),wt=(e,t,s)=>{if(!z(t))return be(e,s),1},vt=e=>{const t=z(ae[e]),s=z(de[e])&&z(oe[e])&&t&&z(Y[e]),n=z(ce[e])&&z(re[e])&&z(ne[e])&&z(N[e]);if(!s||!n){const o=e?[U(r),X(d),U(u,X),U(L,X)]:[r,d,u,L];if(!s){j(o[2],((t,s)=>j(t,((t,n)=>wt(de[e],t,[s,n])))));const s=te();j(o[1],((n,o)=>{wt(oe[e],n,[o])&&!t&&(be(ae[e],[o,null]),se(s,o))})),t||j(o[3],((t,n)=>{if(!Q(s,n)){const s=te();j(t,(e=>j(e,(([t,n],o)=>n!==t?se(s,o):P(e,o))))),j(s,(t=>be(ae[e],[n,t])))}})),wt(Y[e],o[0])}if(!n){let t;j(o[3],((s,n)=>{let o;j(s,((s,a)=>{let r;j(s,(([s,l],i)=>{l!==s&&(be(ce[e],[n,a,i],l,s,ht),t=o=r=1)})),r&&be(re[e],[n,a],ht)})),o&&be(ne[e],[n],ht)})),t&&be(N[e],void 0,ht)}}},It=e=>{const t=z(Se[e]),s=z(Te[e])&&z(Ie[e]);if(!t||!s){const n=e?[U(w),U(v)]:[w,v];if(t||wt(Se[e],n[0]),!s){let t;j(n[1],(([s,n],o)=>{n!==s&&(be(Te[e],[o],n,s,ft),t=1)})),t&&be(Ie[e],void 0,ft)}}},Rt=(e,...t)=>(Nt((()=>e(...g(t,l)))),Pt),St=()=>K(x,(e=>K(e,K))),Tt=()=>B(x),yt=e=>B(H(x,l(e))),pt=(e,t,s,n=0,o)=>{return g(R(h((a=H(x,l(e)),r=(e,s)=>[k(t)?s:H(e,l(t)),s],g([...a?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,k(o)?o:n+o),(([,e])=>e));var a,r},bt=(e,t)=>B(H(H(x,l(e)),l(t))),Ct=(e,t,s)=>H(H(H(x,l(e)),l(t)),l(s)),mt=()=>K(F),Vt=()=>B(F),Et=e=>H(F,l(e)),kt=e=>Rt((()=>(e=>ze(e,Ee,ct))(e)?He(e):0)),Jt=e=>Rt((()=>Ae(e)?Xe(e):0)),At=e=>{try{Be(b(e))}catch{}return Pt},Mt=t=>Rt((()=>{if((e=ze(t,(e=>ze(e,Ve))))&&(Pe(t),!z(x))){const e=St();xt(),kt(e)}})),Dt=e=>Rt((()=>{if(t=(e=>ze(e,Ve))(e)){const s=mt();zt(),Ft(),t=!0,We(e),Jt(s)}})),xt=()=>Rt((()=>He({}))),Ft=()=>Rt((()=>Xe({}))),Qt=()=>Rt((()=>{Pe({}),e=!1})),zt=()=>Rt((()=>{We({}),t=!1})),Nt=(e,t)=>{if(-1==o)return;Ot();const s=e();return jt(t),s},Ot=()=>(o++,Pt),jt=e=>(o>0&&(o--,0==o&&(s=!z(L),n=!z(v),o=1,gt(1),s&&vt(1),Lt(1),n&&It(1),o=-1,e?.(K(L,(e=>K(e,(e=>K(e,(e=>[...e]),(([e,t])=>e===t))),ve)),ve),K(I,(e=>K(e,K))),K(v,(e=>[...e]),(([e,t])=>e===t)),K(T))&&(o=1,j(L,((e,t)=>j(e,((e,s)=>j(e,(([e],n)=>_(Pt,t,s,n,e))))))),j(v,(([e],t)=>ee(Pt,t,e))),o=-1,s=n=!1),be(ye[0],void 0,s,n),gt(0),s&&vt(0),Lt(0),n&&It(0),be(ye[1],void 0,s,n),o=0,f([r,d,u,L,I,w,v,T],O))),Pt),Pt={getTables:St,getTableIds:Tt,getTable:e=>K(H(x,l(e)),K),getRowIds:yt,getSortedRowIds:pt,getRow:(e,t)=>K(H(H(x,l(e)),l(t))),getCellIds:bt,getCell:Ct,getValues:mt,getValueIds:Vt,getValue:Et,hasTables:()=>!z(x),hasTable:e=>Q(x,l(e)),hasRow:(e,t)=>Q(H(x,l(e)),l(t)),hasCell:(e,t,s)=>Q(H(H(x,l(e)),l(t)),l(s)),hasValues:()=>!z(F),hasValue:e=>Q(F,l(e)),getTablesJson:()=>p(x),getValuesJson:()=>p(F),getJson:()=>p([x,F]),getTablesSchemaJson:()=>p(y),getValuesSchemaJson:()=>p(m),getSchemaJson:()=>p([y,m]),setTables:kt,setTable:(e,t)=>Rt((e=>Ee(t,e)?$e(e,t):0),e),setRow:(e,t,s)=>Rt(((e,t)=>ke(e,t,s)?qe(e,_e(e),t,s):0),e,t),addRow:(e,t)=>Nt((()=>{let s;return ke(e,s,t)&&(e=l(e),qe(e,_e(e),s=Ze(e),t)),s})),setPartialRow:(e,t,s)=>Rt(((e,t)=>{if(ke(e,t,s,1)){const n=_e(e);we(s,((s,o)=>Ke(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Rt(((e,t,s)=>J(Je(e,t,s,M(n)?n(Ct(e,t,s)):n),(n=>Ke(e,_e(e),t,s,n)))),e,t,s),setValues:Jt,setPartialValues:e=>Rt((()=>Ae(e,1)?we(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>Rt((e=>J(Me(e,M(t)?t(Et(e)):t),(t=>Ye(e,t)))),e),setTablesJson:At,setValuesJson:e=>{try{Ue(b(e))}catch{}return Pt},setJson:e=>{try{const[t,s]=b(e);Be(t),Ue(s)}catch{At(e)}return Pt},setTablesSchema:Mt,setValuesSchema:Dt,setSchema:(e,t)=>Rt((()=>{Mt(e),Dt(t)})),delTables:xt,delTable:e=>Rt((e=>Q(x,e)?et(e):0),e),delRow:(e,t)=>Rt(((e,t)=>J(H(x,e),(s=>Q(s,t)?tt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Rt(((e,t,s)=>J(H(x,e),(o=>J(H(o,t),(a=>Q(a,s)?st(e,o,t,a,s,n):0))))),e,t,s),delValues:Ft,delValue:e=>Rt((e=>Q(F,e)?nt(e):0),e),delTablesSchema:Qt,delValuesSchema:zt,delSchema:()=>Rt((()=>{Qt(),zt()})),transaction:Nt,startTransaction:Ot,finishTransaction:jt,forEachTable:e=>j(x,((t,s)=>e(s,(e=>j(t,((t,s)=>e(s,(e=>$(t,e))))))))),forEachRow:(e,t)=>j(H(x,l(e)),((e,s)=>t(s,(t=>$(e,t))))),forEachCell:(e,t,s)=>$(H(H(x,l(e)),l(t)),s),forEachValue:e=>$(F,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>{let l=pt(e,t,s,n,o);return pe((()=>{const r=pt(e,t,s,n,o);c(r,l)||(l=r,a(Pt,e,t,s,n,o,l))}),ae[r?1:0],[e,t],[Tt])},addWillFinishTransactionListener:e=>pe(e,ye[0]),addDidFinishTransactionListener:e=>pe(e,ye[1]),callListener:e=>(me(e),Pt),delListener:e=>(Ce(e),Pt),getListenerStats:()=>({}),createStore:Oe};return we({Tables:[0,N],TableIds:[0,Y],Table:[1,ne,[Tt]],RowIds:[1,oe,[Tt]],Row:[2,re,[Tt,yt]],CellIds:[2,de,[Tt,yt]],Cell:[3,ce,[Tt,yt,bt],e=>xe(Ct(...e))],InvalidCell:[3,ue],Values:[0,Ie],ValueIds:[0,Se],Value:[1,Te,[Vt],e=>xe(Et(e[0]))],InvalidValue:[1,fe]},(([e,t,s,n],o)=>{Pt["add"+o+"Listener"]=(...o)=>pe(o[e],t[o[e+1]?1:0],e>0?R(o,0,e):void 0,s,n)})),he(Pt)};export{Ie as createCheckpoints,be as createCustomPersister,ke as createFilePersister,Se as createIndexes,Ve as createLocalPersister,pe as createMetrics,Me as createQueries,De as createRelationships,Ae as createRemotePersister,Ee as createSessionPersister,Oe as createStore,Re as defaultSorter};
1
+ const e=e=>typeof e,t=e(""),s=e(!0),n=e(0),o=e(e),a=e=>""+e,r=(e,t)=>e.includes(t),l=(e,t)=>e.every(t),i=(e,t)=>g(e)===g(t)&&l(e,((e,s)=>t[s]===e)),d=(e,t)=>l(e,((s,n)=>0==n||t(e[n-1],s)<=0)),c=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),h=(e,t)=>e.map(t),f=e=>w(e,((e,t)=>e+t),0),g=e=>e.length,L=e=>0==g(e),w=(e,t,s)=>e.reduce(t,s),R=(e,t,s)=>e.slice(t,s),I=(e,...t)=>e.push(...t),S=e=>e.pop(),v=e=>e.shift(),T=e=>JSON.stringify(e,((e,t)=>V(t,Map)?w([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),p=JSON.parse,C=Math.max,b=Math.min,y=isFinite,V=(e,t)=>e instanceof t,m=e=>null==e,E=(e,t,s)=>m(e)?s?.():t(e),k=e=>e==t||e==s,J=t=>e(t)==o,M=e=>Array.isArray(e),D=()=>{},A=e=>e.size,x=(e,t)=>e?.has(t)??!1,F=e=>m(e)||0==A(e),Q=e=>[...e?.values()??[]],z=e=>e.clear(),N=(e,t)=>e?.forEach(t),O=(e,t)=>e?.delete(t),W=e=>new Map(e),j=e=>[...e?.keys()??[]],P=(e,t)=>e?.get(t),B=(e,t)=>N(e,((e,s)=>t(s,e))),$=(e,t,s)=>m(s)?(O(e,t),e):e?.set(t,s),q=(e,t,s)=>(x(e,t)||$(e,t,s()),P(e,t)),G=(e,t,s)=>{const n={},o=t??(e=>e);return N(e,((e,t)=>E(o(e),(e=>s?.(e)?0:n[t]=e)))),n},H=(e,t)=>{const s=W(),n=t??(e=>e);return N(e,((e,t)=>s.set(t,n(e)))),s},K=e=>H(e,H),U=(e,t,s,n,o=0)=>E((s?q:P)(e,t[o],o>g(t)-2?s:W),(a=>{if(o>g(t)-2)return n?.(a)&&$(e,t[o]),a;const r=U(a,t,s,n,o+1);return F(a)&&$(e,t[o]),r})),X=t=>{const s=e(t);return k(s)||s==n&&y(t)?s:void 0},Y=(e,t,s,n,o)=>m(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),Z=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),_=e=>new Set(M(e)||m(e)?e:[e]),ee=(e,t)=>e?.add(t),te=(e,t,s)=>{const n=e.hasRow,o=W(),a=W(),r=W(),l=W(),d=W(),c=(t,s,...n)=>{const o=q(d,t,_);return u(n,(t=>ee(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>E(P(d,t),(n=>{u(L(s)?Q(n):s,(t=>{e.delListener(t),O(n,t)})),F(n)&&$(d,t)})),f=(e,s)=>{$(o,e,s),x(a,e)||($(a,e,t()),$(r,e,W()),$(l,e,W()))},g=e=>{$(o,e),$(a,e),$(r,e),$(l,e),h(e)};return[()=>e,()=>j(o),e=>B(a,e),e=>x(a,e),e=>P(o,e),e=>P(a,e),(e,t)=>$(a,e,t),f,(t,o,a,d,g)=>{f(t,o);const L=W(),w=W(),R=P(r,t),I=P(l,t),S=t=>{const a=s=>e.getCell(o,t,s),r=P(R,t),l=n(o,t)?s(d(a,t)):void 0;if(r===l||M(r)&&M(l)&&i(r,l)||$(L,t,[r,l]),!m(g)){const e=P(I,t),s=n(o,t)?g(a,t):void 0;e!=s&&$(w,t,s)}},v=e=>{a((()=>{N(L,(([,e],t)=>$(R,t,e))),N(w,((e,t)=>$(I,t,e)))}),L,w,R,I,e),z(L),z(w)};B(R,S),e.hasTable(o)&&u(e.getRowIds(o),(e=>{x(R,e)||S(e)})),v(!0),h(t),c(t,0,e.addRowListener(o,null,((e,t,s)=>S(s))),e.addTableListener(o,(()=>v())))},g,()=>B(d,g),c,h]},se=(s,n)=>e(s)==t?e=>e(s):s??(()=>n??""),ne=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},oe=/^\d+$/,ae=()=>{const e=[];let t=0;return[s=>(s?v(e):null)??""+t++,t=>{oe.test(t)&&g(e)<1e3&&I(e,t)}]},re=e=>{let t;const[s,n]=ae(),o=W();return[(n,a,r,l=[],i=(()=>[]))=>{t??=e();const d=s(1);return $(o,d,[n,a,r,l,i]),ee(U(a,r??[""],_),d),d},(e,s,...n)=>u(((e,t=[""])=>{const s=[],n=(e,o)=>o==g(t)?I(s,e):null===t[o]?N(e,(e=>n(e,o+1))):u([t[o],null],(t=>n(P(e,t),o+1)));return n(e,0),s})(e,s),(e=>N(e,(e=>P(o,e)[0](t,...s??[],...n))))),e=>E(P(o,e),(([,t,s])=>(U(t,s??[""],void 0,(t=>(O(t,e),F(t)?1:0))),$(o,e),n(e),s))),e=>E(P(o,e),(([e,,s=[],n,o])=>{const a=(...r)=>{const l=g(r);l==g(s)?e(t,...r,...o(r)):m(s[l])?u(n[l]?.(...r)??[],(e=>a(...r,e))):a(...r,s[l])};a()}))]},le=Object,ie=le.keys,de=le.isFrozen,ce=le.freeze,ue=e=>V(e,le)&&e.constructor==le,he=(e,t)=>!m(((e,t)=>E(e,(e=>e[t])))(e,t)),fe=(e,t)=>delete e[t],ge=(e,t)=>h(le.entries(e),(([e,s])=>t(s,e))),Le=e=>ue(e)&&L(ie(e)),we=ne((e=>{let t,s,n,o=100,a=W(),l=W(),i=1;const d=W(),c=W(),[h,f,w]=re((()=>U)),R=W(),T=W(),p=[],C=[],b=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=P(R,s);N(n,((s,n)=>N(s,((s,o)=>N(s,((s,a)=>Y(e,n,o,a,s[t]))))))),N(o,((s,n)=>Z(e,n,s[t])))})),i=1},y=e=>{$(R,e),$(T,e),f(c,[e])},V=(e,t)=>u(((e,t)=>e.splice(0,t))(e,t??g(e)),y),k=()=>V(p,g(p)-o),J=()=>E(t,(()=>{I(p,t),k(),V(C),t=void 0,n=1})),M=()=>{t=S(p),n=1},D=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(i){J();const e=q(a,t,W),l=q(e,s,W),i=q(l,n,(()=>[r,void 0]));i[1]=o,i[0]===o&&F($(l,n))&&F($(e,s))&&F($(a,t))&&M(),j()}})),A=e.addValueListener(null,((e,t,s,n)=>{if(i){J();const e=q(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&F($(l,t))&&M(),j()}})),Q=(e="")=>(m(t)&&(t=""+s++,$(R,t,[a,l]),H(t,e),a=W(),l=W(),n=1),t),z=()=>{L(p)||(((e,...t)=>{e.unshift(...t)})(C,Q()),b(0,t),t=S(p),n=1)},O=()=>{L(C)||(I(p,t),t=v(C),b(1,t),n=1)},j=()=>{n&&(f(d),n=0)},G=e=>{const t=Q(e);return j(),t},H=(e,t)=>(K(e)&&P(T,e)!==t&&($(T,e,t),f(c,[e])),U),K=e=>x(R,e),U={setSize:e=>(o=e,k(),U),addCheckpoint:G,setCheckpoint:H,getStore:()=>e,getCheckpointIds:()=>[[...p],t,[...C]],forEachCheckpoint:e=>B(T,e),hasCheckpoint:K,getCheckpoint:e=>P(T,e),goBackward:()=>(z(),j(),U),goForward:()=>(O(),j(),U),goTo:e=>{const s=r(p,e)?z:r(C,e)?O:null;for(;!m(s)&&e!=t;)s();return j(),U},addCheckpointIdsListener:e=>h(e,d),addCheckpointListener:(e,t)=>h(t,c,[e]),delListener:e=>(w(e),U),clear:()=>(V(p),V(C),m(t)||y(t),t=void 0,s=0,G(),U),destroy:()=>{e.delListener(D),e.delListener(A)},getListenerStats:()=>({})};return ce(U.clear())})),Re=(e,t)=>e<t?-1:1,Ie=ne((e=>{const t=W(),s=W(),[n,o,r,l,i,u,f,,g,L,w]=te(e,W,(e=>m(e)?"":M(e)?h(e,a):a(e))),[R,I,S]=re((()=>T)),v=(t,s,n)=>{const o=i(t);N(n,((t,n)=>s(n,(s=>N(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},T={setIndexDefinition:(e,n,o,a,r,l=Re)=>{const i=m(r)?void 0:([e],[t])=>r(e,t);return g(e,n,((n,o,r,h,g,L)=>{let w=0;const R=_(),S=_(),v=u(e);if(N(o,(([e,t],s)=>{const n=_(e),o=_(t);N(n,(e=>O(o,e)?O(n,e):0)),N(n,(e=>{ee(R,e),E(P(v,e),(t=>{O(t,s),F(t)&&($(v,e),w=1)}))})),N(o,(e=>{ee(R,e),x(v,e)||($(v,e,_()),w=1),ee(P(v,e),s),m(a)||ee(S,e)}))})),n(),F(g)||(L?B(v,(e=>ee(S,e))):B(r,(e=>E(P(h,e),(e=>ee(S,e))))),N(S,(e=>{const t=(t,s)=>l(P(g,t),P(g,s),e),s=[...P(v,e)];d(s,t)||($(v,e,_(c(s,t))),ee(R,e))}))),(w||L)&&!m(i)){const t=[...v];d(t,i)||(f(e,W(c(t,i))),w=1)}w&&I(t,[e]),N(R,(t=>I(s,[e,t])))}),se(o),E(a,se)),T},delIndexDefinition:e=>(L(e),T),getStore:n,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,u(e)),hasIndex:l,hasSlice:(e,t)=>x(u(e),t),getTableId:i,getSliceIds:e=>j(u(e)),getSliceRowIds:(e,t)=>Q(P(u(e),t)),addSliceIdsListener:(e,s)=>R(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>R(n,s,[e,t]),delListener:e=>(S(e),T),destroy:w,getListenerStats:()=>({})};return ce(T)})),Se=W([["avg",[(e,t)=>f(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["sum",[e=>f(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ve=(e,t,s,n,o,a=!1)=>{if(F(s))return;const[r,l,i,d]=o;return a||=m(e),N(n,(([s,n])=>{a||(e=m(s)?l?.(e,n,t++):m(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=m(e))})),a?r(Q(s),A(s)):e},Te=ne((e=>{const t=W(),[s,n,o,a,r,l,i,,d,c,u]=te(e,D,(e=>isNaN(e)||m(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=re((()=>L)),L={setMetricDefinition:(e,s,n,o,a,r,c)=>{const u=J(n)?[n,a,r,c]:P(Se,n)??P(Se,"sum");return d(e,s,((s,n,o,a,r,d)=>{const c=l(e),h=A(a);d||=m(c),s();let g=ve(c,h,a,n,u,d);y(g)||(g=void 0),g!=c&&(i(e,g),f(t,[e],g,c))}),se(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:a,getTableId:r,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),L),destroy:u,getListenerStats:()=>({})};return ce(L)})),pe=(e,t,s,n,o)=>{let a,r,l=0,i=!1;const d={load:async(s,n)=>{if(2!=l){l=1;const o=await t();m(o)||""==o?e.setContent([s,n]):e.setJson(o),l=0}return d},startAutoLoad:async(t,s)=>(d.stopAutoLoad(),await d.load(t,s),i=!0,r=n((async t=>{m(t)?await d.load():2!=l&&(l=1,e.setContent(t),l=0)})),d),stopAutoLoad:()=>(i&&(o(r),r=void 0,i=!1),d),save:async()=>(1!=l&&(l=2,await s(e.getContent),l=0),d),startAutoSave:async()=>(await d.stopAutoSave().save(),a=e.addDidFinishTransactionListener(d.save),d),stopAutoSave:()=>(E(a,e.delListener),d),getStore:()=>e,destroy:()=>d.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ce(d)},Ce=ne((e=>{const t=e.createStore,[s,n,o,a,r,,,i,,d,c,h,f]=te(e,(()=>!0),D),w=t(),S=t(),v=W(),T=(e,t,...s)=>u(s,(s=>ee(q(q(v,t,W),e,_),s))),p=e=>{E(P(v,e),(e=>{B(e,((e,t)=>N(t,(t=>e.delListener(t))))),z(e)})),u([S,w],(t=>t.delTable(e)))},C=(e,t,s)=>T(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{i(t,s),p(t);const o=[],a=[[null,[s,null,null,[],W()]]],r=[],d=[],c=[];n({select:(e,t)=>{const s=J(e)?[g(o)+"",e]:[m(t)?e:t,s=>s(e,t)];return I(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=m(s)||J(t)?null:t,o=m(n)?t:s,r=[e,[e,n,J(o)?o:e=>e(o),[],W()]];return I(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>I(r,J(e)?e:m(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,J(t)?[t,s,n,o]:P(Se,t)??[(e,t)=>t]]];return I(d,a),{as:e=>a[0]=e}},having:(e,t)=>I(c,J(e)?e:s=>s(e)===t)});const R=W(o);if(F(R))return b;const v=W(a);B(v,((e,[,t])=>E(P(v,t),(({3:t})=>m(e)?0:I(t,e)))));const y=W(d);let V=w;if(F(y)&&L(c))V=S;else{C(t,V,S);const e=W();B(y,((t,[s,n])=>ee(q(e,s,_),[t,n])));const s=_();B(R,(t=>x(e,t)?0:ee(s,t)));const n=W(),o=(s,n,o,a)=>E(s,(([r,i,d,u])=>{B(n,((t,[s])=>{const n=q(r,t,W),l=P(n,o),i=a?void 0:s;if(l!==i){const s=_([[l,i]]),a=A(n);$(n,o,i),N(P(e,t),(([e,t])=>{const o=ve(u[e],a,n,s,t);u[e]=m(X(o))?null:o}))}})),F(i)||!l(c,(e=>e((e=>u[e]))))?S.delRow(t,d):m(d)?s[2]=S.addRow(t,u):S.setRow(t,d,u)}));T(V,t,V.addRowListener(t,null,((a,r,l,i)=>{const d=[],c=[],u=W(),h=V.hasRow(t,l);let f=!h;N(s,(e=>{const[s,n,o]=i(t,l,e);I(d,n),I(c,o),f||=s})),B(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&$(u,e,[n])})),f&&o(U(n,d,void 0,(([,e])=>(O(e,l),F(e)))),u,l,1),h&&o(U(n,c,(()=>{const e={};return N(s,(s=>e[s]=V.getCell(t,l,s))),[W(),_(),void 0,e]}),(([,e])=>{ee(e,l)})),u,l)})))}C(t,e,V);const k=(n,o,a,i)=>{const d=t=>e.getCell(o,a,t);u(i,(s=>{const[o,,a,r,l]=P(v,s),i=a?.(d,n),[c,u]=P(l,n)??[];i!=c&&(m(u)||f(t,u),$(l,n,m(i)?null:[i,...h(t,1,e.addRowListener(o,i,(()=>k(n,o,i,r))))]))})),(n=>{const o=(t,o)=>e.getCell(...m(o)?[s,n,t]:t===s?[s,n,o]:[P(v,t)?.[0],P(P(v,t)?.[4],n)?.[0],o]);V.transaction((()=>l(r,(e=>e(o)))?B(R,((e,s)=>Y(V,t,n,e,s(o,n)))):V.delRow(t,n)))})(n)},{3:M}=P(v,null);return V.transaction((()=>h(t,1,e.addRowListener(s,null,((n,o,a)=>{e.hasRow(s,a)?k(a,s,a,M):(V.delRow(t,a),N(v,(({4:e})=>E(P(e,a),(([,s])=>{f(t,s),$(e,a)})))))}))))),b},delQueryDefinition:e=>(p(e),d(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:a,getTableId:r,delListener:e=>(S.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=S.getListenerStats();return n}};return ge({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{u(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>S[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>S["add"+s+"Listener"](...R(e,0,t),((s,...n)=>e[t](b,...n)))})),ce(b)})),be=ne((e=>{const t=W(),s=W(),n=W(),o=W(),[a,r,l,i,d,c,,,u,h,f]=te(e,(()=>[W(),W(),W(),W()]),(e=>m(e)?void 0:e+"")),[g,L,w]=re((()=>v)),R=(e,t,s)=>E(c(e),(([n,,o])=>{if(!x(o,t)){const a=_();if(d(e)!=S(e))ee(a,t);else{let e=t;for(;!m(e)&&!x(a,e);)ee(a,e),e=P(n,e)}if(s)return a;$(o,t,a)}return P(o,t)})),I=(e,t)=>E(c(e),(([,,e])=>$(e,t))),S=e=>P(t,e),v={setRelationshipDefinition:(e,a,r,l)=>($(t,e,r),u(e,a,((t,a)=>{const r=_(),l=_(),i=_(),[d,u]=c(e);N(a,(([t,s],n)=>{m(t)||(ee(l,t),E(P(u,t),(e=>{O(e,n),F(e)&&$(u,t)}))),m(s)||(ee(l,s),x(u,s)||$(u,s,_()),ee(P(u,s),n)),ee(r,n),$(d,n,s),B(P(o,e),(t=>{x(R(e,t),n)&&ee(i,t)}))})),t(),N(r,(t=>L(s,[e,t]))),N(l,(t=>L(n,[e,t]))),N(i,(t=>{I(e,t),L(o,[e,t])}))}),se(l)),v),delRelationshipDefinition:e=>($(t,e),h(e),v),getStore:a,getRelationshipIds:r,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:S,getRemoteRowId:(e,t)=>P(c(e)?.[0],t),getLocalRowIds:(e,t)=>Q(P(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>m(c(e))?[t]:Q(R(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(R(e,t),g(s,o,[e,t])),delListener:e=>(I(...w(e)),v),destroy:f,getListenerStats:()=>({})};return ce(v)})),ye=e=>[e,e],Ve=()=>[W(),W()],me=(e,t,s,n=$)=>{const o=(a=e=>!he(t,e),j(e).filter(a));var a;return u(ie(t),(n=>s(e,n,t[n]))),u(o,(t=>n(e,t))),e},Ee=(e,t,s)=>m(e)||!ue(e)||Le(e)||de(e)?(s?.(),!1):(ge(e,((s,n)=>{t(s,n)||fe(e,n)})),!Le(e)),ke=(e,t,s)=>$(e,t,P(e,t)==-s?void 0:s),Je=()=>{let e,t,s,o,l=0;const d=W(),f=W(),g=W(),L=W(),w=W(),S=W(),v=W(),C=W(),b=W(),y=W(),V=W(),M=W(),D=_(),A=W(),Q=W(),U=W(),te=Ve(),se=Ve(),ne=Ve(),oe=Ve(),le=Ve(),ie=Ve(),de=Ve(),ue=Ve(),we=Ve(),Ie=Ve(),Se=Ve(),ve=Ve(),Te=Ve(),pe=Ve(),[Ce,be,Me,De]=re((()=>jt)),Ae=e=>{if(!Ee(e,((e,t)=>r(["type","default"],t))))return!1;const t=e.type;return!(!k(t)&&t!=n||(X(e.default)!=t&&fe(e,"default"),0))},xe=(t,s)=>(!e||x(b,s)||ct(s))&&Ee(t,((e,t)=>Fe(s,t,e)),(()=>ct(s))),Fe=(e,t,s,n)=>Ee(n?s:Oe(s,e,t),((n,o)=>E(Qe(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>ct(e,t))),Qe=(t,s,n,o)=>e?E(P(P(b,t),n),(e=>X(o)!=e.type?ct(t,s,n,o,e.default):o),(()=>ct(t,s,n,o))):m(X(o))?ct(t,s,n,o):o,ze=(e,t)=>Ee(t?e:We(e),((t,s)=>E(Ne(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>ut())),Ne=(e,s)=>t?E(P(V,e),(t=>X(s)!=t.type?ut(e,s,t.default):s),(()=>ut(e,s))):m(X(s))?ut(e,s):s,Oe=(e,t,s)=>(E(P(y,t),(([n,o])=>{N(n,((t,s)=>{he(e,s)||(e[s]=t)})),N(o,(n=>{he(e,n)||ct(t,s,n)}))})),e),We=e=>(t&&(N(M,((t,s)=>{he(e,s)||(e[s]=t)})),N(D,(t=>{he(e,t)||ut(t)}))),e),je=e=>me(b,e,((e,t,s)=>{const n=W(),o=_();me(q(b,t,W),s,((e,t,s)=>{$(e,t,s),E(s.default,(e=>$(n,t,e)),(()=>ee(o,t)))})),$(y,t,[n,o])}),((e,t)=>{$(b,t),$(y,t)})),Pe=e=>me(V,e,((e,t,s)=>{$(V,t,s),E(s.default,(e=>$(M,t,e)),(()=>ee(D,t)))}),((e,t)=>{$(V,t),$(M,t),O(D,t)})),Be=e=>Le(e)?xt():kt(e),$e=e=>me(Q,e,((e,t,s)=>qe(t,s)),((e,t)=>et(t))),qe=(e,t)=>me(q(Q,e,(()=>(ot(e,1),W()))),t,((t,s,n)=>Ge(e,t,s,n)),((t,s)=>tt(e,t,s))),Ge=(e,t,s,n,o)=>me(q(t,s,(()=>(at(e,s,1),W()))),n,((t,n,o)=>He(e,s,t,n,o)),((n,a)=>st(e,t,s,n,a,o))),He=(e,t,s,n,o)=>{x(s,n)||rt(e,t,n,1);const a=P(s,n);o!==a&&(lt(e,t,n,a,o),$(s,n,o))},Ke=(e,t,s,n,o)=>E(P(t,s),(t=>He(e,s,t,n,o)),(()=>Ge(e,t,s,Oe({[n]:o},e,s)))),Ue=e=>Le(e)?Ft():Jt(e),Xe=e=>me(U,e,((e,t,s)=>Ye(t,s)),((e,t)=>nt(t))),Ye=(e,t)=>{x(U,e)||it(e,1);const s=P(U,e);t!==s&&(dt(e,s,t),$(U,e,t))},Ze=(e,t)=>{const[s]=q(A,e,ae),n=s(t);return x(P(Q,e),n)?Ze(e,t):n},_e=e=>P(Q,e)??qe(e,{}),et=e=>qe(e,{}),tt=(e,t,s)=>{const[,n]=q(A,e,ae);n(s),Ge(e,t,s,{},!0)},st=(e,t,s,n,o,a)=>{const r=P(P(y,e)?.[0],o);if(!m(r)&&!a)return He(e,s,n,o,r);const l=t=>{lt(e,s,t,P(n,t)),rt(e,s,t,-1),$(n,t)};m(r)?l(o):B(n,l),F(n)&&(at(e,s,-1),F($(t,s))&&(ot(e,-1),$(Q,e),$(A,e)))},nt=e=>{const t=P(M,e);if(!m(t))return Ye(e,t);dt(e,P(U,e)),it(e,-1),$(U,e)},ot=(e,t)=>ke(d,e,t),at=(e,t,s)=>ke(q(f,e,W),t,s),rt=(e,t,s,n)=>ke(q(q(g,e,W),t,W),s,n),lt=(e,t,s,n,o)=>q(q(q(L,e,W),t,W),s,(()=>[n,0]))[1]=o,it=(e,t)=>ke(w,e,t),dt=(e,t,s)=>q(S,e,(()=>[t,0]))[1]=s,ct=(e,t,s,n,o)=>(I(q(q(q(v,e,W),t,W),s,(()=>[])),n),o),ut=(e,t,s)=>(I(q(C,e,(()=>[])),t),s),ht=(e,t,s)=>E(P(P(P(L,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ye(yt(e,t,s))])),ft=e=>E(P(S,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ye(Et(e))])),gt=e=>F(v)||F(we[e])?0:N(e?H(v,K):v,((t,s)=>N(t,((t,n)=>N(t,((t,o)=>be(we[e],[s,n,o],t))))))),Lt=e=>F(C)||F(Ie[e])?0:N(e?H(C):C,((t,s)=>be(Ie[e],[s],t))),wt=(e,t,s)=>{if(!F(t))return be(e,s),1},Rt=e=>{const t=F(le[e]),s=F(de[e])&&F(oe[e])&&t&&F(se[e]),n=F(ue[e])&&F(ie[e])&&F(ne[e])&&F(te[e]);if(!s||!n){const o=e?[H(d),K(f),H(g,K),H(L,K)]:[d,f,g,L];if(!s){N(o[2],((t,s)=>N(t,((t,n)=>wt(de[e],t,[s,n])))));const s=_();N(o[1],((n,o)=>{wt(oe[e],n,[o])&&!t&&(be(le[e],[o,null]),ee(s,o))})),t||N(o[3],((t,n)=>{if(!x(s,n)){const s=_();N(t,(e=>N(e,(([t,n],o)=>n!==t?ee(s,o):O(e,o))))),N(s,(t=>be(le[e],[n,t])))}})),wt(se[e],o[0])}if(!n){let t;N(o[3],((s,n)=>{let o;N(s,((s,a)=>{let r;N(s,(([s,l],i)=>{l!==s&&(be(ue[e],[n,a,i],l,s,ht),t=o=r=1)})),r&&be(ie[e],[n,a],ht)})),o&&be(ne[e],[n],ht)})),t&&be(te[e],void 0,ht)}}},It=e=>{const t=F(ve[e]),s=F(Te[e])&&F(Se[e]);if(!t||!s){const n=e?[H(w),H(S)]:[w,S];if(t||wt(ve[e],n[0]),!s){let t;N(n[1],(([s,n],o)=>{n!==s&&(be(Te[e],[o],n,s,ft),t=1)})),t&&be(Se[e],void 0,ft)}}},St=(e,...t)=>(Nt((()=>e(...h(t,a)))),jt),vt=()=>G(Q,(e=>G(e,G))),Tt=()=>j(Q),pt=e=>j(P(Q,a(e))),Ct=(e,t,s,n=0,o)=>{return h(R(c((r=P(Q,a(e)),l=(e,s)=>[m(t)?s:P(e,a(t)),s],h([...r?.entries()??[]],(([e,t])=>l(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,m(o)?o:n+o),(([,e])=>e));var r,l},bt=(e,t)=>j(P(P(Q,a(e)),a(t))),yt=(e,t,s)=>P(P(P(Q,a(e)),a(t)),a(s)),Vt=()=>G(U),mt=()=>j(U),Et=e=>P(U,a(e)),kt=e=>St((()=>(e=>Ee(e,xe,ct))(e)?$e(e):0)),Jt=e=>St((()=>ze(e)?Xe(e):0)),Mt=e=>{try{Be(p(e))}catch{}return jt},Dt=t=>St((()=>{if((e=Ee(t,(e=>Ee(e,Ae))))&&(je(t),!F(Q))){const e=vt();xt(),kt(e)}})),At=e=>St((()=>{if(t=(e=>Ee(e,Ae))(e)){const s=Vt();zt(),Ft(),t=!0,Pe(e),Jt(s)}})),xt=()=>St((()=>$e({}))),Ft=()=>St((()=>Xe({}))),Qt=()=>St((()=>{je({}),e=!1})),zt=()=>St((()=>{Pe({}),t=!1})),Nt=(e,t)=>{if(-1==l)return;Ot();const s=e();return Wt(t),s},Ot=()=>(l++,jt),Wt=e=>{if(l>0&&(l--,0==l)){s=!F(L),o=!F(S),l=1,gt(1),s&&Rt(1),Lt(1),o&&It(1),l=-1;let t=!e&&F(pe[0])&&F(pe[1])?[{},{},{},{}]:[G(L,(e=>G(e,(e=>G(e,(e=>[...e]),(([e,t])=>e===t))),Le)),Le),G(v,(e=>G(e,G))),G(S,(e=>[...e]),(([e,t])=>e===t)),G(C)];e?.(...t)&&(l=1,N(L,((e,t)=>N(e,((e,s)=>N(e,(([e],n)=>Y(jt,t,s,n,e))))))),N(S,(([e],t)=>Z(jt,t,e))),l=-1,s=o=!1,t=[{},{},{},{}]),be(pe[0],void 0,s,o,...t),gt(0),s&&Rt(0),Lt(0),o&&It(0),be(pe[1],void 0,s,o,...t),l=0,u([d,f,g,L,v,w,S,C],z)}return jt},jt={getContent:()=>[vt(),Vt()],getTables:vt,getTableIds:Tt,getTable:e=>G(P(Q,a(e)),G),getRowIds:pt,getSortedRowIds:Ct,getRow:(e,t)=>G(P(P(Q,a(e)),a(t))),getCellIds:bt,getCell:yt,getValues:Vt,getValueIds:mt,getValue:Et,hasTables:()=>!F(Q),hasTable:e=>x(Q,a(e)),hasRow:(e,t)=>x(P(Q,a(e)),a(t)),hasCell:(e,t,s)=>x(P(P(Q,a(e)),a(t)),a(s)),hasValues:()=>!F(U),hasValue:e=>x(U,a(e)),getTablesJson:()=>T(Q),getValuesJson:()=>T(U),getJson:()=>T([Q,U]),getTablesSchemaJson:()=>T(b),getValuesSchemaJson:()=>T(V),getSchemaJson:()=>T([b,V]),setContent:([e,t])=>St((()=>{kt(e),Jt(t)})),setTables:kt,setTable:(e,t)=>St((e=>xe(t,e)?qe(e,t):0),e),setRow:(e,t,s)=>St(((e,t)=>Fe(e,t,s)?Ge(e,_e(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Nt((()=>{let n;return Fe(e,n,t)&&(e=a(e),Ge(e,_e(e),n=Ze(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>St(((e,t)=>{if(Fe(e,t,s,1)){const n=_e(e);ge(s,((s,o)=>Ke(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>St(((e,t,s)=>E(Qe(e,t,s,J(n)?n(yt(e,t,s)):n),(n=>Ke(e,_e(e),t,s,n)))),e,t,s),setValues:Jt,setPartialValues:e=>St((()=>ze(e,1)?ge(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>St((e=>E(Ne(e,J(t)?t(Et(e)):t),(t=>Ye(e,t)))),e),setTablesJson:Mt,setValuesJson:e=>{try{Ue(p(e))}catch{}return jt},setJson:e=>{try{const[t,s]=p(e);Be(t),Ue(s)}catch{Mt(e)}return jt},setTablesSchema:Dt,setValuesSchema:At,setSchema:(e,t)=>St((()=>{Dt(e),At(t)})),delTables:xt,delTable:e=>St((e=>x(Q,e)?et(e):0),e),delRow:(e,t)=>St(((e,t)=>E(P(Q,e),(s=>x(s,t)?tt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>St(((e,t,s)=>E(P(Q,e),(o=>E(P(o,t),(a=>x(a,s)?st(e,o,t,a,s,n):0))))),e,t,s),delValues:Ft,delValue:e=>St((e=>x(U,e)?nt(e):0),e),delTablesSchema:Qt,delValuesSchema:zt,delSchema:()=>St((()=>{Qt(),zt()})),transaction:Nt,startTransaction:Ot,finishTransaction:Wt,forEachTable:e=>N(Q,((t,s)=>e(s,(e=>N(t,((t,s)=>e(s,(e=>B(t,e))))))))),forEachRow:(e,t)=>N(P(Q,a(e)),((e,s)=>t(s,(t=>B(e,t))))),forEachCell:(e,t,s)=>B(P(P(Q,a(e)),a(t)),s),forEachValue:e=>B(U,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>{let l=Ct(e,t,s,n,o);return Ce((()=>{const r=Ct(e,t,s,n,o);i(r,l)||(l=r,a(jt,e,t,s,n,o,l))}),le[r?1:0],[e,t],[Tt])},addWillFinishTransactionListener:e=>Ce(e,pe[0]),addDidFinishTransactionListener:e=>Ce(e,pe[1]),callListener:e=>(De(e),jt),delListener:e=>(Me(e),jt),getListenerStats:()=>({}),createStore:Je};return ge({Tables:[0,te],TableIds:[0,se],Table:[1,ne,[Tt]],RowIds:[1,oe,[Tt]],Row:[2,ie,[Tt,pt]],CellIds:[2,de,[Tt,pt]],Cell:[3,ue,[Tt,pt,bt],e=>ye(yt(...e))],InvalidCell:[3,we],Values:[0,Se],ValueIds:[0,ve],Value:[1,Te,[mt],e=>ye(Et(e[0]))],InvalidValue:[1,Ie]},(([e,t,s,n],o)=>{jt["add"+o+"Listener"]=(...o)=>Ce(o[e],t[o[e+1]?1:0],e>0?R(o,0,e):void 0,s,n)})),ce(jt)};export{we as createCheckpoints,pe as createCustomPersister,Ie as createIndexes,Te as createMetrics,Ce as createQueries,be as createRelationships,Je as createStore,Re as defaultSorter};
Binary file
package/lib/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",d="default",r="Listener",s="get",I="add",$="Ids",c="Table",i=c+"s",u=c+$,p="Row",b=p+$,C="Sorted"+p+$,h="Cell",g=h+$,m="Value",f=m+"s",w=m+$,y=(e,t)=>e.every(t),T=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),V=(e,t)=>e.map(t),x=e=>e.length,R=e=>0==x(e),k=(e,t)=>e.filter(t),S=(e,...t)=>e.push(...t),P=e=>e.pop(),A=(e,...t)=>e.unshift(...t),E=e=>e.shift(),D=JSON.parse,O=isFinite,N=(e,t)=>e instanceof t,L=e=>null==e,j=e=>e==l||e==a,M=t=>e(t)==l,G=e=>Array.isArray(e),J=t=>{const l=e(t);return j(l)||l==n&&O(t)?l:void 0},z=(e,t)=>e?.has(t)??!1,W=e=>[...e?.values()??[]],B=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),U=e=>new Map(e),_=(e,t)=>e?.get(t),Z=(e,t)=>B(e,((e,l)=>t(l,e))),H=(e,t)=>V([...e?.entries()??[]],(([e,l])=>t(l,e))),Q=(e,t,l)=>L(l)?(F(e,t),e):e?.set(t,l),q=(e,t,l)=>(z(e,t)||Q(e,t,l()),_(e,t)),K=e=>e.toUpperCase(),X=e=>e.toLowerCase(),Y="a ",ee="A function for",te=", and registers a listener so that any changes to that result will cause a re-render",le="Callback",ae="Del",ne="Deps",oe=ne+"?: React.DependencyList",de="doRollback?: DoRollback",re="actions: () => Return, "+de,se="export",Ie="Id",$e="Invalid",ce="Json",ie=X(r),ue="?: ",pe=" | undefined",be="NonNullable",Ce="Partial",he="Props",ge="Provider",me=`Registers a ${ie} that will be called`,fe="Represents",we="rowId: "+Ie,ye="Schema",Te="Set",ve=", descending?: boolean, offset?: number, limit?: number",Ve="[]",xe="the Store",Re="Transaction",ke=X(Re),Se="Execute a "+ke+" to make multiple mutations",Pe="Explicitly starts a "+ke,Ae="Explicitly finishes a "+ke,Ee="the end of the "+ke,De="void",Oe=" => "+De,Ne="WhenSet",Le=" when setting it",je=Y+"string serialization of",Me=" ",Ge="Gets a callback that can ",Je="the ",ze=" the schema for",We=(e=0,l=0)=>`the ${dt[e]}content of`+(l?Me+xe:t),Be=(e=0,l,a=0)=>at[l]+Me+We(e,1)+(a?" when setting it":t),Fe=(e,t=0)=>fe+` a Row when ${t?"s":"g"}etting ${We()} the '${e}' `+c,Ue=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,_e=(e,t)=>`Calls a function for each ${e} in `+t,Ze=e=>"The props passed to a component that renders "+e,He=e=>"A function that takes "+e,Qe=(e,t=0)=>ee+" listening to changes to "+ot[e]+" in "+ot[t],qe=(e,l,a=0)=>me+" whenever "+ot[e]+" in "+ot[l]+" change"+(a?t:"s"),Ke=e=>`the '${e}' `+c,Xe=e=>"the specified Row in "+Ke(e),Ye=(e,t=0)=>at[t]+` ${We()} `+Ke(e),et=(e,t=0)=>at[t]+` ${We()} `+Xe(e),tt=(e,t,l=0)=>at[l]+` the '${t}' Cell for `+Xe(e),lt=(e,t=0)=>at[t]+` the '${e}' Value`,at=["Gets","Checks existence of","Sets","Deletes","Sets part of",fe,"Gets "+je,"Sets "+je,me+" whenever",Ge+"set",Ge+"add",Ge+"set part of",Ge+"delete","Renders","Gets "+je+ze,"Sets"+ze,"Deletes"+ze],nt=[s,"has","set","del","set","forEach",I,t],ot=[xe,i,Je+c+Me+$,Y+c,Je+p+Me+$,Y+p,Je+h+Me+$,Y+h,"invalid Cell changes",f,Je+m+Me+$,Y+m,"invalid Value changes",Je+"sorted "+p+Me+$],dt=[t,"tabular ","keyed value "],rt=e=>new Set(G(e)||L(e)?e:[e]),st=(e,t)=>e?.add(t),It=/[^A-Za-z]+/,$t=/[^A-Za-z0-9]+/,ct=/^( *)\/\*\* *(.*?) *\*\/$/gm,it=(e,t,l)=>e.substring(t,l),ut=e=>e.includes(","),pt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return z(e,n)?pt(e,t,l,a+1):(Q(e,n,l),n)},bt=e=>e.replace(ct,((e,t,l)=>{const a=77-Ct(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Ct=e=>e.length,ht=(e,l=t)=>e.join(l),gt=e=>e.flat(1e3),mt=(e,t=0)=>ht(V(e.split($t),((e,l)=>(l>0||t?K:X)(it(e,0,1))+it(e,1)))),ft=e=>K(ht((e&&!It.test(e[0])?e:" "+e).split($t),"_")),wt=e=>`/** ${e}. */`,yt=(...e)=>ht(k(e,(e=>e)),", "),Tt=(...e)=>"{"+ht(e,"; ")+"}",vt=(...e)=>Tt(...V(e,(e=>"readonly "+e))),Vt=()=>{const e=[U(),U(),U(),U()],l=U(),a=U();return[(...e)=>ht(gt(e),"\n"),(t,l,...a)=>v(a,(a=>v([0,1],(n=>(t??n)==n?st(q(e[n],l,rt),a):0)))),(e,a,n,o=t,d=1)=>pt(l,e,[a,n,o,d]),(e,t,l)=>pt(a,e,G(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>_(a,e)===t?e:pt(a,e,t),(l=0)=>V([...T(H(e[l],((e,t)=>`import {${ht(T(W(e)),", ")}} from '${t}';`)),((e,t)=>ut(e)!=ut(t)?ut(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>H(l,(([e,l,a,n],o)=>[wt(l),`${n?se+" ":t}type ${o}${a} = ${e};`,t])),()=>H(a,((e,l)=>(e=G(e)?e:[e],S(e,P(e)+";"),[`const ${l} = ${E(e)}`,e,t])))]},xt=Object,Rt=xt.keys,kt=xt.freeze,St=e=>N(e,xt)&&e.constructor==xt,Pt=(e,t)=>V(xt.entries(e),(([e,l])=>t(l,e))),At=e=>St(e)&&R(Rt(e)),Et=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Dt=(e,t,l)=>[t=>Pt(e,((e,a)=>t(a,mt(a,1),l(ft(a),`'${a}'`)))),(t,a)=>Pt(e[t],((e,t)=>a(t,e[o],e[d],l(ft(t),`'${t}'`),mt(t,1)))),e=>Pt(t,((t,a)=>e(a,t[o],t[d],l(ft(a),`'${a}'`),mt(a,1))))],Ot=(e,l,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(i,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`)))+"}"))),Be(1,5)),I=e(i+Ne,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Be(1,5,1)),$=e(c+Ie,"keyof "+s,"A "+c+" Id in "+xe),m=`<TId extends ${$}>`,f=e(c,be+`<${s}[TId]>`,"A "+c+" in "+xe,m),w=e(c+Ne,be+`<${I}[TId]>`,"A "+c+" in "+xe+Le,m),y=e(p,f+"<TId>[Id]","A "+p+" in a "+c,m),T=e(p+Ne,w+"<TId>[Id]","A "+p+" in a "+c+Le,m),v=e(h+Ie,`Extract<keyof ${y}<TId>, Id>`,"A "+h+" Id in a "+p,m),V=e(h,be+`<${s}[TId]>[Id][CId]`,"A "+h+" in a "+p,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,h+" Ids and types in a "+p,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(h+le,`(...[cellId, cell]: ${x}<TId>)`+Oe,He(Y+h+" Id, and "+h),m),k=e(p+le,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Oe+") "+Oe,He(Y+p+" Id, and a "+h+" iterator"),m),S=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Oe}] : never`,c+" Ids and callback types",`<TId = ${$}>`,0),P=e(c+le,`(...[tableId, forEachRow]: ${S})`+Oe,He(Y+c+" Id, and a "+p+" iterator"),t),A=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),E=e("GetCellChange",`(...[tableId, rowId, cellId]: ${A}) => CellChange`,ee+" returning information about any Cell's changes during a "+ke),D=e(i+r,`(${d}, getCellChange: ${E}${pe})`+Oe,Qe(1)),O=e(u+r,`(${d})`+Oe,Qe(2)),N=e(c+r,`(${d}, tableId: ${$}, getCellChange: ${E}${pe})`+Oe,Qe(3)),j=e(b+r,`(${d}, tableId: ${$})`+Oe,Qe(4,3)),M=e(C+r,"("+yt(d,"tableId: "+$,"cellId: Id"+pe,"descending: boolean","offset: number","limit: number"+pe,"sortedRowIds: Ids")+")"+Oe,Qe(13,3)),G=e(p+r,"("+yt(""+d,"tableId: "+$,we,`getCellChange: ${E}${pe}`)+")"+Oe,Qe(5,3)),J=e(g+r,"("+yt(""+d,"tableId: "+$,we)+")"+Oe,Qe(6,5)),z=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${we}, cellId: CId, newCell: ${V}<TId, CId> ${pe}, oldCell: ${V}<TId, CId> ${pe}, getCellChange: ${E} ${pe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),W=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,I,$,f,w,y,T,v,V,R,k,P,D,O,N,j,M,G,J,e(h+r,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${W})`+Oe,Qe(7,5)),e($e+h+r,`(${d}, tableId: Id, ${we}, cellId: Id, invalidCells: any[])`+Oe,Qe(8))]},(l,a)=>{const o=l+": "+a,d=e(f,Tt(...n(((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`))),Be(2,5)),s=e(f+Ne,Tt(...n(((e,t)=>`'${e}'?: ${t}`))),Be(2,5,1)),I=e(m+Ie,"keyof "+d,"A "+m+" Id in "+xe),$=e(m,be+`<${d}[VId]>`,"A "+m+" Id in "+xe,`<VId extends ${I}>`),c=e("ValueIdValueArray",`VId extends ${I} ? [valueId: VId, value: ${$}<VId>] : never`,m+" Ids and types in "+xe,`<VId = ${I}>`,0),i=e(m+le,`(...[valueId, value]: ${c})`+Oe,He(Y+m+" Id, and "+m)),u=e("GetValueChange",`(valueId: ${I}) => ValueChange`,ee+" returning information about any Value's changes during a "+ke),p=e(f+r,`(${o}, getValueChange: ${u}${pe})`+Oe,Qe(9)),b=e(w+r,`(${o})`+Oe,Qe(10)),C=e("ValueListenerArgsArray",`VId extends ${I} ? [${o}, valueId: VId, newValue: ${$}<VId> ${pe}, oldValue: ${$}<VId> ${pe}, getValueChange: ${u} ${pe}] : never`,"Value args for ValueListener",`<VId = ${I}>`,0);return[d,s,I,$,i,p,b,e(m+r,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Oe,Qe(11)),e($e+m+r,`(${o}, valueId: Id, invalidValues: any[])`+Oe,Qe(12))]},(t,l)=>e(Re+r,`(${t}: ${l}, cellsTouched: boolean, valuesTouched: boolean)`+Oe,ee+" listening to the completion of a "+ke)],Nt=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Lt=(e,l=t)=>`fluent(() => ${Nt(e,l)})`,jt=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Mt=(e,l,n)=>{const[s,y,T,V,x,R,k,P]=Vt(),[E,D,O]=Dt(e,l,x),[N,j,G]=Ot(T,E,D,O),J=U(),z=(e=0)=>H(J,(([l,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${l}): ${a} => ${n},`]:[r+d+`(${l}): ${a};`];return e||A(s,wt(o)),S(s,t),s})),B=(e,l,a,n,o,d=t)=>pt(J,e,[l,a,n,o,d]),F=(e,l,a,n,o,d=t,r=t,s=t)=>B(nt[e]+l+(4==e?Ce:t)+a,d,n,(n==X?Lt:Nt)(nt[e]+(4==e?Ce:t)+a,r,e?void 0:n),o,s),q=(e,l,a,n=t,o=t,d=1,s=t)=>B(I+e+r,(n?n+", ":t)+ie+": "+l+(d?", mutator?: boolean":t),Ie,jt(I+e+r,o,d?"mutator":t),a,s),K=`./${mt(n)}.d`,X=mt(n,1),Y=mt(X),ee=[],te=U();let ae=[],ne=[];if(y(1,K,X,`create${X} as create${X}Decl`),!At(e)){y(0,"tinybase","CellChange"),y(null,"tinybase",$);const[e,l,n,r,s,I,m,f,w,V,R,k,P,A,O,j,G,J,z,B,Z]=N(Y,X),H=U();E(((e,t)=>{const l=`<'${e}'>`,a=[T(t+c,r+l,fe+` the '${e}' `+c),T(t+c+Ne,s+l,fe+` the '${e}' `+c+Le),T(t+p,I+l,Fe(e)),T(t+p+Ne,m+l,Fe(e,1)),T(t+h+Ie,f+l,`A Cell Id for the '${e}' `+c),T(t+h+le,V+l,He(`a Cell Id and value from a Row in the '${e}' `+c)),T(t+p+le,R+l,He(`a Row Id from the '${e}' Table, and a Cell iterator`))];Q(H,e,a),y(1,K,...a)})),y(1,K,e,l,n,f,k,P,A,O,j,G,J,z,B,Z),ae=[e,l,n,f,P,A,O,j,G,J,z,B,H],v([[e],[a],[X,"tables: "+l,"tables"],[X]],(([e,l,a],n)=>F(n,t,i,e,Be(1,n),l,a))),F(0,t,u,n+Ve,Ue(c,xe)),F(5,t,c,De,_e(c,xe),"tableCallback: "+k,"tableCallback as any"),E(((e,l,n)=>{const[o,d,r,s,I,i,u]=_(H,e);v([[o],[a],[X,"table: "+d,", table"],[X]],(([a,o,d=t],r)=>F(r,l,c,a,Ye(e,r),o,n+d))),F(0,l,b,$,Ue(p,Ke(e)),t,n),F(0,l,C,$,Ue(p,Ke(e),1),"cellId?: "+I+ve,n+", cellId, descending, offset, limit"),F(5,l,p,De,_e(p,Ke(e)),"rowCallback: "+u,n+", rowCallback as any"),v([[r],[a],[X,", row: "+s,", row"],[X],[X,", partialRow: "+s,", partialRow"]],(([a,o=t,d=t],r)=>F(r,l,p,a,et(e,r),we+o,n+", rowId"+d))),F(6,l,p,Ie+pe,"Add a new Row to "+Ke(e),"row: "+s,n+", row"),F(0,l,g,I+Ve,Ue(h,Xe(e)),we,n+", rowId"),F(5,l,h,De,_e(h,Xe(e)),we+", cellCallback: "+i,n+", rowId, cellCallback as any"),D(e,((o,d,r,s,I)=>{const $="Map"+mt(d,1);Q(te,d,$);const c=d+(L(r)?pe:t);v([[c],[a],[X,`, cell: ${d} | `+$,", cell as any"],[X]],(([a,d=t,r=t],$)=>F($,l+I,h,a,tt(e,o,$),we+d,n+", rowId, "+s+r)))}))})),F(0,t,i+ce,ce,Be(1,6)),F(2,t,i+ce,X,Be(1,7),"tablesJson: "+ce,"tables"+ce),q(i,P,Be(1,8)+" changes"),q(u,A,qe(2,0,1)),q(c,O,qe(3,0),`tableId: ${n} | null`,"tableId"),q(b,j,qe(4,3,1),`tableId: ${n} | null`,"tableId"),q(C,G,qe(13,3,1),yt("tableId: TId",`cellId: ${f}<TId>`+pe,"descending: boolean","offset: number","limit: number"+pe),yt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),q(p,J,qe(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(g,z,qe(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(h,B,qe(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${ht(E((e=>_(H,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),q($e+h,Z,me+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),y(1,K,...W(te)),S(ee,".set"+i+ye+"({",gt(E(((e,l,a)=>[`[${a}]: {`,...D(e,((e,l,a,n)=>`[${n}]: {[${x(ft(o),`'${o}'`)}]: ${x(ft(l),`'${l}'`)}${L(a)?t:`, [${x(ft(d),`'${d}'`)}]: `+(M(a)?x(ft(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(!At(l)){const[e,l,n,r,s,I,$,c,i]=j(Y,X);y(1,K,e,l,n,s,I,$,c,i),ne=[e,l,n,I,$,c],v([[e],[a],[X,"values: "+l,"values"],[X],[X,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>F(n,t,f,e,Be(2,n),l,a))),F(0,t,w,n+Ve,Ue(m,xe)),F(5,t,m,"void",_e(m,xe),"valueCallback: "+s,"valueCallback as any"),O(((e,l,n,o,d)=>{const r="Map"+mt(l,1);Q(te,l,r),v([[l],[a],[X,`value: ${l} | `+r,", value as any"],[X]],(([l,a,n=t],r)=>F(r,d,m,l,lt(e,r),a,o+n)))})),F(0,t,f+ce,ce,Be(2,6)),F(2,t,f+ce,X,Be(2,7),"valuesJson: "+ce,"values"+ce),q(f,I,Be(2,8)+" changes"),q(w,$,qe(10,0,1)),q(m,c,qe(11,0),`valueId: ${n} | null`,"valueId"),q($e+m,i,me+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),y(1,K,...W(te)),y(0,"tinybase","ValueChange"),S(ee,".set"+f+ye+"({",O(((e,l,a,n)=>[`[${n}]: {[${x(ft(o),`'${o}'`)}]: ${x(ft(l),`'${l}'`)}${L(a)?t:`, [${x(ft(d),`'${d}'`)}]: `+(M(a)?x(ft(a),`'${a}'`):a)}},`])),"})")}Z(te,((e,t)=>T(t,`(cell: ${e}${pe}) => `+e,`Takes a ${e} Cell value and returns another`))),y(null,"tinybase","DoRollback",Ie,"IdOrNull",ce,"Store"),F(0,t,ce,ce,Be(0,6)),F(2,t,ce,X,Be(0,7),"tablesAndValuesJson: "+ce,"tablesAndValuesJson"),F(7,t,ke,"Return",Se,re,"actions, doRollback","<Return>"),F(7,t,"start"+Re,X,Pe),F(7,t,"finish"+Re,X,Ae,de,"doRollback");const oe=G(Y,X);return q("WillFinish"+Re,oe,me+" just before "+Ee,t,t,0),q("DidFinish"+Re,oe,me+" just after "+Ee,t,t,0),F(7,t,"call"+r,X,"Manually provoke a listener to be called","listenerId: Id","listenerId"),F(3,t,r,X,"Remove a listener that was previously added to "+xe,"listenerId: Id","listenerId"),B("getStore",t,"Store","store",at[0]+" the underlying Store object"),y(1,"tinybase","createStore"),y(1,K,X,`create${X} as create${X}Decl`,oe),x("store",["createStore()",...ee]),V("fluent","actions: () => Store",["actions();",`return ${Y};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Y}, ...params)`),x(Y,["{",...z(1),"}"]),[s(...R(0),...k(),se+" interface "+X+" {",...z(0),"}",t,wt(`Creates a ${X} object`),se+" function create"+X+"(): "+X+";"),s(...R(1),se+" const create"+X+": typeof create"+X+"Decl = () => {",...P(),`return Object.freeze(${Y});`,"};"),ae,ne]},Gt=e=>s+e,Jt=e=>yt(Gt(e),Gt(e)+ne),zt="debugIds?: boolean",Wt="debugIds={debugIds}",Bt="then"+oe,Ft="Parameter",Ut=": (parameter: "+Ft+", store: Store) => ",_t="const contextValue = useContext(Context);",Zt=", based on a parameter",Ht=": ",Qt="<"+Ft+",>",qt=Ft+"ized"+le+"<"+Ft+">",Kt="rowId",Xt="rowId={rowId}",Yt=", separator, debugIds",el="separator?: ReactElement | string",tl="then?: (store: Store",ll=yt(tl+")"+Oe,Bt),al="then, then"+ne,nl=Kt+Ht+Ie,ol="View",dl=(e,...t)=>yt(...t,ie+": "+e,ie+oe,"mutator?: boolean"),rl=(...e)=>yt(...e,ie,ie+ne,"mutator"),sl=(e,l,a,n,o)=>{const[d,s,I,y,T,v,V,x]=Vt(),[R,k,P]=Dt(e,l,T),E=`./${mt(a)}.d`,D=`./${mt(a)}-ui-react.d`,O="tinybase/ui-react",N=mt(a,1),j=mt(N),M=N+"Or"+N+Ie,G=j+"Or"+N+Ie,J=j+`={${j}}`,z=U(),W=(e,l,a,n,o,d=t)=>(s(1,D,e+" as "+e+"Decl"),pt(z,e,[l,a,n,o,d])),B=(e,l,a,n,o,d=t)=>W("use"+e,l,a,n,o,d),F=(e,l,a,n,o=t,d=t,r=t,I=t,$=t)=>(s(1,O,`use${l} as use${l}Core`),B(e,yt(o,X,I),a,ne+`(${G}, use${l}Core, [`+(d||t)+($?"], ["+$:t)+"]);",n,r)),Z=(e,t,l,a)=>W(e,t,1,l,a),Q=(e=0)=>H(z,(([l,a,n,o,d],r)=>{const s=e?[se+` const ${r}: typeof ${r}Decl = ${d}(${l}): ${1==a?"any":a} =>`,n]:[se+` function ${r}${d}(${l}): ${1==a?"ComponentReturnType":a};`];return e||A(s,wt(o)),S(s,t),s}));s(null,"tinybase",Ie,"Store",le,Ft+"ized"+le),s(0,O,"ComponentReturnType"),s(null,O,"ExtraProps"),s(0,E,N);const q=I(M,N+" | "+Ie,`Used when you need to refer to a ${N} in a React hook or component`),K=I(ge+he,vt(j+ue+N,j+`ById?: {[${j}Id: Id]: ${N}}`),`Used with the ${ge} component, so that a `+N+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,D,q,K);const X=G+ue+q;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${j}Id: Id]: ${N}}?]>([])`),B("Create"+N,`create: () => ${N}, create`+oe,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const ee=B(N,"id?: Id",N+pe,["{",_t,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ge} component context`),ne=y("useHook",G+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${j} = ${ee}(${G} as Id);`,`return hook(...preParams, ((${G} == null || typeof ${G} == 'string')`,`? ${j} : ${G})?.getStore(), ...postParams)`]),de=y("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),re=y("wrap",yt("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),$e=T("NullComponent","() => null");if(!At(e)){const[e,l,a,o,d,m,f,w,T,v,V,x,S]=n;s(null,E,e,l,a,d,m,f,w,T,v,V,x),s(0,E,o),s(1,E,N),s(null,"tinybase",$,"IdOrNull");const P=y("tableView",`{${j}, rowComponent, getRowComponentProps`+Yt+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${re}(rowIds.map((rowId) => (`,"<Row","{..."+de+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",Xt,J,Wt,"/>","))",Yt,", tableId,",");"]),A=y("getDefaultTableComponent","tableId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+$e),O=y("getDefaultCellComponent","tableId: Id, cellId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${ht(k(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+$e} : `)))+$e);F(i,i,e,Be(1,0)+te);const M=F(u,u,a+Ve,Ue(c,xe)+te);F(Te+i+le,Te+i+le,qt,Be(1,9)+Zt,yt(Gt(i)+Ut+l,Gt(i)+oe),Jt(i),Qt,yt(tl,`tables: ${l})`+Oe,Bt),al),F(ae+i+le,ae+i+le,le,Be(1,12),t,t,t,ll,al);const G=I(h+he,vt("tableId?: TId","rowId: Id","cellId?: CId",j+ue+N,zt),Ze(Y+h),`<TId extends ${a}, CId extends ${o}<TId>>`),z=I(p+he,vt("tableId?: TId","rowId: Id",j+ue+N,"cellComponents?: {readonly [CId in "+o+`<TId>]?: ComponentType<${G}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${o}<TId>) => ExtraProps`,el,zt),Ze(Y+p),`<TId extends ${a}>`),W=I(c+he,vt("tableId?: TId",j+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+c),`<TId extends ${a}>`),B=I("Sorted"+c+he,vt("tableId?: TId","cellId?: "+o+"<TId>","descending?: boolean","offset?: number","limit?: number",j+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+"sorted "+c),`<TId extends ${a}>`),U=I(i+he,vt(j+ue+N,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${W}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,el,zt),Ze(We(1,1)));s(1,D,U,W,B,z,G),Z(i+ol,"{"+j+", tableComponents, getTableComponentProps"+Yt+"}: "+U,[re+`(${M}(${j}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+A+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${de}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Wt,"/>;","}), separator)"],Be(1,13)+te),R(((e,l,a)=>{const[n,o,d,r,I]=_(S,e);s(null,E,n,o,d,r,I),F(l+c,c,n,Ye(e)+te,t,a);const i=F(l+b,b,$,Ue(p,Ke(e))+te,t,a),u=F(l+C,C,$,Ue(p,Ke(e),1)+te,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");F(l+p,p,d,et(e)+te,nl,yt(a,Kt));const m=F(l+g,g,I+Ve,Ue(h,Xe(e))+te,nl,yt(a,Kt));F(Te+l+c+le,Te+c+le,qt,Ye(e,9)+Zt,yt(Gt(c)+Ut+o,Gt(c)+oe),yt(a,Jt(c)),Qt,yt(tl,`table: ${o})`+Oe,Bt),al),F(ae+l+c+le,ae+c+le,le,Ye(e,12),t,a,t,ll,al),F(Te+l+p+le,Te+p+le,qt,et(e,9)+Zt,yt(nl,Gt(p)+Ut+r,Gt(p)+oe),yt(a,Kt,Jt(p)),Qt,yt(tl,`row: ${r})`+Oe,Bt),al),F("Add"+l+p+le,"Add"+p+le,qt,et(e,10)+Zt,yt(Gt(p)+Ut+r,Gt(p)+oe),yt(a,Jt(p)),Qt,"then?: ("+yt(nl+pe,"store: Store","row: "+r+")"+Oe,"then"+oe),al),F(Te+l+Ce+p+le,Te+Ce+p+le,qt,et(e,11)+Zt,yt(nl,Gt(Ce+p)+Ut+r,Gt(Ce+p)+oe),yt(a,Kt,Jt(Ce+p)),Qt,yt(tl,`partialRow: ${r})`+Oe,Bt),al),F(ae+l+p+le,ae+p+le,le,et(e,12),nl,yt(a,Kt),t,ll,al);const f=Z(l+p+ol,"{rowId, "+j+", cellComponents, getCellComponentProps"+Yt+`}: ${z}<'${e}'>`,[re+`(${m}(rowId, ${j}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+O+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${de}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,Xt,"cellId={cellId}",J,Wt,"/>;","})"+Yt+", rowId)"],et(e,13)+te);Z(l+"Sorted"+c+ol,"{cellId, descending, offset, limit, ...props}: "+B+`<'${e}'>`,P+"(props, "+u+`(cellId, descending, offset, limit, props.${j}), ${a}, ${f});`,Ye(e,13)+", sorted"+te),Z(l+c+ol,`props: ${W}<'${e}'>`,P+"(props, "+i+`(props.${j}), ${a}, ${f});`,Ye(e,13)+te),k(e,((n,o,d,r,I)=>{const $="Map"+mt(o,1);s(0,E,$),s(1,E,$);const c=F(l+I+h,h,o+(L(d)?pe:t),tt(e,n)+te,nl,yt(a,Kt,r));F(Te+l+I+h+le,Te+h+le,qt,tt(e,n,9)+Zt,yt(nl,Gt(h)+Ut+o+" | "+$,Gt(h)+oe),yt(a,Kt,r,Jt(h)),Qt,yt(tl,`cell: ${o} | ${$})`+Oe,Bt),al),F(ae+l+I+h+le,ae+h+le,le,tt(e,n,12),yt(nl,"forceDel?: boolean"),yt(a,Kt,r,"forceDel"),t,ll,al),Z(l+I+h+ol,`{rowId, ${j}, debugIds}: `+G+`<'${e}', '${n}'>`,[re+`('' + ${c}(rowId, `+j+`) ?? '', undefined, debugIds, ${r})`],tt(e,n,13)+te)}))}));const H=ht(R((e=>_(S,e)?.[4]??t))," | ");F(i+r,i+r,De,Be(1,8)+" changes",dl(d),rl()),F(u+r,u+r,De,qe(2,0,1),dl(m),rl()),F(c+r,c+r,De,qe(3,0),dl(f,`tableId: ${a} | null`),rl("tableId")),F(b+r,b+r,De,qe(4,3,1),dl(w,`tableId: ${a} | null`),rl("tableId")),F(C+r,C+r,De,qe(13,3,1),dl(T,`tableId: ${a} | null`,"cellId: "+H+pe,"descending: boolean","offset: number","limit: number"+pe),rl("tableId","cellId","descending","offset","limit")),F(p+r,p+r,De,qe(5,3),dl(v,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(g+r,g+r,De,qe(6,5,1),dl(V,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(h+r,h+r,De,qe(7,5),dl(x,`tableId: ${a} | null`,Kt+": IdOrNull",`cellId: ${H} | null`),rl("tableId",Kt,"cellId"))}if(!At(l)){const[e,l,a,n,d,$]=o;s(null,E,...o),s(1,E,N);const c=y("getDefaultValueComponent","valueId: Id",ht(P(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+$e);F(f,f,e,Be(2,0)+te);const i=F(w,w,a+Ve,Ue(m,xe)+te);F(Te+f+le,Te+f+le,qt,Be(2,9)+Zt,yt(Gt(f)+Ut+l,Gt(f)+oe),Jt(f),Qt,yt(tl,`values: ${l})`+Oe,Bt),al),F(Te+Ce+f+le,Te+Ce+f+le,qt,Be(2,11)+Zt,yt(Gt(Ce+f)+Ut+l,Gt(Ce+f)+oe),Jt(Ce+f),Qt,yt(tl,`partialValues: ${l})`+Oe,Bt),al),F(ae+f+le,ae+f+le,le,Be(2,12),t,t,t,ll,al);const u=I(m+he,vt("valueId?: VId",j+ue+N,zt),Ze("a Value"),`<VId extends ${a}>`),p=I(f+he,vt(j+ue+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${u}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,el,zt),Ze(We(2,1)));s(1,D,p,u),Z(f+ol,"{"+j+", valueComponents, getValueComponentProps"+Yt+"}: "+p,[re+`(${i}(${j}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+c+"(valueId);","return <Value",`{...${de}(getValueComponentProps, valueId)}`,"key={valueId}",J,Wt,"/>;","}), separator)"],Be(2,13)+te),P(((e,l,a,n,o)=>{const d="Map"+mt(l,1);s(0,E,d),s(1,E,d);const r=F(o+m,m,l,lt(e)+te,t,n);F(Te+o+m+le,Te+m+le,qt,lt(e,9)+Zt,yt(Gt(m)+Ut+l+" | "+d,Gt(m)+oe),yt(n,Jt(m)),Qt,yt(tl,`value: ${l} | ${d})`+Oe,Bt),al),F(ae+o+m+le,ae+m+le,le,lt(e,12),t,n,t,ll,al),Z(o+m+ol,`{${j}, debugIds}: ${u}<'${e}'>`,[re+`('' + ${r}(`+j+`) ?? '', undefined, debugIds, ${n})`],lt(e,13)+te)})),F(f+r,f+r,De,Be(2,8)+" changes",dl(n),rl()),F(w+r,w+r,De,qe(10,0,1),dl(d),rl()),F(m+r,m+r,De,qe(11,0),dl($,`valueId: ${a} | null`),rl("valueId"))}return Z(ge,`{${j}, ${j}ById, children}: `+K+" & {children: React.ReactNode}",["{",_t,"return (","<Context."+ge,"value={useMemo(",`() => [${j} ?? contextValue[0], {...contextValue[1], ...${j}ById}],`,`[${j}, ${j}ById, contextValue],`,")}>","{children}",`</Context.${ge}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[d(...v(0),...V(),...Q(0)),d(...v(1),...x(),...Q(1))]},Il=(e,l,a)=>{if(At(e)&&At(l))return[t,t,t,t];const[n,o,d,r]=Mt(e,l,a);return[n,o,...sl(e,l,a,d,r)]},$l={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},cl=Et((e=>{const t=()=>{const t=D(e.getTablesSchemaJson());return!At(t)||y(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=U();if(y(a,(t=>y(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=q(n,a,(()=>[J(o),U(),[0],0])),[r,s,[I]]=d,$=q(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),Q(s,o,$),d[3]++,r==J(o)})))))return t[l]={},B(n,(([e,,[,n],r],s)=>{t[l][s]={[o]:e,...r==x(a)?{[d]:n}:{}}})),1}))?t:{}},l=()=>{const t=D(e.getValuesSchemaJson());return At(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>Il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return V(a(e),((e,a)=>bt(l(e,{...$l,filepath:"_."+t[a]}))))};return kt({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:x(e.getValueIds()),jsonLength:Ct(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{cl as createTools};
1
+ const e=e=>typeof e,t="",l=e(t),a=e(!0),n=e(0),o="type",d="default",r="Listener",s="get",I="add",$="Ids",c="Table",i=c+"s",u=c+$,p="Row",b=p+$,C="Sorted"+p+$,h="Cell",g=h+$,m="Value",w=m+"s",f=m+$,y=(e,t)=>e.every(t),T=(e,t)=>e.sort(t),v=(e,t)=>e.forEach(t),V=(e,t)=>e.map(t),x=e=>e.length,R=e=>0==x(e),k=(e,t)=>e.filter(t),S=(e,...t)=>e.push(...t),P=e=>e.pop(),A=(e,...t)=>e.unshift(...t),E=e=>e.shift(),D=JSON.parse,O=isFinite,N=(e,t)=>e instanceof t,L=e=>null==e,j=e=>e==l||e==a,M=t=>e(t)==l,G=e=>Array.isArray(e),J=t=>{const l=e(t);return j(l)||l==n&&O(t)?l:void 0},z=(e,t)=>e?.has(t)??!1,W=e=>[...e?.values()??[]],B=(e,t)=>e?.forEach(t),F=(e,t)=>e?.delete(t),U=e=>new Map(e),_=(e,t)=>e?.get(t),Z=(e,t)=>B(e,((e,l)=>t(l,e))),H=(e,t)=>V([...e?.entries()??[]],(([e,l])=>t(l,e))),Q=(e,t,l)=>L(l)?(F(e,t),e):e?.set(t,l),q=(e,t,l)=>(z(e,t)||Q(e,t,l()),_(e,t)),K=e=>e.toUpperCase(),X=e=>e.toLowerCase(),Y="a ",ee="A function for",te=", and registers a listener so that any changes to that result will cause a re-render",le="Callback",ae="Del",ne="Deps",oe=ne+"?: React.DependencyList",de="doRollback?: DoRollback",re="actions: () => Return, "+de,se="export",Ie="Id",$e="Invalid",ce="Json",ie=X(r),ue="?: ",pe=" | undefined",be="NonNullable",Ce="Partial",he="Props",ge="Provider",me=`Registers a ${ie} that will be called`,we="Represents",fe="rowId: "+Ie,ye="Schema",Te="Set",ve=", descending?: boolean, offset?: number, limit?: number",Ve="[]",xe="the Store",Re="Transaction",ke=X(Re),Se="Execute a "+ke+" to make multiple mutations",Pe="Explicitly starts a "+ke,Ae="Explicitly finishes a "+ke,Ee="the end of the "+ke,De="void",Oe=" => "+De,Ne="WhenSet",Le=" when setting it",je=Y+"string serialization of",Me=" ",Ge="Gets a callback that can ",Je="the ",ze=" the schema for",We=(e=0,l=0)=>`the ${dt[e]}content of`+(l?Me+xe:t),Be=(e=0,l,a=0)=>at[l]+Me+We(e,1)+(a?" when setting it":t),Fe=(e,t=0)=>we+` a Row when ${t?"s":"g"}etting ${We()} the '${e}' `+c,Ue=(e,t,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in `+t,_e=(e,t)=>`Calls a function for each ${e} in `+t,Ze=e=>"The props passed to a component that renders "+e,He=e=>"A function that takes "+e,Qe=(e,t=0)=>ee+" listening to changes to "+ot[e]+" in "+ot[t],qe=(e,l,a=0)=>me+" whenever "+ot[e]+" in "+ot[l]+" change"+(a?t:"s"),Ke=e=>`the '${e}' `+c,Xe=e=>"the specified Row in "+Ke(e),Ye=(e,t=0)=>at[t]+` ${We()} `+Ke(e),et=(e,t=0)=>at[t]+` ${We()} `+Xe(e),tt=(e,t,l=0)=>at[l]+` the '${t}' Cell for `+Xe(e),lt=(e,t=0)=>at[t]+` the '${e}' Value`,at=["Gets","Checks existence of","Sets","Deletes","Sets part of",we,"Gets "+je,"Sets "+je,me+" whenever",Ge+"set",Ge+"add",Ge+"set part of",Ge+"delete","Renders","Gets "+je+ze,"Sets"+ze,"Deletes"+ze],nt=[s,"has","set","del","set","forEach",I,t],ot=[xe,i,Je+c+Me+$,Y+c,Je+p+Me+$,Y+p,Je+h+Me+$,Y+h,"invalid Cell changes",w,Je+m+Me+$,Y+m,"invalid Value changes",Je+"sorted "+p+Me+$],dt=[t,"tabular ","keyed value "],rt=e=>new Set(G(e)||L(e)?e:[e]),st=(e,t)=>e?.add(t),It=/[^A-Za-z]+/,$t=/[^A-Za-z0-9]+/,ct=/^( *)\/\*\* *(.*?) *\*\/$/gm,it=(e,t,l)=>e.substring(t,l),ut=e=>e.includes(","),pt=(e,t,l,a=1)=>{const n=`${t}${1==a?"":a}`;return z(e,n)?pt(e,t,l,a+1):(Q(e,n,l),n)},bt=e=>e.replace(ct,((e,t,l)=>{const a=77-Ct(t);return`${t}/**\n${l.replace(RegExp(`([^\\n]{1,${a}})(\\s|$)`,"g"),t+" * $1\n")}${t} */`})),Ct=e=>e.length,ht=(e,l=t)=>e.join(l),gt=e=>e.flat(1e3),mt=(e,t=0)=>ht(V(e.split($t),((e,l)=>(l>0||t?K:X)(it(e,0,1))+it(e,1)))),wt=e=>K(ht((e&&!It.test(e[0])?e:" "+e).split($t),"_")),ft=e=>`/** ${e}. */`,yt=(...e)=>ht(k(e,(e=>e)),", "),Tt=(...e)=>"{"+ht(e,"; ")+"}",vt=(...e)=>Tt(...V(e,(e=>"readonly "+e))),Vt=()=>{const e=[U(),U(),U(),U()],l=U(),a=U();return[(...e)=>ht(gt(e),"\n"),(t,l,...a)=>v(a,(a=>v([0,1],(n=>(t??n)==n?st(q(e[n],l,rt),a):0)))),(e,a,n,o=t,d=1)=>pt(l,e,[a,n,o,d]),(e,t,l)=>pt(a,e,G(l)?[`(${t}) => {`,l,"}"]:[`(${t}) => ${l}`]),(e,t)=>_(a,e)===t?e:pt(a,e,t),(l=0)=>V([...T(H(e[l],((e,t)=>`import {${ht(T(W(e)),", ")}} from '${t}';`)),((e,t)=>ut(e)!=ut(t)?ut(e)?-1:1:e>t?1:-1)),t],(e=>e.replace("{React}","React"))),()=>H(l,(([e,l,a,n],o)=>[ft(l),`${n?se+" ":t}type ${o}${a} = ${e};`,t])),()=>H(a,((e,l)=>(e=G(e)?e:[e],S(e,P(e)+";"),[`const ${l} = ${E(e)}`,e,t])))]},xt=Object,Rt=xt.keys,kt=xt.freeze,St=e=>N(e,xt)&&e.constructor==xt,Pt=(e,t)=>V(xt.entries(e),(([e,l])=>t(l,e))),At=e=>St(e)&&R(Rt(e)),Et=e=>{const t=new WeakMap;return l=>(t.has(l)||t.set(l,e(l)),t.get(l))},Dt=(e,t,l)=>[t=>Pt(e,((e,a)=>t(a,mt(a,1),l(wt(a),`'${a}'`)))),(t,a)=>Pt(e[t],((e,t)=>a(t,e[o],e[d],l(wt(t),`'${t}'`),mt(t,1)))),e=>Pt(t,((t,a)=>e(a,t[o],t[d],l(wt(a),`'${a}'`),mt(a,1))))],Ot=(e,l,a,n)=>[(n,o)=>{const d=n+": "+o,s=e(i,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`)))+"}"))),Be(1,5)),I=e(i+Ne,Tt(...l((e=>`'${e}'?: {[rowId: Id]: `+Tt(...a(e,((e,t)=>`'${e}'?: ${t}`)))+"}"))),Be(1,5,1)),$=e(c+Ie,"keyof "+s,"A "+c+" Id in "+xe),m=`<TId extends ${$}>`,w=e(c,be+`<${s}[TId]>`,"A "+c+" in "+xe,m),f=e(c+Ne,be+`<${I}[TId]>`,"A "+c+" in "+xe+Le,m),y=e(p,w+"<TId>[Id]","A "+p+" in a "+c,m),T=e(p+Ne,f+"<TId>[Id]","A "+p+" in a "+c+Le,m),v=e(h+Ie,`Extract<keyof ${y}<TId>, Id>`,"A "+h+" Id in a "+p,m),V=e(h,be+`<${s}[TId]>[Id][CId]`,"A "+h+" in a "+p,`<TId extends ${$}, CId extends ${v}<TId>>`),x=e("CellIdCellArray",`CId extends ${v}<TId> ? [cellId: CId, cell: ${V}<TId, CId>] : never`,h+" Ids and types in a "+p,`<TId extends ${$}, CId = ${v}<TId>>`,0),R=e(h+le,`(...[cellId, cell]: ${x}<TId>)`+Oe,He(Y+h+" Id, and "+h),m),k=e(p+le,"(rowId: Id, forEachCell: (cellCallback: CellCallback<TId>) "+Oe+") "+Oe,He(Y+p+" Id, and a "+h+" iterator"),m),S=e("TableIdForEachRowArray",`TId extends ${$} ? [tableId: TId, forEachRow: (rowCallback: ${k}<TId>)${Oe}] : never`,c+" Ids and callback types",`<TId = ${$}>`,0),P=e(c+le,`(...[tableId, forEachRow]: ${S})`+Oe,He(Y+c+" Id, and a "+p+" iterator"),t),A=e("TableIdRowIdCellIdArray",`TId extends ${$} ? [tableId: TId, rowId: Id, cellId: ${v}<TId>] : never`,"Ids for GetCellChange",`<TId = ${$}>`,0),E=e("GetCellChange",`(...[tableId, rowId, cellId]: ${A}) => CellChange`,ee+" returning information about any Cell's changes during a "+ke),D=e(i+r,`(${d}, getCellChange: ${E}${pe})`+Oe,Qe(1)),O=e(u+r,`(${d})`+Oe,Qe(2)),N=e(c+r,`(${d}, tableId: ${$}, getCellChange: ${E}${pe})`+Oe,Qe(3)),j=e(b+r,`(${d}, tableId: ${$})`+Oe,Qe(4,3)),M=e(C+r,"("+yt(d,"tableId: "+$,"cellId: Id"+pe,"descending: boolean","offset: number","limit: number"+pe,"sortedRowIds: Ids")+")"+Oe,Qe(13,3)),G=e(p+r,"("+yt(""+d,"tableId: "+$,fe,`getCellChange: ${E}${pe}`)+")"+Oe,Qe(5,3)),J=e(g+r,"("+yt(""+d,"tableId: "+$,fe)+")"+Oe,Qe(6,5)),z=e("CellListenerArgsArrayInner",`CId extends ${v}<TId> ? [${d}, tableId: TId, ${fe}, cellId: CId, newCell: ${V}<TId, CId> ${pe}, oldCell: ${V}<TId, CId> ${pe}, getCellChange: ${E} ${pe}] : never`,"Cell args for CellListener",`<TId extends ${$}, CId = ${v}<TId>>`,0),W=e("CellListenerArgsArrayOuter",`TId extends ${$} ? `+z+"<TId> : never","Table args for CellListener",`<TId = ${$}>`,0);return[s,I,$,w,f,y,T,v,V,R,k,P,D,O,N,j,M,G,J,e(h+r,`(...[${n}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${W})`+Oe,Qe(7,5)),e($e+h+r,`(${d}, tableId: Id, ${fe}, cellId: Id, invalidCells: any[])`+Oe,Qe(8))]},(l,a)=>{const o=l+": "+a,d=e(w,Tt(...n(((e,l,a)=>`'${e}'${L(a)?"?":t}: ${l}`))),Be(2,5)),s=e(w+Ne,Tt(...n(((e,t)=>`'${e}'?: ${t}`))),Be(2,5,1)),I=e(m+Ie,"keyof "+d,"A "+m+" Id in "+xe),$=e(m,be+`<${d}[VId]>`,"A "+m+" Id in "+xe,`<VId extends ${I}>`),c=e("ValueIdValueArray",`VId extends ${I} ? [valueId: VId, value: ${$}<VId>] : never`,m+" Ids and types in "+xe,`<VId = ${I}>`,0),i=e(m+le,`(...[valueId, value]: ${c})`+Oe,He(Y+m+" Id, and "+m)),u=e("GetValueChange",`(valueId: ${I}) => ValueChange`,ee+" returning information about any Value's changes during a "+ke),p=e(w+r,`(${o}, getValueChange: ${u}${pe})`+Oe,Qe(9)),b=e(f+r,`(${o})`+Oe,Qe(10)),C=e("ValueListenerArgsArray",`VId extends ${I} ? [${o}, valueId: VId, newValue: ${$}<VId> ${pe}, oldValue: ${$}<VId> ${pe}, getValueChange: ${u} ${pe}] : never`,"Value args for ValueListener",`<VId = ${I}>`,0);return[d,s,I,$,i,p,b,e(m+r,`(...[${l}, valueId, newValue, oldValue, getValueChange]: `+C+")"+Oe,Qe(11)),e($e+m+r,`(${o}, valueId: Id, invalidValues: any[])`+Oe,Qe(12))]},(t,l)=>e(Re+r,`(${t}: ${l}, cellsTouched: boolean, valuesTouched: boolean)`+Oe,ee+" listening to the completion of a "+ke)],Nt=(e,l=t,a=t)=>`store.${e}(${l})`+(a?" as "+a:t),Lt=(e,l=t)=>`fluent(() => ${Nt(e,l)})`,jt=(e,l=t,a=t)=>`store.${e}(${l?l+", ":t}proxy(listener)${a?", "+a:t})`,Mt=(e,l,n)=>{const[s,y,T,V,x,R,k,P]=Vt(),[E,D,O]=Dt(e,l,x),[N,j,G]=Ot(T,E,D,O),J=U(),z=(e=0)=>H(J,(([l,a,n,o,d],r)=>{const s=e?[r+`: ${d}(${l}): ${a} => ${n},`]:[r+d+`(${l}): ${a};`];return e||A(s,ft(o)),S(s,t),s})),B=(e,l,a,n,o,d=t)=>pt(J,e,[l,a,n,o,d]),F=(e,l,a,n,o,d=t,r=t,s=t)=>B(nt[e]+l+(4==e?Ce:t)+a,d,n,(n==X?Lt:Nt)(nt[e]+(4==e?Ce:t)+a,r,e?void 0:n),o,s),q=(e,l,a,n=t,o=t,d=1,s=t)=>B(I+e+r,(n?n+", ":t)+ie+": "+l+(d?", mutator?: boolean":t),Ie,jt(I+e+r,o,d?"mutator":t),a,s),K=`./${mt(n)}.d`,X=mt(n,1),Y=mt(X),ee=[],te=U();let ae=[],ne=[];if(y(1,K,X,`create${X} as create${X}Decl`),!At(e)){y(0,"tinybase","CellChange"),y(null,"tinybase",$);const[e,l,n,r,s,I,m,w,f,V,R,k,P,A,O,j,G,J,z,B,Z]=N(Y,X),H=U();E(((e,t)=>{const l=`<'${e}'>`,a=[T(t+c,r+l,we+` the '${e}' `+c),T(t+c+Ne,s+l,we+` the '${e}' `+c+Le),T(t+p,I+l,Fe(e)),T(t+p+Ne,m+l,Fe(e,1)),T(t+h+Ie,w+l,`A Cell Id for the '${e}' `+c),T(t+h+le,V+l,He(`a Cell Id and value from a Row in the '${e}' `+c)),T(t+p+le,R+l,He(`a Row Id from the '${e}' Table, and a Cell iterator`))];Q(H,e,a),y(1,K,...a)})),y(1,K,e,l,n,w,k,P,A,O,j,G,J,z,B,Z),ae=[e,l,n,w,P,A,O,j,G,J,z,B,H],v([[e],[a],[X,"tables: "+l,"tables"],[X]],(([e,l,a],n)=>F(n,t,i,e,Be(1,n),l,a))),F(0,t,u,n+Ve,Ue(c,xe)),F(5,t,c,De,_e(c,xe),"tableCallback: "+k,"tableCallback as any"),E(((e,l,n)=>{const[o,d,r,s,I,i,u]=_(H,e);v([[o],[a],[X,"table: "+d,", table"],[X]],(([a,o,d=t],r)=>F(r,l,c,a,Ye(e,r),o,n+d))),F(0,l,b,$,Ue(p,Ke(e)),t,n),F(0,l,C,$,Ue(p,Ke(e),1),"cellId?: "+I+ve,n+", cellId, descending, offset, limit"),F(5,l,p,De,_e(p,Ke(e)),"rowCallback: "+u,n+", rowCallback as any"),v([[r],[a],[X,", row: "+s,", row"],[X],[X,", partialRow: "+s,", partialRow"]],(([a,o=t,d=t],r)=>F(r,l,p,a,et(e,r),fe+o,n+", rowId"+d))),F(6,l,p,Ie+pe,"Add a new Row to "+Ke(e),"row: "+s+", reuseIds?: boolean",n+", row, reuseIds"),F(0,l,g,I+Ve,Ue(h,Xe(e)),fe,n+", rowId"),F(5,l,h,De,_e(h,Xe(e)),fe+", cellCallback: "+i,n+", rowId, cellCallback as any"),D(e,((o,d,r,s,I)=>{const $="Map"+mt(d,1);Q(te,d,$);const c=d+(L(r)?pe:t);v([[c],[a],[X,`, cell: ${d} | `+$,", cell as any"],[X]],(([a,d=t,r=t],$)=>F($,l+I,h,a,tt(e,o,$),fe+d,n+", rowId, "+s+r)))}))})),F(0,t,i+ce,ce,Be(1,6)),F(2,t,i+ce,X,Be(1,7),"tablesJson: "+ce,"tables"+ce),q(i,P,Be(1,8)+" changes"),q(u,A,qe(2,0,1)),q(c,O,qe(3,0),`tableId: ${n} | null`,"tableId"),q(b,j,qe(4,3,1),`tableId: ${n} | null`,"tableId"),q(C,G,qe(13,3,1),yt("tableId: TId",`cellId: ${w}<TId>`+pe,"descending: boolean","offset: number","limit: number"+pe),yt("tableId","cellId","descending","offset","limit"),1,"<TId extends TableId>"),q(p,J,qe(5,3),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(g,z,qe(6,5,1),`tableId: ${n} | null, rowId: IdOrNull`,"tableId, rowId"),q(h,B,qe(7,5),`tableId: ${n} | null, rowId: IdOrNull, cellId: ${ht(E((e=>_(H,e)?.[4]??t))," | ")} | null`,"tableId, rowId, cellId"),q($e+h,Z,me+" whenever an invalid Cell change was attempted","tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull","tableId, rowId, cellId"),y(1,K,...W(te)),S(ee,".set"+i+ye+"({",gt(E(((e,l,a)=>[`[${a}]: {`,...D(e,((e,l,a,n)=>`[${n}]: {[${x(wt(o),`'${o}'`)}]: ${x(wt(l),`'${l}'`)}${L(a)?t:`, [${x(wt(d),`'${d}'`)}]: `+(M(a)?x(wt(a),`'${a}'`):a)}},`)),"},"]))),"})")}if(!At(l)){const[e,l,n,r,s,I,$,c,i]=j(Y,X);y(1,K,e,l,n,s,I,$,c,i),ne=[e,l,n,I,$,c],v([[e],[a],[X,"values: "+l,"values"],[X],[X,"partialValues: "+l,"partialValues"]],(([e,l,a],n)=>F(n,t,w,e,Be(2,n),l,a))),F(0,t,f,n+Ve,Ue(m,xe)),F(5,t,m,"void",_e(m,xe),"valueCallback: "+s,"valueCallback as any"),O(((e,l,n,o,d)=>{const r="Map"+mt(l,1);Q(te,l,r),v([[l],[a],[X,`value: ${l} | `+r,", value as any"],[X]],(([l,a,n=t],r)=>F(r,d,m,l,lt(e,r),a,o+n)))})),F(0,t,w+ce,ce,Be(2,6)),F(2,t,w+ce,X,Be(2,7),"valuesJson: "+ce,"values"+ce),q(w,I,Be(2,8)+" changes"),q(f,$,qe(10,0,1)),q(m,c,qe(11,0),`valueId: ${n} | null`,"valueId"),q($e+m,i,me+" whenever an invalid Value change was attempted","valueId: IdOrNull","valueId"),y(1,K,...W(te)),y(0,"tinybase","ValueChange"),S(ee,".set"+w+ye+"({",O(((e,l,a,n)=>[`[${n}]: {[${x(wt(o),`'${o}'`)}]: ${x(wt(l),`'${l}'`)}${L(a)?t:`, [${x(wt(d),`'${d}'`)}]: `+(M(a)?x(wt(a),`'${a}'`):a)}},`])),"})")}Z(te,((e,t)=>T(t,`(cell: ${e}${pe}) => `+e,`Takes a ${e} Cell value and returns another`))),y(null,"tinybase","DoRollback",Ie,"IdOrNull",ce,"Store"),F(0,t,ce,ce,Be(0,6)),F(2,t,ce,X,Be(0,7),"tablesAndValuesJson: "+ce,"tablesAndValuesJson"),F(7,t,ke,"Return",Se,re,"actions, doRollback","<Return>"),F(7,t,"start"+Re,X,Pe),F(7,t,"finish"+Re,X,Ae,de,"doRollback");const oe=G(Y,X);return q("WillFinish"+Re,oe,me+" just before "+Ee,t,t,0),q("DidFinish"+Re,oe,me+" just after "+Ee,t,t,0),F(7,t,"call"+r,X,"Manually provoke a listener to be called","listenerId: Id","listenerId"),F(3,t,r,X,"Remove a listener that was previously added to "+xe,"listenerId: Id","listenerId"),B("getStore",t,"Store","store",at[0]+" the underlying Store object"),y(1,"tinybase","createStore"),y(1,K,X,`create${X} as create${X}Decl`,oe),x("store",["createStore()",...ee]),V("fluent","actions: () => Store",["actions();",`return ${Y};`]),V("proxy","listener: any",`(_: Store, ...params: any[]) => listener(${Y}, ...params)`),x(Y,["{",...z(1),"}"]),[s(...R(0),...k(),se+" interface "+X+" {",...z(0),"}",t,ft(`Creates a ${X} object`),se+" function create"+X+"(): "+X+";"),s(...R(1),se+" const create"+X+": typeof create"+X+"Decl = () => {",...P(),`return Object.freeze(${Y});`,"};"),ae,ne]},Gt=e=>s+e,Jt=e=>yt(Gt(e),Gt(e)+ne),zt="debugIds?: boolean",Wt="debugIds={debugIds}",Bt="then"+oe,Ft="Parameter",Ut=": (parameter: "+Ft+", store: Store) => ",_t="const contextValue = useContext(Context);",Zt=", based on a parameter",Ht=": ",Qt="<"+Ft+",>",qt=Ft+"ized"+le+"<"+Ft+">",Kt="rowId",Xt="rowId={rowId}",Yt=", separator, debugIds",el="separator?: ReactElement | string",tl="then?: (store: Store",ll=yt(tl+")"+Oe,Bt),al="then, then"+ne,nl=Kt+Ht+Ie,ol="View",dl=(e,...t)=>yt(...t,ie+": "+e,ie+oe,"mutator?: boolean"),rl=(...e)=>yt(...e,ie,ie+ne,"mutator"),sl=(e,l,a,n,o)=>{const[d,s,I,y,T,v,V,x]=Vt(),[R,k,P]=Dt(e,l,T),E=`./${mt(a)}.d`,D=`./${mt(a)}-ui-react.d`,O="tinybase/ui-react",N=mt(a,1),j=mt(N),M=N+"Or"+N+Ie,G=j+"Or"+N+Ie,J=j+`={${j}}`,z=U(),W=(e,l,a,n,o,d=t)=>(s(1,D,e+" as "+e+"Decl"),pt(z,e,[l,a,n,o,d])),B=(e,l,a,n,o,d=t)=>W("use"+e,l,a,n,o,d),F=(e,l,a,n,o=t,d=t,r=t,I=t,$=t)=>(s(1,O,`use${l} as use${l}Core`),B(e,yt(o,X,I),a,ne+`(${G}, use${l}Core, [`+(d||t)+($?"], ["+$:t)+"]);",n,r)),Z=(e,t,l,a)=>W(e,t,1,l,a),Q=(e=0)=>H(z,(([l,a,n,o,d],r)=>{const s=e?[se+` const ${r}: typeof ${r}Decl = ${d}(${l}): ${1==a?"any":a} =>`,n]:[se+` function ${r}${d}(${l}): ${1==a?"ComponentReturnType":a};`];return e||A(s,ft(o)),S(s,t),s}));s(null,"tinybase",Ie,"Store",le,Ft+"ized"+le),s(0,O,"ComponentReturnType"),s(null,O,"ExtraProps"),s(0,E,N);const q=I(M,N+" | "+Ie,`Used when you need to refer to a ${N} in a React hook or component`),K=I(ge+he,vt(j+ue+N,j+`ById?: {[${j}Id: Id]: ${N}}`),`Used with the ${ge} component, so that a `+N+" can be passed into the context of an application");s(0,"react","ReactElement","ComponentType"),s(1,"react","React"),s(1,D,q,K);const X=G+ue+q;T("{createContext, useContext, useMemo}","React"),T("Context",`createContext<[${N}?, {[${j}Id: Id]: ${N}}?]>([])`),B("Create"+N,`create: () => ${N}, create`+oe,N,"\n// eslint-disable-next-line react-hooks/exhaustive-deps\nuseMemo(create, createDeps)",`Create a ${N} within a React application with convenient memoization`);const ee=B(N,"id?: Id",N+pe,["{",_t,"return id == null ? contextValue[0] : contextValue[1]?.[id];","}"],`Get a reference to a ${N} from within a ${ge} component context`),ne=y("useHook",G+`: ${q} | undefined, hook: (...params: any[]) => any, preParams: any[], postParams: any[] = []`,[`const ${j} = ${ee}(${G} as Id);`,`return hook(...preParams, ((${G} == null || typeof ${G} == 'string')`,`? ${j} : ${G})?.getStore(), ...postParams)`]),de=y("getProps","getProps: ((id: any) => ExtraProps) | undefined, id: Id","(getProps == null) ? ({} as ExtraProps) : getProps(id)"),re=y("wrap",yt("children: any","separator?: any","encloseWithId?: boolean","id?: Id"),["const separated = separator==null || !Array.isArray(children)"," ? children"," : children.map((child, c) => (c > 0 ? [separator, child] : child));","return encloseWithId ? [id, ':{', separated, '}'] : separated;"]),$e=T("NullComponent","() => null");if(!At(e)){const[e,l,a,o,d,m,w,f,T,v,V,x,S]=n;s(null,E,e,l,a,d,m,w,f,T,v,V,x),s(0,E,o),s(1,E,N),s(null,"tinybase",$,"IdOrNull");const P=y("tableView",`{${j}, rowComponent, getRowComponentProps`+Yt+"}: any, rowIds: Ids, tableId: Id, defaultRowComponent: React.ComponentType<any>",["const Row = rowComponent ?? defaultRowComponent;",`return ${re}(rowIds.map((rowId) => (`,"<Row","{..."+de+"(getRowComponentProps, rowId)}","key={rowId}","tableId={tableId}",Xt,J,Wt,"/>","))",Yt,", tableId,",");"]),A=y("getDefaultTableComponent","tableId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${t}TableView : `)))+$e),O=y("getDefaultCellComponent","tableId: Id, cellId: Id",ht(R(((e,t,l)=>`tableId == ${l} ? ${ht(k(e,((e,l,a,n,o)=>`cellId == ${n} ? `+t+o+"CellView : ")))+$e} : `)))+$e);F(i,i,e,Be(1,0)+te);const M=F(u,u,a+Ve,Ue(c,xe)+te);F(Te+i+le,Te+i+le,qt,Be(1,9)+Zt,yt(Gt(i)+Ut+l,Gt(i)+oe),Jt(i),Qt,yt(tl,`tables: ${l})`+Oe,Bt),al),F(ae+i+le,ae+i+le,le,Be(1,12),t,t,t,ll,al);const G=I(h+he,vt("tableId?: TId","rowId: Id","cellId?: CId",j+ue+N,zt),Ze(Y+h),`<TId extends ${a}, CId extends ${o}<TId>>`),z=I(p+he,vt("tableId?: TId","rowId: Id",j+ue+N,"cellComponents?: {readonly [CId in "+o+`<TId>]?: ComponentType<${G}<TId, CId>>;}`,`getCellComponentProps?: (cellId: ${o}<TId>) => ExtraProps`,el,zt),Ze(Y+p),`<TId extends ${a}>`),W=I(c+he,vt("tableId?: TId",j+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+c),`<TId extends ${a}>`),B=I("Sorted"+c+he,vt("tableId?: TId","cellId?: "+o+"<TId>","descending?: boolean","offset?: number","limit?: number",j+ue+N,`rowComponent?: ComponentType<${z}<TId>>`,"getRowComponentProps?: (rowId: Id) => ExtraProps",el,zt),Ze(Y+"sorted "+c),`<TId extends ${a}>`),U=I(i+he,vt(j+ue+N,"tableComponents?: {readonly [TId in "+a+`]?: ComponentType<${W}<TId>>;}`,`getTableComponentProps?: (tableId: ${a}) => ExtraProps`,el,zt),Ze(We(1,1)));s(1,D,U,W,B,z,G),Z(i+ol,"{"+j+", tableComponents, getTableComponentProps"+Yt+"}: "+U,[re+`(${M}(${j}).map((tableId) => {`,"const Table = (tableComponents?.[tableId] ?? "+A+"(tableId)) as React.ComponentType<TableProps<typeof tableId>>;","return <Table",`{...${de}(getTableComponentProps, tableId)}`,"tableId={tableId}","key={tableId}",J,Wt,"/>;","}), separator)"],Be(1,13)+te),R(((e,l,a)=>{const[n,o,d,r,I]=_(S,e);s(null,E,n,o,d,r,I),F(l+c,c,n,Ye(e)+te,t,a);const i=F(l+b,b,$,Ue(p,Ke(e))+te,t,a),u=F(l+C,C,$,Ue(p,Ke(e),1)+te,"cellId?: "+I+", descending?: boolean, offset?: number, limit?: number",a+", cellId, descending, offset, limit");F(l+p,p,d,et(e)+te,nl,yt(a,Kt));const m=F(l+g,g,I+Ve,Ue(h,Xe(e))+te,nl,yt(a,Kt));F(Te+l+c+le,Te+c+le,qt,Ye(e,9)+Zt,yt(Gt(c)+Ut+o,Gt(c)+oe),yt(a,Jt(c)),Qt,yt(tl,`table: ${o})`+Oe,Bt),al),F(ae+l+c+le,ae+c+le,le,Ye(e,12),t,a,t,ll,al),F(Te+l+p+le,Te+p+le,qt,et(e,9)+Zt,yt(nl,Gt(p)+Ut+r,Gt(p)+oe),yt(a,Kt,Jt(p)),Qt,yt(tl,`row: ${r})`+Oe,Bt),al),F("Add"+l+p+le,"Add"+p+le,qt,et(e,10)+Zt,yt(Gt(p)+Ut+r,Gt(p)+oe),yt(a,Jt(p)),Qt,"then?: ("+yt(nl+pe,"store: Store","row: "+r+")"+Oe,"then"+oe)+", reuseRowIds?: boolean",al+", reuseRowIds"),F(Te+l+Ce+p+le,Te+Ce+p+le,qt,et(e,11)+Zt,yt(nl,Gt(Ce+p)+Ut+r,Gt(Ce+p)+oe),yt(a,Kt,Jt(Ce+p)),Qt,yt(tl,`partialRow: ${r})`+Oe,Bt),al),F(ae+l+p+le,ae+p+le,le,et(e,12),nl,yt(a,Kt),t,ll,al);const w=Z(l+p+ol,"{rowId, "+j+", cellComponents, getCellComponentProps"+Yt+`}: ${z}<'${e}'>`,[re+`(${m}(rowId, ${j}).map((cellId) => {`,"const Cell = (cellComponents?.[cellId] ?? "+O+`(${a}, cellId)) as React.ComponentType<CellProps<typeof `+a+", typeof cellId>>;","return <Cell",`{...${de}(getCellComponentProps, cellId)} `,"key={cellId}",`tableId={${a}}`,Xt,"cellId={cellId}",J,Wt,"/>;","})"+Yt+", rowId)"],et(e,13)+te);Z(l+"Sorted"+c+ol,"{cellId, descending, offset, limit, ...props}: "+B+`<'${e}'>`,P+"(props, "+u+`(cellId, descending, offset, limit, props.${j}), ${a}, ${w});`,Ye(e,13)+", sorted"+te),Z(l+c+ol,`props: ${W}<'${e}'>`,P+"(props, "+i+`(props.${j}), ${a}, ${w});`,Ye(e,13)+te),k(e,((n,o,d,r,I)=>{const $="Map"+mt(o,1);s(0,E,$),s(1,E,$);const c=F(l+I+h,h,o+(L(d)?pe:t),tt(e,n)+te,nl,yt(a,Kt,r));F(Te+l+I+h+le,Te+h+le,qt,tt(e,n,9)+Zt,yt(nl,Gt(h)+Ut+o+" | "+$,Gt(h)+oe),yt(a,Kt,r,Jt(h)),Qt,yt(tl,`cell: ${o} | ${$})`+Oe,Bt),al),F(ae+l+I+h+le,ae+h+le,le,tt(e,n,12),yt(nl,"forceDel?: boolean"),yt(a,Kt,r,"forceDel"),t,ll,al),Z(l+I+h+ol,`{rowId, ${j}, debugIds}: `+G+`<'${e}', '${n}'>`,[re+`('' + ${c}(rowId, `+j+`) ?? '', undefined, debugIds, ${r})`],tt(e,n,13)+te)}))}));const H=ht(R((e=>_(S,e)?.[4]??t))," | ");F(i+r,i+r,De,Be(1,8)+" changes",dl(d),rl()),F(u+r,u+r,De,qe(2,0,1),dl(m),rl()),F(c+r,c+r,De,qe(3,0),dl(w,`tableId: ${a} | null`),rl("tableId")),F(b+r,b+r,De,qe(4,3,1),dl(f,`tableId: ${a} | null`),rl("tableId")),F(C+r,C+r,De,qe(13,3,1),dl(T,`tableId: ${a} | null`,"cellId: "+H+pe,"descending: boolean","offset: number","limit: number"+pe),rl("tableId","cellId","descending","offset","limit")),F(p+r,p+r,De,qe(5,3),dl(v,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(g+r,g+r,De,qe(6,5,1),dl(V,`tableId: ${a} | null`,Kt+": IdOrNull"),rl("tableId",Kt)),F(h+r,h+r,De,qe(7,5),dl(x,`tableId: ${a} | null`,Kt+": IdOrNull",`cellId: ${H} | null`),rl("tableId",Kt,"cellId"))}if(!At(l)){const[e,l,a,n,d,$]=o;s(null,E,...o),s(1,E,N);const c=y("getDefaultValueComponent","valueId: Id",ht(P(((e,t,l,a,n)=>`valueId == ${a} ? `+n+"ValueView : ")))+$e);F(w,w,e,Be(2,0)+te);const i=F(f,f,a+Ve,Ue(m,xe)+te);F(Te+w+le,Te+w+le,qt,Be(2,9)+Zt,yt(Gt(w)+Ut+l,Gt(w)+oe),Jt(w),Qt,yt(tl,`values: ${l})`+Oe,Bt),al),F(Te+Ce+w+le,Te+Ce+w+le,qt,Be(2,11)+Zt,yt(Gt(Ce+w)+Ut+l,Gt(Ce+w)+oe),Jt(Ce+w),Qt,yt(tl,`partialValues: ${l})`+Oe,Bt),al),F(ae+w+le,ae+w+le,le,Be(2,12),t,t,t,ll,al);const u=I(m+he,vt("valueId?: VId",j+ue+N,zt),Ze("a Value"),`<VId extends ${a}>`),p=I(w+he,vt(j+ue+N,"valueComponents?: {readonly [VId in "+a+`]?: ComponentType<${u}<VId>>;}`,`getValueComponentProps?: (valueId: ${a}) => ExtraProps`,el,zt),Ze(We(2,1)));s(1,D,p,u),Z(w+ol,"{"+j+", valueComponents, getValueComponentProps"+Yt+"}: "+p,[re+`(${i}(${j}).map((valueId) => {`,"const Value = valueComponents?.[valueId] ?? "+c+"(valueId);","return <Value",`{...${de}(getValueComponentProps, valueId)}`,"key={valueId}",J,Wt,"/>;","}), separator)"],Be(2,13)+te),P(((e,l,a,n,o)=>{const d="Map"+mt(l,1);s(0,E,d),s(1,E,d);const r=F(o+m,m,l,lt(e)+te,t,n);F(Te+o+m+le,Te+m+le,qt,lt(e,9)+Zt,yt(Gt(m)+Ut+l+" | "+d,Gt(m)+oe),yt(n,Jt(m)),Qt,yt(tl,`value: ${l} | ${d})`+Oe,Bt),al),F(ae+o+m+le,ae+m+le,le,lt(e,12),t,n,t,ll,al),Z(o+m+ol,`{${j}, debugIds}: ${u}<'${e}'>`,[re+`('' + ${r}(`+j+`) ?? '', undefined, debugIds, ${n})`],lt(e,13)+te)})),F(w+r,w+r,De,Be(2,8)+" changes",dl(n),rl()),F(f+r,f+r,De,qe(10,0,1),dl(d),rl()),F(m+r,m+r,De,qe(11,0),dl($,`valueId: ${a} | null`),rl("valueId"))}return Z(ge,`{${j}, ${j}ById, children}: `+K+" & {children: React.ReactNode}",["{",_t,"return (","<Context."+ge,"value={useMemo(",`() => [${j} ?? contextValue[0], {...contextValue[1], ...${j}ById}],`,`[${j}, ${j}ById, contextValue],`,")}>","{children}",`</Context.${ge}>`,");","}"],"Wraps part of an application in a context that provides default objects to be used by hooks and components within"),[d(...v(0),...V(),...Q(0)),d(...v(1),...x(),...Q(1))]},Il=(e,l,a)=>{if(At(e)&&At(l))return[t,t,t,t];const[n,o,d,r]=Mt(e,l,a);return[n,o,...sl(e,l,a,d,r)]},$l={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},cl=Et((e=>{const t=()=>{const t=D(e.getTablesSchemaJson());return!At(t)||y(e.getTableIds(),(l=>{const a=e.getRowIds(l),n=U();if(y(a,(t=>y(e.getCellIds(l,t),(a=>{const o=e.getCell(l,t,a),d=q(n,a,(()=>[J(o),U(),[0],0])),[r,s,[I]]=d,$=q(s,o,(()=>0))+1;return $>I&&(d[2]=[$,o]),Q(s,o,$),d[3]++,r==J(o)})))))return t[l]={},B(n,(([e,,[,n],r],s)=>{t[l][s]={[o]:e,...r==x(a)?{[d]:n}:{}}})),1}))?t:{}},l=()=>{const t=D(e.getValuesSchemaJson());return At(t)&&e.forEachValue(((e,l)=>{t[e]={[o]:J(l)}})),t},a=e=>Il(t(),l(),e),n=async e=>{const t=["d.ts","ts","d.ts","tsx"];let l;try{l=(await import("prettier")).format}catch(e){l=e=>e}return V(a(e),((e,a)=>bt(l(e,{...$l,filepath:"_."+t[a]}))))};return kt({getStoreStats:t=>{let l=0,a=0,n=0;const o={};return e.forEachTable(((e,d)=>{l++;let r=0,s=0;const I={};d(((e,l)=>{r++;let a=0;l((()=>a++)),s+=a,t&&(I[e]={rowCells:a})})),a+=r,n+=s,t&&(o[e]={tableRows:r,tableCells:s,rows:I})})),{totalTables:l,totalRows:a,totalCells:n,totalValues:x(e.getValueIds()),jsonLength:Ct(e.getJson()),...t?{detail:{tables:o}}:{}}},getStoreTablesSchema:t,getStoreValuesSchema:l,getStoreApi:a,getPrettyStoreApi:n,getStore:()=>e})}));export{cl as createTools};
package/lib/tools.js.gz CHANGED
Binary file
@@ -0,0 +1,85 @@
1
+ /**
2
+ * The persister-browser module of the TinyBase project lets you save and load
3
+ * Store data to and from browser storage.
4
+ *
5
+ * Two entry points are provided, each of which returns a new Persister object
6
+ * that can load and save a Store:
7
+ *
8
+ * - The createSessionPersister function returns a Persister that uses the
9
+ * browser's session storage.
10
+ * - The createLocalPersister function returns a Persister that uses the
11
+ * browser's local storage.
12
+ *
13
+ * @see Persisting Data guide
14
+ * @packageDocumentation
15
+ * @module persister-browser
16
+ */
17
+
18
+ import {Persister} from './persisters';
19
+ import {Store} from './store';
20
+
21
+ /**
22
+ * The createSessionPersister function creates a Persister object that can
23
+ * persist the Store to the browser's session storage.
24
+ *
25
+ * As well as providing a reference to the Store to persist, you must provide a
26
+ * `storageName` parameter which is unique to your application. This is the key
27
+ * that the browser uses to identify the storage location.
28
+ *
29
+ * @param store The Store to persist.
30
+ * @param storageName The unique key to identify the storage location.
31
+ * @returns A reference to the new Persister object.
32
+ * @example
33
+ * This example creates a Persister object and persists the Store to the
34
+ * browser's session storage.
35
+ *
36
+ * ```js
37
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
38
+ * const persister = createSessionPersister(store, 'pets');
39
+ *
40
+ * await persister.save();
41
+ * console.log(sessionStorage.getItem('pets'));
42
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
43
+ *
44
+ * persister.destroy();
45
+ * sessionStorage.clear();
46
+ * ```
47
+ * @category Creation
48
+ */
49
+ export function createSessionPersister(
50
+ store: Store,
51
+ storageName: string,
52
+ ): Persister;
53
+
54
+ /**
55
+ * The createLocalPersister function creates a Persister object that can
56
+ * persist the Store to the browser's local storage.
57
+ *
58
+ * As well as providing a reference to the Store to persist, you must provide a
59
+ * `storageName` parameter which is unique to your application. This is the key
60
+ * that the browser uses to identify the storage location.
61
+ *
62
+ * @param store The Store to persist.
63
+ * @param storageName The unique key to identify the storage location.
64
+ * @returns A reference to the new Persister object.
65
+ * @example
66
+ * This example creates a Persister object and persists the Store to the
67
+ * browser's local storage.
68
+ *
69
+ * ```js
70
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
71
+ * const persister = createLocalPersister(store, 'pets');
72
+ *
73
+ * await persister.save();
74
+ * console.log(localStorage.getItem('pets'));
75
+ * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
76
+ *
77
+ * persister.destroy();
78
+ * localStorage.clear();
79
+ * ```
80
+ * @category Creation
81
+ */
82
+ export function createLocalPersister(
83
+ store: Store,
84
+ storageName: string,
85
+ ): Persister;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The persister-file module of the TinyBase project lets you save and load
3
+ * Store data to and from a local file system (in an appropriate environment).
4
+ *
5
+ * @see Persisting Data guide
6
+ * @packageDocumentation
7
+ * @module persister-file
8
+ */
9
+
10
+ import {Persister} from './persisters';
11
+ import {Store} from './store';
12
+
13
+ /**
14
+ * The createFilePersister function creates a Persister object that can persist
15
+ * the Store to a local file (in an appropriate environment).
16
+ *
17
+ * As well as providing a reference to the Store to persist, you must provide
18
+ * `filePath` parameter which identifies the file to persist it to.
19
+ *
20
+ * @param store The Store to persist.
21
+ * @param filePath The location of the local file to persist the Store to.
22
+ * @returns A reference to the new Persister object.
23
+ * @example
24
+ * This example creates a Persister object and persists the Store to a local
25
+ * file.
26
+ *
27
+ * ```js yolo
28
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
29
+ * const persister = createFilePersister(store, '/app/persisted.json');
30
+ *
31
+ * await persister.save();
32
+ * // Store JSON will be saved to the file.
33
+ *
34
+ * await persister.load();
35
+ * // Store JSON will be loaded from the file.
36
+ *
37
+ * persister.destroy();
38
+ * ```
39
+ * @category Creation
40
+ */
41
+ export function createFilePersister(store: Store, filePath: string): Persister;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The persister-remote module of the TinyBase project lets you save and load
3
+ * Store data to and from a remote server.
4
+ *
5
+ * @see Persisting Data guide
6
+ * @packageDocumentation
7
+ * @module persister-remote
8
+ */
9
+
10
+ import {Persister} from './persisters';
11
+ import {Store} from './store';
12
+
13
+ /**
14
+ * The createRemotePersister function creates a Persister object that can
15
+ * persist the Store to a remote server.
16
+ *
17
+ * As well as providing a reference to the Store to persist, you must provide
18
+ * `loadUrl` and `saveUrl` parameters. These identify the endpoints of the
19
+ * server that support the `GET` method (to fetch the Store JSON to load) and
20
+ * the `POST` method (to send the Store JSON to save) respectively.
21
+ *
22
+ * For when you choose to enable automatic loading for the Persister (with the
23
+ * startAutoLoad method), it will poll the loadUrl for changes. The
24
+ * `autoLoadIntervalSeconds` method is used to indicate how often to do this.
25
+ *
26
+ * @param store The Store to persist.
27
+ * @param loadUrl The endpoint that supports a `GET` method to load JSON.
28
+ * @param saveUrl The endpoint that supports a `POST` method to save JSON.
29
+ * @param autoLoadIntervalSeconds How often to poll the `loadUrl` when
30
+ * automatically loading changes from the server.
31
+ * @returns A reference to the new Persister object.
32
+ * @example
33
+ * This example creates a Persister object and persists the Store to a remote
34
+ * server.
35
+ *
36
+ * ```js yolo
37
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
38
+ * const persister = createRemotePersister(
39
+ * store,
40
+ * 'https://example.com/load',
41
+ * 'https://example.com/save',
42
+ * 5,
43
+ * );
44
+ *
45
+ * await persister.save();
46
+ * // Store JSON will be sent to server in a POST request.
47
+ *
48
+ * await persister.load();
49
+ * // Store JSON will be fetched from server with a GET request.
50
+ *
51
+ * persister.destroy();
52
+ * ```
53
+ * @category Creation
54
+ */
55
+ export function createRemotePersister(
56
+ store: Store,
57
+ loadUrl: string,
58
+ saveUrl: string,
59
+ autoLoadIntervalSeconds: number,
60
+ ): Persister;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The persister-yjs module of the TinyBase project provides a way to save and
3
+ * load Store data, to and from a Yjs document.
4
+ *
5
+ * A single entry point, the createYjsPersister function, is provided, which
6
+ * returns a new Persister object that can load and save a Store.:
7
+ *
8
+ * @packageDocumentation
9
+ * @module persister-yjs
10
+ */
11
+
12
+ import * as Y from 'yjs';
13
+ import {Persister} from './persisters.d';
14
+ import {Store} from './store.d';
15
+
16
+ /**
17
+ * The createYjsPersister function creates a Persister object that can persist
18
+ * the Store to a Yjs document.
19
+ *
20
+ * As well as providing a reference to the Store to persist, you must provide
21
+ * the Yjs document to persist it to.
22
+ *
23
+ * @param store The Store to persist.
24
+ * @param yDoc The Yjs document to persist the Store to.
25
+ * @returns A reference to the new Persister object.
26
+ * @example
27
+ * This example creates a Persister object and persists the Store to a Yjs
28
+ * document.
29
+ *
30
+ * ```js yolo
31
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
32
+ * const persister = createYjsPersister(store, yDoc);
33
+ *
34
+ * await persister.save();
35
+ * // Store JSON will be saved to the document.
36
+ *
37
+ * await persister.load();
38
+ * // Store JSON will be loaded from the document.
39
+ *
40
+ * persister.destroy();
41
+ * ```
42
+ * @category Creation
43
+ */
44
+ export function createYjsPersister(store: Store, yDoc: Y.Doc): Persister;