tinybase 4.0.3 → 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 -1
  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 -1
  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 +111 -62
  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 +111 -62
  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 -1
  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 -1
  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 +8 -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 +10 -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 -1
  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 -1
  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 +5 -5
  165. package/readme.md +2 -2
@@ -1 +1 @@
1
- "use strict";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,u=t=>(t=>t instanceof e&&t.constructor==e)(t)&&0==d(t),y=(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 i(s,((t,a)=>{n(o,a,t)&&(d=1)})),i(o,((t,a)=>{c(s,a)||(r(o,a),d=1)})),!t(e)&&u(o)&&r(a,e),d};exports.createAutomergePersister=(e,s,c="tinybase")=>(s.change((t=>t[c]={})),((e,d,v,l,w)=>{let g,p,A,f=0,L=0,S=0;const C=[],m=async t=>(2!=f&&(f=1,await b.schedule((async()=>{await t(),f=0}))),b),b={load:async(t,a)=>await m((async()=>{try{e.setContent(await d())}catch{e.setContent([t,a])}})),startAutoLoad:async(t={},a={})=>(b.stopAutoLoad(),await b.load(t,a),S=1,A=(t=>{const a=({doc:a})=>t((()=>y(a,c)));return s.on("change",a),a})((async(t,a)=>await m((async()=>{if(a)e.setTransactionChanges(a());else try{e.setContent(t?.()??await d())}catch{}})))),b),stopAutoLoad:()=>{return S&&(t=A,s.removeListener("change",t),A=void 0,S=0),b;var t},save:async n=>(1!=f&&(f=2,await b.schedule((async()=>{try{await(async(e,n)=>s.change((s=>((e,s,n,c)=>{((t,a)=>{u(t[a])&&(t[a]={t:{},v:{}})})(e,s);const[d,v]=y(e,s),l=()=>{w=1};let w=1;if(a(c?.(),(([e,s])=>{w=0,i(e,((e,s)=>w?0:t(e)?r(d,s):a(d[s],(s=>i(e,((e,n)=>w?0:t(e)?r(s,n):a(o(s,n),(a=>i(e,((e,s)=>t(e)?r(a,s):a[s]=e))),l)))),l))),i(s,((a,e)=>w?0:t(a)?r(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{}f=0}))),b),startAutoSave:async()=>(await b.stopAutoSave().save(),g=e.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||b.save((()=>[e,s]))})),b),stopAutoSave:()=>(a(g,e.delListener),b),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})(),b),getStore:()=>e,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(b)})(e,(async()=>2==d(s.doc[c])?y(s.doc,c):void 0)));
1
+ "use strict";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,u=t=>(t=>t instanceof e&&t.constructor==e)(t)&&0==d(t),y=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=y(),g=y(),p=(t,a)=>[t[a].t,t[a].v],A=(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)&&u(o)&&r(a,e),d};exports.createAutomergePersister=(e,s,c="tinybase",y)=>(s.change((t=>t[c]={})),((e,s,o,c,r,i,d=[])=>{let y,p,A,f=0,L=0;l(w,d,(()=>0)),l(g,d,(()=>[]));const S=async t=>(2!=f&&(f=1,await C.schedule((async()=>{await t(),f=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,A=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(A),A=void 0,L=0),C),save:async t=>(1!=f&&(f=2,await C.schedule((async()=>{try{await o(e.getContent,t)}catch(t){i?.(t)}f=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),y=e.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>(a(y,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)=>{u(t[a])&&(t[a]={t:{},v:{}})})(e,s);const[d,y]=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(y,e):y[e]=a))})),v){const[t,a]=n();A(d,void 0,t,((t,a,e)=>A(d,a,e,((t,a,e)=>A(t,a,e,((t,a,e)=>{if(o(t,a)!==e)return t[a]=e,1})))))),A(y,void 0,a,((t,a,e)=>{o(y,a)!==e&&(y[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)}),y));
@@ -1 +1 @@
1
- "use strict";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,L=0;const f=[],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),L=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 L&&(t=p,i.removeEventListener(c,t),p=void 0,L=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)})(f,...t),await(async()=>{if(!A){for(A=1;!a((t=f,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))));exports.createLocalPersister=(t,a)=>y(t,a,localStorage),exports.createSessionPersister=(t,a)=>y(t,a,sessionStorage);
1
+ "use strict";const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,r=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),o=JSON.parse,c=t=>new Map(t),i=(t,a)=>t?.get(a),y=(t,e,s)=>{return a(s)?(n=t,r=e,n?.delete(r),t):t?.set(e,s);var n,r},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,o,c,w,v=[])=>{let h,g,p,S=0,A=0;u(d,v,(()=>0)),u(l,v,(()=>[]));const L=async t=>(2!=S&&(S=1,await f.schedule((async()=>{await t(),S=0}))),f),f={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(f.stopAutoLoad(),await f.load(a,s),A=1,p=o((async(a,s)=>{if(s){const a=s();await L((async()=>t.setTransactionChanges(a)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){w?.(t)}}))})),f),stopAutoLoad:()=>(A&&(c(p),p=void 0,A=0),f),save:async a=>(1!=S&&(S=2,await f.schedule((async()=>{try{await s(t.getContent,a)}catch(t){w?.(t)}S=0}))),f),startAutoSave:async()=>(await f.stopAutoSave().save(),h=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();r(e)&&r(s)||f.save((()=>[e,s]))})),f),stopAutoSave:()=>{var e,s;return e=h,s=t.delListener,a(e)||s(e),f},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})(),f),getStore:()=>t,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(f)})(s,(async()=>o(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((()=>o(a.newValue)))};return v.addEventListener(w,a),a}),(t=>v.removeEventListener(w,t)),g);exports.createLocalPersister=(t,a,e)=>h(t,a,localStorage,e),exports.createSessionPersister=(t,a,e)=>h(t,a,sessionStorage,e);
@@ -1 +1 @@
1
- "use strict";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),C=(...a)=>f.assign({},...a),N=(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),P=(a,t,e,s=$)=>(N(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),_=a=>new Set(Array.isArray(a)||d(a)?a:[a]),W=(a,t)=>a?.add(t),B="_",H="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",U="WHERE",k=(a,t)=>{const s=I();return[async()=>P(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,P((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=_();N(o??{},(a=>c(h(a??{}),(a=>W(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=_(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(N(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=[];N(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),q=JSON.parse,z=(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)},K="store",V=(a,t,e,s,[n],i)=>{const[c,o,r]=k(t,i),l=z(a,(async()=>(await c(),q((await o(n,H))[B]?.[K]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,H,{[B]:{[K]:(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,H,{[B]:a},!0,!0,t):null;return z(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,H))[B]:{})();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 N(a,((a,i)=>{const c=w(S(C(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=>C(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],_(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(C(sa,c)),0,D(sa)),r=o[2],l=_(r);return[0,s,[na(n,{[aa]:null,[Z]:H},aa,(a=>W(l,a)&&a==r)),na(i,{[ta]:null,[Z]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>W(l,t)&&t==r)),o],l]})(e);return(l?V: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))};exports.createCrSqliteWasmPersister=(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);
1
+ "use strict";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),m=t=>a(t)==s,v=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),P=(a,t,e)=>(A(a,t)||$(a,t,e()),F(a,t)),_=(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]),W=(a,t)=>a?.add(t),H="_",j="_id",x=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",k="WHERE",J=(a,t,s)=>{const n=g();return[async()=>_(n,O(await v(c(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+q(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=>W(T,a)))));const m=L(T);if(!u&&E&&r(m)&&A(n,t))return await a("DROP TABLE"+x(t)),void $(n,t);if(r(m)||A(n,t)){const e=F(n,t),i=B(b(e));await v([...c(m,(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(m,(a=>e+x(a))))});`),$(n,t,g([[s,""],...c(m,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+x(t)+"WHERE 1"):await v(C(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+x(t)+k+x(s)+"=?",[n]):r(m)||await Y(a,t,s,h(e),[n,...S(e)])})));else if(r(m))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("+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=g(),K=g(),V=(a,t,e,s,n,i,c=[])=>{let o,r,w,l=0,E=0;P(G,c,(()=>0)),P(K,c,(()=>[]));const u=async a=>(2!=l&&(l=1,await m.schedule((async()=>{await a(),l=0}))),m),m={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.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)}}))})),m),stopAutoLoad:()=>(E&&(n(w),w=void 0,E=0),m),save:async t=>(1!=l&&(l=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}l=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(T(o,a.delListener),m),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})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(m)},Q="store",X=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=J(t,c,n);return V(a,(async()=>await y((async()=>(await r(),z((await w(i,j))[H]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,j,{[H]:{[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,m,A]=J(t,y,n),L=async(a,t)=>await v(M(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),p=async(a,t)=>r?await m(l,j,{[H]:a},!0,!0,t):null;return V(a,(async()=>await A((async()=>{await u();const a=await(async()=>O(w(await v(M(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?(await T(l,j))[H]:{})();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,m(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,m(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=>W(w,a)&&a==r)),oa(i,{[na]:null,[ea]:j,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>W(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)};exports.createCrSqliteWasmPersister=(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);
@@ -1 +1 @@
1
- "use strict";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),m=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,f=h.keys,R=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),g=a=>o(f(a)),D=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==g(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),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),_=a=>new Set(Array.isArray(a)||d(a)?a:[a]),x=(a,t)=>a?.add(t),B="_",H="_id",W=a=>`"${a.replace(/"/g,'""')}"`,j="FROM pragma_table_",k="WHERE",q=(a,t)=>{const s=b();return[async()=>P(s,N(await T(c(await a("SELECT name "+j+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+j+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,P((c=b,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)?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)&&!D(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=_();C(o??{},(a=>c(f(a??{}),(a=>x(v,a)))));const m=L(v);if(!u&&E&&r(m)&&A(s,t))return await a("DROP TABLE"+W(t)),void $(s,t);if(r(m)||A(s,t)){const e=F(s,t),i=_(I(e));await T([...c(m,(async s=>{p(i,s)||(await a(`ALTER TABLE${W(t)}ADD${W(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${W(t)}DROP${W(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${W(t)}(${W(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(m,(a=>e+W(a))))});`),$(s,t,b([[n,""],...c(m,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+W(t)+"WHERE 1"):await T(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+W(t)+k+W(n)+"=?",[s]):r(m)||await J(a,t,n,f(e),[s,...S(e)])})));else if(r(m))A(s,t)&&await a("DELETE FROM"+W(t)+"WHERE 1");else{const e=l(I(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"+W(t)+k+W(n)+"NOT IN("+U(r)+")",r)}}]},J=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),U=a=>i(c(a,(()=>"?")),e),Y=JSON.parse,z=(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 m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.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{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(v(i,a.delListener),m),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})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(m)},K="store",V=(a,t,e,s,[n],i)=>{const[c,o,r]=q(t,i),l=z(a,(async()=>(await c(),Y((await o(n,H))[B]?.[K]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,H,{[B]:{[K]:(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,[c,o,r]],w)=>{const[y,E,u]=q(t,w),v=async(a,t)=>await T(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),m=async(a,t)=>o?await u(r,H,{[B]:a},!0,!0,t):null;return z(a,(async()=>{await y();const a=await(async()=>N(l(await T(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(r,H))[B]:{})();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 m(e)}else{const[a,e]=t();await v(a,!0),await m(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=b();return C(a,((a,i)=>{const c=w(S(O(t,m(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=>O(ea,m(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],_(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(O(sa,c)),0,g(sa)),r=o[2],l=_(r);return[0,s,[na(n,{[aa]:null,[Z]:H},aa,(a=>x(l,a)&&a==r)),na(i,{[ta]:null,[Z]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>x(l,t)&&t==r)),o],l]})(e);return(l?V: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))};exports.createExpoSqlitePersister=(a,t,e,s)=>ra(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);
1
+ "use strict";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,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),P=(a,t,e)=>(A(a,t)||$(a,t,e()),F(a,t)),_=(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]),x=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",q="WHERE",J=(a,t,s)=>{const n=b();return[async()=>_(n,R(await T(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(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(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,s,o,w,E,u=!1)=>{const m=B();C(o??{},(a=>c(N(a??{}),(a=>x(m,a)))));const v=L(m);if(!u&&E&&r(v)&&A(n,t))return await a("DROP TABLE"+j(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${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async n=>{n!=s&&(await a(`ALTER TABLE${j(t)}DROP${j(n)}`),$(e,n))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(s)} PRIMARY KEY ON CONFLICT REPLACE${i(c(v,(a=>e+j(a))))});`),$(n,t,b([[s,""],...c(v,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await T(C(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+j(t)+q+j(s)+"=?",[n]):r(v)||await U(a,t,s,N(e),[n,...S(e)])})));else if(r(v))A(n,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(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 U(a,t,s,e,i),await a("DELETE FROM"+j(t)+q+j(s)+"NOT IN("+Y(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"+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,G=b(),K=b(),V=(a,t,e,s,n,i,c=[])=>{let o,r,l,w=0,E=0;P(G,c,(()=>0)),P(K,c,(()=>[]));const u=async a=>(2!=w&&(w=1,await v.schedule((async()=>{await a(),w=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,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)}}))})),v),stopAutoLoad:()=>(E&&(n(l),l=void 0,E=0),v),save:async t=>(1!=w&&(w=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}w=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,l,w,y]=J(t,c,n);return V(a,(async()=>await y((async()=>(await r(),z((await l(i,W))[H]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,W,{[H]:{[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,m,v,A]=J(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(w,W,{[H]:a},!0,!0,t):null;return V(a,(async()=>await A((async()=>{await u();const a=await(async()=>R(l(await T(M(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await m(w,W))[H]:{})();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=w(S(O(t,v(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(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,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=w(S(O(ca,c)),0,D(ca)),r=o[2],l=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:W},sa,(a=>x(l,a)&&a==r)),oa(i,{[na]:null,[ea]:W,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>x(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=>m.has(t)?a():0))]),(([a,t])=>{clearInterval(a),l=y=null,i(t)}),o,d,L(m),r)};exports.createExpoSqlitePersister=(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);
@@ -1 +1 @@
1
- "use strict";var t=require("fs"),a=require("fs/promises");const e="utf8",s=(t,a)=>t instanceof a,r=t=>null==t,n=Object,o=n.keys,c=n.freeze,i=t=>(t=>s(t,n)&&t.constructor==n)(t)&&0==(t=>o(t).length)(t),u=JSON.parse;exports.createFilePersister=(o,y)=>((o,u,d,w,l)=>{let v,h,f,p=0,A=0,S=0;const g=[],L=async t=>(2!=p&&(p=1,await C.schedule((async()=>{await t(),p=0}))),C),C={load:async(t,a)=>await L((async()=>{try{o.setContent(await u())}catch{o.setContent([t,a])}})),startAutoLoad:async(a={},e={})=>{return C.stopAutoLoad(),await C.load(a,e),S=1,s=async(t,a)=>await L((async()=>{if(a)o.setTransactionChanges(a());else try{o.setContent(t?.()??await u())}catch{}})),f=t.watch(y,(()=>s())),C;var s},stopAutoLoad:()=>{return S&&(t=f,t?.close(),f=void 0,S=0),C;var t},save:async t=>(1!=p&&(p=2,await C.schedule((async()=>{try{await(async t=>{return await a.writeFile(y,(r=t(),JSON.stringify(r,((t,a)=>s(a,Map)?n.fromEntries([...a]):a))),e);var r})(o.getContent)}catch{}p=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),v=o.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();i(e)&&i(s)||C.save((()=>[e,s]))})),C),stopAutoSave:()=>{var t,a;return t=v,a=o.delListener,r(t)||a(t),C},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(g,...t),await(async()=>{if(!A){for(A=1;!r((t=g,h=t.shift()));)try{await h()}catch{}A=0}var t})(),C),getStore:()=>o,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c(C)})(o,(async()=>u(await a.readFile(y,e))));
1
+ "use strict";var t=require("fs"),a=require("fs/promises");const e="utf8",s=(t,a)=>t instanceof a,n=t=>null==t,r=Object,o=r.keys,c=r.freeze,i=t=>(t=>s(t,r)&&t.constructor==r)(t)&&0==(t=>o(t).length)(t),u=JSON.parse,y=t=>new Map(t),w=(t,a)=>t?.get(a),d=(t,a,e)=>{return n(e)?(s=t,r=a,s?.delete(r),t):t?.set(a,e);var s,r},l=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||d(t,a,e()),w(t,a)},h=y(),v=y();exports.createFilePersister=(o,y,p)=>((t,a,e,s,r,o,u=[])=>{let y,p,f,A=0,S=0;l(h,u,(()=>0)),l(v,u,(()=>[]));const g=async t=>(2!=A&&(A=1,await L.schedule((async()=>{await t(),A=0}))),L),L={load:async(e,s)=>await g((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(L.stopAutoLoad(),await L.load(e,n),S=1,f=s((async(e,s)=>{if(s){const a=s();await g((async()=>t.setTransactionChanges(a)))}else await g((async()=>{try{t.setContent(e?.()??await a())}catch(t){o?.(t)}}))})),L),stopAutoLoad:()=>(S&&(r(f),f=void 0,S=0),L),save:async a=>(1!=A&&(A=2,await L.schedule((async()=>{try{await e(t.getContent,a)}catch(t){o?.(t)}A=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),y=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();i(e)&&i(s)||L.save((()=>[e,s]))})),L),stopAutoSave:()=>{var a,e;return a=y,e=t.delListener,n(a)||e(a),L},schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(w(v,u),...t),await(async()=>{if(!w(h,u)){for(d(h,u,1);!n((t=w(v,u),p=t.shift()));)try{await p()}catch(t){o?.(t)}d(h,u,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c(L)})(o,(async()=>u(await a.readFile(y,e))),(async t=>{return await a.writeFile(y,(n=t(),JSON.stringify(n,((t,a)=>s(a,Map)?r.fromEntries([...a]):a))),e);var n}),(a=>t.watch(y,(()=>a()))),(t=>t?.close()),p);
@@ -1 +1 @@
1
- "use strict";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=>t.headers.get("ETag");exports.createRemotePersister=(s,i,y,u)=>{let d;return((s,r,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 r())}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 r())}catch{}})),f=setInterval((async()=>{const t=await fetch(i,{method:"HEAD"}),e=c(t);a(d)||a(e)||e==d||(d=e,n())}),1e3*u),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 d=c(t),r(await t.text())}))};
1
+ "use strict";const t=(t,a)=>t instanceof a,a=t=>null==t,e=Object,s=e.keys,n=e.freeze,r=a=>(a=>t(a,e)&&a.constructor==e)(a)&&0==(t=>s(t).length)(a),o=JSON.parse,c=t=>new Map(t),i=(t,a)=>t?.get(a),y=(t,e,s)=>{return a(s)?(n=t,r=e,n?.delete(r),t):t?.set(e,s);var n,r},u=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||y(t,a,e()),i(t,a)},d=c(),h=c(),w=t=>t.headers.get("ETag");exports.createRemotePersister=(s,c,l,v,p)=>{let f;return((t,e,s,o,c,w,l=[])=>{let v,p,f,g=0,A=0;u(d,l,(()=>0)),u(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=o((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();r(e)&&r(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(d,l)){for(y(d,l,1);!a((t=i(h,l),p=t.shift()));)try{await p()}catch(t){w?.(t)}y(d,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),o(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)};
@@ -1 +1 @@
1
- "use strict";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),u=Promise,E=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>u.all(a),T=(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),S=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),C=a=>h.values(a),b=a=>o(R(a)),D=a=>(a=>E(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)=>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,s=F)=>(S(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]),W=(a,t)=>a?.add(t),j="_",k="_id",B=a=>`"${a.replace(/"/g,'""')}"`,H="FROM pragma_table_",q="WHERE",x=(a,t)=>{const s=g();return[async()=>$(s,O(await v(c(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,$((c=g,T(n=s,i=t)||F(n,i,c()),_(n,i)),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,c}),((a,t)=>F(s,t))),async(t,e)=>((a,t)=>!d(_(_(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+B(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,u,E=!1)=>{const p=P();S(o??{},(a=>c(R(a??{}),(a=>W(p,a)))));const m=A(p);if(!E&&u&&r(m)&&T(s,t))return await a("DROP TABLE"+B(t)),void F(s,t);if(r(m)||T(s,t)){const e=_(s,t),i=P(I(e));await v([...c(m,(async s=>{L(i,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...!E&&w?c(A(i),(async s=>{s!=n&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(m,(a=>e+B(a))))});`),F(s,t,g([[n,""],...c(m,(a=>[a,""]))]));if(E)d(o)?await a("DELETE FROM"+B(t)+"WHERE 1"):await v(S(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+B(t)+q+B(n)+"=?",[s]):r(m)||await J(a,t,n,R(e),[s,...C(e)])})));else if(r(m))T(s,t)&&await a("DELETE FROM"+B(t)+"WHERE 1");else{const e=l(I(_(s,t)),(a=>a!=n)),i=[],r=[];S(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"+B(t)+q+B(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+B(t)+"("+B(s)+i(c(r,(a=>e+B(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+B(s)+")DO UPDATE SET"+i(c(r,(a=>B(a)+"=excluded."+B(a))),e),l),U=a=>i(c(a,(()=>"?")),e),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const u=[],E=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await E((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>await E((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(p(i,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},z="store",K=(a,t,e,s,[n],i)=>{const[c,o,r]=x(t,i),l=Y(a,(async()=>(await c(),V((await o(n,k))[j]?.[z]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,k,{[j]:{[z]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,u,E]=x(t,w),p=async(a,t)=>await v(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await E(e,s,o,n,i,t)}))),m=async(a,t)=>o?await E(r,k,{[j]:a},!0,!0,t):null;return Y(a,(async()=>{await y();const a=await(async()=>O(l(await v(M(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await u(r,k))[j]:{})();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 m(e)}else{const[a,e]=t();await p(a,!0),await m(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 S(a,((a,i)=>{const c=w(C(N(t,m(a)?{[e]:a}:a)),0,b(t));d(c[0])||s(i,c[0])||F(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,u,E]=(a=>{const e=(a=>N(ea,m(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(C(N(sa,c)),0,b(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:k},aa,(a=>W(l,a)&&a==r)),na(i,{[ta]:null,[Z]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>W(l,t)&&t==r)),o],l]})(e);return(l?K: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=>E.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),u,A(E))};exports.createSqliteWasmPersister=(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);
1
+ "use strict";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),m=t=>a(t)==s,T=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),S=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),C=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)=>(S(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]),W=(a,t)=>a?.add(t),j="_",k="_id",H=a=>`"${a.replace(/"/g,'""')}"`,q="FROM pragma_table_",x="WHERE",J=(a,t,s)=>{const n=I();return[async()=>P(n,N(await T(c(await a("SELECT name "+q+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+q+"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"+H(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();S(o??{},(a=>c(R(a??{}),(a=>W(p,a)))));const m=A(p);if(!u&&E&&r(m)&&v(n,t))return await a("DROP TABLE"+H(t)),void F(n,t);if(r(m)||v(n,t)){const e=_(n,t),i=B(g(e));await T([...c(m,(async s=>{L(i,s)||(await a(`ALTER TABLE${H(t)}ADD${H(s)}`),F(e,s,""))})),...!u&&w?c(A(i),(async n=>{n!=s&&(await a(`ALTER TABLE${H(t)}DROP${H(n)}`),F(e,n))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(s)} PRIMARY KEY ON CONFLICT REPLACE${i(c(m,(a=>e+H(a))))});`),F(n,t,I([[s,""],...c(m,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+H(t)+"WHERE 1"):await T(S(o,(async(e,n)=>{d(e)?await a("DELETE FROM"+H(t)+x+H(s)+"=?",[n]):r(m)||await U(a,t,s,R(e),[n,...C(e)])})));else if(r(m))v(n,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const e=l(g(_(n,t)),(a=>a!=s)),i=[],r=[];S(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"+H(t)+x+H(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"+H(t)+"("+H(s)+i(c(r,(a=>e+H(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+H(s)+")DO UPDATE SET"+i(c(r,(a=>H(a)+"=excluded."+H(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 m.schedule((async()=>{await a(),w=0}))),m),m={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.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)}}))})),m),stopAutoLoad:()=>(E&&(n(l),l=void 0,E=0),m),save:async t=>(1!=w&&(w=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}w=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(p(o,a.delListener),m),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})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},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,k))[j]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,k,{[j]:{[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,m,v]=J(t,y,n),A=async(a,t)=>await T(M(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),L=async(a,t)=>r?await m(w,k,{[j]:a},!0,!0,t):null;return K(a,(async()=>await v((async()=>{await u();const a=await(async()=>N(l(await T(M(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await p(w,k))[j]:{})();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 S(a,((a,i)=>{const c=w(C(O(t,m(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,m(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(C(O(ca,c)),0,D(ca)),r=o[2],l=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:k},sa,(a=>W(l,a)&&a==r)),oa(i,{[na]:null,[ea]:k,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>W(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)};exports.createSqliteWasmPersister=(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);
@@ -1 +1 @@
1
- "use strict";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),r=a=>a.length,o=a=>0==r(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),S=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),C=a=>f.values(a),g=a=>r(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),P=(a,t,e,s=$)=>(S(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),_=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()=>P(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,P((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,r,w,E,u=!1)=>{const v=_();S(r??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&o(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(o(T)||A(s,t)){const e=F(s,t),i=_(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(r)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(S(r,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+x+j(n)+"=?",[s]):o(T)||await U(a,t,n,h(e),[s,...C(e)])})));else if(o(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],o=[];S(r??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(o,t)})),await U(a,t,n,e,i),await a("DELETE FROM"+j(t)+x+j(n)+"NOT IN("+Y(o)+")",o)}}]},U=async(a,t,s,o,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(o,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",r(o))})`,r(l)/(r(o)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(o,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),q=JSON.parse,z=(a,t,e,s,n)=>{let i,c,r,o=0,l=0,w=0;const E=[],u=async a=>(2!=o&&(o=1,await T.schedule((async()=>{await a(),o=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,r=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(r),r=void 0,w=0),T),save:async t=>(1!=o&&(o=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}o=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)},K="store",V=(a,t,e,s,[n],i)=>{const[c,r,o]=J(t,i),l=z(a,(async()=>(await c(),q((await r(n,W))[H]?.[K]))),(async a=>l.schedule(c,(async()=>{var t;await o(n,W,{[H]:{[K]:(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,r,o]],w)=>{const[y,E,u]=J(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const r=a[c];t&&void 0===r||await u(e,s,r,n,i,t)}))),T=async(a,t)=>r?await u(o,W,{[H]:a},!0,!0,t):null;return z(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(o,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 S(a,((a,i)=>{const c=w(C(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",ra="schema_version",oa=(a,e,s,n,i,c)=>{let r,o;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],_(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,r=w(C(N(sa,c)),0,g(sa)),o=r[2],l=_(o);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==o)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==o)),r],l]})(e);return(l?V: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+ra))[0][ra];t==(r??=t)&&e==(o??=e)||(a(),r=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),r=o=null,i(t)}),E,L(u))},la="change";exports.createSqlite3Persister=(a,t,e,s)=>oa(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(la,e),e}),(a=>t.off(la,a)),s);
1
+ "use strict";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,N=f.freeze,R=(a=[])=>f.fromEntries(a),O=(...a)=>f.assign({},...a),S=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),C=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),P=(a,t,e)=>(A(a,t)||$(a,t,e()),F(a,t)),_=(a,t,e,s=$)=>(S(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()=>_(n,R(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+q(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(l(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,w,E,u=!1)=>{const v=B();S(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&&w?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(S(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,...C(e)])})));else if(r(T))A(n,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const e=l(b(F(n,t)),(a=>a!=s)),i=[],r=[];S(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("+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,l)=>await a("INSERT INTO"+k(t)+"("+k(s)+i(c(r,(a=>e+k(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+k(s)+")DO UPDATE SET"+i(c(r,(a=>k(a)+"=excluded."+k(a))),e),l),q=a=>i(c(a,(()=>"?")),e),z=JSON.parse,G=I(),K=I(),V=(a,t,e,s,n,i,c=[])=>{let o,r,l,w=0,E=0;P(G,c,(()=>0)),P(K,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();g(e)&&g(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(o,a.delListener),T),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})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return N(T)},Q="store",X=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=U(t,c,n);return V(a,(async()=>await y((async()=>(await r(),z((await l(i,j))[W]?.[Q]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(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,w]],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(w,j,{[W]:a},!0,!0,t):null;return V(a,(async()=>await A((async()=>{await u();const a=await(async()=>R(l(await m(M(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>o?(await v(w,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 S(a,((a,i)=>{const c=w(C(O(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(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,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=w(C(O(ca,c)),0,D(ca)),r=o[2],l=B(r);return[0,s,[oa(n,{[sa]:null,[ea]:j},sa,(a=>H(l,a)&&a==r)),oa(i,{[na]:null,[ea]:j,deleteEmptyColumns:0,deleteEmptyTable:0},na,((a,t)=>H(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=>v.has(t)?a():0))]),(([a,t])=>{clearInterval(a),l=y=null,i(t)}),o,d,L(v),r)},Ea="change";exports.createSqlite3Persister=(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);
@@ -1 +1 @@
1
- "use strict";var t=require("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),u=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),l=(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)=>(u(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.Map);let r;return l(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{u(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r};exports.createYjsPersister=(o,c,u="tinybase")=>{const f=c.getMap(u);return((o,u,S,A,O)=>{let J,L,N,C=0,b=0,z=0;const E=[],M=async t=>(2!=C&&(C=1,await j.schedule((async()=>{await t(),C=0}))),j),j={load:async(t,e)=>await M((async()=>{try{o.setContent(await u())}catch{o.setContent([t,e])}})),startAutoLoad:async(t={},s={})=>(j.stopAutoLoad(),await j.load(t,s),z=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),u={},l={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>a(t)==v?n(a(t),(s=>{const o=g(u,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})=>u[t]=e==h?null:c.get(t)?.toJSON())))):y(e,((t,{action:e})=>l[t]=e==h?null:r.get(t)))))})(s),[u,l]})(f,s)));return f.observeDeep(s),s})((async(t,e)=>await M((async()=>{if(e)o.setTransactionChanges(e());else try{o.setContent(t?.()??await u())}catch{}})))),j),stopAutoLoad:()=>{return z&&(t=N,f.unobserveDeep(t),N=void 0,z=0),j;var t},save:async e=>(1!=C&&(C=2,await j.schedule((async()=>{try{await(async(e,a)=>c.transact((()=>((e,a,o)=>{(e=>{e.size||(e.set(v,new t.Map),e.set("v",new t.Map))})(e);const[c,r]=p(e),i=()=>{u=1};let u=1;if(n(o?.(),(([t,e])=>{u=0,l(t,((t,e)=>u?0:s(t)?c.delete(e):n(c.get(e),(e=>l(t,((t,a)=>u?0:s(t)?e.delete(a):n(e.get(a),(e=>l(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),i)))),i))),l(e,((t,e)=>u?0:s(t)?r.delete(e):r.set(e,t)))})),u){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}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),J=o.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();d(a)&&d(s)||j.save((()=>[a,s]))})),j),stopAutoSave:()=>(n(J,o.delListener),j),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(E,...t),await(async()=>{if(!b){for(b=1;!s(L=a(E));)try{await L()}catch{}b=0}})(),j),getStore:()=>o,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(j)})(o,(async()=>f.size?[f.get(v).toJSON(),f.get("v").toJSON()]:void 0))};
1
+ "use strict";var t=require("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),u=(t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)),l=(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)=>(u(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.Map);let r;return l(n,((t,e)=>{o(c,e,t)&&(r=1)})),c.forEach(((t,e)=>{u(n,e)||(c.delete(e),r=1)})),s(a)||c.size||e.delete(a),r};exports.createYjsPersister=(o,c,u="tinybase",y)=>{const N=c.getMap(u);return((t,e,o,c,i,u,l=[])=>{let g,y,h,A=0,O=0;w(f,l,(()=>0)),w(S,l,(()=>[]));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){u?.(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){u?.(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,l),...t),await(async()=>{if(!v(f,l)){for(p(f,l,1);!s(y=a(v(S,l)));)try{await y()}catch(t){u?.(t)}p(f,l,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.Map),e.set("v",new t.Map))})(e);const[c,r]=J(e),i=()=>{u=1};let u=1;if(n(o?.(),(([t,e])=>{u=0,l(t,((t,e)=>u?0:s(t)?c.delete(e):n(c.get(e),(e=>l(t,((t,a)=>u?0:s(t)?e.delete(a):n(e.get(a),(e=>l(t,((t,a)=>s(t)?e.delete(a):e.set(a,t)))),i)))),i))),l(e,((t,e)=>u?0:s(t)?r.delete(e):r.set(e,t)))})),u){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),u={},l={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>a(t)==A?n(a(t),(s=>{const o=g(u,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})=>u[t]=e==O?null:c.get(t)?.toJSON())))):h(e,((t,{action:e})=>l[t]=e==O?null:r.get(t)))))})(s),[u,l]})(N,s)));return N.observeDeep(s),s}),(t=>{N.unobserveDeep(t)}),y)};
@@ -1 +1 @@
1
- "use strict";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);exports.createCustomPersister=(a,s,o,c,r)=>{let i,u,y,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,y=c((async(t,e)=>await v((async()=>{if(e)a.setTransactionChanges(e());else try{a.setContent(t?.()??await s())}catch{}})))),p),stopAutoLoad:()=>(w&&(r(y),y=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(),i=a.addDidFinishTransactionListener(((t,a)=>{const[s,e]=a();n(s)&&n(e)||p.save((()=>[s,e]))})),p),stopAutoSave:()=>{var s,e;return s=i,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,u=a.shift()));)try{await u()}catch{}h=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return e(p)};
1
+ "use strict";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)},u=o(),y=o();exports.createCustomPersister=(a,e,o,d,w,h,l=[])=>{let v,p,A,f=0,g=0;i(u,l,(()=>0)),i(y,l,(()=>[]));const C=async t=>(2!=f&&(f=1,await L.schedule((async()=>{await t(),f=0}))),L),L={load:async(t,s)=>await C((async()=>{try{a.setContent(await e())}catch{a.setContent([t,s])}})),startAutoLoad:async(t={},s={})=>(L.stopAutoLoad(),await L.load(t,s),g=1,A=d((async(t,s)=>{if(s){const t=s();await C((async()=>a.setTransactionChanges(t)))}else await C((async()=>{try{a.setContent(t?.()??await e())}catch(t){h?.(t)}}))})),L),stopAutoLoad:()=>(g&&(w(A),A=void 0,g=0),L),save:async t=>(1!=f&&(f=2,await L.schedule((async()=>{try{await o(a.getContent,t)}catch(t){h?.(t)}f=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),v=a.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();n(e)&&n(s)||L.save((()=>[e,s]))})),L),stopAutoSave:()=>{var e,s;return e=v,s=a.delListener,t(e)||s(e),L},schedule:async(...a)=>(((t,...a)=>{t.push(...a)})(c(y,l),...a),await(async()=>{if(!c(u,l)){for(r(u,l,1);!t((a=c(y,l),p=a.shift()));)try{await p()}catch(t){h?.(t)}r(u,l,0)}var a})(),L),getStore:()=>a,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s(L)};
Binary file
@@ -1 +1 @@
1
- "use strict";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,S="Sorted"+L+u,v="Cell",R=v+u,I="Value",T=I+"s",p=I+u,C=e=>t+e,y=Math.max,b=Math.min,V=isFinite,m=(e,t)=>e instanceof t,E=e=>null==e,x=(e,t,s)=>E(e)?s?.():t(e),k=e=>e==s||e==n,M=t=>e(t)==o,D=e=>Array.isArray(e),J=()=>{},A=(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),P=(e,t)=>e.map(t),j=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)=>x(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),se=(e,t)=>P(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)),Se=(e,t,s,n=Le)=>(se(t,((t,n)=>s(e,n,t))),fe(e,(s=>ee(t,s)?0:n(e,s))),e),ve=(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)=>ve(e,(e=>ve(e,t,s)),ne),Ie=(e,t,s)=>ve(e,(e=>Re(e,t,s)),ne),Te=(e,t)=>{const s=ue();return ce(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Te(e,Te),Ce=e=>Te(e,pe),ye=(e,t,s,n,a=0)=>x((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=ye(o,t,s,n,a+1);return re(o)&&Le(e,t[a]),r})),be=t=>{const s=e(t);return k(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(D(e)||E(e)?e:[e]),xe=(e,t)=>e?.add(t),ke=(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=>xe(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>x(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),S=t=>{const o=s=>e.getCell(a,t,s),r=ge(L,t),l=n(a,t)?s(i(o,t)):void 0;if(r===l||D(r)&&D(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)}},v=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,S),e.hasTable(a)&&O(e.getRowIds(a),(e=>{oe(L,e)||S(e)})),v(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>S(s))),e.addTableListener(a,(()=>v())))},h,()=>fe(i,h),c,d]},Me=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),De=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Je=/^\d+$/,Ae=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Je.test(t)&&W(e)<1e3&&G(e,t)}]},Fe=e=>{let s;const[n,a]=Ae(),o=ue();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return Le(o,d,[a,r,l,i,c]),xe(ye(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=>x(ge(o,e),(([,s,n])=>(ye(s,n??[t],void 0,(t=>(de(t,e),re(t)?1:0))),Le(o,e),a(e),n))),e=>x(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=De((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=[],S=[],v=(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])},I=(e,t)=>O(((e,t)=>e.splice(0,t))(e,t??W(e)),R),T=()=>I(w,W(w)-o),p=()=>x(s,(()=>{G(w,s),T(),I(S),s=void 0,a=1})),C=()=>{s=H(w),a=1},y=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();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(),M()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=we(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&re(Le(l,t))&&C(),M()}})),V=(e="")=>(E(s)&&(s=t+n++,Le(f,s,[r,l]),J(s,e),r=ue(),l=ue(),a=1),s),m=()=>{B(w)||(((e,...t)=>{e.unshift(...t)})(S,V()),v(0,s),s=H(w),a=1)},k=()=>{B(S)||(G(w,s),s=K(S),v(1,s),a=1)},M=()=>{a&&(h(c),a=0)},D=e=>{const t=V(e);return M(),t},J=(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,T(),Q),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],s,[...S]],forEachCheckpoint:e=>fe(L,e),hasCheckpoint:F,getCheckpoint:e=>ge(L,e),goBackward:()=>(m(),M(),Q),goForward:()=>(k(),M(),Q),goTo:e=>{const t=A(w,e)?m:A(S,e)?k:null;for(;!E(t)&&e!=s;)t();return M(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(I(w),I(S),E(s)||R(s),s=void 0,n=0,D(),Q),destroy:()=>{e.delListener(y),e.delListener(b)},getListenerStats:()=>({})};return Z(Q.clear())})),ze=(e,t)=>e<t?-1:1,Ne=De((e=>{const s=ue(),n=ue(),[a,o,r,l,i,c,d,,u,h,g]=ke(e,ue,(e=>E(e)?t:D(e)?P(e,C):C(e))),[f,L,w]=Fe((()=>v)),S=(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)))))))))},v={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(),S=Ee(),v=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=>{xe(w,e),x(ge(v,e),(t=>{de(t,s),re(t)&&(Le(v,e),f=1)}))})),ce(a,(e=>{xe(w,e),oe(v,e)||(Le(v,e,Ee()),f=1),xe(ge(v,e),s),E(o)||xe(S,e)}))})),t(),re(h)||(g?fe(v,(e=>xe(S,e))):fe(r,(e=>x(ge(u,e),(e=>xe(S,e))))),ce(S,(e=>{const t=(t,s)=>l(ge(h,t),ge(h,s),e),s=[...ge(v,e)];z(s,t)||(Le(v,e,Ee(N(s,t))),xe(w,e))}))),(f||g)&&!E(i)){const t=[...v];z(t,i)||(d(e,ue(N(t,i))),f=1)}f&&L(s,[e]),ce(w,(t=>L(n,[e,t])))}),Me(a),x(o,Me)),v},delIndexDefinition:e=>(h(e),v),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>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),v),destroy:g,getListenerStats:()=>({})};return Z(v)})),Oe=ue([["avg",[(e,t)=>j(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=>y(...e),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:y(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=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(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},je=De((e=>{const s=ue(),[n,a,o,r,l,i,c,,d,u,h]=ke(e,J,(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=M(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=Pe(d,h,o,n,u,l);V(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Me(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=De((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,I,T]=ke(e,(()=>!0),J),p=s(),C=s(),y=ue(),b=(e,t,...s)=>O(s,(s=>xe(we(we(y,t,ue),e,Ee),s))),V=e=>{x(ge(y,e),(e=>{fe(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ie(e)})),O([C,p],(t=>t.delTable(e)))},m=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),k={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=M(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)||M(t)?null:t,a=E(n)?t:s,o=[e,[e,n,M(a)?a:e=>e(a),[],ue()]];return G(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(l,M(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,M(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,M(e)?e:s=>s(e)===t)});const d=ue(o);if(re(d))return k;const h=ue(r);fe(h,((e,[,t])=>x(ge(h,t),(({3:t})=>E(e)?0:G(t,e)))));const g=ue(i);let f=p;if(re(g)&&B(c))f=C;else{m(s,f,C);const e=ue();fe(g,((t,[s,n])=>xe(we(e,s,Ee),[t,n])));const t=Ee();fe(d,(s=>oe(e,s)?0:xe(t,s)));const n=ue(),a=(t,n,a,o)=>x(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=Pe(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(ye(n,c,void 0,(([,e])=>(de(e,l),re(e)))),u,l,1),h&&a(ye(n,d,(()=>{const e={};return ce(t,(t=>e[t]=f.getCell(s,l,t))),[ue(),Ee(),void 0,e]}),(([,e])=>{xe(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)||T(s,u),Le(l,t,E(c)?null:[c,...I(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((()=>I(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})=>x(ge(e,o),(([,t])=>{T(s,t),Le(e,o)})))))}))))),k},delQueryDefinition:e=>(V(e),g(e),k),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(C.delListener(e),k),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=C.getListenerStats();return n}};return se({[h]:[1,1],[w]:[0,1],[S]:[0,5],[L]:[1,2],[R]:[0,2],[v]:[1,3]},(([e,t],s)=>{O(e?["get","has","forEach"]:["get"],(e=>k[e+c+s]=(...t)=>C[e+s](...t))),k[d+c+s+i]=(...e)=>C[d+s+i](...q(e,0,t),((s,...n)=>e[t](k,...n)))})),Z(k)})),Be=De((e=>{const s=ue(),n=ue(),a=ue(),o=ue(),[r,l,i,c,d,u,,,h,g,f]=ke(e,(()=>[ue(),ue(),ue(),ue()]),(e=>E(e)?void 0:e+t)),[L,w,S]=Fe((()=>T)),v=(e,t,s)=>x(u(e),(([n,,a])=>{if(!oe(a,t)){const o=Ee();if(d(e)!=I(e))xe(o,t);else{let e=t;for(;!E(e)&&!oe(o,e);)xe(o,e),e=ge(n,e)}if(s)return o;Le(a,t,o)}return ge(a,t)})),R=(e,t)=>x(u(e),(([,,e])=>Le(e,t))),I=e=>ge(s,e),T={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)||(xe(l,t),x(ge(d,t),(e=>{de(e,n),re(e)&&Le(d,t)}))),E(s)||(xe(l,s),oe(d,s)||Le(d,s,Ee()),xe(ge(d,s),n)),xe(r,n),Le(c,n,s),fe(ge(o,e),(t=>{oe(v(e,t),n)&&xe(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])}))}),Me(l)),T),delRelationshipDefinition:e=>(Le(s,e),g(e),T),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:I,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(v(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)=>(v(e,t),L(s,o,[e,t])),delListener:e=>(R(...S(e)),T),destroy:f,getListenerStats:()=>({})};return Z(T)})),$e=e=>[e,e],qe=()=>[ue(),ue()],Ge=e=>[...e],He=([e,t])=>e===t,Ke=e=>JSON.stringify(e,((e,t)=>m(t,Map)?U.fromEntries([...t]):t)),Ue=JSON.parse,Xe=(e,t,s)=>E(e)||!_(e)||ne(e)||Y(e)?(s?.(),!1):(se(e,((s,n)=>{t(s,n)||te(e,n)})),!ne(e)),Ye=(e,t,s)=>Le(e,t,ge(e,t)==-s?void 0:s),Ze=()=>{let e,t,s=!1,n=!1,o=0;const c=ue(),u=ue(),S=ue(),y=ue(),b=ue(),V=ue(),m=ue(),D=ue(),J=ue(),F=ue(),z=ue(),j=ue(),W=ue(),B=Ee(),$=ue(),H=ue(),K=ue(),U=ue(),X=qe(),Y=qe(),_=qe(),ae=qe(),le=qe(),ye=qe(),ke=qe(),Me=qe(),De=qe(),Je=qe(),Qe=qe(),Ne=qe(),Oe=qe(),Pe=qe(),je=ue(),We=qe(),[Be,_e,et,tt]=Fe((()=>fs)),st=e=>{if(!Xe(e,((e,t)=>A([r,l],t))))return!1;const t=e[r];return!(!k(t)&&t!=a||(be(e[l])!=t&&te(e,l),0))},nt=(t,s)=>(!e||oe(F,s)||Jt(s))&&Xe(t,((e,t)=>at(s,t,e)),(()=>Jt(s))),at=(e,t,s,n)=>Xe(n?s:it(s,e,t),((n,a)=>x(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Jt(e,t))),ot=(t,s,n,a)=>e?x(ge(ge(F,t),n),(e=>be(a)!=e[r]?Jt(t,s,n,a,e[l]):a),(()=>Jt(t,s,n,a))):E(be(a))?Jt(t,s,n,a):a,rt=(e,t)=>Xe(t?e:ct(e),((t,s)=>x(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),lt=(e,s)=>t?x(ge(j,e),(t=>be(s)!=t[r]?At(e,s,t[l]):s),(()=>At(e,s))):E(be(s))?At(e,s):s,it=(e,t,s)=>(x(ge(z,t),(([n,a])=>{ce(n,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(a,(n=>{ee(e,n)||Jt(t,s,n)}))})),e),ct=e=>(t&&(ce(W,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(B,(t=>{ee(e,t)||At(t)}))),e),dt=e=>Se(F,e,((e,t,s)=>{const n=ue(),a=Ee();Se(we(F,t,ue),s,((e,t,s)=>{Le(e,t,s),x(s[l],(e=>Le(n,t,e)),(()=>xe(a,t)))})),Le(z,t,[n,a])}),((e,t)=>{Le(F,t),Le(z,t)})),ut=e=>Se(j,e,((e,t,s)=>{Le(j,t,s),x(s[l],(e=>Le(W,t,e)),(()=>xe(B,t)))}),((e,t)=>{Le(j,t),Le(W,t),de(B,t)})),ht=e=>ne(e)?os():es(e),gt=e=>Se(K,e,((e,t,s)=>ft(t,s)),((e,t)=>Ct(t))),ft=(e,t)=>Se(we(K,e,(()=>(mt(e,1),Le($,e,Ae()),Le(H,e,ue()),ue()))),t,((t,s,n)=>Lt(e,t,s,n)),((t,s)=>yt(e,t,s))),Lt=(e,t,s,n,a)=>Se(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)||xt(e,t,n,1);const o=ge(s,n);a!==o&&(kt(e,t,n,o,a),Le(s,n,a))},St=(e,t,s,n,a)=>x(ge(t,s),(t=>wt(e,s,t,n,a)),(()=>Lt(e,t,s,it({[n]:a},e,s)))),vt=e=>ne(e)?is():ts(e),Rt=e=>Se(U,e,((e,t,s)=>It(t,s)),((e,t)=>Vt(t))),It=(e,t)=>{oe(U,e)||Mt(e,1);const s=ge(U,e);t!==s&&(Dt(e,s,t),Le(U,e,t))},Tt=(e,t)=>{const[s]=ge($,e),n=s(t);return oe(ge(K,e),n)?Tt(e,t):n},pt=e=>ge(K,e)??ft(e,{}),Ct=e=>ft(e,{}),yt=(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=>{kt(e,s,t,ge(n,t)),xt(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 It(e,t);Dt(e,ge(U,e)),Mt(e,-1),Le(U,e)},mt=(e,t)=>Ye(c,e,t),Et=(e,t,s)=>Ye(we(S,e,ue),t,s),xt=(e,t,s,n)=>{const a=ge(H,e),o=ge(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&Ye(we(u,e,ue),s,n),Le(a,s,o!=-n?o+n:null),Ye(we(we(y,e,ue),t,ue),s,n)},kt=(e,t,s,n,a)=>we(we(we(b,e,ue),t,ue),s,(()=>[n,0]))[1]=a,Mt=(e,t)=>Ye(V,e,t),Dt=(e,t,s)=>we(m,e,(()=>[t,0]))[1]=s,Jt=(e,t,s,n,a)=>(G(we(we(we(D,e,ue),t,ue),s,(()=>[])),n),a),At=(e,t,s)=>(G(we(J,e,(()=>[])),t),s),Ft=(e,t,s)=>x(ge(ge(ge(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...$e(Xt(e,t,s))])),Qt=e=>x(ge(m,e),(([e,t])=>[!0,e,t]),(()=>[!1,...$e(_t(e))])),zt=e=>re(D)||re(Je[e])?0:ce(e?Ce(D):D,((t,s)=>ce(t,((t,n)=>ce(t,((t,a)=>_e(Je[e],[s,n,a],t))))))),Nt=e=>re(J)||re(Qe[e])?0:ce(e?Te(J):J,((t,s)=>_e(Qe[e],[s],t))),Ot=(e,t,s)=>{if(!re(t))return _e(e,s,(()=>ve(t))),1},Pt=e=>{const t=re(ye[e]),s=re(Me[e])&&re(ae[e])&&re(le[e])&&t&&re(Y[e]),n=re(De[e])&&re(ke[e])&&re(_[e])&&re(X[e]);if(!s||!n){const a=e?[Te(c),pe(u),pe(S),Ce(y),Ce(b)]:[c,u,S,y,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(ye[e],[a,null]),xe(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?xe(s,a):de(e,a))))),ce(s,(t=>_e(ye[e],[n,t])))}})),ce(a[3],((t,s)=>ce(t,((t,n)=>Ot(Me[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(De[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&_e(ke[e],[n,o],Ft)})),a&&_e(_[e],[n],Ft)})),t&&_e(X[e],void 0,Ft)}}},jt=e=>{const t=re(Oe[e]),s=re(Pe[e])&&re(Ne[e]);if(!t||!s){const n=e?[Te(V),Te(m)]:[V,m];if(t||Ot(Oe[e],n[0]),!s){let t;ce(n[1],(([s,n],a)=>{n!==s&&(_e(Pe[e],[a],n,s,Qt),t=1)})),t&&_e(Ne[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...P(t,C)))),fs),Bt=()=>[ve(b,((e,t)=>-1===ge(c,t)?null:ve(e,((e,s)=>-1===ge(ge(S,t),s)?null:ve(e,(([,e])=>e??null),((e,t)=>He(t)))),ne)),ne),ve(m,(([,e])=>e??null),((e,t)=>He(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ie(b,Ge,He),invalidCells:Ie(D),changedValues:ve(m,Ge,He),invalidValues:ve(J),changedTableIds:ve(c),changedRowIds:Re(S),changedCellIds:Ie(y),changedValueIds:ve(V)}),qt=()=>Ie(K),Gt=()=>he(K),Ht=e=>he(ge(K,C(e))),Kt=(e,t,s,n=0,a)=>{return P(q(N((o=ge(K,C(e)),r=(e,s)=>[E(t)?s:ge(e,C(t)),s],P([...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=()=>ve(U),Zt=()=>he(U),_t=e=>ge(U,C(e)),es=e=>Wt((()=>(e=>Xe(e,nt,Jt))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(Ue(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Xe(t,(e=>Xe(e,st))))&&(dt(t),!re(K))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Xe(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)=>x(ge(K,e),(s=>oe(s,t)?yt(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(je,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!re(b),n=!re(m),o=1,zt(1),s&&Pt(1),Nt(1),n&&jt(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&&Pt(0),Nt(0),n&&jt(0),_e(We[1],void 0,Bt,$t),o=0,s=n=!1,O([c,u,S,y,b,D,V,m,J],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)=>ve(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:()=>Ke(K),getValuesJson:()=>Ke(U),getJson:()=>Ke([K,U]),getTablesSchemaJson:()=>Ke(F),getValuesSchemaJson:()=>Ke(j),getSchemaJson:()=>Ke([F,j]),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,pt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),Lt(e,pt(e),n=Tt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=pt(e);se(s,((s,a)=>St(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>x(ot(e,t,s,M(n)?n(Xt(e,t,s)):n),(n=>St(e,pt(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?se(e,((e,t)=>It(t,e))):0)),setValue:(e,t)=>Wt((e=>x(lt(e,M(t)?t(_t(e)):t),(t=>It(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{vt(Ue(e))}catch{}return fs},setJson:e=>{try{const[t,s]=Ue(e);ht(t),vt(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)=>x(ge(K,e),(a=>x(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))}),ye[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,je),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(tt(e),fs),delListener:e=>(et(e),fs),getListenerStats:()=>({}),createStore:Ze};return se({[g]:[0,X],[f]:[0,Y],[h]:[1,_,[Gt]],[h+R]:[1,ae,[Gt]],[w]:[1,le,[Gt]],[L]:[2,ke,[Gt,Ht]],[R]:[2,Me,[Gt,Ht]],[v]:[3,De,[Gt,Ht,Ut],e=>$e(Xt(...e))],InvalidCell:[3,Je],[T]:[0,Ne],[p]:[0,Oe],[I]:[1,Pe,[Zt],e=>$e(_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)};exports.createCheckpoints=Qe,exports.createCustomPersister=(e,t,s,n,a)=>{let o,r,l,i=0,c=0,d=0;const u=[],h=async e=>(2!=i&&(i=1,await g.schedule((async()=>{await e(),i=0}))),g),g={load:async(s,n)=>await h((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(g.stopAutoLoad(),await g.load(s,a),d=1,l=n((async(s,n)=>await h((async()=>{if(n)e.setTransactionChanges(n());else try{e.setContent(s?.()??await t())}catch{}})))),g),stopAutoLoad:()=>(d&&(a(l),l=void 0,d=0),g),save:async t=>(1!=i&&(i=2,await g.schedule((async()=>{try{await s(e.getContent,t)}catch{}i=0}))),g),startAutoSave:async()=>(await g.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();ne(s)&&ne(n)||g.save((()=>[s,n]))})),g),stopAutoSave:()=>(x(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)},exports.createIndexes=Ne,exports.createMetrics=je,exports.createQueries=We,exports.createRelationships=Be,exports.createStore=Ze,exports.defaultSorter=ze;
1
+ "use strict";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,S="Sorted"+w+u,v="Cell",R=v+u,I="Value",T=I+"s",p=I+u,C=e=>t+e,y=Math.max,b=Math.min,V=isFinite,m=(e,t)=>e instanceof t,E=e=>null==e,x=(e,t,s)=>E(e)?s?.():t(e),k=e=>e==s||e==n,M=t=>e(t)==o,D=e=>Array.isArray(e),J=()=>{},A=(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),P=(e,t)=>e.map(t),j=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)=>x(e,(e=>e[t])))(e,t)),te=(e,t)=>(delete e[t],e),se=(e,t)=>P(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)),Se=(e,t,s,n=we)=>(se(t,((t,n)=>s(e,n,t))),fe(e,(s=>ee(t,s)?0:n(e,s))),e),ve=(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)=>ve(e,(e=>ve(e,t,s)),ne),Ie=(e,t,s)=>ve(e,(e=>Re(e,t,s)),ne),Te=(e,t)=>{const s=ue();return ce(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Te(e,Te),Ce=e=>Te(e,pe),ye=(e,t,s,n,a=0)=>x((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=ye(o,t,s,n,a+1);return re(o)&&we(e,t[a]),r})),be=t=>{const s=e(t);return k(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(D(e)||E(e)?e:[e]),xe=(e,t)=>e?.add(t),ke=(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=>xe(a,t)&&s&&e.callListener(t))),n},d=(t,...s)=>x(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),S=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||D(r)&&D(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)}},v=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,S),e.hasTable(a)&&O(e.getRowIds(a),(e=>{oe(w,e)||S(e)})),v(!0),d(t),c(t,0,e.addRowListener(a,null,((e,t,s)=>S(s))),e.addTableListener(a,(()=>v())))},h,()=>fe(i,h),c,d]},Me=(n,a)=>e(n)==s?e=>e(n):n??(()=>a??t),De=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Je=/^\d+$/,Ae=()=>{const e=[];let s=0;return[n=>(n?K(e):null)??t+s++,t=>{Je.test(t)&&W(e)<1e3&&G(e,t)}]},Fe=e=>{let s;const[n,a]=Ae(),o=ue();return[(a,r,l,i=[],c=(()=>[]))=>{s??=e();const d=n(1);return we(o,d,[a,r,l,i,c]),xe(ye(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=>x(ge(o,e),(([,s,n])=>(ye(s,n??[t],void 0,(t=>(de(t,e),re(t)?1:0))),we(o,e),a(e),n))),e=>x(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=De((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=[],S=[],v=(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])},I=(e,t)=>O(((e,t)=>e.splice(0,t))(e,t??W(e)),R),T=()=>I(L,W(L)-o),p=()=>x(s,(()=>{G(L,s),T(),I(S),s=void 0,a=1})),C=()=>{s=H(L),a=1},y=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(i){p();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(),M()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(i){p();const e=Le(l,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&re(we(l,t))&&C(),M()}})),V=(e="")=>(E(s)&&(s=t+n++,we(f,s,[r,l]),J(s,e),r=ue(),l=ue(),a=1),s),m=()=>{B(L)||(((e,...t)=>{e.unshift(...t)})(S,V()),v(0,s),s=H(L),a=1)},k=()=>{B(S)||(G(L,s),s=K(S),v(1,s),a=1)},M=()=>{a&&(h(c),a=0)},D=e=>{const t=V(e);return M(),t},J=(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,T(),Q),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...L],s,[...S]],forEachCheckpoint:e=>fe(w,e),hasCheckpoint:F,getCheckpoint:e=>ge(w,e),goBackward:()=>(m(),M(),Q),goForward:()=>(k(),M(),Q),goTo:e=>{const t=A(L,e)?m:A(S,e)?k:null;for(;!E(t)&&e!=s;)t();return M(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(I(L),I(S),E(s)||R(s),s=void 0,n=0,D(),Q),destroy:()=>{e.delListener(y),e.delListener(b)},getListenerStats:()=>({})};return Z(Q.clear())})),ze=(e,t)=>e<t?-1:1,Ne=De((e=>{const s=ue(),n=ue(),[a,o,r,l,i,c,d,,u,h,g]=ke(e,ue,(e=>E(e)?t:D(e)?P(e,C):C(e))),[f,w,L]=Fe((()=>v)),S=(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)))))))))},v={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(),S=Ee(),v=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=>{xe(L,e),x(ge(v,e),(t=>{de(t,s),re(t)&&(we(v,e),f=1)}))})),ce(a,(e=>{xe(L,e),oe(v,e)||(we(v,e,Ee()),f=1),xe(ge(v,e),s),E(o)||xe(S,e)}))})),t(),re(h)||(g?fe(v,(e=>xe(S,e))):fe(r,(e=>x(ge(u,e),(e=>xe(S,e))))),ce(S,(e=>{const t=(t,s)=>l(ge(h,t),ge(h,s),e),s=[...ge(v,e)];z(s,t)||(we(v,e,Ee(N(s,t))),xe(L,e))}))),(f||g)&&!E(i)){const t=[...v];z(t,i)||(d(e,ue(N(t,i))),f=1)}f&&w(s,[e]),ce(L,(t=>w(n,[e,t])))}),Me(a),x(o,Me)),v},delIndexDefinition:e=>(h(e),v),getStore:a,getIndexIds:o,forEachIndex:e=>r(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,c(e)),hasIndex:l,hasSlice:(e,t)=>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),v),destroy:g,getListenerStats:()=>({})};return Z(v)})),Oe=ue([["avg",[(e,t)=>j(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=>y(...e),(e,t)=>y(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:y(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=>j(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Pe=(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},je=De((e=>{const s=ue(),[n,a,o,r,l,i,c,,d,u,h]=ke(e,J,(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=M(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=Pe(d,h,o,n,u,l);V(g)||(g=void 0),g!=d&&(c(e,g),f(s,[e],g,d))}),Me(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=De((e=>{const s=e.createStore,[n,a,o,r,l,,,u,,g,f,I,T]=ke(e,(()=>!0),J),p=s(),C=s(),y=ue(),b=(e,t,...s)=>O(s,(s=>xe(Le(Le(y,t,ue),e,Ee),s))),V=e=>{x(ge(y,e),(e=>{fe(e,((e,t)=>ce(t,(t=>e.delListener(t))))),ie(e)})),O([C,p],(t=>t.delTable(e)))},m=(e,t,s)=>b(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),k={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=M(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)||M(t)?null:t,a=E(n)?t:s,o=[e,[e,n,M(a)?a:e=>e(a),[],ue()]];return G(r,o),{as:e=>o[0]=e}},where:(e,t,s)=>G(l,M(e)?e:E(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,M(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,M(e)?e:s=>s(e)===t)});const d=ue(o);if(re(d))return k;const h=ue(r);fe(h,((e,[,t])=>x(ge(h,t),(({3:t})=>E(e)?0:G(t,e)))));const g=ue(i);let f=p;if(re(g)&&B(c))f=C;else{m(s,f,C);const e=ue();fe(g,((t,[s,n])=>xe(Le(e,s,Ee),[t,n])));const t=Ee();fe(d,(s=>oe(e,s)?0:xe(t,s)));const n=ue(),a=(t,n,a,o)=>x(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=Pe(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(ye(n,c,void 0,(([,e])=>(de(e,l),re(e)))),u,l,1),h&&a(ye(n,d,(()=>{const e={};return ce(t,(t=>e[t]=f.getCell(s,l,t))),[ue(),Ee(),void 0,e]}),(([,e])=>{xe(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)||T(s,u),we(l,t,E(c)?null:[c,...I(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((()=>I(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})=>x(ge(e,o),(([,t])=>{T(s,t),we(e,o)})))))}))))),k},delQueryDefinition:e=>(V(e),g(e),k),getStore:n,getQueryIds:a,forEachQuery:o,hasQuery:r,getTableId:l,delListener:e=>(C.delListener(e),k),destroy:f,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=C.getListenerStats();return n}};return se({[h]:[1,1],[L]:[0,1],[S]:[0,5],[w]:[1,2],[R]:[0,2],[v]:[1,3]},(([e,t],s)=>{O(e?["get","has","forEach"]:["get"],(e=>k[e+c+s]=(...t)=>C[e+s](...t))),k[d+c+s+i]=(...e)=>C[d+s+i](...q(e,0,t),((s,...n)=>e[t](k,...n)))})),Z(k)})),qe=De((e=>{const s=ue(),n=ue(),a=ue(),o=ue(),[r,l,i,c,d,u,,,h,g,f]=ke(e,(()=>[ue(),ue(),ue(),ue()]),(e=>E(e)?void 0:e+t)),[w,L,S]=Fe((()=>T)),v=(e,t,s)=>x(u(e),(([n,,a])=>{if(!oe(a,t)){const o=Ee();if(d(e)!=I(e))xe(o,t);else{let e=t;for(;!E(e)&&!oe(o,e);)xe(o,e),e=ge(n,e)}if(s)return o;we(a,t,o)}return ge(a,t)})),R=(e,t)=>x(u(e),(([,,e])=>we(e,t))),I=e=>ge(s,e),T={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)||(xe(l,t),x(ge(d,t),(e=>{de(e,n),re(e)&&we(d,t)}))),E(s)||(xe(l,s),oe(d,s)||we(d,s,Ee()),xe(ge(d,s),n)),xe(r,n),we(c,n,s),fe(ge(o,e),(t=>{oe(v(e,t),n)&&xe(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])}))}),Me(l)),T),delRelationshipDefinition:e=>(we(s,e),g(e),T),getStore:r,getRelationshipIds:l,forEachRelationship:t=>i((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:c,getLocalTableId:d,getRemoteTableId:I,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(v(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)=>(v(e,t),w(s,o,[e,t])),delListener:e=>(R(...S(e)),T),destroy:f,getListenerStats:()=>({})};return Z(T)})),Ge=e=>[e,e],He=()=>[ue(),ue()],Ke=e=>[...e],Ue=([e,t])=>e===t,Xe=e=>JSON.stringify(e,((e,t)=>m(t,Map)?U.fromEntries([...t]):t)),Ye=JSON.parse,Ze=(e,t,s)=>E(e)||!_(e)||ne(e)||Y(e)?(s?.(),!1):(se(e,((s,n)=>{t(s,n)||te(e,n)})),!ne(e)),_e=(e,t,s)=>we(e,t,ge(e,t)==-s?void 0:s),et=()=>{let e,t,s=!1,n=!1,o=0;const c=ue(),u=ue(),S=ue(),y=ue(),b=ue(),V=ue(),m=ue(),D=ue(),J=ue(),F=ue(),z=ue(),j=ue(),W=ue(),B=Ee(),$=ue(),H=ue(),K=ue(),U=ue(),X=He(),Y=He(),_=He(),ae=He(),le=He(),ye=He(),ke=He(),Me=He(),De=He(),Je=He(),Qe=He(),Ne=He(),Oe=He(),Pe=He(),je=ue(),We=He(),[Be,$e,qe,tt]=Fe((()=>fs)),st=e=>{if(!Ze(e,((e,t)=>A([r,l],t))))return!1;const t=e[r];return!(!k(t)&&t!=a||(be(e[l])!=t&&te(e,l),0))},nt=(t,s)=>(!e||oe(F,s)||Jt(s))&&Ze(t,((e,t)=>at(s,t,e)),(()=>Jt(s))),at=(e,t,s,n)=>Ze(n?s:it(s,e,t),((n,a)=>x(ot(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>Jt(e,t))),ot=(t,s,n,a)=>e?x(ge(ge(F,t),n),(e=>be(a)!=e[r]?Jt(t,s,n,a,e[l]):a),(()=>Jt(t,s,n,a))):E(be(a))?Jt(t,s,n,a):a,rt=(e,t)=>Ze(t?e:ct(e),((t,s)=>x(lt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>At())),lt=(e,s)=>t?x(ge(j,e),(t=>be(s)!=t[r]?At(e,s,t[l]):s),(()=>At(e,s))):E(be(s))?At(e,s):s,it=(e,t,s)=>(x(ge(z,t),(([n,a])=>{ce(n,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(a,(n=>{ee(e,n)||Jt(t,s,n)}))})),e),ct=e=>(t&&(ce(W,((t,s)=>{ee(e,s)||(e[s]=t)})),ce(B,(t=>{ee(e,t)||At(t)}))),e),dt=e=>Se(F,e,((e,t,s)=>{const n=ue(),a=Ee();Se(Le(F,t,ue),s,((e,t,s)=>{we(e,t,s),x(s[l],(e=>we(n,t,e)),(()=>xe(a,t)))})),we(z,t,[n,a])}),((e,t)=>{we(F,t),we(z,t)})),ut=e=>Se(j,e,((e,t,s)=>{we(j,t,s),x(s[l],(e=>we(W,t,e)),(()=>xe(B,t)))}),((e,t)=>{we(j,t),we(W,t),de(B,t)})),ht=e=>ne(e)?os():es(e),gt=e=>Se(K,e,((e,t,s)=>ft(t,s)),((e,t)=>Ct(t))),ft=(e,t)=>Se(Le(K,e,(()=>(mt(e,1),we($,e,Ae()),we(H,e,ue()),ue()))),t,((t,s,n)=>wt(e,t,s,n)),((t,s)=>yt(e,t,s))),wt=(e,t,s,n,a)=>Se(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)||xt(e,t,n,1);const o=ge(s,n);a!==o&&(kt(e,t,n,o,a),we(s,n,a))},St=(e,t,s,n,a)=>x(ge(t,s),(t=>Lt(e,s,t,n,a)),(()=>wt(e,t,s,it({[n]:a},e,s)))),vt=e=>ne(e)?is():ts(e),Rt=e=>Se(U,e,((e,t,s)=>It(t,s)),((e,t)=>Vt(t))),It=(e,t)=>{oe(U,e)||Mt(e,1);const s=ge(U,e);t!==s&&(Dt(e,s,t),we(U,e,t))},Tt=(e,t)=>{const[s]=ge($,e),n=s(t);return oe(ge(K,e),n)?Tt(e,t):n},pt=e=>ge(K,e)??ft(e,{}),Ct=e=>ft(e,{}),yt=(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=>{kt(e,s,t,ge(n,t)),xt(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 It(e,t);Dt(e,ge(U,e)),Mt(e,-1),we(U,e)},mt=(e,t)=>_e(c,e,t),Et=(e,t,s)=>_e(Le(S,e,ue),t,s),xt=(e,t,s,n)=>{const a=ge(H,e),o=ge(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&_e(Le(u,e,ue),s,n),we(a,s,o!=-n?o+n:null),_e(Le(Le(y,e,ue),t,ue),s,n)},kt=(e,t,s,n,a)=>Le(Le(Le(b,e,ue),t,ue),s,(()=>[n,0]))[1]=a,Mt=(e,t)=>_e(V,e,t),Dt=(e,t,s)=>Le(m,e,(()=>[t,0]))[1]=s,Jt=(e,t,s,n,a)=>(G(Le(Le(Le(D,e,ue),t,ue),s,(()=>[])),n),a),At=(e,t,s)=>(G(Le(J,e,(()=>[])),t),s),Ft=(e,t,s)=>x(ge(ge(ge(b,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(Xt(e,t,s))])),Qt=e=>x(ge(m,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ge(_t(e))])),zt=e=>re(D)||re(Je[e])?0:ce(e?Ce(D):D,((t,s)=>ce(t,((t,n)=>ce(t,((t,a)=>$e(Je[e],[s,n,a],t))))))),Nt=e=>re(J)||re(Qe[e])?0:ce(e?Te(J):J,((t,s)=>$e(Qe[e],[s],t))),Ot=(e,t,s)=>{if(!re(t))return $e(e,s,(()=>ve(t))),1},Pt=e=>{const t=re(ye[e]),s=re(Me[e])&&re(ae[e])&&re(le[e])&&t&&re(Y[e]),n=re(De[e])&&re(ke[e])&&re(_[e])&&re(X[e]);if(!s||!n){const a=e?[Te(c),pe(u),pe(S),Ce(y),Ce(b)]:[c,u,S,y,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(ye[e],[a,null]),xe(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?xe(s,a):de(e,a))))),ce(s,(t=>$e(ye[e],[n,t])))}})),ce(a[3],((t,s)=>ce(t,((t,n)=>Ot(Me[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(De[e],[n,o,i],l,s,Ft),t=a=r=1)})),r&&$e(ke[e],[n,o],Ft)})),a&&$e(_[e],[n],Ft)})),t&&$e(X[e],void 0,Ft)}}},jt=e=>{const t=re(Oe[e]),s=re(Pe[e])&&re(Ne[e]);if(!t||!s){const n=e?[Te(V),Te(m)]:[V,m];if(t||Ot(Oe[e],n[0]),!s){let t;ce(n[1],(([s,n],a)=>{n!==s&&($e(Pe[e],[a],n,s,Qt),t=1)})),t&&$e(Ne[e],void 0,Qt)}}},Wt=(e,...t)=>(us((()=>e(...P(t,C)))),fs),Bt=()=>[ve(b,((e,t)=>-1===ge(c,t)?null:ve(e,((e,s)=>-1===ge(ge(S,t),s)?null:ve(e,(([,e])=>e??null),((e,t)=>Ue(t)))),ne)),ne),ve(m,(([,e])=>e??null),((e,t)=>Ue(t)))],$t=()=>({cellsTouched:s,valuesTouched:n,changedCells:Ie(b,Ke,Ue),invalidCells:Ie(D),changedValues:ve(m,Ke,Ue),invalidValues:ve(J),changedTableIds:ve(c),changedRowIds:Re(S),changedCellIds:Ie(y),changedValueIds:ve(V)}),qt=()=>Ie(K),Gt=()=>he(K),Ht=e=>he(ge(K,C(e))),Kt=(e,t,s,n=0,a)=>{return P(q(N((o=ge(K,C(e)),r=(e,s)=>[E(t)?s:ge(e,C(t)),s],P([...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=()=>ve(U),Zt=()=>he(U),_t=e=>ge(U,C(e)),es=e=>Wt((()=>(e=>Ze(e,nt,Jt))(e)?gt(e):0)),ts=e=>Wt((()=>rt(e)?Rt(e):0)),ss=e=>{try{ht(Ye(e))}catch{}return fs},ns=t=>Wt((()=>{if((e=Ze(t,(e=>Ze(e,st))))&&(dt(t),!re(K))){const e=qt();os(),es(e)}})),as=e=>Wt((()=>{if(t=(e=>Ze(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)=>x(ge(K,e),(s=>oe(s,t)?yt(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(je,void 0,Bt,$t),fs),gs=e=>(o>0&&(o--,0==o&&(s=!re(b),n=!re(m),o=1,zt(1),s&&Pt(1),Nt(1),n&&jt(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&&Pt(0),Nt(0),n&&jt(0),$e(We[1],void 0,Bt,$t),o=0,s=n=!1,O([c,u,S,y,b,D,V,m,J],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)=>ve(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:()=>Xe(K),getValuesJson:()=>Xe(U),getJson:()=>Xe([K,U]),getTablesSchemaJson:()=>Xe(F),getValuesSchemaJson:()=>Xe(j),getSchemaJson:()=>Xe([F,j]),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,pt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>us((()=>{let n;return at(e,n,t)&&(e=C(e),wt(e,pt(e),n=Tt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(at(e,t,s,1)){const n=pt(e);se(s,((s,a)=>St(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Wt(((e,t,s)=>x(ot(e,t,s,M(n)?n(Xt(e,t,s)):n),(n=>St(e,pt(e),t,s,n)))),e,t,s),setValues:ts,setPartialValues:e=>Wt((()=>rt(e,1)?se(e,((e,t)=>It(t,e))):0)),setValue:(e,t)=>Wt((e=>x(lt(e,M(t)?t(_t(e)):t),(t=>It(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{vt(Ye(e))}catch{}return fs},setJson:e=>{try{const[t,s]=Ye(e);ht(t),vt(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)=>x(ge(K,e),(a=>x(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))}),ye[r?1:0],[e,t],[Gt])},addStartTransactionListener:e=>Be(e,je),addWillFinishTransactionListener:e=>Be(e,We[0]),addDidFinishTransactionListener:e=>Be(e,We[1]),callListener:e=>(tt(e),fs),delListener:e=>(qe(e),fs),getListenerStats:()=>({}),createStore:et};return se({[g]:[0,X],[f]:[0,Y],[h]:[1,_,[Gt]],[h+R]:[1,ae,[Gt]],[L]:[1,le,[Gt]],[w]:[2,ke,[Gt,Ht]],[R]:[2,Me,[Gt,Ht]],[v]:[3,De,[Gt,Ht,Ut],e=>Ge(Xt(...e))],InvalidCell:[3,Je],[T]:[0,Ne],[p]:[0,Oe],[I]:[1,Pe,[Zt],e=>Ge(_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)};exports.createCheckpoints=Qe,exports.createCustomPersister=(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:()=>(x(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)},exports.createIndexes=Ne,exports.createMetrics=je,exports.createQueries=$e,exports.createRelationships=qe,exports.createStore=et,exports.defaultSorter=ze;
Binary file
@@ -1 +1 @@
1
- "use strict";const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=n.keys,r=n.freeze,i=(t,n)=>e(t,(t=>t[n])),l=(e,n)=>!t(i(e,n)),u=(t,e)=>(delete t[e],t),c=(t,e)=>((t,e)=>t.map(e))(n.entries(t),(([t,n])=>e(n,t))),s=t=>o(t).length,d=t=>(t=>t instanceof n&&t.constructor==n)(t)&&0==s(t);var a=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{u(n.next(t))}catch(t){r(t)}},l=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);u((n=n.apply(t,e)).next())})),v=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{u(n.next(t))}catch(t){r(t)}},l=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);u((n=n.apply(t,e)).next())}));const y=(t,e)=>[t[e].t,t[e].v],h=(e,n,o,r)=>{const i=t(n)?e:((t,e,n)=>(l(t,e)||(t[e]={}),t[e]))(e,n);let s;return c(o,((t,e)=>{r(i,e,t)&&(s=1)})),c(i,((t,e)=>{l(o,e)||(u(i,e),s=1)})),!t(n)&&d(i)&&u(e,n),s};exports.createAutomergePersister=(n,o,l="tinybase")=>(o.change((t=>t[l]={})),((n,s,f,p,g)=>{let A,m,L,S=0,x=0,C=0;const P=[],w=t=>a(void 0,null,(function*(){return 2!=S&&(S=1,yield b.schedule((()=>a(void 0,null,(function*(){yield t(),S=0}))))),b})),b={load:(t,e)=>a(void 0,null,(function*(){return yield w((()=>a(void 0,null,(function*(){try{n.setContent(yield s())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>a(void 0,[...t],(function*(t={},e={}){return b.stopAutoLoad(),yield b.load(t,e),C=1,L=(t=>{const e=({doc:e})=>t((()=>y(e,l)));return o.on("change",e),e})(((t,e)=>a(void 0,null,(function*(){return yield w((()=>a(void 0,null,(function*(){var o;if(e)n.setTransactionChanges(e());else try{n.setContent(null!=(o=null==t?void 0:t())?o:yield s())}catch(t){}}))))})))),b})),stopAutoLoad:()=>{return C&&(t=L,o.removeListener("change",t),L=void 0,C=0),b;var t},save:r=>a(void 0,null,(function*(){return 1!=S&&(S=2,yield b.schedule((()=>a(void 0,null,(function*(){try{yield((n,r)=>v(void 0,null,(function*(){return o.change((o=>((n,o,r,l)=>{((t,e)=>{d(t[e])&&(t[e]={t:{},v:{}})})(n,o);const[s,a]=y(n,o),v=()=>{f=1};let f=1;if(e(null==l?void 0:l(),(([n,o])=>{f=0,c(n,((n,o)=>f?0:t(n)?u(s,o):e(s[o],(o=>c(n,((n,r)=>f?0:t(n)?u(o,r):e(i(o,r),(e=>c(n,((n,o)=>t(n)?u(e,o):e[o]=n))),v)))),v))),c(o,((e,n)=>f?0:t(e)?u(a,n):a[n]=e))})),f){const[t,e]=r();h(s,void 0,t,((t,e,n)=>h(s,e,n,((t,e,n)=>h(t,e,n,((t,e,n)=>{if(i(t,e)!==n)return t[e]=n,1})))))),h(a,void 0,e,((t,e,n)=>{i(a,e)!==n&&(a[e]=n)}))}})(o,l,n,r)))})))(n.getContent,r)}catch(t){}S=0}))))),b})),startAutoSave:()=>a(void 0,null,(function*(){return yield b.stopAutoSave().save(),A=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();d(n)&&d(o)||b.save((()=>[n,o]))})),b})),stopAutoSave:()=>(e(A,n.delListener),b),schedule:(...e)=>a(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(P,...e),yield a(void 0,null,(function*(){if(!x){for(x=1;!t((e=P,m=e.shift()));)try{yield m()}catch(t){}x=0}var e})),b})),getStore:()=>n,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(b)})(n,(()=>v(void 0,null,(function*(){return 2==s(o.doc[l])?y(o.doc,l):void 0})))));
1
+ "use strict";const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=n.keys,l=n.freeze,u=(t,n)=>e(t,(t=>t[n])),i=(e,n)=>!t(u(e,n)),r=(t,e)=>(delete t[e],t),c=(t,e)=>((t,e)=>t.map(e))(n.entries(t),(([t,n])=>e(n,t))),d=t=>o(t).length,s=t=>(t=>t instanceof n&&t.constructor==n)(t)&&0==d(t),a=t=>new Map(t),v=(t,e)=>null==t?void 0:t.get(e),y=(e,n,o)=>{return t(o)?(u=n,null==(l=e)||l.delete(u),e):null==e?void 0:e.set(n,o);var l,u},h=(t,e,n)=>{var o,l,u;return l=e,null!=(u=null==(o=t)?void 0:o.has(l))&&u||y(t,e,n()),v(t,e)};var f=(t,e,n)=>new Promise(((o,l)=>{var u=t=>{try{r(n.next(t))}catch(t){l(t)}},i=t=>{try{r(n.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((n=n.apply(t,e)).next())}));const p=a(),g=a();var A=(t,e,n)=>new Promise(((o,l)=>{var u=t=>{try{r(n.next(t))}catch(t){l(t)}},i=t=>{try{r(n.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((n=n.apply(t,e)).next())}));const m=(t,e)=>[t[e].t,t[e].v],L=(e,n,o,l)=>{const u=t(n)?e:((t,e,n)=>(i(t,e)||(t[e]={}),t[e]))(e,n);let d;return c(o,((t,e)=>{l(u,e,t)&&(d=1)})),c(u,((t,e)=>{i(o,e)||(r(u,e),d=1)})),!t(n)&&s(u)&&r(e,n),d};exports.createAutomergePersister=(n,o,i="tinybase",a)=>(o.change((t=>t[i]={})),((n,o,u,i,r,c,d=[])=>{let a,A,m,L=0,S=0;h(p,d,(()=>0)),h(g,d,(()=>[]));const w=t=>f(void 0,null,(function*(){return 2!=L&&(L=1,yield x.schedule((()=>f(void 0,null,(function*(){yield t(),L=0}))))),x})),x={load:(t,e)=>f(void 0,null,(function*(){return yield w((()=>f(void 0,null,(function*(){try{n.setContent(yield o())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>f(void 0,[...t],(function*(t={},e={}){return x.stopAutoLoad(),yield x.load(t,e),S=1,m=i(((t,e)=>f(void 0,null,(function*(){if(e){const t=e();yield w((()=>f(void 0,null,(function*(){return n.setTransactionChanges(t)}))))}else yield w((()=>f(void 0,null,(function*(){var e;try{n.setContent(null!=(e=null==t?void 0:t())?e:yield o())}catch(t){null==c||c(t)}}))))})))),x})),stopAutoLoad:()=>(S&&(r(m),m=void 0,S=0),x),save:t=>f(void 0,null,(function*(){return 1!=L&&(L=2,yield x.schedule((()=>f(void 0,null,(function*(){try{yield u(n.getContent,t)}catch(t){null==c||c(t)}L=0}))))),x})),startAutoSave:()=>f(void 0,null,(function*(){return yield x.stopAutoSave().save(),a=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();s(n)&&s(o)||x.save((()=>[n,o]))})),x})),stopAutoSave:()=>(e(a,n.delListener),x),schedule:(...e)=>f(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(v(g,d),...e),yield f(void 0,null,(function*(){if(!v(p,d)){for(y(p,d,1);!t((e=v(g,d),A=e.shift()));)try{yield A()}catch(t){null==c||c(t)}y(p,d,0)}var e})),x})),getStore:()=>n,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(x)})(n,(()=>A(void 0,null,(function*(){return 2==d(o.doc[i])?m(o.doc,i):void 0}))),((n,l)=>A(void 0,null,(function*(){return o.change((o=>((n,o,l,i)=>{((t,e)=>{s(t[e])&&(t[e]={t:{},v:{}})})(n,o);const[d,a]=m(n,o),v=()=>{y=1};let y=1;if(e(null==i?void 0:i(),(([n,o])=>{y=0,c(n,((n,o)=>y?0:t(n)?r(d,o):e(d[o],(o=>c(n,((n,l)=>y?0:t(n)?r(o,l):e(u(o,l),(e=>c(n,((n,o)=>t(n)?r(e,o):e[o]=n))),v)))),v))),c(o,((e,n)=>y?0:t(e)?r(a,n):a[n]=e))})),y){const[t,e]=l();L(d,void 0,t,((t,e,n)=>L(d,e,n,((t,e,n)=>L(t,e,n,((t,e,n)=>{if(u(t,e)!==n)return t[e]=n,1})))))),L(a,void 0,e,((t,e,n)=>{u(a,e)!==n&&(a[e]=n)}))}})(o,i,n,l)))}))),(t=>{const e=({doc:e})=>t((()=>m(e,i)));return o.on("change",e),e}),(t=>{o.removeListener("change",t)}),a));
@@ -1 +1 @@
1
- "use strict";const t=(t,e)=>t instanceof e,e=t=>null==t,n=Object,o=n.keys,r=n.freeze,i=e=>(e=>t(e,n)&&e.constructor==n)(e)&&0==(t=>o(t).length)(e),l=JSON.parse;var s=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{s(n.next(t))}catch(t){r(t)}},l=t=>{try{s(n.throw(t))}catch(t){r(t)}},s=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);s((n=n.apply(t,e)).next())})),u=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{s(n.next(t))}catch(t){r(t)}},l=t=>{try{s(n.throw(t))}catch(t){r(t)}},s=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);s((n=n.apply(t,e)).next())}));const a="storage",c=globalThis.window,d=(o,d,v)=>((o,y,f,h,p)=>{let g,S,A,L=0,m=0,w=0;const x=[],P=t=>s(void 0,null,(function*(){return 2!=L&&(L=1,yield C.schedule((()=>s(void 0,null,(function*(){yield t(),L=0}))))),C})),C={load:(t,e)=>s(void 0,null,(function*(){return yield P((()=>s(void 0,null,(function*(){try{o.setContent(yield y())}catch(n){o.setContent([t,e])}}))))})),startAutoLoad:(...t)=>s(void 0,[...t],(function*(t={},e={}){return C.stopAutoLoad(),yield C.load(t,e),w=1,A=(t=>{const e=e=>{e.storageArea===v&&e.key===d&&t((()=>l(e.newValue)))};return c.addEventListener(a,e),e})(((t,e)=>s(void 0,null,(function*(){return yield P((()=>s(void 0,null,(function*(){var n;if(e)o.setTransactionChanges(e());else try{o.setContent(null!=(n=null==t?void 0:t())?n:yield y())}catch(t){}}))))})))),C})),stopAutoLoad:()=>{return w&&(t=A,c.removeEventListener(a,t),A=void 0,w=0),C;var t},save:e=>s(void 0,null,(function*(){return 1!=L&&(L=2,yield C.schedule((()=>s(void 0,null,(function*(){try{yield(e=o.getContent,u(void 0,null,(function*(){return v.setItem(d,(o=e(),JSON.stringify(o,((e,o)=>t(o,Map)?n.fromEntries([...o]):o))));var o})))}catch(t){}var e;L=0}))))),C})),startAutoSave:()=>s(void 0,null,(function*(){return yield C.stopAutoSave().save(),g=o.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();i(n)&&i(o)||C.save((()=>[n,o]))})),C})),stopAutoSave:()=>{var t,n;return t=g,n=o.delListener,!!e(t)||n(t),C},schedule:(...t)=>s(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(x,...t),yield s(void 0,null,(function*(){if(!m){for(m=1;!e((t=x,S=t.shift()));)try{yield S()}catch(t){}m=0}var t})),C})),getStore:()=>o,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r(C)})(o,(()=>u(void 0,null,(function*(){return l(v.getItem(d))}))));exports.createLocalPersister=(t,e)=>d(t,e,localStorage),exports.createSessionPersister=(t,e)=>d(t,e,sessionStorage);
1
+ "use strict";const t=(t,e)=>t instanceof e,e=t=>null==t,n=Object,o=n.keys,l=n.freeze,r=e=>(e=>t(e,n)&&e.constructor==n)(e)&&0==(t=>o(t).length)(e),i=JSON.parse,u=t=>new Map(t),s=(t,e)=>null==t?void 0:t.get(e),a=(t,n,o)=>{return e(o)?(r=n,null==(l=t)||l.delete(r),t):null==t?void 0:t.set(n,o);var l,r},d=(t,e,n)=>{var o,l,r;return l=e,null!=(r=null==(o=t)?void 0:o.has(l))&&r||a(t,e,n()),s(t,e)};var c=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const v=u(),y=u();var f=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const h="storage",p=globalThis.window,g=(o,u,g,S)=>((t,n,o,i,u,f,h=[])=>{let p,g,S,A=0,L=0;d(v,h,(()=>0)),d(y,h,(()=>[]));const m=t=>c(void 0,null,(function*(){return 2!=A&&(A=1,yield w.schedule((()=>c(void 0,null,(function*(){yield t(),A=0}))))),w})),w={load:(e,o)=>c(void 0,null,(function*(){return yield m((()=>c(void 0,null,(function*(){try{t.setContent(yield n())}catch(n){t.setContent([e,o])}}))))})),startAutoLoad:(...e)=>c(void 0,[...e],(function*(e={},o={}){return w.stopAutoLoad(),yield w.load(e,o),L=1,S=i(((e,o)=>c(void 0,null,(function*(){if(o){const e=o();yield m((()=>c(void 0,null,(function*(){return t.setTransactionChanges(e)}))))}else yield m((()=>c(void 0,null,(function*(){var o;try{t.setContent(null!=(o=null==e?void 0:e())?o:yield n())}catch(t){null==f||f(t)}}))))})))),w})),stopAutoLoad:()=>(L&&(u(S),S=void 0,L=0),w),save:e=>c(void 0,null,(function*(){return 1!=A&&(A=2,yield w.schedule((()=>c(void 0,null,(function*(){try{yield o(t.getContent,e)}catch(t){null==f||f(t)}A=0}))))),w})),startAutoSave:()=>c(void 0,null,(function*(){return yield w.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();r(n)&&r(o)||w.save((()=>[n,o]))})),w})),stopAutoSave:()=>{var n,o;return n=p,o=t.delListener,!!e(n)||o(n),w},schedule:(...t)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(s(y,h),...t),yield c(void 0,null,(function*(){if(!s(v,h)){for(a(v,h,1);!e((t=s(y,h),g=t.shift()));)try{yield g()}catch(t){null==f||f(t)}a(v,h,0)}var t})),w})),getStore:()=>t,destroy:()=>w.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(w)})(o,(()=>f(void 0,null,(function*(){return i(g.getItem(u))}))),(e=>f(void 0,null,(function*(){return g.setItem(u,(o=e(),JSON.stringify(o,((e,o)=>t(o,Map)?n.fromEntries([...o]):o))));var o}))),(t=>{const e=e=>{e.storageArea===g&&e.key===u&&t((()=>i(e.newValue)))};return p.addEventListener(h,e),e}),(t=>p.removeEventListener(h,t)),S);exports.createLocalPersister=(t,e,n)=>g(t,e,localStorage,n),exports.createSessionPersister=(t,e,n)=>g(t,e,sessionStorage,n);