tinybase 4.0.2 → 4.0.4

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 (165) 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-expo-sqlite.cjs +1 -0
  8. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-file.cjs +1 -1
  10. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  12. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  16. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  18. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  19. package/lib/cjs/persisters.cjs +1 -1
  20. package/lib/cjs/persisters.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-expo-sqlite.cjs +1 -0
  30. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  38. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  40. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters.cjs +1 -1
  42. package/lib/cjs-es6/persisters.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 +56 -18
  46. package/lib/debug/persisters/persister-browser.js +55 -22
  47. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +106 -62
  48. package/lib/debug/persisters/persister-expo-sqlite.js +813 -0
  49. package/lib/debug/persisters/persister-file.js +51 -18
  50. package/lib/debug/persisters/persister-remote.js +51 -17
  51. package/lib/debug/persisters/persister-sqlite-wasm.js +106 -62
  52. package/lib/debug/persisters/persister-sqlite3.js +113 -64
  53. package/lib/debug/persisters/persister-yjs.js +63 -27
  54. package/lib/debug/persisters.js +49 -17
  55. package/lib/debug/tinybase.js +35 -17
  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-expo-sqlite.js +1 -0
  63. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  64. package/lib/es6/persisters/persister-file.js +1 -1
  65. package/lib/es6/persisters/persister-file.js.gz +0 -0
  66. package/lib/es6/persisters/persister-remote.js +1 -1
  67. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  68. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  69. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  70. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  71. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  72. package/lib/es6/persisters/persister-yjs.js +1 -1
  73. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  74. package/lib/es6/persisters.js +1 -1
  75. package/lib/es6/persisters.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-expo-sqlite.js +1 -0
  85. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  86. package/lib/persisters/persister-file.js +1 -1
  87. package/lib/persisters/persister-file.js.gz +0 -0
  88. package/lib/persisters/persister-remote.js +1 -1
  89. package/lib/persisters/persister-remote.js.gz +0 -0
  90. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  91. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  92. package/lib/persisters/persister-sqlite3.js +1 -1
  93. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  94. package/lib/persisters/persister-yjs.js +1 -1
  95. package/lib/persisters/persister-yjs.js.gz +0 -0
  96. package/lib/persisters.js +1 -1
  97. package/lib/persisters.js.gz +0 -0
  98. package/lib/tinybase.js +1 -1
  99. package/lib/tinybase.js.gz +0 -0
  100. package/lib/types/persisters/persister-automerge.d.ts +4 -0
  101. package/lib/types/persisters/persister-browser.d.ts +8 -0
  102. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +10 -2
  103. package/lib/types/persisters/persister-expo-sqlite.d.ts +126 -0
  104. package/lib/types/persisters/persister-file.d.ts +8 -1
  105. package/lib/types/persisters/persister-remote.d.ts +4 -0
  106. package/lib/types/persisters/persister-sqlite-wasm.d.ts +8 -0
  107. package/lib/types/persisters/persister-sqlite3.d.ts +8 -0
  108. package/lib/types/persisters/persister-yjs.d.ts +4 -0
  109. package/lib/types/persisters.d.ts +16 -3
  110. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +5 -0
  111. package/lib/types/with-schemas/persisters/persister-browser.d.ts +10 -0
  112. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +12 -2
  113. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +138 -0
  114. package/lib/types/with-schemas/persisters/persister-file.d.ts +9 -1
  115. package/lib/types/with-schemas/persisters/persister-remote.d.ts +5 -0
  116. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +10 -0
  117. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +10 -0
  118. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +5 -0
  119. package/lib/types/with-schemas/persisters.d.ts +17 -3
  120. package/lib/umd/persisters/persister-automerge.js +1 -1
  121. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  122. package/lib/umd/persisters/persister-browser.js +1 -1
  123. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  124. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  125. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  126. package/lib/umd/persisters/persister-expo-sqlite.js +1 -0
  127. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  128. package/lib/umd/persisters/persister-file.js +1 -1
  129. package/lib/umd/persisters/persister-file.js.gz +0 -0
  130. package/lib/umd/persisters/persister-remote.js +1 -1
  131. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  132. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  133. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  134. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  135. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  136. package/lib/umd/persisters/persister-yjs.js +1 -1
  137. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  138. package/lib/umd/persisters.js +1 -1
  139. package/lib/umd/persisters.js.gz +0 -0
  140. package/lib/umd/tinybase.js +1 -1
  141. package/lib/umd/tinybase.js.gz +0 -0
  142. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  143. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  144. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  145. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  146. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  147. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  148. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -0
  149. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  150. package/lib/umd-es6/persisters/persister-file.js +1 -1
  151. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  152. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  153. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  154. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  155. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  156. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  157. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  158. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  159. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  160. package/lib/umd-es6/persisters.js +1 -1
  161. package/lib/umd-es6/persisters.js.gz +0 -0
  162. package/lib/umd-es6/tinybase.js +1 -1
  163. package/lib/umd-es6/tinybase.js.gz +0 -0
  164. package/package.json +6 -5
  165. package/readme.md +2 -2
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),l=e(!0),o=e(0),s=e(e),r="type",i="default",a="Listener",d="Result",c="add",u="Ids",v="Table",h=v+"s",f=v+u,g="Row",L=g+u,y="Sorted"+g+u,S="Cell",w=S+u,I="Value",R=I+"s",T=I+u,p=e=>t+e,C=Math.max,b=Math.min,m=isFinite,V=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,n)=>E(e)?null==n?void 0:n():t(e),x=e=>e==n||e==l,M=t=>e(t)==s,D=e=>Array.isArray(e),J=()=>{},A=(e,t)=>e.includes(t),O=(e,t)=>e.every(t),F=(e,t)=>W(e)===W(t)&&O(e,((e,n)=>t[n]===e)),P=(e,t)=>O(e,((n,l)=>0==l||t(e[l-1],n)<=0)),j=(e,t)=>e.sort(t),Q=(e,t)=>e.forEach(t),z=(e,t)=>e.map(t),N=e=>$(e,((e,t)=>e+t),0),W=e=>e.length,B=e=>0==W(e),$=(e,t,n)=>e.reduce(t,n),q=(e,t,n)=>e.slice(t,n),G=(e,...t)=>e.push(...t),H=e=>e.pop(),K=e=>e.shift(),U=Object,X=U.keys,Y=U.isFrozen,Z=U.freeze,_=e=>V(e,U)&&e.constructor==U,ee=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),ne=(e,t)=>z(U.entries(e),(([e,n])=>t(n,e))),le=e=>_(e)&&0==(e=>W(X(e)))(e),oe=e=>e.size,se=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},re=e=>E(e)||0==oe(e),ie=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},ae=e=>e.clear(),de=(e,t)=>null==e?void 0:e.forEach(t),ce=(e,t)=>null==e?void 0:e.delete(t),ue=e=>new Map(e),ve=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},he=(e,t)=>null==e?void 0:e.get(t),fe=(e,t)=>de(e,((e,n)=>t(n,e))),ge=(e,t,n)=>E(n)?(ce(e,t),e):null==e?void 0:e.set(t,n),Le=(e,t,n)=>(se(e,t)||ge(e,t,n()),he(e,t)),ye=(e,t,n,l=ge)=>(ne(t,((t,l)=>n(e,l,t))),fe(e,(n=>ee(t,n)?0:l(e,n))),e),Se=(e,t,n)=>{const l={};return de(e,((e,o)=>{const s=t?t(e,o):e;!(null==n?void 0:n(s,e))&&(l[o]=s)})),l},we=(e,t,n)=>Se(e,(e=>Se(e,t,n)),le),Ie=(e,t,n)=>Se(e,(e=>we(e,t,n)),le),Re=(e,t)=>{const n=ue();return de(e,((e,l)=>{var o;return n.set(l,null!=(o=null==t?void 0:t(e))?o:e)})),n},Te=e=>Re(e,Re),pe=e=>Re(e,Te),Ce=(e,t,n,l,o=0)=>k((n?Le:he)(e,t[o],o>W(t)-2?n:ue),(s=>{if(o>W(t)-2)return(null==l?void 0:l(s))&&ge(e,t[o]),s;const r=Ce(s,t,n,l,o+1);return re(s)&&ge(e,t[o]),r})),be=t=>{const n=e(t);return x(n)||n==o&&m(t)?n:void 0},me=(e,t,n,l,o)=>E(o)?e.delCell(t,n,l,!0):e.setCell(t,n,l,o),Ve=(e,t,n)=>E(n)?e.delValue(t):e.setValue(t,n),Ee=e=>new Set(D(e)||E(e)?e:[e]),ke=(e,t)=>null==e?void 0:e.add(t),xe=(e,t,n)=>{const l=e.hasRow,o=ue(),s=ue(),r=ue(),i=ue(),a=ue(),d=(t,n,...l)=>{const o=Le(a,t,Ee);return Q(l,(t=>ke(o,t)&&n&&e.callListener(t))),l},c=(t,...n)=>k(he(a,t),(l=>{Q(B(n)?ie(l):n,(t=>{e.delListener(t),ce(l,t)})),re(l)&&ge(a,t)})),u=(e,n)=>{ge(o,e,n),se(s,e)||(ge(s,e,t()),ge(r,e,ue()),ge(i,e,ue()))},v=e=>{ge(o,e),ge(s,e),ge(r,e),ge(i,e),c(e)};return[()=>e,()=>ve(o),e=>fe(s,e),e=>se(s,e),e=>he(o,e),e=>he(s,e),(e,t)=>ge(s,e,t),u,(t,o,s,a,v)=>{u(t,o);const h=ue(),f=ue(),g=he(r,t),L=he(i,t),y=t=>{const s=n=>e.getCell(o,t,n),r=he(g,t),i=l(o,t)?n(a(s,t)):void 0;if(r===i||D(r)&&D(i)&&F(r,i)||ge(h,t,[r,i]),!E(v)){const e=he(L,t),n=l(o,t)?v(s,t):void 0;e!=n&&ge(f,t,n)}},S=e=>{s((()=>{de(h,(([,e],t)=>ge(g,t,e))),de(f,((e,t)=>ge(L,t,e)))}),h,f,g,L,e),ae(h),ae(f)};fe(g,y),e.hasTable(o)&&Q(e.getRowIds(o),(e=>{se(g,e)||y(e)})),S(!0),c(t),d(t,0,e.addRowListener(o,null,((e,t,n)=>y(n))),e.addTableListener(o,(()=>S())))},v,()=>fe(a,v),d,c]},Me=(l,o)=>e(l)==n?e=>e(l):null!=l?l:()=>null!=o?o:t,De=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},Je=/^\d+$/,Ae=()=>{const e=[];let n=0;return[l=>{var o;return null!=(o=l?K(e):null)?o:t+n++},t=>{Je.test(t)&&W(e)<1e3&&G(e,t)}]},Oe=e=>{let n;const[l,o]=Ae(),s=ue();return[(o,r,i,a=[],d=(()=>[]))=>{null!=n||(n=e());const c=l(1);return ge(s,c,[o,r,i,a,d]),ke(Ce(r,null!=i?i:[t],Ee),c),c},(e,l,...o)=>Q(((e,n=[t])=>{const l=[],o=(e,t)=>t==W(n)?G(l,e):null===n[t]?de(e,(e=>o(e,t+1))):Q([n[t],null],(n=>o(he(e,n),t+1)));return o(e,0),l})(e,l),(e=>de(e,(e=>he(s,e)[0](n,...null!=l?l:[],...o))))),e=>k(he(s,e),(([,n,l])=>(Ce(n,null!=l?l:[t],void 0,(t=>(ce(t,e),re(t)?1:0))),ge(s,e),o(e),l))),e=>k(he(s,e),(([e,,t=[],l,o])=>{const s=(...r)=>{var i,a;const d=W(r);d==W(t)?e(n,...r,...o(r)):E(t[d])?Q(null!=(a=null==(i=l[d])?void 0:i.call(l,...r))?a:[],(e=>s(...r,e))):s(...r,t[d])};s()}))]},Fe=De((e=>{let n,l,o,s=100,r=ue(),i=ue(),a=1;const d=ue(),c=ue(),[u,v,h]=Oe((()=>F)),f=ue(),g=ue(),L=[],y=[],S=(t,n)=>{a=0,e.transaction((()=>{const[l,o]=he(f,n);de(l,((n,l)=>de(n,((n,o)=>de(n,((n,s)=>me(e,l,o,s,n[t]))))))),de(o,((n,l)=>Ve(e,l,n[t])))})),a=1},w=e=>{ge(f,e),ge(g,e),v(c,[e])},I=(e,t)=>Q(((e,t)=>e.splice(0,t))(e,null!=t?t:W(e)),w),R=()=>I(L,W(L)-s),T=()=>k(n,(()=>{G(L,n),R(),I(y),n=void 0,o=1})),p=()=>{n=H(L),o=1},C=e.addCellListener(null,null,null,((e,t,n,l,o,s)=>{if(a){T();const e=Le(r,t,ue),i=Le(e,n,ue),a=Le(i,l,(()=>[s,void 0]));a[1]=o,a[0]===o&&re(ge(i,l))&&re(ge(e,n))&&re(ge(r,t))&&p(),M()}})),b=e.addValueListener(null,((e,t,n,l)=>{if(a){T();const e=Le(i,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&re(ge(i,t))&&p(),M()}})),m=(e="")=>(E(n)&&(n=t+l++,ge(f,n,[r,i]),J(n,e),r=ue(),i=ue(),o=1),n),V=()=>{B(L)||(((e,...t)=>{e.unshift(...t)})(y,m()),S(0,n),n=H(L),o=1)},x=()=>{B(y)||(G(L,n),n=K(y),S(1,n),o=1)},M=()=>{o&&(v(d),o=0)},D=e=>{const t=m(e);return M(),t},J=(e,t)=>(O(e)&&he(g,e)!==t&&(ge(g,e,t),v(c,[e])),F),O=e=>se(f,e),F={setSize:e=>(s=e,R(),F),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...L],n,[...y]],forEachCheckpoint:e=>fe(g,e),hasCheckpoint:O,getCheckpoint:e=>he(g,e),goBackward:()=>(V(),M(),F),goForward:()=>(x(),M(),F),goTo:e=>{const t=A(L,e)?V:A(y,e)?x:null;for(;!E(t)&&e!=n;)t();return M(),F},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),F),clear:()=>(I(L),I(y),E(n)||w(n),n=void 0,l=0,D(),F),destroy:()=>{e.delListener(C),e.delListener(b)},getListenerStats:()=>({})};return Z(F.clear())})),Pe=(e,t)=>e<t?-1:1,je=De((e=>{const n=ue(),l=ue(),[o,s,r,i,a,d,c,,u,v,h]=xe(e,ue,(e=>E(e)?t:D(e)?z(e,p):p(e))),[f,g,L]=Oe((()=>S)),y=(t,n,l)=>{const o=a(t);de(l,((t,l)=>n(l,(n=>de(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},S={setIndexDefinition:(e,t,o,s,r,i=Pe)=>{const a=E(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,o,r,u,v,h)=>{let f=0;const L=Ee(),y=Ee(),S=d(e);if(de(o,(([e,t],n)=>{const l=Ee(e),o=Ee(t);de(l,(e=>ce(o,e)?ce(l,e):0)),de(l,(e=>{ke(L,e),k(he(S,e),(t=>{ce(t,n),re(t)&&(ge(S,e),f=1)}))})),de(o,(e=>{ke(L,e),se(S,e)||(ge(S,e,Ee()),f=1),ke(he(S,e),n),E(s)||ke(y,e)}))})),t(),re(v)||(h?fe(S,(e=>ke(y,e))):fe(r,(e=>k(he(u,e),(e=>ke(y,e))))),de(y,(e=>{const t=(t,n)=>i(he(v,t),he(v,n),e),n=[...he(S,e)];P(n,t)||(ge(S,e,Ee(j(n,t))),ke(L,e))}))),(f||h)&&!E(a)){const t=[...S];P(t,a)||(c(e,ue(j(t,a))),f=1)}f&&g(n,[e]),de(L,(t=>g(l,[e,t])))}),Me(o),k(s,Me)),S},delIndexDefinition:e=>(v(e),S),getStore:o,getIndexIds:s,forEachIndex:e=>r(((t,n)=>e(t,(e=>y(t,e,n))))),forEachSlice:(e,t)=>y(e,t,d(e)),hasIndex:i,hasSlice:(e,t)=>se(d(e),t),getTableId:a,getSliceIds:e=>ve(d(e)),getSliceRowIds:(e,t)=>ie(he(d(e),t)),addSliceIdsListener:(e,t)=>f(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,l,[e,t]),delListener:e=>(L(e),S),destroy:h,getListenerStats:()=>({})};return Z(S)})),Qe=ue([["avg",[(e,t)=>N(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["sum",[e=>N(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),ze=(e,t,n,l,o,s=!1)=>{if(re(n))return;const[r,i,a,d]=o;return s||(s=E(e)),de(l,(([n,l])=>{s||(e=E(n)?null==i?void 0:i(e,l,t++):E(l)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,l,n,t),s||(s=E(e)))})),s?r(ie(n),oe(n)):e},Ne=De((e=>{const n=ue(),[l,o,s,r,i,a,d,,c,u,v]=xe(e,J,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e)),[h,f,g]=Oe((()=>L)),L={setMetricDefinition:(e,t,l,o,s,r,i)=>{var u;const v=M(l)?[l,s,r,i]:null!=(u=he(Qe,l))?u:he(Qe,"sum");return c(e,t,((t,l,o,s,r,i)=>{const c=a(e),u=oe(s);i||(i=E(c)),t();let h=ze(c,u,s,l,v,i);m(h)||(h=void 0),h!=c&&(d(e,h),f(n,[e],h,c))}),Me(o,1)),L},delMetricDefinition:e=>(u(e),L),getStore:l,getMetricIds:o,forEachMetric:s,hasMetric:r,getTableId:i,getMetric:a,addMetricListener:(e,t)=>h(t,n,[e]),delListener:e=>(g(e),L),destroy:v,getListenerStats:()=>({})};return Z(L)}));var We=(e,t,n)=>new Promise(((l,o)=>{var s=e=>{try{i(n.next(e))}catch(e){o(e)}},r=e=>{try{i(n.throw(e))}catch(e){o(e)}},i=e=>e.done?l(e.value):Promise.resolve(e.value).then(s,r);i((n=n.apply(e,t)).next())}));const Be=(e,t,n,l,o)=>{let s,r,i,a=0,d=0,c=0;const u=[],v=e=>We(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>We(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(n,l)=>We(void 0,null,(function*(){return yield v((()=>We(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}}))))})),startAutoLoad:(...n)=>We(void 0,[...n],(function*(n={},o={}){return h.stopAutoLoad(),yield h.load(n,o),c=1,i=l(((n,l)=>We(void 0,null,(function*(){return yield v((()=>We(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==n?void 0:n())?o:yield t())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(c&&(o(i),i=void 0,c=0),h),save:t=>We(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>We(void 0,null,(function*(){try{yield n(e.getContent,t)}catch(e){}a=0}))))),h})),startAutoSave:()=>We(void 0,null,(function*(){return yield h.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,t)=>{const[n,l]=t();le(n)&&le(l)||h.save((()=>[n,l]))})),h})),stopAutoSave:()=>(k(s,e.delListener),h),schedule:(...e)=>We(void 0,null,(function*(){return G(u,...e),yield We(void 0,null,(function*(){if(!d){for(d=1;!E(r=K(u));)try{yield r()}catch(e){}d=0}})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Z(h)};var $e=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;const He=De((e=>{const n=e.createStore,[l,o,s,r,i,,,u,,h,f,I,R]=xe(e,(()=>!0),J),T=n(),p=n(),C=ue(),b=(e,t,...n)=>Q(n,(n=>ke(Le(Le(C,t,ue),e,Ee),n))),m=e=>{k(he(C,e),(e=>{fe(e,((e,t)=>de(t,(t=>e.delListener(t))))),ae(e)})),Q([p,T],(t=>t.delTable(e)))},V=(e,t,n)=>b(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),x={setQueryDefinition:(n,l,o)=>{u(n,l),m(n);const s=[],r=[[null,[l,null,null,[],ue()]]],i=[],a=[],d=[];o({select:(e,n)=>{const l=M(e)?[W(s)+t,e]:[E(n)?e:n,t=>t(e,n)];return G(s,l),{as:e=>l[0]=e}},join:(e,t,n)=>{const l=E(n)||M(t)?null:t,o=E(l)?t:n,s=[e,[e,l,M(o)?o:e=>e(o),[],ue()]];return G(r,s),{as:e=>s[0]=e}},where:(e,t,n)=>G(i,M(e)?e:E(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,o)=>{var s;const r=[e,[e,M(t)?[t,n,l,o]:null!=(s=he(Qe,t))?s:[(e,t)=>t]]];return G(a,r),{as:e=>r[0]=e}},having:(e,t)=>G(d,M(e)?e:n=>n(e)===t)});const c=ue(s);if(re(c))return x;const v=ue(r);fe(v,((e,[,t])=>k(he(v,t),(({3:t})=>E(e)?0:G(t,e)))));const h=ue(a);let f=T;if(re(h)&&B(d))f=p;else{V(n,f,p);const e=ue();fe(h,((t,[n,l])=>ke(Le(e,n,Ee),[t,l])));const t=Ee();fe(c,(n=>se(e,n)?0:ke(t,n)));const l=ue(),o=(t,l,o,s)=>k(t,(([r,i,a,c])=>{fe(l,((t,[n])=>{const l=Le(r,t,ue),i=he(l,o),a=s?void 0:n;if(i!==a){const n=Ee([[i,a]]),s=oe(l);ge(l,o,a),de(he(e,t),(([e,t])=>{const o=ze(c[e],s,l,n,t);c[e]=E(be(o))?null:o}))}})),re(i)||!O(d,(e=>e((e=>c[e]))))?p.delRow(n,a):E(a)?t[2]=p.addRow(n,c):p.setRow(n,a,c)}));b(f,n,f.addRowListener(n,null,((s,r,i,a)=>{const d=[],c=[],u=ue(),v=f.hasRow(n,i);let h=!v;de(t,(e=>{const[t,l,o]=a(n,i,e);G(d,l),G(c,o),h||(h=t)})),fe(e,(e=>{const[t,,l]=a(n,i,e);(h||t)&&ge(u,e,[l])})),h&&o(Ce(l,d,void 0,(([,e])=>(ce(e,i),re(e)))),u,i,1),v&&o(Ce(l,c,(()=>{const e={};return de(t,(t=>e[t]=f.getCell(n,i,t))),[ue(),Ee(),void 0,e]}),(([,e])=>{ke(e,i)})),u,i)})))}V(n,e,f);const g=(t,o,s,r)=>{const a=t=>e.getCell(o,s,t);Q(r,(l=>{var o;const[s,,r,i,d]=he(v,l),c=null==r?void 0:r(a,t),[u,h]=null!=(o=he(d,t))?o:[];c!=u&&(E(h)||R(n,h),ge(d,t,E(c)?null:[c,...I(n,1,e.addRowListener(s,c,(()=>g(t,s,c,i))))]))})),(t=>{const o=(n,o)=>{var s,r,i;return e.getCell(...E(o)?[l,t,n]:n===l?[l,t,o]:[null==(s=he(v,n))?void 0:s[0],null==(i=he(null==(r=he(v,n))?void 0:r[4],t))?void 0:i[0],o])};f.transaction((()=>O(i,(e=>e(o)))?fe(c,((e,l)=>me(f,n,t,e,l(o,t)))):f.delRow(n,t)))})(t)},{3:L}=he(v,null);return f.transaction((()=>I(n,1,e.addRowListener(l,null,((t,o,s)=>{e.hasRow(l,s)?g(s,l,s,L):(f.delRow(n,s),de(v,(({4:e})=>k(he(e,s),(([,t])=>{R(n,t),ge(e,s)})))))}))))),x},delQueryDefinition:e=>(m(e),h(e),x),getStore:l,getQueryIds:o,forEachQuery:s,hasQuery:r,getTableId:i,delListener:e=>(p.delListener(e),x),destroy:f,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)qe.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&$e)for(var l of $e(e))t.indexOf(l)<0&&Ge.call(e,l)&&(n[l]=e[l]);return n})(p.getListenerStats(),["tables","tableIds","transaction"])};return ne({[v]:[1,1],[L]:[0,1],[y]:[0,5],[g]:[1,2],[w]:[0,2],[S]:[1,3]},(([e,t],n)=>{Q(e?["get","has","forEach"]:["get"],(e=>x[e+d+n]=(...t)=>p[e+n](...t))),x[c+d+n+a]=(...e)=>p[c+n+a](...q(e,0,t),((n,...l)=>e[t](x,...l)))})),Z(x)})),Ke=De((e=>{const n=ue(),l=ue(),o=ue(),s=ue(),[r,i,a,d,c,u,,,v,h,f]=xe(e,(()=>[ue(),ue(),ue(),ue()]),(e=>E(e)?void 0:e+t)),[g,L,y]=Oe((()=>R)),S=(e,t,n)=>k(u(e),(([l,,o])=>{if(!se(o,t)){const s=Ee();if(c(e)!=I(e))ke(s,t);else{let e=t;for(;!E(e)&&!se(s,e);)ke(s,e),e=he(l,e)}if(n)return s;ge(o,t,s)}return he(o,t)})),w=(e,t)=>k(u(e),(([,,e])=>ge(e,t))),I=e=>he(n,e),R={setRelationshipDefinition:(e,t,r,i)=>(ge(n,e,r),v(e,t,((t,n)=>{const r=Ee(),i=Ee(),a=Ee(),[d,c]=u(e);de(n,(([t,n],l)=>{E(t)||(ke(i,t),k(he(c,t),(e=>{ce(e,l),re(e)&&ge(c,t)}))),E(n)||(ke(i,n),se(c,n)||ge(c,n,Ee()),ke(he(c,n),l)),ke(r,l),ge(d,l,n),fe(he(s,e),(t=>{se(S(e,t),l)&&ke(a,t)}))})),t(),de(r,(t=>L(l,[e,t]))),de(i,(t=>L(o,[e,t]))),de(a,(t=>{w(e,t),L(s,[e,t])}))}),Me(i)),R),delRelationshipDefinition:e=>(ge(n,e),h(e),R),getStore:r,getRelationshipIds:i,forEachRelationship:t=>a((n=>t(n,(t=>e.forEachRow(c(n),t))))),hasRelationship:d,getLocalTableId:c,getRemoteTableId:I,getRemoteRowId:(e,t)=>{var n;return he(null==(n=u(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return ie(he(null==(n=u(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>E(u(e))?[t]:ie(S(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(S(e,t),g(n,s,[e,t])),delListener:e=>(w(...y(e)),R),destroy:f,getListenerStats:()=>({})};return Z(R)})),Ue=e=>[e,e],Xe=()=>[ue(),ue()],Ye=e=>[...e],Ze=([e,t])=>e===t,_e=e=>JSON.stringify(e,((e,t)=>V(t,Map)?U.fromEntries([...t]):t)),et=JSON.parse,tt=(e,t,n)=>E(e)||!_(e)||le(e)||Y(e)?(null==n||n(),!1):(ne(e,((n,l)=>{t(n,l)||te(e,l)})),!le(e)),nt=(e,t,n)=>ge(e,t,he(e,t)==-n?void 0:n),lt=()=>{let e,t,n=!1,l=!1,s=0;const d=ue(),u=ue(),y=ue(),C=ue(),b=ue(),m=ue(),V=ue(),D=ue(),J=ue(),O=ue(),P=ue(),N=ue(),W=ue(),B=Ee(),$=ue(),H=ue(),K=ue(),U=ue(),X=Xe(),Y=Xe(),_=Xe(),oe=Xe(),ie=Xe(),Ce=Xe(),xe=Xe(),Me=Xe(),De=Xe(),Je=Xe(),Fe=Xe(),je=Xe(),Qe=Xe(),ze=Xe(),Ne=ue(),We=Xe(),[Be,$e,qe,Ge]=Oe((()=>gn)),He=e=>{if(!tt(e,((e,t)=>A([r,i],t))))return!1;const t=e[r];return!(!x(t)&&t!=o||(be(e[i])!=t&&te(e,i),0))},Ke=(t,n)=>(!e||se(O,n)||Jt(n))&&tt(t,((e,t)=>ot(n,t,e)),(()=>Jt(n))),ot=(e,t,n,l)=>tt(l?n:at(n,e,t),((l,o)=>k(st(e,t,o,l),(e=>(n[o]=e,!0)),(()=>!1))),(()=>Jt(e,t))),st=(t,n,l,o)=>e?k(he(he(O,t),l),(e=>be(o)!=e[r]?Jt(t,n,l,o,e[i]):o),(()=>Jt(t,n,l,o))):E(be(o))?Jt(t,n,l,o):o,rt=(e,t)=>tt(t?e:dt(e),((t,n)=>k(it(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>At())),it=(e,n)=>t?k(he(N,e),(t=>be(n)!=t[r]?At(e,n,t[i]):n),(()=>At(e,n))):E(be(n))?At(e,n):n,at=(e,t,n)=>(k(he(P,t),(([l,o])=>{de(l,((t,n)=>{ee(e,n)||(e[n]=t)})),de(o,(l=>{ee(e,l)||Jt(t,n,l)}))})),e),dt=e=>(t&&(de(W,((t,n)=>{ee(e,n)||(e[n]=t)})),de(B,(t=>{ee(e,t)||At(t)}))),e),ct=e=>ye(O,e,((e,t,n)=>{const l=ue(),o=Ee();ye(Le(O,t,ue),n,((e,t,n)=>{ge(e,t,n),k(n[i],(e=>ge(l,t,e)),(()=>ke(o,t)))})),ge(P,t,[l,o])}),((e,t)=>{ge(O,t),ge(P,t)})),ut=e=>ye(N,e,((e,t,n)=>{ge(N,t,n),k(n[i],(e=>ge(W,t,e)),(()=>ke(B,t)))}),((e,t)=>{ge(N,t),ge(W,t),ce(B,t)})),vt=e=>le(e)?sn():en(e),ht=e=>ye(K,e,((e,t,n)=>ft(t,n)),((e,t)=>pt(t))),ft=(e,t)=>ye(Le(K,e,(()=>(Vt(e,1),ge($,e,Ae()),ge(H,e,ue()),ue()))),t,((t,n,l)=>gt(e,t,n,l)),((t,n)=>Ct(e,t,n))),gt=(e,t,n,l,o)=>ye(Le(t,n,(()=>(Et(e,n,1),ue()))),l,((t,l,o)=>Lt(e,n,t,l,o)),((l,s)=>bt(e,t,n,l,s,o))),Lt=(e,t,n,l,o)=>{se(n,l)||kt(e,t,l,1);const s=he(n,l);o!==s&&(xt(e,t,l,s,o),ge(n,l,o))},yt=(e,t,n,l,o)=>k(he(t,n),(t=>Lt(e,n,t,l,o)),(()=>gt(e,t,n,at({[l]:o},e,n)))),St=e=>le(e)?dn():tn(e),wt=e=>ye(U,e,((e,t,n)=>It(t,n)),((e,t)=>mt(t))),It=(e,t)=>{se(U,e)||Mt(e,1);const n=he(U,e);t!==n&&(Dt(e,n,t),ge(U,e,t))},Rt=(e,t)=>{const[n]=he($,e),l=n(t);return se(he(K,e),l)?Rt(e,t):l},Tt=e=>{var t;return null!=(t=he(K,e))?t:ft(e,{})},pt=e=>ft(e,{}),Ct=(e,t,n)=>{const[,l]=he($,e);l(n),gt(e,t,n,{},!0)},bt=(e,t,n,l,o,s)=>{var r;const i=he(null==(r=he(P,e))?void 0:r[0],o);if(!E(i)&&!s)return Lt(e,n,l,o,i);const a=t=>{xt(e,n,t,he(l,t)),kt(e,n,t,-1),ge(l,t)};E(i)?a(o):fe(l,a),re(l)&&(Et(e,n,-1),re(ge(t,n))&&(Vt(e,-1),ge(K,e),ge($,e),ge(H,e)))},mt=e=>{const t=he(W,e);if(!E(t))return It(e,t);Dt(e,he(U,e)),Mt(e,-1),ge(U,e)},Vt=(e,t)=>nt(d,e,t),Et=(e,t,n)=>nt(Le(y,e,ue),t,n),kt=(e,t,n,l)=>{var o;const s=he(H,e),r=null!=(o=he(s,n))?o:0;(0==r&&1==l||1==r&&-1==l)&&nt(Le(u,e,ue),n,l),ge(s,n,r!=-l?r+l:null),nt(Le(Le(C,e,ue),t,ue),n,l)},xt=(e,t,n,l,o)=>Le(Le(Le(b,e,ue),t,ue),n,(()=>[l,0]))[1]=o,Mt=(e,t)=>nt(m,e,t),Dt=(e,t,n)=>Le(V,e,(()=>[t,0]))[1]=n,Jt=(e,t,n,l,o)=>(G(Le(Le(Le(D,e,ue),t,ue),n,(()=>[])),l),o),At=(e,t,n)=>(G(Le(J,e,(()=>[])),t),n),Ot=(e,t,n)=>k(he(he(he(b,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(Xt(e,t,n))])),Ft=e=>k(he(V,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ue(_t(e))])),Pt=e=>re(D)||re(Je[e])?0:de(e?pe(D):D,((t,n)=>de(t,((t,l)=>de(t,((t,o)=>$e(Je[e],[n,l,o],t))))))),jt=e=>re(J)||re(Fe[e])?0:de(e?Re(J):J,((t,n)=>$e(Fe[e],[n],t))),Qt=(e,t,n)=>{if(!re(t))return $e(e,n,(()=>Se(t))),1},zt=e=>{const t=re(Ce[e]),n=re(Me[e])&&re(oe[e])&&re(ie[e])&&t&&re(Y[e]),l=re(De[e])&&re(xe[e])&&re(_[e])&&re(X[e]);if(!n||!l){const o=e?[Re(d),Te(u),Te(y),pe(C),pe(b)]:[d,u,y,C,b];if(!n){Qt(Y[e],o[0]),de(o[1],((t,n)=>Qt(oe[e],t,[n])));const n=Ee();de(o[2],((l,o)=>{Qt(ie[e],l,[o])&&!t&&($e(Ce[e],[o,null]),ke(n,o))})),t||de(o[4],((t,l)=>{if(!se(n,l)){const n=Ee();de(t,(e=>de(e,(([t,l],o)=>l!==t?ke(n,o):ce(e,o))))),de(n,(t=>$e(Ce[e],[l,t])))}})),de(o[3],((t,n)=>de(t,((t,l)=>Qt(Me[e],t,[n,l])))))}if(!l){let t;de(o[4],((n,l)=>{let o;de(n,((n,s)=>{let r;de(n,(([n,i],a)=>{i!==n&&($e(De[e],[l,s,a],i,n,Ot),t=o=r=1)})),r&&$e(xe[e],[l,s],Ot)})),o&&$e(_[e],[l],Ot)})),t&&$e(X[e],void 0,Ot)}}},Nt=e=>{const t=re(Qe[e]),n=re(ze[e])&&re(je[e]);if(!t||!n){const l=e?[Re(m),Re(V)]:[m,V];if(t||Qt(Qe[e],l[0]),!n){let t;de(l[1],(([n,l],o)=>{l!==n&&($e(ze[e],[o],l,n,Ft),t=1)})),t&&$e(je[e],void 0,Ft)}}},Wt=(e,...t)=>(vn((()=>e(...z(t,p)))),gn),Bt=()=>[Se(b,((e,t)=>-1===he(d,t)?null:Se(e,((e,n)=>-1===he(he(y,t),n)?null:Se(e,(([,e])=>null!=e?e:null),((e,t)=>Ze(t)))),le)),le),Se(V,(([,e])=>null!=e?e:null),((e,t)=>Ze(t)))],$t=()=>({cellsTouched:n,valuesTouched:l,changedCells:Ie(b,Ye,Ze),invalidCells:Ie(D),changedValues:Se(V,Ye,Ze),invalidValues:Se(J),changedTableIds:Se(d),changedRowIds:we(y),changedCellIds:Ie(C),changedValueIds:Se(m)}),qt=()=>Ie(K),Gt=()=>ve(K),Ht=e=>ve(he(K,p(e))),Kt=(e,t,n,l=0,o)=>{return z(q(j((s=he(K,p(e)),r=(e,n)=>[E(t)?n:he(e,p(t)),n],z([...null!=(i=null==s?void 0:s.entries())?i:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Pe(e,t)*(n?-1:1))),l,E(o)?o:l+o),(([,e])=>e));var s,r,i},Ut=(e,t)=>ve(he(he(K,p(e)),p(t))),Xt=(e,t,n)=>he(he(he(K,p(e)),p(t)),p(n)),Yt=()=>Se(U),Zt=()=>ve(U),_t=e=>he(U,p(e)),en=e=>Wt((()=>(e=>tt(e,Ke,Jt))(e)?ht(e):0)),tn=e=>Wt((()=>rt(e)?wt(e):0)),nn=e=>{try{vt(et(e))}catch(e){}return gn},ln=t=>Wt((()=>{if((e=tt(t,(e=>tt(e,He))))&&(ct(t),!re(K))){const e=qt();sn(),en(e)}})),on=e=>Wt((()=>{if(t=(e=>tt(e,He))(e)){const n=Yt();un(),dn(),t=!0,ut(e),tn(n)}})),sn=()=>Wt((()=>ht({}))),rn=e=>Wt((e=>se(K,e)?pt(e):0),e),an=(e,t)=>Wt(((e,t)=>k(he(K,e),(n=>se(n,t)?Ct(e,n,t):0))),e,t),dn=()=>Wt((()=>wt({}))),cn=()=>Wt((()=>{ct({}),e=!1})),un=()=>Wt((()=>{ut({}),t=!1})),vn=(e,t)=>{if(-1!=s){hn();const n=e();return fn(t),n}},hn=()=>(-1!=s&&s++,1==s&&$e(Ne,void 0,Bt,$t),gn),fn=e=>(s>0&&(s--,0==s&&(n=!re(b),l=!re(V),s=1,Pt(1),n&&zt(1),jt(1),l&&Nt(1),(null==e?void 0:e(Bt,$t))&&(de(b,((e,t)=>de(e,((e,n)=>de(e,(([e],l)=>me(gn,t,n,l,e))))))),de(V,(([e],t)=>Ve(gn,t,e))),n=l=!1),$e(We[0],void 0,Bt,$t),s=-1,Pt(0),n&&zt(0),jt(0),l&&Nt(0),$e(We[1],void 0,Bt,$t),s=0,n=l=!1,Q([d,u,y,C,b,D,m,V,J],ae))),gn),gn={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>we(he(K,p(e))),getTableCellIds:e=>ve(he(H,p(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Se(he(he(K,p(e)),p(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!re(K),hasTable:e=>se(K,p(e)),hasTableCell:(e,t)=>se(he(H,p(e)),p(t)),hasRow:(e,t)=>se(he(K,p(e)),p(t)),hasCell:(e,t,n)=>se(he(he(K,p(e)),p(t)),p(n)),hasValues:()=>!re(U),hasValue:e=>se(U,p(e)),getTablesJson:()=>_e(K),getValuesJson:()=>_e(U),getJson:()=>_e([K,U]),getTablesSchemaJson:()=>_e(O),getValuesSchemaJson:()=>_e(N),getSchemaJson:()=>_e([O,N]),setContent:([e,t])=>Wt((()=>{(le(e)?sn:en)(e),(le(t)?dn:tn)(t)})),setTables:en,setTable:(e,t)=>Wt((e=>Ke(t,e)?ft(e,t):0),e),setRow:(e,t,n)=>Wt(((e,t)=>ot(e,t,n)?gt(e,Tt(e),t,n):0),e,t),addRow:(e,t,n=!0)=>vn((()=>{let l;return ot(e,l,t)&&(e=p(e),gt(e,Tt(e),l=Rt(e,n?1:0),t)),l})),setPartialRow:(e,t,n)=>Wt(((e,t)=>{if(ot(e,t,n,1)){const l=Tt(e);ne(n,((n,o)=>yt(e,l,t,o,n)))}}),e,t),setCell:(e,t,n,l)=>Wt(((e,t,n)=>k(st(e,t,n,M(l)?l(Xt(e,t,n)):l),(l=>yt(e,Tt(e),t,n,l)))),e,t,n),setValues:tn,setPartialValues:e=>Wt((()=>rt(e,1)?ne(e,((e,t)=>It(t,e))):0)),setValue:(e,t)=>Wt((e=>k(it(e,M(t)?t(_t(e)):t),(t=>It(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ne(e[0],((e,t)=>E(e)?rn(t):ne(e,((e,n)=>E(e)?an(t,n):ne(e,((e,l)=>me(gn,t,n,l,e))))))),ne(e[1],((e,t)=>Ve(gn,t,e)))})),setTablesJson:nn,setValuesJson:e=>{try{St(et(e))}catch(e){}return gn},setJson:e=>{try{const[t,n]=et(e);vt(t),St(n)}catch(t){nn(e)}return gn},setTablesSchema:ln,setValuesSchema:on,setSchema:(e,t)=>Wt((()=>{ln(e),on(t)})),delTables:sn,delTable:rn,delRow:an,delCell:(e,t,n,l)=>Wt(((e,t,n)=>k(he(K,e),(o=>k(he(o,t),(s=>se(s,n)?bt(e,o,t,s,n,l):0))))),e,t,n),delValues:dn,delValue:e=>Wt((e=>se(U,e)?mt(e):0),e),delTablesSchema:cn,delValuesSchema:un,delSchema:()=>Wt((()=>{cn(),un()})),transaction:vn,startTransaction:hn,finishTransaction:fn,forEachTable:e=>de(K,((t,n)=>e(n,(e=>de(t,((t,n)=>e(n,(e=>fe(t,e))))))))),forEachTableCell:(e,t)=>fe(he(H,p(e)),t),forEachRow:(e,t)=>de(he(K,p(e)),((e,n)=>t(n,(t=>fe(e,t))))),forEachCell:(e,t,n)=>fe(he(he(K,p(e)),p(t)),n),forEachValue:e=>fe(U,e),addSortedRowIdsListener:(e,t,n,l,o,s,r)=>{let i=Kt(e,t,n,l,o);return Be((()=>{const r=Kt(e,t,n,l,o);F(r,i)||(i=r,s(gn,e,t,n,l,o,i))}),Ce[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,Ne),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(Ge(e),gn),delListener:e=>(qe(e),gn),getListenerStats:()=>({}),createStore:lt};return ne({[h]:[0,X],[f]:[0,Y],[v]:[1,_,[Gt]],[v+w]:[1,oe,[Gt]],[L]:[1,ie,[Gt]],[g]:[2,xe,[Gt,Ht]],[w]:[2,Me,[Gt,Ht]],[S]:[3,De,[Gt,Ht,Ut],e=>Ue(Xt(...e))],InvalidCell:[3,Je],[R]:[0,je],[T]:[0,Qe],[I]:[1,ze,[Zt],e=>Ue(_t(e[0]))],InvalidValue:[1,Fe]},(([e,t,n,l],o)=>{gn[c+o+a]=(...o)=>Be(o[e],t[o[e+1]?1:0],e>0?q(o,0,e):void 0,n,l)})),Z(gn)};export{Fe as createCheckpoints,Be as createCustomPersister,je as createIndexes,Ne as createMetrics,He as createQueries,Ke as createRelationships,lt as createStore,Pe as defaultSorter};
1
+ const e=e=>typeof e,t="",n=e(t),l=e(!0),o=e(0),s=e(e),r="type",i="default",a="Listener",d="Result",u="add",c="Ids",v="Table",h=v+"s",f=v+c,g="Row",L=g+c,y="Sorted"+g+c,S="Cell",w=S+c,I="Value",R=I+"s",T=I+c,p=e=>t+e,C=Math.max,b=Math.min,m=isFinite,V=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,n)=>E(e)?null==n?void 0:n():t(e),x=e=>e==n||e==l,M=t=>e(t)==s,D=e=>Array.isArray(e),J=()=>{},A=(e,t)=>e.includes(t),O=(e,t)=>e.every(t),F=(e,t)=>W(e)===W(t)&&O(e,((e,n)=>t[n]===e)),P=(e,t)=>O(e,((n,l)=>0==l||t(e[l-1],n)<=0)),j=(e,t)=>e.sort(t),Q=(e,t)=>e.forEach(t),z=(e,t)=>e.map(t),N=e=>$(e,((e,t)=>e+t),0),W=e=>e.length,B=e=>0==W(e),$=(e,t,n)=>e.reduce(t,n),q=(e,t,n)=>e.slice(t,n),G=(e,...t)=>e.push(...t),H=e=>e.pop(),K=e=>e.shift(),U=Object,X=U.keys,Y=U.isFrozen,Z=U.freeze,_=e=>V(e,U)&&e.constructor==U,ee=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),ne=(e,t)=>z(U.entries(e),(([e,n])=>t(n,e))),le=e=>_(e)&&0==(e=>W(X(e)))(e),oe=e=>e.size,se=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},re=e=>E(e)||0==oe(e),ie=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},ae=e=>e.clear(),de=(e,t)=>null==e?void 0:e.forEach(t),ue=(e,t)=>null==e?void 0:e.delete(t),ce=e=>new Map(e),ve=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},he=(e,t)=>null==e?void 0:e.get(t),fe=(e,t)=>de(e,((e,n)=>t(n,e))),ge=(e,t,n)=>E(n)?(ue(e,t),e):null==e?void 0:e.set(t,n),Le=(e,t,n)=>(se(e,t)||ge(e,t,n()),he(e,t)),ye=(e,t,n,l=ge)=>(ne(t,((t,l)=>n(e,l,t))),fe(e,(n=>ee(t,n)?0:l(e,n))),e),Se=(e,t,n)=>{const l={};return de(e,((e,o)=>{const s=t?t(e,o):e;!(null==n?void 0:n(s,e))&&(l[o]=s)})),l},we=(e,t,n)=>Se(e,(e=>Se(e,t,n)),le),Ie=(e,t,n)=>Se(e,(e=>we(e,t,n)),le),Re=(e,t)=>{const n=ce();return de(e,((e,l)=>{var o;return n.set(l,null!=(o=null==t?void 0:t(e))?o:e)})),n},Te=e=>Re(e,Re),pe=e=>Re(e,Te),Ce=(e,t,n,l,o=0)=>k((n?Le:he)(e,t[o],o>W(t)-2?n:ce),(s=>{if(o>W(t)-2)return(null==l?void 0:l(s))&&ge(e,t[o]),s;const r=Ce(s,t,n,l,o+1);return re(s)&&ge(e,t[o]),r})),be=t=>{const n=e(t);return x(n)||n==o&&m(t)?n:void 0},me=(e,t,n,l,o)=>E(o)?e.delCell(t,n,l,!0):e.setCell(t,n,l,o),Ve=(e,t,n)=>E(n)?e.delValue(t):e.setValue(t,n),Ee=e=>new Set(D(e)||E(e)?e:[e]),ke=(e,t)=>null==e?void 0:e.add(t),xe=(e,t,n)=>{const l=e.hasRow,o=ce(),s=ce(),r=ce(),i=ce(),a=ce(),d=(t,n,...l)=>{const o=Le(a,t,Ee);return Q(l,(t=>ke(o,t)&&n&&e.callListener(t))),l},u=(t,...n)=>k(he(a,t),(l=>{Q(B(n)?ie(l):n,(t=>{e.delListener(t),ue(l,t)})),re(l)&&ge(a,t)})),c=(e,n)=>{ge(o,e,n),se(s,e)||(ge(s,e,t()),ge(r,e,ce()),ge(i,e,ce()))},v=e=>{ge(o,e),ge(s,e),ge(r,e),ge(i,e),u(e)};return[()=>e,()=>ve(o),e=>fe(s,e),e=>se(s,e),e=>he(o,e),e=>he(s,e),(e,t)=>ge(s,e,t),c,(t,o,s,a,v)=>{c(t,o);const h=ce(),f=ce(),g=he(r,t),L=he(i,t),y=t=>{const s=n=>e.getCell(o,t,n),r=he(g,t),i=l(o,t)?n(a(s,t)):void 0;if(r===i||D(r)&&D(i)&&F(r,i)||ge(h,t,[r,i]),!E(v)){const e=he(L,t),n=l(o,t)?v(s,t):void 0;e!=n&&ge(f,t,n)}},S=e=>{s((()=>{de(h,(([,e],t)=>ge(g,t,e))),de(f,((e,t)=>ge(L,t,e)))}),h,f,g,L,e),ae(h),ae(f)};fe(g,y),e.hasTable(o)&&Q(e.getRowIds(o),(e=>{se(g,e)||y(e)})),S(!0),u(t),d(t,0,e.addRowListener(o,null,((e,t,n)=>y(n))),e.addTableListener(o,(()=>S())))},v,()=>fe(a,v),d,u]},Me=(l,o)=>e(l)==n?e=>e(l):null!=l?l:()=>null!=o?o:t,De=e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))},Je=/^\d+$/,Ae=()=>{const e=[];let n=0;return[l=>{var o;return null!=(o=l?K(e):null)?o:t+n++},t=>{Je.test(t)&&W(e)<1e3&&G(e,t)}]},Oe=e=>{let n;const[l,o]=Ae(),s=ce();return[(o,r,i,a=[],d=(()=>[]))=>{null!=n||(n=e());const u=l(1);return ge(s,u,[o,r,i,a,d]),ke(Ce(r,null!=i?i:[t],Ee),u),u},(e,l,...o)=>Q(((e,n=[t])=>{const l=[],o=(e,t)=>t==W(n)?G(l,e):null===n[t]?de(e,(e=>o(e,t+1))):Q([n[t],null],(n=>o(he(e,n),t+1)));return o(e,0),l})(e,l),(e=>de(e,(e=>he(s,e)[0](n,...null!=l?l:[],...o))))),e=>k(he(s,e),(([,n,l])=>(Ce(n,null!=l?l:[t],void 0,(t=>(ue(t,e),re(t)?1:0))),ge(s,e),o(e),l))),e=>k(he(s,e),(([e,,t=[],l,o])=>{const s=(...r)=>{var i,a;const d=W(r);d==W(t)?e(n,...r,...o(r)):E(t[d])?Q(null!=(a=null==(i=l[d])?void 0:i.call(l,...r))?a:[],(e=>s(...r,e))):s(...r,t[d])};s()}))]},Fe=De((e=>{let n,l,o,s=100,r=ce(),i=ce(),a=1;const d=ce(),u=ce(),[c,v,h]=Oe((()=>F)),f=ce(),g=ce(),L=[],y=[],S=(t,n)=>{a=0,e.transaction((()=>{const[l,o]=he(f,n);de(l,((n,l)=>de(n,((n,o)=>de(n,((n,s)=>me(e,l,o,s,n[t]))))))),de(o,((n,l)=>Ve(e,l,n[t])))})),a=1},w=e=>{ge(f,e),ge(g,e),v(u,[e])},I=(e,t)=>Q(((e,t)=>e.splice(0,t))(e,null!=t?t:W(e)),w),R=()=>I(L,W(L)-s),T=()=>k(n,(()=>{G(L,n),R(),I(y),n=void 0,o=1})),p=()=>{n=H(L),o=1},C=e.addCellListener(null,null,null,((e,t,n,l,o,s)=>{if(a){T();const e=Le(r,t,ce),i=Le(e,n,ce),a=Le(i,l,(()=>[s,void 0]));a[1]=o,a[0]===o&&re(ge(i,l))&&re(ge(e,n))&&re(ge(r,t))&&p(),M()}})),b=e.addValueListener(null,((e,t,n,l)=>{if(a){T();const e=Le(i,t,(()=>[l,void 0]));e[1]=n,e[0]===n&&re(ge(i,t))&&p(),M()}})),m=(e="")=>(E(n)&&(n=t+l++,ge(f,n,[r,i]),J(n,e),r=ce(),i=ce(),o=1),n),V=()=>{B(L)||(((e,...t)=>{e.unshift(...t)})(y,m()),S(0,n),n=H(L),o=1)},x=()=>{B(y)||(G(L,n),n=K(y),S(1,n),o=1)},M=()=>{o&&(v(d),o=0)},D=e=>{const t=m(e);return M(),t},J=(e,t)=>(O(e)&&he(g,e)!==t&&(ge(g,e,t),v(u,[e])),F),O=e=>se(f,e),F={setSize:e=>(s=e,R(),F),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...L],n,[...y]],forEachCheckpoint:e=>fe(g,e),hasCheckpoint:O,getCheckpoint:e=>he(g,e),goBackward:()=>(V(),M(),F),goForward:()=>(x(),M(),F),goTo:e=>{const t=A(L,e)?V:A(y,e)?x:null;for(;!E(t)&&e!=n;)t();return M(),F},addCheckpointIdsListener:e=>c(e,d),addCheckpointListener:(e,t)=>c(t,u,[e]),delListener:e=>(h(e),F),clear:()=>(I(L),I(y),E(n)||w(n),n=void 0,l=0,D(),F),destroy:()=>{e.delListener(C),e.delListener(b)},getListenerStats:()=>({})};return Z(F.clear())})),Pe=(e,t)=>e<t?-1:1,je=De((e=>{const n=ce(),l=ce(),[o,s,r,i,a,d,u,,c,v,h]=xe(e,ce,(e=>E(e)?t:D(e)?z(e,p):p(e))),[f,g,L]=Oe((()=>S)),y=(t,n,l)=>{const o=a(t);de(l,((t,l)=>n(l,(n=>de(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},S={setIndexDefinition:(e,t,o,s,r,i=Pe)=>{const a=E(r)?void 0:([e],[t])=>r(e,t);return c(e,t,((t,o,r,c,v,h)=>{let f=0;const L=Ee(),y=Ee(),S=d(e);if(de(o,(([e,t],n)=>{const l=Ee(e),o=Ee(t);de(l,(e=>ue(o,e)?ue(l,e):0)),de(l,(e=>{ke(L,e),k(he(S,e),(t=>{ue(t,n),re(t)&&(ge(S,e),f=1)}))})),de(o,(e=>{ke(L,e),se(S,e)||(ge(S,e,Ee()),f=1),ke(he(S,e),n),E(s)||ke(y,e)}))})),t(),re(v)||(h?fe(S,(e=>ke(y,e))):fe(r,(e=>k(he(c,e),(e=>ke(y,e))))),de(y,(e=>{const t=(t,n)=>i(he(v,t),he(v,n),e),n=[...he(S,e)];P(n,t)||(ge(S,e,Ee(j(n,t))),ke(L,e))}))),(f||h)&&!E(a)){const t=[...S];P(t,a)||(u(e,ce(j(t,a))),f=1)}f&&g(n,[e]),de(L,(t=>g(l,[e,t])))}),Me(o),k(s,Me)),S},delIndexDefinition:e=>(v(e),S),getStore:o,getIndexIds:s,forEachIndex:e=>r(((t,n)=>e(t,(e=>y(t,e,n))))),forEachSlice:(e,t)=>y(e,t,d(e)),hasIndex:i,hasSlice:(e,t)=>se(d(e),t),getTableId:a,getSliceIds:e=>ve(d(e)),getSliceRowIds:(e,t)=>ie(he(d(e),t)),addSliceIdsListener:(e,t)=>f(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,l,[e,t]),delListener:e=>(L(e),S),destroy:h,getListenerStats:()=>({})};return Z(S)})),Qe=ce([["avg",[(e,t)=>N(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,l)=>e+(t-n)/l]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:C(t,e)]],["min",[e=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:b(t,e)]],["sum",[e=>N(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),ze=(e,t,n,l,o,s=!1)=>{if(re(n))return;const[r,i,a,d]=o;return s||(s=E(e)),de(l,(([n,l])=>{s||(e=E(n)?null==i?void 0:i(e,l,t++):E(l)?null==a?void 0:a(e,n,t--):null==d?void 0:d(e,l,n,t),s||(s=E(e)))})),s?r(ie(n),oe(n)):e},Ne=De((e=>{const n=ce(),[l,o,s,r,i,a,d,,u,c,v]=xe(e,J,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e)),[h,f,g]=Oe((()=>L)),L={setMetricDefinition:(e,t,l,o,s,r,i)=>{var c;const v=M(l)?[l,s,r,i]:null!=(c=he(Qe,l))?c:he(Qe,"sum");return u(e,t,((t,l,o,s,r,i)=>{const u=a(e),c=oe(s);i||(i=E(u)),t();let h=ze(u,c,s,l,v,i);m(h)||(h=void 0),h!=u&&(d(e,h),f(n,[e],h,u))}),Me(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:l,getMetricIds:o,forEachMetric:s,hasMetric:r,getTableId:i,getMetric:a,addMetricListener:(e,t)=>h(t,n,[e]),delListener:e=>(g(e),L),destroy:v,getListenerStats:()=>({})};return Z(L)}));var We=(e,t,n)=>new Promise(((l,o)=>{var s=e=>{try{i(n.next(e))}catch(e){o(e)}},r=e=>{try{i(n.throw(e))}catch(e){o(e)}},i=e=>e.done?l(e.value):Promise.resolve(e.value).then(s,r);i((n=n.apply(e,t)).next())}));const Be=ce(),$e=ce(),qe=(e,t,n,l,o,s,r=[])=>{let i,a,d,u=0,c=0;Le(Be,r,(()=>0)),Le($e,r,(()=>[]));const v=e=>We(void 0,null,(function*(){return 2!=u&&(u=1,yield h.schedule((()=>We(void 0,null,(function*(){yield e(),u=0}))))),h})),h={load:(n,l)=>We(void 0,null,(function*(){return yield v((()=>We(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}}))))})),startAutoLoad:(...n)=>We(void 0,[...n],(function*(n={},o={}){return h.stopAutoLoad(),yield h.load(n,o),c=1,d=l(((n,l)=>We(void 0,null,(function*(){if(l){const t=l();yield v((()=>We(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield v((()=>We(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==n?void 0:n())?l:yield t())}catch(e){null==s||s(e)}}))))})))),h})),stopAutoLoad:()=>(c&&(o(d),d=void 0,c=0),h),save:t=>We(void 0,null,(function*(){return 1!=u&&(u=2,yield h.schedule((()=>We(void 0,null,(function*(){try{yield n(e.getContent,t)}catch(e){null==s||s(e)}u=0}))))),h})),startAutoSave:()=>We(void 0,null,(function*(){return yield h.stopAutoSave().save(),i=e.addDidFinishTransactionListener(((e,t)=>{const[n,l]=t();le(n)&&le(l)||h.save((()=>[n,l]))})),h})),stopAutoSave:()=>(k(i,e.delListener),h),schedule:(...e)=>We(void 0,null,(function*(){return G(he($e,r),...e),yield We(void 0,null,(function*(){if(!he(Be,r)){for(ge(Be,r,1);!E(a=K(he($e,r)));)try{yield a()}catch(e){null==s||s(e)}ge(Be,r,0)}})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Z(h)};var Ge=Object.getOwnPropertySymbols,He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;const Ue=De((e=>{const n=e.createStore,[l,o,s,r,i,,,c,,h,f,I,R]=xe(e,(()=>!0),J),T=n(),p=n(),C=ce(),b=(e,t,...n)=>Q(n,(n=>ke(Le(Le(C,t,ce),e,Ee),n))),m=e=>{k(he(C,e),(e=>{fe(e,((e,t)=>de(t,(t=>e.delListener(t))))),ae(e)})),Q([p,T],(t=>t.delTable(e)))},V=(e,t,n)=>b(t,e,t.addStartTransactionListener(n.startTransaction),t.addDidFinishTransactionListener((()=>n.finishTransaction()))),x={setQueryDefinition:(n,l,o)=>{c(n,l),m(n);const s=[],r=[[null,[l,null,null,[],ce()]]],i=[],a=[],d=[];o({select:(e,n)=>{const l=M(e)?[W(s)+t,e]:[E(n)?e:n,t=>t(e,n)];return G(s,l),{as:e=>l[0]=e}},join:(e,t,n)=>{const l=E(n)||M(t)?null:t,o=E(l)?t:n,s=[e,[e,l,M(o)?o:e=>e(o),[],ce()]];return G(r,s),{as:e=>s[0]=e}},where:(e,t,n)=>G(i,M(e)?e:E(n)?n=>n(e)===t:l=>l(e,t)===n),group:(e,t,n,l,o)=>{var s;const r=[e,[e,M(t)?[t,n,l,o]:null!=(s=he(Qe,t))?s:[(e,t)=>t]]];return G(a,r),{as:e=>r[0]=e}},having:(e,t)=>G(d,M(e)?e:n=>n(e)===t)});const u=ce(s);if(re(u))return x;const v=ce(r);fe(v,((e,[,t])=>k(he(v,t),(({3:t})=>E(e)?0:G(t,e)))));const h=ce(a);let f=T;if(re(h)&&B(d))f=p;else{V(n,f,p);const e=ce();fe(h,((t,[n,l])=>ke(Le(e,n,Ee),[t,l])));const t=Ee();fe(u,(n=>se(e,n)?0:ke(t,n)));const l=ce(),o=(t,l,o,s)=>k(t,(([r,i,a,u])=>{fe(l,((t,[n])=>{const l=Le(r,t,ce),i=he(l,o),a=s?void 0:n;if(i!==a){const n=Ee([[i,a]]),s=oe(l);ge(l,o,a),de(he(e,t),(([e,t])=>{const o=ze(u[e],s,l,n,t);u[e]=E(be(o))?null:o}))}})),re(i)||!O(d,(e=>e((e=>u[e]))))?p.delRow(n,a):E(a)?t[2]=p.addRow(n,u):p.setRow(n,a,u)}));b(f,n,f.addRowListener(n,null,((s,r,i,a)=>{const d=[],u=[],c=ce(),v=f.hasRow(n,i);let h=!v;de(t,(e=>{const[t,l,o]=a(n,i,e);G(d,l),G(u,o),h||(h=t)})),fe(e,(e=>{const[t,,l]=a(n,i,e);(h||t)&&ge(c,e,[l])})),h&&o(Ce(l,d,void 0,(([,e])=>(ue(e,i),re(e)))),c,i,1),v&&o(Ce(l,u,(()=>{const e={};return de(t,(t=>e[t]=f.getCell(n,i,t))),[ce(),Ee(),void 0,e]}),(([,e])=>{ke(e,i)})),c,i)})))}V(n,e,f);const g=(t,o,s,r)=>{const a=t=>e.getCell(o,s,t);Q(r,(l=>{var o;const[s,,r,i,d]=he(v,l),u=null==r?void 0:r(a,t),[c,h]=null!=(o=he(d,t))?o:[];u!=c&&(E(h)||R(n,h),ge(d,t,E(u)?null:[u,...I(n,1,e.addRowListener(s,u,(()=>g(t,s,u,i))))]))})),(t=>{const o=(n,o)=>{var s,r,i;return e.getCell(...E(o)?[l,t,n]:n===l?[l,t,o]:[null==(s=he(v,n))?void 0:s[0],null==(i=he(null==(r=he(v,n))?void 0:r[4],t))?void 0:i[0],o])};f.transaction((()=>O(i,(e=>e(o)))?fe(u,((e,l)=>me(f,n,t,e,l(o,t)))):f.delRow(n,t)))})(t)},{3:L}=he(v,null);return f.transaction((()=>I(n,1,e.addRowListener(l,null,((t,o,s)=>{e.hasRow(l,s)?g(s,l,s,L):(f.delRow(n,s),de(v,(({4:e})=>k(he(e,s),(([,t])=>{R(n,t),ge(e,s)})))))}))))),x},delQueryDefinition:e=>(m(e),h(e),x),getStore:l,getQueryIds:o,forEachQuery:s,hasQuery:r,getTableId:i,delListener:e=>(p.delListener(e),x),destroy:f,getListenerStats:()=>((e,t)=>{var n={};for(var l in e)He.call(e,l)&&t.indexOf(l)<0&&(n[l]=e[l]);if(null!=e&&Ge)for(var l of Ge(e))t.indexOf(l)<0&&Ke.call(e,l)&&(n[l]=e[l]);return n})(p.getListenerStats(),["tables","tableIds","transaction"])};return ne({[v]:[1,1],[L]:[0,1],[y]:[0,5],[g]:[1,2],[w]:[0,2],[S]:[1,3]},(([e,t],n)=>{Q(e?["get","has","forEach"]:["get"],(e=>x[e+d+n]=(...t)=>p[e+n](...t))),x[u+d+n+a]=(...e)=>p[u+n+a](...q(e,0,t),((n,...l)=>e[t](x,...l)))})),Z(x)})),Xe=De((e=>{const n=ce(),l=ce(),o=ce(),s=ce(),[r,i,a,d,u,c,,,v,h,f]=xe(e,(()=>[ce(),ce(),ce(),ce()]),(e=>E(e)?void 0:e+t)),[g,L,y]=Oe((()=>R)),S=(e,t,n)=>k(c(e),(([l,,o])=>{if(!se(o,t)){const s=Ee();if(u(e)!=I(e))ke(s,t);else{let e=t;for(;!E(e)&&!se(s,e);)ke(s,e),e=he(l,e)}if(n)return s;ge(o,t,s)}return he(o,t)})),w=(e,t)=>k(c(e),(([,,e])=>ge(e,t))),I=e=>he(n,e),R={setRelationshipDefinition:(e,t,r,i)=>(ge(n,e,r),v(e,t,((t,n)=>{const r=Ee(),i=Ee(),a=Ee(),[d,u]=c(e);de(n,(([t,n],l)=>{E(t)||(ke(i,t),k(he(u,t),(e=>{ue(e,l),re(e)&&ge(u,t)}))),E(n)||(ke(i,n),se(u,n)||ge(u,n,Ee()),ke(he(u,n),l)),ke(r,l),ge(d,l,n),fe(he(s,e),(t=>{se(S(e,t),l)&&ke(a,t)}))})),t(),de(r,(t=>L(l,[e,t]))),de(i,(t=>L(o,[e,t]))),de(a,(t=>{w(e,t),L(s,[e,t])}))}),Me(i)),R),delRelationshipDefinition:e=>(ge(n,e),h(e),R),getStore:r,getRelationshipIds:i,forEachRelationship:t=>a((n=>t(n,(t=>e.forEachRow(u(n),t))))),hasRelationship:d,getLocalTableId:u,getRemoteTableId:I,getRemoteRowId:(e,t)=>{var n;return he(null==(n=c(e))?void 0:n[0],t)},getLocalRowIds:(e,t)=>{var n;return ie(he(null==(n=c(e))?void 0:n[1],t))},getLinkedRowIds:(e,t)=>E(c(e))?[t]:ie(S(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,l,[e,t]),addLocalRowIdsListener:(e,t,n)=>g(n,o,[e,t]),addLinkedRowIdsListener:(e,t,n)=>(S(e,t),g(n,s,[e,t])),delListener:e=>(w(...y(e)),R),destroy:f,getListenerStats:()=>({})};return Z(R)})),Ye=e=>[e,e],Ze=()=>[ce(),ce()],_e=e=>[...e],et=([e,t])=>e===t,tt=e=>JSON.stringify(e,((e,t)=>V(t,Map)?U.fromEntries([...t]):t)),nt=JSON.parse,lt=(e,t,n)=>E(e)||!_(e)||le(e)||Y(e)?(null==n||n(),!1):(ne(e,((n,l)=>{t(n,l)||te(e,l)})),!le(e)),ot=(e,t,n)=>ge(e,t,he(e,t)==-n?void 0:n),st=()=>{let e,t,n=!1,l=!1,s=0;const d=ce(),c=ce(),y=ce(),C=ce(),b=ce(),m=ce(),V=ce(),D=ce(),J=ce(),O=ce(),P=ce(),N=ce(),W=ce(),B=Ee(),$=ce(),H=ce(),K=ce(),U=ce(),X=Ze(),Y=Ze(),_=Ze(),oe=Ze(),ie=Ze(),Ce=Ze(),xe=Ze(),Me=Ze(),De=Ze(),Je=Ze(),Fe=Ze(),je=Ze(),Qe=Ze(),ze=Ze(),Ne=ce(),We=Ze(),[Be,$e,qe,Ge]=Oe((()=>gn)),He=e=>{if(!lt(e,((e,t)=>A([r,i],t))))return!1;const t=e[r];return!(!x(t)&&t!=o||(be(e[i])!=t&&te(e,i),0))},Ke=(t,n)=>(!e||se(O,n)||Jt(n))&&lt(t,((e,t)=>Ue(n,t,e)),(()=>Jt(n))),Ue=(e,t,n,l)=>lt(l?n:at(n,e,t),((l,o)=>k(Xe(e,t,o,l),(e=>(n[o]=e,!0)),(()=>!1))),(()=>Jt(e,t))),Xe=(t,n,l,o)=>e?k(he(he(O,t),l),(e=>be(o)!=e[r]?Jt(t,n,l,o,e[i]):o),(()=>Jt(t,n,l,o))):E(be(o))?Jt(t,n,l,o):o,rt=(e,t)=>lt(t?e:dt(e),((t,n)=>k(it(n,t),(t=>(e[n]=t,!0)),(()=>!1))),(()=>At())),it=(e,n)=>t?k(he(N,e),(t=>be(n)!=t[r]?At(e,n,t[i]):n),(()=>At(e,n))):E(be(n))?At(e,n):n,at=(e,t,n)=>(k(he(P,t),(([l,o])=>{de(l,((t,n)=>{ee(e,n)||(e[n]=t)})),de(o,(l=>{ee(e,l)||Jt(t,n,l)}))})),e),dt=e=>(t&&(de(W,((t,n)=>{ee(e,n)||(e[n]=t)})),de(B,(t=>{ee(e,t)||At(t)}))),e),ut=e=>ye(O,e,((e,t,n)=>{const l=ce(),o=Ee();ye(Le(O,t,ce),n,((e,t,n)=>{ge(e,t,n),k(n[i],(e=>ge(l,t,e)),(()=>ke(o,t)))})),ge(P,t,[l,o])}),((e,t)=>{ge(O,t),ge(P,t)})),ct=e=>ye(N,e,((e,t,n)=>{ge(N,t,n),k(n[i],(e=>ge(W,t,e)),(()=>ke(B,t)))}),((e,t)=>{ge(N,t),ge(W,t),ue(B,t)})),vt=e=>le(e)?sn():en(e),ht=e=>ye(K,e,((e,t,n)=>ft(t,n)),((e,t)=>pt(t))),ft=(e,t)=>ye(Le(K,e,(()=>(Vt(e,1),ge($,e,Ae()),ge(H,e,ce()),ce()))),t,((t,n,l)=>gt(e,t,n,l)),((t,n)=>Ct(e,t,n))),gt=(e,t,n,l,o)=>ye(Le(t,n,(()=>(Et(e,n,1),ce()))),l,((t,l,o)=>Lt(e,n,t,l,o)),((l,s)=>bt(e,t,n,l,s,o))),Lt=(e,t,n,l,o)=>{se(n,l)||kt(e,t,l,1);const s=he(n,l);o!==s&&(xt(e,t,l,s,o),ge(n,l,o))},yt=(e,t,n,l,o)=>k(he(t,n),(t=>Lt(e,n,t,l,o)),(()=>gt(e,t,n,at({[l]:o},e,n)))),St=e=>le(e)?dn():tn(e),wt=e=>ye(U,e,((e,t,n)=>It(t,n)),((e,t)=>mt(t))),It=(e,t)=>{se(U,e)||Mt(e,1);const n=he(U,e);t!==n&&(Dt(e,n,t),ge(U,e,t))},Rt=(e,t)=>{const[n]=he($,e),l=n(t);return se(he(K,e),l)?Rt(e,t):l},Tt=e=>{var t;return null!=(t=he(K,e))?t:ft(e,{})},pt=e=>ft(e,{}),Ct=(e,t,n)=>{const[,l]=he($,e);l(n),gt(e,t,n,{},!0)},bt=(e,t,n,l,o,s)=>{var r;const i=he(null==(r=he(P,e))?void 0:r[0],o);if(!E(i)&&!s)return Lt(e,n,l,o,i);const a=t=>{xt(e,n,t,he(l,t)),kt(e,n,t,-1),ge(l,t)};E(i)?a(o):fe(l,a),re(l)&&(Et(e,n,-1),re(ge(t,n))&&(Vt(e,-1),ge(K,e),ge($,e),ge(H,e)))},mt=e=>{const t=he(W,e);if(!E(t))return It(e,t);Dt(e,he(U,e)),Mt(e,-1),ge(U,e)},Vt=(e,t)=>ot(d,e,t),Et=(e,t,n)=>ot(Le(y,e,ce),t,n),kt=(e,t,n,l)=>{var o;const s=he(H,e),r=null!=(o=he(s,n))?o:0;(0==r&&1==l||1==r&&-1==l)&&ot(Le(c,e,ce),n,l),ge(s,n,r!=-l?r+l:null),ot(Le(Le(C,e,ce),t,ce),n,l)},xt=(e,t,n,l,o)=>Le(Le(Le(b,e,ce),t,ce),n,(()=>[l,0]))[1]=o,Mt=(e,t)=>ot(m,e,t),Dt=(e,t,n)=>Le(V,e,(()=>[t,0]))[1]=n,Jt=(e,t,n,l,o)=>(G(Le(Le(Le(D,e,ce),t,ce),n,(()=>[])),l),o),At=(e,t,n)=>(G(Le(J,e,(()=>[])),t),n),Ot=(e,t,n)=>k(he(he(he(b,e),t),n),(([e,t])=>[!0,e,t]),(()=>[!1,...Ye(Xt(e,t,n))])),Ft=e=>k(he(V,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ye(_t(e))])),Pt=e=>re(D)||re(Je[e])?0:de(e?pe(D):D,((t,n)=>de(t,((t,l)=>de(t,((t,o)=>$e(Je[e],[n,l,o],t))))))),jt=e=>re(J)||re(Fe[e])?0:de(e?Re(J):J,((t,n)=>$e(Fe[e],[n],t))),Qt=(e,t,n)=>{if(!re(t))return $e(e,n,(()=>Se(t))),1},zt=e=>{const t=re(Ce[e]),n=re(Me[e])&&re(oe[e])&&re(ie[e])&&t&&re(Y[e]),l=re(De[e])&&re(xe[e])&&re(_[e])&&re(X[e]);if(!n||!l){const o=e?[Re(d),Te(c),Te(y),pe(C),pe(b)]:[d,c,y,C,b];if(!n){Qt(Y[e],o[0]),de(o[1],((t,n)=>Qt(oe[e],t,[n])));const n=Ee();de(o[2],((l,o)=>{Qt(ie[e],l,[o])&&!t&&($e(Ce[e],[o,null]),ke(n,o))})),t||de(o[4],((t,l)=>{if(!se(n,l)){const n=Ee();de(t,(e=>de(e,(([t,l],o)=>l!==t?ke(n,o):ue(e,o))))),de(n,(t=>$e(Ce[e],[l,t])))}})),de(o[3],((t,n)=>de(t,((t,l)=>Qt(Me[e],t,[n,l])))))}if(!l){let t;de(o[4],((n,l)=>{let o;de(n,((n,s)=>{let r;de(n,(([n,i],a)=>{i!==n&&($e(De[e],[l,s,a],i,n,Ot),t=o=r=1)})),r&&$e(xe[e],[l,s],Ot)})),o&&$e(_[e],[l],Ot)})),t&&$e(X[e],void 0,Ot)}}},Nt=e=>{const t=re(Qe[e]),n=re(ze[e])&&re(je[e]);if(!t||!n){const l=e?[Re(m),Re(V)]:[m,V];if(t||Qt(Qe[e],l[0]),!n){let t;de(l[1],(([n,l],o)=>{l!==n&&($e(ze[e],[o],l,n,Ft),t=1)})),t&&$e(je[e],void 0,Ft)}}},Wt=(e,...t)=>(vn((()=>e(...z(t,p)))),gn),Bt=()=>[Se(b,((e,t)=>-1===he(d,t)?null:Se(e,((e,n)=>-1===he(he(y,t),n)?null:Se(e,(([,e])=>null!=e?e:null),((e,t)=>et(t)))),le)),le),Se(V,(([,e])=>null!=e?e:null),((e,t)=>et(t)))],$t=()=>({cellsTouched:n,valuesTouched:l,changedCells:Ie(b,_e,et),invalidCells:Ie(D),changedValues:Se(V,_e,et),invalidValues:Se(J),changedTableIds:Se(d),changedRowIds:we(y),changedCellIds:Ie(C),changedValueIds:Se(m)}),qt=()=>Ie(K),Gt=()=>ve(K),Ht=e=>ve(he(K,p(e))),Kt=(e,t,n,l=0,o)=>{return z(q(j((s=he(K,p(e)),r=(e,n)=>[E(t)?n:he(e,p(t)),n],z([...null!=(i=null==s?void 0:s.entries())?i:[]],(([e,t])=>r(t,e)))),(([e],[t])=>Pe(e,t)*(n?-1:1))),l,E(o)?o:l+o),(([,e])=>e));var s,r,i},Ut=(e,t)=>ve(he(he(K,p(e)),p(t))),Xt=(e,t,n)=>he(he(he(K,p(e)),p(t)),p(n)),Yt=()=>Se(U),Zt=()=>ve(U),_t=e=>he(U,p(e)),en=e=>Wt((()=>(e=>lt(e,Ke,Jt))(e)?ht(e):0)),tn=e=>Wt((()=>rt(e)?wt(e):0)),nn=e=>{try{vt(nt(e))}catch(e){}return gn},ln=t=>Wt((()=>{if((e=lt(t,(e=>lt(e,He))))&&(ut(t),!re(K))){const e=qt();sn(),en(e)}})),on=e=>Wt((()=>{if(t=(e=>lt(e,He))(e)){const n=Yt();cn(),dn(),t=!0,ct(e),tn(n)}})),sn=()=>Wt((()=>ht({}))),rn=e=>Wt((e=>se(K,e)?pt(e):0),e),an=(e,t)=>Wt(((e,t)=>k(he(K,e),(n=>se(n,t)?Ct(e,n,t):0))),e,t),dn=()=>Wt((()=>wt({}))),un=()=>Wt((()=>{ut({}),e=!1})),cn=()=>Wt((()=>{ct({}),t=!1})),vn=(e,t)=>{if(-1!=s){hn();const n=e();return fn(t),n}},hn=()=>(-1!=s&&s++,1==s&&$e(Ne,void 0,Bt,$t),gn),fn=e=>(s>0&&(s--,0==s&&(n=!re(b),l=!re(V),s=1,Pt(1),n&&zt(1),jt(1),l&&Nt(1),(null==e?void 0:e(Bt,$t))&&(de(b,((e,t)=>de(e,((e,n)=>de(e,(([e],l)=>me(gn,t,n,l,e))))))),de(V,(([e],t)=>Ve(gn,t,e))),n=l=!1),$e(We[0],void 0,Bt,$t),s=-1,Pt(0),n&&zt(0),jt(0),l&&Nt(0),$e(We[1],void 0,Bt,$t),s=0,n=l=!1,Q([d,c,y,C,b,D,m,V,J],ae))),gn),gn={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>we(he(K,p(e))),getTableCellIds:e=>ve(he(H,p(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Se(he(he(K,p(e)),p(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!re(K),hasTable:e=>se(K,p(e)),hasTableCell:(e,t)=>se(he(H,p(e)),p(t)),hasRow:(e,t)=>se(he(K,p(e)),p(t)),hasCell:(e,t,n)=>se(he(he(K,p(e)),p(t)),p(n)),hasValues:()=>!re(U),hasValue:e=>se(U,p(e)),getTablesJson:()=>tt(K),getValuesJson:()=>tt(U),getJson:()=>tt([K,U]),getTablesSchemaJson:()=>tt(O),getValuesSchemaJson:()=>tt(N),getSchemaJson:()=>tt([O,N]),setContent:([e,t])=>Wt((()=>{(le(e)?sn:en)(e),(le(t)?dn:tn)(t)})),setTables:en,setTable:(e,t)=>Wt((e=>Ke(t,e)?ft(e,t):0),e),setRow:(e,t,n)=>Wt(((e,t)=>Ue(e,t,n)?gt(e,Tt(e),t,n):0),e,t),addRow:(e,t,n=!0)=>vn((()=>{let l;return Ue(e,l,t)&&(e=p(e),gt(e,Tt(e),l=Rt(e,n?1:0),t)),l})),setPartialRow:(e,t,n)=>Wt(((e,t)=>{if(Ue(e,t,n,1)){const l=Tt(e);ne(n,((n,o)=>yt(e,l,t,o,n)))}}),e,t),setCell:(e,t,n,l)=>Wt(((e,t,n)=>k(Xe(e,t,n,M(l)?l(Xt(e,t,n)):l),(l=>yt(e,Tt(e),t,n,l)))),e,t,n),setValues:tn,setPartialValues:e=>Wt((()=>rt(e,1)?ne(e,((e,t)=>It(t,e))):0)),setValue:(e,t)=>Wt((e=>k(it(e,M(t)?t(_t(e)):t),(t=>It(e,t)))),e),setTransactionChanges:e=>Wt((()=>{ne(e[0],((e,t)=>E(e)?rn(t):ne(e,((e,n)=>E(e)?an(t,n):ne(e,((e,l)=>me(gn,t,n,l,e))))))),ne(e[1],((e,t)=>Ve(gn,t,e)))})),setTablesJson:nn,setValuesJson:e=>{try{St(nt(e))}catch(e){}return gn},setJson:e=>{try{const[t,n]=nt(e);vt(t),St(n)}catch(t){nn(e)}return gn},setTablesSchema:ln,setValuesSchema:on,setSchema:(e,t)=>Wt((()=>{ln(e),on(t)})),delTables:sn,delTable:rn,delRow:an,delCell:(e,t,n,l)=>Wt(((e,t,n)=>k(he(K,e),(o=>k(he(o,t),(s=>se(s,n)?bt(e,o,t,s,n,l):0))))),e,t,n),delValues:dn,delValue:e=>Wt((e=>se(U,e)?mt(e):0),e),delTablesSchema:un,delValuesSchema:cn,delSchema:()=>Wt((()=>{un(),cn()})),transaction:vn,startTransaction:hn,finishTransaction:fn,forEachTable:e=>de(K,((t,n)=>e(n,(e=>de(t,((t,n)=>e(n,(e=>fe(t,e))))))))),forEachTableCell:(e,t)=>fe(he(H,p(e)),t),forEachRow:(e,t)=>de(he(K,p(e)),((e,n)=>t(n,(t=>fe(e,t))))),forEachCell:(e,t,n)=>fe(he(he(K,p(e)),p(t)),n),forEachValue:e=>fe(U,e),addSortedRowIdsListener:(e,t,n,l,o,s,r)=>{let i=Kt(e,t,n,l,o);return Be((()=>{const r=Kt(e,t,n,l,o);F(r,i)||(i=r,s(gn,e,t,n,l,o,i))}),Ce[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,Ne),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(Ge(e),gn),delListener:e=>(qe(e),gn),getListenerStats:()=>({}),createStore:st};return ne({[h]:[0,X],[f]:[0,Y],[v]:[1,_,[Gt]],[v+w]:[1,oe,[Gt]],[L]:[1,ie,[Gt]],[g]:[2,xe,[Gt,Ht]],[w]:[2,Me,[Gt,Ht]],[S]:[3,De,[Gt,Ht,Ut],e=>Ye(Xt(...e))],InvalidCell:[3,Je],[R]:[0,je],[T]:[0,Qe],[I]:[1,ze,[Zt],e=>Ye(_t(e[0]))],InvalidValue:[1,Fe]},(([e,t,n,l],o)=>{gn[u+o+a]=(...o)=>Be(o[e],t[o[e+1]?1:0],e>0?q(o,0,e):void 0,n,l)})),Z(gn)};export{Fe as createCheckpoints,qe as createCustomPersister,je as createIndexes,Ne as createMetrics,Ue as createQueries,Xe as createRelationships,st as createStore,Pe as defaultSorter};
Binary file
@@ -1 +1 @@
1
- const t=t=>null==t,a=(a,e,s)=>t(a)?s?.():e(a),e=Object,s=e.keys,n=e.freeze,o=(t,e)=>a(t,(t=>t[e])),c=(a,e)=>!t(o(a,e)),i=(t,a)=>(delete t[a],t),r=(t,a)=>((t,a)=>t.map(a))(e.entries(t),(([t,e])=>a(e,t))),d=t=>s(t).length,y=t=>(t=>t instanceof e&&t.constructor==e)(t)&&0==d(t),u=(t,a)=>[t[a].t,t[a].v],h=(a,e,s,n)=>{const o=t(e)?a:((t,a,e)=>(c(t,a)||(t[a]={}),t[a]))(a,e);let d;return r(s,((t,a)=>{n(o,a,t)&&(d=1)})),r(o,((t,a)=>{c(s,a)||(i(o,a),d=1)})),!t(e)&&y(o)&&i(a,e),d},v=(e,s,c="tinybase")=>(s.change((t=>t[c]={})),((e,d,v,l,w)=>{let g,p,f,A=0,L=0,S=0;const C=[],b=async t=>(2!=A&&(A=1,await m.schedule((async()=>{await t(),A=0}))),m),m={load:async(t,a)=>await b((async()=>{try{e.setContent(await d())}catch{e.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(m.stopAutoLoad(),await m.load(t,a),S=1,f=(t=>{const a=({doc:a})=>t((()=>u(a,c)));return s.on("change",a),a})((async(t,a)=>await b((async()=>{if(a)e.setTransactionChanges(a());else try{e.setContent(t?.()??await d())}catch{}})))),m),stopAutoLoad:()=>{return S&&(t=f,s.removeListener("change",t),f=void 0,S=0),m;var t},save:async n=>(1!=A&&(A=2,await m.schedule((async()=>{try{await(async(e,n)=>s.change((s=>((e,s,n,c)=>{((t,a)=>{y(t[a])&&(t[a]={t:{},v:{}})})(e,s);const[d,v]=u(e,s),l=()=>{w=1};let w=1;if(a(c?.(),(([e,s])=>{w=0,r(e,((e,s)=>w?0:t(e)?i(d,s):a(d[s],(s=>r(e,((e,n)=>w?0:t(e)?i(s,n):a(o(s,n),(a=>r(e,((e,s)=>t(e)?i(a,s):a[s]=e))),l)))),l))),r(s,((a,e)=>w?0:t(a)?i(v,e):v[e]=a))})),w){const[t,a]=n();h(d,void 0,t,((t,a,e)=>h(d,a,e,((t,a,e)=>h(t,a,e,((t,a,e)=>{if(o(t,a)!==e)return t[a]=e,1})))))),h(v,void 0,a,((t,a,e)=>{o(v,a)!==e&&(v[a]=e)}))}})(s,c,e,n))))(e.getContent,n)}catch{}A=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),g=e.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();y(e)&&y(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(a(g,e.delListener),m),schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(C,...a),await(async()=>{if(!L){for(L=1;!t((a=C,p=a.shift()));)try{await p()}catch{}L=0}var a})(),m),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(m)})(e,(async()=>2==d(s.doc[c])?u(s.doc,c):void 0)));export{v as createAutomergePersister};
1
+ const t=t=>null==t,a=(a,e,s)=>t(a)?s?.():e(a),e=Object,s=e.keys,n=e.freeze,o=(t,e)=>a(t,(t=>t[e])),c=(a,e)=>!t(o(a,e)),r=(t,a)=>(delete t[a],t),i=(t,a)=>((t,a)=>t.map(a))(e.entries(t),(([t,e])=>a(e,t))),d=t=>s(t).length,y=t=>(t=>t instanceof e&&t.constructor==e)(t)&&0==d(t),u=t=>new Map(t),h=(t,a)=>t?.get(a),v=(a,e,s)=>{return t(s)?(n=a,o=e,n?.delete(o),a):a?.set(e,s);var n,o},l=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||v(t,a,e()),h(t,a)},w=u(),g=u(),p=(t,a)=>[t[a].t,t[a].v],f=(a,e,s,n)=>{const o=t(e)?a:((t,a,e)=>(c(t,a)||(t[a]={}),t[a]))(a,e);let d;return i(s,((t,a)=>{n(o,a,t)&&(d=1)})),i(o,((t,a)=>{c(s,a)||(r(o,a),d=1)})),!t(e)&&y(o)&&r(a,e),d},A=(e,s,c="tinybase",u)=>(s.change((t=>t[c]={})),((e,s,o,c,r,i,d=[])=>{let u,p,f,A=0,L=0;l(w,d,(()=>0)),l(g,d,(()=>[]));const S=async t=>(2!=A&&(A=1,await C.schedule((async()=>{await t(),A=0}))),C),C={load:async(t,a)=>await S((async()=>{try{e.setContent(await s())}catch{e.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(C.stopAutoLoad(),await C.load(t,a),L=1,f=c((async(t,a)=>{if(a){const t=a();await S((async()=>e.setTransactionChanges(t)))}else await S((async()=>{try{e.setContent(t?.()??await s())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(L&&(r(f),f=void 0,L=0),C),save:async t=>(1!=A&&(A=2,await C.schedule((async()=>{try{await o(e.getContent,t)}catch(t){i?.(t)}A=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();y(e)&&y(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>(a(u,e.delListener),C),schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(h(g,d),...a),await(async()=>{if(!h(w,d)){for(v(w,d,1);!t((a=h(g,d),p=a.shift()));)try{await p()}catch(t){i?.(t)}v(w,d,0)}var a})(),C),getStore:()=>e,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(C)})(e,(async()=>2==d(s.doc[c])?p(s.doc,c):void 0),(async(e,n)=>s.change((s=>((e,s,n,c)=>{((t,a)=>{y(t[a])&&(t[a]={t:{},v:{}})})(e,s);const[d,u]=p(e,s),h=()=>{v=1};let v=1;if(a(c?.(),(([e,s])=>{v=0,i(e,((e,s)=>v?0:t(e)?r(d,s):a(d[s],(s=>i(e,((e,n)=>v?0:t(e)?r(s,n):a(o(s,n),(a=>i(e,((e,s)=>t(e)?r(a,s):a[s]=e))),h)))),h))),i(s,((a,e)=>v?0:t(a)?r(u,e):u[e]=a))})),v){const[t,a]=n();f(d,void 0,t,((t,a,e)=>f(d,a,e,((t,a,e)=>f(t,a,e,((t,a,e)=>{if(o(t,a)!==e)return t[a]=e,1})))))),f(u,void 0,a,((t,a,e)=>{o(u,a)!==e&&(u[a]=e)}))}})(s,c,e,n)))),(t=>{const a=({doc:a})=>t((()=>p(a,c)));return s.on("change",a),a}),(t=>{s.removeListener("change",t)}),u));export{A as createAutomergePersister};
@@ -1 +1 @@
1
- const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,o=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),r=JSON.parse,c="storage",i=globalThis.window,y=(s,y,u)=>((s,d,l,v,w)=>{let h,g,p,S=0,A=0,f=0;const L=[],C=async t=>(2!=S&&(S=1,await m.schedule((async()=>{await t(),S=0}))),m),m={load:async(t,a)=>await C((async()=>{try{s.setContent(await d())}catch{s.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(m.stopAutoLoad(),await m.load(t,a),f=1,p=(t=>{const a=a=>{a.storageArea===u&&a.key===y&&t((()=>r(a.newValue)))};return i.addEventListener(c,a),a})((async(t,a)=>await C((async()=>{if(a)s.setTransactionChanges(a());else try{s.setContent(t?.()??await d())}catch{}})))),m),stopAutoLoad:()=>{return f&&(t=p,i.removeEventListener(c,t),p=void 0,f=0),m;var t},save:async a=>(1!=S&&(S=2,await m.schedule((async()=>{try{await(async a=>{return u.setItem(y,(s=a(),JSON.stringify(s,((a,s)=>t(s,Map)?e.fromEntries([...s]):s))));var s})(s.getContent)}catch{}S=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),h=s.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>{var t,e;return t=h,e=s.delListener,a(t)||e(t),m},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(L,...t),await(async()=>{if(!A){for(A=1;!a((t=L,g=t.shift()));)try{await g()}catch{}A=0}var t})(),m),getStore:()=>s,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(m)})(s,(async()=>r(u.getItem(y)))),u=(t,a)=>y(t,a,localStorage),d=(t,a)=>y(t,a,sessionStorage);export{u as createLocalPersister,d as createSessionPersister};
1
+ const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,o=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),r=JSON.parse,c=t=>new Map(t),i=(t,a)=>t?.get(a),y=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},u=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||y(t,a,e()),i(t,a)},d=c(),l=c(),w="storage",v=globalThis.window,h=(s,c,h,g)=>((t,e,s,r,c,w,v=[])=>{let h,g,p,S=0,A=0;u(d,v,(()=>0)),u(l,v,(()=>[]));const f=async t=>(2!=S&&(S=1,await L.schedule((async()=>{await t(),S=0}))),L),L={load:async(a,s)=>await f((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(L.stopAutoLoad(),await L.load(a,s),A=1,p=r((async(a,s)=>{if(s){const a=s();await f((async()=>t.setTransactionChanges(a)))}else await f((async()=>{try{t.setContent(a?.()??await e())}catch(t){w?.(t)}}))})),L),stopAutoLoad:()=>(A&&(c(p),p=void 0,A=0),L),save:async a=>(1!=S&&(S=2,await L.schedule((async()=>{try{await s(t.getContent,a)}catch(t){w?.(t)}S=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),h=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||L.save((()=>[e,s]))})),L),stopAutoSave:()=>{var e,s;return e=h,s=t.delListener,a(e)||s(e),L},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(i(l,v),...t),await(async()=>{if(!i(d,v)){for(y(d,v,1);!a((t=i(l,v),g=t.shift()));)try{await g()}catch(t){w?.(t)}y(d,v,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(L)})(s,(async()=>r(h.getItem(c))),(async a=>{return h.setItem(c,(s=a(),JSON.stringify(s,((a,s)=>t(s,Map)?e.fromEntries([...s]):s))));var s}),(t=>{const a=a=>{a.storageArea===h&&a.key===c&&t((()=>r(a.newValue)))};return v.addEventListener(w,a),a}),(t=>v.removeEventListener(w,t)),g),g=(t,a,e)=>h(t,a,localStorage,e),p=(t,a,e)=>h(t,a,sessionStorage,e);export{g as createLocalPersister,p as createSessionPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,O=f.freeze,R=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),D=a=>o(h(a)),g=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==D(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",U="WHERE",k=(a,t)=>{const s=I();return[async()=>_(s,R(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,R(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?R(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!g(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+U+j(n)+"=?",[s]):r(T)||await J(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+j(t)+U+j(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=k(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=k(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>R(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return g(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,D(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la=(a,t,e,s)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s);export{la as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),w=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,T=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,N=f.freeze,O=(a=[])=>f.fromEntries(a),R=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),D=a=>o(h(a)),I=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==D(a),g=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e)=>(A(a,t)||$(a,t,e()),F(a,t)),P=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>T(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B=a=>new Set(Array.isArray(a)||d(a)?a:[a]),H=(a,t)=>a?.add(t),W="_",j="_id",x=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",k="WHERE",J=(a,t,s)=>{const n=g();return[async()=>P(n,O(await m(c(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(n,t,P(_(n,t,g),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(n,t))),async(t,e)=>((a,t)=>!d(F(F(n,a),t)))(t,e)?O(w(c(await a("SELECT*FROM"+x(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!I(t)))):{},async(t,s,o,l,E,u=!1)=>{const T=B();C(o??{},(a=>c(h(a??{}),(a=>H(T,a)))));const v=L(T);if(!u&&E&&r(v)&&A(n,t))return await a("DROP TABLE"+x(t)),void $(n,t);if(r(v)||A(n,t)){const e=F(n,t),i=B(b(e));await m([...c(v,(async s=>{p(i,s)||(await a(`ALTER TABLE${x(t)}ADD${x(s)}`),$(e,s,""))})),...!u&&l?c(L(i),(async n=>{n!=s&&(await a(`ALTER TABLE${x(t)}DROP${x(n)}`),$(e,n))})):[]])}else await a(`CREATE TABLE${x(t)}(${x(s)} PRIMARY KEY ON CONFLICT REPLACE${i(c(v,(a=>e+x(a))))});`),$(n,t,g([[s,""],...c(v,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+x(t)+"WHERE 1"):await m(C(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+x(t)+k+x(s)+"=?",[n]):r(v)||await Y(a,t,s,h(e),[n,...S(e)])})));else if(r(v))A(n,t)&&await a("DELETE FROM"+x(t)+"WHERE 1");else{const e=w(b(F(n,t)),(a=>a!=s)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await Y(a,t,s,e,i),await a("DELETE FROM"+x(t)+k+x(s)+"NOT IN("+z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,r,w)=>await a("INSERT INTO"+x(t)+"("+x(s)+i(c(r,(a=>e+x(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(w)/(o(r)+1)).substring(1)+"ON CONFLICT("+x(s)+")DO UPDATE SET"+i(c(r,(a=>x(a)+"=excluded."+x(a))),e),w),z=a=>i(c(a,(()=>"?")),e),G=JSON.parse,K=g(),V=g(),q=(a,t,e,s,n,i,c=[])=>{let o,r,w,l=0,E=0;_(K,c,(()=>0)),_(V,c,(()=>[]));const u=async a=>(2!=l&&(l=1,await v.schedule((async()=>{await a(),l=0}))),v),v={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),E=1,w=s((async(e,s)=>{if(s){const t=s();await u((async()=>a.setTransactionChanges(t)))}else await u((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),v),stopAutoLoad:()=>(E&&(n(w),w=void 0,E=0),v),save:async t=>(1!=l&&(l=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}l=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(T(o,a.delListener),v),schedule:async(...a)=>(y(F(V,c),...a),await(async()=>{if(!F(K,c)){for($(K,c,1);!d((a=F(V,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}$(K,c,0)}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(v)},Q="store",X=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=J(t,c,n);return q(a,(async()=>await y((async()=>(await r(),G((await w(i,j))[W]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,j,{[W]:{[Q]:(t=a()??null,JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},Z=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[u,T,v,A]=J(t,y,n),L=async(a,t)=>await m(M(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(l,j,{[W]:a},!0,!0,t):null;return q(a,(async()=>await A((async()=>{await u();const a=await(async()=>O(w(await m(M(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?(await T(l,j))[W]:{})();return I(a)&&d(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await u(),d(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},aa="json",ta="autoLoadIntervalSeconds",ea="rowIdColumnName",sa="tableId",na="tableName",ia={mode:aa,[ta]:1},ca={load:0,save:0,[na]:t+"_values"},oa=(a,t,e,s)=>{const n=g();return C(a,((a,i)=>{const c=l(S(R(t,v(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ra="pragma ",wa="data_version",la="schema_version",ya=(a,e,s,n,i,c,o,r)=>{let w,y;const[E,u,d,T]=(a=>{const e=(a=>R(ia,v(a)?{storeTableName:a}:a??{}))(a),s=e[ta];if(e.mode==aa){const{storeTableName:a=t}=e;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(S(R(ca,c)),0,D(ca)),r=o[2],w=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:j},sa,(a=>H(w,a)&&a==r)),oa(i,{[na]:null,[ea]:j,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>H(w,t)&&t==r)),o],w]})(e);return(E?X:Z)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ra+wa))[0][wa],e=(await s(ra+la))[0][la];t==(w??=t)&&e==(y??=e)||(a(),w=t,y=e)}catch{}}),1e3*u),n((t=>T.has(t)?a():0))]),(([a,t])=>{clearInterval(a),w=y=null,i(t)}),o,d,L(T),r)},Ea=(a,t,e,s,n)=>ya(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{Ea as createCrSqliteWasmPersister};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),w=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,m=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,T=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),h=Object,N=h.keys,f=h.freeze,R=(a=[])=>h.fromEntries(a),O=(...a)=>h.assign({},...a),C=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),D=a=>o(N(a)),g=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==D(a),b=a=>new Map(a),I=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e)=>(A(a,t)||$(a,t,e()),F(a,t)),P=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>m(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B=a=>new Set(Array.isArray(a)||d(a)?a:[a]),H=(a,t)=>a?.add(t),W="_",j="_id",x=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",J="WHERE",U=(a,t,s)=>{const n=b();return[async()=>P(n,R(await T(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+q(t)+")",t),(async({name:t})=>[t,R(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(n,t,P(_(n,t,b),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(n,t))),async(t,e)=>((a,t)=>!d(F(F(n,a),t)))(t,e)?R(w(c(await a("SELECT*FROM"+x(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!g(t)))):{},async(t,s,o,l,E,u=!1)=>{const m=B();C(o??{},(a=>c(N(a??{}),(a=>H(m,a)))));const v=L(m);if(!u&&E&&r(v)&&A(n,t))return await a("DROP TABLE"+x(t)),void $(n,t);if(r(v)||A(n,t)){const e=F(n,t),i=B(I(e));await T([...c(v,(async s=>{p(i,s)||(await a(`ALTER TABLE${x(t)}ADD${x(s)}`),$(e,s,""))})),...!u&&l?c(L(i),(async n=>{n!=s&&(await a(`ALTER TABLE${x(t)}DROP${x(n)}`),$(e,n))})):[]])}else await a(`CREATE TABLE${x(t)}(${x(s)} PRIMARY KEY ON CONFLICT REPLACE${i(c(v,(a=>e+x(a))))});`),$(n,t,b([[s,""],...c(v,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+x(t)+"WHERE 1"):await T(C(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+x(t)+J+x(s)+"=?",[n]):r(v)||await Y(a,t,s,N(e),[n,...S(e)])})));else if(r(v))A(n,t)&&await a("DELETE FROM"+x(t)+"WHERE 1");else{const e=w(I(F(n,t)),(a=>a!=s)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await Y(a,t,s,e,i),await a("DELETE FROM"+x(t)+J+x(s)+"NOT IN("+q(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,r,w)=>await a("INSERT INTO"+x(t)+"("+x(s)+i(c(r,(a=>e+x(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(w)/(o(r)+1)).substring(1)+"ON CONFLICT("+x(s)+")DO UPDATE SET"+i(c(r,(a=>x(a)+"=excluded."+x(a))),e),w),q=a=>i(c(a,(()=>"?")),e),z=JSON.parse,G=b(),K=b(),V=(a,t,e,s,n,i,c=[])=>{let o,r,w,l=0,E=0;_(G,c,(()=>0)),_(K,c,(()=>[]));const u=async a=>(2!=l&&(l=1,await v.schedule((async()=>{await a(),l=0}))),v),v={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),E=1,w=s((async(e,s)=>{if(s){const t=s();await u((async()=>a.setTransactionChanges(t)))}else await u((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),v),stopAutoLoad:()=>(E&&(n(w),w=void 0,E=0),v),save:async t=>(1!=l&&(l=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}l=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(m(o,a.delListener),v),schedule:async(...a)=>(y(F(K,c),...a),await(async()=>{if(!F(G,c)){for($(G,c,1);!d((a=F(K,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}$(G,c,0)}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},Q="store",X=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=U(t,c,n);return V(a,(async()=>await y((async()=>(await r(),z((await w(i,j))[W]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,j,{[W]:{[Q]:(t=a()??null,JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},Z=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[u,m,v,A]=U(t,y,n),L=async(a,t)=>await T(M(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),p=async(a,t)=>r?await v(l,j,{[W]:a},!0,!0,t):null;return V(a,(async()=>await A((async()=>{await u();const a=await(async()=>R(w(await T(M(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await m(l,j))[W]:{})();return g(a)&&d(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await u(),d(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},aa="json",ta="autoLoadIntervalSeconds",ea="rowIdColumnName",sa="tableId",na="tableName",ia={mode:aa,[ta]:1},ca={load:0,save:0,[na]:t+"_values"},oa=(a,t,e,s)=>{const n=b();return C(a,((a,i)=>{const c=l(S(O(t,v(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ra="pragma ",wa="data_version",la="schema_version",ya=(a,e,s,n,i,c,o,r)=>{let w,y;const[E,u,d,m]=(a=>{const e=(a=>O(ia,v(a)?{storeTableName:a}:a??{}))(a),s=e[ta];if(e.mode==aa){const{storeTableName:a=t}=e;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(S(O(ca,c)),0,D(ca)),r=o[2],w=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:j},sa,(a=>H(w,a)&&a==r)),oa(i,{[na]:null,[ea]:j,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>H(w,t)&&t==r)),o],w]})(e);return(E?X:Z)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ra+wa))[0][wa],e=(await s(ra+la))[0][la];t==(w??=t)&&e==(y??=e)||(a(),w=t,y=e)}catch{}}),1e3*u),n((t=>m.has(t)?a():0))]),(([a,t])=>{clearInterval(a),w=y=null,i(t)}),o,d,L(m),r)},Ea=(a,t,e,s,n)=>ya(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{Ea as createExpoSqlitePersister};
@@ -1 +1 @@
1
- import{watch as t}from"fs";import{readFile as a,writeFile as s}from"fs/promises";const e="utf8",n=(t,a)=>t instanceof a,o=t=>null==t,r=Object,c=r.keys,i=r.freeze,y=t=>(t=>n(t,r)&&t.constructor==r)(t)&&0==(t=>c(t).length)(t),u=JSON.parse,d=(c,d)=>((a,c,u,w,f)=>{let p,v,h,l=0,A=0,S=0;const g=[],m=async t=>(2!=l&&(l=1,await L.schedule((async()=>{await t(),l=0}))),L),L={load:async(t,s)=>await m((async()=>{try{a.setContent(await c())}catch{a.setContent([t,s])}})),startAutoLoad:async(s={},e={})=>{return L.stopAutoLoad(),await L.load(s,e),S=1,n=async(t,s)=>await m((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(t?.()??await c())}catch{}})),h=t(d,(()=>n())),L;var n},stopAutoLoad:()=>{return S&&(t=h,t?.close(),h=void 0,S=0),L;var t},save:async t=>(1!=l&&(l=2,await L.schedule((async()=>{try{await(async t=>{return await s(d,(a=t(),JSON.stringify(a,((t,a)=>n(a,Map)?r.fromEntries([...a]):a))),e);var a})(a.getContent)}catch{}l=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),p=a.addDidFinishTransactionListener(((t,a)=>{const[s,e]=a();y(s)&&y(e)||L.save((()=>[s,e]))})),L),stopAutoSave:()=>{var t,s;return t=p,s=a.delListener,o(t)||s(t),L},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(g,...t),await(async()=>{if(!A){for(A=1;!o((t=g,v=t.shift()));)try{await v()}catch{}A=0}var t})(),L),getStore:()=>a,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(L)})(c,(async()=>u(await a(d,e))));export{d as createFilePersister};
1
+ import{watch as t}from"fs";import{readFile as a,writeFile as s}from"fs/promises";const e="utf8",n=(t,a)=>t instanceof a,o=t=>null==t,r=Object,c=r.keys,i=r.freeze,y=t=>(t=>n(t,r)&&t.constructor==r)(t)&&0==(t=>c(t).length)(t),u=JSON.parse,d=t=>new Map(t),w=(t,a)=>t?.get(a),p=(t,a,s)=>{return o(s)?(e=t,n=a,e?.delete(n),t):t?.set(a,s);var e,n},f=(t,a,s)=>{var e,n;return e=t,n=a,e?.has(n)||p(t,a,s()),w(t,a)},h=d(),l=d(),v=(c,d,v)=>((t,a,s,e,n,r,c=[])=>{let u,d,v,A=0,S=0;f(h,c,(()=>0)),f(l,c,(()=>[]));const g=async t=>(2!=A&&(A=1,await m.schedule((async()=>{await t(),A=0}))),m),m={load:async(s,e)=>await g((async()=>{try{t.setContent(await a())}catch{t.setContent([s,e])}})),startAutoLoad:async(s={},n={})=>(m.stopAutoLoad(),await m.load(s,n),S=1,v=e((async(s,e)=>{if(e){const a=e();await g((async()=>t.setTransactionChanges(a)))}else await g((async()=>{try{t.setContent(s?.()??await a())}catch(t){r?.(t)}}))})),m),stopAutoLoad:()=>(S&&(n(v),v=void 0,S=0),m),save:async a=>(1!=A&&(A=2,await m.schedule((async()=>{try{await s(t.getContent,a)}catch(t){r?.(t)}A=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),u=t.addDidFinishTransactionListener(((t,a)=>{const[s,e]=a();y(s)&&y(e)||m.save((()=>[s,e]))})),m),stopAutoSave:()=>{var a,s;return a=u,s=t.delListener,o(a)||s(a),m},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(w(l,c),...t),await(async()=>{if(!w(h,c)){for(p(h,c,1);!o((t=w(l,c),d=t.shift()));)try{await d()}catch(t){r?.(t)}p(h,c,0)}var t})(),m),getStore:()=>t,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(m)})(c,(async()=>u(await a(d,e))),(async t=>{return await s(d,(a=t(),JSON.stringify(a,((t,a)=>n(a,Map)?r.fromEntries([...a]):a))),e);var a}),(a=>t(d,(()=>a()))),(t=>t?.close()),v);export{v as createFilePersister};
Binary file
@@ -1 +1 @@
1
- const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,o=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),c=JSON.parse,r=t=>t.headers.get("ETag"),i=(s,i,y,d)=>{let u;return((s,c,h,l,w)=>{let v,p,f,A=0,S=0,g=0;const C=[],L=async t=>(2!=A&&(A=1,await T.schedule((async()=>{await t(),A=0}))),T),T={load:async(t,a)=>await L((async()=>{try{s.setContent(await c())}catch{s.setContent([t,a])}})),startAutoLoad:async(t={},e={})=>{return T.stopAutoLoad(),await T.load(t,e),g=1,n=async(t,a)=>await L((async()=>{if(a)s.setTransactionChanges(a());else try{s.setContent(t?.()??await c())}catch{}})),f=setInterval((async()=>{const t=await fetch(i,{method:"HEAD"}),e=r(t);a(u)||a(e)||e==u||(u=e,n())}),1e3*d),T;var n},stopAutoLoad:()=>(g&&(clearInterval(f),f=void 0,g=0),T),save:async a=>(1!=A&&(A=2,await T.schedule((async()=>{try{await(async a=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(s=a(),JSON.stringify(s,((a,s)=>t(s,Map)?e.fromEntries([...s]):s)))});var s})(s.getContent)}catch{}A=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),v=s.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>{var t,e;return t=v,e=s.delListener,a(t)||e(t),T},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(C,...t),await(async()=>{if(!S){for(S=1;!a((t=C,p=t.shift()));)try{await p()}catch{}S=0}var t})(),T),getStore:()=>s,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(T)})(s,(async()=>{const t=await fetch(i);return u=r(t),c(await t.text())}))};export{i as createRemotePersister};
1
+ const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,o=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),r=JSON.parse,c=t=>new Map(t),i=(t,a)=>t?.get(a),y=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},d=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||y(t,a,e()),i(t,a)},u=c(),h=c(),w=t=>t.headers.get("ETag"),l=(s,c,l,v,p)=>{let f;return((t,e,s,r,c,w,l=[])=>{let v,p,f,g=0,A=0;d(u,l,(()=>0)),d(h,l,(()=>[]));const S=async t=>(2!=g&&(g=1,await C.schedule((async()=>{await t(),g=0}))),C),C={load:async(a,s)=>await S((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(C.stopAutoLoad(),await C.load(a,s),A=1,f=r((async(a,s)=>{if(s){const a=s();await S((async()=>t.setTransactionChanges(a)))}else await S((async()=>{try{t.setContent(a?.()??await e())}catch(t){w?.(t)}}))})),C),stopAutoLoad:()=>(A&&(c(f),f=void 0,A=0),C),save:async a=>(1!=g&&(g=2,await C.schedule((async()=>{try{await s(t.getContent,a)}catch(t){w?.(t)}g=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();o(e)&&o(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>{var e,s;return e=v,s=t.delListener,a(e)||s(e),C},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(i(h,l),...t),await(async()=>{if(!i(u,l)){for(y(u,l,1);!a((t=i(h,l),p=t.shift()));)try{await p()}catch(t){w?.(t)}y(u,l,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(C)})(s,(async()=>{const t=await fetch(c);return f=w(t),r(await t.text())}),(async a=>{return await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:(s=a(),JSON.stringify(s,((a,s)=>t(s,Map)?e.fromEntries([...s]):s)))});var s}),(t=>setInterval((async()=>{const e=await fetch(c,{method:"HEAD"}),s=w(e);a(f)||a(s)||s==f||(f=s,t())}),1e3*v)),(t=>clearInterval(t)),p)};export{l as createRemotePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,T=async a=>E.all(a),m=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,f=h.freeze,O=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),b=a=>c(R(a)),D=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),I=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e,s=F)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",B="_id",H=a=>`"${a.replace(/"/g,'""')}"`,W="FROM pragma_table_",x="WHERE",q=(a,t)=>{const s=g();return[async()=>$(s,O(await T(o(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,O(o(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,$((o=g,m(n=s,i=t)||F(n,i,o()),_(n,i)),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(s,t))),async(t,e)=>((a,t)=>!d(_(_(s,a),t)))(t,e)?O(l(o(await a("SELECT*FROM"+H(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,c,w,E,u=!1)=>{const p=P();C(c??{},(a=>o(R(a??{}),(a=>j(p,a)))));const v=A(p);if(!u&&E&&r(v)&&m(s,t))return await a("DROP TABLE"+H(t)),void F(s,t);if(r(v)||m(s,t)){const e=_(s,t),i=P(I(e));await T([...o(v,(async s=>{L(i,s)||(await a(`ALTER TABLE${H(t)}ADD${H(s)}`),F(e,s,""))})),...!u&&w?o(A(i),(async s=>{s!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(v,(a=>e+H(a))))});`),F(s,t,g([[n,""],...o(v,(a=>[a,""]))]));if(u)d(c)?await a("DELETE FROM"+H(t)+"WHERE 1"):await T(C(c,(async(e,s)=>{d(e)?await a("DELETE FROM"+H(t)+x+H(n)+"=?",[s]):r(v)||await J(a,t,n,R(e),[s,...S(e)])})));else if(r(v))m(s,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const e=l(I(_(s,t)),(a=>a!=n)),i=[],r=[];C(c??{},((a,t)=>{y(i,t,...o(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+H(t)+x+H(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+H(t)+"("+H(s)+i(o(r,(a=>e+H(a))))+")VALUES"+n(`,(?${n(",?",c(r))})`,c(l)/(c(r)+1)).substring(1)+"ON CONFLICT("+H(s)+")DO UPDATE SET"+i(o(r,(a=>H(a)+"=excluded."+H(a))),e),l),U=a=>i(o(a,(()=>"?")),e),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(c),c=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(p(i,a.delListener),v),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,o=a.shift()));)try{await o()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=Y(a,(async()=>(await o(),V((await c(n,B))[k]?.[z]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[k]:{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],w)=>{const[y,E,u]=q(t,w),p=async(a,t)=>await T(M(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),v=async(a,t)=>c?await u(r,B,{[k]:a},!0,!0,t):null;return Y(a,(async()=>{await y();const a=await(async()=>O(l(await T(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await E(r,B))[k]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await p(t),await v(e)}else{const[a,e]=t();await p(a,!0),await v(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=g();return C(a,((a,i)=>{const o=w(S(N(t,v(a)?{[e]:a}:a)),0,b(t));d(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,e,s,n,i,o)=>{let c,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,v(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,c=w(S(N(sa,o)),0,b(sa)),r=c[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:B},aa,(a=>j(l,a)&&a==r)),na(i,{[ta]:null,[Z]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>j(l,t)&&t==r)),c],l]})(e);return(l?K:G)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),E,A(u))},la=(a,t,e,s,n)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n);export{la as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,f=h.freeze,N=(a=[])=>h.fromEntries(a),O=(...a)=>h.assign({},...a),C=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),D=a=>o(R(a)),b=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==D(a),I=a=>new Map(a),g=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e)=>(v(a,t)||F(a,t,e()),_(a,t)),P=(a,t,e,s=F)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B=a=>new Set(Array.isArray(a)||d(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",H="_id",W=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",q="WHERE",J=(a,t,s)=>{const n=I();return[async()=>P(n,N(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>F(n,t,P($(n,t,I),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))))),((a,t)=>F(n,t))),async(t,e)=>((a,t)=>!d(_(_(n,a),t)))(t,e)?N(l(c(await a("SELECT*FROM"+W(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!b(t)))):{},async(t,s,o,w,E,u=!1)=>{const p=B();C(o??{},(a=>c(R(a??{}),(a=>j(p,a)))));const T=A(p);if(!u&&E&&r(T)&&v(n,t))return await a("DROP TABLE"+W(t)),void F(n,t);if(r(T)||v(n,t)){const e=_(n,t),i=B(g(e));await m([...c(T,(async s=>{L(i,s)||(await a(`ALTER TABLE${W(t)}ADD${W(s)}`),F(e,s,""))})),...!u&&w?c(A(i),(async n=>{n!=s&&(await a(`ALTER TABLE${W(t)}DROP${W(n)}`),F(e,n))})):[]])}else await a(`CREATE TABLE${W(t)}(${W(s)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+W(a))))});`),F(n,t,I([[s,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+W(t)+"WHERE 1"):await m(C(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+W(t)+q+W(s)+"=?",[n]):r(T)||await U(a,t,s,R(e),[n,...S(e)])})));else if(r(T))v(n,t)&&await a("DELETE FROM"+W(t)+"WHERE 1");else{const e=l(g(_(n,t)),(a=>a!=s)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await U(a,t,s,e,i),await a("DELETE FROM"+W(t)+q+W(s)+"NOT IN("+V(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},U=async(a,t,s,r,l)=>await a("INSERT INTO"+W(t)+"("+W(s)+i(c(r,(a=>e+W(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+W(s)+")DO UPDATE SET"+i(c(r,(a=>W(a)+"=excluded."+W(a))),e),l),V=a=>i(c(a,(()=>"?")),e),Y=JSON.parse,z=I(),G=I(),K=(a,t,e,s,n,i,c=[])=>{let o,r,l,w=0,E=0;$(z,c,(()=>0)),$(G,c,(()=>[]));const u=async a=>(2!=w&&(w=1,await T.schedule((async()=>{await a(),w=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),E=1,l=s((async(e,s)=>{if(s){const t=s();await u((async()=>a.setTransactionChanges(t)))}else await u((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(E&&(n(l),l=void 0,E=0),T),save:async t=>(1!=w&&(w=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}w=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(p(o,a.delListener),T),schedule:async(...a)=>(y(_(G,c),...a),await(async()=>{if(!_(z,c)){for(F(z,c,1);!d((a=_(G,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}F(z,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(T)},Q="store",X=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=J(t,c,n);return K(a,(async()=>await y((async()=>(await r(),Y((await l(i,H))[k]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,H,{[k]:{[Q]:(t=a()??null,JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},Z=(a,t,e,s,n,[i,c,[o,r,w]],y,E)=>{const[u,p,T,v]=J(t,y,n),A=async(a,t)=>await m(M(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),L=async(a,t)=>r?await T(w,H,{[k]:a},!0,!0,t):null;return K(a,(async()=>await v((async()=>{await u();const a=await(async()=>N(l(await m(M(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await p(w,H))[k]:{})();return b(a)&&d(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await u(),d(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,E)},aa="json",ta="autoLoadIntervalSeconds",ea="rowIdColumnName",sa="tableId",na="tableName",ia={mode:aa,[ta]:1},ca={load:0,save:0,[na]:t+"_values"},oa=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(O(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||F(n,i,c)})),n},ra="pragma ",la="data_version",wa="schema_version",ya=(a,e,s,n,i,c,o,r)=>{let l,y;const[E,u,d,p]=(a=>{const e=(a=>O(ia,T(a)?{storeTableName:a}:a??{}))(a),s=e[ta];if(e.mode==aa){const{storeTableName:a=t}=e;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(O(ca,c)),0,D(ca)),r=o[2],l=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:H},sa,(a=>j(l,a)&&a==r)),oa(i,{[na]:null,[ea]:H,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>j(l,t)&&t==r)),o],l]})(e);return(E?X:Z)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ra+la))[0][la],e=(await s(ra+wa))[0][wa];t==(l??=t)&&e==(y??=e)||(a(),l=t,y=e)}catch{}}),1e3*u),n((t=>p.has(t)?a():0))]),(([a,t])=>{clearInterval(a),l=y=null,i(t)}),o,d,A(p),r)},Ea=(a,t,e,s,n,i)=>ya(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{Ea as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,R=f.freeze,O=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),g=a=>o(h(a)),D=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==g(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",x="WHERE",J=(a,t)=>{const s=I();return[async()=>_(s,O(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+x+j(n)+"=?",[s]):r(T)||await U(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await U(a,t,n,e,i),await a("DELETE FROM"+j(t)+x+j(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=J(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=J(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>O(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,g(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,g(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la="change",wa=(a,t,e,s)=>ra(a,e,((a,e=[])=>new E(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)),s);export{wa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),w=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,N=f.freeze,R=(a=[])=>f.fromEntries(a),O=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),D=a=>o(h(a)),g=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==D(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e)=>(A(a,t)||$(a,t,e()),F(a,t)),P=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B=a=>new Set(Array.isArray(a)||d(a)?a:[a]),H=(a,t)=>a?.add(t),W="_",j="_id",k=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",J="WHERE",U=(a,t,s)=>{const n=I();return[async()=>P(n,R(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,R(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(n,t,P(_(n,t,I),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(n,t))),async(t,e)=>((a,t)=>!d(F(F(n,a),t)))(t,e)?R(w(c(await a("SELECT*FROM"+k(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!g(t)))):{},async(t,s,o,l,E,u=!1)=>{const v=B();C(o??{},(a=>c(h(a??{}),(a=>H(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(n,t))return await a("DROP TABLE"+k(t)),void $(n,t);if(r(T)||A(n,t)){const e=F(n,t),i=B(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${k(t)}ADD${k(s)}`),$(e,s,""))})),...!u&&l?c(L(i),(async n=>{n!=s&&(await a(`ALTER TABLE${k(t)}DROP${k(n)}`),$(e,n))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(s)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+k(a))))});`),$(n,t,I([[s,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+k(t)+"WHERE 1"):await m(C(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+k(t)+J+k(s)+"=?",[n]):r(T)||await Y(a,t,s,h(e),[n,...S(e)])})));else if(r(T))A(n,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const e=w(b(F(n,t)),(a=>a!=s)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await Y(a,t,s,e,i),await a("DELETE FROM"+k(t)+J+k(s)+"NOT IN("+z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,r,w)=>await a("INSERT INTO"+k(t)+"("+k(s)+i(c(r,(a=>e+k(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(w)/(o(r)+1)).substring(1)+"ON CONFLICT("+k(s)+")DO UPDATE SET"+i(c(r,(a=>k(a)+"=excluded."+k(a))),e),w),z=a=>i(c(a,(()=>"?")),e),G=JSON.parse,K=I(),V=I(),q=(a,t,e,s,n,i,c=[])=>{let o,r,w,l=0,E=0;_(K,c,(()=>0)),_(V,c,(()=>[]));const u=async a=>(2!=l&&(l=1,await T.schedule((async()=>{await a(),l=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),E=1,w=s((async(e,s)=>{if(s){const t=s();await u((async()=>a.setTransactionChanges(t)))}else await u((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(E&&(n(w),w=void 0,E=0),T),save:async t=>(1!=l&&(l=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}l=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(o,a.delListener),T),schedule:async(...a)=>(y(F(V,c),...a),await(async()=>{if(!F(K,c)){for($(K,c,1);!d((a=F(V,c),r=a.shift()));)try{await r()}catch(a){i?.(a)}$(K,c,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(T)},Q="store",X=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=U(t,c,n);return q(a,(async()=>await y((async()=>(await r(),G((await w(i,j))[W]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,j,{[W]:{[Q]:(t=a()??null,JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,o)},Z=(a,t,e,s,n,[i,c,[o,r,l]],y,E)=>{const[u,v,T,A]=U(t,y,n),L=async(a,t)=>await m(M(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),p=async(a,t)=>r?await T(l,j,{[W]:a},!0,!0,t):null;return q(a,(async()=>await A((async()=>{await u();const a=await(async()=>R(w(await m(M(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await v(l,j))[W]:{})();return g(a)&&d(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await u(),d(t)){const[t,e]=a();await L(t),await p(e)}else{const[a,e]=t();await L(a,!0),await p(e,!0)}}))),e,s,n,E)},aa="json",ta="autoLoadIntervalSeconds",ea="rowIdColumnName",sa="tableId",na="tableName",ia={mode:aa,[ta]:1},ca={load:0,save:0,[na]:t+"_values"},oa=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=l(S(O(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ra="pragma ",wa="data_version",la="schema_version",ya=(a,e,s,n,i,c,o,r)=>{let w,y;const[E,u,d,v]=(a=>{const e=(a=>O(ia,T(a)?{storeTableName:a}:a??{}))(a),s=e[ta];if(e.mode==aa){const{storeTableName:a=t}=e;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(S(O(ca,c)),0,D(ca)),r=o[2],w=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:j},sa,(a=>H(w,a)&&a==r)),oa(i,{[na]:null,[ea]:j,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>H(w,t)&&t==r)),o],w]})(e);return(E?X:Z)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ra+wa))[0][wa],e=(await s(ra+la))[0][la];t==(w??=t)&&e==(y??=e)||(a(),w=t,y=e)}catch{}}),1e3*u),n((t=>v.has(t)?a():0))]),(([a,t])=>{clearInterval(a),w=y=null,i(t)}),o,d,L(v),r)},Ea="change",ua=(a,t,e,s,n)=>ya(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a})))))),new E(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(Ea,e),e}),(a=>t.off(Ea,a)),s,n,t);export{ua as createSqlite3Persister};
@@ -1 +1 @@
1
- import{Map as t}from"yjs";const e=t=>t.length,a=t=>t.shift(),s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=Object,c=o.keys,r=o.freeze,i=(t=[])=>o.fromEntries(t),l=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),u=(t,e)=>((t,e)=>t.map(e))(o.entries(t),(([t,a])=>e(a,t))),d=t=>(t=>t instanceof o&&t.constructor==o)(t)&&0==(t=>e(c(t)))(t),g=(t,e,a)=>(l(t,e)||(t[e]=a()),t[e]),y=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),v="t",h="delete",p=t=>[t.get(v),t.get("v")],w=(e,a,n,o)=>{const c=s(a)?e:e.get(a)??e.set(a,new t);let r;return u(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{l(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r},f=(o,c,l="tinybase")=>{const f=c.getMap(l);return((o,l,S,A,O)=>{let J,L,N,C=0,b=0,m=0;const z=[],E=async t=>(2!=C&&(C=1,await D.schedule((async()=>{await t(),C=0}))),D),D={load:async(t,e)=>await E((async()=>{try{o.setContent(await l())}catch{o.setContent([t,e])}})),startAutoLoad:async(t={},s={})=>(D.stopAutoLoad(),await D.load(t,s),m=1,N=(t=>{const s=s=>t(void 0,(()=>((t,s)=>{if(1==e(s)&&(o=s[0].path,0==e(o)))return[t.get("t").toJSON(),t.get("v").toJSON()];var o;const[c,r]=p(t),l={},u={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>a(t)==v?n(a(t),(s=>{const o=g(l,s,i),r=c.get(s);n(a(t),(t=>{const a=g(o,t,i),s=r.get(t);y(e,((t,{action:e})=>a[t]=e==h?null:s.get(t)))}),(()=>y(e,((t,{action:e})=>o[t]=e==h?null:r.get(t)?.toJSON()))))}),(()=>y(e,((t,{action:e})=>l[t]=e==h?null:c.get(t)?.toJSON())))):y(e,((t,{action:e})=>u[t]=e==h?null:r.get(t)))))})(s),[l,u]})(f,s)));return f.observeDeep(s),s})((async(t,e)=>await E((async()=>{if(e)o.setTransactionChanges(e());else try{o.setContent(t?.()??await l())}catch{}})))),D),stopAutoLoad:()=>{return m&&(t=N,f.unobserveDeep(t),N=void 0,m=0),D;var t},save:async e=>(1!=C&&(C=2,await D.schedule((async()=>{try{await(async(e,a)=>c.transact((()=>((e,a,o)=>{(e=>{e.size||(e.set(v,new t),e.set("v",new t))})(e);const[c,r]=p(e),i=()=>{l=1};let l=1;if(n(o?.(),(([t,e])=>{l=0,u(t,((t,e)=>l?0:s(t)?c.delete(e):n(c.get(e),(e=>u(t,((t,a)=>l?0:s(t)?e.delete(a):n(e.get(a),(e=>u(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),i)))),i))),u(e,((t,e)=>l?0:s(t)?r.delete(e):r.set(e,t)))})),l){const[t,e]=a();w(c,void 0,t,((t,e,a)=>w(c,e,a,((t,e,a)=>w(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),w(r,void 0,e,((t,e,a)=>{r.get(e)!==a&&r.set(e,a)}))}})(f,e,a))))(o.getContent,e)}catch{}C=0}))),D),startAutoSave:async()=>(await D.stopAutoSave().save(),J=o.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();d(a)&&d(s)||D.save((()=>[a,s]))})),D),stopAutoSave:()=>(n(J,o.delListener),D),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(z,...t),await(async()=>{if(!b){for(b=1;!s(L=a(z));)try{await L()}catch{}b=0}})(),D),getStore:()=>o,destroy:()=>D.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(D)})(o,(async()=>f.size?[f.get(v).toJSON(),f.get("v").toJSON()]:void 0))};export{f as createYjsPersister};
1
+ import{Map as t}from"yjs";const e=t=>t.length,a=t=>t.shift(),s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=Object,c=o.keys,r=o.freeze,i=(t=[])=>o.fromEntries(t),l=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),u=(t,e)=>((t,e)=>t.map(e))(o.entries(t),(([t,a])=>e(a,t))),d=t=>(t=>t instanceof o&&t.constructor==o)(t)&&0==(t=>e(c(t)))(t),g=(t,e,a)=>(l(t,e)||(t[e]=a()),t[e]),y=t=>new Map(t),v=(t,e)=>t?.get(e),h=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),p=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},w=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||p(t,e,a()),v(t,e)},f=y(),S=y(),A="t",O="delete",J=t=>[t.get(A),t.get("v")],L=(e,a,n,o)=>{const c=s(a)?e:e.get(a)??e.set(a,new t);let r;return u(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{l(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r},N=(o,c,l="tinybase",y)=>{const N=c.getMap(l);return((t,e,o,c,i,l,u=[])=>{let g,y,h,A=0,O=0;w(f,u,(()=>0)),w(S,u,(()=>[]));const J=async t=>(2!=A&&(A=1,await L.schedule((async()=>{await t(),A=0}))),L),L={load:async(a,s)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(L.stopAutoLoad(),await L.load(a,s),O=1,h=c((async(a,s)=>{if(s){const e=s();await J((async()=>t.setTransactionChanges(e)))}else await J((async()=>{try{t.setContent(a?.()??await e())}catch(t){l?.(t)}}))})),L),stopAutoLoad:()=>(O&&(i(h),h=void 0,O=0),L),save:async e=>(1!=A&&(A=2,await L.schedule((async()=>{try{await o(t.getContent,e)}catch(t){l?.(t)}A=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();d(a)&&d(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(n(g,t.delListener),L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(v(S,u),...t),await(async()=>{if(!v(f,u)){for(p(f,u,1);!s(y=a(v(S,u)));)try{await y()}catch(t){l?.(t)}p(f,u,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(L)})(o,(async()=>N.size?[N.get(A).toJSON(),N.get("v").toJSON()]:void 0),(async(e,a)=>c.transact((()=>((e,a,o)=>{(e=>{e.size||(e.set(A,new t),e.set("v",new t))})(e);const[c,r]=J(e),i=()=>{l=1};let l=1;if(n(o?.(),(([t,e])=>{l=0,u(t,((t,e)=>l?0:s(t)?c.delete(e):n(c.get(e),(e=>u(t,((t,a)=>l?0:s(t)?e.delete(a):n(e.get(a),(e=>u(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),i)))),i))),u(e,((t,e)=>l?0:s(t)?r.delete(e):r.set(e,t)))})),l){const[t,e]=a();L(c,void 0,t,((t,e,a)=>L(c,e,a,((t,e,a)=>L(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),L(r,void 0,e,((t,e,a)=>{r.get(e)!==a&&r.set(e,a)}))}})(N,e,a)))),(t=>{const s=s=>t(void 0,(()=>((t,s)=>{if(1==e(s)&&(o=s[0].path,0==e(o)))return[t.get("t").toJSON(),t.get("v").toJSON()];var o;const[c,r]=J(t),l={},u={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>a(t)==A?n(a(t),(s=>{const o=g(l,s,i),r=c.get(s);n(a(t),(t=>{const a=g(o,t,i),s=r.get(t);h(e,((t,{action:e})=>a[t]=e==O?null:s.get(t)))}),(()=>h(e,((t,{action:e})=>o[t]=e==O?null:r.get(t)?.toJSON()))))}),(()=>h(e,((t,{action:e})=>l[t]=e==O?null:c.get(t)?.toJSON())))):h(e,((t,{action:e})=>u[t]=e==O?null:r.get(t)))))})(s),[l,u]})(N,s)));return N.observeDeep(s),s}),(t=>{N.unobserveDeep(t)}),y)};export{N as createYjsPersister};
Binary file
package/lib/persisters.js CHANGED
@@ -1 +1 @@
1
- const t=t=>null==t,a=Object,s=a.keys,e=a.freeze,n=t=>(t=>t instanceof a&&t.constructor==a)(t)&&0==(t=>s(t).length)(t),o=(a,s,o,c,i)=>{let r,y,u,d=0,h=0,w=0;const l=[],v=async t=>(2!=d&&(d=1,await p.schedule((async()=>{await t(),d=0}))),p),p={load:async(t,e)=>await v((async()=>{try{a.setContent(await s())}catch{a.setContent([t,e])}})),startAutoLoad:async(t={},e={})=>(p.stopAutoLoad(),await p.load(t,e),w=1,u=c((async(t,e)=>await v((async()=>{if(e)a.setTransactionChanges(e());else try{a.setContent(t?.()??await s())}catch{}})))),p),stopAutoLoad:()=>(w&&(i(u),u=void 0,w=0),p),save:async t=>(1!=d&&(d=2,await p.schedule((async()=>{try{await o(a.getContent,t)}catch{}d=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((t,a)=>{const[s,e]=a();n(s)&&n(e)||p.save((()=>[s,e]))})),p),stopAutoSave:()=>{var s,e;return s=r,e=a.delListener,t(s)||e(s),p},schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(l,...a),await(async()=>{if(!h){for(h=1;!t((a=l,y=a.shift()));)try{await y()}catch{}h=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return e(p)};export{o as createCustomPersister};
1
+ const t=t=>null==t,a=Object,e=a.keys,s=a.freeze,n=t=>(t=>t instanceof a&&t.constructor==a)(t)&&0==(t=>e(t).length)(t),o=t=>new Map(t),c=(t,a)=>t?.get(a),r=(a,e,s)=>{return t(s)?(n=a,o=e,n?.delete(o),a):a?.set(e,s);var n,o},i=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||r(t,a,e()),c(t,a)},y=o(),u=o(),d=(a,e,o,d,w,h,l=[])=>{let v,p,A,f=0,g=0;i(y,l,(()=>0)),i(u,l,(()=>[]));const L=async t=>(2!=f&&(f=1,await S.schedule((async()=>{await t(),f=0}))),S),S={load:async(t,s)=>await L((async()=>{try{a.setContent(await e())}catch{a.setContent([t,s])}})),startAutoLoad:async(t={},s={})=>(S.stopAutoLoad(),await S.load(t,s),g=1,A=d((async(t,s)=>{if(s){const t=s();await L((async()=>a.setTransactionChanges(t)))}else await L((async()=>{try{a.setContent(t?.()??await e())}catch(t){h?.(t)}}))})),S),stopAutoLoad:()=>(g&&(w(A),A=void 0,g=0),S),save:async t=>(1!=f&&(f=2,await S.schedule((async()=>{try{await o(a.getContent,t)}catch(t){h?.(t)}f=0}))),S),startAutoSave:async()=>(await S.stopAutoSave().save(),v=a.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();n(e)&&n(s)||S.save((()=>[e,s]))})),S),stopAutoSave:()=>{var e,s;return e=v,s=a.delListener,t(e)||s(e),S},schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(c(u,l),...a),await(async()=>{if(!c(y,l)){for(r(y,l,1);!t((a=c(u,l),p=a.shift()));)try{await p()}catch(t){h?.(t)}r(y,l,0)}var a})(),S),getStore:()=>a,destroy:()=>S.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(S)};export{d as createCustomPersister};
Binary file
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",y=T+u,C=e=>t+e,p=Math.max,b=Math.min,V=isFinite,m=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,s)=>E(e)?s?.():t(e),M=e=>e==s||e==n,D=t=>e(t)==o,J=e=>Array.isArray(e),A=()=>{},x=(e,t)=>e.includes(t),F=(e,t)=>e.every(t),Q=(e,t)=>W(e)===W(t)&&F(e,((e,s)=>t[s]===e)),z=(e,t)=>F(e,((s,n)=>0==n||t(e[n-1],s)<=0)),N=(e,t)=>e.sort(t),O=(e,t)=>e.forEach(t),j=(e,t)=>e.map(t),P=e=>$(e,((e,t)=>e+t),0),W=e=>e.length,B=e=>0==W(e),$=(e,t,s)=>e.reduce(t,s),q=(e,t,s)=>e.slice(t,s),G=(e,...t)=>e.push(...t),H=e=>e.pop(),K=e=>e.shift(),U=Object,X=U.keys,Y=U.isFrozen,Z=U.freeze,_=e=>m(e,U)&&e.constructor==U,ee=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),se=(e,t)=>j(U.entries(e),(([e,s])=>t(s,e))),ne=e=>_(e)&&0==(e=>W(X(e)))(e),ae=e=>e.size,oe=(e,t)=>e?.has(t)??!1,re=e=>E(e)||0==ae(e),le=e=>[...e?.values()??[]],ie=e=>e.clear(),ce=(e,t)=>e?.forEach(t),de=(e,t)=>e?.delete(t),ue=e=>new Map(e),he=e=>[...e?.keys()??[]],ge=(e,t)=>e?.get(t),fe=(e,t)=>ce(e,((e,s)=>t(s,e))),Le=(e,t,s)=>E(s)?(de(e,t),e):e?.set(t,s),we=(e,t,s)=>(oe(e,t)||Le(e,t,s()),ge(e,t)),ve=(e,t,s,n=Le)=>(se(t,((t,n)=>s(e,n,t))),fe(e,(s=>ee(t,s)?0:n(e,s))),e),Se=(e,t,s)=>{const n={};return ce(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Re=(e,t,s)=>Se(e,(e=>Se(e,t,s)),ne),Te=(e,t,s)=>Se(e,(e=>Re(e,t,s)),ne),Ie=(e,t)=>{const s=ue();return ce(e,((e,n)=>s.set(n,t?.(e)??e))),s},ye=e=>Ie(e,Ie),Ce=e=>Ie(e,ye),pe=(e,t,s,n,a=0)=>k((s?we:ge)(e,t[a],a>W(t)-2?s:ue),(o=>{if(a>W(t)-2)return n?.(o)&&Le(e,t[a]),o;const r=pe(o,t,s,n,a+1);return re(o)&&Le(e,t[a]),r})),be=t=>{const s=e(t);return M(s)||s==a&&V(t)?s:void 0},Ve=(e,t,s,n,a)=>E(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),me=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),Ee=e=>new Set(J(e)||E(e)?e:[e]),ke=(e,t)=>e?.add(t),Me=(e,t,s)=>{const n=e.hasRow,a=ue(),o=ue(),r=ue(),l=ue(),i=ue(),c=(t,s,...n)=>{const a=we(i,t,Ee);return O(n,(t=>ke(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>k(ge(i,t),(n=>{O(B(s)?le(n):s,(t=>{e.delListener(t),de(n,t)})),re(n)&&Le(i,t)})),u=(e,s)=>{Le(a,e,s),oe(o,e)||(Le(o,e,t()),Le(r,e,ue()),Le(l,e,ue()))},h=e=>{Le(a,e),Le(o,e),Le(r,e),Le(l,e),d(e)};return[()=>e,()=>he(a),e=>fe(o,e),e=>oe(o,e),e=>ge(a,e),e=>ge(o,e),(e,t)=>Le(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ue(),f=ue(),L=ge(r,t),w=ge(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=ge(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||J(r)&&J(l)&&Q(r,l)||Le(g,t,[r,l]),!E(h)){const e=ge(w,t),s=n(a,t)?h(o,t):void 0;e!=s&&Le(f,t,s)}},S=e=>{o((()=>{ce(g,(([,e],t)=>Le(L,t,e))),ce(f,((e,t)=>Le(w,t,e)))}),g,f,L,w,e),ie(g),ie(f)};fe(L,v),e.hasTable(a)&&O(e.getRowIds(a),(e=>{oe(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,()=>fe(i,h),c,d]},De=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Je=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Ae=/^\d+$/,xe=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Ae.test(t)&&W(e)<1e3&&G(e,t)}]},Fe=e=>{let s;const[n,a]=xe(),o=ue();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Le(o,d,[a,r,l,i,c]),ke(pe(r,l??[t],Ee),d),d},(e,n,...a)=>O(((e,s=[t])=>{const n=[],a=(e,t)=>t==W(s)?G(n,e):null===s[t]?ce(e,(e=>a(e,t+1))):O([s[t],null],(s=>a(ge(e,s),t+1)));return a(e,0),n})(e,n),(e=>ce(e,(e=>ge(o,e)[0](s,...n??[],...a))))),e=>k(ge(o,e),(([,s,n])=>(pe(s,n??[t],void 0,(t=>(de(t,e),re(t)?1:0))),Le(o,e),a(e),n))),e=>k(ge(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=W(r);l==W(t)?e(s,...r,...a(r)):E(t[l])?O(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Qe=Je((e=>{let s,n,a,o=100,r=ue(),l=ue(),i=1;const c=ue(),d=ue(),[u,h,g]=Fe((()=>Q)),f=ue(),L=ue(),w=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=ge(f,s);ce(n,((s,n)=>ce(s,((s,a)=>ce(s,((s,o)=>Ve(e,n,a,o,s[t]))))))),ce(a,((s,n)=>me(e,n,s[t])))})),i=1},R=e=>{Le(f,e),Le(L,e),h(d,[e])},T=(e,t)=>O(((e,t)=>e.splice(0,t))(e,t??W(e)),R),I=()=>T(w,W(w)-o),y=()=>k(s,(()=>{G(w,s),I(),T(v),s=void 0,a=1})),C=()=>{s=H(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=we(r,t,ue),l=we(e,s,ue),i=we(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&re(Le(l,n))&&re(Le(e,s))&&re(Le(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=we(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&re(Le(l,t))&&C(),D()}})),V=(e="")=>(E(s)&&(s=t+n++,Le(f,s,[r,l]),A(s,e),r=ue(),l=ue(),a=1),s),m=()=>{B(w)||(((e,...t)=>{e.unshift(...t)})(v,V()),S(0,s),s=H(w),a=1)},M=()=>{B(v)||(G(w,s),s=K(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(F(e)&&ge(L,e)!==t&&(Le(L,e,t),h(d,[e])),Q),F=e=>oe(f,e),Q={setSize:e=>(o=e,I(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...v]],forEachCheckpoint:e=>fe(L,e),hasCheckpoint:F,getCheckpoint:e=>ge(L,e),goBackward:()=>(m(),D(),Q),goForward:()=>(M(),D(),Q),goTo:e=>{const t=x(w,e)?m:x(v,e)?M:null;for(;!E(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(T(w),T(v),E(s)||R(s),s=void 0,n=0,J(),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return Z(Q.clear())})),ze=(e,t)=>e<t?-1:1,Ne=Je((e=>{const s=ue(),n=ue(),[a,o,r,l,i,c,d,,u,h,g]=Me(e,ue,(e=>E(e)?t:J(e)?j(e,C):C(e))),[f,L,w]=Fe((()=>S)),v=(t,s,n)=>{const a=i(t);ce(n,((t,n)=>s(n,(s=>ce(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=ze)=>{const i=E(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const w=Ee(),v=Ee(),S=c(e);if(ce(a,(([e,t],s)=>{const n=Ee(e),a=Ee(t);ce(n,(e=>de(a,e)?de(n,e):0)),ce(n,(e=>{ke(w,e),k(ge(S,e),(t=>{de(t,s),re(t)&&(Le(S,e),f=1)}))})),ce(a,(e=>{ke(w,e),oe(S,e)||(Le(S,e,Ee()),f=1),ke(ge(S,e),s),E(o)||ke(v,e)}))})),t(),re(h)||(g?fe(S,(e=>ke(v,e))):fe(r,(e=>k(ge(u,e),(e=>ke(v,e))))),ce(v,(e=>{const t=(t,s)=>l(ge(h,t),ge(h,s),e),s=[...ge(S,e)];z(s,t)||(Le(S,e,Ee(N(s,t))),ke(w,e))}))),(f||g)&&!E(i)){const t=[...S];z(t,i)||(d(e,ue(N(t,i))),f=1)}f&&L(s,[e]),ce(w,(t=>L(n,[e,t])))}),De(a),k(o,De)),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)=>oe(c(e),t),getTableId:i,getSliceIds:e=>he(c(e)),getSliceRowIds:(e,t)=>le(ge(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 Z(S)})),Oe=ue([["avg",[(e,t)=>P(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=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["sum",[e=>P(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),je=(e,t,s,n,a,o=!1)=>{if(re(s))return;const[r,l,i,c]=a;return o||=E(e),ce(n,(([s,n])=>{o||(e=E(s)?l?.(e,n,t++):E(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=E(e))})),o?r(le(s),ae(s)):e},Pe=Je((e=>{const s=ue(),[n,a,o,r,l,i,c,,d,u,h]=Me(e,A,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,L]=Fe((()=>w)),w={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=D(n)?[n,o,r,l]:ge(Oe,n)??ge(Oe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=ae(o);l||=E(d),t();let g=je(d,h,o,n,u,l);V(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),De(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 Z(w)})),We=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>(2!=i&&(i=1,await g.schedule((async()=>{await e(),i=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,l=n((async(s,n)=>await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}})))),g),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),g),save:async t=>(1!=i&&(i=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch{}i=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ne(s)&&ne(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(k(o,e.delListener),g),schedule:async(...e)=>(G(u,...e),await(async()=>{if(!c){for(c=1;!E(r=K(u));)try{await r()}catch{}c=0}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Z(g)},Be=Je((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Me(e,(()=>!0),A),y=s(),C=s(),p=ue(),b=(e,t,...s)=>O(s,(s=>ke(we(we(p,t,ue),e,Ee),s))),V=e=>{k(ge(p,e),(e=>{fe(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ie(e)})),O([C,y],(t=>t.delTable(e)))},m=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),V(s);const o=[],r=[[null,[n,null,null,[],ue()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=D(e)?[W(o)+t,e]:[E(s)?e:s,t=>t(e,s)];return G(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=E(s)||D(t)?null:t,a=E(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],ue()]];return G(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(l,D(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:ge(Oe,t)??[(e,t)=>t]]];return G(i,o),{as:e=>o[0]=e}},having:(e,t)=>G(c,D(e)?e:s=>s(e)===t)});const d=ue(o);if(re(d))return M;const h=ue(r);fe(h,((e,[,t])=>k(ge(h,t),(({3:t})=>E(e)?0:G(t,e)))));const g=ue(i);let f=y;if(re(g)&&B(c))f=C;else{m(s,f,C);const e=ue();fe(g,((t,[s,n])=>ke(we(e,s,Ee),[t,n])));const t=Ee();fe(d,(s=>oe(e,s)?0:ke(t,s)));const n=ue(),a=(t,n,a,o)=>k(t,(([r,l,i,d])=>{fe(n,((t,[s])=>{const n=we(r,t,ue),l=ge(n,a),i=o?void 0:s;if(l!==i){const s=Ee([[l,i]]),o=ae(n);Le(n,a,i),ce(ge(e,t),(([e,t])=>{const a=je(d[e],o,n,s,t);d[e]=E(be(a))?null:a}))}})),re(l)||!F(c,(e=>e((e=>d[e]))))?C.delRow(s,i):E(i)?t[2]=C.addRow(s,d):C.setRow(s,i,d)}));b(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ue(),h=f.hasRow(s,l);let g=!h;ce(t,(e=>{const[t,n,a]=i(s,l,e);G(c,n),G(d,a),g||=t})),fe(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&Le(u,e,[n])})),g&&a(pe(n,c,void 0,(([,e])=>(de(e,l),re(e)))),u,l,1),h&&a(pe(n,d,(()=>{const e={};return ce(t,(t=>e[t]=f.getCell(s,l,t))),[ue(),Ee(),void 0,e]}),(([,e])=>{ke(e,l)})),u,l)})))}m(s,e,f);const L=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);O(r,(n=>{const[a,,o,r,l]=ge(h,n),c=o?.(i,t),[d,u]=ge(l,t)??[];c!=d&&(E(u)||I(s,u),Le(l,t,E(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>L(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...E(a)?[n,t,s]:s===n?[n,t,a]:[ge(h,s)?.[0],ge(ge(h,s)?.[4],t)?.[0],a]);f.transaction((()=>F(l,(e=>e(a)))?fe(d,((e,n)=>Ve(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:w}=ge(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),ce(h,(({4:e})=>k(ge(e,o),(([,t])=>{I(s,t),Le(e,o)})))))}))))),M},delQueryDefinition:e=>(V(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(C.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=C.getListenerStats();return n}};return se({[h]:[1,1],[w]:[0,1],[v]:[0,5],[L]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{O(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>C[e+s](...t))),M[d+c+s+i]=(...e)=>C[d+s+i](...q(e,0,t),((s,...n)=>e[t](M,...n)))})),Z(M)})),$e=Je((e=>{const s=ue(),n=ue(),a=ue(),o=ue(),[r,l,i,c,d,u,,,h,g,f]=Me(e,(()=>[ue(),ue(),ue(),ue()]),(e=>E(e)?void 0:e+t)),[L,w,v]=Fe((()=>I)),S=(e,t,s)=>k(u(e),(([n,,a])=>{if(!oe(a,t)){const o=Ee();if(d(e)!=T(e))ke(o,t);else{let e=t;for(;!E(e)&&!oe(o,e);)ke(o,e),e=ge(n,e)}if(s)return o;Le(a,t,o)}return ge(a,t)})),R=(e,t)=>k(u(e),(([,,e])=>Le(e,t))),T=e=>ge(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(Le(s,e,r),h(e,t,((t,s)=>{const r=Ee(),l=Ee(),i=Ee(),[c,d]=u(e);ce(s,(([t,s],n)=>{E(t)||(ke(l,t),k(ge(d,t),(e=>{de(e,n),re(e)&&Le(d,t)}))),E(s)||(ke(l,s),oe(d,s)||Le(d,s,Ee()),ke(ge(d,s),n)),ke(r,n),Le(c,n,s),fe(ge(o,e),(t=>{oe(S(e,t),n)&&ke(i,t)}))})),t(),ce(r,(t=>w(n,[e,t]))),ce(l,(t=>w(a,[e,t]))),ce(i,(t=>{R(e,t),w(o,[e,t])}))}),De(l)),I),delRelationshipDefinition:e=>(Le(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)=>ge(u(e)?.[0],t),getLocalRowIds:(e,t)=>le(ge(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(u(e))?[t]:le(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 Z(I)})),qe=e=>[e,e],Ge=()=>[ue(),ue()],He=e=>[...e],Ke=([e,t])=>e===t,Ue=e=>JSON.stringify(e,((e,t)=>m(t,Map)?U.fromEntries([...t]):t)),Xe=JSON.parse,Ye=(e,t,s)=>E(e)||!_(e)||ne(e)||Y(e)?(s?.(),!1):(se(e,((s,n)=>{t(s,n)||te(e,n)})),!ne(e)),Ze=(e,t,s)=>Le(e,t,ge(e,t)==-s?void 0:s),_e=()=>{let e,t,s=!1,n=!1,o=0;const c=ue(),u=ue(),v=ue(),p=ue(),b=ue(),V=ue(),m=ue(),J=ue(),A=ue(),F=ue(),z=ue(),P=ue(),W=ue(),B=Ee(),$=ue(),H=ue(),K=ue(),U=ue(),X=Ge(),Y=Ge(),_=Ge(),ae=Ge(),le=Ge(),pe=Ge(),Me=Ge(),De=Ge(),Je=Ge(),Ae=Ge(),Qe=Ge(),Ne=Ge(),Oe=Ge(),je=Ge(),Pe=ue(),We=Ge(),[Be,$e,et,tt]=Fe((()=>fs)),st=e=>{if(!Ye(e,((e,t)=>x([r,l],t))))return!1;const t=e[r];return!(!M(t)&&t!=a||(be(e[l])!=t&&te(e,l),0))},nt=(t,s)=>(!e||oe(F,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)=>k(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?k(ge(ge(F,t),n),(e=>be(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):E(be(a))?At(t,s,n,a):a,rt=(e,t)=>Ye(t?e:ct(e),((t,s)=>k(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?k(ge(P,e),(t=>be(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):E(be(s))?xt(e,s):s,it=(e,t,s)=>(k(ge(z,t),(([n,a])=>{ce(n,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(a,(n=>{ee(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ce(W,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(B,(t=>{ee(e,t)||xt(t)}))),e),dt=e=>ve(F,e,((e,t,s)=>{const n=ue(),a=Ee();ve(we(F,t,ue),s,((e,t,s)=>{Le(e,t,s),k(s[l],(e=>Le(n,t,e)),(()=>ke(a,t)))})),Le(z,t,[n,a])}),((e,t)=>{Le(F,t),Le(z,t)})),ut=e=>ve(P,e,((e,t,s)=>{Le(P,t,s),k(s[l],(e=>Le(W,t,e)),(()=>ke(B,t)))}),((e,t)=>{Le(P,t),Le(W,t),de(B,t)})),ht=e=>ne(e)?os():es(e),gt=e=>ve(K,e,((e,t,s)=>ft(t,s)),((e,t)=>Ct(t))),ft=(e,t)=>ve(we(K,e,(()=>(mt(e,1),Le($,e,xe()),Le(H,e,ue()),ue()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>pt(e,t,s))),Lt=(e,t,s,n,a)=>ve(we(t,s,(()=>(Et(e,s,1),ue()))),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)=>{oe(s,n)||kt(e,t,n,1);const o=ge(s,n);a!==o&&(Mt(e,t,n,o,a),Le(s,n,a))},vt=(e,t,s,n,a)=>k(ge(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),St=e=>ne(e)?is():ts(e),Rt=e=>ve(U,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{oe(U,e)||Dt(e,1);const s=ge(U,e);t!==s&&(Jt(e,s,t),Le(U,e,t))},It=(e,t)=>{const[s]=ge($,e),n=s(t);return oe(ge(K,e),n)?It(e,t):n},yt=e=>ge(K,e)??ft(e,{}),Ct=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=ge($,e);n(s),Lt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=ge(ge(z,e)?.[0],a);if(!E(r)&&!o)return wt(e,s,n,a,r);const l=t=>{Mt(e,s,t,ge(n,t)),kt(e,s,t,-1),Le(n,t)};E(r)?l(a):fe(n,l),re(n)&&(Et(e,s,-1),re(Le(t,s))&&(mt(e,-1),Le(K,e),Le($,e),Le(H,e)))},Vt=e=>{const t=ge(W,e);if(!E(t))return Tt(e,t);Jt(e,ge(U,e)),Dt(e,-1),Le(U,e)},mt=(e,t)=>Ze(c,e,t),Et=(e,t,s)=>Ze(we(v,e,ue),t,s),kt=(e,t,s,n)=>{const a=ge(H,e),o=ge(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ze(we(u,e,ue),s,n),Le(a,s,o!=-n?o+n:null),Ze(we(we(p,e,ue),t,ue),s,n)},Mt=(e,t,s,n,a)=>we(we(we(b,e,ue),t,ue),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>Ze(V,e,t),Jt=(e,t,s)=>we(m,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(G(we(we(we(J,e,ue),t,ue),s,(()=>[])),n),a),xt=(e,t,s)=>(G(we(A,e,(()=>[])),t),s),Ft=(e,t,s)=>k(ge(ge(ge(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...qe(Xt(e,t,s))])),Qt=e=>k(ge(m,e),(([e,t])=>[!0,e,t]),(()=>[!1,...qe(_t(e))])),zt=e=>re(J)||re(Ae[e])?0:ce(e?Ce(J):J,((t,s)=>ce(t,((t,n)=>ce(t,((t,a)=>$e(Ae[e],[s,n,a],t))))))),Nt=e=>re(A)||re(Qe[e])?0:ce(e?Ie(A):A,((t,s)=>$e(Qe[e],[s],t))),Ot=(e,t,s)=>{if(!re(t))return $e(e,s,(()=>Se(t))),1},jt=e=>{const t=re(pe[e]),s=re(De[e])&&re(ae[e])&&re(le[e])&&t&&re(Y[e]),n=re(Je[e])&&re(Me[e])&&re(_[e])&&re(X[e]);if(!s||!n){const a=e?[Ie(c),ye(u),ye(v),Ce(p),Ce(b)]:[c,u,v,p,b];if(!s){Ot(Y[e],a[0]),ce(a[1],((t,s)=>Ot(ae[e],t,[s])));const s=Ee();ce(a[2],((n,a)=>{Ot(le[e],n,[a])&&!t&&($e(pe[e],[a,null]),ke(s,a))})),t||ce(a[4],((t,n)=>{if(!oe(s,n)){const s=Ee();ce(t,(e=>ce(e,(([t,n],a)=>n!==t?ke(s,a):de(e,a))))),ce(s,(t=>$e(pe[e],[n,t])))}})),ce(a[3],((t,s)=>ce(t,((t,n)=>Ot(De[e],t,[s,n])))))}if(!n){let t;ce(a[4],((s,n)=>{let a;ce(s,((s,o)=>{let r;ce(s,(([s,l],i)=>{l!==s&&($e(Je[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&$e(Me[e],[n,o],Ft)})),a&&$e(_[e],[n],Ft)})),t&&$e(X[e],void 0,Ft)}}},Pt=e=>{const t=re(Oe[e]),s=re(je[e])&&re(Ne[e]);if(!t||!s){const n=e?[Ie(V),Ie(m)]:[V,m];if(t||Ot(Oe[e],n[0]),!s){let t;ce(n[1],(([s,n],a)=>{n!==s&&($e(je[e],[a],n,s,Qt),t=1)})),t&&$e(Ne[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...j(t,C)))),fs),Bt=()=>[Se(b,((e,t)=>-1===ge(c,t)?null:Se(e,((e,s)=>-1===ge(ge(v,t),s)?null:Se(e,(([,e])=>e??null),((e,t)=>Ke(t)))),ne)),ne),Se(m,(([,e])=>e??null),((e,t)=>Ke(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(b,He,Ke),invalidCells:Te(J),changedValues:Se(m,He,Ke),invalidValues:Se(A),changedTableIds:Se(c),changedRowIds:Re(v),changedCellIds:Te(p),changedValueIds:Se(V)}),qt=()=>Te(K),Gt=()=>he(K),Ht=e=>he(ge(K,C(e))),Kt=(e,t,s,n=0,a)=>{return j(q(N((o=ge(K,C(e)),r=(e,s)=>[E(t)?s:ge(e,C(t)),s],j([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>ze(e,t)*(s?-1:1))),n,E(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>he(ge(ge(K,C(e)),C(t))),Xt=(e,t,s)=>ge(ge(ge(K,C(e)),C(t)),C(s)),Yt=()=>Se(U),Zt=()=>he(U),_t=e=>ge(U,C(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(Xe(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ye(t,(e=>Ye(e,st))))&&(dt(t),!re(K))){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=>oe(K,e)?Ct(e):0),e),ls=(e,t)=>Wt(((e,t)=>k(ge(K,e),(s=>oe(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&&$e(Pe,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!re(b),n=!re(m),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ce(b,((e,t)=>ce(e,((e,s)=>ce(e,(([e],n)=>Ve(fs,t,s,n,e))))))),ce(m,(([e],t)=>me(fs,t,e))),s=n=!1),$e(We[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),$e(We[1],void 0,Bt,$t),o=0,s=n=!1,O([c,u,v,p,b,J,V,m,A],ie))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Re(ge(K,C(e))),getTableCellIds:e=>he(ge(H,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Se(ge(ge(K,C(e)),C(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!re(K),hasTable:e=>oe(K,C(e)),hasTableCell:(e,t)=>oe(ge(H,C(e)),C(t)),hasRow:(e,t)=>oe(ge(K,C(e)),C(t)),hasCell:(e,t,s)=>oe(ge(ge(K,C(e)),C(t)),C(s)),hasValues:()=>!re(U),hasValue:e=>oe(U,C(e)),getTablesJson:()=>Ue(K),getValuesJson:()=>Ue(U),getJson:()=>Ue([K,U]),getTablesSchemaJson:()=>Ue(F),getValuesSchemaJson:()=>Ue(P),getSchemaJson:()=>Ue([F,P]),setContent:([e,t])=>Wt((()=>{(ne(e)?os:es)(e),(ne(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,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)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=yt(e);se(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>k(ot(e,t,s,D(n)?n(Xt(e,t,s)):n),(n=>vt(e,yt(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?se(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>k(lt(e,D(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{se(e[0],((e,t)=>E(e)?rs(t):se(e,((e,s)=>E(e)?ls(t,s):se(e,((e,n)=>Ve(fs,t,s,n,e))))))),se(e[1],((e,t)=>me(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(Xe(e))}catch{}return fs},setJson:e=>{try{const[t,s]=Xe(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)=>k(ge(K,e),(a=>k(ge(a,t),(o=>oe(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>oe(U,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ce(K,((t,s)=>e(s,(e=>ce(t,((t,s)=>e(s,(e=>fe(t,e))))))))),forEachTableCell:(e,t)=>fe(ge(H,C(e)),t),forEachRow:(e,t)=>ce(ge(K,C(e)),((e,s)=>t(s,(t=>fe(e,t))))),forEachCell:(e,t,s)=>fe(ge(ge(K,C(e)),C(t)),s),forEachValue:e=>fe(U,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return Be((()=>{const r=Kt(e,t,s,n,a);Q(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),pe[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,Pe),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:_e};return se({[g]:[0,X],[f]:[0,Y],[h]:[1,_,[Gt]],[h+R]:[1,ae,[Gt]],[w]:[1,le,[Gt]],[L]:[2,Me,[Gt,Ht]],[R]:[2,De,[Gt,Ht]],[S]:[3,Je,[Gt,Ht,Ut],e=>qe(Xt(...e))],InvalidCell:[3,Ae],[I]:[0,Ne],[y]:[0,Oe],[T]:[1,je,[Zt],e=>qe(_t(e[0]))],InvalidValue:[1,Qe]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>Be(a[e],t[a[e+1]?1:0],e>0?q(a,0,e):void 0,s,n)})),Z(fs)};export{Qe as createCheckpoints,We as createCustomPersister,Ne as createIndexes,Pe as createMetrics,Be as createQueries,$e as createRelationships,_e as createStore,ze 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,w="Row",L=w+u,v="Sorted"+w+u,S="Cell",R=S+u,T="Value",I=T+"s",y=T+u,C=e=>t+e,p=Math.max,b=Math.min,V=isFinite,m=(e,t)=>e instanceof t,E=e=>null==e,k=(e,t,s)=>E(e)?s?.():t(e),M=e=>e==s||e==n,D=t=>e(t)==o,J=e=>Array.isArray(e),A=()=>{},x=(e,t)=>e.includes(t),F=(e,t)=>e.every(t),Q=(e,t)=>W(e)===W(t)&&F(e,((e,s)=>t[s]===e)),z=(e,t)=>F(e,((s,n)=>0==n||t(e[n-1],s)<=0)),N=(e,t)=>e.sort(t),O=(e,t)=>e.forEach(t),j=(e,t)=>e.map(t),P=e=>$(e,((e,t)=>e+t),0),W=e=>e.length,B=e=>0==W(e),$=(e,t,s)=>e.reduce(t,s),q=(e,t,s)=>e.slice(t,s),G=(e,...t)=>e.push(...t),H=e=>e.pop(),K=e=>e.shift(),U=Object,X=U.keys,Y=U.isFrozen,Z=U.freeze,_=e=>m(e,U)&&e.constructor==U,ee=(e,t)=>!E(((e,t)=>k(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),se=(e,t)=>j(U.entries(e),(([e,s])=>t(s,e))),ne=e=>_(e)&&0==(e=>W(X(e)))(e),ae=e=>e.size,oe=(e,t)=>e?.has(t)??!1,re=e=>E(e)||0==ae(e),le=e=>[...e?.values()??[]],ie=e=>e.clear(),ce=(e,t)=>e?.forEach(t),de=(e,t)=>e?.delete(t),ue=e=>new Map(e),he=e=>[...e?.keys()??[]],ge=(e,t)=>e?.get(t),fe=(e,t)=>ce(e,((e,s)=>t(s,e))),we=(e,t,s)=>E(s)?(de(e,t),e):e?.set(t,s),Le=(e,t,s)=>(oe(e,t)||we(e,t,s()),ge(e,t)),ve=(e,t,s,n=we)=>(se(t,((t,n)=>s(e,n,t))),fe(e,(s=>ee(t,s)?0:n(e,s))),e),Se=(e,t,s)=>{const n={};return ce(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},Re=(e,t,s)=>Se(e,(e=>Se(e,t,s)),ne),Te=(e,t,s)=>Se(e,(e=>Re(e,t,s)),ne),Ie=(e,t)=>{const s=ue();return ce(e,((e,n)=>s.set(n,t?.(e)??e))),s},ye=e=>Ie(e,Ie),Ce=e=>Ie(e,ye),pe=(e,t,s,n,a=0)=>k((s?Le:ge)(e,t[a],a>W(t)-2?s:ue),(o=>{if(a>W(t)-2)return n?.(o)&&we(e,t[a]),o;const r=pe(o,t,s,n,a+1);return re(o)&&we(e,t[a]),r})),be=t=>{const s=e(t);return M(s)||s==a&&V(t)?s:void 0},Ve=(e,t,s,n,a)=>E(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),me=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),Ee=e=>new Set(J(e)||E(e)?e:[e]),ke=(e,t)=>e?.add(t),Me=(e,t,s)=>{const n=e.hasRow,a=ue(),o=ue(),r=ue(),l=ue(),i=ue(),c=(t,s,...n)=>{const a=Le(i,t,Ee);return O(n,(t=>ke(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>k(ge(i,t),(n=>{O(B(s)?le(n):s,(t=>{e.delListener(t),de(n,t)})),re(n)&&we(i,t)})),u=(e,s)=>{we(a,e,s),oe(o,e)||(we(o,e,t()),we(r,e,ue()),we(l,e,ue()))},h=e=>{we(a,e),we(o,e),we(r,e),we(l,e),d(e)};return[()=>e,()=>he(a),e=>fe(o,e),e=>oe(o,e),e=>ge(a,e),e=>ge(o,e),(e,t)=>we(o,e,t),u,(t,a,o,i,h)=>{u(t,a);const g=ue(),f=ue(),w=ge(r,t),L=ge(l,t),v=t=>{const o=s=>e.getCell(a,t,s),r=ge(w,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||J(r)&&J(l)&&Q(r,l)||we(g,t,[r,l]),!E(h)){const e=ge(L,t),s=n(a,t)?h(o,t):void 0;e!=s&&we(f,t,s)}},S=e=>{o((()=>{ce(g,(([,e],t)=>we(w,t,e))),ce(f,((e,t)=>we(L,t,e)))}),g,f,w,L,e),ie(g),ie(f)};fe(w,v),e.hasTable(a)&&O(e.getRowIds(a),(e=>{oe(w,e)||v(e)})),S(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>v(s))),e.addTableListener(a,(()=>S())))},h,()=>fe(i,h),c,d]},De=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),Je=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Ae=/^\d+$/,xe=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Ae.test(t)&&W(e)<1e3&&G(e,t)}]},Fe=e=>{let s;const[n,a]=xe(),o=ue();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),ke(pe(r,l??[t],Ee),d),d},(e,n,...a)=>O(((e,s=[t])=>{const n=[],a=(e,t)=>t==W(s)?G(n,e):null===s[t]?ce(e,(e=>a(e,t+1))):O([s[t],null],(s=>a(ge(e,s),t+1)));return a(e,0),n})(e,n),(e=>ce(e,(e=>ge(o,e)[0](s,...n??[],...a))))),e=>k(ge(o,e),(([,s,n])=>(pe(s,n??[t],void 0,(t=>(de(t,e),re(t)?1:0))),we(o,e),a(e),n))),e=>k(ge(o,e),(([e,,t=[],n,a])=>{const o=(...r)=>{const l=W(r);l==W(t)?e(s,...r,...a(r)):E(t[l])?O(n[l]?.(...r)??[],(e=>o(...r,e))):o(...r,t[l])};o()}))]},Qe=Je((e=>{let s,n,a,o=100,r=ue(),l=ue(),i=1;const c=ue(),d=ue(),[u,h,g]=Fe((()=>Q)),f=ue(),w=ue(),L=[],v=[],S=(t,s)=>{i=0,e.transaction((()=>{const[n,a]=ge(f,s);ce(n,((s,n)=>ce(s,((s,a)=>ce(s,((s,o)=>Ve(e,n,a,o,s[t]))))))),ce(a,((s,n)=>me(e,n,s[t])))})),i=1},R=e=>{we(f,e),we(w,e),h(d,[e])},T=(e,t)=>O(((e,t)=>e.splice(0,t))(e,t??W(e)),R),I=()=>T(L,W(L)-o),y=()=>k(s,(()=>{G(L,s),I(),T(v),s=void 0,a=1})),C=()=>{s=H(L),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){y();const e=Le(r,t,ue),l=Le(e,s,ue),i=Le(l,n,(()=>[o,void 0]));i[1]=a,i[0]===a&&re(we(l,n))&&re(we(e,s))&&re(we(r,t))&&C(),D()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){y();const e=Le(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&re(we(l,t))&&C(),D()}})),V=(e="")=>(E(s)&&(s=t+n++,we(f,s,[r,l]),A(s,e),r=ue(),l=ue(),a=1),s),m=()=>{B(L)||(((e,...t)=>{e.unshift(...t)})(v,V()),S(0,s),s=H(L),a=1)},M=()=>{B(v)||(G(L,s),s=K(v),S(1,s),a=1)},D=()=>{a&&(h(c),a=0)},J=e=>{const t=V(e);return D(),t},A=(e,t)=>(F(e)&&ge(w,e)!==t&&(we(w,e,t),h(d,[e])),Q),F=e=>oe(f,e),Q={setSize:e=>(o=e,I(),Q),addCheckpoint:J,setCheckpoint:A,getStore:()=>e,getCheckpointIds:()=>[[...L],s,[...v]],forEachCheckpoint:e=>fe(w,e),hasCheckpoint:F,getCheckpoint:e=>ge(w,e),goBackward:()=>(m(),D(),Q),goForward:()=>(M(),D(),Q),goTo:e=>{const t=x(L,e)?m:x(v,e)?M:null;for(;!E(t)&&e!=s;)t();return D(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(T(L),T(v),E(s)||R(s),s=void 0,n=0,J(),Q),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return Z(Q.clear())})),ze=(e,t)=>e<t?-1:1,Ne=Je((e=>{const s=ue(),n=ue(),[a,o,r,l,i,c,d,,u,h,g]=Me(e,ue,(e=>E(e)?t:J(e)?j(e,C):C(e))),[f,w,L]=Fe((()=>S)),v=(t,s,n)=>{const a=i(t);ce(n,((t,n)=>s(n,(s=>ce(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},S={setIndexDefinition:(e,t,a,o,r,l=ze)=>{const i=E(r)?void 0:([e],[t])=>r(e,t);return u(e,t,((t,a,r,u,h,g)=>{let f=0;const L=Ee(),v=Ee(),S=c(e);if(ce(a,(([e,t],s)=>{const n=Ee(e),a=Ee(t);ce(n,(e=>de(a,e)?de(n,e):0)),ce(n,(e=>{ke(L,e),k(ge(S,e),(t=>{de(t,s),re(t)&&(we(S,e),f=1)}))})),ce(a,(e=>{ke(L,e),oe(S,e)||(we(S,e,Ee()),f=1),ke(ge(S,e),s),E(o)||ke(v,e)}))})),t(),re(h)||(g?fe(S,(e=>ke(v,e))):fe(r,(e=>k(ge(u,e),(e=>ke(v,e))))),ce(v,(e=>{const t=(t,s)=>l(ge(h,t),ge(h,s),e),s=[...ge(S,e)];z(s,t)||(we(S,e,Ee(N(s,t))),ke(L,e))}))),(f||g)&&!E(i)){const t=[...S];z(t,i)||(d(e,ue(N(t,i))),f=1)}f&&w(s,[e]),ce(L,(t=>w(n,[e,t])))}),De(a),k(o,De)),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)=>oe(c(e),t),getTableId:i,getSliceIds:e=>he(c(e)),getSliceRowIds:(e,t)=>le(ge(c(e),t)),addSliceIdsListener:(e,t)=>f(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>f(s,n,[e,t]),delListener:e=>(L(e),S),destroy:g,getListenerStats:()=>({})};return Z(S)})),Oe=ue([["avg",[(e,t)=>P(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=>b(...e),(e,t)=>b(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:b(t,e)]],["sum",[e=>P(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),je=(e,t,s,n,a,o=!1)=>{if(re(s))return;const[r,l,i,c]=a;return o||=E(e),ce(n,(([s,n])=>{o||(e=E(s)?l?.(e,n,t++):E(n)?i?.(e,s,t--):c?.(e,n,s,t),o||=E(e))})),o?r(le(s),ae(s)):e},Pe=Je((e=>{const s=ue(),[n,a,o,r,l,i,c,,d,u,h]=Me(e,A,(e=>isNaN(e)||E(e)||!0===e||!1===e||e===t?void 0:1*e)),[g,f,w]=Fe((()=>L)),L={setMetricDefinition:(e,t,n,a,o,r,l)=>{const u=D(n)?[n,o,r,l]:ge(Oe,n)??ge(Oe,"sum");return d(e,t,((t,n,a,o,r,l)=>{const d=i(e),h=ae(o);l||=E(d),t();let g=je(d,h,o,n,u,l);V(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),De(a,1)),L},delMetricDefinition:e=>(u(e),L),getStore:n,getMetricIds:a,forEachMetric:o,hasMetric:r,getTableId:l,getMetric:i,addMetricListener:(e,t)=>g(t,s,[e]),delListener:e=>(w(e),L),destroy:h,getListenerStats:()=>({})};return Z(L)})),We=ue(),Be=ue(),$e=(e,t,s,n,a,o,r=[])=>{let l,i,c,d=0,u=0;Le(We,r,(()=>0)),Le(Be,r,(()=>[]));const h=async e=>(2!=d&&(d=1,await g.schedule((async()=>{await e(),d=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),u=1,c=n((async(s,n)=>{if(n){const t=n();await h((async()=>e.setTransactionChanges(t)))}else await h((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),g),stopAutoLoad:()=>(u&&(a(c),c=void 0,u=0),g),save:async t=>(1!=d&&(d=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}d=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),l=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ne(s)&&ne(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(k(l,e.delListener),g),schedule:async(...e)=>(G(ge(Be,r),...e),await(async()=>{if(!ge(We,r)){for(we(We,r,1);!E(i=K(ge(Be,r)));)try{await i()}catch(e){o?.(e)}we(We,r,0)}})(),g),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return Z(g)},qe=Je((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,T,I]=Me(e,(()=>!0),A),y=s(),C=s(),p=ue(),b=(e,t,...s)=>O(s,(s=>ke(Le(Le(p,t,ue),e,Ee),s))),V=e=>{k(ge(p,e),(e=>{fe(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ie(e)})),O([C,y],(t=>t.delTable(e)))},m=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),M={setQueryDefinition:(s,n,a)=>{u(s,n),V(s);const o=[],r=[[null,[n,null,null,[],ue()]]],l=[],i=[],c=[];a({select:(e,s)=>{const n=D(e)?[W(o)+t,e]:[E(s)?e:s,t=>t(e,s)];return G(o,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=E(s)||D(t)?null:t,a=E(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],ue()]];return G(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(l,D(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:ge(Oe,t)??[(e,t)=>t]]];return G(i,o),{as:e=>o[0]=e}},having:(e,t)=>G(c,D(e)?e:s=>s(e)===t)});const d=ue(o);if(re(d))return M;const h=ue(r);fe(h,((e,[,t])=>k(ge(h,t),(({3:t})=>E(e)?0:G(t,e)))));const g=ue(i);let f=y;if(re(g)&&B(c))f=C;else{m(s,f,C);const e=ue();fe(g,((t,[s,n])=>ke(Le(e,s,Ee),[t,n])));const t=Ee();fe(d,(s=>oe(e,s)?0:ke(t,s)));const n=ue(),a=(t,n,a,o)=>k(t,(([r,l,i,d])=>{fe(n,((t,[s])=>{const n=Le(r,t,ue),l=ge(n,a),i=o?void 0:s;if(l!==i){const s=Ee([[l,i]]),o=ae(n);we(n,a,i),ce(ge(e,t),(([e,t])=>{const a=je(d[e],o,n,s,t);d[e]=E(be(a))?null:a}))}})),re(l)||!F(c,(e=>e((e=>d[e]))))?C.delRow(s,i):E(i)?t[2]=C.addRow(s,d):C.setRow(s,i,d)}));b(f,s,f.addRowListener(s,null,((o,r,l,i)=>{const c=[],d=[],u=ue(),h=f.hasRow(s,l);let g=!h;ce(t,(e=>{const[t,n,a]=i(s,l,e);G(c,n),G(d,a),g||=t})),fe(e,(e=>{const[t,,n]=i(s,l,e);(g||t)&&we(u,e,[n])})),g&&a(pe(n,c,void 0,(([,e])=>(de(e,l),re(e)))),u,l,1),h&&a(pe(n,d,(()=>{const e={};return ce(t,(t=>e[t]=f.getCell(s,l,t))),[ue(),Ee(),void 0,e]}),(([,e])=>{ke(e,l)})),u,l)})))}m(s,e,f);const w=(t,a,o,r)=>{const i=t=>e.getCell(a,o,t);O(r,(n=>{const[a,,o,r,l]=ge(h,n),c=o?.(i,t),[d,u]=ge(l,t)??[];c!=d&&(E(u)||I(s,u),we(l,t,E(c)?null:[c,...T(s,1,e.addRowListener(a,c,(()=>w(t,a,c,r))))]))})),(t=>{const a=(s,a)=>e.getCell(...E(a)?[n,t,s]:s===n?[n,t,a]:[ge(h,s)?.[0],ge(ge(h,s)?.[4],t)?.[0],a]);f.transaction((()=>F(l,(e=>e(a)))?fe(d,((e,n)=>Ve(f,s,t,e,n(a,t)))):f.delRow(s,t)))})(t)},{3:L}=ge(h,null);return f.transaction((()=>T(s,1,e.addRowListener(n,null,((t,a,o)=>{e.hasRow(n,o)?w(o,n,o,L):(f.delRow(s,o),ce(h,(({4:e})=>k(ge(e,o),(([,t])=>{I(s,t),we(e,o)})))))}))))),M},delQueryDefinition:e=>(V(e),g(e),M),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(C.delListener(e),M),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=C.getListenerStats();return n}};return se({[h]:[1,1],[L]:[0,1],[v]:[0,5],[w]:[1,2],[R]:[0,2],[S]:[1,3]},(([e,t],s)=>{O(e?["get","has","forEach"]:["get"],(e=>M[e+c+s]=(...t)=>C[e+s](...t))),M[d+c+s+i]=(...e)=>C[d+s+i](...q(e,0,t),((s,...n)=>e[t](M,...n)))})),Z(M)})),Ge=Je((e=>{const s=ue(),n=ue(),a=ue(),o=ue(),[r,l,i,c,d,u,,,h,g,f]=Me(e,(()=>[ue(),ue(),ue(),ue()]),(e=>E(e)?void 0:e+t)),[w,L,v]=Fe((()=>I)),S=(e,t,s)=>k(u(e),(([n,,a])=>{if(!oe(a,t)){const o=Ee();if(d(e)!=T(e))ke(o,t);else{let e=t;for(;!E(e)&&!oe(o,e);)ke(o,e),e=ge(n,e)}if(s)return o;we(a,t,o)}return ge(a,t)})),R=(e,t)=>k(u(e),(([,,e])=>we(e,t))),T=e=>ge(s,e),I={setRelationshipDefinition:(e,t,r,l)=>(we(s,e,r),h(e,t,((t,s)=>{const r=Ee(),l=Ee(),i=Ee(),[c,d]=u(e);ce(s,(([t,s],n)=>{E(t)||(ke(l,t),k(ge(d,t),(e=>{de(e,n),re(e)&&we(d,t)}))),E(s)||(ke(l,s),oe(d,s)||we(d,s,Ee()),ke(ge(d,s),n)),ke(r,n),we(c,n,s),fe(ge(o,e),(t=>{oe(S(e,t),n)&&ke(i,t)}))})),t(),ce(r,(t=>L(n,[e,t]))),ce(l,(t=>L(a,[e,t]))),ce(i,(t=>{R(e,t),L(o,[e,t])}))}),De(l)),I),delRelationshipDefinition:e=>(we(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)=>ge(u(e)?.[0],t),getLocalRowIds:(e,t)=>le(ge(u(e)?.[1],t)),getLinkedRowIds:(e,t)=>E(u(e))?[t]:le(S(e,t,!0)),addRemoteRowIdListener:(e,t,s)=>w(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>w(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(S(e,t),w(s,o,[e,t])),delListener:e=>(R(...v(e)),I),destroy:f,getListenerStats:()=>({})};return Z(I)})),He=e=>[e,e],Ke=()=>[ue(),ue()],Ue=e=>[...e],Xe=([e,t])=>e===t,Ye=e=>JSON.stringify(e,((e,t)=>m(t,Map)?U.fromEntries([...t]):t)),Ze=JSON.parse,_e=(e,t,s)=>E(e)||!_(e)||ne(e)||Y(e)?(s?.(),!1):(se(e,((s,n)=>{t(s,n)||te(e,n)})),!ne(e)),et=(e,t,s)=>we(e,t,ge(e,t)==-s?void 0:s),tt=()=>{let e,t,s=!1,n=!1,o=0;const c=ue(),u=ue(),v=ue(),p=ue(),b=ue(),V=ue(),m=ue(),J=ue(),A=ue(),F=ue(),z=ue(),P=ue(),W=ue(),B=Ee(),$=ue(),H=ue(),K=ue(),U=ue(),X=Ke(),Y=Ke(),_=Ke(),ae=Ke(),le=Ke(),pe=Ke(),Me=Ke(),De=Ke(),Je=Ke(),Ae=Ke(),Qe=Ke(),Ne=Ke(),Oe=Ke(),je=Ke(),Pe=ue(),We=Ke(),[Be,$e,qe,Ge]=Fe((()=>fs)),st=e=>{if(!_e(e,((e,t)=>x([r,l],t))))return!1;const t=e[r];return!(!M(t)&&t!=a||(be(e[l])!=t&&te(e,l),0))},nt=(t,s)=>(!e||oe(F,s)||At(s))&&_e(t,((e,t)=>at(s,t,e)),(()=>At(s))),at=(e,t,s,n)=>_e(n?s:it(s,e,t),((n,a)=>k(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>At(e,t))),ot=(t,s,n,a)=>e?k(ge(ge(F,t),n),(e=>be(a)!=e[r]?At(t,s,n,a,e[l]):a),(()=>At(t,s,n,a))):E(be(a))?At(t,s,n,a):a,rt=(e,t)=>_e(t?e:ct(e),((t,s)=>k(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>xt())),lt=(e,s)=>t?k(ge(P,e),(t=>be(s)!=t[r]?xt(e,s,t[l]):s),(()=>xt(e,s))):E(be(s))?xt(e,s):s,it=(e,t,s)=>(k(ge(z,t),(([n,a])=>{ce(n,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(a,(n=>{ee(e,n)||At(t,s,n)}))})),e),ct=e=>(t&&(ce(W,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(B,(t=>{ee(e,t)||xt(t)}))),e),dt=e=>ve(F,e,((e,t,s)=>{const n=ue(),a=Ee();ve(Le(F,t,ue),s,((e,t,s)=>{we(e,t,s),k(s[l],(e=>we(n,t,e)),(()=>ke(a,t)))})),we(z,t,[n,a])}),((e,t)=>{we(F,t),we(z,t)})),ut=e=>ve(P,e,((e,t,s)=>{we(P,t,s),k(s[l],(e=>we(W,t,e)),(()=>ke(B,t)))}),((e,t)=>{we(P,t),we(W,t),de(B,t)})),ht=e=>ne(e)?os():es(e),gt=e=>ve(K,e,((e,t,s)=>ft(t,s)),((e,t)=>Ct(t))),ft=(e,t)=>ve(Le(K,e,(()=>(mt(e,1),we($,e,xe()),we(H,e,ue()),ue()))),t,((t,s,n)=>wt(e,t,s,n)),((t,s)=>pt(e,t,s))),wt=(e,t,s,n,a)=>ve(Le(t,s,(()=>(Et(e,s,1),ue()))),n,((t,n,a)=>Lt(e,s,t,n,a)),((n,o)=>bt(e,t,s,n,o,a))),Lt=(e,t,s,n,a)=>{oe(s,n)||kt(e,t,n,1);const o=ge(s,n);a!==o&&(Mt(e,t,n,o,a),we(s,n,a))},vt=(e,t,s,n,a)=>k(ge(t,s),(t=>Lt(e,s,t,n,a)),(()=>wt(e,t,s,it({[n]:a},e,s)))),St=e=>ne(e)?is():ts(e),Rt=e=>ve(U,e,((e,t,s)=>Tt(t,s)),((e,t)=>Vt(t))),Tt=(e,t)=>{oe(U,e)||Dt(e,1);const s=ge(U,e);t!==s&&(Jt(e,s,t),we(U,e,t))},It=(e,t)=>{const[s]=ge($,e),n=s(t);return oe(ge(K,e),n)?It(e,t):n},yt=e=>ge(K,e)??ft(e,{}),Ct=e=>ft(e,{}),pt=(e,t,s)=>{const[,n]=ge($,e);n(s),wt(e,t,s,{},!0)},bt=(e,t,s,n,a,o)=>{const r=ge(ge(z,e)?.[0],a);if(!E(r)&&!o)return Lt(e,s,n,a,r);const l=t=>{Mt(e,s,t,ge(n,t)),kt(e,s,t,-1),we(n,t)};E(r)?l(a):fe(n,l),re(n)&&(Et(e,s,-1),re(we(t,s))&&(mt(e,-1),we(K,e),we($,e),we(H,e)))},Vt=e=>{const t=ge(W,e);if(!E(t))return Tt(e,t);Jt(e,ge(U,e)),Dt(e,-1),we(U,e)},mt=(e,t)=>et(c,e,t),Et=(e,t,s)=>et(Le(v,e,ue),t,s),kt=(e,t,s,n)=>{const a=ge(H,e),o=ge(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&et(Le(u,e,ue),s,n),we(a,s,o!=-n?o+n:null),et(Le(Le(p,e,ue),t,ue),s,n)},Mt=(e,t,s,n,a)=>Le(Le(Le(b,e,ue),t,ue),s,(()=>[n,0]))[1]=a,Dt=(e,t)=>et(V,e,t),Jt=(e,t,s)=>Le(m,e,(()=>[t,0]))[1]=s,At=(e,t,s,n,a)=>(G(Le(Le(Le(J,e,ue),t,ue),s,(()=>[])),n),a),xt=(e,t,s)=>(G(Le(A,e,(()=>[])),t),s),Ft=(e,t,s)=>k(ge(ge(ge(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...He(Xt(e,t,s))])),Qt=e=>k(ge(m,e),(([e,t])=>[!0,e,t]),(()=>[!1,...He(_t(e))])),zt=e=>re(J)||re(Ae[e])?0:ce(e?Ce(J):J,((t,s)=>ce(t,((t,n)=>ce(t,((t,a)=>$e(Ae[e],[s,n,a],t))))))),Nt=e=>re(A)||re(Qe[e])?0:ce(e?Ie(A):A,((t,s)=>$e(Qe[e],[s],t))),Ot=(e,t,s)=>{if(!re(t))return $e(e,s,(()=>Se(t))),1},jt=e=>{const t=re(pe[e]),s=re(De[e])&&re(ae[e])&&re(le[e])&&t&&re(Y[e]),n=re(Je[e])&&re(Me[e])&&re(_[e])&&re(X[e]);if(!s||!n){const a=e?[Ie(c),ye(u),ye(v),Ce(p),Ce(b)]:[c,u,v,p,b];if(!s){Ot(Y[e],a[0]),ce(a[1],((t,s)=>Ot(ae[e],t,[s])));const s=Ee();ce(a[2],((n,a)=>{Ot(le[e],n,[a])&&!t&&($e(pe[e],[a,null]),ke(s,a))})),t||ce(a[4],((t,n)=>{if(!oe(s,n)){const s=Ee();ce(t,(e=>ce(e,(([t,n],a)=>n!==t?ke(s,a):de(e,a))))),ce(s,(t=>$e(pe[e],[n,t])))}})),ce(a[3],((t,s)=>ce(t,((t,n)=>Ot(De[e],t,[s,n])))))}if(!n){let t;ce(a[4],((s,n)=>{let a;ce(s,((s,o)=>{let r;ce(s,(([s,l],i)=>{l!==s&&($e(Je[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&$e(Me[e],[n,o],Ft)})),a&&$e(_[e],[n],Ft)})),t&&$e(X[e],void 0,Ft)}}},Pt=e=>{const t=re(Oe[e]),s=re(je[e])&&re(Ne[e]);if(!t||!s){const n=e?[Ie(V),Ie(m)]:[V,m];if(t||Ot(Oe[e],n[0]),!s){let t;ce(n[1],(([s,n],a)=>{n!==s&&($e(je[e],[a],n,s,Qt),t=1)})),t&&$e(Ne[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...j(t,C)))),fs),Bt=()=>[Se(b,((e,t)=>-1===ge(c,t)?null:Se(e,((e,s)=>-1===ge(ge(v,t),s)?null:Se(e,(([,e])=>e??null),((e,t)=>Xe(t)))),ne)),ne),Se(m,(([,e])=>e??null),((e,t)=>Xe(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Te(b,Ue,Xe),invalidCells:Te(J),changedValues:Se(m,Ue,Xe),invalidValues:Se(A),changedTableIds:Se(c),changedRowIds:Re(v),changedCellIds:Te(p),changedValueIds:Se(V)}),qt=()=>Te(K),Gt=()=>he(K),Ht=e=>he(ge(K,C(e))),Kt=(e,t,s,n=0,a)=>{return j(q(N((o=ge(K,C(e)),r=(e,s)=>[E(t)?s:ge(e,C(t)),s],j([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>ze(e,t)*(s?-1:1))),n,E(a)?a:n+a),(([,e])=>e));var o,r},Ut=(e,t)=>he(ge(ge(K,C(e)),C(t))),Xt=(e,t,s)=>ge(ge(ge(K,C(e)),C(t)),C(s)),Yt=()=>Se(U),Zt=()=>he(U),_t=e=>ge(U,C(e)),es=e=>Wt((()=>(e=>_e(e,nt,At))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(Ze(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=_e(t,(e=>_e(e,st))))&&(dt(t),!re(K))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>_e(e,st))(e)){const s=Yt();ds(),is(),t=!0,ut(e),ts(s)}})),os=()=>Wt((()=>gt({}))),rs=e=>Wt((e=>oe(K,e)?Ct(e):0),e),ls=(e,t)=>Wt(((e,t)=>k(ge(K,e),(s=>oe(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&&$e(Pe,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!re(b),n=!re(m),o=1,zt(1),s&&jt(1),Nt(1),n&&Pt(1),e?.(Bt,$t)&&(ce(b,((e,t)=>ce(e,((e,s)=>ce(e,(([e],n)=>Ve(fs,t,s,n,e))))))),ce(m,(([e],t)=>me(fs,t,e))),s=n=!1),$e(We[0],void 0,Bt,$t),o=-1,zt(0),s&&jt(0),Nt(0),n&&Pt(0),$e(We[1],void 0,Bt,$t),o=0,s=n=!1,O([c,u,v,p,b,J,V,m,A],ie))),fs),fs={getContent:()=>[qt(),Yt()],getTables:qt,getTableIds:Gt,getTable:e=>Re(ge(K,C(e))),getTableCellIds:e=>he(ge(H,C(e))),getRowIds:Ht,getSortedRowIds:Kt,getRow:(e,t)=>Se(ge(ge(K,C(e)),C(t))),getCellIds:Ut,getCell:Xt,getValues:Yt,getValueIds:Zt,getValue:_t,hasTables:()=>!re(K),hasTable:e=>oe(K,C(e)),hasTableCell:(e,t)=>oe(ge(H,C(e)),C(t)),hasRow:(e,t)=>oe(ge(K,C(e)),C(t)),hasCell:(e,t,s)=>oe(ge(ge(K,C(e)),C(t)),C(s)),hasValues:()=>!re(U),hasValue:e=>oe(U,C(e)),getTablesJson:()=>Ye(K),getValuesJson:()=>Ye(U),getJson:()=>Ye([K,U]),getTablesSchemaJson:()=>Ye(F),getValuesSchemaJson:()=>Ye(P),getSchemaJson:()=>Ye([F,P]),setContent:([e,t])=>Wt((()=>{(ne(e)?os:es)(e),(ne(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)?wt(e,yt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),wt(e,yt(e),n=It(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=yt(e);se(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>k(ot(e,t,s,D(n)?n(Xt(e,t,s)):n),(n=>vt(e,yt(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?se(e,((e,t)=>Tt(t,e))):0)),setValue:(e,t)=>Wt((e=>k(lt(e,D(t)?t(_t(e)):t),(t=>Tt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{se(e[0],((e,t)=>E(e)?rs(t):se(e,((e,s)=>E(e)?ls(t,s):se(e,((e,n)=>Ve(fs,t,s,n,e))))))),se(e[1],((e,t)=>me(fs,t,e)))})),setTablesJson:ss,setValuesJson:e=>{try{St(Ze(e))}catch{}return fs},setJson:e=>{try{const[t,s]=Ze(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)=>k(ge(K,e),(a=>k(ge(a,t),(o=>oe(o,s)?bt(e,a,t,o,s,n):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>oe(U,e)?Vt(e):0),e),delTablesSchema:cs,delValuesSchema:ds,delSchema:()=>Wt((()=>{cs(),ds()})),transaction:us,startTransaction:hs,finishTransaction:gs,forEachTable:e=>ce(K,((t,s)=>e(s,(e=>ce(t,((t,s)=>e(s,(e=>fe(t,e))))))))),forEachTableCell:(e,t)=>fe(ge(H,C(e)),t),forEachRow:(e,t)=>ce(ge(K,C(e)),((e,s)=>t(s,(t=>fe(e,t))))),forEachCell:(e,t,s)=>fe(ge(ge(K,C(e)),C(t)),s),forEachValue:e=>fe(U,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let l=Kt(e,t,s,n,a);return Be((()=>{const r=Kt(e,t,s,n,a);Q(r,l)||(l=r,o(fs,e,t,s,n,a,l))}),pe[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,Pe),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(Ge(e),fs),delListener:e=>(qe(e),fs),getListenerStats:()=>({}),createStore:tt};return se({[g]:[0,X],[f]:[0,Y],[h]:[1,_,[Gt]],[h+R]:[1,ae,[Gt]],[L]:[1,le,[Gt]],[w]:[2,Me,[Gt,Ht]],[R]:[2,De,[Gt,Ht]],[S]:[3,Je,[Gt,Ht,Ut],e=>He(Xt(...e))],InvalidCell:[3,Ae],[I]:[0,Ne],[y]:[0,Oe],[T]:[1,je,[Zt],e=>He(_t(e[0]))],InvalidValue:[1,Qe]},(([e,t,s,n],a)=>{fs[d+a+i]=(...a)=>Be(a[e],t[a[e+1]?1:0],e>0?q(a,0,e):void 0,s,n)})),Z(fs)};export{Qe as createCheckpoints,$e as createCustomPersister,Ne as createIndexes,Pe as createMetrics,qe as createQueries,Ge as createRelationships,tt as createStore,ze as defaultSorter};
Binary file
@@ -25,6 +25,9 @@ import {Store} from '../store';
25
25
  * @param docHandle The Automerge document handler to persist the Store with.
26
26
  * @param docMapName The name of the map used inside the Automerge document to
27
27
  * sync the Store to (which otherwise will default to 'tinybase').
28
+ * @param onIgnoredError An optional handler for the errors that the Persister
29
+ * would otherwise ignore when trying to save or load data. This is suitable for
30
+ * debugging persistence issues in a development environment, since v4.0.4.
28
31
  * @returns A reference to the new Persister object.
29
32
  * @example
30
33
  * This example creates a Persister object and persists the Store to an
@@ -105,4 +108,5 @@ export function createAutomergePersister(
105
108
  store: Store,
106
109
  docHandle: DocHandle<any>,
107
110
  docMapName?: string,
111
+ onIgnoredError?: (error: any) => void,
108
112
  ): Persister;