tinybase 4.0.0-beta.5 → 4.0.0-beta.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-file.cjs +1 -1
  8. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  10. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  12. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  16. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  17. package/lib/cjs/persisters.cjs +1 -1
  18. package/lib/cjs/persisters.cjs.gz +0 -0
  19. package/lib/cjs/store.cjs +1 -1
  20. package/lib/cjs/store.cjs.gz +0 -0
  21. package/lib/cjs/tinybase.cjs +1 -1
  22. package/lib/cjs/tinybase.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  30. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  38. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters.cjs +1 -1
  40. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  41. package/lib/cjs-es6/store.cjs +1 -1
  42. package/lib/cjs-es6/store.cjs.gz +0 -0
  43. package/lib/cjs-es6/tinybase.cjs +1 -1
  44. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  45. package/lib/debug/persisters/persister-automerge.js +1 -1
  46. package/lib/debug/persisters/persister-browser.js +1 -1
  47. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +3 -3
  48. package/lib/debug/persisters/persister-file.js +1 -1
  49. package/lib/debug/persisters/persister-remote.js +1 -1
  50. package/lib/debug/persisters/persister-sqlite-wasm.js +3 -3
  51. package/lib/debug/persisters/persister-sqlite3.js +3 -3
  52. package/lib/debug/persisters/persister-yjs.js +1 -1
  53. package/lib/debug/persisters.js +1 -1
  54. package/lib/debug/store.js +2 -2
  55. package/lib/debug/tinybase.js +3 -3
  56. package/lib/es6/persisters/persister-automerge.js +1 -1
  57. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  58. package/lib/es6/persisters/persister-browser.js +1 -1
  59. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  60. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  61. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  62. package/lib/es6/persisters/persister-file.js +1 -1
  63. package/lib/es6/persisters/persister-file.js.gz +0 -0
  64. package/lib/es6/persisters/persister-remote.js +1 -1
  65. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  66. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  67. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  68. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  69. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  70. package/lib/es6/persisters/persister-yjs.js +1 -1
  71. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  72. package/lib/es6/persisters.js +1 -1
  73. package/lib/es6/persisters.js.gz +0 -0
  74. package/lib/es6/store.js +1 -1
  75. package/lib/es6/store.js.gz +0 -0
  76. package/lib/es6/tinybase.js +1 -1
  77. package/lib/es6/tinybase.js.gz +0 -0
  78. package/lib/persisters/persister-automerge.js +1 -1
  79. package/lib/persisters/persister-automerge.js.gz +0 -0
  80. package/lib/persisters/persister-browser.js +1 -1
  81. package/lib/persisters/persister-browser.js.gz +0 -0
  82. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  83. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  84. package/lib/persisters/persister-file.js +1 -1
  85. package/lib/persisters/persister-file.js.gz +0 -0
  86. package/lib/persisters/persister-remote.js +1 -1
  87. package/lib/persisters/persister-remote.js.gz +0 -0
  88. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  89. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  90. package/lib/persisters/persister-sqlite3.js +1 -1
  91. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  92. package/lib/persisters/persister-yjs.js +1 -1
  93. package/lib/persisters/persister-yjs.js.gz +0 -0
  94. package/lib/persisters.js +1 -1
  95. package/lib/persisters.js.gz +0 -0
  96. package/lib/store.js +1 -1
  97. package/lib/store.js.gz +0 -0
  98. package/lib/tinybase.js +1 -1
  99. package/lib/tinybase.js.gz +0 -0
  100. package/lib/umd/persisters/persister-automerge.js +1 -1
  101. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  102. package/lib/umd/persisters/persister-browser.js +1 -1
  103. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  104. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  105. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  106. package/lib/umd/persisters/persister-file.js +1 -1
  107. package/lib/umd/persisters/persister-file.js.gz +0 -0
  108. package/lib/umd/persisters/persister-remote.js +1 -1
  109. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  110. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  111. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  112. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  113. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  114. package/lib/umd/persisters/persister-yjs.js +1 -1
  115. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  116. package/lib/umd/persisters.js +1 -1
  117. package/lib/umd/persisters.js.gz +0 -0
  118. package/lib/umd/store.js +1 -1
  119. package/lib/umd/store.js.gz +0 -0
  120. package/lib/umd/tinybase.js +1 -1
  121. package/lib/umd/tinybase.js.gz +0 -0
  122. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  123. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  124. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  125. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  126. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  127. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  128. package/lib/umd-es6/persisters/persister-file.js +1 -1
  129. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  130. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  131. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  132. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  133. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  134. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  135. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  136. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  137. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  138. package/lib/umd-es6/persisters.js +1 -1
  139. package/lib/umd-es6/persisters.js.gz +0 -0
  140. package/lib/umd-es6/store.js +1 -1
  141. package/lib/umd-es6/store.js.gz +0 -0
  142. package/lib/umd-es6/tinybase.js +1 -1
  143. package/lib/umd-es6/tinybase.js.gz +0 -0
  144. package/package.json +5 -5
  145. package/readme.md +1 -1
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+u,v="Sorted"+L+u,S="Cell",R=S+u,T="Value",I=T+"s",C=T+u,y=e=>t+e,p=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==o,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>J(Z(e)))(e),re=e=>e.size,le=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Ie=(e,t,s)=>Te(e,(e=>Te(e,t,s)),oe),Ce=(e,t,s)=>Te(e,(e=>Ie(e,t,s)),oe),ye=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>ye(e,ye),be=e=>ye(e,pe),Ve=(e,t,s,n,a=0)=>G((s?Se:Le)(e,t[a],a>J(t)-2?s:ge),(o=>{if(a>J(t)-2)return n?.(o)&&ve(e,t[a]),o;const r=Ve(o,t,s,n,a+1);return ie(o)&&ve(e,t[a]),r})),me=t=>{const s=e(t);return H(s)||s==a&&B(t)?s:void 0},Ee=(e,t,s,n,a)=>q(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(U(e)||q(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s)=>{const n=e.hasRow,a=ge(),o=ge(),r=ge(),l=ge(),i=ge(),c=(t,s,...n)=>{const a=Se(i,t,Me);return k(n,(t=>De(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(a,e,s),le(o,e)||(ve(o,e,t()),ve(r,e,ge()),ve(l,e,ge()))},h=e=>{ve(a,e),ve(o,e),ve(r,e),ve(l,e),d(e)};return[()=>e,()=>fe(a),e=>we(o,e),e=>le(o,e),e=>Le(a,e),e=>Le(o,e),(e,t)=>ve(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ge(),f=ge(),L=Le(r,t),w=Le(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=Le(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||U(r)&&U(l)&&V(r,l)||ve(g,t,[r,l]),!q(h)){const e=Le(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{o((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(a)&&k(e.getRowIds(a),(e=>{le(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>we(i,h),c,d]},Ae=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),xe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let s=0;return[n=>(n?N(e):null)??t+s++,t=>{Fe.test(t)&&J(e)<1e3&&Q(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(o,d,[a,r,l,i,c]),De(Ve(r,l??[t],Me),d),d},(e,n,...a)=>k(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):k([s[t],null],(s=>a(Le(e,s),t+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](s,...n??[],...a))))),e=>G(Le(o,e),(([,s,n])=>(Ve(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(o,e),a(e),n))),e=>G(Le(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=J(r);l==J(t)?e(s,...r,...a(r)):q(t[l])?k(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ne=xe((e=>{let s,n,a,o=100,r=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),i=1},R=e=>{ve(f,e),ve(L,e),h(d,[e])},T=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),I=()=>T(w,J(w)-o),C=()=>G(s,(()=>{Q(w,s),I(),T(v),s=void 0,a=1})),y=()=>{s=z(w),a=1},b=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){C();const e=Se(r,t,ge),l=Se(e,s,ge),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&y(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){C();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&y(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[r,l]),F(s,e),r=ge(),l=ge(),a=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),a=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>le(f,e),j={setSize:e=>(o=e,I(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=p(w,e)?E:p(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(T(w),T(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Oe=(e,t)=>e<t?-1:1,je=xe((e=>{const s=ge(),n=ge(),[a,o,r,l,i,c,d,,u,h,g]=Je(e,ge,(e=>q(e)?t:U(e)?M(e,y):y(e))),[f,L,w]=ze((()=>S)),v=(t,s,n)=>{const a=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=Oe)=>{const i=q(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const w=Me(),v=Me(),S=c(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{De(w,e),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(a,(e=>{De(w,e),le(S,e)||(ve(S,e,Me()),f=1),De(Le(S,e),s),q(o)||De(v,e)}))})),t(),ie(h)||(g?we(S,(e=>De(v,e))):we(r,(e=>G(Le(u,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>l(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,Me(E(s,t))),De(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Ae(a),G(o,Ae)),S},delIndexDefinition:e=>(h(e),S),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>le(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),Pe=ge([["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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(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(ie(s))return;const[r,l,i,c]=a;return o||=q(e),ue(n,(([s,n])=>{o||(e=q(s)?l?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=q(e))})),o?r(ce(s),re(s)):e},Be=xe((e=>{const s=ge(),[n,a,o,r,l,i,c,,d,u,h]=Je(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=ze((()=>w)),w={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=K(n)?[n,o,r,l]:Le(Pe,n)??Le(Pe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=re(o);l||=q(d),t();let g=We(d,h,o,n,u,l);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[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,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),$e=(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 e(),i=0)},g={load:async(s={},n={})=>(await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),g),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=>(await g.schedule((async()=>{if(1!=i){i=2;try{await s(e.getContent,t)}catch{}i=0}})),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const s=t();g.save((()=>s))})),g),stopAutoSave:()=>(G(o,e.delListener),g),schedule:async(...e)=>(Q(u,...e),await(async()=>{if(!c){for(c=1;!q(r=N(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},qe=xe((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Je(e,(()=>!0),X),C=s(),y=s(),p=ge(),V=(e,t,...s)=>k(s,(s=>De(Se(Se(p,t,ge),e,Me),s))),m=e=>{G(Le(p,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([y,C],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),m(s);const o=[],r=[[null,[n,null,null,[],ge()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=K(e)?[J(o)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,a=q(n)?t:s,o=[e,[e,n,K(a)?a:e=>e(a),[],ge()]];return Q(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>Q(l,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,K(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return Q(i,o),{as:e=>o[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(o);if(ie(d))return M;const h=ge(r);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=C;if(ie(g)&&A(c))f=y;else{E(s,f,y);const e=ge();we(g,((t,[s,n])=>De(Se(e,s,Me),[t,n])));const t=Me();we(d,(s=>le(e,s)?0:De(t,s)));const n=ge(),a=(t,n,a,o)=>G(t,(([r,l,i,d])=>{we(n,((t,[s])=>{const n=Se(r,t,ge),l=Le(n,a),i=o?void 0:s;if(l!==i){const s=Me([[l,i]]),o=re(n);ve(n,a,i),ue(Le(e,t),(([e,t])=>{const a=We(d[e],o,n,s,t);d[e]=q(me(a))?null:a}))}})),ie(l)||!b(c,(e=>e((e=>d[e]))))?y.delRow(s,i):q(i)?t[2]=y.addRow(s,d):y.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,l,e);Q(c,n),Q(d,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&a(Ve(n,c,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&a(Ve(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,l,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(s,e,f);const L=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);k(r,(n=>{const[a,,o,r,l]=Le(h,n),c=o?.(i,t),[d,u]=Le(l,t)??[];c!=d&&(q(u)||I(s,u),ve(l,t,q(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...q(a)?[n,t,s]:s===n?[n,t,a]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],a]);f.transaction((()=>b(l,(e=>e(a)))?we(d,((e,n)=>Ee(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?L(o,n,o,w):(f.delRow(s,o),ue(h,(({4:e})=>G(Le(e,o),(([,t])=>{I(s,t),ve(e,o)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(y.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=y.getListenerStats();return n}};return ae({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>y[e+s](...t))),M[d+c+s+i]=(...e)=>y[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),Ge=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[r,l,i,c,d,u,,,h,g,f]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=ze((()=>I)),S=(e,t,s)=>G(u(e),(([n,,a])=>{if(!le(a,t)){const o=Me();if(d(e)!=T(e))De(o,t);else{let e=t;for(;!q(e)&&!le(o,e);)De(o,e),e=Le(n,e)}if(s)return o;ve(a,t,o)}return Le(a,t)})),R=(e,t)=>G(u(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(ve(s,e,r),h(e,t,((t,s)=>{const r=Me(),l=Me(),i=Me(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(De(l,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(De(l,s),le(d,s)||ve(d,s,Me()),De(Le(d,s),n)),De(r,n),ve(c,n,s),we(Le(o,e),(t=>{le(S(e,t),n)&&De(i,t)}))})),t(),ue(r,(t=>w(n,[e,t]))),ue(l,(t=>w(a,[e,t]))),ue(i,(t=>{R(e,t),w(o,[e,t])}))}),Ae(l)),I),delRelationshipDefinition:e=>(ve(s,e),g(e),I),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(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)=>(S(e,t),L(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return ee(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=(e,t,s)=>q(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ge(),B=Me(),$=ge(),U=ge(),X=ge(),Y=ge(),Z=Ke(),_=Ke(),te=Ke(),re=Ke(),ce=Ke(),Ve=Ke(),Je=Ke(),Ae=Ke(),xe=Ke(),Fe=Ke(),Ne=Ke(),je=Ke(),Pe=Ke(),We=Ke(),Be=ge(),$e=Ke(),[qe,Ge,et,tt]=ze((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>p([r,l],t))))return!1;const t=e[r];return!(!H(t)&&t!=a||(me(e[l])!=t&&ne(e,l),0))},nt=(t,s)=>(!e||le(z,s)||At(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>G(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?G(Le(Le(z,t),n),(e=>me(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):q(me(a))?At(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>G(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?G(Le(P,e),(t=>me(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):q(me(s))?xt(e,s):s,it=(e,t,s)=>(G(Le(N,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ue(W,((t,s)=>{se(e,s)||(e[s]=t)})),ue(B,(t=>{se(e,t)||xt(t)}))),e),dt=e=>Re(z,e,((e,t,s)=>{const n=ge(),a=Me();Re(Se(z,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[l],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(N,t,[n,a])}),((e,t)=>{ve(z,t),ve(N,t)})),ut=e=>Re(P,e,((e,t,s)=>{ve(P,t,s),G(s[l],(e=>ve(W,t,e)),(()=>De(B,t)))}),((e,t)=>{ve(P,t),ve(W,t),he(B,t)})),ht=e=>oe(e)?os():es(e),gt=e=>Re(X,e,((e,t,s)=>ft(t,s)),((e,t)=>yt(t))),ft=(e,t)=>Re(Se(X,e,(()=>(mt(e,1),ve($,e,Qe()),ve(U,e,ge()),ge()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Et(e,s,1),ge()))),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)=>{le(s,n)||kt(e,t,n,1);const o=Le(s,n);a!==o&&(Mt(e,t,n,o,a),ve(s,n,a))},vt=(e,t,s,n,a)=>G(Le(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>oe(e)?is():ts(e),Rt=e=>Re(Y,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{le(Y,e)||Dt(e,1);const s=Le(Y,e);t!==s&&(Jt(e,s,t),ve(Y,e,t))},It=(e,t)=>{const[s]=Le($,e),n=s(t);return le(Le(X,e),n)?It(e,t):n},Ct=e=>Le(X,e)??ft(e,{}),yt=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=Le($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=Le(Le(N,e)?.[0],a);if(!q(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,Le(n,t)),kt(e,s,t,-1),ve(n,t)};q(r)?l(a):we(n,l),ie(n)&&(Et(e,s,-1),ie(ve(t,s))&&(mt(e,-1),ve(X,e),ve($,e),ve(U,e)))},Vt=e=>{const t=Le(W,e);if(!q(t))return Tt(e,t);Jt(e,Le(Y,e)),Dt(e,-1),ve(Y,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(Se(v,e,ge),t,s),kt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(Se(u,e,ge),s,n),ve(a,s,o!=-n?o+n:null),Ze(Se(Se(b,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>Se(Se(Se(m,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(D,e,t),Jt=(e,t,s)=>Se(J,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(Q(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),xt=(e,t,s)=>(Q(Se(x,e,(()=>[])),t),s),Ft=(e,t,s)=>G(Le(Le(Le(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>G(Le(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>ie(A)||ie(Fe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>Ge(Fe[e],[s,n,a],t))))))),Nt=e=>ie(x)||ie(Ne[e])?0:ue(e?ye(x):x,((t,s)=>Ge(Ne[e],[s],t))),Ot=(e,t,s)=>{if(!ie(t))return Ge(e,s,(()=>Te(t))),1},jt=e=>{const t=ie(Ve[e]),s=ie(Ae[e])&&ie(re[e])&&ie(ce[e])&&t&&ie(_[e]),n=ie(xe[e])&&ie(Je[e])&&ie(te[e])&&ie(Z[e]);if(!s||!n){const a=e?[ye(c),pe(u),pe(v),be(b),be(m)]:[c,u,v,b,m];if(!s){Ot(_[e],a[0]),ue(a[1],((t,s)=>Ot(re[e],t,[s])));const s=Me();ue(a[2],((n,a)=>{Ot(ce[e],n,[a])&&!t&&(Ge(Ve[e],[a,null]),De(s,a))})),t||ue(a[4],((t,n)=>{if(!le(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?De(s,a):he(e,a))))),ue(s,(t=>Ge(Ve[e],[n,t])))}})),ue(a[3],((t,s)=>ue(t,((t,n)=>Ot(Ae[e],t,[s,n])))))}if(!n){let t;ue(a[4],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,l],i)=>{l!==s&&(Ge(xe[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&Ge(Je[e],[n,o],Ft)})),a&&Ge(te[e],[n],Ft)})),t&&Ge(Z[e],void 0,Ft)}}},Pt=e=>{const t=ie(Pe[e]),s=ie(We[e])&&ie(je[e]);if(!t||!s){const n=e?[ye(D),ye(J)]:[D,J];if(t||Ot(Pe[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(Ge(We[e],[a],n,s,Qt),t=1)})),t&&Ge(je[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...M(t,y)))),fs),Bt=()=>[Te(m,((e,t)=>-1===Le(c,t)?null:Te(e,((e,s)=>-1===Le(Le(v,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Xe(t)))),oe)),oe),Te(J,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ce(m,Ue,Xe),invalidCells:Ce(A),changedValues:Te(J,Ue,Xe),invalidValues:Te(x),changedTableIds:Te(c),changedRowIds:Ie(v),changedCellIds:Ce(b),changedValueIds:Te(D)}),qt=()=>Ce(X),Gt=()=>fe(X),Ht=e=>fe(Le(X,y(e))),Kt=(e,t,s,n=0,a)=>{return M(F(E((o=Le(X,y(e)),r=(e,s)=>[q(t)?s:Le(e,y(t)),s],M([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,q(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>fe(Le(Le(X,y(e)),y(t))),Xt=(e,t,s)=>Le(Le(Le(X,y(e)),y(t)),y(s)),Yt=()=>Te(Y),Zt=()=>fe(Y),_t=e=>Le(Y,y(e)),es=e=>Wt((()=>(e=>Ye(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(j(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!ie(X))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),rs=e=>Wt((e=>le(X,e)?yt(e):0),e),ls=(e,t)=>Wt(((e,t)=>G(Le(X,e),(s=>le(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>Rt({}))),cs=()=>Wt((()=>{dt({}),e=!1})),ds=()=>Wt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=o){hs();const s=e();return gs(t),s}},hs=()=>(-1!=o&&o++,1==o&&Ge(Be,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!ie(m),n=!ie(J),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ue(m,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(fs,t,s,n,e))))))),ue(J,(([e],t)=>ke(fs,t,e))),s=n=!1),Ge($e[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),Ge($e[1],void 0,Bt,$t),o=0,s=n=!1,k([c,u,v,b,m,A,D,J,x],de))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Ie(Le(X,y(e))),getTableCellIds:e=>fe(Le(U,y(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Te(Le(Le(X,y(e)),y(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!ie(X),hasTable:e=>le(X,y(e)),hasTableCell:(e,t)=>le(Le(U,y(e)),y(t)),hasRow:(e,t)=>le(Le(X,y(e)),y(t)),hasCell:(e,t,s)=>le(Le(Le(X,y(e)),y(t)),y(s)),hasValues:()=>!ie(Y),hasValue:e=>le(Y,y(e)),getTablesJson:()=>O(X),getValuesJson:()=>O(Y),getJson:()=>O([X,Y]),getTablesSchemaJson:()=>O(z),getValuesSchemaJson:()=>O(P),getSchemaJson:()=>O([z,P]),setContent:([e,t])=>Wt((()=>{es(e),ts(t)})),setTables:es,setTable:(e,t)=>Wt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>at(e,t,s)?Lt(e,Ct(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=y(e),Lt(e,Ct(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=Ct(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>G(ot(e,t,s,K(n)?n(Xt(e,t,s)):n),(n=>vt(e,Ct(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?ae(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>G(lt(e,K(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ae(e[0],((e,t)=>q(e)?rs(t):ae(e,((e,s)=>q(e)?ls(t,s):ae(e,((e,n)=>Ee(fs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(j(e))}catch{}return fs},setJson:e=>{try{const[t,s]=j(e);ht(t),St(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Wt(((e,t,s)=>G(Le(X,e),(a=>G(Le(a,t),(o=>le(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>le(Y,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,y(e)),t),forEachRow:(e,t)=>ue(Le(X,y(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,y(e)),y(t)),s),forEachValue:e=>we(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);V(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),Ve[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>qe(e,Be),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 ae({[g]:[0,Z],[f]:[0,_],[h]:[1,te,[Gt]],[h+R]:[1,re,[Gt]],[w]:[1,ce,[Gt]],[L]:[2,Je,[Gt,Ht]],[R]:[2,Ae,[Gt,Ht]],[S]:[3,xe,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Fe],[I]:[0,je],[C]:[0,Pe],[T]:[1,We,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Ne]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(fs)};export{Ne as createCheckpoints,$e as createCustomPersister,je as createIndexes,Be as createMetrics,qe as createQueries,Ge as createRelationships,_e as createStore,Oe as defaultSorter};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="Listener",c="Result",d="add",u="Ids",h="Table",g=h+"s",f=h+u,L="Row",w=L+u,v="Sorted"+L+u,S="Cell",R=S+u,T="Value",I=T+"s",C=T+u,y=e=>t+e,p=(e,t)=>e.includes(t),b=(e,t)=>e.every(t),V=(e,t)=>J(e)===J(t)&&b(e,((e,s)=>t[s]===e)),m=(e,t)=>b(e,((s,n)=>0==n||t(e[n-1],s)<=0)),E=(e,t)=>e.sort(t),k=(e,t)=>e.forEach(t),M=(e,t)=>e.map(t),D=e=>x(e,((e,t)=>e+t),0),J=e=>e.length,A=e=>0==J(e),x=(e,t,s)=>e.reduce(t,s),F=(e,t,s)=>e.slice(t,s),Q=(e,...t)=>e.push(...t),z=e=>e.pop(),N=e=>e.shift(),O=e=>JSON.stringify(e,((e,t)=>$(t,Map)?x([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),j=JSON.parse,P=Math.max,W=Math.min,B=isFinite,$=(e,t)=>e instanceof t,q=e=>null==e,G=(e,t,s)=>q(e)?s?.():t(e),H=e=>e==s||e==n,K=t=>e(t)==o,U=e=>Array.isArray(e),X=()=>{},Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>$(e,Y)&&e.constructor==Y,se=(e,t)=>!q(((e,t)=>G(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>M(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>J(Z(e)))(e),re=e=>e.size,le=(e,t)=>e?.has(t)??!1,ie=e=>q(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),ve=(e,t,s)=>q(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(le(e,t)||ve(e,t,s()),Le(e,t)),Re=(e,t,s,n=ve)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Ie=(e,t,s)=>Te(e,(e=>Te(e,t,s)),oe),Ce=(e,t,s)=>Te(e,(e=>Ie(e,t,s)),oe),ye=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>ye(e,ye),be=e=>ye(e,pe),Ve=(e,t,s,n,a=0)=>G((s?Se:Le)(e,t[a],a>J(t)-2?s:ge),(o=>{if(a>J(t)-2)return n?.(o)&&ve(e,t[a]),o;const r=Ve(o,t,s,n,a+1);return ie(o)&&ve(e,t[a]),r})),me=t=>{const s=e(t);return H(s)||s==a&&B(t)?s:void 0},Ee=(e,t,s,n,a)=>q(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>q(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(U(e)||q(e)?e:[e]),De=(e,t)=>e?.add(t),Je=(e,t,s)=>{const n=e.hasRow,a=ge(),o=ge(),r=ge(),l=ge(),i=ge(),c=(t,s,...n)=>{const a=Se(i,t,Me);return k(n,(t=>De(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>G(Le(i,t),(n=>{k(A(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),ie(n)&&ve(i,t)})),u=(e,s)=>{ve(a,e,s),le(o,e)||(ve(o,e,t()),ve(r,e,ge()),ve(l,e,ge()))},h=e=>{ve(a,e),ve(o,e),ve(r,e),ve(l,e),d(e)};return[()=>e,()=>fe(a),e=>we(o,e),e=>le(o,e),e=>Le(a,e),e=>Le(o,e),(e,t)=>ve(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ge(),f=ge(),L=Le(r,t),w=Le(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=Le(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||U(r)&&U(l)&&V(r,l)||ve(g,t,[r,l]),!q(h)){const e=Le(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&ve(f,t,s)}},S=e=>{o((()=>{ue(g,(([,e],t)=>ve(L,t,e))),ue(f,((e,t)=>ve(w,t,e)))}),g,f,L,w,e),de(g),de(f)};we(L,v),e.hasTable(a)&&k(e.getRowIds(a),(e=>{le(L,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>we(i,h),c,d]},Ae=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),xe=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let s=0;return[n=>(n?N(e):null)??t+s++,t=>{Fe.test(t)&&J(e)<1e3&&Q(e,t)}]},ze=e=>{let s;const[n,a]=Qe(),o=ge();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return ve(o,d,[a,r,l,i,c]),De(Ve(r,l??[t],Me),d),d},(e,n,...a)=>k(((e,s=[t])=>{const n=[],a=(e,t)=>t==J(s)?Q(n,e):null===s[t]?ue(e,(e=>a(e,t+1))):k([s[t],null],(s=>a(Le(e,s),t+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](s,...n??[],...a))))),e=>G(Le(o,e),(([,s,n])=>(Ve(s,n??[t],void 0,(t=>(he(t,e),ie(t)?1:0))),ve(o,e),a(e),n))),e=>G(Le(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=J(r);l==J(t)?e(s,...r,...a(r)):q(t[l])?k(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Ne=xe((e=>{let s,n,a,o=100,r=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>j)),f=ge(),L=ge(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),i=1},R=e=>{ve(f,e),ve(L,e),h(d,[e])},T=(e,t)=>k(((e,t)=>e.splice(0,t))(e,t??J(e)),R),I=()=>T(w,J(w)-o),C=()=>G(s,(()=>{Q(w,s),I(),T(v),s=void 0,a=1})),y=()=>{s=z(w),a=1},b=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){C();const e=Se(r,t,ge),l=Se(e,s,ge),i=Se(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&ie(ve(l,n))&&ie(ve(e,s))&&ie(ve(r,t))&&y(),D()}})),V=e.addValueListener(null,((e,t,s,n)=>{if(i){C();const e=Se(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&ie(ve(l,t))&&y(),D()}})),m=(e="")=>(q(s)&&(s=t+n++,ve(f,s,[r,l]),F(s,e),r=ge(),l=ge(),a=1),s),E=()=>{A(w)||(((e,...t)=>{e.unshift(...t)})(v,m()),S(0,s),s=z(w),a=1)},M=()=>{A(v)||(Q(w,s),s=N(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},x=e=>{const t=m(e);return D(),t},F=(e,t)=>(O(e)&&Le(L,e)!==t&&(ve(L,e,t),h(d,[e])),j),O=e=>le(f,e),j={setSize:e=>(o=e,I(),j),addCheckpoint:x,setCheckpoint:F,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:O,getCheckpoint:e=>Le(L,e),goBackward:()=>(E(),D(),j),goForward:()=>(M(),D(),j),goTo:e=>{const t=p(w,e)?E:p(v,e)?M:null;for(;!q(t)&&e!=s;)t();return D(),j},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),j),clear:()=>(T(w),T(v),q(s)||R(s),s=void 0,n=0,x(),j),destroy:()=>{e.delListener(b),e.delListener(V)},getListenerStats:()=>({})};return ee(j.clear())})),Oe=(e,t)=>e<t?-1:1,je=xe((e=>{const s=ge(),n=ge(),[a,o,r,l,i,c,d,,u,h,g]=Je(e,ge,(e=>q(e)?t:U(e)?M(e,y):y(e))),[f,L,w]=ze((()=>S)),v=(t,s,n)=>{const a=i(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=Oe)=>{const i=q(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const w=Me(),v=Me(),S=c(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{De(w,e),G(Le(S,e),(t=>{he(t,s),ie(t)&&(ve(S,e),f=1)}))})),ue(a,(e=>{De(w,e),le(S,e)||(ve(S,e,Me()),f=1),De(Le(S,e),s),q(o)||De(v,e)}))})),t(),ie(h)||(g?we(S,(e=>De(v,e))):we(r,(e=>G(Le(u,e),(e=>De(v,e))))),ue(v,(e=>{const t=(t,s)=>l(Le(h,t),Le(h,s),e),s=[...Le(S,e)];m(s,t)||(ve(S,e,Me(E(s,t))),De(w,e))}))),(f||g)&&!q(i)){const t=[...S];m(t,i)||(d(e,ge(E(t,i))),f=1)}f&&L(s,[e]),ue(w,(t=>L(n,[e,t])))}),Ae(a),G(o,Ae)),S},delIndexDefinition:e=>(h(e),S),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>v(t,e,s))))),forEachSlice:(e,t)=>v(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>le(c(e),t),getTableId:i,getSliceIds:e=>fe(c(e)),getSliceRowIds:(e,t)=>ce(Le(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(w(e),S),destroy:g,getListenerStats:()=>({})};return ee(S)})),Pe=ge([["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=>P(...e),(e,t)=>P(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:P(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(ie(s))return;const[r,l,i,c]=a;return o||=q(e),ue(n,(([s,n])=>{o||(e=q(s)?l?.(e,n,t++):q(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=q(e))})),o?r(ce(s),re(s)):e},Be=xe((e=>{const s=ge(),[n,a,o,r,l,i,c,,d,u,h]=Je(e,X,(e=>isNaN(e)||q(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=ze((()=>w)),w={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=K(n)?[n,o,r,l]:Le(Pe,n)??Le(Pe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=re(o);l||=q(d),t();let g=We(d,h,o,n,u,l);B(g)||(g=void 0),g!=d&&(c(e,g),f(s,[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,t)=>g(t,s,[e]),delListener:e=>(L(e),w),destroy:h,getListenerStats:()=>({})};return ee(w)})),$e=(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 e(),i=0)},g={load:async(s,n)=>(await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),g),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=>(await g.schedule((async()=>{if(1!=i){i=2;try{await s(e.getContent,t)}catch{}i=0}})),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const s=t();g.save((()=>s))})),g),stopAutoSave:()=>(G(o,e.delListener),g),schedule:async(...e)=>(Q(u,...e),await(async()=>{if(!c){for(c=1;!q(r=N(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return ee(g)},qe=xe((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Je(e,(()=>!0),X),C=s(),y=s(),p=ge(),V=(e,t,...s)=>k(s,(s=>De(Se(Se(p,t,ge),e,Me),s))),m=e=>{G(Le(p,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),k([y,C],(t=>t.delTable(e)))},E=(e,t,s)=>V(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),m(s);const o=[],r=[[null,[n,null,null,[],ge()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=K(e)?[J(o)+t,e]:[q(s)?e:s,t=>t(e,s)];return Q(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=q(s)||K(t)?null:t,a=q(n)?t:s,o=[e,[e,n,K(a)?a:e=>e(a),[],ge()]];return Q(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>Q(l,K(e)?e:q(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,K(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return Q(i,o),{as:e=>o[0]=e}},having:(e,t)=>Q(c,K(e)?e:s=>s(e)===t)});const d=ge(o);if(ie(d))return M;const h=ge(r);we(h,((e,[,t])=>G(Le(h,t),(({3:t})=>q(e)?0:Q(t,e)))));const g=ge(i);let f=C;if(ie(g)&&A(c))f=y;else{E(s,f,y);const e=ge();we(g,((t,[s,n])=>De(Se(e,s,Me),[t,n])));const t=Me();we(d,(s=>le(e,s)?0:De(t,s)));const n=ge(),a=(t,n,a,o)=>G(t,(([r,l,i,d])=>{we(n,((t,[s])=>{const n=Se(r,t,ge),l=Le(n,a),i=o?void 0:s;if(l!==i){const s=Me([[l,i]]),o=re(n);ve(n,a,i),ue(Le(e,t),(([e,t])=>{const a=We(d[e],o,n,s,t);d[e]=q(me(a))?null:a}))}})),ie(l)||!b(c,(e=>e((e=>d[e]))))?y.delRow(s,i):q(i)?t[2]=y.addRow(s,d):y.setRow(s,i,d)}));V(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ge(),h=f.hasRow(s,l);let g=!h;ue(t,(e=>{const[t,n,a]=i(s,l,e);Q(c,n),Q(d,a),g||=t})),we(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&ve(u,e,[n])})),g&&a(Ve(n,c,void 0,(([,e])=>(he(e,l),ie(e)))),u,l,1),h&&a(Ve(n,d,(()=>{const e={};return ue(t,(t=>e[t]=f.getCell(s,l,t))),[ge(),Me(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(s,e,f);const L=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);k(r,(n=>{const[a,,o,r,l]=Le(h,n),c=o?.(i,t),[d,u]=Le(l,t)??[];c!=d&&(q(u)||I(s,u),ve(l,t,q(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...q(a)?[n,t,s]:s===n?[n,t,a]:[Le(h,s)?.[0],Le(Le(h,s)?.[4],t)?.[0],a]);f.transaction((()=>b(l,(e=>e(a)))?we(d,((e,n)=>Ee(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=Le(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?L(o,n,o,w):(f.delRow(s,o),ue(h,(({4:e})=>G(Le(e,o),(([,t])=>{I(s,t),ve(e,o)})))))}))))),M},delQueryDefinition:e=>(m(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(y.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=y.getListenerStats();return n}};return ae({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{k(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>y[e+s](...t))),M[d+c+s+i]=(...e)=>y[d+s+i](...F(e,0,t),((s,...n)=>e[t](M,...n)))})),ee(M)})),Ge=xe((e=>{const s=ge(),n=ge(),a=ge(),o=ge(),[r,l,i,c,d,u,,,h,g,f]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>q(e)?void 0:e+t)),[L,w,v]=ze((()=>I)),S=(e,t,s)=>G(u(e),(([n,,a])=>{if(!le(a,t)){const o=Me();if(d(e)!=T(e))De(o,t);else{let e=t;for(;!q(e)&&!le(o,e);)De(o,e),e=Le(n,e)}if(s)return o;ve(a,t,o)}return Le(a,t)})),R=(e,t)=>G(u(e),(([,,e])=>ve(e,t))),T=e=>Le(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(ve(s,e,r),h(e,t,((t,s)=>{const r=Me(),l=Me(),i=Me(),[c,d]=u(e);ue(s,(([t,s],n)=>{q(t)||(De(l,t),G(Le(d,t),(e=>{he(e,n),ie(e)&&ve(d,t)}))),q(s)||(De(l,s),le(d,s)||ve(d,s,Me()),De(Le(d,s),n)),De(r,n),ve(c,n,s),we(Le(o,e),(t=>{le(S(e,t),n)&&De(i,t)}))})),t(),ue(r,(t=>w(n,[e,t]))),ue(l,(t=>w(a,[e,t]))),ue(i,(t=>{R(e,t),w(o,[e,t])}))}),Ae(l)),I),delRelationshipDefinition:e=>(ve(s,e),g(e),I),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:T,getRemoteRowId:(e,t)=>Le(u(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>q(u(e))?[t]:ce(S(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)=>(S(e,t),L(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return ee(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=(e,t,s)=>q(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),Ze=(e,t,s)=>ve(e,t,Le(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ge(),u=ge(),v=ge(),b=ge(),m=ge(),D=ge(),J=ge(),A=ge(),x=ge(),z=ge(),N=ge(),P=ge(),W=ge(),B=Me(),$=ge(),U=ge(),X=ge(),Y=ge(),Z=Ke(),_=Ke(),te=Ke(),re=Ke(),ce=Ke(),Ve=Ke(),Je=Ke(),Ae=Ke(),xe=Ke(),Fe=Ke(),Ne=Ke(),je=Ke(),Pe=Ke(),We=Ke(),Be=ge(),$e=Ke(),[qe,Ge,et,tt]=ze((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>p([r,l],t))))return!1;const t=e[r];return!(!H(t)&&t!=a||(me(e[l])!=t&&ne(e,l),0))},nt=(t,s)=>(!e||le(z,s)||At(s))&&Ye(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>Ye(n?s:it(s,e,t),((n,a)=>G(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?G(Le(Le(z,t),n),(e=>me(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):q(me(a))?At(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>G(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?G(Le(P,e),(t=>me(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):q(me(s))?xt(e,s):s,it=(e,t,s)=>(G(Le(N,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ue(W,((t,s)=>{se(e,s)||(e[s]=t)})),ue(B,(t=>{se(e,t)||xt(t)}))),e),dt=e=>Re(z,e,((e,t,s)=>{const n=ge(),a=Me();Re(Se(z,t,ge),s,((e,t,s)=>{ve(e,t,s),G(s[l],(e=>ve(n,t,e)),(()=>De(a,t)))})),ve(N,t,[n,a])}),((e,t)=>{ve(z,t),ve(N,t)})),ut=e=>Re(P,e,((e,t,s)=>{ve(P,t,s),G(s[l],(e=>ve(W,t,e)),(()=>De(B,t)))}),((e,t)=>{ve(P,t),ve(W,t),he(B,t)})),ht=e=>oe(e)?os():es(e),gt=e=>Re(X,e,((e,t,s)=>ft(t,s)),((e,t)=>yt(t))),ft=(e,t)=>Re(Se(X,e,(()=>(mt(e,1),ve($,e,Qe()),ve(U,e,ge()),ge()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>Re(Se(t,s,(()=>(Et(e,s,1),ge()))),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)=>{le(s,n)||kt(e,t,n,1);const o=Le(s,n);a!==o&&(Mt(e,t,n,o,a),ve(s,n,a))},vt=(e,t,s,n,a)=>G(Le(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>oe(e)?is():ts(e),Rt=e=>Re(Y,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{le(Y,e)||Dt(e,1);const s=Le(Y,e);t!==s&&(Jt(e,s,t),ve(Y,e,t))},It=(e,t)=>{const[s]=Le($,e),n=s(t);return le(Le(X,e),n)?It(e,t):n},Ct=e=>Le(X,e)??ft(e,{}),yt=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=Le($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=Le(Le(N,e)?.[0],a);if(!q(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,Le(n,t)),kt(e,s,t,-1),ve(n,t)};q(r)?l(a):we(n,l),ie(n)&&(Et(e,s,-1),ie(ve(t,s))&&(mt(e,-1),ve(X,e),ve($,e),ve(U,e)))},Vt=e=>{const t=Le(W,e);if(!q(t))return Tt(e,t);Jt(e,Le(Y,e)),Dt(e,-1),ve(Y,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(Se(v,e,ge),t,s),kt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(Se(u,e,ge),s,n),ve(a,s,o!=-n?o+n:null),Ze(Se(Se(b,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>Se(Se(Se(m,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(D,e,t),Jt=(e,t,s)=>Se(J,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(Q(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),xt=(e,t,s)=>(Q(Se(x,e,(()=>[])),t),s),Ft=(e,t,s)=>G(Le(Le(Le(m,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>G(Le(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>ie(A)||ie(Fe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>Ge(Fe[e],[s,n,a],t))))))),Nt=e=>ie(x)||ie(Ne[e])?0:ue(e?ye(x):x,((t,s)=>Ge(Ne[e],[s],t))),Ot=(e,t,s)=>{if(!ie(t))return Ge(e,s,(()=>Te(t))),1},jt=e=>{const t=ie(Ve[e]),s=ie(Ae[e])&&ie(re[e])&&ie(ce[e])&&t&&ie(_[e]),n=ie(xe[e])&&ie(Je[e])&&ie(te[e])&&ie(Z[e]);if(!s||!n){const a=e?[ye(c),pe(u),pe(v),be(b),be(m)]:[c,u,v,b,m];if(!s){Ot(_[e],a[0]),ue(a[1],((t,s)=>Ot(re[e],t,[s])));const s=Me();ue(a[2],((n,a)=>{Ot(ce[e],n,[a])&&!t&&(Ge(Ve[e],[a,null]),De(s,a))})),t||ue(a[4],((t,n)=>{if(!le(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?De(s,a):he(e,a))))),ue(s,(t=>Ge(Ve[e],[n,t])))}})),ue(a[3],((t,s)=>ue(t,((t,n)=>Ot(Ae[e],t,[s,n])))))}if(!n){let t;ue(a[4],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,l],i)=>{l!==s&&(Ge(xe[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&Ge(Je[e],[n,o],Ft)})),a&&Ge(te[e],[n],Ft)})),t&&Ge(Z[e],void 0,Ft)}}},Pt=e=>{const t=ie(Pe[e]),s=ie(We[e])&&ie(je[e]);if(!t||!s){const n=e?[ye(D),ye(J)]:[D,J];if(t||Ot(Pe[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(Ge(We[e],[a],n,s,Qt),t=1)})),t&&Ge(je[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...M(t,y)))),fs),Bt=()=>[Te(m,((e,t)=>-1===Le(c,t)?null:Te(e,((e,s)=>-1===Le(Le(v,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Xe(t)))),oe)),oe),Te(J,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ce(m,Ue,Xe),invalidCells:Ce(A),changedValues:Te(J,Ue,Xe),invalidValues:Te(x),changedTableIds:Te(c),changedRowIds:Ie(v),changedCellIds:Ce(b),changedValueIds:Te(D)}),qt=()=>Ce(X),Gt=()=>fe(X),Ht=e=>fe(Le(X,y(e))),Kt=(e,t,s,n=0,a)=>{return M(F(E((o=Le(X,y(e)),r=(e,s)=>[q(t)?s:Le(e,y(t)),s],M([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,q(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>fe(Le(Le(X,y(e)),y(t))),Xt=(e,t,s)=>Le(Le(Le(X,y(e)),y(t)),y(s)),Yt=()=>Te(Y),Zt=()=>fe(Y),_t=e=>Le(Y,y(e)),es=e=>Wt((()=>(e=>Ye(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(j(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!ie(X))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ye(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),rs=e=>Wt((e=>le(X,e)?yt(e):0),e),ls=(e,t)=>Wt(((e,t)=>G(Le(X,e),(s=>le(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>Rt({}))),cs=()=>Wt((()=>{dt({}),e=!1})),ds=()=>Wt((()=>{ut({}),t=!1})),us=(e,t)=>{if(-1!=o){hs();const s=e();return gs(t),s}},hs=()=>(-1!=o&&o++,1==o&&Ge(Be,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!ie(m),n=!ie(J),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ue(m,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(fs,t,s,n,e))))))),ue(J,(([e],t)=>ke(fs,t,e))),s=n=!1),Ge($e[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),Ge($e[1],void 0,Bt,$t),o=0,s=n=!1,k([c,u,v,b,m,A,D,J,x],de))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Ie(Le(X,y(e))),getTableCellIds:e=>fe(Le(U,y(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Te(Le(Le(X,y(e)),y(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!ie(X),hasTable:e=>le(X,y(e)),hasTableCell:(e,t)=>le(Le(U,y(e)),y(t)),hasRow:(e,t)=>le(Le(X,y(e)),y(t)),hasCell:(e,t,s)=>le(Le(Le(X,y(e)),y(t)),y(s)),hasValues:()=>!ie(Y),hasValue:e=>le(Y,y(e)),getTablesJson:()=>O(X),getValuesJson:()=>O(Y),getJson:()=>O([X,Y]),getTablesSchemaJson:()=>O(z),getValuesSchemaJson:()=>O(P),getSchemaJson:()=>O([z,P]),setContent:([e,t])=>Wt((()=>{(oe(e)?os:es)(e),(oe(t)?is:ts)(t)})),setTables:es,setTable:(e,t)=>Wt((e=>nt(t,e)?ft(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>at(e,t,s)?Lt(e,Ct(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=y(e),Lt(e,Ct(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=Ct(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>G(ot(e,t,s,K(n)?n(Xt(e,t,s)):n),(n=>vt(e,Ct(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?ae(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>G(lt(e,K(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ae(e[0],((e,t)=>q(e)?rs(t):ae(e,((e,s)=>q(e)?ls(t,s):ae(e,((e,n)=>Ee(fs,t,s,n,e))))))),ae(e[1],((e,t)=>ke(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(j(e))}catch{}return fs},setJson:e=>{try{const[t,s]=j(e);ht(t),St(s)}catch{ss(e)}return fs},setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:ls,delCell:(e,t,s,n)=>Wt(((e,t,s)=>G(Le(X,e),(a=>G(Le(a,t),(o=>le(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>le(Y,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,y(e)),t),forEachRow:(e,t)=>ue(Le(X,y(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,y(e)),y(t)),s),forEachValue:e=>we(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);V(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),Ve[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>qe(e,Be),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 ae({[g]:[0,Z],[f]:[0,_],[h]:[1,te,[Gt]],[h+R]:[1,re,[Gt]],[w]:[1,ce,[Gt]],[L]:[2,Je,[Gt,Ht]],[R]:[2,Ae,[Gt,Ht]],[S]:[3,xe,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Fe],[I]:[0,je],[C]:[0,Pe],[T]:[1,We,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Ne]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(fs)};export{Ne as createCheckpoints,$e as createCustomPersister,je as createIndexes,Be as createMetrics,qe as createQueries,Ge as createRelationships,_e as createStore,Oe as defaultSorter};
Binary file
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=Object,n=s.keys,o=s.freeze,c=(t,e)=>a(t,(t=>t[e])),i=(t,a)=>!e(c(t,a)),r=(t,e)=>(delete t[e],t),d=(t,e)=>((t,e)=>t.map(e))(s.entries(t),(([t,a])=>e(a,t))),u=t=>n(t).length,y=t=>(t=>t instanceof s&&t.constructor==s)(t)&&0==u(t),f=(t,e)=>[t[e].t,t[e].v],l=(t,a,s,n)=>{const o=e(a)?t:((t,e,a)=>(i(t,e)||(t[e]={}),t[e]))(t,a);let c;return d(s,((t,e)=>{n(o,e,t)&&(c=1)})),d(o,((t,e)=>{i(s,e)||(r(o,e),c=1)})),!e(a)&&y(o)&&r(t,a),c};t.createAutomergePersister=(t,s,n="tinybase")=>(s.change((t=>t[n]={})),((t,i,u,h,v)=>{let p,g,w,A=0,L=0,m=0;const S=[],b=async t=>{2!=A&&(A=1,await t(),A=0)},C={load:async(e={},a={})=>(await b((async()=>{try{t.setContent(await i())}catch{t.setContent([e,a])}})),C),startAutoLoad:async(e={},a={})=>(C.stopAutoLoad(),await C.load(e,a),m=1,w=(t=>{const e=({doc:e})=>t((()=>f(e,n)));return s.on("change",e),e})((async(e,a)=>{await b((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await i())}catch{}}))})),C),stopAutoLoad:()=>{return m&&(t=w,s.removeListener("change",t),w=void 0,m=0),C;var t},save:async o=>(await C.schedule((async()=>{if(1!=A){A=2;try{await(async(t,o)=>s.change((s=>((t,s,n,o)=>{((t,e)=>{y(t[e])&&(t[e]={t:{},v:{}})})(t,s);const[i,u]=f(t,s),h=()=>{v=1};let v=1;if(a(o?.(),(([t,s])=>{v=0,d(t,((t,s)=>v?0:e(t)?r(i,s):a(i[s],(s=>d(t,((t,n)=>v?0:e(t)?r(s,n):a(c(s,n),(a=>d(t,((t,s)=>e(t)?r(a,s):a[s]=t))),h)))),h))),d(s,((t,a)=>v?0:e(t)?r(u,a):u[a]=t))})),v){const[t,e]=n();l(i,void 0,t,((t,e,a)=>l(i,e,a,((t,e,a)=>l(t,e,a,((t,e,a)=>{if(c(t,e)!==a)return t[e]=a,1})))))),l(u,void 0,e,((t,e,a)=>{c(u,e)!==a&&(u[e]=a)}))}})(s,n,t,o))))(t.getContent,o)}catch{}A=0}})),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const a=e();C.save((()=>a))})),C),stopAutoSave:()=>(a(p,t.delListener),C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(S,...t),await(async()=>{if(!L){for(L=1;!e((t=S,g=t.shift()));)try{await g()}catch{}L=0}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(C)})(t,(async()=>2==u(s.doc[n])?f(s.doc,n):void 0)))},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterAutomerge={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=Object,n=s.keys,o=s.freeze,c=(t,e)=>a(t,(t=>t[e])),i=(t,a)=>!e(c(t,a)),r=(t,e)=>(delete t[e],t),d=(t,e)=>((t,e)=>t.map(e))(s.entries(t),(([t,a])=>e(a,t))),u=t=>n(t).length,y=t=>(t=>t instanceof s&&t.constructor==s)(t)&&0==u(t),f=(t,e)=>[t[e].t,t[e].v],l=(t,a,s,n)=>{const o=e(a)?t:((t,e,a)=>(i(t,e)||(t[e]={}),t[e]))(t,a);let c;return d(s,((t,e)=>{n(o,e,t)&&(c=1)})),d(o,((t,e)=>{i(s,e)||(r(o,e),c=1)})),!e(a)&&y(o)&&r(t,a),c};t.createAutomergePersister=(t,s,n="tinybase")=>(s.change((t=>t[n]={})),((t,i,u,h,v)=>{let p,g,w,A=0,L=0,m=0;const S=[],b=async t=>{2!=A&&(A=1,await t(),A=0)},C={load:async(e,a)=>(await b((async()=>{try{t.setContent(await i())}catch{t.setContent([e,a])}})),C),startAutoLoad:async(e={},a={})=>(C.stopAutoLoad(),await C.load(e,a),m=1,w=(t=>{const e=({doc:e})=>t((()=>f(e,n)));return s.on("change",e),e})((async(e,a)=>{await b((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await i())}catch{}}))})),C),stopAutoLoad:()=>{return m&&(t=w,s.removeListener("change",t),w=void 0,m=0),C;var t},save:async o=>(await C.schedule((async()=>{if(1!=A){A=2;try{await(async(t,o)=>s.change((s=>((t,s,n,o)=>{((t,e)=>{y(t[e])&&(t[e]={t:{},v:{}})})(t,s);const[i,u]=f(t,s),h=()=>{v=1};let v=1;if(a(o?.(),(([t,s])=>{v=0,d(t,((t,s)=>v?0:e(t)?r(i,s):a(i[s],(s=>d(t,((t,n)=>v?0:e(t)?r(s,n):a(c(s,n),(a=>d(t,((t,s)=>e(t)?r(a,s):a[s]=t))),h)))),h))),d(s,((t,a)=>v?0:e(t)?r(u,a):u[a]=t))})),v){const[t,e]=n();l(i,void 0,t,((t,e,a)=>l(i,e,a,((t,e,a)=>l(t,e,a,((t,e,a)=>{if(c(t,e)!==a)return t[e]=a,1})))))),l(u,void 0,e,((t,e,a)=>{c(u,e)!==a&&(u[e]=a)}))}})(s,n,t,o))))(t.getContent,o)}catch{}A=0}})),C),startAutoSave:async()=>(await C.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const a=e();C.save((()=>a))})),C),stopAutoSave:()=>(a(p,t.delListener),C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(S,...t),await(async()=>{if(!L){for(L=1;!e((t=S,g=t.shift()));)try{await g()}catch{}L=0}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(C)})(t,(async()=>2==u(s.doc[n])?f(s.doc,n):void 0)))},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterAutomerge={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=JSON.parse,a=t=>null==t,s=Object.freeze,n="storage",o=globalThis.window,r=(t,r,i)=>((t,c,d,u,y)=>{let l,f,v,p=0,w=0,h=0;const g=[],S=async t=>{2!=p&&(p=1,await t(),p=0)},A={load:async(e={},a={})=>(await S((async()=>{try{t.setContent(await c())}catch{t.setContent([e,a])}})),A),startAutoLoad:async(a={},s={})=>(A.stopAutoLoad(),await A.load(a,s),h=1,v=(t=>{const a=a=>{a.storageArea===i&&a.key===r&&t((()=>e(a.newValue)))};return o.addEventListener(n,a),a})((async(e,a)=>{await S((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await c())}catch{}}))})),A),stopAutoLoad:()=>{return h&&(t=v,o.removeEventListener(n,t),v=void 0,h=0),A;var t},save:async e=>(await A.schedule((async()=>{if(1!=p){p=2;try{await(async t=>{return i.setItem(r,(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s}))));var e})(t.getContent)}catch{}p=0}})),A),startAutoSave:async()=>(await A.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,e)=>{const a=e();A.save((()=>a))})),A),stopAutoSave:()=>{var e,s;return e=l,s=t.delListener,a(e)||s(e),A},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g,...t),await(async()=>{if(!w){for(w=1;!a((t=g,f=t.shift()));)try{await f()}catch{}w=0}var t})(),A),getStore:()=>t,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(A)})(t,(async()=>e(i.getItem(r))));t.createLocalPersister=(t,e)=>r(t,e,localStorage),t.createSessionPersister=(t,e)=>r(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=JSON.parse,a=t=>null==t,s=Object.freeze,n="storage",o=globalThis.window,r=(t,r,i)=>((t,c,d,u,y)=>{let l,f,v,p=0,w=0,h=0;const g=[],S=async t=>{2!=p&&(p=1,await t(),p=0)},A={load:async(e,a)=>(await S((async()=>{try{t.setContent(await c())}catch{t.setContent([e,a])}})),A),startAutoLoad:async(a={},s={})=>(A.stopAutoLoad(),await A.load(a,s),h=1,v=(t=>{const a=a=>{a.storageArea===i&&a.key===r&&t((()=>e(a.newValue)))};return o.addEventListener(n,a),a})((async(e,a)=>{await S((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await c())}catch{}}))})),A),stopAutoLoad:()=>{return h&&(t=v,o.removeEventListener(n,t),v=void 0,h=0),A;var t},save:async e=>(await A.schedule((async()=>{if(1!=p){p=2;try{await(async t=>{return i.setItem(r,(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s}))));var e})(t.getContent)}catch{}p=0}})),A),startAutoSave:async()=>(await A.stopAutoSave().save(),l=t.addDidFinishTransactionListener(((t,e)=>{const a=e();A.save((()=>a))})),A),stopAutoSave:()=>{var e,s;return e=l,s=t.delListener,a(e)||s(e),A},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g,...t),await(async()=>{if(!w){for(w=1;!a((t=g,f=t.shift()));)try{await f()}catch{}w=0}var t})(),A),getStore:()=>t,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(A)})(t,(async()=>e(i.getItem(r))));t.createLocalPersister=(t,e)=>r(t,e,localStorage),t.createSessionPersister=(t,e)=>r(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),r=(a,t)=>a.map(t),o=a=>a.length,c=a=>0==o(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,v=(a,t,e)=>p(a)?e?.():t(a),f=a=>t(a)==n,m=async a=>d.all(a),T=Object,A=T.keys,h=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),C=(a,t)=>(delete a[t],a),N=(a,t)=>r(T.entries(a),(([a,e])=>t(e,a))),O=a=>T.values(a),R=a=>o(A(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>p(e)?(_(a,t),a):a?.set(t,e),F=(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)=>!p(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x=a=>new Set(Array.isArray(a)||p(a)?a:[a]),q="SELECT*FROM",W="FROM pragma_table_",k="WHERE",J=k+" schema='main'AND type='table'AND name!='sqlite_schema'",U=a=>{const t=D(),e=(a,e)=>!p($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=x();N(d??{},(a=>r(A(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&g(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||g(t,e)){const s=$(t,e),i=x((p=s,[...p?.keys()??[]]));await m([...r(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?r(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(r(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...r(E,(a=>[a,""]))]));var p;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];N(d,((a,e)=>{var s;u(t,`(?${s=o(E),",?".repeat(s)})`),u(c,e,...r(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(r(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+k+j(n)+"NOT IN("+i(r(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(r(await a("SELECT name "+W+"list "+J),(async({name:t})=>[t,L(r(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((r=D,g(n=t,i=e)||P(n,i,r()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,r}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(q+j(t)+k+j(s)+"=?",["_"]):[];return c(n)?null:C(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(r(await a(q+j(t)),(a=>[a[s],C(a,s)])),(([a,t])=>!p(a)&&!b(t)))):null,n]},Y=(a,t,e,s,n)=>{let i,r,o,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e={},s={})=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,o=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(o),o=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(v(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!p((a=d,r=a.shift()));)try{await r()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h(E)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[r,o,c]=U(t),l=Y(a,(async()=>(await r(),w((await o(i,B)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await c(i,B,"_",{[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})))})}))),s,n);return l},K="rowIdColumnName",V="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return N(a,((a,i)=>{const r=y(O(S(t,f(a)?{[e]:a}:a)),0,R(t));p(r[0])||s(i,r[0])||P(n,i,r)})),n},Z=(a,t,e,s,n)=>{const[i,r,[o,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(O(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[V]:null,[K]:B},V,(a=>a==n)),X(t,{[G]:null,[K]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,v,f]=U(t),T=Y(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>a[1]))))(),t=await(async()=>o?await w(u,B):{})();return b(a)&&p(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(r,(([t,e,s,n],i)=>async()=>await f(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",ra=(a,t,e,s,n)=>{const i=S(ea,f(t)?{storeTableName:t}:t??{});let r,o;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(r??=t)&&s==(o??=s)||(a(),r=t,o=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),r=o=null,n(t)}),i)};a.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(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.join(t),r=(a,t)=>a.map(t),o=a=>a.length,c=a=>0==o(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,v=(a,t,e)=>p(a)?e?.():t(a),f=a=>t(a)==n,m=async a=>d.all(a),T=Object,A=T.keys,h=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),C=(a,t)=>(delete a[t],a),N=(a,t)=>r(T.entries(a),(([a,e])=>t(e,a))),O=a=>T.values(a),R=a=>o(A(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>p(e)?(_(a,t),a):a?.set(t,e),F=(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)=>!p(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x=a=>new Set(Array.isArray(a)||p(a)?a:[a]),q="SELECT*FROM",W="FROM pragma_table_",k="WHERE",J=k+" schema='main'AND type='table'AND name!='sqlite_schema'",U=a=>{const t=D(),e=(a,e)=>!p($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=x();N(d??{},(a=>r(A(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&g(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||g(t,e)){const s=$(t,e),i=x((p=s,[...p?.keys()??[]]));await m([...r(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?r(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(r(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...r(E,(a=>[a,""]))]));var p;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];N(d,((a,e)=>{var s;u(t,`(?${s=o(E),",?".repeat(s)})`),u(c,e,...r(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(r(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+k+j(n)+"NOT IN("+i(r(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(r(await a("SELECT name "+W+"list "+J),(async({name:t})=>[t,L(r(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((r=D,g(n=t,i=e)||P(n,i,r()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,r}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(q+j(t)+k+j(s)+"=?",["_"]):[];return c(n)?null:C(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(r(await a(q+j(t)),(a=>[a[s],C(a,s)])),(([a,t])=>!p(a)&&!b(t)))):{},n]},Y=(a,t,e,s,n)=>{let i,r,o,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,o=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(o),o=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(v(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!p((a=d,r=a.shift()));)try{await r()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h(E)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[r,o,c]=U(t),l=Y(a,(async()=>(await r(),w((await o(i,B)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await c(i,B,"_",{[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})))})}))),s,n);return l},K="rowIdColumnName",V="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return N(a,((a,i)=>{const r=y(O(S(t,f(a)?{[e]:a}:a)),0,R(t));p(r[0])||s(i,r[0])||P(n,i,r)})),n},Z=(a,t,e,s,n)=>{const[i,r,[o,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(O(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[V]:null,[K]:B},V,(a=>a==n)),X(t,{[G]:null,[K]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,v,f]=U(t),T=Y(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?await w(u,B):{})();return b(a)&&p(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(r,(([t,e,s,n],i)=>async()=>await f(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",ra=(a,t,e,s,n)=>{const i=S(ea,f(t)?{storeTableName:t}:t??{});let r,o;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(r??=t)&&s==(o??=s)||(a(),r=t,o=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),r=o=null,n(t)}),i)};a.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(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 +1 @@
1
- var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=JSON.parse,r=t=>null==t,i=Object.freeze;t.createFilePersister=(t,o)=>((t,n,c,u,f)=>{let d,y,l,p=0,v=0,w=0;const h=[],A=async t=>{2!=p&&(p=1,await t(),p=0)},S={load:async(e={},a={})=>(await A((async()=>{try{t.setContent(await n())}catch{t.setContent([e,a])}})),S),startAutoLoad:async(a={},s={})=>{return S.stopAutoLoad(),await S.load(a,s),w=1,r=async(e,a)=>{await A((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await n())}catch{}}))},l=e.watch(o,(()=>r())),S;var r},stopAutoLoad:()=>{return w&&(t=l,t?.close(),l=void 0,w=0),S;var t},save:async e=>(await S.schedule((async()=>{if(1!=p){p=2;try{await(async t=>{return await a.writeFile(o,(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s}))),s);var e})(t.getContent)}catch{}p=0}})),S),startAutoSave:async()=>(await S.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,e)=>{const a=e();S.save((()=>a))})),S),stopAutoSave:()=>{var e,a;return e=d,a=t.delListener,r(e)||a(e),S},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(h,...t),await(async()=>{if(!v){for(v=1;!r((t=h,y=t.shift()));)try{await y()}catch{}v=0}var t})(),S),getStore:()=>t,destroy:()=>S.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(S)})(t,(async()=>n(await a.readFile(o,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=JSON.parse,r=t=>null==t,i=Object.freeze;t.createFilePersister=(t,o)=>((t,n,c,u,f)=>{let d,y,l,p=0,v=0,w=0;const h=[],A=async t=>{2!=p&&(p=1,await t(),p=0)},S={load:async(e,a)=>(await A((async()=>{try{t.setContent(await n())}catch{t.setContent([e,a])}})),S),startAutoLoad:async(a={},s={})=>{return S.stopAutoLoad(),await S.load(a,s),w=1,r=async(e,a)=>{await A((async()=>{if(a)t.setTransactionChanges(a());else try{t.setContent(e?.()??await n())}catch{}}))},l=e.watch(o,(()=>r())),S;var r},stopAutoLoad:()=>{return w&&(t=l,t?.close(),l=void 0,w=0),S;var t},save:async e=>(await S.schedule((async()=>{if(1!=p){p=2;try{await(async t=>{return await a.writeFile(o,(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s}))),s);var e})(t.getContent)}catch{}p=0}})),S),startAutoSave:async()=>(await S.stopAutoSave().save(),d=t.addDidFinishTransactionListener(((t,e)=>{const a=e();S.save((()=>a))})),S),stopAutoSave:()=>{var e,a;return e=d,a=t.delListener,r(e)||a(e),S},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(h,...t),await(async()=>{if(!v){for(v=1;!r((t=h,y=t.shift()));)try{await y()}catch{}v=0}var t})(),S),getStore:()=>t,destroy:()=>S.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(S)})(t,(async()=>n(await a.readFile(o,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=>null==t,s=Object.freeze,n=t=>t.headers.get("ETag");t.createRemotePersister=(t,o,r,i)=>{let c;return((t,e,d,y,u)=>{let f,h,l,p=0,v=0,w=0;const g=[],A=async t=>{2!=p&&(p=1,await t(),p=0)},S={load:async(a={},s={})=>(await A((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),S),startAutoLoad:async(s={},r={})=>{return S.stopAutoLoad(),await S.load(s,r),w=1,d=async(a,s)=>{await A((async()=>{if(s)t.setTransactionChanges(s());else try{t.setContent(a?.()??await e())}catch{}}))},l=setInterval((async()=>{const t=await fetch(o,{method:"HEAD"}),e=n(t);a(c)||a(e)||e==c||(c=e,d())}),1e3*i),S;var d},stopAutoLoad:()=>(w&&(clearInterval(l),l=void 0,w=0),S),save:async e=>(await S.schedule((async()=>{if(1!=p){p=2;try{await(async t=>{return await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s})))});var e})(t.getContent)}catch{}p=0}})),S),startAutoSave:async()=>(await S.stopAutoSave().save(),f=t.addDidFinishTransactionListener(((t,e)=>{const a=e();S.save((()=>a))})),S),stopAutoSave:()=>{var e,s;return e=f,s=t.delListener,a(e)||s(e),S},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g,...t),await(async()=>{if(!v){for(v=1;!a((t=g,h=t.shift()));)try{await h()}catch{}v=0}var t})(),S),getStore:()=>t,destroy:()=>S.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(S)})(t,(async()=>{const t=await fetch(o);return c=n(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=JSON.parse,a=t=>null==t,s=Object.freeze,n=t=>t.headers.get("ETag");t.createRemotePersister=(t,o,r,i)=>{let c;return((t,e,d,y,u)=>{let f,h,l,p=0,v=0,w=0;const g=[],A=async t=>{2!=p&&(p=1,await t(),p=0)},S={load:async(a,s)=>(await A((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),S),startAutoLoad:async(s={},r={})=>{return S.stopAutoLoad(),await S.load(s,r),w=1,d=async(a,s)=>{await A((async()=>{if(s)t.setTransactionChanges(s());else try{t.setContent(a?.()??await e())}catch{}}))},l=setInterval((async()=>{const t=await fetch(o,{method:"HEAD"}),e=n(t);a(c)||a(e)||e==c||(c=e,d())}),1e3*i),S;var d},stopAutoLoad:()=>(w&&(clearInterval(l),l=void 0,w=0),S),save:async e=>(await S.schedule((async()=>{if(1!=p){p=2;try{await(async t=>{return await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(a=(t,[e,a])=>(t[e]=a,t),s={},[...e].reduce(a,s)):e;var a,s})))});var e})(t.getContent)}catch{}p=0}})),S),startAutoSave:async()=>(await S.stopAutoSave().save(),f=t.addDidFinishTransactionListener(((t,e)=>{const a=e();S.save((()=>a))})),S),stopAutoSave:()=>{var e,s;return e=f,s=t.delListener,a(e)||s(e),S},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(g,...t),await(async()=>{if(!v){for(v=1;!a((t=g,h=t.shift()));)try{await h()}catch{}v=0}var t})(),S),getStore:()=>t,destroy:()=>S.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(S)})(t,(async()=>{const t=await fetch(o);return c=n(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 +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),r=a=>a.length,c=a=>0==r(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,p=(a,t)=>a instanceof t,E=a=>null==a,m=(a,t,e)=>E(a)?e?.():t(a),v=a=>t(a)==n,f=async a=>d.all(a),h=Object,T=h.keys,A=h.freeze,L=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),b=(a,t)=>(delete a[t],a),R=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),C=a=>h.values(a),N=a=>r(T(a)),_=a=>(a=>p(a,h)&&a.constructor==h)(a)&&0==N(a),g=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>m(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",q=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),k="SELECT*FROM",x="FROM pragma_table_",W="WHERE",J=W+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=D(),e=(a,e)=>!E($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=B();R(d??{},(a=>o(T(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const p=O(w);if(c(p)&&g(t,e)&&y)return await a("DROP TABLE"+q(e)),void P(t,e);if(c(p)||g(t,e)){const s=$(t,e),i=B((E=s,[...E?.keys()??[]]));await f([...o(p,(async t=>{I(i,t)||(await a(`ALTER TABLE${q(e)}ADD${q(t)}`),P(s,t,""))})),...l?o(O(i),(async t=>{t!=n&&(await a(`ALTER TABLE${q(e)}DROP${q(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${q(e)}(${q(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+q(a))))});`),P(t,e,D([[n,""],...o(p,(a=>[a,""]))]));var E;if(c(p))await a("DELETE FROM"+q(e));else{const t=[],c=[],l=[];R(d,((a,e)=>{var s;u(t,`(?${s=r(p),",?".repeat(s)})`),u(c,e,...o(p,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+q(e)+"("+q(n)+i(o(p,(a=>s+q(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+q(e)+W+q(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await f(o(await a("SELECT name "+x+"list "+J),(async({name:t})=>[t,L(o(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,g(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(k+q(t)+W+q(s)+"=?",["_"]):[];return c(n)?null:b(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(k+q(t)),(a=>[a[s],b(a,s)])),(([a,t])=>!E(a)&&!_(t)))):null,n]},Y=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},p={load:async(e={},s={})=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),p),save:async t=>(await p.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(m(i,a.delListener),p),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!E((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(p)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=V(t),l=Y(a,(async()=>(await o(),w((await r(i,j)??{})[z]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,j,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return p(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",U="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return R(a,((a,i)=>{const o=y(C(S(t,v(a)?{[e]:a}:a)),0,N(t));E(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(C(S(Q,e)),0,N(Q)),n=s[2];return[X(a,{[U]:null,[K]:j},U,(a=>a==n)),X(t,{[G]:null,[K]:j,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,p,m,v]=V(t),h=Y(a,(async()=>{await d();const a=await(async()=>L(l(await f(M(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>a[1]))))(),t=await(async()=>r?await w(u,j):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await p(u,j,"_",a):null)(e))}),e,s);return h},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)};a.createSqliteWasmPersister=(a,t,e,s)=>oa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,(()=>a()),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.join(t),o=(a,t)=>a.map(t),r=a=>a.length,c=a=>0==r(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,p=(a,t)=>a instanceof t,E=a=>null==a,m=(a,t,e)=>E(a)?e?.():t(a),v=a=>t(a)==n,f=async a=>d.all(a),h=Object,T=h.keys,A=h.freeze,L=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),b=(a,t)=>(delete a[t],a),R=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),C=a=>h.values(a),N=a=>r(T(a)),_=a=>(a=>p(a,h)&&a.constructor==h)(a)&&0==N(a),g=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>m(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",q=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),k="SELECT*FROM",x="FROM pragma_table_",W="WHERE",J=W+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=D(),e=(a,e)=>!E($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=B();R(d??{},(a=>o(T(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const p=O(w);if(c(p)&&g(t,e)&&y)return await a("DROP TABLE"+q(e)),void P(t,e);if(c(p)||g(t,e)){const s=$(t,e),i=B((E=s,[...E?.keys()??[]]));await f([...o(p,(async t=>{I(i,t)||(await a(`ALTER TABLE${q(e)}ADD${q(t)}`),P(s,t,""))})),...l?o(O(i),(async t=>{t!=n&&(await a(`ALTER TABLE${q(e)}DROP${q(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${q(e)}(${q(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+q(a))))});`),P(t,e,D([[n,""],...o(p,(a=>[a,""]))]));var E;if(c(p))await a("DELETE FROM"+q(e));else{const t=[],c=[],l=[];R(d,((a,e)=>{var s;u(t,`(?${s=r(p),",?".repeat(s)})`),u(c,e,...o(p,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+q(e)+"("+q(n)+i(o(p,(a=>s+q(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+q(e)+W+q(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await f(o(await a("SELECT name "+x+"list "+J),(async({name:t})=>[t,L(o(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,g(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(k+q(t)+W+q(s)+"=?",["_"]):[];return c(n)?null:b(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(k+q(t)),(a=>[a[s],b(a,s)])),(([a,t])=>!E(a)&&!_(t)))):{},n]},Y=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},p={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),p),save:async t=>(await p.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(m(i,a.delListener),p),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!E((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(p)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=V(t),l=Y(a,(async()=>(await o(),w((await r(i,j)??{})[z]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,j,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return p(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",U="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return R(a,((a,i)=>{const o=y(C(S(t,v(a)?{[e]:a}:a)),0,N(t));E(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(C(S(Q,e)),0,N(Q)),n=s[2];return[X(a,{[U]:null,[K]:j},U,(a=>a==n)),X(t,{[G]:null,[K]:j,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,p,m,v]=V(t),h=Y(a,(async()=>{await d();const a=await(async()=>L(l(await f(M(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?await w(u,j):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await p(u,j,"_",a):null)(e))}),e,s);return h},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)};a.createSqliteWasmPersister=(a,t,e,s)=>oa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,(()=>a()),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 +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),r=a=>a.length,c=a=>0==r(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,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),v=a=>t(a)==n,m=async a=>d.all(a),T=Object,h=T.keys,A=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),g=(a,t)=>(delete a[t],a),C=(a,t)=>o(T.entries(a),(([a,e])=>t(e,a))),N=a=>T.values(a),R=a=>r(h(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),O=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(_(a,t),a):a?.set(t,e),F=(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="_id",j=a=>`"${a.replace(/"/g,'""')}"`,q=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x="SELECT*FROM",k="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",z=a=>{const t=D(),e=(a,e)=>!f($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=q();C(d??{},(a=>o(h(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&O(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||O(t,e)){const s=$(t,e),i=q((f=s,[...f?.keys()??[]]));await m([...o(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?o(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...o(E,(a=>[a,""]))]));var f;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];C(d,((a,e)=>{var s;u(t,`(?${s=r(E),",?".repeat(s)})`),u(c,e,...o(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(o(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+J+j(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(o(await a("SELECT name "+k+"list "+Y),(async({name:t})=>[t,L(o(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,O(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(x+j(t)+J+j(s)+"=?",["_"]):[];return c(n)?null:g(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(x+j(t)),(a=>[a[s],g(a,s)])),(([a,t])=>!f(a)&&!b(t)))):null,n]},H=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e={},s={})=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!f((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(E)},K="store",U=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=z(t),l=H(a,(async()=>(await o(),w((await r(i,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,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})))})}))),s,n);return l},V="rowIdColumnName",W="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return C(a,((a,i)=>{const o=y(N(S(t,v(a)?{[e]:a}:a)),0,R(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(N(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[W]:null,[V]:B},W,(a=>a==n)),X(t,{[G]:null,[V]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,p,v]=z(t),T=H(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>a[1]))))(),t=await(async()=>r?await w(u,B):{})();return b(a)&&f(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?U:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)},ra="change";a.createSqlite3Persister=(a,t,e)=>oa(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=()=>a();return t.on(ra,e),e}),(a=>t.off(ra,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.join(t),o=(a,t)=>a.map(t),r=a=>a.length,c=a=>0==r(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,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),v=a=>t(a)==n,m=async a=>d.all(a),T=Object,h=T.keys,A=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),g=(a,t)=>(delete a[t],a),C=(a,t)=>o(T.entries(a),(([a,e])=>t(e,a))),N=a=>T.values(a),R=a=>r(h(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),O=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(_(a,t),a):a?.set(t,e),F=(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="_id",j=a=>`"${a.replace(/"/g,'""')}"`,q=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x="SELECT*FROM",k="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",z=a=>{const t=D(),e=(a,e)=>!f($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=q();C(d??{},(a=>o(h(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&O(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||O(t,e)){const s=$(t,e),i=q((f=s,[...f?.keys()??[]]));await m([...o(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?o(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...o(E,(a=>[a,""]))]));var f;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];C(d,((a,e)=>{var s;u(t,`(?${s=r(E),",?".repeat(s)})`),u(c,e,...o(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(o(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+J+j(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(o(await a("SELECT name "+k+"list "+Y),(async({name:t})=>[t,L(o(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,O(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(x+j(t)+J+j(s)+"=?",["_"]):[];return c(n)?null:g(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(x+j(t)),(a=>[a[s],g(a,s)])),(([a,t])=>!f(a)&&!b(t)))):{},n]},H=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!f((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(E)},K="store",U=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=z(t),l=H(a,(async()=>(await o(),w((await r(i,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,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})))})}))),s,n);return l},V="rowIdColumnName",W="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return C(a,((a,i)=>{const o=y(N(S(t,v(a)?{[e]:a}:a)),0,R(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(N(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[W]:null,[V]:B},W,(a=>a==n)),X(t,{[G]:null,[V]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,p,v]=z(t),T=H(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>r?await w(u,B):{})();return b(a)&&f(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?U:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)},ra="change";a.createSqlite3Persister=(a,t,e)=>oa(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=()=>a();return t.on(ra,e),e}),(a=>t.off(ra,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 +1 @@
1
- var t,e;t=this,e=function(t,e){"use strict";const s=t=>t.length,a=t=>t.shift(),n=t=>null==t,o=(t,e,s)=>n(t)?s?.():e(t),i=Object,r=i.freeze,c=(t=[])=>i.fromEntries(t),d=(t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)),l=(t,e)=>((t,e)=>t.map(e))(i.entries(t),(([t,s])=>e(s,t))),u=(t,e,s)=>(d(t,e)||(t[e]=s()),t[e]),y=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,s)=>e(s,t))),g="t",f="delete",p=t=>[t.get(g),t.get("v")],v=(t,s,a,o)=>{const i=n(s)?t:t.get(s)??t.set(s,new e.Map);let r;return l(a,((t,e)=>{o(i,e,t)&&(r=1)})),i.forEach(((t,e)=>{d(a,e)||(i.delete(e),r=1)})),n(s)||i.size||t.delete(s),r};t.createYjsPersister=(t,i,d="tinybase")=>{const h=i.getMap(d);return((t,d,w,S,A)=>{let b,j,O,J=0,L=0,N=0;const C=[],T=async t=>{2!=J&&(J=1,await t(),J=0)},m={load:async(e={},s={})=>(await T((async()=>{try{t.setContent(await d())}catch{t.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),N=1,O=(t=>{const e=e=>t(void 0,(()=>((t,e)=>{if(1==s(e)&&(n=e[0].path,0==s(n)))return[t.get("t").toJSON(),t.get("v").toJSON()];var n;const[i,r]=p(t),d={},l={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>a(t)==g?o(a(t),(s=>{const n=u(d,s,c),r=i.get(s);o(a(t),(t=>{const s=u(n,t,c),a=r.get(t);y(e,((t,{action:e})=>s[t]=e==f?null:a.get(t)))}),(()=>y(e,((t,{action:e})=>n[t]=e==f?null:r.get(t)?.toJSON()))))}),(()=>y(e,((t,{action:e})=>d[t]=e==f?null:i.get(t)?.toJSON())))):y(e,((t,{action:e})=>l[t]=e==f?null:r.get(t)))))})(e),[d,l]})(h,e)));return h.observeDeep(e),e})((async(e,s)=>{await T((async()=>{if(s)t.setTransactionChanges(s());else try{t.setContent(e?.()??await d())}catch{}}))})),m),stopAutoLoad:()=>{return N&&(t=O,h.unobserveDeep(t),O=void 0,N=0),m;var t},save:async s=>(await m.schedule((async()=>{if(1!=J){J=2;try{await(async(t,s)=>i.transact((()=>((t,s,a)=>{(t=>{t.size||(t.set(g,new e.Map),t.set("v",new e.Map))})(t);const[i,r]=p(t),c=()=>{d=1};let d=1;if(o(a?.(),(([t,e])=>{d=0,l(t,((t,e)=>d?0:n(t)?i.delete(e):o(i.get(e),(e=>l(t,((t,s)=>d?0:n(t)?e.delete(s):o(e.get(s),(e=>l(t,((t,s)=>n(t)?e.delete(s):e.set(s,t)))),c)))),c))),l(e,((t,e)=>d?0:n(t)?r.delete(e):r.set(e,t)))})),d){const[t,e]=s();v(i,void 0,t,((t,e,s)=>v(i,e,s,((t,e,s)=>v(t,e,s,((t,e,s)=>{if(t.get(e)!==s)return t.set(e,s),1})))))),v(r,void 0,e,((t,e,s)=>{r.get(e)!==s&&r.set(e,s)}))}})(h,t,s))))(t.getContent,s)}catch{}J=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),b=t.addDidFinishTransactionListener(((t,e)=>{const s=e();m.save((()=>s))})),m),stopAutoSave:()=>(o(b,t.delListener),m),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(C,...t),await(async()=>{if(!L){for(L=1;!n(j=a(C));)try{await j()}catch{}L=0}})(),m),getStore:()=>t,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(m)})(t,(async()=>h.size?[h.get(g).toJSON(),h.get("v").toJSON()]:void 0))}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("yjs")):"function"==typeof define&&define.amd?define(["exports","yjs"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterYjs={},t.yjs);
1
+ var t,e;t=this,e=function(t,e){"use strict";const s=t=>t.length,a=t=>t.shift(),n=t=>null==t,o=(t,e,s)=>n(t)?s?.():e(t),i=Object,r=i.freeze,c=(t=[])=>i.fromEntries(t),d=(t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)),l=(t,e)=>((t,e)=>t.map(e))(i.entries(t),(([t,s])=>e(s,t))),u=(t,e,s)=>(d(t,e)||(t[e]=s()),t[e]),y=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,s)=>e(s,t))),g="t",f="delete",p=t=>[t.get(g),t.get("v")],v=(t,s,a,o)=>{const i=n(s)?t:t.get(s)??t.set(s,new e.Map);let r;return l(a,((t,e)=>{o(i,e,t)&&(r=1)})),i.forEach(((t,e)=>{d(a,e)||(i.delete(e),r=1)})),n(s)||i.size||t.delete(s),r};t.createYjsPersister=(t,i,d="tinybase")=>{const h=i.getMap(d);return((t,d,w,S,A)=>{let b,j,O,J=0,L=0,N=0;const C=[],T=async t=>{2!=J&&(J=1,await t(),J=0)},m={load:async(e,s)=>(await T((async()=>{try{t.setContent(await d())}catch{t.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),N=1,O=(t=>{const e=e=>t(void 0,(()=>((t,e)=>{if(1==s(e)&&(n=e[0].path,0==s(n)))return[t.get("t").toJSON(),t.get("v").toJSON()];var n;const[i,r]=p(t),d={},l={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>a(t)==g?o(a(t),(s=>{const n=u(d,s,c),r=i.get(s);o(a(t),(t=>{const s=u(n,t,c),a=r.get(t);y(e,((t,{action:e})=>s[t]=e==f?null:a.get(t)))}),(()=>y(e,((t,{action:e})=>n[t]=e==f?null:r.get(t)?.toJSON()))))}),(()=>y(e,((t,{action:e})=>d[t]=e==f?null:i.get(t)?.toJSON())))):y(e,((t,{action:e})=>l[t]=e==f?null:r.get(t)))))})(e),[d,l]})(h,e)));return h.observeDeep(e),e})((async(e,s)=>{await T((async()=>{if(s)t.setTransactionChanges(s());else try{t.setContent(e?.()??await d())}catch{}}))})),m),stopAutoLoad:()=>{return N&&(t=O,h.unobserveDeep(t),O=void 0,N=0),m;var t},save:async s=>(await m.schedule((async()=>{if(1!=J){J=2;try{await(async(t,s)=>i.transact((()=>((t,s,a)=>{(t=>{t.size||(t.set(g,new e.Map),t.set("v",new e.Map))})(t);const[i,r]=p(t),c=()=>{d=1};let d=1;if(o(a?.(),(([t,e])=>{d=0,l(t,((t,e)=>d?0:n(t)?i.delete(e):o(i.get(e),(e=>l(t,((t,s)=>d?0:n(t)?e.delete(s):o(e.get(s),(e=>l(t,((t,s)=>n(t)?e.delete(s):e.set(s,t)))),c)))),c))),l(e,((t,e)=>d?0:n(t)?r.delete(e):r.set(e,t)))})),d){const[t,e]=s();v(i,void 0,t,((t,e,s)=>v(i,e,s,((t,e,s)=>v(t,e,s,((t,e,s)=>{if(t.get(e)!==s)return t.set(e,s),1})))))),v(r,void 0,e,((t,e,s)=>{r.get(e)!==s&&r.set(e,s)}))}})(h,t,s))))(t.getContent,s)}catch{}J=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),b=t.addDidFinishTransactionListener(((t,e)=>{const s=e();m.save((()=>s))})),m),stopAutoSave:()=>(o(b,t.delListener),m),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(C,...t),await(async()=>{if(!L){for(L=1;!n(j=a(C));)try{await j()}catch{}L=0}})(),m),getStore:()=>t,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(m)})(t,(async()=>h.size?[h.get(g).toJSON(),h.get("v").toJSON()]:void 0))}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("yjs")):"function"==typeof define&&define.amd?define(["exports","yjs"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterYjs={},t.yjs);
@@ -1 +1 @@
1
- var t,a;t=this,a=function(t){"use strict";const a=t=>null==t,e=Object.freeze;t.createCustomPersister=(t,s,o,n,i)=>{let c,r,d,u=0,y=0,f=0;const l=[],p=async t=>{2!=u&&(u=1,await t(),u=0)},h={load:async(a={},e={})=>(await p((async()=>{try{t.setContent(await s())}catch{t.setContent([a,e])}})),h),startAutoLoad:async(a={},e={})=>(h.stopAutoLoad(),await h.load(a,e),f=1,d=n((async(a,e)=>{await p((async()=>{if(e)t.setTransactionChanges(e());else try{t.setContent(a?.()??await s())}catch{}}))})),h),stopAutoLoad:()=>(f&&(i(d),d=void 0,f=0),h),save:async a=>(await h.schedule((async()=>{if(1!=u){u=2;try{await o(t.getContent,a)}catch{}u=0}})),h),startAutoSave:async()=>(await h.stopAutoSave().save(),c=t.addDidFinishTransactionListener(((t,a)=>{const e=a();h.save((()=>e))})),h),stopAutoSave:()=>{var e,s;return e=c,s=t.delListener,a(e)||s(e),h},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(l,...t),await(async()=>{if(!y){for(y=1;!a((t=l,r=t.shift()));)try{await r()}catch{}y=0}var t})(),h),getStore:()=>t,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return e(h)}},"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisters={});
1
+ var t,a;t=this,a=function(t){"use strict";const a=t=>null==t,e=Object.freeze;t.createCustomPersister=(t,s,o,n,i)=>{let c,r,d,u=0,y=0,f=0;const l=[],p=async t=>{2!=u&&(u=1,await t(),u=0)},h={load:async(a,e)=>(await p((async()=>{try{t.setContent(await s())}catch{t.setContent([a,e])}})),h),startAutoLoad:async(a={},e={})=>(h.stopAutoLoad(),await h.load(a,e),f=1,d=n((async(a,e)=>{await p((async()=>{if(e)t.setTransactionChanges(e());else try{t.setContent(a?.()??await s())}catch{}}))})),h),stopAutoLoad:()=>(f&&(i(d),d=void 0,f=0),h),save:async a=>(await h.schedule((async()=>{if(1!=u){u=2;try{await o(t.getContent,a)}catch{}u=0}})),h),startAutoSave:async()=>(await h.stopAutoSave().save(),c=t.addDidFinishTransactionListener(((t,a)=>{const e=a();h.save((()=>e))})),h),stopAutoSave:()=>{var e,s;return e=c,s=t.delListener,a(e)||s(e),h},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(l,...t),await(async()=>{if(!y){for(y=1;!a((t=l,r=t.shift()));)try{await r()}catch{}y=0}var t})(),h),getStore:()=>t,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return e(h)}},"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisters={});
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((()=>{Ut(e),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",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={});
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",f="Table",g=f+"s",L=f+h,w="Row",S=w+h,T="Sorted"+w+h,v="Cell",R=v+h,I="Value",y=I+"s",p=I+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),fe=(e,t)=>e?.delete(t),ge=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)?(fe(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),Ie=(e,t,s)=>{const n={};return he(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ye=(e,t,s)=>Ie(e,(e=>Ie(e,t,s)),re),pe=(e,t,s)=>Ie(e,(e=>ye(e,t,s)),re),Ce=(e,t)=>{const s=ge();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:ge),(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=ge(),o=ge(),r=ge(),l=ge(),i=ge(),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),fe(n,t)})),ce(n)&&Te(i,t)})),u=(e,s)=>{Te(a,e,s),ie(o,e)||(Te(o,e,t()),Te(r,e,ge()),Te(l,e,ge()))},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 f=ge(),g=ge(),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(f,t,[r,l]),!G(h)){const e=we(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&Te(g,t,s)}},T=e=>{o((()=>{he(f,(([,e],t)=>Te(L,t,e))),he(g,((e,t)=>Te(w,t,e)))}),f,g,L,w,e),ue(f),ue(g)};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=ge();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=>(fe(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=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,f]=Ne((()=>O)),g=ge(),L=ge(),w=[],S=[],T=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=we(g,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(g,e),Te(L,e),h(d,[e])},R=(e,t)=>M(((e,t)=>e.splice(0,t))(e,t??J(e)),v),I=()=>R(w,J(w)-o),y=()=>H(t,(()=>{z(w,t),I(),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){y();const e=ve(r,t,ge),l=ve(e,s,ge),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){y();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(g,t,[r,l]),F(t,e),r=ge(),l=ge(),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(g,e),O={setSize:e=>(o=e,I(),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=>(f(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=ge(),n=ge(),[a,o,r,l,i,c,d,,u,h,f]=Je(e,ge,(e=>G(e)?s:X(e)?x(e,C):C(e))),[g,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,f)=>{let g=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=>fe(a,e)?fe(n,e):0)),he(n,(e=>{De(w,e),H(we(T,e),(t=>{fe(t,s),ce(t)&&(Te(T,e),g=1)}))})),he(a,(e=>{De(w,e),ie(T,e)||(Te(T,e,xe()),g=1),De(we(T,e),s),G(o)||De(S,e)}))})),s(),ce(h)||(f?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))}))),(g||f)&&!G(i)){const t=[...T];E(t,i)||(d(e,ge(k(t,i))),g=1)}g&&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)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>g(s,n,[e,t]),delListener:e=>(w(e),T),destroy:f,getListenerStats:()=>({})};return te(T)})),Be=ge([["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=ge(),[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)),[f,g,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 f=We(d,h,o,n,u,l);$(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,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)=>f(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,g,L,I]=Je(e,(()=>!0),Y),y=t(),p=t(),C=ge(),b=(e,t,...s)=>M(s,(s=>De(ve(ve(C,t,ge),e,xe),s))),m=e=>{H(we(C,e),(e=>{Se(e,((e,t)=>he(t,(t=>e.delListener(t))))),ue(e)})),M([p,y],(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,[],ge()]]],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),[],ge()]];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=ge(o);if(ce(u))return k;const h=ge(r);Se(h,((e,[,t])=>H(we(h,t),(({3:t})=>G(e)?0:z(t,e)))));const f=ge(c);let g=y;if(ce(f)&&A(d))g=p;else{E(t,g,p);const e=ge();Se(f,((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=ge(),a=(s,n,a,o)=>H(s,(([r,l,i,c])=>{Se(n,((t,[s])=>{const n=ve(r,t,ge),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(g,t,g.addRowListener(t,null,((o,r,l,i)=>{const c=[],d=[],u=ge(),h=g.hasRow(t,l);let f=!h;he(s,(e=>{const[s,n,a]=i(t,l,e);z(c,n),z(d,a),f||=s})),Se(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&Te(u,e,[n])})),f&&a(me(n,c,void 0,(([,e])=>(fe(e,l),ce(e)))),u,l,1),h&&a(me(n,d,(()=>{const e={};return he(s,(s=>e[s]=g.getCell(t,l,s))),[ge(),xe(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(t,e,g);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)||I(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]);g.transaction((()=>V(l,(e=>e(a)))?Se(u,((e,n)=>ke(g,t,s,e,n(a,s)))):g.delRow(t,s)))})(s)},{3:S}=we(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),he(h,(({4:e})=>H(we(e,o),(([,s])=>{I(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:g,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return oe({[f]:[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=ge(),n=ge(),a=ge(),o=ge(),[r,l,i,c,d,u,,,h,f,g]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>G(e)?void 0:e+s)),[L,w,S]=Ne((()=>I)),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),I={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=>{fe(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)),I),delRelationshipDefinition:e=>(Te(t,e),f(e),I),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)),I),destroy:g,getListenerStats:()=>({})};return te(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],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=ge(),d=ge(),h=ge(),T=ge(),V=ge(),E=ge(),D=ge(),J=ge(),A=ge(),F=ge(),N=ge(),j=ge(),B=ge(),W=xe(),$=ge(),q=ge(),X=ge(),Y=ge(),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=ge(),$e=Ke(),[qe,Ge,et,tt]=Ne((()=>gs)),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=ge(),a=xe();Re(ve(F,t,ge),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),fe(W,t)})),ht=e=>re(e)?os():es(e),ft=e=>Re(X,e,((e,t,s)=>gt(t,s)),((e,t)=>pt(t))),gt=(e,t)=>Re(ve(X,e,(()=>(mt(e,1),Te($,e,ze()),Te(q,e,ge()),ge()))),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),ge()))),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))},It=(e,t)=>{const[s]=we($,e),n=s(t);return ie(we(X,e),n)?It(e,t):n},yt=e=>we(X,e)??gt(e,{}),pt=e=>gt(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,ge),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,ge),s,n),Te(a,s,o!=-n?o+n:null),Ze(ve(ve(T,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>ve(ve(ve(V,e,ge),t,ge),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,ge),t,ge),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,(()=>Ie(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):fe(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)))),gs),Wt=()=>[Ie(V,((e,t)=>-1===we(r,t)?null:Ie(e,((e,s)=>-1===we(we(h,t),s)?null:Ie(e,(([,e])=>e??null),((e,t)=>Xe(t)))),re)),re),Ie(D,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:pe(V,Ue,Xe),invalidCells:pe(J),changedValues:Ie(D,Ue,Xe),invalidValues:Ie(A),changedTableIds:Ie(r),changedRowIds:ye(h),changedCellIds:pe(T),changedValueIds:Ie(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=()=>Ie(Y),Zt=()=>Le(Y),_t=e=>we(Y,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(P(e))}catch{}return gs},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((()=>ft({}))),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 fs(t),s}},hs=()=>(-1!=a&&a++,1==a&&Ge(We,void 0,Wt,$t),gs),fs=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(gs,t,s,n,e))))))),he(D,(([e],t)=>Me(gs,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))),gs),gs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>ye(we(X,C(e))),getTableCellIds:e=>Le(we(q,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Ie(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((()=>{es(e),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,yt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,yt(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Bt(((e,t)=>{if(at(e,t,s,1)){const n=yt(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,yt(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(gs,t,s,n,e))))))),oe(e[1],((e,t)=>Me(gs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{Tt(P(e))}catch{}return gs},setJson:e=>{try{const[t,s]=P(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)=>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:fs,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(gs,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),gs),delListener:e=>(et(e),gs),getListenerStats:()=>({}),createStore:_e};return oe({[g]:[0,Z],[L]:[0,_],[f]:[1,ee,[Gt]],[f+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],[y]:[0,je],[p]:[0,Pe],[I]:[1,Be,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Qe]},(([e,t,s,n],a)=>{gs[u+a+c]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?Q(a,0,e):void 0,s,n)})),te(gs)};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 e(),i=0)},f={load:async(s={},n={})=>(await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),f),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=>(await f.schedule((async()=>{if(1!=i){i=2;try{await s(e.getContent,t)}catch{}i=0}})),f),startAutoSave:async()=>(await f.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const s=t();f.save((()=>s))})),f),stopAutoSave:()=>(H(o,e.delListener),f),schedule:async(...e)=>(z(u,...e),await(async()=>{if(!c){for(c=1;!G(r=j(u));)try{await r()}catch{}c=0}})(),f),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return te(f)},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,I="Value",y=I+"s",p=I+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),fe=(e,t)=>e?.delete(t),ge=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)?(fe(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),Ie=(e,t,s)=>{const n={};return he(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ye=(e,t,s)=>Ie(e,(e=>Ie(e,t,s)),re),pe=(e,t,s)=>Ie(e,(e=>ye(e,t,s)),re),Ce=(e,t)=>{const s=ge();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:ge),(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=ge(),o=ge(),r=ge(),l=ge(),i=ge(),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),fe(n,t)})),ce(n)&&Te(i,t)})),u=(e,s)=>{Te(a,e,s),ie(o,e)||(Te(o,e,t()),Te(r,e,ge()),Te(l,e,ge()))},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 f=ge(),g=ge(),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(f,t,[r,l]),!G(h)){const e=we(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&Te(g,t,s)}},T=e=>{o((()=>{he(f,(([,e],t)=>Te(L,t,e))),he(g,((e,t)=>Te(w,t,e)))}),f,g,L,w,e),ue(f),ue(g)};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=ge();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=>(fe(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=ge(),l=ge(),i=1;const c=ge(),d=ge(),[u,h,f]=Ne((()=>O)),g=ge(),L=ge(),w=[],S=[],T=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=we(g,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(g,e),Te(L,e),h(d,[e])},R=(e,t)=>M(((e,t)=>e.splice(0,t))(e,t??J(e)),v),I=()=>R(w,J(w)-o),y=()=>H(t,(()=>{z(w,t),I(),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){y();const e=ve(r,t,ge),l=ve(e,s,ge),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){y();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(g,t,[r,l]),F(t,e),r=ge(),l=ge(),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(g,e),O={setSize:e=>(o=e,I(),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=>(f(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=ge(),n=ge(),[a,o,r,l,i,c,d,,u,h,f]=Je(e,ge,(e=>G(e)?s:X(e)?x(e,C):C(e))),[g,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,f)=>{let g=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=>fe(a,e)?fe(n,e):0)),he(n,(e=>{De(w,e),H(we(T,e),(t=>{fe(t,s),ce(t)&&(Te(T,e),g=1)}))})),he(a,(e=>{De(w,e),ie(T,e)||(Te(T,e,xe()),g=1),De(we(T,e),s),G(o)||De(S,e)}))})),s(),ce(h)||(f?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))}))),(g||f)&&!G(i)){const t=[...T];E(t,i)||(d(e,ge(k(t,i))),g=1)}g&&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)=>g(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>g(s,n,[e,t]),delListener:e=>(w(e),T),destroy:f,getListenerStats:()=>({})};return te(T)})),Be=ge([["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=ge(),[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)),[f,g,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 f=We(d,h,o,n,u,l);$(f)||(f=void 0),f!=d&&(c(e,f),g(t,[e],f,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)=>f(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,g,L,I]=Je(e,(()=>!0),Y),y=t(),p=t(),C=ge(),b=(e,t,...s)=>M(s,(s=>De(ve(ve(C,t,ge),e,xe),s))),m=e=>{H(we(C,e),(e=>{Se(e,((e,t)=>he(t,(t=>e.delListener(t))))),ue(e)})),M([p,y],(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,[],ge()]]],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),[],ge()]];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=ge(o);if(ce(u))return k;const h=ge(r);Se(h,((e,[,t])=>H(we(h,t),(({3:t})=>G(e)?0:z(t,e)))));const f=ge(c);let g=y;if(ce(f)&&A(d))g=p;else{E(t,g,p);const e=ge();Se(f,((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=ge(),a=(s,n,a,o)=>H(s,(([r,l,i,c])=>{Se(n,((t,[s])=>{const n=ve(r,t,ge),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(g,t,g.addRowListener(t,null,((o,r,l,i)=>{const c=[],d=[],u=ge(),h=g.hasRow(t,l);let f=!h;he(s,(e=>{const[s,n,a]=i(t,l,e);z(c,n),z(d,a),f||=s})),Se(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&Te(u,e,[n])})),f&&a(me(n,c,void 0,(([,e])=>(fe(e,l),ce(e)))),u,l,1),h&&a(me(n,d,(()=>{const e={};return he(s,(s=>e[s]=g.getCell(t,l,s))),[ge(),xe(),void 0,e]}),(([,e])=>{De(e,l)})),u,l)})))}E(t,e,g);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)||I(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]);g.transaction((()=>V(l,(e=>e(a)))?Se(u,((e,n)=>ke(g,t,s,e,n(a,s)))):g.delRow(t,s)))})(s)},{3:S}=we(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),he(h,(({4:e})=>H(we(e,o),(([,s])=>{I(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:g,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=p.getListenerStats();return n}};return oe({[f]:[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=ge(),n=ge(),a=ge(),o=ge(),[r,l,i,c,d,u,,,h,f,g]=Je(e,(()=>[ge(),ge(),ge(),ge()]),(e=>G(e)?void 0:e+s)),[L,w,S]=Ne((()=>I)),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),I={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=>{fe(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)),I),delRelationshipDefinition:e=>(Te(t,e),f(e),I),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)),I),destroy:g,getListenerStats:()=>({})};return te(I)})),He=e=>[e,e],Ke=()=>[ge(),ge()],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=ge(),d=ge(),h=ge(),T=ge(),V=ge(),E=ge(),D=ge(),J=ge(),A=ge(),F=ge(),N=ge(),j=ge(),B=ge(),W=xe(),$=ge(),q=ge(),X=ge(),Y=ge(),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=ge(),$e=Ke(),[qe,Ge,et,tt]=Ne((()=>gs)),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=ge(),a=xe();Re(ve(F,t,ge),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),fe(W,t)})),ht=e=>re(e)?os():es(e),ft=e=>Re(X,e,((e,t,s)=>gt(t,s)),((e,t)=>pt(t))),gt=(e,t)=>Re(ve(X,e,(()=>(mt(e,1),Te($,e,ze()),Te(q,e,ge()),ge()))),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),ge()))),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))},It=(e,t)=>{const[s]=we($,e),n=s(t);return ie(we(X,e),n)?It(e,t):n},yt=e=>we(X,e)??gt(e,{}),pt=e=>gt(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,ge),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,ge),s,n),Te(a,s,o!=-n?o+n:null),Ze(ve(ve(T,e,ge),t,ge),s,n)},Mt=(e,t,s,n,a)=>ve(ve(ve(V,e,ge),t,ge),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,ge),t,ge),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,(()=>Ie(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):fe(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)))),gs),Wt=()=>[Ie(V,((e,t)=>-1===we(r,t)?null:Ie(e,((e,s)=>-1===we(we(h,t),s)?null:Ie(e,(([,e])=>e??null),((e,t)=>Xe(t)))),re)),re),Ie(D,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:pe(V,Ue,Xe),invalidCells:pe(J),changedValues:Ie(D,Ue,Xe),invalidValues:Ie(A),changedTableIds:Ie(r),changedRowIds:ye(h),changedCellIds:pe(T),changedValueIds:Ie(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=()=>Ie(Y),Zt=()=>Le(Y),_t=e=>we(Y,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(P(e))}catch{}return gs},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((()=>ft({}))),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 fs(t),s}},hs=()=>(-1!=a&&a++,1==a&&Ge(We,void 0,Wt,$t),gs),fs=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(gs,t,s,n,e))))))),he(D,(([e],t)=>Me(gs,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))),gs),gs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>ye(we(X,C(e))),getTableCellIds:e=>Le(we(q,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Ie(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)?gt(e,t):0),e),setRow:(e,t,s)=>Bt(((e,t)=>at(e,t,s)?Lt(e,yt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,yt(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Bt(((e,t)=>{if(at(e,t,s,1)){const n=yt(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,yt(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(gs,t,s,n,e))))))),oe(e[1],((e,t)=>Me(gs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{Tt(P(e))}catch{}return gs},setJson:e=>{try{const[t,s]=P(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)=>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:fs,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(gs,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),gs),delListener:e=>(et(e),gs),getListenerStats:()=>({}),createStore:_e};return oe({[g]:[0,Z],[L]:[0,_],[f]:[1,ee,[Gt]],[f+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],[y]:[0,je],[p]:[0,Pe],[I]:[1,Be,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Qe]},(([e,t,s,n],a)=>{gs[u+a+c]=(...a)=>qe(a[e],t[a[e+1]?1:0],e>0?Q(a,0,e):void 0,s,n)})),te(gs)};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 e(),i=0)},f={load:async(s,n)=>(await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),f),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=>(await f.schedule((async()=>{if(1!=i){i=2;try{await s(e.getContent,t)}catch{}i=0}})),f),startAutoSave:async()=>(await f.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const s=t();f.save((()=>s))})),f),stopAutoSave:()=>(H(o,e.delListener),f),schedule:async(...e)=>(z(u,...e),await(async()=>{if(!c){for(c=1;!G(r=j(u));)try{await r()}catch{}c=0}})(),f),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return te(f)},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={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,n=(e,n,o)=>t(e)?null==o?void 0:o():n(e),o=Object,i=o.keys,r=o.freeze,l=(e,t)=>n(e,(e=>e[t])),u=(e,n)=>!t(l(e,n)),s=(e,t)=>(delete e[t],e),d=(e,t)=>((e,t)=>e.map(t))(o.entries(e),(([e,n])=>t(n,e))),c=e=>i(e).length,a=e=>(e=>e instanceof o&&e.constructor==o)(e)&&0==c(e);var v=(e,t,n)=>new Promise(((o,i)=>{var r=e=>{try{u(n.next(e))}catch(e){i(e)}},l=e=>{try{u(n.throw(e))}catch(e){i(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,l);u((n=n.apply(e,t)).next())})),f=(e,t,n)=>new Promise(((o,i)=>{var r=e=>{try{u(n.next(e))}catch(e){i(e)}},l=e=>{try{u(n.throw(e))}catch(e){i(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,l);u((n=n.apply(e,t)).next())}));const y=(e,t)=>[e[t].t,e[t].v],h=(e,n,o,i)=>{const r=t(n)?e:((e,t,n)=>(u(e,t)||(e[t]={}),e[t]))(e,n);let l;return d(o,((e,t)=>{i(r,t,e)&&(l=1)})),d(r,((e,t)=>{u(o,t)||(s(r,t),l=1)})),!t(n)&&a(r)&&s(e,n),l};e.createAutomergePersister=(e,o,i="tinybase")=>(o.change((e=>e[i]={})),((e,u,c,p,g)=>{let m,A,x,L=0,P=0,S=0;const b=[],C=e=>v(void 0,null,(function*(){2!=L&&(L=1,yield e(),L=0)})),T={load:(...t)=>v(void 0,[...t],(function*(t={},n={}){return yield C((()=>v(void 0,null,(function*(){try{e.setContent(yield u())}catch(o){e.setContent([t,n])}})))),T})),startAutoLoad:(...t)=>v(void 0,[...t],(function*(t={},n={}){return T.stopAutoLoad(),yield T.load(t,n),S=1,x=(e=>{const t=({doc:t})=>e((()=>y(t,i)));return o.on("change",t),t})(((t,n)=>v(void 0,null,(function*(){yield C((()=>v(void 0,null,(function*(){var o;if(n)e.setTransactionChanges(n());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield u())}catch(e){}}))))})))),T})),stopAutoLoad:()=>{return S&&(e=x,o.removeListener("change",e),x=void 0,S=0),T;var e},save:r=>v(void 0,null,(function*(){return yield T.schedule((()=>v(void 0,null,(function*(){if(1!=L){L=2;try{yield((e,r)=>f(void 0,null,(function*(){return o.change((o=>((e,o,i,r)=>{((e,t)=>{a(e[t])&&(e[t]={t:{},v:{}})})(e,o);const[u,c]=y(e,o),v=()=>{f=1};let f=1;if(n(null==r?void 0:r(),(([e,o])=>{f=0,d(e,((e,o)=>f?0:t(e)?s(u,o):n(u[o],(o=>d(e,((e,i)=>f?0:t(e)?s(o,i):n(l(o,i),(n=>d(e,((e,o)=>t(e)?s(n,o):n[o]=e))),v)))),v))),d(o,((e,n)=>f?0:t(e)?s(c,n):c[n]=e))})),f){const[e,t]=i();h(u,void 0,e,((e,t,n)=>h(u,t,n,((e,t,n)=>h(e,t,n,((e,t,n)=>{if(l(e,t)!==n)return e[t]=n,1})))))),h(c,void 0,t,((e,t,n)=>{l(c,t)!==n&&(c[t]=n)}))}})(o,i,e,r)))})))(e.getContent,r)}catch(e){}L=0}})))),T})),startAutoSave:()=>v(void 0,null,(function*(){return yield T.stopAutoSave().save(),m=e.addDidFinishTransactionListener(((e,t)=>{const n=t();T.save((()=>n))})),T})),stopAutoSave:()=>(n(m,e.delListener),T),schedule:(...e)=>v(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(b,...e),yield v(void 0,null,(function*(){if(!P){for(P=1;!t((e=b,A=e.shift()));)try{yield A()}catch(e){}P=0}var e})),T})),getStore:()=>e,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(T)})(e,(()=>f(void 0,null,(function*(){return 2==c(o.doc[i])?y(o.doc,i):void 0})))))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterAutomerge={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,n=(e,n,o)=>t(e)?null==o?void 0:o():n(e),o=Object,i=o.keys,r=o.freeze,l=(e,t)=>n(e,(e=>e[t])),u=(e,n)=>!t(l(e,n)),s=(e,t)=>(delete e[t],e),d=(e,t)=>((e,t)=>e.map(t))(o.entries(e),(([e,n])=>t(n,e))),c=e=>i(e).length,a=e=>(e=>e instanceof o&&e.constructor==o)(e)&&0==c(e);var v=(e,t,n)=>new Promise(((o,i)=>{var r=e=>{try{u(n.next(e))}catch(e){i(e)}},l=e=>{try{u(n.throw(e))}catch(e){i(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,l);u((n=n.apply(e,t)).next())})),f=(e,t,n)=>new Promise(((o,i)=>{var r=e=>{try{u(n.next(e))}catch(e){i(e)}},l=e=>{try{u(n.throw(e))}catch(e){i(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,l);u((n=n.apply(e,t)).next())}));const y=(e,t)=>[e[t].t,e[t].v],h=(e,n,o,i)=>{const r=t(n)?e:((e,t,n)=>(u(e,t)||(e[t]={}),e[t]))(e,n);let l;return d(o,((e,t)=>{i(r,t,e)&&(l=1)})),d(r,((e,t)=>{u(o,t)||(s(r,t),l=1)})),!t(n)&&a(r)&&s(e,n),l};e.createAutomergePersister=(e,o,i="tinybase")=>(o.change((e=>e[i]={})),((e,u,c,p,g)=>{let m,A,x,L=0,P=0,S=0;const b=[],C=e=>v(void 0,null,(function*(){2!=L&&(L=1,yield e(),L=0)})),T={load:(t,n)=>v(void 0,null,(function*(){return yield C((()=>v(void 0,null,(function*(){try{e.setContent(yield u())}catch(o){e.setContent([t,n])}})))),T})),startAutoLoad:(...t)=>v(void 0,[...t],(function*(t={},n={}){return T.stopAutoLoad(),yield T.load(t,n),S=1,x=(e=>{const t=({doc:t})=>e((()=>y(t,i)));return o.on("change",t),t})(((t,n)=>v(void 0,null,(function*(){yield C((()=>v(void 0,null,(function*(){var o;if(n)e.setTransactionChanges(n());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield u())}catch(e){}}))))})))),T})),stopAutoLoad:()=>{return S&&(e=x,o.removeListener("change",e),x=void 0,S=0),T;var e},save:r=>v(void 0,null,(function*(){return yield T.schedule((()=>v(void 0,null,(function*(){if(1!=L){L=2;try{yield((e,r)=>f(void 0,null,(function*(){return o.change((o=>((e,o,i,r)=>{((e,t)=>{a(e[t])&&(e[t]={t:{},v:{}})})(e,o);const[u,c]=y(e,o),v=()=>{f=1};let f=1;if(n(null==r?void 0:r(),(([e,o])=>{f=0,d(e,((e,o)=>f?0:t(e)?s(u,o):n(u[o],(o=>d(e,((e,i)=>f?0:t(e)?s(o,i):n(l(o,i),(n=>d(e,((e,o)=>t(e)?s(n,o):n[o]=e))),v)))),v))),d(o,((e,n)=>f?0:t(e)?s(c,n):c[n]=e))})),f){const[e,t]=i();h(u,void 0,e,((e,t,n)=>h(u,t,n,((e,t,n)=>h(e,t,n,((e,t,n)=>{if(l(e,t)!==n)return e[t]=n,1})))))),h(c,void 0,t,((e,t,n)=>{l(c,t)!==n&&(c[t]=n)}))}})(o,i,e,r)))})))(e.getContent,r)}catch(e){}L=0}})))),T})),startAutoSave:()=>v(void 0,null,(function*(){return yield T.stopAutoSave().save(),m=e.addDidFinishTransactionListener(((e,t)=>{const n=t();T.save((()=>n))})),T})),stopAutoSave:()=>(n(m,e.delListener),T),schedule:(...e)=>v(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(b,...e),yield v(void 0,null,(function*(){if(!P){for(P=1;!t((e=b,A=e.shift()));)try{yield A()}catch(e){}P=0}var e})),T})),getStore:()=>e,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(T)})(e,(()=>f(void 0,null,(function*(){return 2==c(o.doc[i])?y(o.doc,i):void 0})))))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterAutomerge={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=JSON.parse,n=e=>null==e,o=Object.freeze;var r=(e,t,n)=>new Promise(((o,r)=>{var i=e=>{try{a(n.next(e))}catch(e){r(e)}},s=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((n=n.apply(e,t)).next())})),i=(e,t,n)=>new Promise(((o,r)=>{var i=e=>{try{a(n.next(e))}catch(e){r(e)}},s=e=>{try{a(n.throw(e))}catch(e){r(e)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);a((n=n.apply(e,t)).next())}));const s="storage",a=globalThis.window,l=(e,l,u)=>((e,d,c,v,f)=>{let y,h,p,g=0,S=0,m=0;const A=[],L=e=>r(void 0,null,(function*(){2!=g&&(g=1,yield e(),g=0)})),w={load:(...t)=>r(void 0,[...t],(function*(t={},n={}){return yield L((()=>r(void 0,null,(function*(){try{e.setContent(yield d())}catch(o){e.setContent([t,n])}})))),w})),startAutoLoad:(...n)=>r(void 0,[...n],(function*(n={},o={}){return w.stopAutoLoad(),yield w.load(n,o),m=1,p=(e=>{const n=n=>{n.storageArea===u&&n.key===l&&e((()=>t(n.newValue)))};return a.addEventListener(s,n),n})(((t,n)=>r(void 0,null,(function*(){yield L((()=>r(void 0,null,(function*(){var o;if(n)e.setTransactionChanges(n());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield d())}catch(e){}}))))})))),w})),stopAutoLoad:()=>{return m&&(e=p,a.removeEventListener(s,e),p=void 0,m=0),w;var e},save:t=>r(void 0,null,(function*(){return yield w.schedule((()=>r(void 0,null,(function*(){if(1!=g){g=2;try{yield(t=e.getContent,i(void 0,null,(function*(){return u.setItem(l,(e=t(),JSON.stringify(e,((e,t)=>{return t instanceof Map?(n=(e,[t,n])=>(e[t]=n,e),o={},[...t].reduce(n,o)):t;var n,o}))));var e})))}catch(e){}g=0}var t})))),w})),startAutoSave:()=>r(void 0,null,(function*(){return yield w.stopAutoSave().save(),y=e.addDidFinishTransactionListener(((e,t)=>{const n=t();w.save((()=>n))})),w})),stopAutoSave:()=>{var t,o;return t=y,o=e.delListener,!!n(t)||o(t),w},schedule:(...e)=>r(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(A,...e),yield r(void 0,null,(function*(){if(!S){for(S=1;!n((e=A,h=e.shift()));)try{yield h()}catch(e){}S=0}var e})),w})),getStore:()=>e,destroy:()=>w.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(w)})(e,(()=>i(void 0,null,(function*(){return t(u.getItem(l))}))));e.createLocalPersister=(e,t)=>l(e,t,localStorage),e.createSessionPersister=(e,t)=>l(e,t,sessionStorage)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterBrowser={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=JSON.parse,n=e=>null==e,o=Object.freeze;var r=(e,t,n)=>new Promise(((o,r)=>{var i=e=>{try{l(n.next(e))}catch(e){r(e)}},s=e=>{try{l(n.throw(e))}catch(e){r(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);l((n=n.apply(e,t)).next())})),i=(e,t,n)=>new Promise(((o,r)=>{var i=e=>{try{l(n.next(e))}catch(e){r(e)}},s=e=>{try{l(n.throw(e))}catch(e){r(e)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(i,s);l((n=n.apply(e,t)).next())}));const s="storage",l=globalThis.window,a=(e,a,u)=>((e,d,c,v,f)=>{let y,h,p,g=0,S=0,m=0;const A=[],L=e=>r(void 0,null,(function*(){2!=g&&(g=1,yield e(),g=0)})),w={load:(t,n)=>r(void 0,null,(function*(){return yield L((()=>r(void 0,null,(function*(){try{e.setContent(yield d())}catch(o){e.setContent([t,n])}})))),w})),startAutoLoad:(...n)=>r(void 0,[...n],(function*(n={},o={}){return w.stopAutoLoad(),yield w.load(n,o),m=1,p=(e=>{const n=n=>{n.storageArea===u&&n.key===a&&e((()=>t(n.newValue)))};return l.addEventListener(s,n),n})(((t,n)=>r(void 0,null,(function*(){yield L((()=>r(void 0,null,(function*(){var o;if(n)e.setTransactionChanges(n());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield d())}catch(e){}}))))})))),w})),stopAutoLoad:()=>{return m&&(e=p,l.removeEventListener(s,e),p=void 0,m=0),w;var e},save:t=>r(void 0,null,(function*(){return yield w.schedule((()=>r(void 0,null,(function*(){if(1!=g){g=2;try{yield(t=e.getContent,i(void 0,null,(function*(){return u.setItem(a,(e=t(),JSON.stringify(e,((e,t)=>{return t instanceof Map?(n=(e,[t,n])=>(e[t]=n,e),o={},[...t].reduce(n,o)):t;var n,o}))));var e})))}catch(e){}g=0}var t})))),w})),startAutoSave:()=>r(void 0,null,(function*(){return yield w.stopAutoSave().save(),y=e.addDidFinishTransactionListener(((e,t)=>{const n=t();w.save((()=>n))})),w})),stopAutoSave:()=>{var t,o;return t=y,o=e.delListener,!!n(t)||o(t),w},schedule:(...e)=>r(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(A,...e),yield r(void 0,null,(function*(){if(!S){for(S=1;!n((e=A,h=e.shift()));)try{yield h()}catch(e){}S=0}var e})),w})),getStore:()=>e,destroy:()=>w.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o(w)})(e,(()=>i(void 0,null,(function*(){return t(u.getItem(a))}))));e.createLocalPersister=(e,t)=>a(e,t,localStorage),e.createSessionPersister=(e,t)=>a(e,t,sessionStorage)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterBrowser={});