tinybase 4.0.0 → 4.0.2

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 (188) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/metrics.cjs +1 -1
  9. package/lib/cjs/metrics.cjs.gz +0 -0
  10. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  11. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-file.cjs +1 -1
  15. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  17. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  19. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  21. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  22. package/lib/cjs/relationships.cjs +1 -1
  23. package/lib/cjs/relationships.cjs.gz +0 -0
  24. package/lib/cjs/store.cjs +1 -1
  25. package/lib/cjs/store.cjs.gz +0 -0
  26. package/lib/cjs/tinybase.cjs +1 -1
  27. package/lib/cjs/tinybase.cjs.gz +0 -0
  28. package/lib/cjs/tools.cjs +1 -1
  29. package/lib/cjs/tools.cjs.gz +0 -0
  30. package/lib/cjs/ui-react.cjs +1 -1
  31. package/lib/cjs/ui-react.cjs.gz +0 -0
  32. package/lib/cjs-es6/checkpoints.cjs +1 -1
  33. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  34. package/lib/cjs-es6/indexes.cjs +1 -1
  35. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  36. package/lib/cjs-es6/metrics.cjs +1 -1
  37. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  38. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  39. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  40. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  41. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  42. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  43. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  44. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  45. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  46. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  47. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  48. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  49. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  50. package/lib/cjs-es6/relationships.cjs +1 -1
  51. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  52. package/lib/cjs-es6/store.cjs +1 -1
  53. package/lib/cjs-es6/store.cjs.gz +0 -0
  54. package/lib/cjs-es6/tinybase.cjs +1 -1
  55. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  56. package/lib/cjs-es6/tools.cjs +1 -1
  57. package/lib/cjs-es6/tools.cjs.gz +0 -0
  58. package/lib/cjs-es6/ui-react.cjs +1 -1
  59. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  60. package/lib/debug/checkpoints.js +6 -6
  61. package/lib/debug/indexes.js +7 -7
  62. package/lib/debug/metrics.js +12 -12
  63. package/lib/debug/persisters/persister-browser.js +10 -19
  64. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +183 -132
  65. package/lib/debug/persisters/persister-file.js +10 -19
  66. package/lib/debug/persisters/persister-remote.js +10 -19
  67. package/lib/debug/persisters/persister-sqlite-wasm.js +178 -131
  68. package/lib/debug/persisters/persister-sqlite3.js +178 -132
  69. package/lib/debug/persisters.js +4 -4
  70. package/lib/debug/relationships.js +7 -7
  71. package/lib/debug/store.js +16 -24
  72. package/lib/debug/tinybase.js +20 -28
  73. package/lib/debug/tools.js +14 -13
  74. package/lib/debug/ui-react.js +4 -4
  75. package/lib/es6/checkpoints.js +1 -1
  76. package/lib/es6/checkpoints.js.gz +0 -0
  77. package/lib/es6/indexes.js +1 -1
  78. package/lib/es6/indexes.js.gz +0 -0
  79. package/lib/es6/metrics.js +1 -1
  80. package/lib/es6/metrics.js.gz +0 -0
  81. package/lib/es6/persisters/persister-browser.js +1 -1
  82. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  83. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  84. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  85. package/lib/es6/persisters/persister-file.js +1 -1
  86. package/lib/es6/persisters/persister-file.js.gz +0 -0
  87. package/lib/es6/persisters/persister-remote.js +1 -1
  88. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  89. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  90. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  91. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  92. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  93. package/lib/es6/relationships.js +1 -1
  94. package/lib/es6/relationships.js.gz +0 -0
  95. package/lib/es6/store.js +1 -1
  96. package/lib/es6/store.js.gz +0 -0
  97. package/lib/es6/tinybase.js +1 -1
  98. package/lib/es6/tinybase.js.gz +0 -0
  99. package/lib/es6/tools.js +1 -1
  100. package/lib/es6/tools.js.gz +0 -0
  101. package/lib/es6/ui-react.js +1 -1
  102. package/lib/es6/ui-react.js.gz +0 -0
  103. package/lib/indexes.js +1 -1
  104. package/lib/indexes.js.gz +0 -0
  105. package/lib/metrics.js +1 -1
  106. package/lib/metrics.js.gz +0 -0
  107. package/lib/persisters/persister-browser.js +1 -1
  108. package/lib/persisters/persister-browser.js.gz +0 -0
  109. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  110. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  111. package/lib/persisters/persister-file.js +1 -1
  112. package/lib/persisters/persister-file.js.gz +0 -0
  113. package/lib/persisters/persister-remote.js +1 -1
  114. package/lib/persisters/persister-remote.js.gz +0 -0
  115. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  116. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  117. package/lib/persisters/persister-sqlite3.js +1 -1
  118. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  119. package/lib/relationships.js +1 -1
  120. package/lib/relationships.js.gz +0 -0
  121. package/lib/store.js +1 -1
  122. package/lib/store.js.gz +0 -0
  123. package/lib/tinybase.js +1 -1
  124. package/lib/tinybase.js.gz +0 -0
  125. package/lib/tools.js +1 -1
  126. package/lib/tools.js.gz +0 -0
  127. package/lib/types/persisters.d.ts +7 -0
  128. package/lib/types/with-schemas/persisters.d.ts +7 -0
  129. package/lib/ui-react.js +1 -1
  130. package/lib/ui-react.js.gz +0 -0
  131. package/lib/umd/checkpoints.js +1 -1
  132. package/lib/umd/checkpoints.js.gz +0 -0
  133. package/lib/umd/indexes.js +1 -1
  134. package/lib/umd/indexes.js.gz +0 -0
  135. package/lib/umd/metrics.js +1 -1
  136. package/lib/umd/metrics.js.gz +0 -0
  137. package/lib/umd/persisters/persister-browser.js +1 -1
  138. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  139. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  140. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  141. package/lib/umd/persisters/persister-file.js +1 -1
  142. package/lib/umd/persisters/persister-file.js.gz +0 -0
  143. package/lib/umd/persisters/persister-remote.js +1 -1
  144. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  145. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  146. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  147. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  148. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  149. package/lib/umd/relationships.js +1 -1
  150. package/lib/umd/relationships.js.gz +0 -0
  151. package/lib/umd/store.js +1 -1
  152. package/lib/umd/store.js.gz +0 -0
  153. package/lib/umd/tinybase.js +1 -1
  154. package/lib/umd/tinybase.js.gz +0 -0
  155. package/lib/umd/tools.js +1 -1
  156. package/lib/umd/tools.js.gz +0 -0
  157. package/lib/umd/ui-react.js +1 -1
  158. package/lib/umd/ui-react.js.gz +0 -0
  159. package/lib/umd-es6/checkpoints.js +1 -1
  160. package/lib/umd-es6/checkpoints.js.gz +0 -0
  161. package/lib/umd-es6/indexes.js +1 -1
  162. package/lib/umd-es6/indexes.js.gz +0 -0
  163. package/lib/umd-es6/metrics.js +1 -1
  164. package/lib/umd-es6/metrics.js.gz +0 -0
  165. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  166. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  167. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  168. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  169. package/lib/umd-es6/persisters/persister-file.js +1 -1
  170. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  171. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  172. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  173. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  174. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  175. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  176. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  177. package/lib/umd-es6/relationships.js +1 -1
  178. package/lib/umd-es6/relationships.js.gz +0 -0
  179. package/lib/umd-es6/store.js +1 -1
  180. package/lib/umd-es6/store.js.gz +0 -0
  181. package/lib/umd-es6/tinybase.js +1 -1
  182. package/lib/umd-es6/tinybase.js.gz +0 -0
  183. package/lib/umd-es6/tools.js +1 -1
  184. package/lib/umd-es6/tools.js.gz +0 -0
  185. package/lib/umd-es6/ui-react.js +1 -1
  186. package/lib/umd-es6/ui-react.js.gz +0 -0
  187. package/package.json +33 -33
  188. package/readme.md +5 -5
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=(e,t)=>e.includes(t),n=(e,t)=>e.forEach(t),s=e=>e.length,o=e=>0==s(e),r=(e,...t)=>e.push(...t),l=e=>e.pop(),i=e=>e.shift(),c=e=>null==e,d=(e,t,n)=>c(e)?n?.():t(e),a=Object.freeze,u=(e,t)=>e?.has(t)??!1,h=e=>c(e)||0==(e=>e.size)(e),p=(e,t)=>e?.forEach(t),f=(e,t)=>e?.delete(t),C=e=>new Map(e),g=(e,t)=>e?.get(t),k=(e,t,n)=>c(n)?(f(e,t),e):e?.set(t,n),v=(e,t,n)=>(u(e,t)||k(e,t,n()),g(e,t)),y=(e,t,n,o,r=0)=>d((n?v:g)(e,t[r],r>s(t)-2?n:C),(l=>{if(r>s(t)-2)return o?.(l)&&k(e,t[r]),l;const i=y(l,t,n,o,r+1);return h(l)&&k(e,t[r]),i})),L=e=>new Set(Array.isArray(e)||c(e)?e:[e]),w=/^\d+$/,b=(e=>{const b=new WeakMap;return e=>(b.has(e)||b.set(e,(e=>{let b,S,T,x=100,z=C(),E=C(),V=1;const j=C(),m=C(),[A,B,I]=(e=>{let t;const[o,l]=(()=>{const e=[];let t=0;return[n=>(n?i(e):null)??""+t++,t=>{w.test(t)&&s(e)<1e3&&r(e,t)}]})(),a=C();return[(e,n,s,r=[],l=(()=>[]))=>{t??=_;const i=o(1);var c,d;return k(a,i,[e,n,s,r,l]),c=y(n,s??[""],L),d=i,c?.add(d),i},(e,o,...l)=>n(((e,t=[""])=>{const o=[],l=(e,i)=>i==s(t)?r(o,e):null===t[i]?p(e,(e=>l(e,i+1))):n([t[i],null],(t=>l(g(e,t),i+1)));return l(e,0),o})(e,o),(e=>p(e,(e=>g(a,e)[0](t,...o??[],...l))))),e=>d(g(a,e),(([,t,n])=>(y(t,n??[""],void 0,(t=>(f(t,e),h(t)?1:0))),k(a,e),l(e),n))),e=>d(g(a,e),(([e,,o=[],r,l])=>{const i=(...d)=>{const a=s(d);a==s(o)?e(t,...d,...l(d)):c(o[a])?n(r[a]?.(...d)??[],(e=>i(...d,e))):i(...d,o[a])};i()}))]})(),M=C(),F=C(),O=[],W=[],$=(t,n)=>{V=0,e.transaction((()=>{const[s,o]=g(M,n);p(s,((n,s)=>p(n,((n,o)=>p(n,((n,r)=>((e,t,n,s,o)=>c(o)?e.delCell(t,n,s,!0):e.setCell(t,n,s,o))(e,s,o,r,n[t]))))))),p(o,((n,s)=>((e,t,n)=>c(n)?e.delValue(t):e.setValue(t,n))(e,s,n[t])))})),V=1},q=e=>{k(M,e),k(F,e),B(m,[e])},D=(e,t)=>n(((e,t)=>e.splice(0,t))(e,t??s(e)),q),G=()=>D(O,s(O)-x),H=()=>d(b,(()=>{r(O,b),G(),D(W),b=void 0,T=1})),J=()=>{b=l(O),T=1},K=e.addCellListener(null,null,null,((e,t,n,s,o,r)=>{if(V){H();const e=v(z,t,C),l=v(e,n,C),i=v(l,s,(()=>[r,void 0]));i[1]=o,i[0]===o&&h(k(l,s))&&h(k(e,n))&&h(k(z,t))&&J(),U()}})),N=e.addValueListener(null,((e,t,n,s)=>{if(V){H();const e=v(E,t,(()=>[s,void 0]));e[1]=n,e[0]===n&&h(k(E,t))&&J(),U()}})),P=(e="")=>(c(b)&&(b=""+S++,k(M,b,[z,E]),Y(b,e),z=C(),E=C(),T=1),b),Q=()=>{o(O)||(((e,...t)=>{e.unshift(...t)})(W,P()),$(0,b),b=l(O),T=1)},R=()=>{o(W)||(r(O,b),b=i(W),$(1,b),T=1)},U=()=>{T&&(B(j),T=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&g(F,e)!==t&&(k(F,e,t),B(m,[e])),_),Z=e=>u(M,e),_={setSize:e=>(x=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>e,getCheckpointIds:()=>[[...O],b,[...W]],forEachCheckpoint:e=>{return t=e,p(F,((e,n)=>t(n,e)));var t},hasCheckpoint:Z,getCheckpoint:e=>g(F,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:e=>{const n=t(O,e)?Q:t(W,e)?R:null;for(;!c(n)&&e!=b;)n();return U(),_},addCheckpointIdsListener:e=>A(e,j),addCheckpointListener:(e,t)=>A(t,m,[e]),delListener:e=>(I(e),_),clear:()=>(D(O),D(W),c(b)||q(b),b=void 0,S=0,X(),_),destroy:()=>{e.delListener(K),e.delListener(N)},getListenerStats:()=>({})};return a(_.clear())})(e)),b.get(e))})();e.createCheckpoints=b},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,n=(e,n,s)=>t(e)?s?.():n(e),s=(e,t)=>e.includes(t),o=(e,t)=>e.forEach(t),r=e=>e.length,l=e=>0==r(e),i=(e,...t)=>e.push(...t),c=e=>e.pop(),d=e=>e.shift(),a=Object.freeze,u=(e,t)=>e?.has(t)??!1,h=e=>t(e)||0==(e=>e.size)(e),p=(e,t)=>e?.forEach(t),f=(e,t)=>e?.delete(t),C=e=>new Map(e),g=(e,t)=>e?.get(t),k=(e,n,s)=>t(s)?(f(e,n),e):e?.set(n,s),v=(e,t,n)=>(u(e,t)||k(e,t,n()),g(e,t)),y=(e,t,s,o,l=0)=>n((s?v:g)(e,t[l],l>r(t)-2?s:C),(n=>{if(l>r(t)-2)return o?.(n)&&k(e,t[l]),n;const i=y(n,t,s,o,l+1);return h(n)&&k(e,t[l]),i})),L=e=>new Set(Array.isArray(e)||t(e)?e:[e]),w=/^\d+$/,b=(e=>{const b=new WeakMap;return e=>(b.has(e)||b.set(e,(e=>{let b,S,T,x=100,z=C(),E=C(),V=1;const j=C(),m=C(),[A,B,I]=(e=>{let s;const[l,c]=(()=>{const e=[];let t=0;return[n=>(n?d(e):null)??""+t++,t=>{w.test(t)&&r(e)<1e3&&i(e,t)}]})(),a=C();return[(e,t,n,o=[],r=(()=>[]))=>{s??=_;const i=l(1);var c,d;return k(a,i,[e,t,n,o,r]),c=y(t,n??[""],L),d=i,c?.add(d),i},(e,t,...n)=>o(((e,t=[""])=>{const n=[],s=(e,l)=>l==r(t)?i(n,e):null===t[l]?p(e,(e=>s(e,l+1))):o([t[l],null],(t=>s(g(e,t),l+1)));return s(e,0),n})(e,t),(e=>p(e,(e=>g(a,e)[0](s,...t??[],...n))))),e=>n(g(a,e),(([,t,n])=>(y(t,n??[""],void 0,(t=>(f(t,e),h(t)?1:0))),k(a,e),c(e),n))),e=>n(g(a,e),(([e,,n=[],l,i])=>{const c=(...d)=>{const a=r(d);a==r(n)?e(s,...d,...i(d)):t(n[a])?o(l[a]?.(...d)??[],(e=>c(...d,e))):c(...d,n[a])};c()}))]})(),M=C(),F=C(),O=[],W=[],$=(n,s)=>{V=0,e.transaction((()=>{const[o,r]=g(M,s);p(o,((s,o)=>p(s,((s,r)=>p(s,((s,l)=>((e,n,s,o,r)=>t(r)?e.delCell(n,s,o,!0):e.setCell(n,s,o,r))(e,o,r,l,s[n]))))))),p(r,((s,o)=>((e,n,s)=>t(s)?e.delValue(n):e.setValue(n,s))(e,o,s[n])))})),V=1},q=e=>{k(M,e),k(F,e),B(m,[e])},D=(e,t)=>o(((e,t)=>e.splice(0,t))(e,t??r(e)),q),G=()=>D(O,r(O)-x),H=()=>n(b,(()=>{i(O,b),G(),D(W),b=void 0,T=1})),J=()=>{b=c(O),T=1},K=e.addCellListener(null,null,null,((e,t,n,s,o,r)=>{if(V){H();const e=v(z,t,C),l=v(e,n,C),i=v(l,s,(()=>[r,void 0]));i[1]=o,i[0]===o&&h(k(l,s))&&h(k(e,n))&&h(k(z,t))&&J(),U()}})),N=e.addValueListener(null,((e,t,n,s)=>{if(V){H();const e=v(E,t,(()=>[s,void 0]));e[1]=n,e[0]===n&&h(k(E,t))&&J(),U()}})),P=(e="")=>(t(b)&&(b=""+S++,k(M,b,[z,E]),Y(b,e),z=C(),E=C(),T=1),b),Q=()=>{l(O)||(((e,...t)=>{e.unshift(...t)})(W,P()),$(0,b),b=c(O),T=1)},R=()=>{l(W)||(i(O,b),b=d(W),$(1,b),T=1)},U=()=>{T&&(B(j),T=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&g(F,e)!==t&&(k(F,e,t),B(m,[e])),_),Z=e=>u(M,e),_={setSize:e=>(x=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>e,getCheckpointIds:()=>[[...O],b,[...W]],forEachCheckpoint:e=>{return t=e,p(F,((e,n)=>t(n,e)));var t},hasCheckpoint:Z,getCheckpoint:e=>g(F,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:e=>{const n=s(O,e)?Q:s(W,e)?R:null;for(;!t(n)&&e!=b;)n();return U(),_},addCheckpointIdsListener:e=>A(e,j),addCheckpointListener:(e,t)=>A(t,m,[e]),delListener:e=>(I(e),_),clear:()=>(D(O),D(W),t(b)||q(b),b=void 0,S=0,X(),_),destroy:()=>{e.delListener(K),e.delListener(N)},getListenerStats:()=>({})};return a(_.clear())})(e)),b.get(e))})();e.createCheckpoints=b},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseCheckpoints={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),r=e=>n+e,o=(e,t)=>e.every(t),d=(e,t)=>o(e,((n,s)=>0==s||t(e[s-1],n)<=0)),i=(e,t)=>e.sort(t),l=(e,t)=>e.forEach(t),c=e=>e.length,a=(e,...t)=>e.push(...t),f=e=>null==e,u=(e,t,n)=>f(e)?n?.():t(e),h=e=>Array.isArray(e),I=Object.freeze,g=(e,t)=>e?.has(t)??!1,p=e=>f(e)||0==(e=>e.size)(e),y=e=>[...e?.values()??[]],x=e=>e.clear(),v=(e,t)=>e?.forEach(t),S=(e,t)=>e?.delete(t),w=e=>new Map(e),L=e=>[...e?.keys()??[]],b=(e,t)=>e?.get(t),T=(e,t)=>v(e,((e,n)=>t(n,e))),E=(e,t,n)=>f(n)?(S(e,t),e):e?.set(t,n),R=(e,t,n)=>(g(e,t)||E(e,t,n()),b(e,t)),m=(e,t,n,s,r=0)=>u((n?R:b)(e,t[r],r>c(t)-2?n:w),(o=>{if(r>c(t)-2)return s?.(o)&&E(e,t[r]),o;const d=m(o,t,n,s,r+1);return p(o)&&E(e,t[r]),d})),j=e=>new Set(h(e)||f(e)?e:[e]),k=(e,t)=>e?.add(t),z=(e,r)=>t(e)==s?t=>t(e):e??(()=>r??n),A=(e,t)=>e<t?-1:1,C=/^\d+$/,D=(e=>{const t=new WeakMap;return e=>(t.has(e)||t.set(e,(e=>{const t=w(),s=w(),[D,M,B,O,W,$,q,,F,G,H]=((e,t,n)=>{const s=e.hasRow,r=w(),d=w(),i=w(),a=w(),I=w(),m=(t,n,...s)=>{const r=R(I,t,j);return l(s,(t=>k(r,t)&&n&&e.callListener(t))),s},z=(t,...n)=>u(b(I,t),(s=>{l(0==c(n)?y(s):n,(t=>{e.delListener(t),S(s,t)})),p(s)&&E(I,t)})),A=(e,n)=>{E(r,e,n),g(d,e)||(E(d,e,t()),E(i,e,w()),E(a,e,w()))},C=e=>{E(r,e),E(d,e),E(i,e),E(a,e),z(e)};return[()=>e,()=>L(r),e=>T(d,e),e=>g(d,e),e=>b(r,e),e=>b(d,e),(e,t)=>E(d,e,t),A,(t,r,d,u,I)=>{A(t,r);const p=w(),y=w(),S=b(i,t),L=b(a,t),R=t=>{const d=n=>e.getCell(r,t,n),i=b(S,t),l=s(r,t)?n(u(d,t)):void 0;var a,g;if(i===l||h(i)&&h(l)&&(g=l,c(a=i)===c(g)&&o(a,((e,t)=>g[t]===e)))||E(p,t,[i,l]),!f(I)){const e=b(L,t),n=s(r,t)?I(d,t):void 0;e!=n&&E(y,t,n)}},j=e=>{d((()=>{v(p,(([,e],t)=>E(S,t,e))),v(y,((e,t)=>E(L,t,e)))}),p,y,S,L,e),x(p),x(y)};T(S,R),e.hasTable(r)&&l(e.getRowIds(r),(e=>{g(S,e)||R(e)})),j(!0),z(t),m(t,0,e.addRowListener(r,null,((e,t,n)=>R(n))),e.addTableListener(r,(()=>j())))},C,()=>T(I,C),m,z]})(e,w,(e=>{return f(e)?n:h(e)?(t=r,e.map(t)):r(e);var t})),[J,K,N]=(e=>{let t;const[s,r]=(()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??n+t++,t=>{C.test(t)&&c(e)<1e3&&a(e,t)}]})(),o=w();return[(e,r,d,i=[],l=(()=>[]))=>{t??=Q;const c=s(1);return E(o,c,[e,r,d,i,l]),k(m(r,d??[n],j),c),c},(e,s,...r)=>l(((e,t=[n])=>{const s=[],r=(e,n)=>n==c(t)?a(s,e):null===t[n]?v(e,(e=>r(e,n+1))):l([t[n],null],(t=>r(b(e,t),n+1)));return r(e,0),s})(e,s),(e=>v(e,(e=>b(o,e)[0](t,...s??[],...r))))),e=>u(b(o,e),(([,t,s])=>(m(t,s??[n],void 0,(t=>(S(t,e),p(t)?1:0))),E(o,e),r(e),s))),e=>u(b(o,e),(([e,,n=[],s,r])=>{const o=(...d)=>{const i=c(d);i==c(n)?e(t,...d,...r(d)):f(n[i])?l(s[i]?.(...d)??[],(e=>o(...d,e))):o(...d,n[i])};o()}))]})(),P=(t,n,s)=>{const r=W(t);v(s,((t,s)=>n(s,(n=>v(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},Q={setIndexDefinition:(e,n,r,o,l,c=A)=>{const a=f(l)?void 0:([e],[t])=>l(e,t);return F(e,n,((n,r,l,h,I,y)=>{let x=0;const L=j(),R=j(),m=$(e);if(v(r,(([e,t],n)=>{const s=j(e),r=j(t);v(s,(e=>S(r,e)?S(s,e):0)),v(s,(e=>{k(L,e),u(b(m,e),(t=>{S(t,n),p(t)&&(E(m,e),x=1)}))})),v(r,(e=>{k(L,e),g(m,e)||(E(m,e,j()),x=1),k(b(m,e),n),f(o)||k(R,e)}))})),n(),p(I)||(y?T(m,(e=>k(R,e))):T(l,(e=>u(b(h,e),(e=>k(R,e))))),v(R,(e=>{const t=(t,n)=>c(b(I,t),b(I,n),e),n=[...b(m,e)];d(n,t)||(E(m,e,j(i(n,t))),k(L,e))}))),(x||y)&&!f(a)){const t=[...m];d(t,a)||(q(e,w(i(t,a))),x=1)}x&&K(t,[e]),v(L,(t=>K(s,[e,t])))}),z(r),u(o,z)),Q},delIndexDefinition:e=>(G(e),Q),getStore:D,getIndexIds:M,forEachIndex:e=>B(((t,n)=>e(t,(e=>P(t,e,n))))),forEachSlice:(e,t)=>P(e,t,$(e)),hasIndex:O,hasSlice:(e,t)=>g($(e),t),getTableId:W,getSliceIds:e=>L($(e)),getSliceRowIds:(e,t)=>y(b($(e),t)),addSliceIdsListener:(e,n)=>J(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>J(n,s,[e,t]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return I(Q)})(e)),t.get(e))})();e.createIndexes=D},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),r=e=>n+e,o=e=>null==e,d=(e,t,n)=>o(e)?n?.():t(e),i=e=>Array.isArray(e),l=(e,t)=>e.every(t),c=(e,t)=>l(e,((n,s)=>0==s||t(e[s-1],n)<=0)),a=(e,t)=>e.sort(t),f=(e,t)=>e.forEach(t),u=e=>e.length,h=(e,...t)=>e.push(...t),I=Object.freeze,g=(e,t)=>e?.has(t)??!1,p=e=>o(e)||0==(e=>e.size)(e),y=e=>[...e?.values()??[]],x=e=>e.clear(),v=(e,t)=>e?.forEach(t),S=(e,t)=>e?.delete(t),w=e=>new Map(e),L=e=>[...e?.keys()??[]],b=(e,t)=>e?.get(t),T=(e,t)=>v(e,((e,n)=>t(n,e))),E=(e,t,n)=>o(n)?(S(e,t),e):e?.set(t,n),R=(e,t,n)=>(g(e,t)||E(e,t,n()),b(e,t)),m=(e,t,n,s,r=0)=>d((n?R:b)(e,t[r],r>u(t)-2?n:w),(o=>{if(r>u(t)-2)return s?.(o)&&E(e,t[r]),o;const d=m(o,t,n,s,r+1);return p(o)&&E(e,t[r]),d})),j=e=>new Set(i(e)||o(e)?e:[e]),k=(e,t)=>e?.add(t),z=(e,r)=>t(e)==s?t=>t(e):e??(()=>r??n),A=(e,t)=>e<t?-1:1,C=/^\d+$/,D=(e=>{const t=new WeakMap;return e=>(t.has(e)||t.set(e,(e=>{const t=w(),s=w(),[D,M,B,O,W,$,q,,F,G,H]=((e,t,n)=>{const s=e.hasRow,r=w(),c=w(),a=w(),h=w(),I=w(),m=(t,n,...s)=>{const r=R(I,t,j);return f(s,(t=>k(r,t)&&n&&e.callListener(t))),s},z=(t,...n)=>d(b(I,t),(s=>{f(0==u(n)?y(s):n,(t=>{e.delListener(t),S(s,t)})),p(s)&&E(I,t)})),A=(e,n)=>{E(r,e,n),g(c,e)||(E(c,e,t()),E(a,e,w()),E(h,e,w()))},C=e=>{E(r,e),E(c,e),E(a,e),E(h,e),z(e)};return[()=>e,()=>L(r),e=>T(c,e),e=>g(c,e),e=>b(r,e),e=>b(c,e),(e,t)=>E(c,e,t),A,(t,r,d,c,I)=>{A(t,r);const p=w(),y=w(),S=b(a,t),L=b(h,t),R=t=>{const d=n=>e.getCell(r,t,n),a=b(S,t),f=s(r,t)?n(c(d,t)):void 0;var h,g;if(a===f||i(a)&&i(f)&&(g=f,u(h=a)===u(g)&&l(h,((e,t)=>g[t]===e)))||E(p,t,[a,f]),!o(I)){const e=b(L,t),n=s(r,t)?I(d,t):void 0;e!=n&&E(y,t,n)}},j=e=>{d((()=>{v(p,(([,e],t)=>E(S,t,e))),v(y,((e,t)=>E(L,t,e)))}),p,y,S,L,e),x(p),x(y)};T(S,R),e.hasTable(r)&&f(e.getRowIds(r),(e=>{g(S,e)||R(e)})),j(!0),z(t),m(t,0,e.addRowListener(r,null,((e,t,n)=>R(n))),e.addTableListener(r,(()=>j())))},C,()=>T(I,C),m,z]})(e,w,(e=>{return o(e)?n:i(e)?(t=r,e.map(t)):r(e);var t})),[J,K,N]=(e=>{let t;const[s,r]=(()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??n+t++,t=>{C.test(t)&&u(e)<1e3&&h(e,t)}]})(),i=w();return[(e,r,o,d=[],l=(()=>[]))=>{t??=Q;const c=s(1);return E(i,c,[e,r,o,d,l]),k(m(r,o??[n],j),c),c},(e,s,...r)=>f(((e,t=[n])=>{const s=[],r=(e,n)=>n==u(t)?h(s,e):null===t[n]?v(e,(e=>r(e,n+1))):f([t[n],null],(t=>r(b(e,t),n+1)));return r(e,0),s})(e,s),(e=>v(e,(e=>b(i,e)[0](t,...s??[],...r))))),e=>d(b(i,e),(([,t,s])=>(m(t,s??[n],void 0,(t=>(S(t,e),p(t)?1:0))),E(i,e),r(e),s))),e=>d(b(i,e),(([e,,n=[],s,r])=>{const d=(...i)=>{const l=u(i);l==u(n)?e(t,...i,...r(i)):o(n[l])?f(s[l]?.(...i)??[],(e=>d(...i,e))):d(...i,n[l])};d()}))]})(),P=(t,n,s)=>{const r=W(t);v(s,((t,s)=>n(s,(n=>v(t,(t=>n(t,(n=>e.forEachCell(r,t,n)))))))))},Q={setIndexDefinition:(e,n,r,i,l,f=A)=>{const u=o(l)?void 0:([e],[t])=>l(e,t);return F(e,n,((n,r,l,h,I,y)=>{let x=0;const L=j(),R=j(),m=$(e);if(v(r,(([e,t],n)=>{const s=j(e),r=j(t);v(s,(e=>S(r,e)?S(s,e):0)),v(s,(e=>{k(L,e),d(b(m,e),(t=>{S(t,n),p(t)&&(E(m,e),x=1)}))})),v(r,(e=>{k(L,e),g(m,e)||(E(m,e,j()),x=1),k(b(m,e),n),o(i)||k(R,e)}))})),n(),p(I)||(y?T(m,(e=>k(R,e))):T(l,(e=>d(b(h,e),(e=>k(R,e))))),v(R,(e=>{const t=(t,n)=>f(b(I,t),b(I,n),e),n=[...b(m,e)];c(n,t)||(E(m,e,j(a(n,t))),k(L,e))}))),(x||y)&&!o(u)){const t=[...m];c(t,u)||(q(e,w(a(t,u))),x=1)}x&&K(t,[e]),v(L,(t=>K(s,[e,t])))}),z(r),d(i,z)),Q},delIndexDefinition:e=>(G(e),Q),getStore:D,getIndexIds:M,forEachIndex:e=>B(((t,n)=>e(t,(e=>P(t,e,n))))),forEachSlice:(e,t)=>P(e,t,$(e)),hasIndex:O,hasSlice:(e,t)=>g($(e),t),getTableId:W,getSliceIds:e=>L($(e)),getSliceRowIds:(e,t)=>y(b($(e),t)),addSliceIdsListener:(e,n)=>J(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>J(n,s,[e,t]),delListener:e=>(N(e),Q),destroy:H,getListenerStats:()=>({})};return I(Q)})(e)),t.get(e))})();e.createIndexes=D},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseIndexes={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",r=t(n),s=t(t),i=(e,t)=>e.forEach(t),o=e=>c(e,((e,t)=>e+t),0),a=e=>e.length,c=(e,t,n)=>e.reduce(t,n),d=(e,...t)=>e.push(...t),l=Math.max,u=Math.min,f=isFinite,h=e=>null==e,v=(e,t,n)=>h(e)?n?.():t(e),g=e=>Array.isArray(e),M=()=>{},p=Object.freeze,y=e=>e.size,m=(e,t)=>e?.has(t)??!1,b=e=>h(e)||0==y(e),L=e=>[...e?.values()??[]],w=e=>e.clear(),T=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),E=e=>new Map(e),I=(e,t)=>e?.get(t),R=(e,t)=>T(e,((e,n)=>t(n,e))),S=(e,t,n)=>h(n)?(x(e,t),e):e?.set(t,n),j=(e,t,n)=>(m(e,t)||S(e,t,n()),I(e,t)),k=(e,t,n,r,s=0)=>v((n?j:I)(e,t[s],s>a(t)-2?n:E),(i=>{if(s>a(t)-2)return r?.(i)&&S(e,t[s]),i;const o=k(i,t,n,r,s+1);return b(i)&&S(e,t[s]),o})),z=E([["avg",[(e,t)=>o(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,r)=>e+(t-n)/r]],["max",[e=>l(...e),(e,t)=>l(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:l(t,e)]],["min",[e=>u(...e),(e,t)=>u(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:u(t,e)]],["sum",[e=>o(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),A=e=>new Set(g(e)||h(e)?e:[e]),D=(e,t)=>e?.add(t),N=/^\d+$/,B=(e=>{const o=new WeakMap;return e=>(o.has(e)||o.set(e,(e=>{const o=E(),[c,l,u,B,C,F,O,,W,$,q]=((e,t,r)=>{const s=e.hasRow,o=E(),c=E(),d=E(),l=E(),u=E(),f=(t,n,...r)=>{const s=j(u,t,A);return i(r,(t=>D(s,t)&&n&&e.callListener(t))),r},M=(t,...n)=>v(I(u,t),(r=>{i(0==a(n)?L(r):n,(t=>{e.delListener(t),x(r,t)})),b(r)&&S(u,t)})),p=(e,n)=>{S(o,e,n),m(c,e)||(S(c,e,t()),S(d,e,E()),S(l,e,E()))},y=e=>{S(o,e),S(c,e),S(d,e),S(l,e),M(e)};return[()=>e,()=>{return e=o,[...e?.keys()??[]];var e},e=>R(c,e),e=>m(c,e),e=>I(o,e),e=>I(c,e),(e,t)=>S(c,e,t),p,(t,r,o,c,u)=>{p(t,r);const v=E(),y=E(),b=I(d,t),L=I(l,t),x=t=>{const i=n=>e.getCell(r,t,n),o=I(b,t),d=s(r,t)?(l=c(i,t),isNaN(l)||h(l)||!0===l||!1===l||l===n?void 0:1*l):void 0;var l,f,M,p;if(o===d||g(o)&&g(d)&&(M=d,a(f=o)===a(M)&&(p=(e,t)=>M[t]===e,f.every(p)))||S(v,t,[o,d]),!h(u)){const e=I(L,t),n=s(r,t)?u(i,t):void 0;e!=n&&S(y,t,n)}},j=e=>{o((()=>{T(v,(([,e],t)=>S(b,t,e))),T(y,((e,t)=>S(L,t,e)))}),v,y,b,L,e),w(v),w(y)};R(b,x),e.hasTable(r)&&i(e.getRowIds(r),(e=>{m(b,e)||x(e)})),j(!0),M(t),f(t,0,e.addRowListener(r,null,((e,t,n)=>x(n))),e.addTableListener(r,(()=>j())))},y,()=>R(u,y),f,M]})(e,M),[G,H,J]=(e=>{let t;const[r,s]=(()=>{const e=[];let t=0;return[r=>(r?e.shift():null)??n+t++,t=>{N.test(t)&&a(e)<1e3&&d(e,t)}]})(),o=E();return[(e,s,i,a=[],c=(()=>[]))=>{t??=K;const d=r(1);return S(o,d,[e,s,i,a,c]),D(k(s,i??[n],A),d),d},(e,r,...s)=>i(((e,t=[n])=>{const r=[],s=(e,n)=>n==a(t)?d(r,e):null===t[n]?T(e,(e=>s(e,n+1))):i([t[n],null],(t=>s(I(e,t),n+1)));return s(e,0),r})(e,r),(e=>T(e,(e=>I(o,e)[0](t,...r??[],...s))))),e=>v(I(o,e),(([,t,r])=>(k(t,r??[n],void 0,(t=>(x(t,e),b(t)?1:0))),S(o,e),s(e),r))),e=>v(I(o,e),(([e,,n=[],r,s])=>{const o=(...c)=>{const d=a(c);d==a(n)?e(t,...c,...s(c)):h(n[d])?i(r[d]?.(...c)??[],(e=>o(...c,e))):o(...c,n[d])};o()}))]})(),K={setMetricDefinition:(e,n,i,a,c,d,l)=>{const u=t(i)==s?[i,c,d,l]:I(z,i)??I(z,"sum");return W(e,n,((t,n,r,s,i,a)=>{const c=F(e),d=y(s);a||=h(c),t();let l=((e,t,n,r,s,i=!1)=>{if(b(n))return;const[o,a,c,d]=s;return i||=h(e),T(r,(([n,r])=>{i||(e=h(n)?a?.(e,r,t++):h(r)?c?.(e,n,t--):d?.(e,r,n,t),i||=h(e))})),i?o(L(n),y(n)):e})(c,d,s,n,u,a);f(l)||(l=void 0),l!=c&&(O(e,l),H(o,[e],l,c))}),(1,t(v=a)==r?e=>e(v):v??(()=>1))),K;var v},delMetricDefinition:e=>($(e),K),getStore:c,getMetricIds:l,forEachMetric:u,hasMetric:B,getTableId:C,getMetric:F,addMetricListener:(e,t)=>G(t,o,[e]),delListener:e=>(J(e),K),destroy:q,getListenerStats:()=>({})};return p(K)})(e)),o.get(e))})();e.createMetrics=B},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",r=t(n),s=t(t),i=Math.max,o=Math.min,a=isFinite,c=e=>null==e,d=(e,t,n)=>c(e)?n?.():t(e),l=e=>Array.isArray(e),u=()=>{},f=(e,t)=>e.forEach(t),h=e=>g(e,((e,t)=>e+t),0),v=e=>e.length,g=(e,t,n)=>e.reduce(t,n),M=(e,...t)=>e.push(...t),p=Object.freeze,y=e=>e.size,m=(e,t)=>e?.has(t)??!1,b=e=>c(e)||0==y(e),L=e=>[...e?.values()??[]],w=e=>e.clear(),T=(e,t)=>e?.forEach(t),x=(e,t)=>e?.delete(t),E=e=>new Map(e),I=(e,t)=>e?.get(t),R=(e,t)=>T(e,((e,n)=>t(n,e))),S=(e,t,n)=>c(n)?(x(e,t),e):e?.set(t,n),j=(e,t,n)=>(m(e,t)||S(e,t,n()),I(e,t)),k=(e,t,n,r,s=0)=>d((n?j:I)(e,t[s],s>v(t)-2?n:E),(i=>{if(s>v(t)-2)return r?.(i)&&S(e,t[s]),i;const o=k(i,t,n,r,s+1);return b(i)&&S(e,t[s]),o})),z=E([["avg",[(e,t)=>h(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,r)=>e+(t-n)/r]],["max",[e=>i(...e),(e,t)=>i(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:i(t,e)]],["min",[e=>o(...e),(e,t)=>o(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:o(t,e)]],["sum",[e=>h(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),A=e=>new Set(l(e)||c(e)?e:[e]),D=(e,t)=>e?.add(t),N=/^\d+$/,B=(e=>{const i=new WeakMap;return e=>(i.has(e)||i.set(e,(e=>{const i=E(),[o,h,g,B,C,F,O,,W,$,q]=((e,t,r)=>{const s=e.hasRow,i=E(),o=E(),a=E(),u=E(),h=E(),g=(t,n,...r)=>{const s=j(h,t,A);return f(r,(t=>D(s,t)&&n&&e.callListener(t))),r},M=(t,...n)=>d(I(h,t),(r=>{f(0==v(n)?L(r):n,(t=>{e.delListener(t),x(r,t)})),b(r)&&S(h,t)})),p=(e,n)=>{S(i,e,n),m(o,e)||(S(o,e,t()),S(a,e,E()),S(u,e,E()))},y=e=>{S(i,e),S(o,e),S(a,e),S(u,e),M(e)};return[()=>e,()=>{return e=i,[...e?.keys()??[]];var e},e=>R(o,e),e=>m(o,e),e=>I(i,e),e=>I(o,e),(e,t)=>S(o,e,t),p,(t,r,i,o,d)=>{p(t,r);const h=E(),y=E(),b=I(a,t),L=I(u,t),x=t=>{const i=n=>e.getCell(r,t,n),a=I(b,t),u=s(r,t)?(f=o(i,t),isNaN(f)||c(f)||!0===f||!1===f||f===n?void 0:1*f):void 0;var f,g,M,p;if(a===u||l(a)&&l(u)&&(M=u,v(g=a)===v(M)&&(p=(e,t)=>M[t]===e,g.every(p)))||S(h,t,[a,u]),!c(d)){const e=I(L,t),n=s(r,t)?d(i,t):void 0;e!=n&&S(y,t,n)}},j=e=>{i((()=>{T(h,(([,e],t)=>S(b,t,e))),T(y,((e,t)=>S(L,t,e)))}),h,y,b,L,e),w(h),w(y)};R(b,x),e.hasTable(r)&&f(e.getRowIds(r),(e=>{m(b,e)||x(e)})),j(!0),M(t),g(t,0,e.addRowListener(r,null,((e,t,n)=>x(n))),e.addTableListener(r,(()=>j())))},y,()=>R(h,y),g,M]})(e,u),[G,H,J]=(e=>{let t;const[r,s]=(()=>{const e=[];let t=0;return[r=>(r?e.shift():null)??n+t++,t=>{N.test(t)&&v(e)<1e3&&M(e,t)}]})(),i=E();return[(e,s,o,a=[],c=(()=>[]))=>{t??=K;const d=r(1);return S(i,d,[e,s,o,a,c]),D(k(s,o??[n],A),d),d},(e,r,...s)=>f(((e,t=[n])=>{const r=[],s=(e,n)=>n==v(t)?M(r,e):null===t[n]?T(e,(e=>s(e,n+1))):f([t[n],null],(t=>s(I(e,t),n+1)));return s(e,0),r})(e,r),(e=>T(e,(e=>I(i,e)[0](t,...r??[],...s))))),e=>d(I(i,e),(([,t,r])=>(k(t,r??[n],void 0,(t=>(x(t,e),b(t)?1:0))),S(i,e),s(e),r))),e=>d(I(i,e),(([e,,n=[],r,s])=>{const i=(...o)=>{const a=v(o);a==v(n)?e(t,...o,...s(o)):c(n[a])?f(r[a]?.(...o)??[],(e=>i(...o,e))):i(...o,n[a])};i()}))]})(),K={setMetricDefinition:(e,n,o,d,l,u,f)=>{const h=t(o)==s?[o,l,u,f]:I(z,o)??I(z,"sum");return W(e,n,((t,n,r,s,o,d)=>{const l=F(e),u=y(s);d||=c(l),t();let f=((e,t,n,r,s,i=!1)=>{if(b(n))return;const[o,a,d,l]=s;return i||=c(e),T(r,(([n,r])=>{i||(e=c(n)?a?.(e,r,t++):c(r)?d?.(e,n,t--):l?.(e,r,n,t),i||=c(e))})),i?o(L(n),y(n)):e})(l,u,s,n,h,d);a(f)||(f=void 0),f!=l&&(O(e,f),H(i,[e],f,l))}),(1,t(v=d)==r?e=>e(v):v??(()=>1))),K;var v},delMetricDefinition:e=>($(e),K),getStore:o,getMetricIds:h,forEachMetric:g,hasMetric:B,getTableId:C,getMetric:F,addMetricListener:(e,t)=>G(t,i,[e]),delListener:e=>(J(e),K),destroy:q,getListenerStats:()=>({})};return p(K)})(e)),i.get(e))})();e.createMetrics=B},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseMetrics={});
Binary file
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=JSON.parse,a=(t,e)=>t instanceof e,s=t=>null==t,n=Object,o=n.keys,r=n.freeze,i=t=>(t=>a(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),c="storage",d=globalThis.window,u=(t,n,o)=>((t,u,y,l,f)=>{let v,h,p,w=0,g=0,S=0;const A=[],L=async t=>(2!=w&&(w=1,await T.schedule((async()=>{await t(),w=0}))),T),T={load:async(e,a)=>await L((async()=>{try{t.setContent(await u())}catch{t.setContent([e,a])}})),startAutoLoad:async(a={},s={})=>(T.stopAutoLoad(),await T.load(a,s),S=1,p=(t=>{const a=a=>{a.storageArea===o&&a.key===n&&t((()=>e(a.newValue)))};return d.addEventListener(c,a),a})((async(e,a)=>await L((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await u())}catch{}})))),T),stopAutoLoad:()=>{return S&&(t=p,d.removeEventListener(c,t),p=void 0,S=0),T;var t},save:async e=>(1!=w&&(w=2,await T.schedule((async()=>{try{await(async t=>{return o.setItem(n,(e=t(),JSON.stringify(e,((t,e)=>{return a(e,Map)?(s=(t,[e,a])=>(t[e]=a,t),n={},[...e].reduce(s,n)):e;var s,n}))));var e})(t.getContent)}catch{}w=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();i(a)&&i(s)||T.save((()=>[a,s]))})),T),stopAutoSave:()=>{var e,a;return e=v,a=t.delListener,s(e)||a(e),T},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(A,...t),await(async()=>{if(!g){for(g=1;!s((t=A,h=t.shift()));)try{await h()}catch{}g=0}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(T)})(t,(async()=>e(o.getItem(n))));t.createLocalPersister=(t,e)=>u(t,e,localStorage),t.createSessionPersister=(t,e)=>u(t,e,sessionStorage)},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterBrowser={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=(t,e)=>t instanceof e,a=t=>null==t,s=Object,n=s.keys,o=s.freeze,r=t=>(t=>e(t,s)&&t.constructor==s)(t)&&0==(t=>n(t).length)(t),i=JSON.parse,c="storage",d=globalThis.window,y=(t,n,y)=>((t,u,l,f,h)=>{let p,v,w,g=0,S=0,A=0;const L=[],m=async t=>(2!=g&&(g=1,await T.schedule((async()=>{await t(),g=0}))),T),T={load:async(e,a)=>await m((async()=>{try{t.setContent(await u())}catch{t.setContent([e,a])}})),startAutoLoad:async(e={},a={})=>(T.stopAutoLoad(),await T.load(e,a),A=1,w=(t=>{const e=e=>{e.storageArea===y&&e.key===n&&t((()=>i(e.newValue)))};return d.addEventListener(c,e),e})((async(e,a)=>await m((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await u())}catch{}})))),T),stopAutoLoad:()=>{return A&&(t=w,d.removeEventListener(c,t),w=void 0,A=0),T;var t},save:async a=>(1!=g&&(g=2,await T.schedule((async()=>{try{await(async t=>{return y.setItem(n,(a=t(),JSON.stringify(a,((t,a)=>e(a,Map)?s.fromEntries([...a]):a))));var a})(t.getContent)}catch{}g=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();r(a)&&r(s)||T.save((()=>[a,s]))})),T),stopAutoSave:()=>{var e,s;return e=p,s=t.delListener,a(e)||s(e),T},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(L,...t),await(async()=>{if(!S){for(S=1;!a((t=L,v=t.shift()));)try{await v()}catch{}S=0}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(T)})(t,(async()=>i(y.getItem(n))));t.createLocalPersister=(t,e)=>y(t,e,localStorage),t.createSessionPersister=(t,e)=>y(t,e,sessionStorage)},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterBrowser={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,E=(a,t)=>a instanceof t,p=a=>null==a,f=(a,t,e)=>p(a)?e?.():t(a),m=a=>t(a)==n,v=async a=>d.all(a),T=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),L=Object,C=L.keys,S=L.freeze,N=(a=[])=>L.fromEntries(a),O=(...a)=>L.assign({},...a),R=(a,t)=>(delete a[t],a),b=(a,t)=>o(L.entries(a),(([a,e])=>t(e,a))),g=a=>L.values(a),I=a=>c(C(a)),D=a=>(a=>E(a,L)&&a.constructor==L)(a)&&0==I(a),$=a=>new Map(a),_=a=>[...a?.keys()??[]],P=(a,t)=>a?.get(t),F=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>p(e)?(h(a,t),a):a?.set(t,e),x=(a,t,e,s=M)=>(b(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!p(((a,t)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,W=a=>new Set(Array.isArray(a)||p(a)?a:[a]),U=(a,t)=>a?.add(t),k="SELECT*FROM",q="FROM pragma_table_",H="WHERE",J=(a,t)=>{const e=$(),n=(a,t)=>!p(P(P(e,a),t)),y=async(t,n,y,d,w)=>{const E=W();b(w??{},(a=>o(C(a),(a=>U(E,a)))));const p=A(E);if(r(p)&&T(e,t)&&d)return await a("DROP TABLE"+j(t)),void M(e,t);if(r(p)||T(e,t)){const s=P(e,t),i=W(_(s));await v([...o(p,(async e=>{h(i,e)||(await a(`ALTER TABLE${j(t)}ADD${j(e)}`),M(s,e,""))})),...y?o(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(e)}`),M(s,e))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+j(a))))});`),M(e,t,$([[n,""],...o(p,(a=>[a,""]))]));if(r(p))T(e,t)&&await a("DELETE FROM"+j(t));else{const r=[],y=[],d=[],E=l(_(P(e,t)),(a=>a!=n));b(w,((a,t)=>{var e;u(r,`(?${e=c(E),",?".repeat(e)})`),u(y,t,...o(E,(t=>a[t]))),u(d,t)})),await a("INSERT INTO"+j(t)+"("+j(n)+i(o(E,(a=>s+j(a))))+")VALUES"+i(r,s)+"ON CONFLICT("+j(n)+")DO UPDATE SET"+i(o(E,(a=>j(a)+"=excluded."+j(a))),s),y),await a("DELETE FROM"+j(t)+H+j(n)+"NOT IN("+Y(d)+")",d)}};return[async()=>x(e,N(await v(o(await a("SELECT name "+q+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,N(o(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return M(e,t,x((o=$,T(n=e,i=t)||M(n,i,o()),P(n,i)),s,((a,t,e)=>{e!=P(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,i,o}),((a,t)=>M(e,t))),async(t,e)=>{const s=n(t,e)?await a(k+j(t)+H+j(e)+"=?",["_"]):[];return r(s)?null:R(s[0],e)},async(a,t,e,s)=>await y(a,t,!0,!0,{[e]:s}),async(t,e)=>n(t,e)?N(l(o(await a(k+j(t)),(a=>[a[e],R({...a},e)])),(([a,t])=>!p(a)&&!D(t)))):{},y]},Y=a=>i(o(a,(()=>"?")),s),z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const d=[],w=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(f(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!p((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return S(E)},K="store",V=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=z(a,(async()=>(await o(),w((await c(n,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],y)=>{const[u,d,w,E,f]=J(t,y);return z(a,(async()=>{await u();const a=await(async()=>N(l(await v(F(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?await d(r,B):{})();return D(a)&&p(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await u(),await(async a=>await v(F(i,(async([t,e,s,n],i)=>await f(t,e,s,n,a[i])))))(t),await(async a=>c?await w(r,B,"_",a):null)(e)}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:e+"_values"},na=(a,t,e,s)=>{const n=$();return b(a,((a,i)=>{const o=y(g(O(t,m(a)?{[e]:a}:a)),0,I(t));p(o[0])||s(i,o[0])||M(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,t,s,n,i)=>{let o,c;const[r,l,u,d]=(a=>{const t=(a=>O(ea,m(a)?{storeTableName:a}:a??{}))(a),s=t[X];if(t.mode==Q){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=y(g(O(sa,o)),0,I(sa)),r=c[2],l=W(r);return[0,s,[na(n,{[aa]:null,[Z]:B},aa,(a=>U(l,a)&&a==r)),na(i,{[ta]:null,[Z]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>U(l,t)&&t==r)),c],l]})(t);return(r?V:G)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(o??=t)&&e==(c??=e)||(a(),o=t,c=e)}catch{}}),1e3*l),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=c=null,i(t)}),u,A(d))};a.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),d=(a,...t)=>a.push(...t),u=Promise,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),T=a=>t(a)==n,m=async a=>u.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,O=h.keys,R=h.freeze,C=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),N=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),b=a=>h.values(a),g=a=>r(O(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==g(a),I=a=>new Map(a),F=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(L(a,t),a):a?.set(t,e),_=(a,t,e,s=P)=>(N(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x=(a,t)=>a?.add(t),B="_",j="_id",H=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",k="WHERE",q=(a,t)=>{const e=I();return[async()=>_(e,C(await m(c(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,_((o=I,v(n=e,i=t)||P(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,s)=>((a,t)=>!f(M(M(e,a),t)))(t,s)?C(y(c(await a("SELECT*FROM"+H(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!f(a)&&!D(t)))):{},async(t,n,i,r,w,u=!1)=>{const E=W();N(i??{},(a=>c(O(a??{}),(a=>x(E,a)))));const p=A(E);if(!u&&w&&l(p)&&v(e,t))return await a("DROP TABLE"+H(t)),void P(e,t);if(l(p)||v(e,t)){const s=M(e,t),i=W(F(s));await m([...c(p,(async e=>{L(i,e)||(await a(`ALTER TABLE${H(t)}ADD${H(e)}`),P(s,e,""))})),...!u&&r?c(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(p,(a=>s+H(a))))});`),P(e,t,I([[n,""],...c(p,(a=>[a,""]))]));if(u)f(i)?await a("DELETE FROM"+H(t)+"WHERE 1"):await m(N(i,(async(e,s)=>{f(e)?await a("DELETE FROM"+H(t)+k+H(n)+"=?",[s]):l(p)||await J(a,t,n,O(e),[s,...b(e)])})));else if(l(p))v(e,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const s=y(F(M(e,t)),(a=>a!=n)),o=[],r=[];N(i??{},((a,t)=>{d(o,t,...c(s,(t=>a?.[t]))),d(r,t)})),await J(a,t,n,s,o),await a("DELETE FROM"+H(t)+k+H(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,e,n,l)=>await a("INSERT INTO"+H(t)+"("+H(e)+o(c(n,(a=>s+H(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+H(e)+")DO UPDATE SET"+o(c(n,(a=>H(a)+"=excluded."+H(a))),s),l),Y=a=>o(c(a,(()=>"?")),s),z=JSON.parse,K=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],u=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(d(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(E)},V="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=K(a,(async()=>(await o(),z((await c(n,j))[B]?.[V]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,j,{[B]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,d,u]=q(t,l),E=async(a,t)=>await m($(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),p=async(a,t)=>c?await u(r,j,{[B]:a},!0,!0,t):null;return K(a,(async()=>{await w();const a=await(async()=>C(y(await m($(n,(async([a,t],e)=>[a,await d(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await d(r,j))[B]:{})();return D(a)&&f(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),f(t)){const[t,e]=a();await E(t),await p(e)}else{const[a,e]=t();await E(a,!0),await p(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return N(a,((a,i)=>{const o=w(b(S(t,T(a)?{[e]:a}:a)),0,g(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,d,u]=(a=>{const t=(a=>S(sa,T(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(b(S(na,o)),0,g(na)),r=c[2],l=W(r);return[0,s,[ia(n,{[ta]:null,[aa]:j},ta,(a=>x(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:j,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>x(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),d,A(u))};a.createCrSqliteWasmPersister=(a,t,e,s)=>la(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=JSON.parse,r=(t,e)=>t instanceof e,o=t=>null==t,i=Object,c=i.keys,u=i.freeze,d=t=>(t=>r(t,i)&&t.constructor==i)(t)&&0==(t=>c(t).length)(t);t.createFilePersister=(t,i)=>((t,n,c,f,y)=>{let l,p,h,w=0,v=0,g=0;const A=[],S=async t=>(2!=w&&(w=1,await L.schedule((async()=>{await t(),w=0}))),L),L={load:async(e,a)=>await S((async()=>{try{t.setContent(await n())}catch{t.setContent([e,a])}})),startAutoLoad:async(a={},s={})=>{return L.stopAutoLoad(),await L.load(a,s),g=1,r=async(e,a)=>await S((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await n())}catch{}})),h=e.watch(i,(()=>r())),L;var r},stopAutoLoad:()=>{return g&&(t=h,t?.close(),h=void 0,g=0),L;var t},save:async e=>(1!=w&&(w=2,await L.schedule((async()=>{try{await(async t=>{return await a.writeFile(i,(e=t(),JSON.stringify(e,((t,e)=>{return r(e,Map)?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s}))),s);var e})(t.getContent)}catch{}w=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();d(a)&&d(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>{var e,a;return e=l,a=t.delListener,o(e)||a(e),L},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(A,...t),await(async()=>{if(!v){for(v=1;!o((t=A,p=t.shift()));)try{await p()}catch{}v=0}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return u(L)})(t,(async()=>n(await a.readFile(i,s))))},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
1
+ var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=(t,e)=>t instanceof e,o=t=>null==t,r=Object,i=r.keys,c=r.freeze,u=t=>(t=>n(t,r)&&t.constructor==r)(t)&&0==(t=>i(t).length)(t),f=JSON.parse;t.createFilePersister=(t,i)=>((t,f,y,d,l)=>{let p,h,w,v=0,g=0,A=0;const S=[],m=async t=>(2!=v&&(v=1,await L.schedule((async()=>{await t(),v=0}))),L),L={load:async(e,a)=>await m((async()=>{try{t.setContent(await f())}catch{t.setContent([e,a])}})),startAutoLoad:async(a={},s={})=>{return L.stopAutoLoad(),await L.load(a,s),A=1,n=async(e,a)=>await m((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await f())}catch{}})),w=e.watch(i,(()=>n())),L;var n},stopAutoLoad:()=>{return A&&(t=w,t?.close(),w=void 0,A=0),L;var t},save:async e=>(1!=v&&(v=2,await L.schedule((async()=>{try{await(async t=>{return await a.writeFile(i,(e=t(),JSON.stringify(e,((t,e)=>n(e,Map)?r.fromEntries([...e]):e))),s);var e})(t.getContent)}catch{}v=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();u(a)&&u(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>{var e,a;return e=p,a=t.delListener,o(e)||a(e),L},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(S,...t),await(async()=>{if(!g){for(g=1;!o((t=S,h=t.shift()));)try{await h()}catch{}g=0}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c(L)})(t,(async()=>f(await a.readFile(i,s))))},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=JSON.parse,a=(t,e)=>t instanceof e,s=t=>null==t,n=Object,o=n.keys,r=n.freeze,c=t=>(t=>a(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),i=t=>t.headers.get("ETag");t.createRemotePersister=(t,n,o,d)=>{let y;return((t,e,u,f,h)=>{let l,p,v,w=0,g=0,A=0;const S=[],T=async t=>(2!=w&&(w=1,await m.schedule((async()=>{await t(),w=0}))),m),m={load:async(a,s)=>await T((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>{return m.stopAutoLoad(),await m.load(a,o),A=1,r=async(a,s)=>await T((async()=>{if(s)t.setTransactionChanges(s());else try{t.setContent(a?.()??await e())}catch{}})),v=setInterval((async()=>{const t=await fetch(n,{method:"HEAD"}),e=i(t);s(y)||s(e)||e==y||(y=e,r())}),1e3*d),m;var r},stopAutoLoad:()=>(A&&(clearInterval(v),v=void 0,A=0),m),save:async e=>(1!=w&&(w=2,await m.schedule((async()=>{try{await(async t=>{return await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>{return a(e,Map)?(s=(t,[e,a])=>(t[e]=a,t),n={},[...e].reduce(s,n)):e;var s,n})))});var e})(t.getContent)}catch{}w=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();c(a)&&c(s)||m.save((()=>[a,s]))})),m),stopAutoSave:()=>{var e,a;return e=l,a=t.delListener,s(e)||a(e),m},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(S,...t),await(async()=>{if(!g){for(g=1;!s((t=S,p=t.shift()));)try{await p()}catch{}g=0}var t})(),m),getStore:()=>t,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(m)})(t,(async()=>{const t=await fetch(n);return y=i(t),e(await t.text())}))}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=(t,e)=>t instanceof e,a=t=>null==t,s=Object,n=s.keys,o=s.freeze,r=t=>(t=>e(t,s)&&t.constructor==s)(t)&&0==(t=>n(t).length)(t),c=JSON.parse,i=t=>t.headers.get("ETag");t.createRemotePersister=(t,n,d,y)=>{let u;return((t,c,f,h,l)=>{let p,w,v,g=0,A=0,S=0;const T=[],m=async t=>(2!=g&&(g=1,await C.schedule((async()=>{await t(),g=0}))),C),C={load:async(e,a)=>await m((async()=>{try{t.setContent(await c())}catch{t.setContent([e,a])}})),startAutoLoad:async(e={},s={})=>{return C.stopAutoLoad(),await C.load(e,s),S=1,o=async(e,a)=>await m((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await c())}catch{}})),v=setInterval((async()=>{const t=await fetch(n,{method:"HEAD"}),e=i(t);a(u)||a(e)||e==u||(u=e,o())}),1e3*y),C;var o},stopAutoLoad:()=>(S&&(clearInterval(v),v=void 0,S=0),C),save:async a=>(1!=g&&(g=2,await C.schedule((async()=>{try{await(async t=>{return await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>e(a,Map)?s.fromEntries([...a]):a)))});var a})(t.getContent)}catch{}g=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();r(a)&&r(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>{var e,s;return e=p,s=t.delListener,a(e)||s(e),C},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(T,...t),await(async()=>{if(!A){for(A=1;!a((t=T,w=t.shift()));)try{await w()}catch{}A=0}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(C)})(t,(async()=>{const t=await fetch(n);return u=i(t),c(await t.text())}))}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,E=(a,t)=>a instanceof t,p=a=>null==a,f=(a,t,e)=>p(a)?e?.():t(a),m=a=>t(a)==n,v=async a=>d.all(a),T=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],A=(a,t)=>a?.delete(t),L=Object,S=L.keys,N=L.freeze,C=(a=[])=>L.fromEntries(a),O=(...a)=>L.assign({},...a),R=(a,t)=>(delete a[t],a),b=(a,t)=>o(L.entries(a),(([a,e])=>t(e,a))),g=a=>L.values(a),_=a=>c(S(a)),I=a=>(a=>E(a,L)&&a.constructor==L)(a)&&0==_(a),D=a=>new Map(a),$=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),P=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>p(e)?(A(a,t),a):a?.set(t,e),j=(a,t,e,s=F)=>(b(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!p(((a,t)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x="_id",B=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||p(a)?a:[a]),q=(a,t)=>a?.add(t),W="SELECT*FROM",H="FROM pragma_table_",J="WHERE",U=(a,t)=>{const e=D(),n=(a,t)=>!p(M(M(e,a),t)),y=async(t,n,y,d,w)=>{const E=k();b(w??{},(a=>o(S(a),(a=>q(E,a)))));const p=h(E);if(r(p)&&T(e,t)&&d)return await a("DROP TABLE"+B(t)),void F(e,t);if(r(p)||T(e,t)){const s=M(e,t),i=k($(s));await v([...o(p,(async e=>{A(i,e)||(await a(`ALTER TABLE${B(t)}ADD${B(e)}`),F(s,e,""))})),...y?o(h(i),(async e=>{e!=n&&(await a(`ALTER TABLE${B(t)}DROP${B(e)}`),F(s,e))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+B(a))))});`),F(e,t,D([[n,""],...o(p,(a=>[a,""]))]));if(r(p))T(e,t)&&await a("DELETE FROM"+B(t));else{const r=[],y=[],d=[],E=l($(M(e,t)),(a=>a!=n));b(w,((a,t)=>{var e;u(r,`(?${e=c(E),",?".repeat(e)})`),u(y,t,...o(E,(t=>a[t]))),u(d,t)})),await a("INSERT INTO"+B(t)+"("+B(n)+i(o(E,(a=>s+B(a))))+")VALUES"+i(r,s)+"ON CONFLICT("+B(n)+")DO UPDATE SET"+i(o(E,(a=>B(a)+"=excluded."+B(a))),s),y),await a("DELETE FROM"+B(t)+J+B(n)+"NOT IN("+V(d)+")",d)}};return[async()=>j(e,C(await v(o(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,C(o(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return F(e,t,j((o=D,T(n=e,i=t)||F(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(e,t))),async(t,e)=>{const s=n(t,e)?await a(W+B(t)+J+B(e)+"=?",["_"]):[];return r(s)?null:R(s[0],e)},async(a,t,e,s)=>await y(a,t,!0,!0,{[e]:s}),async(t,e)=>n(t,e)?C(l(o(await a(W+B(t)),(a=>[a[e],R({...a},e)])),(([a,t])=>!p(a)&&!I(t)))):{},y]},V=a=>i(o(a,(()=>"?")),s),Y=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const d=[],w=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(f(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!p((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(E)},z="store",K=(a,t,e,s,[n],i)=>{const[o,c,r]=U(t,i),l=Y(a,(async()=>(await o(),w((await c(n,x)??{})[z]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,x,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],y)=>{const[u,d,w,E,f]=U(t,y);return Y(a,(async()=>{await u();const a=await(async()=>C(l(await v(P(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?await d(r,x):{})();return I(a)&&p(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await u(),await(async a=>await v(P(i,(async([t,e,s,n],i)=>await f(t,e,s,n,a[i])))))(t),await(async a=>c?await w(r,x,"_",a):null)(e)}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:e+"_values"},na=(a,t,e,s)=>{const n=D();return b(a,((a,i)=>{const o=y(g(O(t,m(a)?{[e]:a}:a)),0,_(t));p(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,t,s,n,i)=>{let o,c;const[r,l,u,d]=(a=>{const t=(a=>O(ea,m(a)?{storeTableName:a}:a??{}))(a),s=t[X];if(t.mode==Q){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=y(g(O(sa,o)),0,_(sa)),r=c[2],l=k(r);return[0,s,[na(n,{[aa]:null,[Z]:x},aa,(a=>q(l,a)&&a==r)),na(i,{[ta]:null,[Z]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>q(l,t)&&t==r)),c],l]})(t);return(r?K:G)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(o??=t)&&e==(c??=e)||(a(),o=t,c=e)}catch{}}),1e3*l),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=c=null,i(t)}),u,h(d))};a.createSqliteWasmPersister=(a,t,e,s)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,E=(a,t)=>a instanceof t,p=a=>null==a,f=(a,t,e)=>p(a)?e?.():t(a),m=a=>t(a)==n,T=async a=>d.all(a),v=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],A=(a,t)=>a?.delete(t),L=Object,R=L.keys,O=L.freeze,S=(a=[])=>L.fromEntries(a),N=(...a)=>L.assign({},...a),b=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),C=a=>L.values(a),g=a=>r(R(a)),D=a=>(a=>E(a,L)&&a.constructor==L)(a)&&0==g(a),I=a=>new Map(a),_=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),F=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>p(e)?(A(a,t),a):a?.set(t,e),P=(a,t,e,s=$)=>(b(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!p(((a,t)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||p(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",B="_id",k=a=>`"${a.replace(/"/g,'""')}"`,q="FROM pragma_table_",H="WHERE",J=(a,t)=>{const e=I();return[async()=>P(e,S(await T(c(await a("SELECT name "+q+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return $(e,t,P((o=I,v(n=e,i=t)||$(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,o}),((a,t)=>$(e,t))),async(t,s)=>((a,t)=>!p(M(M(e,a),t)))(t,s)?S(y(c(await a("SELECT*FROM"+k(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!p(a)&&!D(t)))):{},async(t,n,i,r,w,d=!1)=>{const E=W();b(i??{},(a=>c(R(a??{}),(a=>j(E,a)))));const f=h(E);if(!d&&w&&l(f)&&v(e,t))return await a("DROP TABLE"+k(t)),void $(e,t);if(l(f)||v(e,t)){const s=M(e,t),i=W(_(s));await T([...c(f,(async e=>{A(i,e)||(await a(`ALTER TABLE${k(t)}ADD${k(e)}`),$(s,e,""))})),...!d&&r?c(h(i),(async e=>{e!=n&&(await a(`ALTER TABLE${k(t)}DROP${k(e)}`),$(s,e))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(f,(a=>s+k(a))))});`),$(e,t,I([[n,""],...c(f,(a=>[a,""]))]));if(d)p(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await T(b(i,(async(e,s)=>{p(e)?await a("DELETE FROM"+k(t)+H+k(n)+"=?",[s]):l(f)||await U(a,t,n,R(e),[s,...C(e)])})));else if(l(f))v(e,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const s=y(_(M(e,t)),(a=>a!=n)),o=[],r=[];b(i??{},((a,t)=>{u(o,t,...c(s,(t=>a?.[t]))),u(r,t)})),await U(a,t,n,s,o),await a("DELETE FROM"+k(t)+H+k(n)+"NOT IN("+V(r)+")",r)}}]},U=async(a,t,e,n,l)=>await a("INSERT INTO"+k(t)+"("+k(e)+o(c(n,(a=>s+k(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+k(e)+")DO UPDATE SET"+o(c(n,(a=>k(a)+"=excluded."+k(a))),s),l),V=a=>o(c(a,(()=>"?")),s),Y=JSON.parse,z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(f(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!p((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(E)},K="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=z(a,(async()=>(await o(),Y((await c(n,B))[x]?.[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[x]:{[K]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?L.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,u,d]=J(t,l),E=async(a,t)=>await T(F(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await d(e,s,c,n,i,t)}))),f=async(a,t)=>c?await d(r,B,{[x]:a},!0,!0,t):null;return z(a,(async()=>{await w();const a=await(async()=>S(y(await T(F(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await u(r,B))[x]:{})();return D(a)&&p(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),p(t)){const[t,e]=a();await E(t),await f(e)}else{const[a,e]=t();await E(a,!0),await f(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return b(a,((a,i)=>{const o=w(C(N(t,m(a)?{[e]:a}:a)),0,g(t));p(o[0])||s(i,o[0])||$(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,u,d]=(a=>{const t=(a=>N(sa,m(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(C(N(na,o)),0,g(na)),r=c[2],l=W(r);return[0,s,[ia(n,{[ta]:null,[aa]:B},ta,(a=>j(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>j(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),u,h(d))};a.createSqliteWasmPersister=(a,t,e,s,n)=>la(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),w=Promise,d=JSON.parse,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),v=a=>t(a)==n,T=async a=>w.all(a),m=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),L=Object,S=L.keys,N=L.freeze,C=(a=[])=>L.fromEntries(a),O=(...a)=>L.assign({},...a),R=(a,t)=>(delete a[t],a),g=(a,t)=>o(L.entries(a),(([a,e])=>t(e,a))),b=a=>L.values(a),I=a=>c(S(a)),D=a=>(a=>E(a,L)&&a.constructor==L)(a)&&0==I(a),$=a=>new Map(a),_=a=>[...a?.keys()??[]],P=(a,t)=>a?.get(t),F=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>f(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e,s=M)=>(g(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",x=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||f(a)?a:[a]),q=(a,t)=>a?.add(t),H="SELECT*FROM",J="FROM pragma_table_",U="WHERE",W=(a,t)=>{const e=$(),n=(a,t)=>!f(P(P(e,a),t)),y=async(t,n,y,w,d)=>{const E=k();g(d??{},(a=>o(S(a),(a=>q(E,a)))));const f=A(E);if(r(f)&&m(e,t)&&w)return await a("DROP TABLE"+x(t)),void M(e,t);if(r(f)||m(e,t)){const s=P(e,t),i=k(_(s));await T([...o(f,(async e=>{h(i,e)||(await a(`ALTER TABLE${x(t)}ADD${x(e)}`),M(s,e,""))})),...y?o(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${x(t)}DROP${x(e)}`),M(s,e))})):[]])}else await a(`CREATE TABLE${x(t)}(${x(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(f,(a=>s+x(a))))});`),M(e,t,$([[n,""],...o(f,(a=>[a,""]))]));if(r(f))m(e,t)&&await a("DELETE FROM"+x(t));else{const r=[],y=[],w=[],E=l(_(P(e,t)),(a=>a!=n));g(d,((a,t)=>{var e;u(r,`(?${e=c(E),",?".repeat(e)})`),u(y,t,...o(E,(t=>a[t]))),u(w,t)})),await a("INSERT INTO"+x(t)+"("+x(n)+i(o(E,(a=>s+x(a))))+")VALUES"+i(r,s)+"ON CONFLICT("+x(n)+")DO UPDATE SET"+i(o(E,(a=>x(a)+"=excluded."+x(a))),s),y),await a("DELETE FROM"+x(t)+U+x(n)+"NOT IN("+Y(w)+")",w)}};return[async()=>B(e,C(await T(o(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,C(o(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return M(e,t,B((o=$,m(n=e,i=t)||M(n,i,o()),P(n,i)),s,((a,t,e)=>{e!=P(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,i,o}),((a,t)=>M(e,t))),async(t,e)=>{const s=n(t,e)?await a(H+x(t)+U+x(e)+"=?",["_"]):[];return r(s)?null:R(s[0],e)},async(a,t,e,s)=>await y(a,t,!0,!0,{[e]:s}),async(t,e)=>n(t,e)?C(l(o(await a(H+x(t)),(a=>[a[e],R({...a},e)])),(([a,t])=>!f(a)&&!D(t)))):{},y]},Y=a=>i(o(a,(()=>"?")),s),z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(E)},K="store",V=(a,t,e,s,[n],i)=>{const[o,c,r]=W(t,i),l=z(a,(async()=>(await o(),d((await c(n,j)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,j,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],y)=>{const[u,w,d,E,p]=W(t,y);return z(a,(async()=>{await u();const a=await(async()=>C(l(await T(F(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?await w(r,j):{})();return D(a)&&f(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await u(),await(async a=>await T(F(i,(async([t,e,s,n],i)=>await p(t,e,s,n,a[i])))))(t),await(async a=>c?await d(r,j,"_",a):null)(e)}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:e+"_values"},na=(a,t,e,s)=>{const n=$();return g(a,((a,i)=>{const o=y(b(O(t,v(a)?{[e]:a}:a)),0,I(t));f(o[0])||s(i,o[0])||M(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,t,s,n,i)=>{let o,c;const[r,l,u,w]=(a=>{const t=(a=>O(ea,v(a)?{storeTableName:a}:a??{}))(a),s=t[X];if(t.mode==Q){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=y(b(O(sa,o)),0,I(sa)),r=c[2],l=k(r);return[0,s,[na(n,{[aa]:null,[Z]:j},aa,(a=>q(l,a)&&a==r)),na(i,{[ta]:null,[Z]:j,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>q(l,t)&&t==r)),c],l]})(t);return(r?V:G)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(o??=t)&&e==(c??=e)||(a(),o=t,c=e)}catch{}}),1e3*l),n((t=>w.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=c=null,i(t)}),u,A(w))},la="change";a.createSqlite3Persister=(a,t,e)=>ra(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),T=a=>t(a)==n,m=async a=>d.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,O=h.freeze,S=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),b=a=>r(R(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==b(a),I=a=>new Map(a),F=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(L(a,t),a):a?.set(t,e),_=(a,t,e,s=P)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B=a=>new Set(Array.isArray(a)||f(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",H="_id",W=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",q="WHERE",J=(a,t)=>{const e=I();return[async()=>_(e,S(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,_((o=I,v(n=e,i=t)||P(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,s)=>((a,t)=>!f(M(M(e,a),t)))(t,s)?S(y(c(await a("SELECT*FROM"+W(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!f(a)&&!D(t)))):{},async(t,n,i,r,w,d=!1)=>{const E=B();C(i??{},(a=>c(R(a??{}),(a=>j(E,a)))));const p=A(E);if(!d&&w&&l(p)&&v(e,t))return await a("DROP TABLE"+W(t)),void P(e,t);if(l(p)||v(e,t)){const s=M(e,t),i=B(F(s));await m([...c(p,(async e=>{L(i,e)||(await a(`ALTER TABLE${W(t)}ADD${W(e)}`),P(s,e,""))})),...!d&&r?c(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${W(t)}DROP${W(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${W(t)}(${W(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(p,(a=>s+W(a))))});`),P(e,t,I([[n,""],...c(p,(a=>[a,""]))]));if(d)f(i)?await a("DELETE FROM"+W(t)+"WHERE 1"):await m(C(i,(async(e,s)=>{f(e)?await a("DELETE FROM"+W(t)+q+W(n)+"=?",[s]):l(p)||await U(a,t,n,R(e),[s,...g(e)])})));else if(l(p))v(e,t)&&await a("DELETE FROM"+W(t)+"WHERE 1");else{const s=y(F(M(e,t)),(a=>a!=n)),o=[],r=[];C(i??{},((a,t)=>{u(o,t,...c(s,(t=>a?.[t]))),u(r,t)})),await U(a,t,n,s,o),await a("DELETE FROM"+W(t)+q+W(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,e,n,l)=>await a("INSERT INTO"+W(t)+"("+W(e)+o(c(n,(a=>s+W(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+W(e)+")DO UPDATE SET"+o(c(n,(a=>W(a)+"=excluded."+W(a))),s),l),Y=a=>o(c(a,(()=>"?")),s),z=JSON.parse,K=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(E)},V="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=K(a,(async()=>(await o(),z((await c(n,H))[x]?.[V]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,H,{[x]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,u,d]=J(t,l),E=async(a,t)=>await m($(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await d(e,s,c,n,i,t)}))),p=async(a,t)=>c?await d(r,H,{[x]:a},!0,!0,t):null;return K(a,(async()=>{await w();const a=await(async()=>S(y(await m($(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await u(r,H))[x]:{})();return D(a)&&f(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),f(t)){const[t,e]=a();await E(t),await p(e)}else{const[a,e]=t();await E(a,!0),await p(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const o=w(g(N(t,T(a)?{[e]:a}:a)),0,b(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,u,d]=(a=>{const t=(a=>N(sa,T(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(g(N(na,o)),0,b(na)),r=c[2],l=B(r);return[0,s,[ia(n,{[ta]:null,[aa]:H},ta,(a=>j(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>j(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),u,A(d))},ya="change";a.createSqlite3Persister=(a,t,e,s)=>la(a,e,((a,e=[])=>new d(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(ya,e),e}),(a=>t.off(ya,a)),s)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),o=(e,t)=>e.forEach(t),r=e=>e.length,i=(e,...t)=>e.push(...t),a=e=>null==e,l=(e,t,n)=>a(e)?n?.():t(e),d=e=>Array.isArray(e),c=Object.freeze,f=(e,t)=>e?.has(t)??!1,u=e=>a(e)||0==(e=>e.size)(e),h=e=>[...e?.values()??[]],R=e=>e.clear(),p=(e,t)=>e?.forEach(t),g=(e,t)=>e?.delete(t),L=e=>new Map(e),w=(e,t)=>e?.get(t),y=(e,t)=>p(e,((e,n)=>t(n,e))),v=(e,t,n)=>a(n)?(g(e,t),e):e?.set(t,n),I=(e,t,n)=>(f(e,t)||v(e,t,n()),w(e,t)),b=(e,t,n,s,o=0)=>l((n?I:w)(e,t[o],o>r(t)-2?n:L),(i=>{if(o>r(t)-2)return s?.(i)&&v(e,t[o]),i;const a=b(i,t,n,s,o+1);return u(i)&&v(e,t[o]),a})),T=e=>new Set(d(e)||a(e)?e:[e]),m=(e,t)=>e?.add(t),k=/^\d+$/,E=(e=>{const E=new WeakMap;return e=>(E.has(e)||E.set(e,(e=>{const E=L(),x=L(),S=L(),j=L(),[z,A,D,M,B,C,,,O,W,$]=((e,t,s)=>{const i=e.hasRow,c=L(),b=L(),k=L(),E=L(),x=L(),S=(t,n,...s)=>{const r=I(x,t,T);return o(s,(t=>m(r,t)&&n&&e.callListener(t))),s},j=(t,...n)=>l(w(x,t),(s=>{o(0==r(n)?h(s):n,(t=>{e.delListener(t),g(s,t)})),u(s)&&v(x,t)})),z=(e,t)=>{v(c,e,t),f(b,e)||(v(b,e,[L(),L(),L(),L()]),v(k,e,L()),v(E,e,L()))},A=e=>{v(c,e),v(b,e),v(k,e),v(E,e),j(e)};return[()=>e,()=>{return e=c,[...e?.keys()??[]];var e},e=>y(b,e),e=>f(b,e),e=>w(c,e),e=>w(b,e),(e,t)=>v(b,e,t),z,(t,s,l,c,u)=>{z(t,s);const h=L(),g=L(),I=w(k,t),b=w(E,t),T=t=>{const o=n=>e.getCell(s,t,n),l=w(I,t),f=i(s,t)?(R=c(o,t),a(R)?void 0:R+n):void 0;var R,p,L,y;if(l===f||d(l)&&d(f)&&(L=f,r(p=l)===r(L)&&(y=(e,t)=>L[t]===e,p.every(y)))||v(h,t,[l,f]),!a(u)){const e=w(b,t),n=i(s,t)?u(o,t):void 0;e!=n&&v(g,t,n)}},m=e=>{l((()=>{p(h,(([,e],t)=>v(I,t,e))),p(g,((e,t)=>v(b,t,e)))}),h,g,I,b,e),R(h),R(g)};y(I,T),e.hasTable(s)&&o(e.getRowIds(s),(e=>{f(I,e)||T(e)})),m(!0),j(t),S(t,0,e.addRowListener(s,null,((e,t,n)=>T(n))),e.addTableListener(s,(()=>m())))},A,()=>y(x,A),S,j]})(e),[q,F,G]=(e=>{let t;const[s,d]=(()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??n+t++,t=>{k.test(t)&&r(e)<1e3&&i(e,t)}]})(),c=L();return[(e,o,r,i=[],a=(()=>[]))=>{t??=N;const l=s(1);return v(c,l,[e,o,r,i,a]),m(b(o,r??[n],T),l),l},(e,s,...a)=>o(((e,t=[n])=>{const s=[],a=(e,n)=>n==r(t)?i(s,e):null===t[n]?p(e,(e=>a(e,n+1))):o([t[n],null],(t=>a(w(e,t),n+1)));return a(e,0),s})(e,s),(e=>p(e,(e=>w(c,e)[0](t,...s??[],...a))))),e=>l(w(c,e),(([,t,s])=>(b(t,s??[n],void 0,(t=>(g(t,e),u(t)?1:0))),v(c,e),d(e),s))),e=>l(w(c,e),(([e,,n=[],s,i])=>{const l=(...d)=>{const c=r(d);c==r(n)?e(t,...d,...i(d)):a(n[c])?o(s[c]?.(...d)??[],(e=>l(...d,e))):l(...d,n[c])};l()}))]})(),H=(e,t,n)=>l(C(e),(([s,,o])=>{if(!f(o,t)){const r=T();if(B(e)!=K(e))m(r,t);else{let e=t;for(;!a(e)&&!f(r,e);)m(r,e),e=w(s,e)}if(n)return r;v(o,t,r)}return w(o,t)})),J=(e,t)=>l(C(e),(([,,e])=>v(e,t))),K=e=>w(E,e),N={setRelationshipDefinition:(e,o,r,i)=>{return v(E,e,r),O(e,o,((t,n)=>{const s=T(),o=T(),r=T(),[i,d]=C(e);p(n,(([t,n],c)=>{a(t)||(m(o,t),l(w(d,t),(e=>{g(e,c),u(e)&&v(d,t)}))),a(n)||(m(o,n),f(d,n)||v(d,n,T()),m(w(d,n),c)),m(s,c),v(i,c,n),y(w(j,e),(t=>{f(H(e,t),c)&&m(r,t)}))})),t(),p(s,(t=>F(x,[e,t]))),p(o,(t=>F(S,[e,t]))),p(r,(t=>{J(e,t),F(j,[e,t])}))}),t(d=i)==s?e=>e(d):d??(()=>n)),N;var d},delRelationshipDefinition:e=>(v(E,e),W(e),N),getStore:z,getRelationshipIds:A,forEachRelationship:t=>D((n=>t(n,(t=>e.forEachRow(B(n),t))))),hasRelationship:M,getLocalTableId:B,getRemoteTableId:K,getRemoteRowId:(e,t)=>w(C(e)?.[0],t),getLocalRowIds:(e,t)=>h(w(C(e)?.[1],t)),getLinkedRowIds:(e,t)=>a(C(e))?[t]:h(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>q(n,x,[e,t]),addLocalRowIdsListener:(e,t,n)=>q(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),q(n,j,[e,t])),delListener:e=>(J(...G(e)),N),destroy:$,getListenerStats:()=>({})};return c(N)})(e)),E.get(e))})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="",s=t(n),o=e=>null==e,r=(e,t,n)=>o(e)?n?.():t(e),i=e=>Array.isArray(e),a=(e,t)=>e.forEach(t),l=e=>e.length,d=(e,...t)=>e.push(...t),c=Object.freeze,f=(e,t)=>e?.has(t)??!1,u=e=>o(e)||0==(e=>e.size)(e),h=e=>[...e?.values()??[]],R=e=>e.clear(),p=(e,t)=>e?.forEach(t),g=(e,t)=>e?.delete(t),L=e=>new Map(e),w=(e,t)=>e?.get(t),y=(e,t)=>p(e,((e,n)=>t(n,e))),v=(e,t,n)=>o(n)?(g(e,t),e):e?.set(t,n),I=(e,t,n)=>(f(e,t)||v(e,t,n()),w(e,t)),b=(e,t,n,s,o=0)=>r((n?I:w)(e,t[o],o>l(t)-2?n:L),(r=>{if(o>l(t)-2)return s?.(r)&&v(e,t[o]),r;const i=b(r,t,n,s,o+1);return u(r)&&v(e,t[o]),i})),T=e=>new Set(i(e)||o(e)?e:[e]),m=(e,t)=>e?.add(t),k=/^\d+$/,E=(e=>{const E=new WeakMap;return e=>(E.has(e)||E.set(e,(e=>{const E=L(),x=L(),S=L(),j=L(),[z,A,D,M,B,C,,,O,W,$]=((e,t,s)=>{const d=e.hasRow,c=L(),b=L(),k=L(),E=L(),x=L(),S=(t,n,...s)=>{const o=I(x,t,T);return a(s,(t=>m(o,t)&&n&&e.callListener(t))),s},j=(t,...n)=>r(w(x,t),(s=>{a(0==l(n)?h(s):n,(t=>{e.delListener(t),g(s,t)})),u(s)&&v(x,t)})),z=(e,t)=>{v(c,e,t),f(b,e)||(v(b,e,[L(),L(),L(),L()]),v(k,e,L()),v(E,e,L()))},A=e=>{v(c,e),v(b,e),v(k,e),v(E,e),j(e)};return[()=>e,()=>{return e=c,[...e?.keys()??[]];var e},e=>y(b,e),e=>f(b,e),e=>w(c,e),e=>w(b,e),(e,t)=>v(b,e,t),z,(t,s,r,c,u)=>{z(t,s);const h=L(),g=L(),I=w(k,t),b=w(E,t),T=t=>{const r=n=>e.getCell(s,t,n),a=w(I,t),f=d(s,t)?(R=c(r,t),o(R)?void 0:R+n):void 0;var R,p,L,y;if(a===f||i(a)&&i(f)&&(L=f,l(p=a)===l(L)&&(y=(e,t)=>L[t]===e,p.every(y)))||v(h,t,[a,f]),!o(u)){const e=w(b,t),n=d(s,t)?u(r,t):void 0;e!=n&&v(g,t,n)}},m=e=>{r((()=>{p(h,(([,e],t)=>v(I,t,e))),p(g,((e,t)=>v(b,t,e)))}),h,g,I,b,e),R(h),R(g)};y(I,T),e.hasTable(s)&&a(e.getRowIds(s),(e=>{f(I,e)||T(e)})),m(!0),j(t),S(t,0,e.addRowListener(s,null,((e,t,n)=>T(n))),e.addTableListener(s,(()=>m())))},A,()=>y(x,A),S,j]})(e),[q,F,G]=(e=>{let t;const[s,i]=(()=>{const e=[];let t=0;return[s=>(s?e.shift():null)??n+t++,t=>{k.test(t)&&l(e)<1e3&&d(e,t)}]})(),c=L();return[(e,o,r,i=[],a=(()=>[]))=>{t??=N;const l=s(1);return v(c,l,[e,o,r,i,a]),m(b(o,r??[n],T),l),l},(e,s,...o)=>a(((e,t=[n])=>{const s=[],o=(e,n)=>n==l(t)?d(s,e):null===t[n]?p(e,(e=>o(e,n+1))):a([t[n],null],(t=>o(w(e,t),n+1)));return o(e,0),s})(e,s),(e=>p(e,(e=>w(c,e)[0](t,...s??[],...o))))),e=>r(w(c,e),(([,t,s])=>(b(t,s??[n],void 0,(t=>(g(t,e),u(t)?1:0))),v(c,e),i(e),s))),e=>r(w(c,e),(([e,,n=[],s,r])=>{const i=(...d)=>{const c=l(d);c==l(n)?e(t,...d,...r(d)):o(n[c])?a(s[c]?.(...d)??[],(e=>i(...d,e))):i(...d,n[c])};i()}))]})(),H=(e,t,n)=>r(C(e),(([s,,r])=>{if(!f(r,t)){const i=T();if(B(e)!=K(e))m(i,t);else{let e=t;for(;!o(e)&&!f(i,e);)m(i,e),e=w(s,e)}if(n)return i;v(r,t,i)}return w(r,t)})),J=(e,t)=>r(C(e),(([,,e])=>v(e,t))),K=e=>w(E,e),N={setRelationshipDefinition:(e,i,a,l)=>{return v(E,e,a),O(e,i,((t,n)=>{const s=T(),i=T(),a=T(),[l,d]=C(e);p(n,(([t,n],c)=>{o(t)||(m(i,t),r(w(d,t),(e=>{g(e,c),u(e)&&v(d,t)}))),o(n)||(m(i,n),f(d,n)||v(d,n,T()),m(w(d,n),c)),m(s,c),v(l,c,n),y(w(j,e),(t=>{f(H(e,t),c)&&m(a,t)}))})),t(),p(s,(t=>F(x,[e,t]))),p(i,(t=>F(S,[e,t]))),p(a,(t=>{J(e,t),F(j,[e,t])}))}),t(d=l)==s?e=>e(d):d??(()=>n)),N;var d},delRelationshipDefinition:e=>(v(E,e),W(e),N),getStore:z,getRelationshipIds:A,forEachRelationship:t=>D((n=>t(n,(t=>e.forEachRow(B(n),t))))),hasRelationship:M,getLocalTableId:B,getRemoteTableId:K,getRemoteRowId:(e,t)=>w(C(e)?.[0],t),getLocalRowIds:(e,t)=>h(w(C(e)?.[1],t)),getLinkedRowIds:(e,t)=>o(C(e))?[t]:h(H(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>q(n,x,[e,t]),addLocalRowIdsListener:(e,t,n)=>q(n,S,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(H(e,t),q(n,j,[e,t])),delListener:e=>(J(...G(e)),N),destroy:$,getListenerStats:()=>({})};return c(N)})(e)),E.get(e))})();e.createRelationships=E},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseRelationships={});
Binary file
package/lib/umd/store.js CHANGED
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",l=t(s),n=t(!0),a=t(0),o=t(t),r="type",c="default",i="Ids",d="Table",u=d+"s",h=d+i,f="Row"+i,g="Cell",T=g+i,b="Value",V=b+"s",v=b+i,C=e=>s+e,S=(e,t)=>e.forEach(t),y=(e,t)=>e.map(t),w=e=>e.length,p=(e,t,s)=>e.slice(t,s),I=(e,...t)=>e.push(...t),R=e=>JSON.stringify(e,((e,t)=>{return L(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),m=JSON.parse,J=isFinite,L=(e,t)=>e instanceof t,E=e=>null==e,F=(e,t,s)=>E(e)?s?.():t(e),x=e=>e==l||e==n,z=e=>t(e)==o,O=Object,j=O.keys,k=O.isFrozen,A=O.freeze,M=e=>L(e,O)&&e.constructor==O,N=(e,t)=>!E(((e,t)=>F(e,(e=>e[t])))(e,t)),P=(e,t)=>(delete e[t],e),B=(e,t)=>y(O.entries(e),(([e,s])=>t(s,e))),D=e=>M(e)&&0==(e=>w(j(e)))(e),W=(e,t)=>e?.has(t)??!1,$=e=>E(e)||0==(e=>e.size)(e),q=e=>e.clear(),G=(e,t)=>e?.forEach(t),H=(e,t)=>e?.delete(t),K=e=>new Map(e),Q=e=>[...e?.keys()??[]],U=(e,t)=>e?.get(t),X=(e,t)=>G(e,((e,s)=>t(s,e))),Y=(e,t,s)=>E(s)?(H(e,t),e):e?.set(t,s),Z=(e,t,s)=>(W(e,t)||Y(e,t,s()),U(e,t)),_=(e,t,s,l=Y)=>(B(t,((t,l)=>s(e,l,t))),X(e,(s=>N(t,s)?0:l(e,s))),e),ee=(e,t,s)=>{const l={};return G(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},te=(e,t,s)=>ee(e,(e=>ee(e,t,s)),D),se=(e,t,s)=>ee(e,(e=>te(e,t,s)),D),le=(e,t)=>{const s=K();return G(e,((e,l)=>s.set(l,t?.(e)??e))),s},ne=e=>le(e,le),ae=e=>le(e,ne),oe=(e,t,s,l,n=0)=>F((s?Z:U)(e,t[n],n>w(t)-2?s:K),(a=>{if(n>w(t)-2)return l?.(a)&&Y(e,t[n]),a;const o=oe(a,t,s,l,n+1);return $(a)&&Y(e,t[n]),o})),re=e=>new Set(Array.isArray(e)||E(e)?e:[e]),ce=(e,t)=>e?.add(t),ie=/^\d+$/,de=()=>{const e=[];let t=0;return[l=>(l?e.shift():null)??s+t++,t=>{ie.test(t)&&w(e)<1e3&&I(e,t)}]},ue=e=>[e,e],he=()=>[K(),K()],fe=e=>[...e],ge=([e,t])=>e===t,Te=e=>{const s=t(e);return x(s)||s==a&&J(e)?s:void 0},be=(e,t,s,l,n)=>E(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ve=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),ve=(e,t,s)=>E(e)||!M(e)||D(e)||k(e)?(s?.(),!1):(B(e,((s,l)=>{t(s,l)||P(e,l)})),!D(e)),Ce=(e,t,s)=>Y(e,t,U(e,t)==-s?void 0:s),Se=()=>{let e,t,l=!1,n=!1,o=0;const i=K(),J=K(),L=K(),O=K(),j=K(),k=K(),M=K(),ie=K(),ye=K(),we=K(),pe=K(),Ie=K(),Re=K(),me=re(),Je=K(),Le=K(),Ee=K(),Fe=K(),xe=he(),ze=he(),Oe=he(),je=he(),ke=he(),Ae=he(),Me=he(),Ne=he(),Pe=he(),Be=he(),De=he(),We=he(),$e=he(),qe=he(),Ge=K(),He=he(),[Ke,Qe,Ue,Xe]=(e=>{let t;const[l,n]=de(),a=K();return[(e,n,o,r=[],c=(()=>[]))=>{t??=is;const i=l(1);return Y(a,i,[e,n,o,r,c]),ce(oe(n,o??[s],re),i),i},(e,l,...n)=>S(((e,t=[s])=>{const l=[],n=(e,s)=>s==w(t)?I(l,e):null===t[s]?G(e,(e=>n(e,s+1))):S([t[s],null],(t=>n(U(e,t),s+1)));return n(e,0),l})(e,l),(e=>G(e,(e=>U(a,e)[0](t,...l??[],...n))))),e=>F(U(a,e),(([,t,l])=>(oe(t,l??[s],void 0,(t=>(H(t,e),$(t)?1:0))),Y(a,e),n(e),l))),e=>F(U(a,e),(([e,,s=[],l,n])=>{const a=(...o)=>{const r=w(o);r==w(s)?e(t,...o,...n(o)):E(s[r])?S(l[r]?.(...o)??[],(e=>a(...o,e))):a(...o,s[r])};a()}))]})(),Ye=e=>{if(!ve(e,((e,t)=>[r,c].includes(t))))return!1;const t=e[r];return!(!x(t)&&t!=a||(Te(e[c])!=t&&P(e,c),0))},Ze=(t,s)=>(!e||W(we,s)||Lt(s))&&ve(t,((e,t)=>_e(s,t,e)),(()=>Lt(s))),_e=(e,t,s,l)=>ve(l?s:lt(s,e,t),((l,n)=>F(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Lt(e,t))),et=(t,s,l,n)=>e?F(U(U(we,t),l),(e=>Te(n)!=e[r]?Lt(t,s,l,n,e[c]):n),(()=>Lt(t,s,l,n))):E(Te(n))?Lt(t,s,l,n):n,tt=(e,t)=>ve(t?e:nt(e),((t,s)=>F(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Et())),st=(e,s)=>t?F(U(Ie,e),(t=>Te(s)!=t[r]?Et(e,s,t[c]):s),(()=>Et(e,s))):E(Te(s))?Et(e,s):s,lt=(e,t,s)=>(F(U(pe,t),(([l,n])=>{G(l,((t,s)=>{N(e,s)||(e[s]=t)})),G(n,(l=>{N(e,l)||Lt(t,s,l)}))})),e),nt=e=>(t&&(G(Re,((t,s)=>{N(e,s)||(e[s]=t)})),G(me,(t=>{N(e,t)||Et(t)}))),e),at=e=>_(we,e,((e,t,s)=>{const l=K(),n=re();_(Z(we,t,K),s,((e,t,s)=>{Y(e,t,s),F(s[c],(e=>Y(l,t,e)),(()=>ce(n,t)))})),Y(pe,t,[l,n])}),((e,t)=>{Y(we,t),Y(pe,t)})),ot=e=>_(Ie,e,((e,t,s)=>{Y(Ie,t,s),F(s[c],(e=>Y(Re,t,e)),(()=>ce(me,t)))}),((e,t)=>{Y(Ie,t),Y(Re,t),H(me,t)})),rt=e=>D(e)?es():Ut(e),ct=e=>_(Ee,e,((e,t,s)=>it(t,s)),((e,t)=>vt(t))),it=(e,t)=>_(Z(Ee,e,(()=>(wt(e,1),Y(Je,e,de()),Y(Le,e,K()),K()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>Ct(e,t,s))),dt=(e,t,s,l,n)=>_(Z(t,s,(()=>(pt(e,s,1),K()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>St(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{W(s,l)||It(e,t,l,1);const a=U(s,l);n!==a&&(Rt(e,t,l,a,n),Y(s,l,n))},ht=(e,t,s,l,n)=>F(U(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),ft=e=>D(e)?ls():Xt(e),gt=e=>_(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>yt(t))),Tt=(e,t)=>{W(Fe,e)||mt(e,1);const s=U(Fe,e);t!==s&&(Jt(e,s,t),Y(Fe,e,t))},bt=(e,t)=>{const[s]=U(Je,e),l=s(t);return W(U(Ee,e),l)?bt(e,t):l},Vt=e=>U(Ee,e)??it(e,{}),vt=e=>it(e,{}),Ct=(e,t,s)=>{const[,l]=U(Je,e);l(s),dt(e,t,s,{},!0)},St=(e,t,s,l,n,a)=>{const o=U(U(pe,e)?.[0],n);if(!E(o)&&!a)return ut(e,s,l,n,o);const r=t=>{Rt(e,s,t,U(l,t)),It(e,s,t,-1),Y(l,t)};E(o)?r(n):X(l,r),$(l)&&(pt(e,s,-1),$(Y(t,s))&&(wt(e,-1),Y(Ee,e),Y(Je,e),Y(Le,e)))},yt=e=>{const t=U(Re,e);if(!E(t))return Tt(e,t);Jt(e,U(Fe,e)),mt(e,-1),Y(Fe,e)},wt=(e,t)=>Ce(i,e,t),pt=(e,t,s)=>Ce(Z(L,e,K),t,s),It=(e,t,s,l)=>{const n=U(Le,e),a=U(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Ce(Z(J,e,K),s,l),Y(n,s,a!=-l?a+l:null),Ce(Z(Z(O,e,K),t,K),s,l)},Rt=(e,t,s,l,n)=>Z(Z(Z(j,e,K),t,K),s,(()=>[l,0]))[1]=n,mt=(e,t)=>Ce(k,e,t),Jt=(e,t,s)=>Z(M,e,(()=>[t,0]))[1]=s,Lt=(e,t,s,l,n)=>(I(Z(Z(Z(ie,e,K),t,K),s,(()=>[])),l),n),Et=(e,t,s)=>(I(Z(ye,e,(()=>[])),t),s),Ft=(e,t,s)=>F(U(U(U(j,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(Gt(e,t,s))])),xt=e=>F(U(M,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ue(Qt(e))])),zt=e=>$(ie)||$(Be[e])?0:G(e?ae(ie):ie,((t,s)=>G(t,((t,l)=>G(t,((t,n)=>Qe(Be[e],[s,l,n],t))))))),Ot=e=>$(ye)||$(De[e])?0:G(e?le(ye):ye,((t,s)=>Qe(De[e],[s],t))),jt=(e,t,s)=>{if(!$(t))return Qe(e,s,(()=>ee(t))),1},kt=e=>{const t=$(Ae[e]),s=$(Ne[e])&&$(je[e])&&$(ke[e])&&t&&$(ze[e]),l=$(Pe[e])&&$(Me[e])&&$(Oe[e])&&$(xe[e]);if(!s||!l){const n=e?[le(i),ne(J),ne(L),ae(O),ae(j)]:[i,J,L,O,j];if(!s){jt(ze[e],n[0]),G(n[1],((t,s)=>jt(je[e],t,[s])));const s=re();G(n[2],((l,n)=>{jt(ke[e],l,[n])&&!t&&(Qe(Ae[e],[n,null]),ce(s,n))})),t||G(n[4],((t,l)=>{if(!W(s,l)){const s=re();G(t,(e=>G(e,(([t,l],n)=>l!==t?ce(s,n):H(e,n))))),G(s,(t=>Qe(Ae[e],[l,t])))}})),G(n[3],((t,s)=>G(t,((t,l)=>jt(Ne[e],t,[s,l])))))}if(!l){let t;G(n[4],((s,l)=>{let n;G(s,((s,a)=>{let o;G(s,(([s,r],c)=>{r!==s&&(Qe(Pe[e],[l,a,c],r,s,Ft),t=n=o=1)})),o&&Qe(Me[e],[l,a],Ft)})),n&&Qe(Oe[e],[l],Ft)})),t&&Qe(xe[e],void 0,Ft)}}},At=e=>{const t=$($e[e]),s=$(qe[e])&&$(We[e]);if(!t||!s){const l=e?[le(k),le(M)]:[k,M];if(t||jt($e[e],l[0]),!s){let t;G(l[1],(([s,l],n)=>{l!==s&&(Qe(qe[e],[n],l,s,xt),t=1)})),t&&Qe(We[e],void 0,xt)}}},Mt=(e,...t)=>(os((()=>e(...y(t,C)))),is),Nt=()=>[ee(j,((e,t)=>-1===U(i,t)?null:ee(e,((e,s)=>-1===U(U(L,t),s)?null:ee(e,(([,e])=>e??null),((e,t)=>ge(t)))),D)),D),ee(M,(([,e])=>e??null),((e,t)=>ge(t)))],Pt=()=>({cellsTouched:l,valuesTouched:n,changedCells:se(j,fe,ge),invalidCells:se(ie),changedValues:ee(M,fe,ge),invalidValues:ee(ye),changedTableIds:ee(i),changedRowIds:te(L),changedCellIds:se(O),changedValueIds:ee(k)}),Bt=()=>se(Ee),Dt=()=>Q(Ee),Wt=e=>Q(U(Ee,C(e))),$t=(e,t,s,l=0,n)=>{return y(p((o=U(Ee,C(e)),r=(e,s)=>[E(t)?s:U(e,C(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),y([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(a)),l,E(n)?n:l+n),(([,e])=>e));var a,o,r},qt=(e,t)=>Q(U(U(Ee,C(e)),C(t))),Gt=(e,t,s)=>U(U(U(Ee,C(e)),C(t)),C(s)),Ht=()=>ee(Fe),Kt=()=>Q(Fe),Qt=e=>U(Fe,C(e)),Ut=e=>Mt((()=>(e=>ve(e,Ze,Lt))(e)?ct(e):0)),Xt=e=>Mt((()=>tt(e)?gt(e):0)),Yt=e=>{try{rt(m(e))}catch{}return is},Zt=t=>Mt((()=>{if((e=ve(t,(e=>ve(e,Ye))))&&(at(t),!$(Ee))){const e=Bt();es(),Ut(e)}})),_t=e=>Mt((()=>{if(t=(e=>ve(e,Ye))(e)){const s=Ht();as(),ls(),t=!0,ot(e),Xt(s)}})),es=()=>Mt((()=>ct({}))),ts=e=>Mt((e=>W(Ee,e)?vt(e):0),e),ss=(e,t)=>Mt(((e,t)=>F(U(Ee,e),(s=>W(s,t)?Ct(e,s,t):0))),e,t),ls=()=>Mt((()=>gt({}))),ns=()=>Mt((()=>{at({}),e=!1})),as=()=>Mt((()=>{ot({}),t=!1})),os=(e,t)=>{if(-1!=o){rs();const s=e();return cs(t),s}},rs=()=>(-1!=o&&o++,1==o&&Qe(Ge,void 0,Nt,Pt),is),cs=e=>(o>0&&(o--,0==o&&(l=!$(j),n=!$(M),o=1,zt(1),l&&kt(1),Ot(1),n&&At(1),e?.(Nt,Pt)&&(G(j,((e,t)=>G(e,((e,s)=>G(e,(([e],l)=>be(is,t,s,l,e))))))),G(M,(([e],t)=>Ve(is,t,e))),l=n=!1),Qe(He[0],void 0,Nt,Pt),o=-1,zt(0),l&&kt(0),Ot(0),n&&At(0),Qe(He[1],void 0,Nt,Pt),o=0,l=n=!1,S([i,J,L,O,j,ie,k,M,ye],q))),is),is={getContent:()=>[Bt(),Ht()],getTables:Bt,getTableIds:Dt,getTable:e=>te(U(Ee,C(e))),getTableCellIds:e=>Q(U(Le,C(e))),getRowIds:Wt,getSortedRowIds:$t,getRow:(e,t)=>ee(U(U(Ee,C(e)),C(t))),getCellIds:qt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!$(Ee),hasTable:e=>W(Ee,C(e)),hasTableCell:(e,t)=>W(U(Le,C(e)),C(t)),hasRow:(e,t)=>W(U(Ee,C(e)),C(t)),hasCell:(e,t,s)=>W(U(U(Ee,C(e)),C(t)),C(s)),hasValues:()=>!$(Fe),hasValue:e=>W(Fe,C(e)),getTablesJson:()=>R(Ee),getValuesJson:()=>R(Fe),getJson:()=>R([Ee,Fe]),getTablesSchemaJson:()=>R(we),getValuesSchemaJson:()=>R(Ie),getSchemaJson:()=>R([we,Ie]),setContent:([e,t])=>Mt((()=>{(D(e)?es:Ut)(e),(D(t)?ls:Xt)(t)})),setTables:Ut,setTable:(e,t)=>Mt((e=>Ze(t,e)?it(e,t):0),e),setRow:(e,t,s)=>Mt(((e,t)=>_e(e,t,s)?dt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>os((()=>{let l;return _e(e,l,t)&&(e=C(e),dt(e,Vt(e),l=bt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Mt(((e,t)=>{if(_e(e,t,s,1)){const l=Vt(e);B(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Mt(((e,t,s)=>F(et(e,t,s,z(l)?l(Gt(e,t,s)):l),(l=>ht(e,Vt(e),t,s,l)))),e,t,s),setValues:Xt,setPartialValues:e=>Mt((()=>tt(e,1)?B(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Mt((e=>F(st(e,z(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Mt((()=>{B(e[0],((e,t)=>E(e)?ts(t):B(e,((e,s)=>E(e)?ss(t,s):B(e,((e,l)=>be(is,t,s,l,e))))))),B(e[1],((e,t)=>Ve(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{ft(m(e))}catch{}return is},setJson:e=>{try{const[t,s]=m(e);rt(t),ft(s)}catch{Yt(e)}return is},setTablesSchema:Zt,setValuesSchema:_t,setSchema:(e,t)=>Mt((()=>{Zt(e),_t(t)})),delTables:es,delTable:ts,delRow:ss,delCell:(e,t,s,l)=>Mt(((e,t,s)=>F(U(Ee,e),(n=>F(U(n,t),(a=>W(a,s)?St(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Mt((e=>W(Fe,e)?yt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Mt((()=>{ns(),as()})),transaction:os,startTransaction:rs,finishTransaction:cs,forEachTable:e=>G(Ee,((t,s)=>e(s,(e=>G(t,((t,s)=>e(s,(e=>X(t,e))))))))),forEachTableCell:(e,t)=>X(U(Le,C(e)),t),forEachRow:(e,t)=>G(U(Ee,C(e)),((e,s)=>t(s,(t=>X(e,t))))),forEachCell:(e,t,s)=>X(U(U(Ee,C(e)),C(t)),s),forEachValue:e=>X(Fe,e),addSortedRowIdsListener:(e,t,s,l,n,a,o)=>{let r=$t(e,t,s,l,n);return Ke((()=>{const o=$t(e,t,s,l,n);var c,i,d;i=r,w(c=o)===w(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,a(is,e,t,s,l,n,r))}),Ae[o?1:0],[e,t],[Dt])},addStartTransactionListener:e=>Ke(e,Ge),addWillFinishTransactionListener:e=>Ke(e,He[0]),addDidFinishTransactionListener:e=>Ke(e,He[1]),callListener:e=>(Xe(e),is),delListener:e=>(Ue(e),is),getListenerStats:()=>({}),createStore:Se};return B({[u]:[0,xe],[h]:[0,ze],[d]:[1,Oe,[Dt]],[d+T]:[1,je,[Dt]],[f]:[1,ke,[Dt]],Row:[2,Me,[Dt,Wt]],[T]:[2,Ne,[Dt,Wt]],[g]:[3,Pe,[Dt,Wt,qt],e=>ue(Gt(...e))],InvalidCell:[3,Be],[V]:[0,We],[v]:[0,$e],[b]:[1,qe,[Kt],e=>ue(Qt(e[0]))],InvalidValue:[1,De]},(([e,t,s,l],n)=>{is["add"+n+"Listener"]=(...n)=>Ke(n[e],t[n[e+1]?1:0],e>0?p(n,0,e):void 0,s,l)})),A(is)};e.createStore=Se},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",l=t(s),n=t(!0),a=t(0),o=t(t),r="type",c="default",i="Ids",d="Table",u=d+"s",h=d+i,f="Row"+i,g="Cell",T=g+i,b="Value",V=b+"s",C=b+i,S=e=>s+e,v=isFinite,y=(e,t)=>e instanceof t,w=e=>null==e,p=(e,t,s)=>w(e)?s?.():t(e),I=e=>e==l||e==n,m=e=>t(e)==o,R=(e,t)=>e.forEach(t),J=(e,t)=>e.map(t),E=e=>e.length,L=(e,t,s)=>e.slice(t,s),F=(e,...t)=>e.push(...t),x=Object,z=x.keys,O=x.isFrozen,j=x.freeze,k=e=>y(e,x)&&e.constructor==x,A=(e,t)=>!w(((e,t)=>p(e,(e=>e[t])))(e,t)),M=(e,t)=>(delete e[t],e),N=(e,t)=>J(x.entries(e),(([e,s])=>t(s,e))),P=e=>k(e)&&0==(e=>E(z(e)))(e),B=(e,t)=>e?.has(t)??!1,D=e=>w(e)||0==(e=>e.size)(e),W=e=>e.clear(),$=(e,t)=>e?.forEach(t),q=(e,t)=>e?.delete(t),G=e=>new Map(e),H=e=>[...e?.keys()??[]],K=(e,t)=>e?.get(t),Q=(e,t)=>$(e,((e,s)=>t(s,e))),U=(e,t,s)=>w(s)?(q(e,t),e):e?.set(t,s),X=(e,t,s)=>(B(e,t)||U(e,t,s()),K(e,t)),Y=(e,t,s,l=U)=>(N(t,((t,l)=>s(e,l,t))),Q(e,(s=>A(t,s)?0:l(e,s))),e),Z=(e,t,s)=>{const l={};return $(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},_=(e,t,s)=>Z(e,(e=>Z(e,t,s)),P),ee=(e,t,s)=>Z(e,(e=>_(e,t,s)),P),te=(e,t)=>{const s=G();return $(e,((e,l)=>s.set(l,t?.(e)??e))),s},se=e=>te(e,te),le=e=>te(e,se),ne=(e,t,s,l,n=0)=>p((s?X:K)(e,t[n],n>E(t)-2?s:G),(a=>{if(n>E(t)-2)return l?.(a)&&U(e,t[n]),a;const o=ne(a,t,s,l,n+1);return D(a)&&U(e,t[n]),o})),ae=e=>new Set(Array.isArray(e)||w(e)?e:[e]),oe=(e,t)=>e?.add(t),re=/^\d+$/,ce=()=>{const e=[];let t=0;return[l=>(l?e.shift():null)??s+t++,t=>{re.test(t)&&E(e)<1e3&&F(e,t)}]},ie=e=>[e,e],de=()=>[G(),G()],ue=e=>[...e],he=([e,t])=>e===t,fe=e=>{const s=t(e);return I(s)||s==a&&v(e)?s:void 0},ge=(e,t,s,l,n)=>w(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Te=(e,t,s)=>w(s)?e.delValue(t):e.setValue(t,s),be=e=>JSON.stringify(e,((e,t)=>y(t,Map)?x.fromEntries([...t]):t)),Ve=JSON.parse,Ce=(e,t,s)=>w(e)||!k(e)||P(e)||O(e)?(s?.(),!1):(N(e,((s,l)=>{t(s,l)||M(e,l)})),!P(e)),Se=(e,t,s)=>U(e,t,K(e,t)==-s?void 0:s),ve=()=>{let e,t,l=!1,n=!1,o=0;const i=G(),v=G(),y=G(),x=G(),z=G(),O=G(),k=G(),re=G(),ye=G(),we=G(),pe=G(),Ie=G(),me=G(),Re=ae(),Je=G(),Ee=G(),Le=G(),Fe=G(),xe=de(),ze=de(),Oe=de(),je=de(),ke=de(),Ae=de(),Me=de(),Ne=de(),Pe=de(),Be=de(),De=de(),We=de(),$e=de(),qe=de(),Ge=G(),He=de(),[Ke,Qe,Ue,Xe]=(e=>{let t;const[l,n]=ce(),a=G();return[(e,n,o,r=[],c=(()=>[]))=>{t??=is;const i=l(1);return U(a,i,[e,n,o,r,c]),oe(ne(n,o??[s],ae),i),i},(e,l,...n)=>R(((e,t=[s])=>{const l=[],n=(e,s)=>s==E(t)?F(l,e):null===t[s]?$(e,(e=>n(e,s+1))):R([t[s],null],(t=>n(K(e,t),s+1)));return n(e,0),l})(e,l),(e=>$(e,(e=>K(a,e)[0](t,...l??[],...n))))),e=>p(K(a,e),(([,t,l])=>(ne(t,l??[s],void 0,(t=>(q(t,e),D(t)?1:0))),U(a,e),n(e),l))),e=>p(K(a,e),(([e,,s=[],l,n])=>{const a=(...o)=>{const r=E(o);r==E(s)?e(t,...o,...n(o)):w(s[r])?R(l[r]?.(...o)??[],(e=>a(...o,e))):a(...o,s[r])};a()}))]})(),Ye=e=>{if(!Ce(e,((e,t)=>[r,c].includes(t))))return!1;const t=e[r];return!(!I(t)&&t!=a||(fe(e[c])!=t&&M(e,c),0))},Ze=(t,s)=>(!e||B(we,s)||Et(s))&&Ce(t,((e,t)=>_e(s,t,e)),(()=>Et(s))),_e=(e,t,s,l)=>Ce(l?s:lt(s,e,t),((l,n)=>p(et(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Et(e,t))),et=(t,s,l,n)=>e?p(K(K(we,t),l),(e=>fe(n)!=e[r]?Et(t,s,l,n,e[c]):n),(()=>Et(t,s,l,n))):w(fe(n))?Et(t,s,l,n):n,tt=(e,t)=>Ce(t?e:nt(e),((t,s)=>p(st(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Lt())),st=(e,s)=>t?p(K(Ie,e),(t=>fe(s)!=t[r]?Lt(e,s,t[c]):s),(()=>Lt(e,s))):w(fe(s))?Lt(e,s):s,lt=(e,t,s)=>(p(K(pe,t),(([l,n])=>{$(l,((t,s)=>{A(e,s)||(e[s]=t)})),$(n,(l=>{A(e,l)||Et(t,s,l)}))})),e),nt=e=>(t&&($(me,((t,s)=>{A(e,s)||(e[s]=t)})),$(Re,(t=>{A(e,t)||Lt(t)}))),e),at=e=>Y(we,e,((e,t,s)=>{const l=G(),n=ae();Y(X(we,t,G),s,((e,t,s)=>{U(e,t,s),p(s[c],(e=>U(l,t,e)),(()=>oe(n,t)))})),U(pe,t,[l,n])}),((e,t)=>{U(we,t),U(pe,t)})),ot=e=>Y(Ie,e,((e,t,s)=>{U(Ie,t,s),p(s[c],(e=>U(me,t,e)),(()=>oe(Re,t)))}),((e,t)=>{U(Ie,t),U(me,t),q(Re,t)})),rt=e=>P(e)?es():Ut(e),ct=e=>Y(Le,e,((e,t,s)=>it(t,s)),((e,t)=>Ct(t))),it=(e,t)=>Y(X(Le,e,(()=>(wt(e,1),U(Je,e,ce()),U(Ee,e,G()),G()))),t,((t,s,l)=>dt(e,t,s,l)),((t,s)=>St(e,t,s))),dt=(e,t,s,l,n)=>Y(X(t,s,(()=>(pt(e,s,1),G()))),l,((t,l,n)=>ut(e,s,t,l,n)),((l,a)=>vt(e,t,s,l,a,n))),ut=(e,t,s,l,n)=>{B(s,l)||It(e,t,l,1);const a=K(s,l);n!==a&&(mt(e,t,l,a,n),U(s,l,n))},ht=(e,t,s,l,n)=>p(K(t,s),(t=>ut(e,s,t,l,n)),(()=>dt(e,t,s,lt({[l]:n},e,s)))),ft=e=>P(e)?ls():Xt(e),gt=e=>Y(Fe,e,((e,t,s)=>Tt(t,s)),((e,t)=>yt(t))),Tt=(e,t)=>{B(Fe,e)||Rt(e,1);const s=K(Fe,e);t!==s&&(Jt(e,s,t),U(Fe,e,t))},bt=(e,t)=>{const[s]=K(Je,e),l=s(t);return B(K(Le,e),l)?bt(e,t):l},Vt=e=>K(Le,e)??it(e,{}),Ct=e=>it(e,{}),St=(e,t,s)=>{const[,l]=K(Je,e);l(s),dt(e,t,s,{},!0)},vt=(e,t,s,l,n,a)=>{const o=K(K(pe,e)?.[0],n);if(!w(o)&&!a)return ut(e,s,l,n,o);const r=t=>{mt(e,s,t,K(l,t)),It(e,s,t,-1),U(l,t)};w(o)?r(n):Q(l,r),D(l)&&(pt(e,s,-1),D(U(t,s))&&(wt(e,-1),U(Le,e),U(Je,e),U(Ee,e)))},yt=e=>{const t=K(me,e);if(!w(t))return Tt(e,t);Jt(e,K(Fe,e)),Rt(e,-1),U(Fe,e)},wt=(e,t)=>Se(i,e,t),pt=(e,t,s)=>Se(X(y,e,G),t,s),It=(e,t,s,l)=>{const n=K(Ee,e),a=K(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&Se(X(v,e,G),s,l),U(n,s,a!=-l?a+l:null),Se(X(X(x,e,G),t,G),s,l)},mt=(e,t,s,l,n)=>X(X(X(z,e,G),t,G),s,(()=>[l,0]))[1]=n,Rt=(e,t)=>Se(O,e,t),Jt=(e,t,s)=>X(k,e,(()=>[t,0]))[1]=s,Et=(e,t,s,l,n)=>(F(X(X(X(re,e,G),t,G),s,(()=>[])),l),n),Lt=(e,t,s)=>(F(X(ye,e,(()=>[])),t),s),Ft=(e,t,s)=>p(K(K(K(z,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ie(Gt(e,t,s))])),xt=e=>p(K(k,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ie(Qt(e))])),zt=e=>D(re)||D(Be[e])?0:$(e?le(re):re,((t,s)=>$(t,((t,l)=>$(t,((t,n)=>Qe(Be[e],[s,l,n],t))))))),Ot=e=>D(ye)||D(De[e])?0:$(e?te(ye):ye,((t,s)=>Qe(De[e],[s],t))),jt=(e,t,s)=>{if(!D(t))return Qe(e,s,(()=>Z(t))),1},kt=e=>{const t=D(Ae[e]),s=D(Ne[e])&&D(je[e])&&D(ke[e])&&t&&D(ze[e]),l=D(Pe[e])&&D(Me[e])&&D(Oe[e])&&D(xe[e]);if(!s||!l){const n=e?[te(i),se(v),se(y),le(x),le(z)]:[i,v,y,x,z];if(!s){jt(ze[e],n[0]),$(n[1],((t,s)=>jt(je[e],t,[s])));const s=ae();$(n[2],((l,n)=>{jt(ke[e],l,[n])&&!t&&(Qe(Ae[e],[n,null]),oe(s,n))})),t||$(n[4],((t,l)=>{if(!B(s,l)){const s=ae();$(t,(e=>$(e,(([t,l],n)=>l!==t?oe(s,n):q(e,n))))),$(s,(t=>Qe(Ae[e],[l,t])))}})),$(n[3],((t,s)=>$(t,((t,l)=>jt(Ne[e],t,[s,l])))))}if(!l){let t;$(n[4],((s,l)=>{let n;$(s,((s,a)=>{let o;$(s,(([s,r],c)=>{r!==s&&(Qe(Pe[e],[l,a,c],r,s,Ft),t=n=o=1)})),o&&Qe(Me[e],[l,a],Ft)})),n&&Qe(Oe[e],[l],Ft)})),t&&Qe(xe[e],void 0,Ft)}}},At=e=>{const t=D($e[e]),s=D(qe[e])&&D(We[e]);if(!t||!s){const l=e?[te(O),te(k)]:[O,k];if(t||jt($e[e],l[0]),!s){let t;$(l[1],(([s,l],n)=>{l!==s&&(Qe(qe[e],[n],l,s,xt),t=1)})),t&&Qe(We[e],void 0,xt)}}},Mt=(e,...t)=>(os((()=>e(...J(t,S)))),is),Nt=()=>[Z(z,((e,t)=>-1===K(i,t)?null:Z(e,((e,s)=>-1===K(K(y,t),s)?null:Z(e,(([,e])=>e??null),((e,t)=>he(t)))),P)),P),Z(k,(([,e])=>e??null),((e,t)=>he(t)))],Pt=()=>({cellsTouched:l,valuesTouched:n,changedCells:ee(z,ue,he),invalidCells:ee(re),changedValues:Z(k,ue,he),invalidValues:Z(ye),changedTableIds:Z(i),changedRowIds:_(y),changedCellIds:ee(x),changedValueIds:Z(O)}),Bt=()=>ee(Le),Dt=()=>H(Le),Wt=e=>H(K(Le,S(e))),$t=(e,t,s,l=0,n)=>{return J(L((o=K(Le,S(e)),r=(e,s)=>[w(t)?s:K(e,S(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),J([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(a)),l,w(n)?n:l+n),(([,e])=>e));var a,o,r},qt=(e,t)=>H(K(K(Le,S(e)),S(t))),Gt=(e,t,s)=>K(K(K(Le,S(e)),S(t)),S(s)),Ht=()=>Z(Fe),Kt=()=>H(Fe),Qt=e=>K(Fe,S(e)),Ut=e=>Mt((()=>(e=>Ce(e,Ze,Et))(e)?ct(e):0)),Xt=e=>Mt((()=>tt(e)?gt(e):0)),Yt=e=>{try{rt(Ve(e))}catch{}return is},Zt=t=>Mt((()=>{if((e=Ce(t,(e=>Ce(e,Ye))))&&(at(t),!D(Le))){const e=Bt();es(),Ut(e)}})),_t=e=>Mt((()=>{if(t=(e=>Ce(e,Ye))(e)){const s=Ht();as(),ls(),t=!0,ot(e),Xt(s)}})),es=()=>Mt((()=>ct({}))),ts=e=>Mt((e=>B(Le,e)?Ct(e):0),e),ss=(e,t)=>Mt(((e,t)=>p(K(Le,e),(s=>B(s,t)?St(e,s,t):0))),e,t),ls=()=>Mt((()=>gt({}))),ns=()=>Mt((()=>{at({}),e=!1})),as=()=>Mt((()=>{ot({}),t=!1})),os=(e,t)=>{if(-1!=o){rs();const s=e();return cs(t),s}},rs=()=>(-1!=o&&o++,1==o&&Qe(Ge,void 0,Nt,Pt),is),cs=e=>(o>0&&(o--,0==o&&(l=!D(z),n=!D(k),o=1,zt(1),l&&kt(1),Ot(1),n&&At(1),e?.(Nt,Pt)&&($(z,((e,t)=>$(e,((e,s)=>$(e,(([e],l)=>ge(is,t,s,l,e))))))),$(k,(([e],t)=>Te(is,t,e))),l=n=!1),Qe(He[0],void 0,Nt,Pt),o=-1,zt(0),l&&kt(0),Ot(0),n&&At(0),Qe(He[1],void 0,Nt,Pt),o=0,l=n=!1,R([i,v,y,x,z,re,O,k,ye],W))),is),is={getContent:()=>[Bt(),Ht()],getTables:Bt,getTableIds:Dt,getTable:e=>_(K(Le,S(e))),getTableCellIds:e=>H(K(Ee,S(e))),getRowIds:Wt,getSortedRowIds:$t,getRow:(e,t)=>Z(K(K(Le,S(e)),S(t))),getCellIds:qt,getCell:Gt,getValues:Ht,getValueIds:Kt,getValue:Qt,hasTables:()=>!D(Le),hasTable:e=>B(Le,S(e)),hasTableCell:(e,t)=>B(K(Ee,S(e)),S(t)),hasRow:(e,t)=>B(K(Le,S(e)),S(t)),hasCell:(e,t,s)=>B(K(K(Le,S(e)),S(t)),S(s)),hasValues:()=>!D(Fe),hasValue:e=>B(Fe,S(e)),getTablesJson:()=>be(Le),getValuesJson:()=>be(Fe),getJson:()=>be([Le,Fe]),getTablesSchemaJson:()=>be(we),getValuesSchemaJson:()=>be(Ie),getSchemaJson:()=>be([we,Ie]),setContent:([e,t])=>Mt((()=>{(P(e)?es:Ut)(e),(P(t)?ls:Xt)(t)})),setTables:Ut,setTable:(e,t)=>Mt((e=>Ze(t,e)?it(e,t):0),e),setRow:(e,t,s)=>Mt(((e,t)=>_e(e,t,s)?dt(e,Vt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>os((()=>{let l;return _e(e,l,t)&&(e=S(e),dt(e,Vt(e),l=bt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Mt(((e,t)=>{if(_e(e,t,s,1)){const l=Vt(e);N(s,((s,n)=>ht(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Mt(((e,t,s)=>p(et(e,t,s,m(l)?l(Gt(e,t,s)):l),(l=>ht(e,Vt(e),t,s,l)))),e,t,s),setValues:Xt,setPartialValues:e=>Mt((()=>tt(e,1)?N(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Mt((e=>p(st(e,m(t)?t(Qt(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Mt((()=>{N(e[0],((e,t)=>w(e)?ts(t):N(e,((e,s)=>w(e)?ss(t,s):N(e,((e,l)=>ge(is,t,s,l,e))))))),N(e[1],((e,t)=>Te(is,t,e)))})),setTablesJson:Yt,setValuesJson:e=>{try{ft(Ve(e))}catch{}return is},setJson:e=>{try{const[t,s]=Ve(e);rt(t),ft(s)}catch{Yt(e)}return is},setTablesSchema:Zt,setValuesSchema:_t,setSchema:(e,t)=>Mt((()=>{Zt(e),_t(t)})),delTables:es,delTable:ts,delRow:ss,delCell:(e,t,s,l)=>Mt(((e,t,s)=>p(K(Le,e),(n=>p(K(n,t),(a=>B(a,s)?vt(e,n,t,a,s,l):0))))),e,t,s),delValues:ls,delValue:e=>Mt((e=>B(Fe,e)?yt(e):0),e),delTablesSchema:ns,delValuesSchema:as,delSchema:()=>Mt((()=>{ns(),as()})),transaction:os,startTransaction:rs,finishTransaction:cs,forEachTable:e=>$(Le,((t,s)=>e(s,(e=>$(t,((t,s)=>e(s,(e=>Q(t,e))))))))),forEachTableCell:(e,t)=>Q(K(Ee,S(e)),t),forEachRow:(e,t)=>$(K(Le,S(e)),((e,s)=>t(s,(t=>Q(e,t))))),forEachCell:(e,t,s)=>Q(K(K(Le,S(e)),S(t)),s),forEachValue:e=>Q(Fe,e),addSortedRowIdsListener:(e,t,s,l,n,a,o)=>{let r=$t(e,t,s,l,n);return Ke((()=>{const o=$t(e,t,s,l,n);var c,i,d;i=r,E(c=o)===E(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,a(is,e,t,s,l,n,r))}),Ae[o?1:0],[e,t],[Dt])},addStartTransactionListener:e=>Ke(e,Ge),addWillFinishTransactionListener:e=>Ke(e,He[0]),addDidFinishTransactionListener:e=>Ke(e,He[1]),callListener:e=>(Xe(e),is),delListener:e=>(Ue(e),is),getListenerStats:()=>({}),createStore:ve};return N({[u]:[0,xe],[h]:[0,ze],[d]:[1,Oe,[Dt]],[d+T]:[1,je,[Dt]],[f]:[1,ke,[Dt]],Row:[2,Me,[Dt,Wt]],[T]:[2,Ne,[Dt,Wt]],[g]:[3,Pe,[Dt,Wt,qt],e=>ie(Gt(...e))],InvalidCell:[3,Be],[V]:[0,We],[C]:[0,$e],[b]:[1,qe,[Kt],e=>ie(Qt(e[0]))],InvalidValue:[1,De]},(([e,t,s,l],n)=>{is["add"+n+"Listener"]=(...n)=>Ke(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0,s,l)})),j(is)};e.createStore=ve},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),o=t(0),r=t(t),l="type",i="default",c="Listener",d="Result",u="add",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",S=w+h,T="Sorted"+w+h,v="Cell",R=v+h,y="Value",I=y+"s",p=y+h,C=e=>s+e,b=(e,t)=>e.includes(t),V=(e,t)=>e.every(t),m=(e,t)=>J(e)===J(t)&&V(e,((e,s)=>t[s]===e)),E=(e,t)=>V(e,((s,n)=>0==n||t(e[n-1],s)<=0)),k=(e,t)=>e.sort(t),M=(e,t)=>e.forEach(t),x=(e,t)=>e.map(t),D=e=>F(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),F=(e,t,s)=>e.reduce(t,s),Q=(e,t,s)=>e.slice(t,s),z=(e,...t)=>e.push(...t),N=e=>e.pop(),j=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>q(t,Map)?F([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),P=JSON.parse,B=Math.max,W=Math.min,$=isFinite,q=(e,t)=>e instanceof t,G=e=>null==e,H=(e,t,s)=>G(e)?s?.():t(e),K=e=>e==n||e==a,U=e=>t(e)==r,X=e=>Array.isArray(e),Y=()=>{},Z=Object,_=Z.keys,ee=Z.isFrozen,te=Z.freeze,se=e=>q(e,Z)&&e.constructor==Z,ne=(e,t)=>!G(((e,t)=>H(e,(e=>e[t])))(e,t)),ae=(e,t)=>(delete e[t],e),oe=(e,t)=>x(Z.entries(e),(([e,s])=>t(s,e))),re=e=>se(e)&&0==(e=>J(_(e)))(e),le=e=>e.size,ie=(e,t)=>e?.has(t)??!1,ce=e=>G(e)||0==le(e),de=e=>[...e?.values()??[]],ue=e=>e.clear(),he=(e,t)=>e?.forEach(t),ge=(e,t)=>e?.delete(t),fe=e=>new Map(e),Le=e=>[...e?.keys()??[]],we=(e,t)=>e?.get(t),Se=(e,t)=>he(e,((e,s)=>t(s,e))),Te=(e,t,s)=>G(s)?(ge(e,t),e):e?.set(t,s),ve=(e,t,s)=>(ie(e,t)||Te(e,t,s()),we(e,t)),Re=(e,t,s,n=Te)=>(oe(t,((t,n)=>s(e,n,t))),Se(e,(s=>ne(t,s)?0:n(e,s))),e),ye=(e,t,s)=>{const n={};return he(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Ie=(e,t,s)=>ye(e,(e=>ye(e,t,s)),re),pe=(e,t,s)=>ye(e,(e=>Ie(e,t,s)),re),Ce=(e,t)=>{const s=fe();return he(e,((e,n)=>s.set(n,t?.(e)??e))),s},be=e=>Ce(e,Ce),Ve=e=>Ce(e,be),me=(e,t,s,n,a=0)=>H((s?ve:we)(e,t[a],a>J(t)-2?s:fe),(o=>{if(a>J(t)-2)return n?.(o)&&Te(e,t[a]),o;const r=me(o,t,s,n,a+1);return ce(o)&&Te(e,t[a]),r})),Ee=e=>{const s=t(e);return K(s)||s==o&&$(e)?s:void 0},ke=(e,t,s,n,a)=>G(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Me=(e,t,s)=>G(s)?e.delValue(t):e.setValue(t,s),xe=e=>new Set(X(e)||G(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s)=>{const n=e.hasRow,a=fe(),o=fe(),r=fe(),l=fe(),i=fe(),c=(t,s,...n)=>{const a=ve(i,t,xe);return M(n,(t=>De(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>H(we(i,t),(n=>{M(A(s)?de(n):s,(t=>{e.delListener(t),ge(n,t)})),ce(n)&&Te(i,t)})),u=(e,s)=>{Te(a,e,s),ie(o,e)||(Te(o,e,t()),Te(r,e,fe()),Te(l,e,fe()))},h=e=>{Te(a,e),Te(o,e),Te(r,e),Te(l,e),d(e)};return[()=>e,()=>Le(a),e=>Se(o,e),e=>ie(o,e),e=>we(a,e),e=>we(o,e),(e,t)=>Te(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=fe(),f=fe(),L=we(r,t),w=we(l,t),S=t=>{const o=s=>e.getCell(a,t,s),r=we(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||X(r)&&X(l)&&m(r,l)||Te(g,t,[r,l]),!G(h)){const e=we(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&Te(f,t,s)}},T=e=>{o((()=>{he(g,(([,e],t)=>Te(L,t,e))),he(f,((e,t)=>Te(w,t,e)))}),g,f,L,w,e),ue(g),ue(f)};Se(L,S),e.hasTable(a)&&M(e.getRowIds(a),(e=>{ie(L,e)||S(e)})),T(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>S(s))),e.addTableListener(a,(()=>T())))},h,()=>Se(i,h),c,d]},Ae=(e,a)=>t(e)==n?t=>t(e):e??(()=>a??s),Fe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Qe=/^\d+$/,ze=()=>{const e=[];let t=0;return[n=>(n?j(e):null)??s+t++,t=>{Qe.test(t)&&J(e)<1e3&&z(e,t)}]},Ne=e=>{let t;const[n,a]=ze(),o=fe();return[(a,r,l,i=[],c=(()=>[]))=>{t??=e();const d=n(1);return Te(o,d,[a,r,l,i,c]),De(me(r,l??[s],xe),d),d},(e,n,...a)=>M(((e,t=[s])=>{const n=[],a=(e,s)=>s==J(t)?z(n,e):null===t[s]?he(e,(e=>a(e,s+1))):M([t[s],null],(t=>a(we(e,t),s+1)));return a(e,0),n})(e,n),(e=>he(e,(e=>we(o,e)[0](t,...n??[],...a))))),e=>H(we(o,e),(([,t,n])=>(me(t,n??[s],void 0,(t=>(ge(t,e),ce(t)?1:0))),Te(o,e),a(e),n))),e=>H(we(o,e),(([e,,s=[],n,a])=>{const o=(...r)=>{const l=J(r);l==J(s)?e(t,...r,...a(r)):G(s[l])?M(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,s[l])};o()}))]},je=Fe((e=>{let t,n,a,o=100,r=fe(),l=fe(),i=1;const c=fe(),d=fe(),[u,h,g]=Ne((()=>O)),f=fe(),L=fe(),w=[],S=[],T=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=we(f,s);he(n,((s,n)=>he(s,((s,a)=>he(s,((s,o)=>ke(e,n,a,o,s[t]))))))),he(a,((s,n)=>Me(e,n,s[t])))})),i=1},v=e=>{Te(f,e),Te(L,e),h(d,[e])},R=(e,t)=>M(((e,t)=>e.splice(0,t))(e,t??J(e)),v),y=()=>R(w,J(w)-o),I=()=>H(t,(()=>{z(w,t),y(),R(S),t=void 0,a=1})),p=()=>{t=N(w),a=1},C=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){I();const e=ve(r,t,fe),l=ve(e,s,fe),i=ve(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ce(Te(l,n))&&ce(Te(e,s))&&ce(Te(r,t))&&p(),x()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){I();const e=ve(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ce(Te(l,t))&&p(),x()}})),m=(e="")=>(G(t)&&(t=s+n++,Te(f,t,[r,l]),F(t,e),r=fe(),l=fe(),a=1),t),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(S,m()),T(0,t),t=N(w),a=1)},k=()=>{A(S)||(z(w,t),t=j(S),T(1,t),a=1)},x=()=>{a&&(h(c),a=0)},D=e=>{const t=m(e);return x(),t},F=(e,t)=>(Q(e)&&we(L,e)!==t&&(Te(L,e,t),h(d,[e])),O),Q=e=>ie(f,e),O={setSize:e=>(o=e,y(),O),addCheckpoint:D,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...S]],forEachCheckpoint:e=>Se(L,e),hasCheckpoint:Q,getCheckpoint:e=>we(L,e),goBackward:()=>(E(),x(),O),goForward:()=>(k(),x(),O),goTo:e=>{const s=b(w,e)?E:b(S,e)?k:null;for(;!G(s)&&e!=t;)s();return x(),O},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),O),clear:()=>(R(w),R(S),G(t)||v(t),t=void 0,n=0,D(),O),destroy:()=>{e.delListener(C),e.delListener(V)},getListenerStats:()=>({})};return te(O.clear())})),Oe=(e,t)=>e<t?-1:1,Pe=Fe((e=>{const t=fe(),n=fe(),[a,o,r,l,i,c,d,,u,h,g]=Je(e,fe,(e=>G(e)?s:X(e)?x(e,C):C(e))),[f,L,w]=Ne((()=>T)),S=(t,s,n)=>{const a=i(t);he(n,((t,n)=>s(n,(s=>he(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},T={setIndexDefinition:(e,s,a,o,r,l=Oe)=>{const i=G(r)?void 0:([e],[t])=>r(e,t);return u(e,s,((s,a,r,u,h,g)=>{let f=0;const w=xe(),S=xe(),T=c(e);if(he(a,(([e,t],s)=>{const n=xe(e),a=xe(t);he(n,(e=>ge(a,e)?ge(n,e):0)),he(n,(e=>{De(w,e),H(we(T,e),(t=>{ge(t,s),ce(t)&&(Te(T,e),f=1)}))})),he(a,(e=>{De(w,e),ie(T,e)||(Te(T,e,xe()),f=1),De(we(T,e),s),G(o)||De(S,e)}))})),s(),ce(h)||(g?Se(T,(e=>De(S,e))):Se(r,(e=>H(we(u,e),(e=>De(S,e))))),he(S,(e=>{const t=(t,s)=>l(we(h,t),we(h,s),e),s=[...we(T,e)];E(s,t)||(Te(T,e,xe(k(s,t))),De(w,e))}))),(f||g)&&!G(i)){const t=[...T];E(t,i)||(d(e,fe(k(t,i))),f=1)}f&&L(t,[e]),he(w,(t=>L(n,[e,t])))}),Ae(a),H(o,Ae)),T},delIndexDefinition:e=>(h(e),T),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>ie(c(e),t),getTableId:i,getSliceIds:e=>Le(c(e)),getSliceRowIds:(e,t)=>de(we(c(e),t)),addSliceIdsListener:(e,s)=>f(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),T),destroy:g,getListenerStats:()=>({})};return te(T)})),Be=fe([["avg",[(e,t)=>D(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>B(...e),(e,t)=>B(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:B(t,e)]],["min",[e=>W(...e),(e,t)=>W(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:W(t,e)]],["sum",[e=>D(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),We=(e,t,s,n,a,o=!1)=>{if(ce(s))return;const[r,l,i,c]=a;return o||=G(e),he(n,(([s,n])=>{o||(e=G(s)?l?.(e,n,t++):G(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=G(e))})),o?r(de(s),le(s)):e},$e=Fe((e=>{const t=fe(),[n,a,o,r,l,i,c,,d,u,h]=Je(e,Y,(e=>isNaN(e)||G(e)||!0===e||!1===e||e===s?void 0:1*e)),[g,f,L]=Ne((()=>w)),w={setMetricDefinition:(e,s,n,a,o,r,l)=>{const u=U(n)?[n,o,r,l]:we(Be,n)??we(Be,"sum");return d(e,s,((s,n,a,o,r,l)=>{const d=i(e),h=le(o);l||=G(d),s();let g=We(d,h,o,n,u,l);$(g)||(g=void 0),g!=d&&(c(e,g),f(t,[e],g,d))}),Ae(a,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,s)=>g(s,t,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return te(w)})),qe=Fe((e=>{const t=e.createStore,[n,a,o,r,l,,,i,,h,f,L,y]=Je(e,(()=>!0),Y),I=t(),p=t(),C=fe(),b=(e,t,...s)=>M(s,(s=>De(ve(ve(C,t,fe),e,xe),s))),m=e=>{H(we(C,e),(e=>{Se(e,((e,t)=>he(t,(t=>e.delListener(t))))),ue(e)})),M([p,I],(t=>t.delTable(e)))},E=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),k={setQueryDefinition:(t,n,a)=>{i(t,n),m(t);const o=[],r=[[null,[n,null,null,[],fe()]]],l=[],c=[],d=[];a({select:(e,t)=>{const n=U(e)?[J(o)+s,e]:[G(t)?e:t,s=>s(e,t)];return z(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=G(s)||U(t)?null:t,a=G(n)?t:s,o=[e,[e,n,U(a)?a:e=>e(a),[],fe()]];return z(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>z(l,U(e)?e:G(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,U(t)?[t,s,n,a]:we(Be,t)??[(e,t)=>t]]];return z(c,o),{as:e=>o[0]=e}},having:(e,t)=>z(d,U(e)?e:s=>s(e)===t)});const u=fe(o);if(ce(u))return k;const h=fe(r);Se(h,((e,[,t])=>H(we(h,t),(({3:t})=>G(e)?0:z(t,e)))));const g=fe(c);let f=I;if(ce(g)&&A(d))f=p;else{E(t,f,p);const e=fe();Se(g,((t,[s,n])=>De(ve(e,s,xe),[t,n])));const s=xe();Se(u,(t=>ie(e,t)?0:De(s,t)));const n=fe(),a=(s,n,a,o)=>H(s,(([r,l,i,c])=>{Se(n,((t,[s])=>{const n=ve(r,t,fe),l=we(n,a),i=o?void 0:s;if(l!==i){const s=xe([[l,i]]),o=le(n);Te(n,a,i),he(we(e,t),(([e,t])=>{const a=We(c[e],o,n,s,t);c[e]=G(Ee(a))?null:a}))}})),ce(l)||!V(d,(e=>e((e=>c[e]))))?p.delRow(t,i):G(i)?s[2]=p.addRow(t,c):p.setRow(t,i,c)}));b(f,t,f.addRowListener(t,null,((o,r,l,i)=>{const c=[],d=[],u=fe(),h=f.hasRow(t,l);let g=!h;he(s,(e=>{const[s,n,a]=i(t,l,e);z(c,n),z(d,a),g||=s})),Se(e,(e=>{const[s,,n]=i(t,l,e);(g||s)&&Te(u,e,[n])})),g&&a(me(n,c,void 0,(([,e])=>(ge(e,l),ce(e)))),u,l,1),h&&a(me(n,d,(()=>{const e={};return he(s,(s=>e[s]=f.getCell(t,l,s))),[fe(),xe(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(t,e,f);const w=(s,a,o,r)=>{const i=t=>e.getCell(a,o,t);M(r,(n=>{const[a,,o,r,l]=we(h,n),c=o?.(i,s),[d,u]=we(l,s)??[];c!=d&&(G(u)||y(t,u),Te(l,s,G(c)?null:[c,...L(t,1,e.addRowListener(a,c,(()=>w(s,a,c,r))))]))})),(s=>{const a=(t,a)=>e.getCell(...G(a)?[n,s,t]:t===n?[n,s,a]:[we(h,t)?.[0],we(we(h,t)?.[4],s)?.[0],a]);f.transaction((()=>V(l,(e=>e(a)))?Se(u,((e,n)=>ke(f,t,s,e,n(a,s)))):f.delRow(t,s)))})(s)},{3:S}=we(h,null);return f.transaction((()=>L(t,1,e.addRowListener(n,null,((s,a,o)=>{e.hasRow(n,o)?w(o,n,o,S):(f.delRow(t,o),he(h,(({4:e})=>H(we(e,o),(([,s])=>{y(t,s),Te(e,o)})))))}))))),k},delQueryDefinition:e=>(m(e),h(e),k),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(p.delListener(e),k),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return oe({[g]:[1,1],[S]:[0,1],[T]:[0,5],[w]:[1,2],[R]:[0,2],[v]:[1,3]},(([e,t],s)=>{M(e?["get","has","forEach"]:["get"],(e=>k[e+d+s]=(...t)=>p[e+s](...t))),k[u+d+s+c]=(...e)=>p[u+s+c](...Q(e,0,t),((s,...n)=>e[t](k,...n)))})),te(k)})),Ge=Fe((e=>{const t=fe(),n=fe(),a=fe(),o=fe(),[r,l,i,c,d,u,,,h,g,f]=Je(e,(()=>[fe(),fe(),fe(),fe()]),(e=>G(e)?void 0:e+s)),[L,w,S]=Ne((()=>y)),T=(e,t,s)=>H(u(e),(([n,,a])=>{if(!ie(a,t)){const o=xe();if(d(e)!=R(e))De(o,t);else{let e=t;for(;!G(e)&&!ie(o,e);)De(o,e),e=we(n,e)}if(s)return o;Te(a,t,o)}return we(a,t)})),v=(e,t)=>H(u(e),(([,,e])=>Te(e,t))),R=e=>we(t,e),y={setRelationshipDefinition:(e,s,r,l)=>(Te(t,e,r),h(e,s,((t,s)=>{const r=xe(),l=xe(),i=xe(),[c,d]=u(e);he(s,(([t,s],n)=>{G(t)||(De(l,t),H(we(d,t),(e=>{ge(e,n),ce(e)&&Te(d,t)}))),G(s)||(De(l,s),ie(d,s)||Te(d,s,xe()),De(we(d,s),n)),De(r,n),Te(c,n,s),Se(we(o,e),(t=>{ie(T(e,t),n)&&De(i,t)}))})),t(),he(r,(t=>w(n,[e,t]))),he(l,(t=>w(a,[e,t]))),he(i,(t=>{v(e,t),w(o,[e,t])}))}),Ae(l)),y),delRelationshipDefinition:e=>(Te(t,e),g(e),y),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>we(u(e)?.[0],t),getLocalRowIds:(e,t)=>de(we(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>G(u(e))?[t]:de(T(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(T(e,t),L(s,o,[e,t])),delListener:e=>(v(...S(e)),y),destroy:f,getListenerStats:()=>({})};return te(y)})),He=e=>[e,e],Ke=()=>[fe(),fe()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=(e,t,s)=>G(e)||!se(e)||re(e)||ee(e)?(s?.(),!1):(oe(e,((s,n)=>{t(s,n)||ae(e,n)})),!re(e)),Ze=(e,t,s)=>Te(e,t,we(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,a=0;const r=fe(),d=fe(),h=fe(),T=fe(),V=fe(),E=fe(),D=fe(),J=fe(),A=fe(),F=fe(),N=fe(),j=fe(),B=fe(),W=xe(),$=fe(),q=fe(),X=fe(),Y=fe(),Z=Ke(),_=Ke(),ee=Ke(),se=Ke(),le=Ke(),de=Ke(),me=Ke(),Je=Ke(),Ae=Ke(),Fe=Ke(),Qe=Ke(),je=Ke(),Pe=Ke(),Be=Ke(),We=fe(),$e=Ke(),[qe,Ge,et,tt]=Ne((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>b([l,i],t))))return!1;const t=e[l];return!(!K(t)&&t!=o||(Ee(e[i])!=t&&ae(e,i),0))},nt=(t,s)=>(!e||ie(F,s)||Jt(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>Jt(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>H(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Jt(e,t))),ot=(t,s,n,a)=>e?H(we(we(F,t),n),(e=>Ee(a)!=e[l]?Jt(t,s,n,a,e[i]):a),(()=>Jt(t,s,n,a))):G(Ee(a))?Jt(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>H(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),lt=(e,s)=>t?H(we(j,e),(t=>Ee(s)!=t[l]?At(e,s,t[i]):s),(()=>At(e,s))):G(Ee(s))?At(e,s):s,it=(e,t,s)=>(H(we(N,t),(([n,a])=>{he(n,((t,s)=>{ne(e,s)||(e[s]=t)})),he(a,(n=>{ne(e,n)||Jt(t,s,n)}))})),e),ct=e=>(t&&(he(B,((t,s)=>{ne(e,s)||(e[s]=t)})),he(W,(t=>{ne(e,t)||At(t)}))),e),dt=e=>Re(F,e,((e,t,s)=>{const n=fe(),a=xe();Re(ve(F,t,fe),s,((e,t,s)=>{Te(e,t,s),H(s[i],(e=>Te(n,t,e)),(()=>De(a,t)))})),Te(N,t,[n,a])}),((e,t)=>{Te(F,t),Te(N,t)})),ut=e=>Re(j,e,((e,t,s)=>{Te(j,t,s),H(s[i],(e=>Te(B,t,e)),(()=>De(W,t)))}),((e,t)=>{Te(j,t),Te(B,t),ge(W,t)})),ht=e=>re(e)?os():es(e),gt=e=>Re(X,e,((e,t,s)=>ft(t,s)),((e,t)=>pt(t))),ft=(e,t)=>Re(ve(X,e,(()=>(mt(e,1),Te($,e,ze()),Te(q,e,fe()),fe()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>Ct(e,t,s))),Lt=(e,t,s,n,a)=>Re(ve(t,s,(()=>(Et(e,s,1),fe()))),n,((t,n,a)=>wt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),wt=(e,t,s,n,a)=>{ie(s,n)||kt(e,t,n,1);const o=we(s,n);a!==o&&(Mt(e,t,n,o,a),Te(s,n,a))},St=(e,t,s,n,a)=>H(we(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),Tt=e=>re(e)?is():ts(e),vt=e=>Re(Y,e,((e,t,s)=>Rt(t,s)),((e,t)=>Vt(t))),Rt=(e,t)=>{ie(Y,e)||xt(e,1);const s=we(Y,e);t!==s&&(Dt(e,s,t),Te(Y,e,t))},yt=(e,t)=>{const[s]=we($,e),n=s(t);return ie(we(X,e),n)?yt(e,t):n},It=e=>we(X,e)??ft(e,{}),pt=e=>ft(e,{}),Ct=(e,t,s)=>{const[,n]=we($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=we(we(N,e)?.[0],a);if(!G(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,we(n,t)),kt(e,s,t,-1),Te(n,t)};G(r)?l(a):Se(n,l),ce(n)&&(Et(e,s,-1),ce(Te(t,s))&&(mt(e,-1),Te(X,e),Te($,e),Te(q,e)))},Vt=e=>{const t=we(B,e);if(!G(t))return Rt(e,t);Dt(e,we(Y,e)),xt(e,-1),Te(Y,e)},mt=(e,t)=>Ze(r,e,t),Et=(e,t,s)=>Ze(ve(h,e,fe),t,s),kt=(e,t,s,n)=>{const a=we(q,e),o=we(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(ve(d,e,fe),s,n),Te(a,s,o!=-n?o+n:null),Ze(ve(ve(T,e,fe),t,fe),s,n)},Mt=(e,t,s,n,a)=>ve(ve(ve(V,e,fe),t,fe),s,(()=>[n,0]))[1]=a,xt=(e,t)=>Ze(E,e,t),Dt=(e,t,s)=>ve(D,e,(()=>[t,0]))[1]=s,Jt=(e,t,s,n,a)=>(z(ve(ve(ve(J,e,fe),t,fe),s,(()=>[])),n),a),At=(e,t,s)=>(z(ve(A,e,(()=>[])),t),s),Ft=(e,t,s)=>H(we(we(we(V,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>H(we(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>ce(J)||ce(Fe[e])?0:he(e?Ve(J):J,((t,s)=>he(t,((t,n)=>he(t,((t,a)=>Ge(Fe[e],[s,n,a],t))))))),Nt=e=>ce(A)||ce(Qe[e])?0:he(e?Ce(A):A,((t,s)=>Ge(Qe[e],[s],t))),jt=(e,t,s)=>{if(!ce(t))return Ge(e,s,(()=>ye(t))),1},Ot=e=>{const t=ce(de[e]),s=ce(Je[e])&&ce(se[e])&&ce(le[e])&&t&&ce(_[e]),n=ce(Ae[e])&&ce(me[e])&&ce(ee[e])&&ce(Z[e]);if(!s||!n){const a=e?[Ce(r),be(d),be(h),Ve(T),Ve(V)]:[r,d,h,T,V];if(!s){jt(_[e],a[0]),he(a[1],((t,s)=>jt(se[e],t,[s])));const s=xe();he(a[2],((n,a)=>{jt(le[e],n,[a])&&!t&&(Ge(de[e],[a,null]),De(s,a))})),t||he(a[4],((t,n)=>{if(!ie(s,n)){const s=xe();he(t,(e=>he(e,(([t,n],a)=>n!==t?De(s,a):ge(e,a))))),he(s,(t=>Ge(de[e],[n,t])))}})),he(a[3],((t,s)=>he(t,((t,n)=>jt(Je[e],t,[s,n])))))}if(!n){let t;he(a[4],((s,n)=>{let a;he(s,((s,o)=>{let r;he(s,(([s,l],i)=>{l!==s&&(Ge(Ae[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&Ge(me[e],[n,o],Ft)})),a&&Ge(ee[e],[n],Ft)})),t&&Ge(Z[e],void 0,Ft)}}},Pt=e=>{const t=ce(Pe[e]),s=ce(Be[e])&&ce(je[e]);if(!t||!s){const n=e?[Ce(E),Ce(D)]:[E,D];if(t||jt(Pe[e],n[0]),!s){let t;he(n[1],(([s,n],a)=>{n!==s&&(Ge(Be[e],[a],n,s,Qt),t=1)})),t&&Ge(je[e],void 0,Qt)}}},Bt=(e,...t)=>(us((()=>e(...x(t,C)))),fs),Wt=()=>[ye(V,((e,t)=>-1===we(r,t)?null:ye(e,((e,s)=>-1===we(we(h,t),s)?null:ye(e,(([,e])=>e??null),((e,t)=>Xe(t)))),re)),re),ye(D,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:pe(V,Ue,Xe),invalidCells:pe(J),changedValues:ye(D,Ue,Xe),invalidValues:ye(A),changedTableIds:ye(r),changedRowIds:Ie(h),changedCellIds:pe(T),changedValueIds:ye(E)}),qt=()=>pe(X),Gt=()=>Le(X),Ht=e=>Le(we(X,C(e))),Kt=(e,t,s,n=0,a)=>{return x(Q(k((o=we(X,C(e)),r=(e,s)=>[G(t)?s:we(e,C(t)),s],x([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,G(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>Le(we(we(X,C(e)),C(t))),Xt=(e,t,s)=>we(we(we(X,C(e)),C(t)),C(s)),Yt=()=>ye(Y),Zt=()=>Le(Y),_t=e=>we(Y,C(e)),es=e=>Bt((()=>(e=>Ye(e,nt,Jt))(e)?gt(e):0)),ts=e=>Bt((()=>rt(e)?vt(e):0)),ss=e=>{try{ht(P(e))}catch{}return fs},ns=t=>Bt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!ce(X))){const e=qt();os(),es(e)}})),as=e=>Bt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Bt((()=>gt({}))),rs=e=>Bt((e=>ie(X,e)?pt(e):0),e),ls=(e,t)=>Bt(((e,t)=>H(we(X,e),(s=>ie(s,t)?Ct(e,s,t):0))),e,t),is=()=>Bt((()=>vt({}))),cs=()=>Bt((()=>{dt({}),e=!1})),ds=()=>Bt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=a){hs();const s=e();return gs(t),s}},hs=()=>(-1!=a&&a++,1==a&&Ge(We,void 0,Wt,$t),fs),gs=e=>(a>0&&(a--,0==a&&(s=!ce(V),n=!ce(D),a=1,zt(1),s&&Ot(1),Nt(1),n&&Pt(1),e?.(Wt,$t)&&(he(V,((e,t)=>he(e,((e,s)=>he(e,(([e],n)=>ke(fs,t,s,n,e))))))),he(D,(([e],t)=>Me(fs,t,e))),s=n=!1),Ge($e[0],void 0,Wt,$t),a=-1,zt(0),s&&Ot(0),Nt(0),n&&Pt(0),Ge($e[1],void 0,Wt,$t),a=0,s=n=!1,M([r,d,h,T,V,J,E,D,A],ue))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Ie(we(X,C(e))),getTableCellIds:e=>Le(we(q,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>ye(we(we(X,C(e)),C(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!ce(X),hasTable:e=>ie(X,C(e)),hasTableCell:(e,t)=>ie(we(q,C(e)),C(t)),hasRow:(e,t)=>ie(we(X,C(e)),C(t)),hasCell:(e,t,s)=>ie(we(we(X,C(e)),C(t)),C(s)),hasValues:()=>!ce(Y),hasValue:e=>ie(Y,C(e)),getTablesJson:()=>O(X),getValuesJson:()=>O(Y),getJson:()=>O([X,Y]),getTablesSchemaJson:()=>O(F),getValuesSchemaJson:()=>O(j),getSchemaJson:()=>O([F,j]),setContent:([e,t])=>Bt((()=>{(re(e)?os:es)(e),(re(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Bt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Bt(((e,t)=>at(e,t,s)?Lt(e,It(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,It(e),n=yt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Bt(((e,t)=>{if(at(e,t,s,1)){const n=It(e);oe(s,((s,a)=>St(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Bt(((e,t,s)=>H(ot(e,t,s,U(n)?n(Xt(e,t,s)):n),(n=>St(e,It(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Bt((()=>rt(e,1)?oe(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>Bt((e=>H(lt(e,U(t)?t(_t(e)):t),(t=>Rt(e,t)))),e),setTransactionChanges:e=>Bt((()=>{oe(e[0],((e,t)=>G(e)?rs(t):oe(e,((e,s)=>G(e)?ls(t,s):oe(e,((e,n)=>ke(fs,t,s,n,e))))))),oe(e[1],((e,t)=>Me(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{Tt(P(e))}catch{}return fs},setJson:e=>{try{const[t,s]=P(e);ht(t),Tt(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Bt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Bt(((e,t,s)=>H(we(X,e),(a=>H(we(a,t),(o=>ie(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Bt((e=>ie(Y,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Bt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>he(X,((t,s)=>e(s,(e=>he(t,((t,s)=>e(s,(e=>Se(t,e))))))))),forEachTableCell:(e,t)=>Se(we(q,C(e)),t),forEachRow:(e,t)=>he(we(X,C(e)),((e,s)=>t(s,(t=>Se(e,t))))),forEachCell:(e,t,s)=>Se(we(we(X,C(e)),C(t)),s),forEachValue:e=>Se(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return qe((()=>{const r=Kt(e,t,s,n,a);m(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),de[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>qe(e,We),addWillFinishTransactionListener:e=>qe(e,$e[0]),addDidFinishTransactionListener:e=>qe(e,$e[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:_e};return oe({[f]:[0,Z],[L]:[0,_],[g]:[1,ee,[Gt]],[g+R]:[1,se,[Gt]],[S]:[1,le,[Gt]],[w]:[2,me,[Gt,Ht]],[R]:[2,Je,[Gt,Ht]],[v]:[3,Ae,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Fe],[I]:[0,je],[p]:[0,Pe],[y]:[1,Be,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Qe]},(([e,t,s,n],a)=>{fs[u+a+c]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?Q(a,0,e):void 0,s,n)})),te(fs)};e.createCheckpoints=je,e.createCustomPersister=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>(2!=i&&(i=1,await g.schedule((async()=>{await e(),i=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,l=n((async(s,n)=>await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}})))),g),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),g),save:async t=>(1!=i&&(i=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch{}i=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();re(s)&&re(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(H(o,e.delListener),g),schedule:async(...e)=>(z(u,...e),await(async()=>{if(!c){for(c=1;!G(r=j(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return te(g)},e.createIndexes=Pe,e.createMetrics=$e,e.createQueries=qe,e.createRelationships=Ge,e.createStore=_e,e.defaultSorter=Oe},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),o=t(0),r=t(t),l="type",i="default",c="Listener",d="Result",u="add",h="Ids",f="Table",g=f+"s",L=f+h,w="Row",S=w+h,T="Sorted"+w+h,v="Cell",R=v+h,y="Value",I=y+"s",p=y+h,C=e=>s+e,b=Math.max,V=Math.min,m=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),x=e=>e==n||e==a,D=e=>t(e)==r,J=e=>Array.isArray(e),A=()=>{},F=(e,t)=>e.includes(t),Q=(e,t)=>e.every(t),z=(e,t)=>W(e)===W(t)&&Q(e,((e,s)=>t[s]===e)),N=(e,t)=>Q(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),O=(e,t)=>e.forEach(t),P=(e,t)=>e.map(t),B=e=>q(e,((e,t)=>e+t),0),W=e=>e.length,$=e=>0==W(e),q=(e,t,s)=>e.reduce(t,s),G=(e,t,s)=>e.slice(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=X.keys,Z=X.isFrozen,_=X.freeze,ee=e=>E(e,X)&&e.constructor==X,te=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),se=(e,t)=>(delete e[t],e),ne=(e,t)=>P(X.entries(e),(([e,s])=>t(s,e))),ae=e=>ee(e)&&0==(e=>W(Y(e)))(e),oe=e=>e.size,re=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==oe(e),ie=e=>[...e?.values()??[]],ce=e=>e.clear(),de=(e,t)=>e?.forEach(t),ue=(e,t)=>e?.delete(t),he=e=>new Map(e),fe=e=>[...e?.keys()??[]],ge=(e,t)=>e?.get(t),Le=(e,t)=>de(e,((e,s)=>t(s,e))),we=(e,t,s)=>k(s)?(ue(e,t),e):e?.set(t,s),Se=(e,t,s)=>(re(e,t)||we(e,t,s()),ge(e,t)),Te=(e,t,s,n=we)=>(ne(t,((t,n)=>s(e,n,t))),Le(e,(s=>te(t,s)?0:n(e,s))),e),ve=(e,t,s)=>{const n={};return de(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Re=(e,t,s)=>ve(e,(e=>ve(e,t,s)),ae),ye=(e,t,s)=>ve(e,(e=>Re(e,t,s)),ae),Ie=(e,t)=>{const s=he();return de(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ie(e,Ie),Ce=e=>Ie(e,pe),be=(e,t,s,n,a=0)=>M((s?Se:ge)(e,t[a],a>W(t)-2?s:he),(o=>{if(a>W(t)-2)return n?.(o)&&we(e,t[a]),o;const r=be(o,t,s,n,a+1);return le(o)&&we(e,t[a]),r})),Ve=e=>{const s=t(e);return x(s)||s==o&&m(e)?s:void 0},me=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),Ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),ke=e=>new Set(J(e)||k(e)?e:[e]),Me=(e,t)=>e?.add(t),xe=(e,t,s)=>{const n=e.hasRow,a=he(),o=he(),r=he(),l=he(),i=he(),c=(t,s,...n)=>{const a=Se(i,t,ke);return O(n,(t=>Me(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>M(ge(i,t),(n=>{O($(s)?ie(n):s,(t=>{e.delListener(t),ue(n,t)})),le(n)&&we(i,t)})),u=(e,s)=>{we(a,e,s),re(o,e)||(we(o,e,t()),we(r,e,he()),we(l,e,he()))},h=e=>{we(a,e),we(o,e),we(r,e),we(l,e),d(e)};return[()=>e,()=>fe(a),e=>Le(o,e),e=>re(o,e),e=>ge(a,e),e=>ge(o,e),(e,t)=>we(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const f=he(),g=he(),L=ge(r,t),w=ge(l,t),S=t=>{const o=s=>e.getCell(a,t,s),r=ge(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||J(r)&&J(l)&&z(r,l)||we(f,t,[r,l]),!k(h)){const e=ge(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&we(g,t,s)}},T=e=>{o((()=>{de(f,(([,e],t)=>we(L,t,e))),de(g,((e,t)=>we(w,t,e)))}),f,g,L,w,e),ce(f),ce(g)};Le(L,S),e.hasTable(a)&&O(e.getRowIds(a),(e=>{re(L,e)||S(e)})),T(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>S(s))),e.addTableListener(a,(()=>T())))},h,()=>Le(i,h),c,d]},De=(e,a)=>t(e)==n?t=>t(e):e??(()=>a??s),Je=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Ae=/^\d+$/,Fe=()=>{const e=[];let t=0;return[n=>(n?U(e):null)??s+t++,t=>{Ae.test(t)&&W(e)<1e3&&H(e,t)}]},Qe=e=>{let t;const[n,a]=Fe(),o=he();return[(a,r,l,i=[],c=(()=>[]))=>{t??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),Me(be(r,l??[s],ke),d),d},(e,n,...a)=>O(((e,t=[s])=>{const n=[],a=(e,s)=>s==W(t)?H(n,e):null===t[s]?de(e,(e=>a(e,s+1))):O([t[s],null],(t=>a(ge(e,t),s+1)));return a(e,0),n})(e,n),(e=>de(e,(e=>ge(o,e)[0](t,...n??[],...a))))),e=>M(ge(o,e),(([,t,n])=>(be(t,n??[s],void 0,(t=>(ue(t,e),le(t)?1:0))),we(o,e),a(e),n))),e=>M(ge(o,e),(([e,,s=[],n,a])=>{const o=(...r)=>{const l=W(r);l==W(s)?e(t,...r,...a(r)):k(s[l])?O(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,s[l])};o()}))]},ze=Je((e=>{let t,n,a,o=100,r=he(),l=he(),i=1;const c=he(),d=he(),[u,h,f]=Qe((()=>Q)),g=he(),L=he(),w=[],S=[],T=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=ge(g,s);de(n,((s,n)=>de(s,((s,a)=>de(s,((s,o)=>me(e,n,a,o,s[t]))))))),de(a,((s,n)=>Ee(e,n,s[t])))})),i=1},v=e=>{we(g,e),we(L,e),h(d,[e])},R=(e,t)=>O(((e,t)=>e.splice(0,t))(e,t??W(e)),v),y=()=>R(w,W(w)-o),I=()=>M(t,(()=>{H(w,t),y(),R(S),t=void 0,a=1})),p=()=>{t=K(w),a=1},C=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){I();const e=Se(r,t,he),l=Se(e,s,he),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&le(we(l,n))&&le(we(e,s))&&le(we(r,t))&&p(),x()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){I();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(we(l,t))&&p(),x()}})),V=(e="")=>(k(t)&&(t=s+n++,we(g,t,[r,l]),J(t,e),r=he(),l=he(),a=1),t),m=()=>{$(w)||(((e,...t)=>{e.unshift(...t)})(S,V()),T(0,t),t=K(w),a=1)},E=()=>{$(S)||(H(w,t),t=U(S),T(1,t),a=1)},x=()=>{a&&(h(c),a=0)},D=e=>{const t=V(e);return x(),t},J=(e,t)=>(A(e)&&ge(L,e)!==t&&(we(L,e,t),h(d,[e])),Q),A=e=>re(g,e),Q={setSize:e=>(o=e,y(),Q),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...S]],forEachCheckpoint:e=>Le(L,e),hasCheckpoint:A,getCheckpoint:e=>ge(L,e),goBackward:()=>(m(),x(),Q),goForward:()=>(E(),x(),Q),goTo:e=>{const s=F(w,e)?m:F(S,e)?E:null;for(;!k(s)&&e!=t;)s();return x(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(f(e),Q),clear:()=>(R(w),R(S),k(t)||v(t),t=void 0,n=0,D(),Q),destroy:()=>{e.delListener(C),e.delListener(b)},getListenerStats:()=>({})};return _(Q.clear())})),Ne=(e,t)=>e<t?-1:1,je=Je((e=>{const t=he(),n=he(),[a,o,r,l,i,c,d,,u,h,f]=xe(e,he,(e=>k(e)?s:J(e)?P(e,C):C(e))),[g,L,w]=Qe((()=>T)),S=(t,s,n)=>{const a=i(t);de(n,((t,n)=>s(n,(s=>de(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},T={setIndexDefinition:(e,s,a,o,r,l=Ne)=>{const i=k(r)?void 0:([e],[t])=>r(e,t);return u(e,s,((s,a,r,u,h,f)=>{let g=0;const w=ke(),S=ke(),T=c(e);if(de(a,(([e,t],s)=>{const n=ke(e),a=ke(t);de(n,(e=>ue(a,e)?ue(n,e):0)),de(n,(e=>{Me(w,e),M(ge(T,e),(t=>{ue(t,s),le(t)&&(we(T,e),g=1)}))})),de(a,(e=>{Me(w,e),re(T,e)||(we(T,e,ke()),g=1),Me(ge(T,e),s),k(o)||Me(S,e)}))})),s(),le(h)||(f?Le(T,(e=>Me(S,e))):Le(r,(e=>M(ge(u,e),(e=>Me(S,e))))),de(S,(e=>{const t=(t,s)=>l(ge(h,t),ge(h,s),e),s=[...ge(T,e)];N(s,t)||(we(T,e,ke(j(s,t))),Me(w,e))}))),(g||f)&&!k(i)){const t=[...T];N(t,i)||(d(e,he(j(t,i))),g=1)}g&&L(t,[e]),de(w,(t=>L(n,[e,t])))}),De(a),M(o,De)),T},delIndexDefinition:e=>(h(e),T),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>re(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ie(ge(c(e),t)),addSliceIdsListener:(e,s)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>g(s,n,[e,t]),delListener:e=>(w(e),T),destroy:f,getListenerStats:()=>({})};return _(T)})),Oe=he([["avg",[(e,t)=>B(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>B(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,l,i,c]=a;return o||=k(e),de(n,(([s,n])=>{o||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ie(s),oe(s)):e},Be=Je((e=>{const t=he(),[n,a,o,r,l,i,c,,d,u,h]=xe(e,A,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===s?void 0:1*e)),[f,g,L]=Qe((()=>w)),w={setMetricDefinition:(e,s,n,a,o,r,l)=>{const u=D(n)?[n,o,r,l]:ge(Oe,n)??ge(Oe,"sum");return d(e,s,((s,n,a,o,r,l)=>{const d=i(e),h=oe(o);l||=k(d),s();let f=Pe(d,h,o,n,u,l);m(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,d))}),De(a,1)),w},delMetricDefinition:e=>(u(e),w),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,s)=>f(s,t,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return _(w)})),We=Je((e=>{const t=e.createStore,[n,a,o,r,l,,,i,,h,g,L,y]=xe(e,(()=>!0),A),I=t(),p=t(),C=he(),b=(e,t,...s)=>O(s,(s=>Me(Se(Se(C,t,he),e,ke),s))),V=e=>{M(ge(C,e),(e=>{Le(e,((e,t)=>de(t,(t=>e.delListener(t))))),ce(e)})),O([p,I],(t=>t.delTable(e)))},m=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),E={setQueryDefinition:(t,n,a)=>{i(t,n),V(t);const o=[],r=[[null,[n,null,null,[],he()]]],l=[],c=[],d=[];a({select:(e,t)=>{const n=D(e)?[W(o)+s,e]:[k(t)?e:t,s=>s(e,t)];return H(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||D(t)?null:t,a=k(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],he()]];return H(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(l,D(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:ge(Oe,t)??[(e,t)=>t]]];return H(c,o),{as:e=>o[0]=e}},having:(e,t)=>H(d,D(e)?e:s=>s(e)===t)});const u=he(o);if(le(u))return E;const h=he(r);Le(h,((e,[,t])=>M(ge(h,t),(({3:t})=>k(e)?0:H(t,e)))));const f=he(c);let g=I;if(le(f)&&$(d))g=p;else{m(t,g,p);const e=he();Le(f,((t,[s,n])=>Me(Se(e,s,ke),[t,n])));const s=ke();Le(u,(t=>re(e,t)?0:Me(s,t)));const n=he(),a=(s,n,a,o)=>M(s,(([r,l,i,c])=>{Le(n,((t,[s])=>{const n=Se(r,t,he),l=ge(n,a),i=o?void 0:s;if(l!==i){const s=ke([[l,i]]),o=oe(n);we(n,a,i),de(ge(e,t),(([e,t])=>{const a=Pe(c[e],o,n,s,t);c[e]=k(Ve(a))?null:a}))}})),le(l)||!Q(d,(e=>e((e=>c[e]))))?p.delRow(t,i):k(i)?s[2]=p.addRow(t,c):p.setRow(t,i,c)}));b(g,t,g.addRowListener(t,null,((o,r,l,i)=>{const c=[],d=[],u=he(),h=g.hasRow(t,l);let f=!h;de(s,(e=>{const[s,n,a]=i(t,l,e);H(c,n),H(d,a),f||=s})),Le(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&we(u,e,[n])})),f&&a(be(n,c,void 0,(([,e])=>(ue(e,l),le(e)))),u,l,1),h&&a(be(n,d,(()=>{const e={};return de(s,(s=>e[s]=g.getCell(t,l,s))),[he(),ke(),void 0,e]}),(([,e])=>{Me(e,l)})),u,l)})))}m(t,e,g);const w=(s,a,o,r)=>{const i=t=>e.getCell(a,o,t);O(r,(n=>{const[a,,o,r,l]=ge(h,n),c=o?.(i,s),[d,u]=ge(l,s)??[];c!=d&&(k(u)||y(t,u),we(l,s,k(c)?null:[c,...L(t,1,e.addRowListener(a,c,(()=>w(s,a,c,r))))]))})),(s=>{const a=(t,a)=>e.getCell(...k(a)?[n,s,t]:t===n?[n,s,a]:[ge(h,t)?.[0],ge(ge(h,t)?.[4],s)?.[0],a]);g.transaction((()=>Q(l,(e=>e(a)))?Le(u,((e,n)=>me(g,t,s,e,n(a,s)))):g.delRow(t,s)))})(s)},{3:S}=ge(h,null);return g.transaction((()=>L(t,1,e.addRowListener(n,null,((s,a,o)=>{e.hasRow(n,o)?w(o,n,o,S):(g.delRow(t,o),de(h,(({4:e})=>M(ge(e,o),(([,s])=>{y(t,s),we(e,o)})))))}))))),E},delQueryDefinition:e=>(V(e),h(e),E),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(p.delListener(e),E),destroy:g,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return ne({[f]:[1,1],[S]:[0,1],[T]:[0,5],[w]:[1,2],[R]:[0,2],[v]:[1,3]},(([e,t],s)=>{O(e?["get","has","forEach"]:["get"],(e=>E[e+d+s]=(...t)=>p[e+s](...t))),E[u+d+s+c]=(...e)=>p[u+s+c](...G(e,0,t),((s,...n)=>e[t](E,...n)))})),_(E)})),$e=Je((e=>{const t=he(),n=he(),a=he(),o=he(),[r,l,i,c,d,u,,,h,f,g]=xe(e,(()=>[he(),he(),he(),he()]),(e=>k(e)?void 0:e+s)),[L,w,S]=Qe((()=>y)),T=(e,t,s)=>M(u(e),(([n,,a])=>{if(!re(a,t)){const o=ke();if(d(e)!=R(e))Me(o,t);else{let e=t;for(;!k(e)&&!re(o,e);)Me(o,e),e=ge(n,e)}if(s)return o;we(a,t,o)}return ge(a,t)})),v=(e,t)=>M(u(e),(([,,e])=>we(e,t))),R=e=>ge(t,e),y={setRelationshipDefinition:(e,s,r,l)=>(we(t,e,r),h(e,s,((t,s)=>{const r=ke(),l=ke(),i=ke(),[c,d]=u(e);de(s,(([t,s],n)=>{k(t)||(Me(l,t),M(ge(d,t),(e=>{ue(e,n),le(e)&&we(d,t)}))),k(s)||(Me(l,s),re(d,s)||we(d,s,ke()),Me(ge(d,s),n)),Me(r,n),we(c,n,s),Le(ge(o,e),(t=>{re(T(e,t),n)&&Me(i,t)}))})),t(),de(r,(t=>w(n,[e,t]))),de(l,(t=>w(a,[e,t]))),de(i,(t=>{v(e,t),w(o,[e,t])}))}),De(l)),y),delRelationshipDefinition:e=>(we(t,e),f(e),y),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>ge(u(e)?.[0],t),getLocalRowIds:(e,t)=>ie(ge(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(u(e))?[t]:ie(T(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>L(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>L(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(T(e,t),L(s,o,[e,t])),delListener:e=>(v(...S(e)),y),destroy:g,getListenerStats:()=>({})};return _(y)})),qe=e=>[e,e],Ge=()=>[he(),he()],He=e=>[...e],Ke=([e,t])=>e===t,Ue=e=>JSON.stringify(e,((e,t)=>E(t,Map)?X.fromEntries([...t]):t)),Xe=JSON.parse,Ye=(e,t,s)=>k(e)||!ee(e)||ae(e)||Z(e)?(s?.(),!1):(ne(e,((s,n)=>{t(s,n)||se(e,n)})),!ae(e)),Ze=(e,t,s)=>we(e,t,ge(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,a=0;const r=he(),d=he(),h=he(),T=he(),b=he(),V=he(),m=he(),E=he(),J=he(),A=he(),Q=he(),N=he(),B=he(),W=ke(),$=he(),q=he(),K=he(),U=he(),X=Ge(),Y=Ge(),Z=Ge(),ee=Ge(),oe=Ge(),ie=Ge(),be=Ge(),xe=Ge(),De=Ge(),Je=Ge(),Ae=Ge(),ze=Ge(),je=Ge(),Oe=Ge(),Pe=he(),Be=Ge(),[We,$e,et,tt]=Qe((()=>gs)),st=e=>{if(!Ye(e,((e,t)=>F([l,i],t))))return!1;const t=e[l];return!(!x(t)&&t!=o||(Ve(e[i])!=t&&se(e,i),0))},nt=(t,s)=>(!e||re(A,s)||Jt(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>Jt(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>M(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Jt(e,t))),ot=(t,s,n,a)=>e?M(ge(ge(A,t),n),(e=>Ve(a)!=e[l]?Jt(t,s,n,a,e[i]):a),(()=>Jt(t,s,n,a))):k(Ve(a))?Jt(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>M(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),lt=(e,s)=>t?M(ge(N,e),(t=>Ve(s)!=t[l]?At(e,s,t[i]):s),(()=>At(e,s))):k(Ve(s))?At(e,s):s,it=(e,t,s)=>(M(ge(Q,t),(([n,a])=>{de(n,((t,s)=>{te(e,s)||(e[s]=t)})),de(a,(n=>{te(e,n)||Jt(t,s,n)}))})),e),ct=e=>(t&&(de(B,((t,s)=>{te(e,s)||(e[s]=t)})),de(W,(t=>{te(e,t)||At(t)}))),e),dt=e=>Te(A,e,((e,t,s)=>{const n=he(),a=ke();Te(Se(A,t,he),s,((e,t,s)=>{we(e,t,s),M(s[i],(e=>we(n,t,e)),(()=>Me(a,t)))})),we(Q,t,[n,a])}),((e,t)=>{we(A,t),we(Q,t)})),ut=e=>Te(N,e,((e,t,s)=>{we(N,t,s),M(s[i],(e=>we(B,t,e)),(()=>Me(W,t)))}),((e,t)=>{we(N,t),we(B,t),ue(W,t)})),ht=e=>ae(e)?os():es(e),ft=e=>Te(K,e,((e,t,s)=>gt(t,s)),((e,t)=>pt(t))),gt=(e,t)=>Te(Se(K,e,(()=>(mt(e,1),we($,e,Fe()),we(q,e,he()),he()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>Ct(e,t,s))),Lt=(e,t,s,n,a)=>Te(Se(t,s,(()=>(Et(e,s,1),he()))),n,((t,n,a)=>wt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),wt=(e,t,s,n,a)=>{re(s,n)||kt(e,t,n,1);const o=ge(s,n);a!==o&&(Mt(e,t,n,o,a),we(s,n,a))},St=(e,t,s,n,a)=>M(ge(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),Tt=e=>ae(e)?is():ts(e),vt=e=>Te(U,e,((e,t,s)=>Rt(t,s)),((e,t)=>Vt(t))),Rt=(e,t)=>{re(U,e)||xt(e,1);const s=ge(U,e);t!==s&&(Dt(e,s,t),we(U,e,t))},yt=(e,t)=>{const[s]=ge($,e),n=s(t);return re(ge(K,e),n)?yt(e,t):n},It=e=>ge(K,e)??gt(e,{}),pt=e=>gt(e,{}),Ct=(e,t,s)=>{const[,n]=ge($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=ge(ge(Q,e)?.[0],a);if(!k(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,ge(n,t)),kt(e,s,t,-1),we(n,t)};k(r)?l(a):Le(n,l),le(n)&&(Et(e,s,-1),le(we(t,s))&&(mt(e,-1),we(K,e),we($,e),we(q,e)))},Vt=e=>{const t=ge(B,e);if(!k(t))return Rt(e,t);Dt(e,ge(U,e)),xt(e,-1),we(U,e)},mt=(e,t)=>Ze(r,e,t),Et=(e,t,s)=>Ze(Se(h,e,he),t,s),kt=(e,t,s,n)=>{const a=ge(q,e),o=ge(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(Se(d,e,he),s,n),we(a,s,o!=-n?o+n:null),Ze(Se(Se(T,e,he),t,he),s,n)},Mt=(e,t,s,n,a)=>Se(Se(Se(b,e,he),t,he),s,(()=>[n,0]))[1]=a,xt=(e,t)=>Ze(V,e,t),Dt=(e,t,s)=>Se(m,e,(()=>[t,0]))[1]=s,Jt=(e,t,s,n,a)=>(H(Se(Se(Se(E,e,he),t,he),s,(()=>[])),n),a),At=(e,t,s)=>(H(Se(J,e,(()=>[])),t),s),Ft=(e,t,s)=>M(ge(ge(ge(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...qe(Xt(e,t,s))])),Qt=e=>M(ge(m,e),(([e,t])=>[!0,e,t]),(()=>[!1,...qe(_t(e))])),zt=e=>le(E)||le(Je[e])?0:de(e?Ce(E):E,((t,s)=>de(t,((t,n)=>de(t,((t,a)=>$e(Je[e],[s,n,a],t))))))),Nt=e=>le(J)||le(Ae[e])?0:de(e?Ie(J):J,((t,s)=>$e(Ae[e],[s],t))),jt=(e,t,s)=>{if(!le(t))return $e(e,s,(()=>ve(t))),1},Ot=e=>{const t=le(ie[e]),s=le(xe[e])&&le(ee[e])&&le(oe[e])&&t&&le(Y[e]),n=le(De[e])&&le(be[e])&&le(Z[e])&&le(X[e]);if(!s||!n){const a=e?[Ie(r),pe(d),pe(h),Ce(T),Ce(b)]:[r,d,h,T,b];if(!s){jt(Y[e],a[0]),de(a[1],((t,s)=>jt(ee[e],t,[s])));const s=ke();de(a[2],((n,a)=>{jt(oe[e],n,[a])&&!t&&($e(ie[e],[a,null]),Me(s,a))})),t||de(a[4],((t,n)=>{if(!re(s,n)){const s=ke();de(t,(e=>de(e,(([t,n],a)=>n!==t?Me(s,a):ue(e,a))))),de(s,(t=>$e(ie[e],[n,t])))}})),de(a[3],((t,s)=>de(t,((t,n)=>jt(xe[e],t,[s,n])))))}if(!n){let t;de(a[4],((s,n)=>{let a;de(s,((s,o)=>{let r;de(s,(([s,l],i)=>{l!==s&&($e(De[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&$e(be[e],[n,o],Ft)})),a&&$e(Z[e],[n],Ft)})),t&&$e(X[e],void 0,Ft)}}},Pt=e=>{const t=le(je[e]),s=le(Oe[e])&&le(ze[e]);if(!t||!s){const n=e?[Ie(V),Ie(m)]:[V,m];if(t||jt(je[e],n[0]),!s){let t;de(n[1],(([s,n],a)=>{n!==s&&($e(Oe[e],[a],n,s,Qt),t=1)})),t&&$e(ze[e],void 0,Qt)}}},Bt=(e,...t)=>(us((()=>e(...P(t,C)))),gs),Wt=()=>[ve(b,((e,t)=>-1===ge(r,t)?null:ve(e,((e,s)=>-1===ge(ge(h,t),s)?null:ve(e,(([,e])=>e??null),((e,t)=>Ke(t)))),ae)),ae),ve(m,(([,e])=>e??null),((e,t)=>Ke(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(b,He,Ke),invalidCells:ye(E),changedValues:ve(m,He,Ke),invalidValues:ve(J),changedTableIds:ve(r),changedRowIds:Re(h),changedCellIds:ye(T),changedValueIds:ve(V)}),qt=()=>ye(K),Gt=()=>fe(K),Ht=e=>fe(ge(K,C(e))),Kt=(e,t,s,n=0,a)=>{return P(G(j((o=ge(K,C(e)),r=(e,s)=>[k(t)?s:ge(e,C(t)),s],P([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Ne(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>fe(ge(ge(K,C(e)),C(t))),Xt=(e,t,s)=>ge(ge(ge(K,C(e)),C(t)),C(s)),Yt=()=>ve(U),Zt=()=>fe(U),_t=e=>ge(U,C(e)),es=e=>Bt((()=>(e=>Ye(e,nt,Jt))(e)?ft(e):0)),ts=e=>Bt((()=>rt(e)?vt(e):0)),ss=e=>{try{ht(Xe(e))}catch{}return gs},ns=t=>Bt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!le(K))){const e=qt();os(),es(e)}})),as=e=>Bt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Bt((()=>ft({}))),rs=e=>Bt((e=>re(K,e)?pt(e):0),e),ls=(e,t)=>Bt(((e,t)=>M(ge(K,e),(s=>re(s,t)?Ct(e,s,t):0))),e,t),is=()=>Bt((()=>vt({}))),cs=()=>Bt((()=>{dt({}),e=!1})),ds=()=>Bt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=a){hs();const s=e();return fs(t),s}},hs=()=>(-1!=a&&a++,1==a&&$e(Pe,void 0,Wt,$t),gs),fs=e=>(a>0&&(a--,0==a&&(s=!le(b),n=!le(m),a=1,zt(1),s&&Ot(1),Nt(1),n&&Pt(1),e?.(Wt,$t)&&(de(b,((e,t)=>de(e,((e,s)=>de(e,(([e],n)=>me(gs,t,s,n,e))))))),de(m,(([e],t)=>Ee(gs,t,e))),s=n=!1),$e(Be[0],void 0,Wt,$t),a=-1,zt(0),s&&Ot(0),Nt(0),n&&Pt(0),$e(Be[1],void 0,Wt,$t),a=0,s=n=!1,O([r,d,h,T,b,E,V,m,J],ce))),gs),gs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Re(ge(K,C(e))),getTableCellIds:e=>fe(ge(q,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>ve(ge(ge(K,C(e)),C(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!le(K),hasTable:e=>re(K,C(e)),hasTableCell:(e,t)=>re(ge(q,C(e)),C(t)),hasRow:(e,t)=>re(ge(K,C(e)),C(t)),hasCell:(e,t,s)=>re(ge(ge(K,C(e)),C(t)),C(s)),hasValues:()=>!le(U),hasValue:e=>re(U,C(e)),getTablesJson:()=>Ue(K),getValuesJson:()=>Ue(U),getJson:()=>Ue([K,U]),getTablesSchemaJson:()=>Ue(A),getValuesSchemaJson:()=>Ue(N),getSchemaJson:()=>Ue([A,N]),setContent:([e,t])=>Bt((()=>{(ae(e)?os:es)(e),(ae(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Bt((e=>nt(t,e)?gt(e,t):0),e),setRow:(e,t,s)=>Bt(((e,t)=>at(e,t,s)?Lt(e,It(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,It(e),n=yt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Bt(((e,t)=>{if(at(e,t,s,1)){const n=It(e);ne(s,((s,a)=>St(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Bt(((e,t,s)=>M(ot(e,t,s,D(n)?n(Xt(e,t,s)):n),(n=>St(e,It(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Bt((()=>rt(e,1)?ne(e,((e,t)=>Rt(t,e))):0)),setValue:(e,t)=>Bt((e=>M(lt(e,D(t)?t(_t(e)):t),(t=>Rt(e,t)))),e),setTransactionChanges:e=>Bt((()=>{ne(e[0],((e,t)=>k(e)?rs(t):ne(e,((e,s)=>k(e)?ls(t,s):ne(e,((e,n)=>me(gs,t,s,n,e))))))),ne(e[1],((e,t)=>Ee(gs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{Tt(Xe(e))}catch{}return gs},setJson:e=>{try{const[t,s]=Xe(e);ht(t),Tt(s)}catch{ss(e)}return gs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Bt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Bt(((e,t,s)=>M(ge(K,e),(a=>M(ge(a,t),(o=>re(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Bt((e=>re(U,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Bt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:fs,forEachTable:e=>de(K,((t,s)=>e(s,(e=>de(t,((t,s)=>e(s,(e=>Le(t,e))))))))),forEachTableCell:(e,t)=>Le(ge(q,C(e)),t),forEachRow:(e,t)=>de(ge(K,C(e)),((e,s)=>t(s,(t=>Le(e,t))))),forEachCell:(e,t,s)=>Le(ge(ge(K,C(e)),C(t)),s),forEachValue:e=>Le(U,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return We((()=>{const r=Kt(e,t,s,n,a);z(r,l)||(l=r,o(gs,e,t,s,n,a,l))}),ie[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>We(e,Pe),addWillFinishTransactionListener:e=>We(e,Be[0]),addDidFinishTransactionListener:e=>We(e,Be[1]),callListener:e=>(tt(e),gs),delListener:e=>(et(e),gs),getListenerStats:()=>({}),createStore:_e};return ne({[g]:[0,X],[L]:[0,Y],[f]:[1,Z,[Gt]],[f+R]:[1,ee,[Gt]],[S]:[1,oe,[Gt]],[w]:[2,be,[Gt,Ht]],[R]:[2,xe,[Gt,Ht]],[v]:[3,De,[Gt,Ht,Ut],e=>qe(Xt(...e))],InvalidCell:[3,Je],[I]:[0,ze],[p]:[0,je],[y]:[1,Oe,[Zt],e=>qe(_t(e[0]))],InvalidValue:[1,Ae]},(([e,t,s,n],a)=>{gs[u+a+c]=(...a)=>We(a[e],t[a[e+1]?1:0],e>0?G(a,0,e):void 0,s,n)})),_(gs)};e.createCheckpoints=ze,e.createCustomPersister=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>(2!=i&&(i=1,await f.schedule((async()=>{await e(),i=0}))),f),f={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(f.stopAutoLoad(),await f.load(s,a),d=1,l=n((async(s,n)=>await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}})))),f),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),f),save:async t=>(1!=i&&(i=2,await f.schedule((async()=>{try{await s(e.getContent,t)}catch{}i=0}))),f),startAutoSave:async()=>(await f.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ae(s)&&ae(n)||f.save((()=>[s,n]))})),f),stopAutoSave:()=>(M(o,e.delListener),f),schedule:async(...e)=>(H(u,...e),await(async()=>{if(!c){for(c=1;!k(r=U(u));)try{await r()}catch{}c=0}})(),f),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return _(f)},e.createIndexes=je,e.createMetrics=Be,e.createQueries=We,e.createRelationships=$e,e.createStore=_e,e.defaultSorter=Ne},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={});
Binary file