tinybase 4.3.21 → 4.3.23

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 (221) 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-indexed-db.cjs +1 -1
  12. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  14. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  16. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  18. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  20. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  22. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  23. package/lib/cjs/persisters.cjs +1 -1
  24. package/lib/cjs/persisters.cjs.gz +0 -0
  25. package/lib/cjs/store.cjs +1 -1
  26. package/lib/cjs/store.cjs.gz +0 -0
  27. package/lib/cjs/tinybase.cjs +1 -1
  28. package/lib/cjs/tinybase.cjs.gz +0 -0
  29. package/lib/cjs/tools.cjs +1 -1
  30. package/lib/cjs/tools.cjs.gz +0 -0
  31. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  32. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  33. package/lib/cjs/ui-react.cjs +1 -1
  34. package/lib/cjs/ui-react.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  38. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  40. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  42. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  44. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters.cjs +1 -1
  58. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  59. package/lib/cjs-es6/store.cjs +1 -1
  60. package/lib/cjs-es6/store.cjs.gz +0 -0
  61. package/lib/cjs-es6/tinybase.cjs +1 -1
  62. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  63. package/lib/cjs-es6/tools.cjs +1 -1
  64. package/lib/cjs-es6/tools.cjs.gz +0 -0
  65. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  66. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  67. package/lib/cjs-es6/ui-react.cjs +1 -1
  68. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  69. package/lib/debug/persisters/persister-automerge.js +9 -2
  70. package/lib/debug/persisters/persister-browser.js +9 -1
  71. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +9 -1
  72. package/lib/debug/persisters/persister-expo-sqlite.js +9 -1
  73. package/lib/debug/persisters/persister-file.js +9 -1
  74. package/lib/debug/persisters/persister-indexed-db.js +9 -2
  75. package/lib/debug/persisters/persister-partykit-client.js +9 -1
  76. package/lib/debug/persisters/persister-remote.js +9 -1
  77. package/lib/debug/persisters/persister-sqlite-wasm.js +9 -1
  78. package/lib/debug/persisters/persister-sqlite3.js +10 -2
  79. package/lib/debug/persisters/persister-yjs.js +9 -2
  80. package/lib/debug/persisters.js +9 -2
  81. package/lib/debug/store.js +9 -1
  82. package/lib/debug/tinybase.js +9 -1
  83. package/lib/debug/tools.js +11 -2
  84. package/lib/debug/ui-react-dom.js +9 -1
  85. package/lib/debug/ui-react.js +15 -11
  86. package/lib/es6/persisters/persister-automerge.js +1 -1
  87. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  88. package/lib/es6/persisters/persister-browser.js +1 -1
  89. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  90. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  91. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  92. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  93. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  94. package/lib/es6/persisters/persister-file.js +1 -1
  95. package/lib/es6/persisters/persister-file.js.gz +0 -0
  96. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  97. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  98. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  99. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  100. package/lib/es6/persisters/persister-remote.js +1 -1
  101. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  102. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  103. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  104. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  105. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  106. package/lib/es6/persisters/persister-yjs.js +1 -1
  107. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  108. package/lib/es6/persisters.js +1 -1
  109. package/lib/es6/persisters.js.gz +0 -0
  110. package/lib/es6/store.js +1 -1
  111. package/lib/es6/store.js.gz +0 -0
  112. package/lib/es6/tinybase.js +1 -1
  113. package/lib/es6/tinybase.js.gz +0 -0
  114. package/lib/es6/tools.js +1 -1
  115. package/lib/es6/tools.js.gz +0 -0
  116. package/lib/es6/ui-react-dom-debug.js +1 -1
  117. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  118. package/lib/es6/ui-react.js +1 -1
  119. package/lib/es6/ui-react.js.gz +0 -0
  120. package/lib/persisters/persister-automerge.js +1 -1
  121. package/lib/persisters/persister-automerge.js.gz +0 -0
  122. package/lib/persisters/persister-browser.js +1 -1
  123. package/lib/persisters/persister-browser.js.gz +0 -0
  124. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  125. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  126. package/lib/persisters/persister-expo-sqlite.js +1 -1
  127. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  128. package/lib/persisters/persister-file.js +1 -1
  129. package/lib/persisters/persister-file.js.gz +0 -0
  130. package/lib/persisters/persister-indexed-db.js +1 -1
  131. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  132. package/lib/persisters/persister-partykit-client.js +1 -1
  133. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  134. package/lib/persisters/persister-remote.js +1 -1
  135. package/lib/persisters/persister-remote.js.gz +0 -0
  136. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  137. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  138. package/lib/persisters/persister-sqlite3.js +1 -1
  139. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  140. package/lib/persisters/persister-yjs.js +1 -1
  141. package/lib/persisters/persister-yjs.js.gz +0 -0
  142. package/lib/persisters.js +1 -1
  143. package/lib/persisters.js.gz +0 -0
  144. package/lib/store.js +1 -1
  145. package/lib/store.js.gz +0 -0
  146. package/lib/tinybase.js +1 -1
  147. package/lib/tinybase.js.gz +0 -0
  148. package/lib/tools.js +1 -1
  149. package/lib/tools.js.gz +0 -0
  150. package/lib/ui-react.js +1 -1
  151. package/lib/ui-react.js.gz +0 -0
  152. package/lib/umd/persisters/persister-automerge.js +1 -1
  153. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  154. package/lib/umd/persisters/persister-browser.js +1 -1
  155. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  156. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  157. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  158. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  159. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  160. package/lib/umd/persisters/persister-file.js +1 -1
  161. package/lib/umd/persisters/persister-file.js.gz +0 -0
  162. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  163. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  164. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  165. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  166. package/lib/umd/persisters/persister-remote.js +1 -1
  167. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  168. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  169. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  170. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  171. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  172. package/lib/umd/persisters/persister-yjs.js +1 -1
  173. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  174. package/lib/umd/persisters.js +1 -1
  175. package/lib/umd/persisters.js.gz +0 -0
  176. package/lib/umd/store.js +1 -1
  177. package/lib/umd/store.js.gz +0 -0
  178. package/lib/umd/tinybase.js +1 -1
  179. package/lib/umd/tinybase.js.gz +0 -0
  180. package/lib/umd/tools.js +1 -1
  181. package/lib/umd/tools.js.gz +0 -0
  182. package/lib/umd/ui-react-dom-debug.js +1 -1
  183. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  184. package/lib/umd/ui-react.js +1 -1
  185. package/lib/umd/ui-react.js.gz +0 -0
  186. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  187. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  188. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  189. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  190. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  191. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  192. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  193. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  194. package/lib/umd-es6/persisters/persister-file.js +1 -1
  195. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  196. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  197. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  198. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  199. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  200. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  201. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  202. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  203. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  204. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  205. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  206. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  207. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  208. package/lib/umd-es6/persisters.js +1 -1
  209. package/lib/umd-es6/persisters.js.gz +0 -0
  210. package/lib/umd-es6/store.js +1 -1
  211. package/lib/umd-es6/store.js.gz +0 -0
  212. package/lib/umd-es6/tinybase.js +1 -1
  213. package/lib/umd-es6/tinybase.js.gz +0 -0
  214. package/lib/umd-es6/tools.js +1 -1
  215. package/lib/umd-es6/tools.js.gz +0 -0
  216. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  217. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  218. package/lib/umd-es6/ui-react.js +1 -1
  219. package/lib/umd-es6/ui-react.js.gz +0 -0
  220. package/package.json +14 -14
  221. package/readme.md +2 -2
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=setInterval,r=clearInterval,l=(a,t)=>a instanceof t,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),E=a=>t(a)==n,d=(a,t,e)=>a.slice(t,e),u=a=>a.length,f=async a=>o.all(a),p=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),m=a=>0==u(a),v=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),R=Object,O=R.keys,S=R.freeze,b=(a=[])=>R.fromEntries(a),g=(...a)=>R.assign({},...a),C=(a,t)=>T(R.entries(a),(([a,e])=>t(e,a))),D=a=>R.values(a),I=a=>u(O(a)),F=a=>(a=>l(a,R)&&a.constructor==R)(a)&&0==I(a),M=a=>new Map(a),$=a=>[...a?.keys()??[]],P=(a,t)=>a?.get(t),x=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>y(e)?(N(a,t),a):a?.set(t,e),B=(a,t,e)=>(L(a,t)||_(a,t,e()),P(a,t)),j=(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)=>!y(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||y(a)?a:[a]),W=(a,t)=>a?.add(t),q="_",k="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,e)=>{const n=M();return[async()=>j(n,b(await f(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,b(T(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,j(B(n,t,M),e,((a,t,e)=>{e!=P(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!y(P(P(n,a),t)))(t,e)?b(v(T(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!y(a)&&!F(t)))):{},async(t,e,i,o,c,r=!1)=>{const l=H();C(i??{},(a=>T(O(a??{}),(a=>W(l,a)))));const w=h(l);if(!r&&c&&m(w)&&L(n,t))return await a("DROP TABLE"+J(t)),void _(n,t);if(m(w)||L(n,t)){const s=P(n,t),i=H($(s));await f([...T(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),_(s,e,""))})),...!r&&o?T(h(i),(async n=>{n!=e&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),_(s,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(e)} PRIMARY KEY ON CONFLICT REPLACE${p(T(w,(a=>s+J(a))))});`),_(n,t,M([[e,""],...T(w,(a=>[a,""]))]));if(r)y(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await f(C(i,(async(s,n)=>{y(s)?await a("DELETE FROM"+J(t)+Y+J(e)+"=?",[n]):m(w)||await G(a,t,e,O(s),[n,...D(s)])})));else if(m(w))L(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const s=v($(P(n,t)),(a=>a!=e)),o=[],c=[];C(i??{},((a,t)=>{A(o,t,...T(s,(t=>a?.[t]))),A(c,t)})),await G(a,t,e,s,o),await a("DELETE FROM"+J(t)+Y+J(e)+"NOT IN("+K(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},G=async(a,t,e,n,o)=>await a("INSERT INTO"+J(t)+"("+J(e)+p(T(n,(a=>s+J(a))))+")VALUES"+d(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+J(e)+")DO UPDATE SET"+p(T(n,(a=>J(a)+"=excluded."+J(a))),s),o),K=a=>p(T(a,(()=>"?")),s),V=JSON.parse,Q=M(),X=M(),Z=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let l,E,d,u=0,f=0;B(Q,r,(()=>0)),B(X,r,(()=>[]));const p=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,d=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(d),d=void 0,f=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),l=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(w(l,a.delListener),l=void 0,T),schedule:async(...a)=>(A(P(X,r),...a),await(async()=>{if(!P(Q,r)){for(_(Q,r,1);!y((a=P(X,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}_(Q,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),S(T)},aa="store",ta=(a,t,e,s,n,[i],o,c)=>{const[r,y,w,E]=z(t,o,n);return Z(a,(async()=>await E((async()=>(await r(),V((await y(i,k))[q]?.[aa]??"null"))))),(async a=>await E((async()=>{var t;await r(),await w(i,k,{[q]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>l(t,Map)?R.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},ea=(a,t,e,s,n,[i,o,[c,r,l]],w,E)=>{const[d,u,p,T]=z(t,w,n),m=async(a,t)=>await f(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await p(e,s,c,n,i,t)}))),A=async(a,t)=>r?await p(l,k,{[q]:a},!0,!0,t):null;return Z(a,(async()=>await T((async()=>{await d();const a=await(async()=>b(v(await f(x(i,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>c?(await u(l,k))[q]:{})();return F(a)&&y(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await d(),y(t)){const[t,e]=a();await m(t),await A(e)}else{const[a,e]=t();await m(a,!0),await A(e,!0)}}))),e,s,n,["getDb",E],E)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",oa="tableId",ca="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[ca]:e+"_values"},ya=(a,t,e,s)=>{const n=M();return C(a,((a,i)=>{const o=d(D(g(t,E(a)?{[e]:a}:a)),0,I(t));y(o[0])||s(i,o[0])||_(n,i,o)})),n},wa="pragma ",Ea="data_version",da="schema_version",ua=(a,t,s,n,i,o,l,y)=>{let w,u;const[f,p,T,m]=(a=>{const t=(a=>g(ra,E(a)?{storeTableName:a}:a??{}))(a),s=t[na];if(t.mode==sa){const{storeTableName:a=e}=t;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=d(D(g(la,o)),0,I(la)),r=c[2],l=H(r);return[0,s,[ya(n,{[oa]:null,[ia]:k},oa,(a=>W(l,a)&&a==r)),ya(i,{[ca]:null,[ia]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(f?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+Ea))[0][Ea],e=(await s(wa+da))[0][da];t==(w??=t)&&e==(u??=e)||(a(),w=t,u=e)}catch{}}),1e3*p),n((t=>m.has(t)?a():0))]),(([a,t])=>{r(a),w=u=null,i(t)}),l,T,h(m),y)};a.createExpoSqlitePersister=(a,t,e,s,n)=>ua(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)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=setInterval,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==n,E=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>o.all(a),p=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),T=a=>0==d(a),m=(a,t)=>a.filter(t),v=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,O=a=>N.getPrototypeOf(a),R=N.keys,g=N.freeze,S=(a=[])=>N.fromEntries(a),b=(...a)=>N.assign({},...a),C=(a,t)=>f(N.entries(a),(([a,e])=>t(e,a))),D=a=>N.values(a),I=a=>d(R(a)),F=a=>(a=>!l(a)&&y(O(a),(a=>a==N.prototype||l(O(a))),(()=>!0)))(a)&&0==I(a),M=a=>new Map(a),P=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),x=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>l(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(A(a,t)||_(a,t,e()),$(a,t)),j=(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)=>!l(((a,t)=>y(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),q="_",k="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,e)=>{const n=M();return[async()=>j(n,S(await u(f(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,S(f(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,j(B(n,t,M),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!l($($(n,a),t)))(t,e)?S(m(f(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!F(t)))):{},async(t,e,i,o,c,r=!1)=>{const y=H();C(i??{},(a=>f(R(a??{}),(a=>W(y,a)))));const w=L(y);if(!r&&c&&T(w)&&A(n,t))return await a("DROP TABLE"+J(t)),void _(n,t);if(T(w)||A(n,t)){const s=$(n,t),i=H(P(s));await u([...f(w,(async e=>{h(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),_(s,e,""))})),...!r&&o?f(L(i),(async n=>{n!=e&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),_(s,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(e)} PRIMARY KEY ON CONFLICT REPLACE${p(f(w,(a=>s+J(a))))});`),_(n,t,M([[e,""],...f(w,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await u(C(i,(async(s,n)=>{l(s)?await a("DELETE FROM"+J(t)+Y+J(e)+"=?",[n]):T(w)||await G(a,t,e,R(s),[n,...D(s)])})));else if(T(w))A(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const s=m(P($(n,t)),(a=>a!=e)),o=[],c=[];C(i??{},((a,t)=>{v(o,t,...f(s,(t=>a?.[t]))),v(c,t)})),await G(a,t,e,s,o),await a("DELETE FROM"+J(t)+Y+J(e)+"NOT IN("+K(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},G=async(a,t,e,n,o)=>await a("INSERT INTO"+J(t)+"("+J(e)+p(f(n,(a=>s+J(a))))+")VALUES"+E(i(`,(?${i(",?",d(n))})`,d(o)/(d(n)+1)),1)+"ON CONFLICT("+J(e)+")DO UPDATE SET"+p(f(n,(a=>J(a)+"=excluded."+J(a))),s),o),K=a=>p(f(a,(()=>"?")),s),V=JSON.parse,Q=M(),X=M(),Z=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let w,E,d,u=0,p=0;B(Q,r,(()=>0)),B(X,r,(()=>[]));const f=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(y(w,a.delListener),w=void 0,T),schedule:async(...a)=>(v($(X,r),...a),await(async()=>{if(!$(Q,r)){for(_(Q,r,1);!l((a=$(X,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}_(Q,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),g(T)},aa="store",ta=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return Z(a,(async()=>await w((async()=>(await r(),V((await l(i,k))[q]?.[aa]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,k,{[q]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},ea=(a,t,e,s,n,[i,o,[c,r,y]],w,E)=>{const[d,p,f,T]=z(t,w,n),v=async(a,t)=>await u(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await f(e,s,c,n,i,t)}))),A=async(a,t)=>r?await f(y,k,{[q]:a},!0,!0,t):null;return Z(a,(async()=>await T((async()=>{await d();const a=await(async()=>S(m(await u(x(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>c?(await p(y,k))[q]:{})();return F(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await d(),l(t)){const[t,e]=a();await v(t),await A(e)}else{const[a,e]=t();await v(a,!0),await A(e,!0)}}))),e,s,n,["getDb",E],E)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",oa="tableId",ca="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[ca]:e+"_values"},ya=(a,t,e,s)=>{const n=M();return C(a,((a,i)=>{const o=E(D(b(t,w(a)?{[e]:a}:a)),0,I(t));l(o[0])||s(i,o[0])||_(n,i,o)})),n},wa="pragma ",Ea="data_version",da="schema_version",ua=(a,t,s,n,i,o,l,y)=>{let d,u;const[p,f,T,m]=(a=>{const t=(a=>b(ra,w(a)?{storeTableName:a}:a??{}))(a),s=t[na];if(t.mode==sa){const{storeTableName:a=e}=t;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(D(b(la,o)),0,I(la)),r=c[2],l=H(r);return[0,s,[ya(n,{[oa]:null,[ia]:k},oa,(a=>W(l,a)&&a==r)),ya(i,{[ca]:null,[ia]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(p?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+Ea))[0][Ea],e=(await s(wa+da))[0][da];t==(d??=t)&&e==(u??=e)||(a(),d=t,u=e)}catch{}}),1e3*f),n((t=>m.has(t)?a():0))]),(([a,t])=>{r(a),d=u=null,i(t)}),l,T,L(m),y)};a.createExpoSqlitePersister=(a,t,e,s,n)=>ua(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)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqlite={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=(t,e)=>t instanceof e,i=t=>null==t,o=Object,r=o.keys,c=o.freeze,u=t=>(t=>n(t,o)&&t.constructor==o)(t)&&0==(t=>r(t).length)(t),d=JSON.parse,f=t=>new Map(t),y=(t,e)=>t?.get(e),l=(t,e,a)=>{return i(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},p=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||l(t,e,a()),y(t,e)},h=f(),w=f();t.createFilePersister=(t,r,f)=>((t,e,a,s,n,o,[r,d]=[],f=[])=>{let v,g,A,S=0,m=0;p(h,f,(()=>0)),p(w,f,(()=>[]));const F=async t=>(2!=S&&(S=1,await L.schedule((async()=>{await t(),S=0}))),L),L={load:async(a,s)=>await F((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(L.stopAutoLoad(),await L.load(a,n),m=1,A=s((async(a,s)=>{if(s){const e=s();await F((async()=>t.setTransactionChanges(e)))}else await F((async()=>{try{t.setContent(a?.()??await e())}catch(t){o?.(t)}}))})),L),stopAutoLoad:()=>(m&&(n(A),A=void 0,m=0),L),save:async e=>(1!=S&&(S=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){o?.(t)}S=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();u(a)&&u(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>{var e,a;return e=v,a=t.delListener,i(e)||a(e),v=void 0,L},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(y(w,f),...t),await(async()=>{if(!y(h,f)){for(l(h,f,1);!i((t=y(w,f),g=t.shift()));)try{await g()}catch(t){o?.(t)}l(h,f,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>d),c(L)})(t,(async()=>d(await a.readFile(r,s))),(async t=>{return await a.writeFile(r,(e=t(),JSON.stringify(e,((t,e)=>n(e,Map)?o.fromEntries([...e]):e))),s);var e}),(t=>e.watch(r,(()=>t()))),(t=>t?.close()),f,["getFilePath",r])},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
1
+ var t,e;t=this,e=function(t,e,a){"use strict";const s="utf8",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),i=Object,r=t=>i.getPrototypeOf(t),c=i.keys,y=i.freeze,f=t=>(t=>!n(t)&&o(r(t),(t=>t==i.prototype||n(r(t))),(()=>!0)))(t)&&0==(t=>c(t).length)(t),d=JSON.parse,u=t=>new Map(t),l=(t,e)=>t?.get(e),p=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},h=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||p(t,e,a()),l(t,e)},w=u(),v=u();t.createFilePersister=(t,r,c)=>((t,e,a,s,i,r,[c,d]=[],u=[])=>{let g,A,S,m=0,F=0;h(w,u,(()=>0)),h(v,u,(()=>[]));const L=async t=>(2!=m&&(m=1,await C.schedule((async()=>{await t(),m=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(C.stopAutoLoad(),await C.load(a,n),F=1,S=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){r?.(t)}}))})),C),stopAutoLoad:()=>(F&&(i(S),S=void 0,F=0),C),save:async e=>(1!=m&&(m=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){r?.(t)}m=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();f(a)&&f(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(o(g,t.delListener),g=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(l(v,u),...t),await(async()=>{if(!l(w,u)){for(p(w,u,1);!n((t=l(v,u),A=t.shift()));)try{await A()}catch(t){r?.(t)}p(w,u,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),y(C)})(t,(async()=>d(await a.readFile(r,s))),(async t=>{return await a.writeFile(r,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?i.fromEntries([...e]):e))),s);var e}),(t=>e.watch(r,(()=>t()))),(t=>t?.close()),c,["getFilePath",r])},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("fs"),require("fs/promises")):"function"==typeof define&&define.amd?define(["exports","fs","fs/promises"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterFile={},t.fs,t["fs/promises"]);
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=Promise,a=setInterval,s=clearInterval,n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),c=t=>new e(t),r=async t=>e.all(t),i=(t,e)=>t.map(e),d=(t,...e)=>t.push(...e),y=Object,l=y.keys,u=y.freeze,w=t=>(t=>t instanceof y&&t.constructor==y)(t)&&0==(t=>l(t).length)(t),h=t=>new Map(t),p=(t,e)=>t?.get(e),f=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},v=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),p(t,e)},g=h(),b=h(),A=globalThis.window,S=["t","v"],x={keyPath:"k"},j=async(t,e)=>{const a=((e,a)=>i(y.entries(e),(([e,a])=>m(t,"put",{k:e,v:a}))))(e);i(await m(t,"getAllKeys"),(s=>((t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)))(e,s)?0:d(a,m(t,"delete",s)))),await r(a)},m=async(t,e,a)=>c(((s,n)=>{const o=t[e](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${e} error`)}));t.createIndexedDbPersister=(t,e,l=1,h)=>{const D=async(t,a=[],s=0)=>c(((n,o)=>{const c=A.indexedDB.open(e,s?2:void 0);c.onupgradeneeded=()=>s&&i(S,(t=>{try{c.result.createObjectStore(t,x)}catch{}})),c.onsuccess=async()=>{try{const e=c.result.transaction(S,"readwrite"),s=await r(i(S,(async(s,n)=>await t(e.objectStore(s),a[n]))));c.result.close(),n(s)}catch(t){o(t)}},c.onerror=()=>o("indexedDB.open error")}));return((t,e,a,s,c,r,[i,y]=[],l=[])=>{let h,A,S,x=0,j=0;v(g,l,(()=>0)),v(b,l,(()=>[]));const m=async t=>(2!=x&&(x=1,await D.schedule((async()=>{await t(),x=0}))),D),D={load:async(a,s)=>await m((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(D.stopAutoLoad(),await D.load(a,n),j=1,S=s((async(a,s)=>{if(s){const e=s();await m((async()=>t.setTransactionChanges(e)))}else await m((async()=>{try{t.setContent(a?.()??await e())}catch(t){r?.(t)}}))})),D),stopAutoLoad:()=>(j&&(c(S),S=void 0,j=0),D),save:async e=>(1!=x&&(x=2,await D.schedule((async()=>{try{await a(t.getContent,e)}catch(t){r?.(t)}x=0}))),D),startAutoSave:async()=>(await D.stopAutoSave().save(),h=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();w(a)&&w(s)||D.save((()=>[a,s]))})),D),stopAutoSave:()=>(o(h,t.delListener),h=void 0,D),schedule:async(...t)=>(d(p(b,l),...t),await(async()=>{if(!p(g,l)){for(f(g,l,1);!n((t=p(b,l),A=t.shift()));)try{await A()}catch(t){r?.(t)}f(g,l,0)}var t})(),D),getStore:()=>t,destroy:()=>D.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(D[i]=()=>y),u(D)})(t,(async()=>await D((async t=>((t=[])=>y.fromEntries(t))(i(await m(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await D((async(t,e)=>await j(t,e)),t(),1)),(t=>a(t,1e3*l)),(t=>s(t)),h,["getDbName",e])},t.objectStoreMatch=j},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterIndexedDb={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=Promise,a=setInterval,s=clearInterval,n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=t=>new e(t),c=async t=>e.all(t),i=(t,e)=>t.map(e),d=(t,...e)=>t.push(...e),y=Object,l=t=>y.getPrototypeOf(t),u=y.keys,w=y.freeze,p=t=>(t=>!n(t)&&o(l(t),(t=>t==y.prototype||n(l(t))),(()=>!0)))(t)&&0==(t=>u(t).length)(t),h=t=>new Map(t),f=(t,e)=>t?.get(e),v=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},g=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||v(t,e,a()),f(t,e)},b=h(),A=h(),S=globalThis.window,x=["t","v"],j={keyPath:"k"},m=async(t,e)=>{const a=((e,a)=>i(y.entries(e),(([e,a])=>D(t,"put",{k:e,v:a}))))(e);i(await D(t,"getAllKeys"),(s=>((t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)))(e,s)?0:d(a,D(t,"delete",s)))),await c(a)},D=async(t,e,a)=>r(((s,n)=>{const o=t[e](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${e} error`)}));t.createIndexedDbPersister=(t,e,l=1,u)=>{const h=async(t,a=[],s=0)=>r(((n,o)=>{const r=S.indexedDB.open(e,s?2:void 0);r.onupgradeneeded=()=>s&&i(x,(t=>{try{r.result.createObjectStore(t,j)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(x,"readwrite"),s=await c(i(x,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),n(s)}catch(t){o(t)}},r.onerror=()=>o("indexedDB.open error")}));return((t,e,a,s,r,c,[i,y]=[],l=[])=>{let u,h,S,x=0,j=0;g(b,l,(()=>0)),g(A,l,(()=>[]));const m=async t=>(2!=x&&(x=1,await D.schedule((async()=>{await t(),x=0}))),D),D={load:async(a,s)=>await m((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(D.stopAutoLoad(),await D.load(a,n),j=1,S=s((async(a,s)=>{if(s){const e=s();await m((async()=>t.setTransactionChanges(e)))}else await m((async()=>{try{t.setContent(a?.()??await e())}catch(t){c?.(t)}}))})),D),stopAutoLoad:()=>(j&&(r(S),S=void 0,j=0),D),save:async e=>(1!=x&&(x=2,await D.schedule((async()=>{try{await a(t.getContent,e)}catch(t){c?.(t)}x=0}))),D),startAutoSave:async()=>(await D.stopAutoSave().save(),u=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();p(a)&&p(s)||D.save((()=>[a,s]))})),D),stopAutoSave:()=>(o(u,t.delListener),u=void 0,D),schedule:async(...t)=>(d(f(A,l),...t),await(async()=>{if(!f(b,l)){for(v(b,l,1);!n((t=f(A,l),h=t.shift()));)try{await h()}catch(t){c?.(t)}v(b,l,0)}var t})(),D),getStore:()=>t,destroy:()=>D.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(D[i]=()=>y),w(D)})(t,(async()=>await h((async t=>((t=[])=>y.fromEntries(t))(i(await D(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await h((async(t,e)=>await m(t,e)),t(),1)),(t=>a(t,1e3*l)),(t=>s(t)),u,["getDbName",e])},t.objectStoreMatch=m},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterIndexedDb={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=(t,e)=>t instanceof e,n=t=>null==t,r=(t,e,a)=>n(t)?a?.():e(t),i=t=>e(t)==s,c=t=>t.length,d=Object,y=d.keys,u=d.freeze,f=t=>(t=>o(t,d)&&t.constructor==d)(t)&&0==(t=>c(y(t)))(t),h=t=>JSON.stringify(t,((t,e)=>o(e,Map)?d.fromEntries([...e]):e)),l=JSON.parse,p="/store",v=t=>new Map(t),w=(t,e)=>t?.get(e),g=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},m=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||g(t,e,a()),w(t,e)},P=v(),S=v(),A="message";t.createPartyKitPersister=(t,e,s,o)=>{const{host:d,room:y}=e.partySocketOptions,{storeProtocol:v="https",storePath:L=p,messagePrefix:C=a}={...i(s)?{storeProtocol:s}:s},T=v+"://"+d+"/parties/"+e.name+"/"+y+L,b=async t=>await(await fetch(T,{...t?{method:"PUT",body:h(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,o,i,[c,d]=[],y=[])=>{let h,l,p,v=0,A=0;m(P,y,(()=>0)),m(S,y,(()=>[]));const L=async t=>(2!=v&&(v=1,await C.schedule((async()=>{await t(),v=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>(C.stopAutoLoad(),await C.load(a,o),A=1,p=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(A&&(o(p),p=void 0,A=0),C),save:async e=>(1!=v&&(v=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),h=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();f(a)&&f(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(r(h,t.delListener),h=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(S,y),...t),await(async()=>{if(!w(P,y)){for(g(P,y,1);!n((t=w(S,y),l=t.shift()));)try{await l()}catch(t){i?.(t)}g(P,y,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),u(C)})(t,(async()=>await b()),(async(t,a)=>{var s,o;a?e.send((s=C,o=a(),s+"s"+(i(o)?o:h(o)))):await b(t())}),(t=>{const a=e=>r(((t,e,a)=>{const s=c(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],l((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(C,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),o,["getConnection",e])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>typeof t,a="",s=e(a),o=t=>null==t,n=(t,e,a)=>o(t)?a?.():e(t),r=t=>e(t)==s,i=t=>t.length,c=Object,d=t=>c.getPrototypeOf(t),y=c.keys,p=c.freeze,u=t=>(t=>!o(t)&&n(d(t),(t=>t==c.prototype||o(d(t))),(()=>!0)))(t)&&0==(t=>i(y(t)))(t),f=t=>JSON.stringify(t,((t,e)=>e instanceof Map?c.fromEntries([...e]):e)),h=JSON.parse,l="/store",v=t=>new Map(t),w=(t,e)=>t?.get(e),g=(t,e,a)=>{return o(a)?(s=t,n=e,s?.delete(n),t):t?.set(e,a);var s,n},m=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||g(t,e,a()),w(t,e)},P=v(),S=v(),A="message";t.createPartyKitPersister=(t,e,s,c)=>{const{host:d,room:y}=e.partySocketOptions,{storeProtocol:v="https",storePath:L=l,messagePrefix:C=a}={...r(s)?{storeProtocol:s}:s},T=v+"://"+d+"/parties/"+e.name+"/"+y+L,b=async t=>await(await fetch(T,{...t?{method:"PUT",body:f(t)}:{},mode:"cors",cache:"no-store"})).json();return((t,e,a,s,r,i,[c,d]=[],y=[])=>{let f,h,l,v=0,A=0;m(P,y,(()=>0)),m(S,y,(()=>[]));const L=async t=>(2!=v&&(v=1,await C.schedule((async()=>{await t(),v=0}))),C),C={load:async(a,s)=>await L((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},o={})=>(C.stopAutoLoad(),await C.load(a,o),A=1,l=s((async(a,s)=>{if(s){const e=s();await L((async()=>t.setTransactionChanges(e)))}else await L((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),C),stopAutoLoad:()=>(A&&(r(l),l=void 0,A=0),C),save:async e=>(1!=v&&(v=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}v=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),f=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();u(a)&&u(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>(n(f,t.delListener),f=void 0,C),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(S,y),...t),await(async()=>{if(!w(P,y)){for(g(P,y,1);!o((t=w(S,y),h=t.shift()));)try{await h()}catch(t){i?.(t)}g(P,y,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(C[c]=()=>d),p(C)})(t,(async()=>await b()),(async(t,a)=>{var s,o;a?e.send((s=C,o=a(),s+"s"+(r(o)?o:f(o)))):await b(t())}),(t=>{const a=e=>n(((t,e,a)=>{const s=i(t);return((t,e)=>t.startsWith(e))(e,t)?[e[s],h((o=e,n=s+1,o.slice(n,void 0)))]:void 0;var o,n})(C,e.data),(([e,a])=>{"s"==e&&t(void 0,(()=>a))}));return e.addEventListener(A,a),a}),(t=>{e.removeEventListener(A,t)}),c,["getConnection",e])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterPartyKitClient={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=setInterval,a=clearInterval,s=(t,e)=>t instanceof e,n=t=>null==t,o=Object,r=o.keys,c=o.freeze,i=t=>(t=>s(t,o)&&t.constructor==o)(t)&&0==(t=>r(t).length)(t),d=JSON.parse,y=t=>new Map(t),u=(t,e)=>t?.get(e),l=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},f=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||l(t,e,a()),u(t,e)},h=y(),p=y(),w=t=>t.headers.get("ETag");t.createRemotePersister=(t,r,y,v=5,g)=>{let A;return((t,e,a,s,o,r,[d,y]=[],w=[])=>{let v,g,A,S=0,T=0;f(h,w,(()=>0)),f(p,w,(()=>[]));const m=async t=>(2!=S&&(S=1,await C.schedule((async()=>{await t(),S=0}))),C),C={load:async(a,s)=>await m((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(C.stopAutoLoad(),await C.load(a,n),T=1,A=s((async(a,s)=>{if(s){const e=s();await m((async()=>t.setTransactionChanges(e)))}else await m((async()=>{try{t.setContent(a?.()??await e())}catch(t){r?.(t)}}))})),C),stopAutoLoad:()=>(T&&(o(A),A=void 0,T=0),C),save:async e=>(1!=S&&(S=2,await C.schedule((async()=>{try{await a(t.getContent,e)}catch(t){r?.(t)}S=0}))),C),startAutoSave:async()=>(await C.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();i(a)&&i(s)||C.save((()=>[a,s]))})),C),stopAutoSave:()=>{var e,a;return e=v,a=t.delListener,n(e)||a(e),v=void 0,C},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(u(p,w),...t),await(async()=>{if(!u(h,w)){for(l(h,w,1);!n((t=u(p,w),g=t.shift()));)try{await g()}catch(t){r?.(t)}l(h,w,0)}var t})(),C),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(C[d]=()=>y),c(C)})(t,(async()=>{const t=await fetch(r);return A=w(t),d(await t.text())}),(async t=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>s(e,Map)?o.fromEntries([...e]):e)))});var e}),(t=>e((async()=>{const e=await fetch(r,{method:"HEAD"}),a=w(e);n(A)||n(a)||a==A||(A=a,t())}),1e3*v)),(t=>a(t)),g,["getUrls",[r,y]])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=setInterval,a=clearInterval,s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=Object,r=t=>o.getPrototypeOf(t),i=o.keys,c=o.freeze,y=t=>(t=>!s(t)&&n(r(t),(t=>t==o.prototype||s(r(t))),(()=>!0)))(t)&&0==(t=>i(t).length)(t),d=JSON.parse,u=t=>new Map(t),f=(t,e)=>t?.get(e),l=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},h=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||l(t,e,a()),f(t,e)},p=u(),w=u(),v=t=>t.headers.get("ETag");t.createRemotePersister=(t,r,i,u=5,g)=>{let A;return((t,e,a,o,r,i,[d,u]=[],v=[])=>{let g,A,S,T=0,m=0;h(p,v,(()=>0)),h(w,v,(()=>[]));const C=async t=>(2!=T&&(T=1,await L.schedule((async()=>{await t(),T=0}))),L),L={load:async(a,s)=>await C((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},s={})=>(L.stopAutoLoad(),await L.load(a,s),m=1,S=o((async(a,s)=>{if(s){const e=s();await C((async()=>t.setTransactionChanges(e)))}else await C((async()=>{try{t.setContent(a?.()??await e())}catch(t){i?.(t)}}))})),L),stopAutoLoad:()=>(m&&(r(S),S=void 0,m=0),L),save:async e=>(1!=T&&(T=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){i?.(t)}T=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();y(a)&&y(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(n(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(f(w,v),...t),await(async()=>{if(!f(p,v)){for(l(p,v,1);!s((t=f(w,v),A=t.shift()));)try{await A()}catch(t){i?.(t)}l(p,v,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>u),c(L)})(t,(async()=>{const t=await fetch(r);return A=v(t),d(await t.text())}),(async t=>{return await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?o.fromEntries([...e]):e)))});var e}),(t=>e((async()=>{const e=await fetch(r,{method:"HEAD"}),a=v(e);s(A)||s(a)||a==A||(A=a,t())}),1e3*u)),(t=>a(t)),g,["getUrls",[r,i]])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterRemote={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=setInterval,r=clearInterval,l=(a,t)=>a instanceof t,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),u=a=>t(a)==n,d=(a,t,e)=>a.slice(t,e),E=a=>a.length,p=async a=>o.all(a),f=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),T=a=>0==E(a),v=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),N=Object,O=N.keys,S=N.freeze,b=(a=[])=>N.fromEntries(a),C=(...a)=>N.assign({},...a),D=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),g=a=>N.values(a),I=a=>E(O(a)),_=a=>(a=>l(a,N)&&a.constructor==N)(a)&&0==I(a),M=a=>new Map(a),F=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>y(e)?(R(a,t),a):a?.set(t,e),W=(a,t,e)=>(A(a,t)||B(a,t,e()),$(a,t)),j=(a,t,e,s=B)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!y(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x=a=>new Set(Array.isArray(a)||y(a)?a:[a]),k=(a,t)=>a?.add(t),q="_",H="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",V="WHERE",Y=(a,t,e)=>{const n=M();return[async()=>j(n,b(await p(m(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,b(m(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(n,t,j(W(n,t,M),e,((a,t,e)=>{e!=$(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(n,t))),async(t,e)=>((a,t)=>!y($($(n,a),t)))(t,e)?b(v(m(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!y(a)&&!_(t)))):{},async(t,e,i,o,c,r=!1)=>{const l=x();D(i??{},(a=>m(O(a??{}),(a=>k(l,a)))));const w=L(l);if(!r&&c&&T(w)&&A(n,t))return await a("DROP TABLE"+J(t)),void B(n,t);if(T(w)||A(n,t)){const s=$(n,t),i=x(F(s));await p([...m(w,(async e=>{R(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),B(s,e,""))})),...!r&&o?m(L(i),(async n=>{n!=e&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),B(s,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(e)} PRIMARY KEY ON CONFLICT REPLACE${f(m(w,(a=>s+J(a))))});`),B(n,t,M([[e,""],...m(w,(a=>[a,""]))]));if(r)y(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await p(D(i,(async(s,n)=>{y(s)?await a("DELETE FROM"+J(t)+V+J(e)+"=?",[n]):T(w)||await z(a,t,e,O(s),[n,...g(s)])})));else if(T(w))A(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const s=v(F($(n,t)),(a=>a!=e)),o=[],c=[];D(i??{},((a,t)=>{h(o,t,...m(s,(t=>a?.[t]))),h(c,t)})),await z(a,t,e,s,o),await a("DELETE FROM"+J(t)+V+J(e)+"NOT IN("+G(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},z=async(a,t,e,n,o)=>await a("INSERT INTO"+J(t)+"("+J(e)+f(m(n,(a=>s+J(a))))+")VALUES"+d(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+J(e)+")DO UPDATE SET"+f(m(n,(a=>J(a)+"=excluded."+J(a))),s),o),G=a=>f(m(a,(()=>"?")),s),K=JSON.parse,Q=M(),X=M(),Z=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let l,u,d,E=0,p=0;W(Q,r,(()=>0)),W(X,r,(()=>[]));const f=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),p=1,d=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),l=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(w(l,a.delListener),l=void 0,m),schedule:async(...a)=>(h($(X,r),...a),await(async()=>{if(!$(Q,r)){for(B(Q,r,1);!y((a=$(X,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}B(Q,r,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(m[o]=()=>c),S(m)},aa="store",ta=(a,t,e,s,n,[i],o,c)=>{const[r,y,w,u]=Y(t,o,n);return Z(a,(async()=>await u((async()=>(await r(),K((await y(i,H))[q]?.[aa]??"null"))))),(async a=>await u((async()=>{var t;await r(),await w(i,H,{[q]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>l(t,Map)?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},ea=(a,t,e,s,n,[i,o,[c,r,l]],w,u)=>{const[d,E,f,m]=Y(t,w,n),T=async(a,t)=>await p(P(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await f(e,s,c,n,i,t)}))),h=async(a,t)=>r?await f(l,H,{[q]:a},!0,!0,t):null;return Z(a,(async()=>await m((async()=>{await d();const a=await(async()=>b(v(await p(P(i,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await E(l,H))[q]:{})();return _(a)&&y(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),y(t)){const[t,e]=a();await T(t),await h(e)}else{const[a,e]=t();await T(a,!0),await h(e,!0)}}))),e,s,n,["getDb",u],u)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",oa="tableId",ca="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[ca]:e+"_values"},ya=(a,t,e,s)=>{const n=M();return D(a,((a,i)=>{const o=d(g(C(t,u(a)?{[e]:a}:a)),0,I(t));y(o[0])||s(i,o[0])||B(n,i,o)})),n},wa="pragma ",ua="data_version",da="schema_version",Ea=(a,t,s,n,i,o,l,y)=>{let w,E;const[p,f,m,T]=(a=>{const t=(a=>C(ra,u(a)?{storeTableName:a}:a??{}))(a),s=t[na];if(t.mode==sa){const{storeTableName:a=e}=t;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=d(g(C(la,o)),0,I(la)),r=c[2],l=x(r);return[0,s,[ya(n,{[oa]:null,[ia]:H},oa,(a=>k(l,a)&&a==r)),ya(i,{[ca]:null,[ia]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(p?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ua))[0][ua],e=(await s(wa+da))[0][da];t==(w??=t)&&e==(E??=e)||(a(),w=t,E=e)}catch{}}),1e3*f),n((t=>T.has(t)?a():0))]),(([a,t])=>{r(a),w=E=null,i(t)}),l,m,L(T),y)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>Ea(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)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=setInterval,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==n,d=(a,t,e)=>a.slice(t,e),u=a=>a.length,E=async a=>o.all(a),p=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),m=a=>0==u(a),T=(a,t)=>a.filter(t),v=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,N=a=>R.getPrototypeOf(a),O=R.keys,S=R.freeze,b=(a=[])=>R.fromEntries(a),g=(...a)=>R.assign({},...a),C=(a,t)=>f(R.entries(a),(([a,e])=>t(e,a))),D=a=>R.values(a),I=a=>u(O(a)),_=a=>(a=>!l(a)&&y(N(a),(a=>a==R.prototype||l(N(a))),(()=>!0)))(a)&&0==I(a),M=a=>new Map(a),F=a=>[...a?.keys()??[]],P=(a,t)=>a?.get(t),$=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>l(e)?(L(a,t),a):a?.set(t,e),W=(a,t,e)=>(h(a,t)||B(a,t,e()),P(a,t)),j=(a,t,e,s=B)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>y(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x=a=>new Set(Array.isArray(a)||l(a)?a:[a]),k=(a,t)=>a?.add(t),q="_",H="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",V="WHERE",Y=(a,t,e)=>{const n=M();return[async()=>j(n,b(await E(f(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+G(t)+")",t),(async({name:t})=>[t,b(f(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(n,t,j(W(n,t,M),e,((a,t,e)=>{e!=P(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(n,t))),async(t,e)=>((a,t)=>!l(P(P(n,a),t)))(t,e)?b(T(f(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!_(t)))):{},async(t,e,i,o,c,r=!1)=>{const y=x();C(i??{},(a=>f(O(a??{}),(a=>k(y,a)))));const w=A(y);if(!r&&c&&m(w)&&h(n,t))return await a("DROP TABLE"+J(t)),void B(n,t);if(m(w)||h(n,t)){const s=P(n,t),i=x(F(s));await E([...f(w,(async e=>{L(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),B(s,e,""))})),...!r&&o?f(A(i),(async n=>{n!=e&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),B(s,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(e)} PRIMARY KEY ON CONFLICT REPLACE${p(f(w,(a=>s+J(a))))});`),B(n,t,M([[e,""],...f(w,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await E(C(i,(async(s,n)=>{l(s)?await a("DELETE FROM"+J(t)+V+J(e)+"=?",[n]):m(w)||await z(a,t,e,O(s),[n,...D(s)])})));else if(m(w))h(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const s=T(F(P(n,t)),(a=>a!=e)),o=[],c=[];C(i??{},((a,t)=>{v(o,t,...f(s,(t=>a?.[t]))),v(c,t)})),await z(a,t,e,s,o),await a("DELETE FROM"+J(t)+V+J(e)+"NOT IN("+G(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},z=async(a,t,e,n,o)=>await a("INSERT INTO"+J(t)+"("+J(e)+p(f(n,(a=>s+J(a))))+")VALUES"+d(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+J(e)+")DO UPDATE SET"+p(f(n,(a=>J(a)+"=excluded."+J(a))),s),o),G=a=>p(f(a,(()=>"?")),s),K=JSON.parse,Q=M(),X=M(),Z=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let w,d,u,E=0,p=0;W(Q,r,(()=>0)),W(X,r,(()=>[]));const f=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await f((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await f((async()=>a.setTransactionChanges(t)))}else await f((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(y(w,a.delListener),w=void 0,m),schedule:async(...a)=>(v(P(X,r),...a),await(async()=>{if(!P(Q,r)){for(B(Q,r,1);!l((a=P(X,r),d=a.shift()));)try{await d()}catch(a){i?.(a)}B(Q,r,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(m[o]=()=>c),S(m)},aa="store",ta=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=Y(t,o,n);return Z(a,(async()=>await w((async()=>(await r(),K((await l(i,H))[q]?.[aa]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,H,{[q]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},ea=(a,t,e,s,n,[i,o,[c,r,y]],w,d)=>{const[u,p,f,m]=Y(t,w,n),v=async(a,t)=>await E($(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await f(e,s,c,n,i,t)}))),h=async(a,t)=>r?await f(y,H,{[q]:a},!0,!0,t):null;return Z(a,(async()=>await m((async()=>{await u();const a=await(async()=>b(T(await E($(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await p(y,H))[q]:{})();return _(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await u(),l(t)){const[t,e]=a();await v(t),await h(e)}else{const[a,e]=t();await v(a,!0),await h(e,!0)}}))),e,s,n,["getDb",d],d)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",oa="tableId",ca="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[ca]:e+"_values"},ya=(a,t,e,s)=>{const n=M();return C(a,((a,i)=>{const o=d(D(g(t,w(a)?{[e]:a}:a)),0,I(t));l(o[0])||s(i,o[0])||B(n,i,o)})),n},wa="pragma ",da="data_version",ua="schema_version",Ea=(a,t,s,n,i,o,l,y)=>{let u,E;const[p,f,m,T]=(a=>{const t=(a=>g(ra,w(a)?{storeTableName:a}:a??{}))(a),s=t[na];if(t.mode==sa){const{storeTableName:a=e}=t;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=d(D(g(la,o)),0,I(la)),r=c[2],l=x(r);return[0,s,[ya(n,{[oa]:null,[ia]:H},oa,(a=>k(l,a)&&a==r)),ya(i,{[ca]:null,[ia]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(p?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+da))[0][da],e=(await s(wa+ua))[0][ua];t==(u??=t)&&e==(E??=e)||(a(),u=t,E=e)}catch{}}),1e3*f),n((t=>T.has(t)?a():0))]),(([a,t])=>{r(a),u=E=null,i(t)}),l,m,A(T),y)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>Ea(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)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),c=Promise,o=setInterval,r=clearInterval,l=(a,t)=>a instanceof t,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),u=a=>t(a)==n,E=(a,t,e)=>a.slice(t,e),d=a=>a.length,f=async a=>c.all(a),p=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),v=a=>0==d(a),m=(a,t)=>a.filter(t),A=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),R=Object,O=R.keys,S=R.freeze,g=(a=[])=>R.fromEntries(a),C=(...a)=>R.assign({},...a),D=(a,t)=>T(R.entries(a),(([a,e])=>t(e,a))),b=a=>R.values(a),I=a=>d(O(a)),F=a=>(a=>l(a,R)&&a.constructor==R)(a)&&0==I(a),M=a=>new Map(a),$=a=>[...a?.keys()??[]],P=(a,t)=>a?.get(t),_=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>y(e)?(N(a,t),a):a?.set(t,e),j=(a,t,e)=>(L(a,t)||B(a,t,e()),P(a,t)),x=(a,t,e,s=B)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!y(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||y(a)?a:[a]),W=(a,t)=>a?.add(t),k="_",q="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,e)=>{const n=M();return[async()=>x(n,g(await f(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,g(T(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(n,t,x(j(n,t,M),e,((a,t,e)=>{e!=P(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(n,t))),async(t,e)=>((a,t)=>!y(P(P(n,a),t)))(t,e)?g(m(T(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!y(a)&&!F(t)))):{},async(t,e,i,c,o,r=!1)=>{const l=H();D(i??{},(a=>T(O(a??{}),(a=>W(l,a)))));const w=h(l);if(!r&&o&&v(w)&&L(n,t))return await a("DROP TABLE"+J(t)),void B(n,t);if(v(w)||L(n,t)){const s=P(n,t),i=H($(s));await f([...T(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),B(s,e,""))})),...!r&&c?T(h(i),(async n=>{n!=e&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),B(s,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(e)} PRIMARY KEY ON CONFLICT REPLACE${p(T(w,(a=>s+J(a))))});`),B(n,t,M([[e,""],...T(w,(a=>[a,""]))]));if(r)y(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await f(D(i,(async(s,n)=>{y(s)?await a("DELETE FROM"+J(t)+Y+J(e)+"=?",[n]):v(w)||await G(a,t,e,O(s),[n,...b(s)])})));else if(v(w))L(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const s=m($(P(n,t)),(a=>a!=e)),c=[],o=[];D(i??{},((a,t)=>{A(c,t,...T(s,(t=>a?.[t]))),A(o,t)})),await G(a,t,e,s,c),await a("DELETE FROM"+J(t)+Y+J(e)+"NOT IN("+K(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},G=async(a,t,e,n,c)=>await a("INSERT INTO"+J(t)+"("+J(e)+p(T(n,(a=>s+J(a))))+")VALUES"+E(i(`,(?${i(",?",d(n))})`,d(c)/(d(n)+1)),1)+"ON CONFLICT("+J(e)+")DO UPDATE SET"+p(T(n,(a=>J(a)+"=excluded."+J(a))),s),c),K=a=>p(T(a,(()=>"?")),s),V=JSON.parse,Q=M(),X=M(),Z=(a,t,e,s,n,i,[c,o]=[],r=[])=>{let l,u,E,d=0,f=0;j(Q,r,(()=>0)),j(X,r,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,E=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(E),E=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),l=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(w(l,a.delListener),l=void 0,T),schedule:async(...a)=>(A(P(X,r),...a),await(async()=>{if(!P(Q,r)){for(B(Q,r,1);!y((a=P(X,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}B(Q,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),S(T)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,y,w,u]=z(t,c,n);return Z(a,(async()=>await u((async()=>(await r(),V((await y(i,q))[k]?.[aa]??"null"))))),(async a=>await u((async()=>{var t;await r(),await w(i,q,{[k]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>l(t,Map)?R.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[o,r,l]],w,u)=>{const[E,d,p,T]=z(t,w,n),v=async(a,t)=>await f(_(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await p(e,s,o,n,i,t)}))),A=async(a,t)=>r?await p(l,q,{[k]:a},!0,!0,t):null;return Z(a,(async()=>await T((async()=>{await E();const a=await(async()=>g(m(await f(_(i,(async([a,t],e)=>[a,await d(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>o?(await d(l,q))[k]:{})();return F(a)&&y(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await E(),y(t)){const[t,e]=a();await v(t),await A(e)}else{const[a,e]=t();await v(a,!0),await A(e,!0)}}))),e,s,n,["getDb",u],u)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[oa]:e+"_values"},ya=(a,t,e,s)=>{const n=M();return D(a,((a,i)=>{const c=E(b(C(t,u(a)?{[e]:a}:a)),0,I(t));y(c[0])||s(i,c[0])||B(n,i,c)})),n},wa="pragma ",ua="data_version",Ea="schema_version",da=(a,t,s,n,i,c,l,y)=>{let w,d;const[f,p,T,v]=(a=>{const t=(a=>C(ra,u(a)?{storeTableName:a}:a??{}))(a),s=t[na];if(t.mode==sa){const{storeTableName:a=e}=t;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=E(b(C(la,c)),0,I(la)),r=o[2],l=H(r);return[0,s,[ya(n,{[ca]:null,[ia]:q},ca,(a=>W(l,a)&&a==r)),ya(i,{[oa]:null,[ia]:q,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>W(l,t)&&t==r)),o],l]})(t);return(f?ta:ea)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[o((async()=>{try{const t=(await s(wa+ua))[0][ua],e=(await s(wa+Ea))[0][Ea];t==(w??=t)&&e==(d??=e)||(a(),w=t,d=e)}catch{}}),1e3*p),n((t=>v.has(t)?a():0))]),(([a,t])=>{r(a),w=d=null,i(t)}),l,T,h(v),y)},fa="change";a.createSqlite3Persister=(a,t,e,s,n)=>da(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 c(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(fa,e),e}),(a=>t.off(fa,a)),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=setInterval,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==n,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),f=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=a=>0==u(a),v=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,O=a=>N.getPrototypeOf(a),R=N.keys,S=N.freeze,g=(a=[])=>N.fromEntries(a),C=(...a)=>N.assign({},...a),D=(a,t)=>p(N.entries(a),(([a,e])=>t(e,a))),b=a=>N.values(a),I=a=>u(R(a)),F=a=>(a=>!l(a)&&y(O(a),(a=>a==N.prototype||l(O(a))),(()=>!0)))(a)&&0==I(a),M=a=>new Map(a),P=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>l(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(A(a,t)||B(a,t,e()),$(a,t)),x=(a,t,e,s=B)=>(D(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>y(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),H=a=>new Set(Array.isArray(a)||l(a)?a:[a]),W=(a,t)=>a?.add(t),k="_",q="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,e)=>{const n=M();return[async()=>x(n,g(await d(p(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,g(p(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(n,t,x(j(n,t,M),e,((a,t,e)=>{e!=$(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(n,t))),async(t,e)=>((a,t)=>!l($($(n,a),t)))(t,e)?g(v(p(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!F(t)))):{},async(t,e,i,o,c,r=!1)=>{const y=H();D(i??{},(a=>p(R(a??{}),(a=>W(y,a)))));const w=L(y);if(!r&&c&&T(w)&&A(n,t))return await a("DROP TABLE"+J(t)),void B(n,t);if(T(w)||A(n,t)){const s=$(n,t),i=H(P(s));await d([...p(w,(async e=>{h(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),B(s,e,""))})),...!r&&o?p(L(i),(async n=>{n!=e&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),B(s,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(e)} PRIMARY KEY ON CONFLICT REPLACE${f(p(w,(a=>s+J(a))))});`),B(n,t,M([[e,""],...p(w,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await d(D(i,(async(s,n)=>{l(s)?await a("DELETE FROM"+J(t)+Y+J(e)+"=?",[n]):T(w)||await G(a,t,e,R(s),[n,...b(s)])})));else if(T(w))A(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const s=v(P($(n,t)),(a=>a!=e)),o=[],c=[];D(i??{},((a,t)=>{m(o,t,...p(s,(t=>a?.[t]))),m(c,t)})),await G(a,t,e,s,o),await a("DELETE FROM"+J(t)+Y+J(e)+"NOT IN("+K(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},G=async(a,t,e,n,o)=>await a("INSERT INTO"+J(t)+"("+J(e)+f(p(n,(a=>s+J(a))))+")VALUES"+E(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+J(e)+")DO UPDATE SET"+f(p(n,(a=>J(a)+"=excluded."+J(a))),s),o),K=a=>f(p(a,(()=>"?")),s),V=JSON.parse,Q=M(),X=M(),Z=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let w,E,u,d=0,f=0;j(Q,r,(()=>0)),j(X,r,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,u=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(u),u=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(y(w,a.delListener),w=void 0,T),schedule:async(...a)=>(m($(X,r),...a),await(async()=>{if(!$(Q,r)){for(B(Q,r,1);!l((a=$(X,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}B(Q,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),S(T)},aa="store",ta=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return Z(a,(async()=>await w((async()=>(await r(),V((await l(i,q))[k]?.[aa]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,q,{[k]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},ea=(a,t,e,s,n,[i,o,[c,r,y]],w,E)=>{const[u,f,p,T]=z(t,w,n),m=async(a,t)=>await d(_(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await p(e,s,c,n,i,t)}))),A=async(a,t)=>r?await p(y,q,{[k]:a},!0,!0,t):null;return Z(a,(async()=>await T((async()=>{await u();const a=await(async()=>g(v(await d(_(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>c?(await f(y,q))[k]:{})();return F(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await u(),l(t)){const[t,e]=a();await m(t),await A(e)}else{const[a,e]=t();await m(a,!0),await A(e,!0)}}))),e,s,n,["getDb",E],E)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",oa="tableId",ca="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[ca]:e+"_values"},ya=(a,t,e,s)=>{const n=M();return D(a,((a,i)=>{const o=E(b(C(t,w(a)?{[e]:a}:a)),0,I(t));l(o[0])||s(i,o[0])||B(n,i,o)})),n},wa="pragma ",Ea="data_version",ua="schema_version",da=(a,t,s,n,i,o,l,y)=>{let u,d;const[f,p,T,v]=(a=>{const t=(a=>C(ra,w(a)?{storeTableName:a}:a??{}))(a),s=t[na];if(t.mode==sa){const{storeTableName:a=e}=t;return[1,s,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(b(C(la,o)),0,I(la)),r=c[2],l=H(r);return[0,s,[ya(n,{[oa]:null,[ia]:q},oa,(a=>W(l,a)&&a==r)),ya(i,{[ca]:null,[ia]:q,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(f?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+Ea))[0][Ea],e=(await s(wa+ua))[0][ua];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*p),n((t=>v.has(t)?a():0))]),(([a,t])=>{r(a),u=d=null,i(t)}),l,T,L(v),y)},fa="change";a.createSqlite3Persister=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t))),new o(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(fa,e),e}),(a=>t.off(fa,a)),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t,e){"use strict";const s="t",a="v",n=t=>null==t,o=(t,e,s)=>n(t)?s?.():e(t),c=t=>t.length,i=t=>t.shift(),r=Object,d=r.keys,l=r.freeze,u=(t=[])=>r.fromEntries(t),y=(t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)),g=(t,e)=>((t,e)=>t.map(e))(r.entries(t),(([t,s])=>e(s,t))),f=t=>(t=>t instanceof r&&t.constructor==r)(t)&&0==(t=>c(d(t)))(t),p=(t,e,s)=>(y(t,e)||(t[e]=s()),t[e]),h=t=>new Map(t),v=(t,e)=>t?.get(e),w=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,s)=>e(s,t))),S=(t,e,s)=>{return n(s)?(a=t,o=e,a?.delete(o),t):t?.set(e,s);var a,o},A=(t,e,s)=>{var a,n;return a=t,n=e,a?.has(n)||S(t,e,s()),v(t,e)},b=h(),j=h(),O="delete",J=t=>[t.get(s),t.get(a)],L=(t,s,a,o)=>{const c=n(s)?t:t.get(s)??t.set(s,new e.Map);let i;return g(a,((t,e)=>{o(c,e,t)&&(i=1)})),c.forEach(((t,e)=>{y(a,e)||(c.delete(e),i=1)})),n(s)||c.size||t.delete(s),i};t.createYjsPersister=(t,r,d="tinybase",y)=>{const h=r.getMap(d);return((t,e,s,a,c,r,[d,u]=[],y=[])=>{let g,p,h,w=0,O=0;A(b,y,(()=>0)),A(j,y,(()=>[]));const J=async t=>(2!=w&&(w=1,await L.schedule((async()=>{await t(),w=0}))),L),L={load:async(s,a)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([s,a])}})),startAutoLoad:async(s={},n={})=>(L.stopAutoLoad(),await L.load(s,n),O=1,h=a((async(s,a)=>{if(a){const e=a();await J((async()=>t.setTransactionChanges(e)))}else await J((async()=>{try{t.setContent(s?.()??await e())}catch(t){r?.(t)}}))})),L),stopAutoLoad:()=>(O&&(c(h),h=void 0,O=0),L),save:async e=>(1!=w&&(w=2,await L.schedule((async()=>{try{await s(t.getContent,e)}catch(t){r?.(t)}w=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[s,a]=e();f(s)&&f(a)||L.save((()=>[s,a]))})),L),stopAutoSave:()=>(o(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(v(j,y),...t),await(async()=>{if(!v(b,y)){for(S(b,y,1);!n(p=i(v(j,y)));)try{await p()}catch(t){r?.(t)}S(b,y,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>u),l(L)})(t,(async()=>h.size?[h.get(s).toJSON(),h.get(a).toJSON()]:void 0),(async(t,c)=>r.transact((()=>((t,c,i)=>{t.size||(t.set(s,new e.Map),t.set(a,new e.Map));const[r,d]=J(t),l=()=>{u=1};let u=1;if(o(i?.(),(([t,e])=>{u=0,g(t,((t,e)=>u?0:n(t)?r.delete(e):o(r.get(e),(e=>g(t,((t,s)=>u?0:n(t)?e.delete(s):o(e.get(s),(e=>g(t,((t,s)=>n(t)?e.delete(s):e.set(s,t)))),l)))),l))),g(e,((t,e)=>u?0:n(t)?d.delete(e):d.set(e,t)))})),u){const[t,e]=c();L(r,void 0,t,((t,e,s)=>L(r,e,s,((t,e,s)=>L(t,e,s,((t,e,s)=>{if(t.get(e)!==s)return t.set(e,s),1})))))),L(d,void 0,e,((t,e,s)=>{d.get(e)!==s&&d.set(e,s)}))}})(h,t,c)))),(t=>{const e=e=>t(void 0,(()=>((t,e)=>{if(1==c(e)&&(n=e[0].path,0==c(n)))return[t.get(s).toJSON(),t.get(a).toJSON()];var n;const[r,d]=J(t),l={},y={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>i(t)==s?o(i(t),(s=>{const a=p(l,s,u),n=r.get(s);o(i(t),(t=>{const s=p(a,t,u),o=n.get(t);w(e,((t,{action:e})=>s[t]=e==O?null:o.get(t)))}),(()=>w(e,((t,{action:e})=>a[t]=e==O?null:n.get(t)?.toJSON()))))}),(()=>w(e,((t,{action:e})=>l[t]=e==O?null:r.get(t)?.toJSON())))):w(e,((t,{action:e})=>y[t]=e==O?null:d.get(t)))))})(e),[l,y]})(h,e)));return h.observeDeep(e),e}),(t=>{h.unobserveDeep(t)}),y,["getYDoc",r])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("yjs")):"function"==typeof define&&define.amd?define(["exports","yjs"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterYjs={},t.yjs);
1
+ var t,e;t=this,e=function(t,e){"use strict";const a="t",s="v",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=t=>t.length,i=t=>t.shift(),c=Object,d=t=>c.getPrototypeOf(t),l=c.keys,u=c.freeze,y=(t=[])=>c.fromEntries(t),g=(t,e)=>!n(((t,e)=>o(t,(t=>t[e])))(t,e)),p=(t,e)=>((t,e)=>t.map(e))(c.entries(t),(([t,a])=>e(a,t))),f=t=>(t=>!n(t)&&o(d(t),(t=>t==c.prototype||n(d(t))),(()=>!0)))(t)&&0==(t=>r(l(t)))(t),h=(t,e,a)=>(g(t,e)||(t[e]=a()),t[e]),v=t=>new Map(t),w=(t,e)=>t?.get(e),S=(t,e)=>((t,e)=>t?.forEach(e))(t,((t,a)=>e(a,t))),A=(t,e,a)=>{return n(a)?(s=t,o=e,s?.delete(o),t):t?.set(e,a);var s,o},O=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||A(t,e,a()),w(t,e)},b=v(),j=v(),J="delete",L=t=>[t.get(a),t.get(s)],N=(t,a,s,o)=>{const r=n(a)?t:t.get(a)??t.set(a,new e.Map);let i;return p(s,((t,e)=>{o(r,e,t)&&(i=1)})),r.forEach(((t,e)=>{g(s,e)||(r.delete(e),i=1)})),n(a)||r.size||t.delete(a),i};t.createYjsPersister=(t,c,d="tinybase",l)=>{const g=c.getMap(d);return((t,e,a,s,r,c,[d,l]=[],y=[])=>{let g,p,h,v=0,S=0;O(b,y,(()=>0)),O(j,y,(()=>[]));const J=async t=>(2!=v&&(v=1,await L.schedule((async()=>{await t(),v=0}))),L),L={load:async(a,s)=>await J((async()=>{try{t.setContent(await e())}catch{t.setContent([a,s])}})),startAutoLoad:async(a={},n={})=>(L.stopAutoLoad(),await L.load(a,n),S=1,h=s((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){c?.(t)}}))})),L),stopAutoLoad:()=>(S&&(r(h),h=void 0,S=0),L),save:async e=>(1!=v&&(v=2,await L.schedule((async()=>{try{await a(t.getContent,e)}catch(t){c?.(t)}v=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();f(a)&&f(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(o(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(w(j,y),...t),await(async()=>{if(!w(b,y)){for(A(b,y,1);!n(p=i(w(j,y)));)try{await p()}catch(t){c?.(t)}A(b,y,0)}})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>l),u(L)})(t,(async()=>g.size?[g.get(a).toJSON(),g.get(s).toJSON()]:void 0),(async(t,r)=>c.transact((()=>((t,r,i)=>{t.size||(t.set(a,new e.Map),t.set(s,new e.Map));const[c,d]=L(t),l=()=>{u=1};let u=1;if(o(i?.(),(([t,e])=>{u=0,p(t,((t,e)=>u?0:n(t)?c.delete(e):o(c.get(e),(e=>p(t,((t,a)=>u?0:n(t)?e.delete(a):o(e.get(a),(e=>p(t,((t,a)=>n(t)?e.delete(a):e.set(a,t)))),l)))),l))),p(e,((t,e)=>u?0:n(t)?d.delete(e):d.set(e,t)))})),u){const[t,e]=r();N(c,void 0,t,((t,e,a)=>N(c,e,a,((t,e,a)=>N(t,e,a,((t,e,a)=>{if(t.get(e)!==a)return t.set(e,a),1})))))),N(d,void 0,e,((t,e,a)=>{d.get(e)!==a&&d.set(e,a)}))}})(g,t,r)))),(t=>{const e=e=>t(void 0,(()=>((t,e)=>{if(1==r(e)&&(n=e[0].path,0==r(n)))return[t.get(a).toJSON(),t.get(s).toJSON()];var n;const[c,d]=L(t),l={},u={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>i(t)==a?o(i(t),(a=>{const s=h(l,a,y),n=c.get(a);o(i(t),(t=>{const a=h(s,t,y),o=n.get(t);S(e,((t,{action:e})=>a[t]=e==J?null:o.get(t)))}),(()=>S(e,((t,{action:e})=>s[t]=e==J?null:n.get(t)?.toJSON()))))}),(()=>S(e,((t,{action:e})=>l[t]=e==J?null:c.get(t)?.toJSON())))):S(e,((t,{action:e})=>u[t]=e==J?null:d.get(t)))))})(e),[l,u]})(g,e)));return g.observeDeep(e),e}),(t=>{g.unobserveDeep(t)}),l,["getYDoc",c])}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("yjs")):"function"==typeof define&&define.amd?define(["exports","yjs"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisterYjs={},t.yjs);
@@ -1 +1 @@
1
- var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=Object,s=a.keys,n=a.freeze,o=t=>(t=>t instanceof a&&t.constructor==a)(t)&&0==(t=>s(t).length)(t),i=t=>new Map(t),c=(t,e)=>t?.get(e),r=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},d=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||r(t,e,a()),c(t,e)},u=i(),y=i();t.createCustomPersister=(t,a,s,i,f,l,[h,p]=[],v=[])=>{let w,g,A,C=0,L=0;d(u,v,(()=>0)),d(y,v,(()=>[]));const S=async t=>(2!=C&&(C=1,await T.schedule((async()=>{await t(),C=0}))),T),T={load:async(e,s)=>await S((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(T.stopAutoLoad(),await T.load(e,s),L=1,A=i((async(e,s)=>{if(s){const e=s();await S((async()=>t.setTransactionChanges(e)))}else await S((async()=>{try{t.setContent(e?.()??await a())}catch(t){l?.(t)}}))})),T),stopAutoLoad:()=>(L&&(f(A),A=void 0,L=0),T),save:async e=>(1!=C&&(C=2,await T.schedule((async()=>{try{await s(t.getContent,e)}catch(t){l?.(t)}C=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();o(a)&&o(s)||T.save((()=>[a,s]))})),T),stopAutoSave:()=>{var a,s;return a=w,s=t.delListener,e(a)||s(a),w=void 0,T},schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(c(y,v),...t),await(async()=>{if(!c(u,v)){for(r(u,v,1);!e((t=c(y,v),g=t.shift()));)try{await g()}catch(t){l?.(t)}r(u,v,0)}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h&&(T[h]=()=>p),n(T)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisters={});
1
+ var t,e;t=this,e=function(t){"use strict";const e=t=>null==t,a=(t,a,s)=>e(t)?s?.():a(t),s=Object,o=t=>s.getPrototypeOf(t),n=s.keys,i=s.freeze,c=t=>(t=>!e(t)&&a(o(t),(t=>t==s.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>n(t).length)(t),r=t=>new Map(t),d=(t,e)=>t?.get(e),y=(t,a,s)=>{return e(s)?(o=t,n=a,o?.delete(n),t):t?.set(a,s);var o,n},u=(t,e,a)=>{var s,o;return s=t,o=e,s?.has(o)||y(t,e,a()),d(t,e)},f=r(),l=r();t.createCustomPersister=(t,s,o,n,r,p,[h,w]=[],v=[])=>{let g,A,C,L=0,S=0;u(f,v,(()=>0)),u(l,v,(()=>[]));const T=async t=>(2!=L&&(L=1,await b.schedule((async()=>{await t(),L=0}))),b),b={load:async(e,a)=>await T((async()=>{try{t.setContent(await s())}catch{t.setContent([e,a])}})),startAutoLoad:async(e={},a={})=>(b.stopAutoLoad(),await b.load(e,a),S=1,C=n((async(e,a)=>{if(a){const e=a();await T((async()=>t.setTransactionChanges(e)))}else await T((async()=>{try{t.setContent(e?.()??await s())}catch(t){p?.(t)}}))})),b),stopAutoLoad:()=>(S&&(r(C),C=void 0,S=0),b),save:async e=>(1!=L&&(L=2,await b.schedule((async()=>{try{await o(t.getContent,e)}catch(t){p?.(t)}L=0}))),b),startAutoSave:async()=>(await b.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();c(a)&&c(s)||b.save((()=>[a,s]))})),b),stopAutoSave:()=>(a(g,t.delListener),g=void 0,b),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(d(l,v),...t),await(async()=>{if(!d(f,v)){for(y(f,v,1);!e((t=d(l,v),A=t.shift()));)try{await A()}catch(t){p?.(t)}y(f,v,0)}var t})(),b),getStore:()=>t,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h&&(b[h]=()=>w),i(b)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).TinyBasePersisters={});
Binary file
package/lib/umd/store.js CHANGED
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",l=t(s),n=t(!0),a=t(0),o=t(t),r="type",c="default",i="Ids",d="Table",u=d+"s",h=d+i,f="Row",g=f+"Count",T=f+i,b="Cell",V=b+i,C="Value",S=C+"s",v=C+i,y=e=>s+e,m=isFinite,w=(e,t)=>e instanceof t,p=e=>null==e,I=(e,t,s)=>p(e)?s?.():t(e),R=e=>e==l||e==n,J=e=>t(e)==o,L=(e,t,s)=>e.slice(t,s),E=e=>e.length,F=(e,t)=>e.forEach(t),x=(e,t)=>e.map(t),z=(e,...t)=>e.push(...t),O=Object,j=O.keys,k=O.isFrozen,A=O.freeze,M=e=>w(e,O)&&e.constructor==O,N=(e,t)=>!p(((e,t)=>I(e,(e=>e[t])))(e,t)),P=(e,t)=>(delete e[t],e),B=(e,t)=>x(O.entries(e),(([e,s])=>t(s,e))),D=e=>M(e)&&0==(e=>E(j(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>p(e)||0==W(e),G=e=>e.clear(),H=(e,t)=>e?.forEach(t),K=(e,t)=>e?.delete(t),Q=e=>new Map(e),U=e=>[...e?.keys()??[]],X=(e,t)=>e?.get(t),Y=(e,t)=>H(e,((e,s)=>t(s,e))),Z=(e,t,s)=>p(s)?(K(e,t),e):e?.set(t,s),_=(e,t,s)=>($(e,t)||Z(e,t,s()),X(e,t)),ee=(e,t,s,l=Z)=>(B(t,((t,l)=>s(e,l,t))),Y(e,(s=>N(t,s)?0:l(e,s))),e),te=(e,t,s)=>{const l={};return H(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},se=(e,t,s)=>te(e,(e=>te(e,t,s)),D),le=(e,t,s)=>te(e,(e=>se(e,t,s)),D),ne=(e,t)=>{const s=Q();return H(e,((e,l)=>s.set(l,t?.(e)??e))),s},ae=e=>ne(e,ne),oe=e=>ne(e,ae),re=(e,t,s,l,n=0)=>I((s?_:X)(e,t[n],n>E(t)-2?s:Q),(a=>{if(n>E(t)-2)return l?.(a)&&Z(e,t[n]),a;const o=re(a,t,s,l,n+1);return q(a)&&Z(e,t[n]),o})),ce=e=>new Set(Array.isArray(e)||p(e)?e:[e]),ie=(e,t)=>e?.add(t),de=/^\d+$/,ue=()=>{const e=[];let t=0;return[l=>(l?e.shift():null)??s+t++,t=>{de.test(t)&&E(e)<1e3&&z(e,t)}]},he=e=>[e,e],fe=()=>[Q(),Q()],ge=e=>[...e],Te=([e,t])=>e===t,be=e=>{const s=t(e);return R(s)||s==a&&m(e)?s:void 0},Ve=(e,t,s,l,n)=>p(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ce=(e,t,s)=>p(s)?e.delValue(t):e.setValue(t,s),Se=e=>JSON.stringify(e,((e,t)=>w(t,Map)?O.fromEntries([...t]):t)),ve=JSON.parse,ye=(e,t,s)=>p(e)||!M(e)||D(e)||k(e)?(s?.(),!1):(B(e,((s,l)=>{t(s,l)||P(e,l)})),!D(e)),me=(e,t,s)=>Z(e,t,X(e,t)==-s?void 0:s),we=()=>{let e,t,l=!1,n=!1,o=0;const i=Q(),m=Q(),w=Q(),O=Q(),j=Q(),k=Q(),M=Q(),de=Q(),pe=Q(),Ie=Q(),Re=Q(),Je=Q(),Le=Q(),Ee=Q(),Fe=ce(),xe=Q(),ze=Q(),Oe=Q(),je=Q(),ke=fe(),Ae=fe(),Me=fe(),Ne=fe(),Pe=fe(),Be=fe(),De=fe(),We=fe(),$e=fe(),qe=fe(),Ge=fe(),He=fe(),Ke=fe(),Qe=fe(),Ue=fe(),Xe=Q(),Ye=fe(),[Ze,_e,et,tt]=(e=>{let t;const[l,n]=ue(),a=Q();return[(e,n,o,r=[],c=(()=>[]))=>{t??=Ts;const i=l(1);return Z(a,i,[e,n,o,r,c]),ie(re(n,o??[s],ce),i),i},(e,l,...n)=>F(((e,t=[s])=>{const l=[],n=(e,s)=>s==E(t)?z(l,e):null===t[s]?H(e,(e=>n(e,s+1))):F([t[s],null],(t=>n(X(e,t),s+1)));return n(e,0),l})(e,l),(e=>H(e,(e=>X(a,e)[0](t,...l??[],...n))))),e=>I(X(a,e),(([,t,l])=>(re(t,l??[s],void 0,(t=>(K(t,e),q(t)?1:0))),Z(a,e),n(e),l))),e=>I(X(a,e),(([e,,s=[],l,n])=>{const a=(...o)=>{const r=E(o);r==E(s)?e(t,...o,...n(o)):p(s[r])?F(l[r]?.(...o)??[],(e=>a(...o,e))):a(...o,s[r])};a()}))]})(),st=e=>{if(!ye(e,((e,t)=>[r,c].includes(t))))return!1;const t=e[r];return!(!R(t)&&t!=a||(be(e[c])!=t&&P(e,c),0))},lt=(t,s)=>(!e||$(Re,s)||Ot(s))&&ye(t,((e,t)=>nt(s,t,e)),(()=>Ot(s))),nt=(e,t,s,l)=>ye(l?s:ct(s,e,t),((l,n)=>I(at(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>Ot(e,t))),at=(t,s,l,n)=>e?I(X(X(Re,t),l),(e=>be(n)!=e[r]?Ot(t,s,l,n,e[c]):n),(()=>Ot(t,s,l,n))):p(be(n))?Ot(t,s,l,n):n,ot=(e,t)=>ye(t?e:it(e),((t,s)=>I(rt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>jt())),rt=(e,s)=>t?I(X(Le,e),(t=>be(s)!=t[r]?jt(e,s,t[c]):s),(()=>jt(e,s))):p(be(s))?jt(e,s):s,ct=(e,t,s)=>(I(X(Je,t),(([l,n])=>{H(l,((t,s)=>{N(e,s)||(e[s]=t)})),H(n,(l=>{N(e,l)||Ot(t,s,l)}))})),e),it=e=>(t&&(H(Ee,((t,s)=>{N(e,s)||(e[s]=t)})),H(Fe,(t=>{N(e,t)||jt(t)}))),e),dt=e=>ee(Re,e,((e,t,s)=>{const l=Q(),n=ce();ee(_(Re,t,Q),s,((e,t,s)=>{Z(e,t,s),I(s[c],(e=>Z(l,t,e)),(()=>ie(n,t)))})),Z(Je,t,[l,n])}),((e,t)=>{Z(Re,t),Z(Je,t)})),ut=e=>ee(Le,e,((e,t,s)=>{Z(Le,t,s),I(s[c],(e=>Z(Ee,t,e)),(()=>ie(Fe,t)))}),((e,t)=>{Z(Le,t),Z(Ee,t),K(Fe,t)})),ht=e=>D(e)?os():ts(e),ft=e=>ee(Oe,e,((e,t,s)=>gt(t,s)),((e,t)=>wt(t))),gt=(e,t)=>ee(_(Oe,e,(()=>(Jt(e,1),Z(xe,e,ue()),Z(ze,e,Q()),Q()))),t,((t,s,l)=>Tt(e,t,s,l)),((t,s)=>pt(e,t,s))),Tt=(e,t,s,l,n)=>ee(_(t,s,(()=>(Lt(e,s,1),Q()))),l,((t,l,n)=>bt(e,s,t,l,n)),((l,a)=>It(e,t,s,l,a,n))),bt=(e,t,s,l,n)=>{$(s,l)||Et(e,t,l,1);const a=X(s,l);n!==a&&(Ft(e,t,l,a,n),Z(s,l,n))},Vt=(e,t,s,l,n)=>I(X(t,s),(t=>bt(e,s,t,l,n)),(()=>Tt(e,t,s,ct({[l]:n},e,s)))),Ct=e=>D(e)?is():ss(e),St=e=>ee(je,e,((e,t,s)=>vt(t,s)),((e,t)=>Rt(t))),vt=(e,t)=>{$(je,e)||xt(e,1);const s=X(je,e);t!==s&&(zt(e,s,t),Z(je,e,t))},yt=(e,t)=>{const[s]=X(xe,e),l=s(t);return $(X(Oe,e),l)?yt(e,t):l},mt=e=>X(Oe,e)??gt(e,{}),wt=e=>gt(e,{}),pt=(e,t,s)=>{const[,l]=X(xe,e);l(s),Tt(e,t,s,{},!0)},It=(e,t,s,l,n,a)=>{const o=X(X(Je,e)?.[0],n);if(!p(o)&&!a)return bt(e,s,l,n,o);const r=t=>{Ft(e,s,t,X(l,t)),Et(e,s,t,-1),Z(l,t)};p(o)?r(n):Y(l,r),q(l)&&(Lt(e,s,-1),q(Z(t,s))&&(Jt(e,-1),Z(Oe,e),Z(xe,e),Z(ze,e)))},Rt=e=>{const t=X(Ee,e);if(!p(t))return vt(e,t);zt(e,X(je,e)),xt(e,-1),Z(je,e)},Jt=(e,t)=>me(i,e,t),Lt=(e,t,s)=>me(_(O,e,Q),t,s)&&Z(w,e,_(w,e,(()=>0))+s),Et=(e,t,s,l)=>{const n=X(ze,e),a=X(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&me(_(m,e,Q),s,l),Z(n,s,a!=-l?a+l:null),me(_(_(j,e,Q),t,Q),s,l)},Ft=(e,t,s,l,n)=>_(_(_(k,e,Q),t,Q),s,(()=>[l,0]))[1]=n,xt=(e,t)=>me(M,e,t),zt=(e,t,s)=>_(de,e,(()=>[t,0]))[1]=s,Ot=(e,t,s,l,n)=>(z(_(_(_(pe,e,Q),t,Q),s,(()=>[])),l),n),jt=(e,t,s)=>(z(_(Ie,e,(()=>[])),t),s),kt=(e,t,s)=>I(X(X(X(k,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...he(Yt(e,t,s))])),At=e=>I(X(de,e),(([e,t])=>[!0,e,t]),(()=>[!1,...he(es(e))])),Mt=e=>q(pe)||q(Ge[e])?0:H(e?oe(pe):pe,((t,s)=>H(t,((t,l)=>H(t,((t,n)=>_e(Ge[e],[s,l,n],t))))))),Nt=e=>q(Ie)||q(He[e])?0:H(e?ne(Ie):Ie,((t,s)=>_e(He[e],[s],t))),Pt=(e,t,s)=>{if(!q(t))return _e(e,s,(()=>te(t))),1},Bt=e=>{const t=q(De[e]),s=q($e[e])&&q(Ne[e])&&q(Pe[e])&&q(Be[e])&&t&&q(Ae[e]),l=q(qe[e])&&q(We[e])&&q(Me[e])&&q(ke[e]);if(!s||!l){const n=e?[ne(i),ae(m),ne(w),ae(O),oe(j),oe(k)]:[i,m,w,O,j,k];if(!s){Pt(Ae[e],n[0]),H(n[1],((t,s)=>Pt(Ne[e],t,[s]))),H(n[2],((t,s)=>{0!=t&&_e(Pe[e],[s],Kt(s))}));const s=ce();H(n[3],((l,n)=>{Pt(Be[e],l,[n])&&!t&&(_e(De[e],[n,null]),ie(s,n))})),t||H(n[5],((t,l)=>{if(!$(s,l)){const s=ce();H(t,(e=>H(e,(([t,l],n)=>l!==t?ie(s,n):K(e,n))))),H(s,(t=>_e(De[e],[l,t])))}})),H(n[4],((t,s)=>H(t,((t,l)=>Pt($e[e],t,[s,l])))))}if(!l){let t;H(n[5],((s,l)=>{let n;H(s,((s,a)=>{let o;H(s,(([s,r],c)=>{r!==s&&(_e(qe[e],[l,a,c],r,s,kt),t=n=o=1)})),o&&_e(We[e],[l,a],kt)})),n&&_e(Me[e],[l],kt)})),t&&_e(ke[e],void 0,kt)}}},Dt=e=>{const t=q(Qe[e]),s=q(Ue[e])&&q(Ke[e]);if(!t||!s){const l=e?[ne(M),ne(de)]:[M,de];if(t||Pt(Qe[e],l[0]),!s){let t;H(l[1],(([s,l],n)=>{l!==s&&(_e(Ue[e],[n],l,s,At),t=1)})),t&&_e(Ke[e],void 0,At)}}},Wt=(e,...t)=>(hs((()=>e(...x(t,y)))),Ts),$t=()=>[te(k,((e,t)=>-1===X(i,t)?null:te(e,((e,s)=>-1===X(X(O,t),s)?null:te(e,(([,e])=>e??null),((e,t)=>Te(t)))),D)),D),te(de,(([,e])=>e??null),((e,t)=>Te(t)))],qt=()=>({cellsTouched:l,valuesTouched:n,changedCells:le(k,ge,Te),invalidCells:le(pe),changedValues:te(de,ge,Te),invalidValues:te(Ie),changedTableIds:te(i),changedRowIds:se(O),changedCellIds:le(j),changedValueIds:te(M)}),Gt=()=>le(Oe),Ht=()=>U(Oe),Kt=e=>W(X(Oe,y(e))),Qt=e=>U(X(Oe,y(e))),Ut=(e,t,s,l=0,n)=>{return x(L((o=X(Oe,y(e)),r=(e,s)=>[p(t)?s:X(e,y(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),x([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(a)),l,p(n)?n:l+n),(([,e])=>e));var a,o,r},Xt=(e,t)=>U(X(X(Oe,y(e)),y(t))),Yt=(e,t,s)=>X(X(X(Oe,y(e)),y(t)),y(s)),Zt=()=>te(je),_t=()=>U(je),es=e=>X(je,y(e)),ts=e=>Wt((()=>(e=>ye(e,lt,Ot))(e)?ft(e):0)),ss=e=>Wt((()=>ot(e)?St(e):0)),ls=e=>{try{ht(ve(e))}catch{}return Ts},ns=t=>Wt((()=>{if((e=ye(t,(e=>ye(e,st))))&&(dt(t),!q(Oe))){const e=Gt();os(),ts(e)}})),as=e=>Wt((()=>{if(t=(e=>ye(e,st))(e)){const s=Zt();us(),is(),t=!0,ut(e),ss(s)}})),os=()=>Wt((()=>ft({}))),rs=e=>Wt((e=>$(Oe,e)?wt(e):0),e),cs=(e,t)=>Wt(((e,t)=>I(X(Oe,e),(s=>$(s,t)?pt(e,s,t):0))),e,t),is=()=>Wt((()=>St({}))),ds=()=>Wt((()=>{dt({}),e=!1})),us=()=>Wt((()=>{ut({}),t=!1})),hs=(e,t)=>{if(-1!=o){fs();const s=e();return gs(t),s}},fs=()=>(-1!=o&&o++,1==o&&_e(Xe,void 0,$t,qt),Ts),gs=e=>(o>0&&(o--,0==o&&(l=!q(k),n=!q(de),o=1,Mt(1),l&&Bt(1),Nt(1),n&&Dt(1),e?.($t,qt)&&(H(k,((e,t)=>H(e,((e,s)=>H(e,(([e],l)=>Ve(Ts,t,s,l,e))))))),H(de,(([e],t)=>Ce(Ts,t,e))),l=n=!1),_e(Ye[0],void 0,$t,qt),o=-1,Mt(0),l&&Bt(0),Nt(0),n&&Dt(0),_e(Ye[1],void 0,$t,qt),o=0,l=n=!1,F([i,m,w,O,j,k,pe,M,de,Ie],G))),Ts),Ts={getContent:()=>[Gt(),Zt()],getTables:Gt,getTableIds:Ht,getTable:e=>se(X(Oe,y(e))),getTableCellIds:e=>U(X(ze,y(e))),getRowCount:Kt,getRowIds:Qt,getSortedRowIds:Ut,getRow:(e,t)=>te(X(X(Oe,y(e)),y(t))),getCellIds:Xt,getCell:Yt,getValues:Zt,getValueIds:_t,getValue:es,hasTables:()=>!q(Oe),hasTable:e=>$(Oe,y(e)),hasTableCell:(e,t)=>$(X(ze,y(e)),y(t)),hasRow:(e,t)=>$(X(Oe,y(e)),y(t)),hasCell:(e,t,s)=>$(X(X(Oe,y(e)),y(t)),y(s)),hasValues:()=>!q(je),hasValue:e=>$(je,y(e)),getTablesJson:()=>Se(Oe),getValuesJson:()=>Se(je),getJson:()=>Se([Oe,je]),getTablesSchemaJson:()=>Se(Re),getValuesSchemaJson:()=>Se(Le),getSchemaJson:()=>Se([Re,Le]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Wt((()=>{(D(e)?os:ts)(e),(D(t)?is:ss)(t)})),setTables:ts,setTable:(e,t)=>Wt((e=>lt(t,e)?gt(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>nt(e,t,s)?Tt(e,mt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>hs((()=>{let l;return nt(e,l,t)&&(e=y(e),Tt(e,mt(e),l=yt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(nt(e,t,s,1)){const l=mt(e);B(s,((s,n)=>Vt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Wt(((e,t,s)=>I(at(e,t,s,J(l)?l(Yt(e,t,s)):l),(l=>Vt(e,mt(e),t,s,l)))),e,t,s),setValues:ss,setPartialValues:e=>Wt((()=>ot(e,1)?B(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>Wt((e=>I(rt(e,J(t)?t(es(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{B(e[0],((e,t)=>p(e)?rs(t):B(e,((e,s)=>p(e)?cs(t,s):B(e,((e,l)=>Ve(Ts,t,s,l,e))))))),B(e[1],((e,t)=>Ce(Ts,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{Ct(ve(e))}catch{}return Ts},setJson:e=>Wt((()=>{try{const[t,s]=ve(e);ht(t),Ct(s)}catch{ls(e)}})),setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:cs,delCell:(e,t,s,l)=>Wt(((e,t,s)=>I(X(Oe,e),(n=>I(X(n,t),(a=>$(a,s)?It(e,n,t,a,s,l):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>$(je,e)?Rt(e):0),e),delTablesSchema:ds,delValuesSchema:us,delSchema:()=>Wt((()=>{ds(),us()})),transaction:hs,startTransaction:fs,finishTransaction:gs,forEachTable:e=>H(Oe,((t,s)=>e(s,(e=>H(t,((t,s)=>e(s,(e=>Y(t,e))))))))),forEachTableCell:(e,t)=>Y(X(ze,y(e)),t),forEachRow:(e,t)=>H(X(Oe,y(e)),((e,s)=>t(s,(t=>Y(e,t))))),forEachCell:(e,t,s)=>Y(X(X(Oe,y(e)),y(t)),s),forEachValue:e=>Y(je,e),addSortedRowIdsListener:(e,t,s,l,n,a,o)=>{let r=Ut(e,t,s,l,n);return Ze((()=>{const o=Ut(e,t,s,l,n);var c,i,d;i=r,E(c=o)===E(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,a(Ts,e,t,s,l,n,r))}),De[o?1:0],[e,t],[Ht])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(tt(e),Ts),delListener:e=>(et(e),Ts),getListenerStats:()=>({}),createStore:we,addListener:Ze,callListeners:_e};return B({[u]:[0,ke],[h]:[0,Ae],[d]:[1,Me,[Ht]],[d+V]:[1,Ne,[Ht]],[g]:[1,Pe,[Ht]],[T]:[1,Be,[Ht]],[f]:[2,We,[Ht,Qt]],[V]:[2,$e,[Ht,Qt]],[b]:[3,qe,[Ht,Qt,Xt],e=>he(Yt(...e))],InvalidCell:[3,Ge],[S]:[0,Ke],[v]:[0,Qe],[C]:[1,Ue,[_t],e=>he(es(e[0]))],InvalidValue:[1,He]},(([e,t,s,l],n)=>{Ts["add"+n+"Listener"]=(...n)=>Ze(n[e],t[n[e+1]?1:0],e>0?L(n,0,e):void 0,s,l)})),A(Ts)};e.createStore=we},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",l=t(s),n=t(!0),a=t(0),o=t(t),r="type",c="default",i="Ids",d="Table",u=d+"s",h=d+i,f="Row",g=f+"Count",T=f+i,b="Cell",V=b+i,C="Value",S=C+"s",v=C+i,y=e=>s+e,p=isFinite,m=e=>null==e,w=(e,t,s)=>m(e)?s?.():t(e),I=e=>e==l||e==n,R=e=>t(e)==o,J=(e,t,s)=>e.slice(t,s),L=e=>e.length,E=(e,t)=>e.forEach(t),F=(e,t)=>e.map(t),O=(e,...t)=>e.push(...t),x=Object,z=e=>x.getPrototypeOf(e),P=x.keys,j=x.isFrozen,k=x.freeze,A=e=>!m(e)&&w(z(e),(e=>e==x.prototype||m(z(e))),(()=>!0)),M=(e,t)=>!m(((e,t)=>w(e,(e=>e[t])))(e,t)),N=(e,t)=>(delete e[t],e),B=(e,t)=>F(x.entries(e),(([e,s])=>t(s,e))),D=e=>A(e)&&0==(e=>L(P(e)))(e),W=e=>e?.size??0,$=(e,t)=>e?.has(t)??!1,q=e=>m(e)||0==W(e),G=e=>e.clear(),H=(e,t)=>e?.forEach(t),K=(e,t)=>e?.delete(t),Q=e=>new Map(e),U=e=>[...e?.keys()??[]],X=(e,t)=>e?.get(t),Y=(e,t)=>H(e,((e,s)=>t(s,e))),Z=(e,t,s)=>m(s)?(K(e,t),e):e?.set(t,s),_=(e,t,s)=>($(e,t)||Z(e,t,s()),X(e,t)),ee=(e,t,s,l=Z)=>(B(t,((t,l)=>s(e,l,t))),Y(e,(s=>M(t,s)?0:l(e,s))),e),te=(e,t,s)=>{const l={};return H(e,((e,n)=>{const a=t?t(e,n):e;!s?.(a,e)&&(l[n]=a)})),l},se=(e,t,s)=>te(e,(e=>te(e,t,s)),D),le=(e,t,s)=>te(e,(e=>se(e,t,s)),D),ne=(e,t)=>{const s=Q();return H(e,((e,l)=>s.set(l,t?.(e)??e))),s},ae=e=>ne(e,ne),oe=e=>ne(e,ae),re=(e,t,s,l,n=0)=>w((s?_:X)(e,t[n],n>L(t)-2?s:Q),(a=>{if(n>L(t)-2)return l?.(a)&&Z(e,t[n]),a;const o=re(a,t,s,l,n+1);return q(a)&&Z(e,t[n]),o})),ce=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ie=(e,t)=>e?.add(t),de=/^\d+$/,ue=()=>{const e=[];let t=0;return[l=>(l?e.shift():null)??s+t++,t=>{de.test(t)&&L(e)<1e3&&O(e,t)}]},he=e=>[e,e],fe=()=>[Q(),Q()],ge=e=>[...e],Te=([e,t])=>e===t,be=e=>{const s=t(e);return I(s)||s==a&&p(e)?s:void 0},Ve=(e,t,s,l,n)=>m(n)?e.delCell(t,s,l,!0):e.setCell(t,s,l,n),Ce=(e,t,s)=>m(s)?e.delValue(t):e.setValue(t,s),Se=e=>JSON.stringify(e,((e,t)=>t instanceof Map?x.fromEntries([...t]):t)),ve=JSON.parse,ye=(e,t,s)=>m(e)||!A(e)||D(e)||j(e)?(s?.(),!1):(B(e,((s,l)=>{t(s,l)||N(e,l)})),!D(e)),pe=(e,t,s)=>Z(e,t,X(e,t)==-s?void 0:s),me=()=>{let e,t,l=!1,n=!1,o=0;const i=Q(),p=Q(),x=Q(),z=Q(),P=Q(),j=Q(),A=Q(),de=Q(),we=Q(),Ie=Q(),Re=Q(),Je=Q(),Le=Q(),Ee=Q(),Fe=ce(),Oe=Q(),xe=Q(),ze=Q(),Pe=Q(),je=fe(),ke=fe(),Ae=fe(),Me=fe(),Ne=fe(),Be=fe(),De=fe(),We=fe(),$e=fe(),qe=fe(),Ge=fe(),He=fe(),Ke=fe(),Qe=fe(),Ue=fe(),Xe=Q(),Ye=fe(),[Ze,_e,et,tt]=(e=>{let t;const[l,n]=ue(),a=Q();return[(e,n,o,r=[],c=(()=>[]))=>{t??=Ts;const i=l(1);return Z(a,i,[e,n,o,r,c]),ie(re(n,o??[s],ce),i),i},(e,l,...n)=>E(((e,t=[s])=>{const l=[],n=(e,s)=>s==L(t)?O(l,e):null===t[s]?H(e,(e=>n(e,s+1))):E([t[s],null],(t=>n(X(e,t),s+1)));return n(e,0),l})(e,l),(e=>H(e,(e=>X(a,e)[0](t,...l??[],...n))))),e=>w(X(a,e),(([,t,l])=>(re(t,l??[s],void 0,(t=>(K(t,e),q(t)?1:0))),Z(a,e),n(e),l))),e=>w(X(a,e),(([e,,s=[],l,n])=>{const a=(...o)=>{const r=L(o);r==L(s)?e(t,...o,...n(o)):m(s[r])?E(l[r]?.(...o)??[],(e=>a(...o,e))):a(...o,s[r])};a()}))]})(),st=e=>{if(!ye(e,((e,t)=>[r,c].includes(t))))return!1;const t=e[r];return!(!I(t)&&t!=a||(be(e[c])!=t&&N(e,c),0))},lt=(t,s)=>(!e||$(Re,s)||zt(s))&&ye(t,((e,t)=>nt(s,t,e)),(()=>zt(s))),nt=(e,t,s,l)=>ye(l?s:ct(s,e,t),((l,n)=>w(at(e,t,n,l),(e=>(s[n]=e,!0)),(()=>!1))),(()=>zt(e,t))),at=(t,s,l,n)=>e?w(X(X(Re,t),l),(e=>be(n)!=e[r]?zt(t,s,l,n,e[c]):n),(()=>zt(t,s,l,n))):m(be(n))?zt(t,s,l,n):n,ot=(e,t)=>ye(t?e:it(e),((t,s)=>w(rt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Pt())),rt=(e,s)=>t?w(X(Le,e),(t=>be(s)!=t[r]?Pt(e,s,t[c]):s),(()=>Pt(e,s))):m(be(s))?Pt(e,s):s,ct=(e,t,s)=>(w(X(Je,t),(([l,n])=>{H(l,((t,s)=>{M(e,s)||(e[s]=t)})),H(n,(l=>{M(e,l)||zt(t,s,l)}))})),e),it=e=>(t&&(H(Ee,((t,s)=>{M(e,s)||(e[s]=t)})),H(Fe,(t=>{M(e,t)||Pt(t)}))),e),dt=e=>ee(Re,e,((e,t,s)=>{const l=Q(),n=ce();ee(_(Re,t,Q),s,((e,t,s)=>{Z(e,t,s),w(s[c],(e=>Z(l,t,e)),(()=>ie(n,t)))})),Z(Je,t,[l,n])}),((e,t)=>{Z(Re,t),Z(Je,t)})),ut=e=>ee(Le,e,((e,t,s)=>{Z(Le,t,s),w(s[c],(e=>Z(Ee,t,e)),(()=>ie(Fe,t)))}),((e,t)=>{Z(Le,t),Z(Ee,t),K(Fe,t)})),ht=e=>D(e)?os():ts(e),ft=e=>ee(ze,e,((e,t,s)=>gt(t,s)),((e,t)=>mt(t))),gt=(e,t)=>ee(_(ze,e,(()=>(Jt(e,1),Z(Oe,e,ue()),Z(xe,e,Q()),Q()))),t,((t,s,l)=>Tt(e,t,s,l)),((t,s)=>wt(e,t,s))),Tt=(e,t,s,l,n)=>ee(_(t,s,(()=>(Lt(e,s,1),Q()))),l,((t,l,n)=>bt(e,s,t,l,n)),((l,a)=>It(e,t,s,l,a,n))),bt=(e,t,s,l,n)=>{$(s,l)||Et(e,t,l,1);const a=X(s,l);n!==a&&(Ft(e,t,l,a,n),Z(s,l,n))},Vt=(e,t,s,l,n)=>w(X(t,s),(t=>bt(e,s,t,l,n)),(()=>Tt(e,t,s,ct({[l]:n},e,s)))),Ct=e=>D(e)?is():ss(e),St=e=>ee(Pe,e,((e,t,s)=>vt(t,s)),((e,t)=>Rt(t))),vt=(e,t)=>{$(Pe,e)||Ot(e,1);const s=X(Pe,e);t!==s&&(xt(e,s,t),Z(Pe,e,t))},yt=(e,t)=>{const[s]=X(Oe,e),l=s(t);return $(X(ze,e),l)?yt(e,t):l},pt=e=>X(ze,e)??gt(e,{}),mt=e=>gt(e,{}),wt=(e,t,s)=>{const[,l]=X(Oe,e);l(s),Tt(e,t,s,{},!0)},It=(e,t,s,l,n,a)=>{const o=X(X(Je,e)?.[0],n);if(!m(o)&&!a)return bt(e,s,l,n,o);const r=t=>{Ft(e,s,t,X(l,t)),Et(e,s,t,-1),Z(l,t)};m(o)?r(n):Y(l,r),q(l)&&(Lt(e,s,-1),q(Z(t,s))&&(Jt(e,-1),Z(ze,e),Z(Oe,e),Z(xe,e)))},Rt=e=>{const t=X(Ee,e);if(!m(t))return vt(e,t);xt(e,X(Pe,e)),Ot(e,-1),Z(Pe,e)},Jt=(e,t)=>pe(i,e,t),Lt=(e,t,s)=>pe(_(z,e,Q),t,s)&&Z(x,e,_(x,e,(()=>0))+s),Et=(e,t,s,l)=>{const n=X(xe,e),a=X(n,s)??0;(0==a&&1==l||1==a&&-1==l)&&pe(_(p,e,Q),s,l),Z(n,s,a!=-l?a+l:null),pe(_(_(P,e,Q),t,Q),s,l)},Ft=(e,t,s,l,n)=>_(_(_(j,e,Q),t,Q),s,(()=>[l,0]))[1]=n,Ot=(e,t)=>pe(A,e,t),xt=(e,t,s)=>_(de,e,(()=>[t,0]))[1]=s,zt=(e,t,s,l,n)=>(O(_(_(_(we,e,Q),t,Q),s,(()=>[])),l),n),Pt=(e,t,s)=>(O(_(Ie,e,(()=>[])),t),s),jt=(e,t,s)=>w(X(X(X(j,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...he(Yt(e,t,s))])),kt=e=>w(X(de,e),(([e,t])=>[!0,e,t]),(()=>[!1,...he(es(e))])),At=e=>q(we)||q(Ge[e])?0:H(e?oe(we):we,((t,s)=>H(t,((t,l)=>H(t,((t,n)=>_e(Ge[e],[s,l,n],t))))))),Mt=e=>q(Ie)||q(He[e])?0:H(e?ne(Ie):Ie,((t,s)=>_e(He[e],[s],t))),Nt=(e,t,s)=>{if(!q(t))return _e(e,s,(()=>te(t))),1},Bt=e=>{const t=q(De[e]),s=q($e[e])&&q(Me[e])&&q(Ne[e])&&q(Be[e])&&t&&q(ke[e]),l=q(qe[e])&&q(We[e])&&q(Ae[e])&&q(je[e]);if(!s||!l){const n=e?[ne(i),ae(p),ne(x),ae(z),oe(P),oe(j)]:[i,p,x,z,P,j];if(!s){Nt(ke[e],n[0]),H(n[1],((t,s)=>Nt(Me[e],t,[s]))),H(n[2],((t,s)=>{0!=t&&_e(Ne[e],[s],Kt(s))}));const s=ce();H(n[3],((l,n)=>{Nt(Be[e],l,[n])&&!t&&(_e(De[e],[n,null]),ie(s,n))})),t||H(n[5],((t,l)=>{if(!$(s,l)){const s=ce();H(t,(e=>H(e,(([t,l],n)=>l!==t?ie(s,n):K(e,n))))),H(s,(t=>_e(De[e],[l,t])))}})),H(n[4],((t,s)=>H(t,((t,l)=>Nt($e[e],t,[s,l])))))}if(!l){let t;H(n[5],((s,l)=>{let n;H(s,((s,a)=>{let o;H(s,(([s,r],c)=>{r!==s&&(_e(qe[e],[l,a,c],r,s,jt),t=n=o=1)})),o&&_e(We[e],[l,a],jt)})),n&&_e(Ae[e],[l],jt)})),t&&_e(je[e],void 0,jt)}}},Dt=e=>{const t=q(Qe[e]),s=q(Ue[e])&&q(Ke[e]);if(!t||!s){const l=e?[ne(A),ne(de)]:[A,de];if(t||Nt(Qe[e],l[0]),!s){let t;H(l[1],(([s,l],n)=>{l!==s&&(_e(Ue[e],[n],l,s,kt),t=1)})),t&&_e(Ke[e],void 0,kt)}}},Wt=(e,...t)=>(hs((()=>e(...F(t,y)))),Ts),$t=()=>[te(j,((e,t)=>-1===X(i,t)?null:te(e,((e,s)=>-1===X(X(z,t),s)?null:te(e,(([,e])=>e??null),((e,t)=>Te(t)))),D)),D),te(de,(([,e])=>e??null),((e,t)=>Te(t)))],qt=()=>({cellsTouched:l,valuesTouched:n,changedCells:le(j,ge,Te),invalidCells:le(we),changedValues:te(de,ge,Te),invalidValues:te(Ie),changedTableIds:te(i),changedRowIds:se(z),changedCellIds:le(P),changedValueIds:te(A)}),Gt=()=>le(ze),Ht=()=>U(ze),Kt=e=>W(X(ze,y(e))),Qt=e=>U(X(ze,y(e))),Ut=(e,t,s,l=0,n)=>{return F(J((o=X(ze,y(e)),r=(e,s)=>[m(t)?s:X(e,y(t)),s],a=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),F([...o?.entries()??[]],(([e,t])=>r(t,e))).sort(a)),l,m(n)?n:l+n),(([,e])=>e));var a,o,r},Xt=(e,t)=>U(X(X(ze,y(e)),y(t))),Yt=(e,t,s)=>X(X(X(ze,y(e)),y(t)),y(s)),Zt=()=>te(Pe),_t=()=>U(Pe),es=e=>X(Pe,y(e)),ts=e=>Wt((()=>(e=>ye(e,lt,zt))(e)?ft(e):0)),ss=e=>Wt((()=>ot(e)?St(e):0)),ls=e=>{try{ht(ve(e))}catch{}return Ts},ns=t=>Wt((()=>{if((e=ye(t,(e=>ye(e,st))))&&(dt(t),!q(ze))){const e=Gt();os(),ts(e)}})),as=e=>Wt((()=>{if(t=(e=>ye(e,st))(e)){const s=Zt();us(),is(),t=!0,ut(e),ss(s)}})),os=()=>Wt((()=>ft({}))),rs=e=>Wt((e=>$(ze,e)?mt(e):0),e),cs=(e,t)=>Wt(((e,t)=>w(X(ze,e),(s=>$(s,t)?wt(e,s,t):0))),e,t),is=()=>Wt((()=>St({}))),ds=()=>Wt((()=>{dt({}),e=!1})),us=()=>Wt((()=>{ut({}),t=!1})),hs=(e,t)=>{if(-1!=o){fs();const s=e();return gs(t),s}},fs=()=>(-1!=o&&o++,1==o&&_e(Xe,void 0,$t,qt),Ts),gs=e=>(o>0&&(o--,0==o&&(l=!q(j),n=!q(de),o=1,At(1),l&&Bt(1),Mt(1),n&&Dt(1),e?.($t,qt)&&(H(j,((e,t)=>H(e,((e,s)=>H(e,(([e],l)=>Ve(Ts,t,s,l,e))))))),H(de,(([e],t)=>Ce(Ts,t,e))),l=n=!1),_e(Ye[0],void 0,$t,qt),o=-1,At(0),l&&Bt(0),Mt(0),n&&Dt(0),_e(Ye[1],void 0,$t,qt),o=0,l=n=!1,E([i,p,x,z,P,j,we,A,de,Ie],G))),Ts),Ts={getContent:()=>[Gt(),Zt()],getTables:Gt,getTableIds:Ht,getTable:e=>se(X(ze,y(e))),getTableCellIds:e=>U(X(xe,y(e))),getRowCount:Kt,getRowIds:Qt,getSortedRowIds:Ut,getRow:(e,t)=>te(X(X(ze,y(e)),y(t))),getCellIds:Xt,getCell:Yt,getValues:Zt,getValueIds:_t,getValue:es,hasTables:()=>!q(ze),hasTable:e=>$(ze,y(e)),hasTableCell:(e,t)=>$(X(xe,y(e)),y(t)),hasRow:(e,t)=>$(X(ze,y(e)),y(t)),hasCell:(e,t,s)=>$(X(X(ze,y(e)),y(t)),y(s)),hasValues:()=>!q(Pe),hasValue:e=>$(Pe,y(e)),getTablesJson:()=>Se(ze),getValuesJson:()=>Se(Pe),getJson:()=>Se([ze,Pe]),getTablesSchemaJson:()=>Se(Re),getValuesSchemaJson:()=>Se(Le),getSchemaJson:()=>Se([Re,Le]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Wt((()=>{(D(e)?os:ts)(e),(D(t)?is:ss)(t)})),setTables:ts,setTable:(e,t)=>Wt((e=>lt(t,e)?gt(e,t):0),e),setRow:(e,t,s)=>Wt(((e,t)=>nt(e,t,s)?Tt(e,pt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>hs((()=>{let l;return nt(e,l,t)&&(e=y(e),Tt(e,pt(e),l=yt(e,s?1:0),t)),l})),setPartialRow:(e,t,s)=>Wt(((e,t)=>{if(nt(e,t,s,1)){const l=pt(e);B(s,((s,n)=>Vt(e,l,t,n,s)))}}),e,t),setCell:(e,t,s,l)=>Wt(((e,t,s)=>w(at(e,t,s,R(l)?l(Yt(e,t,s)):l),(l=>Vt(e,pt(e),t,s,l)))),e,t,s),setValues:ss,setPartialValues:e=>Wt((()=>ot(e,1)?B(e,((e,t)=>vt(t,e))):0)),setValue:(e,t)=>Wt((e=>w(rt(e,R(t)?t(es(e)):t),(t=>vt(e,t)))),e),setTransactionChanges:e=>Wt((()=>{B(e[0],((e,t)=>m(e)?rs(t):B(e,((e,s)=>m(e)?cs(t,s):B(e,((e,l)=>Ve(Ts,t,s,l,e))))))),B(e[1],((e,t)=>Ce(Ts,t,e)))})),setTablesJson:ls,setValuesJson:e=>{try{Ct(ve(e))}catch{}return Ts},setJson:e=>Wt((()=>{try{const[t,s]=ve(e);ht(t),Ct(s)}catch{ls(e)}})),setTablesSchema:ns,setValuesSchema:as,setSchema:(e,t)=>Wt((()=>{ns(e),as(t)})),delTables:os,delTable:rs,delRow:cs,delCell:(e,t,s,l)=>Wt(((e,t,s)=>w(X(ze,e),(n=>w(X(n,t),(a=>$(a,s)?It(e,n,t,a,s,l):0))))),e,t,s),delValues:is,delValue:e=>Wt((e=>$(Pe,e)?Rt(e):0),e),delTablesSchema:ds,delValuesSchema:us,delSchema:()=>Wt((()=>{ds(),us()})),transaction:hs,startTransaction:fs,finishTransaction:gs,forEachTable:e=>H(ze,((t,s)=>e(s,(e=>H(t,((t,s)=>e(s,(e=>Y(t,e))))))))),forEachTableCell:(e,t)=>Y(X(xe,y(e)),t),forEachRow:(e,t)=>H(X(ze,y(e)),((e,s)=>t(s,(t=>Y(e,t))))),forEachCell:(e,t,s)=>Y(X(X(ze,y(e)),y(t)),s),forEachValue:e=>Y(Pe,e),addSortedRowIdsListener:(e,t,s,l,n,a,o)=>{let r=Ut(e,t,s,l,n);return Ze((()=>{const o=Ut(e,t,s,l,n);var c,i,d;i=r,L(c=o)===L(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(r=o,a(Ts,e,t,s,l,n,r))}),De[o?1:0],[e,t],[Ht])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(tt(e),Ts),delListener:e=>(et(e),Ts),getListenerStats:()=>({}),createStore:me,addListener:Ze,callListeners:_e};return B({[u]:[0,je],[h]:[0,ke],[d]:[1,Ae,[Ht]],[d+V]:[1,Me,[Ht]],[g]:[1,Ne,[Ht]],[T]:[1,Be,[Ht]],[f]:[2,We,[Ht,Qt]],[V]:[2,$e,[Ht,Qt]],[b]:[3,qe,[Ht,Qt,Xt],e=>he(Yt(...e))],InvalidCell:[3,Ge],[S]:[0,Ke],[v]:[0,Qe],[C]:[1,Ue,[_t],e=>he(es(e[0]))],InvalidValue:[1,He]},(([e,t,s,l],n)=>{Ts["add"+n+"Listener"]=(...n)=>Ze(n[e],t[n[e+1]?1:0],e>0?J(n,0,e):void 0,s,l)})),k(Ts)};e.createStore=me},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),o=t(0),r=t(t),i="type",l="default",c="Listener",d="Result",u="add",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",I=w+"Count",S=w+h,T="Sorted"+w+h,v="Cell",R=v+h,y="Value",C=y+"s",p=y+h,b=e=>s+e,m=Math.max,V=Math.min,E=isFinite,k=(e,t)=>e instanceof t,M=e=>null==e,x=(e,t,s)=>M(e)?s?.():t(e),D=e=>e==n||e==a,J=e=>t(e)==r,A=e=>Array.isArray(e),F=(e,t,s)=>e.slice(t,s),Q=e=>e.length,z=()=>{},N=(e,t)=>e.includes(t),j=(e,t)=>e.every(t),O=(e,t)=>Q(e)===Q(t)&&j(e,((e,s)=>t[s]===e)),P=(e,t)=>j(e,((s,n)=>0==n||t(e[n-1],s)<=0)),B=(e,t)=>e.sort(t),W=(e,t)=>e.forEach(t),$=(e,t)=>e.map(t),q=e=>H(e,((e,t)=>e+t),0),G=e=>0==Q(e),H=(e,t,s)=>e.reduce(t,s),K=(e,...t)=>e.push(...t),U=e=>e.pop(),X=e=>e.shift(),Y=Object,Z=Y.keys,_=Y.isFrozen,ee=Y.freeze,te=e=>k(e,Y)&&e.constructor==Y,se=(e,t)=>!M(((e,t)=>x(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>$(Y.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>Q(Z(e)))(e),re=e=>e?.size??0,ie=(e,t)=>e?.has(t)??!1,le=e=>M(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),Ie=(e,t,s)=>M(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(ie(e,t)||Ie(e,t,s()),Le(e,t)),Te=(e,t,s,n=Ie)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),ve=(e,t,s)=>{const n={};return ue(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)),oe),ye=(e,t,s)=>ve(e,(e=>Re(e,t,s)),oe),Ce=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},pe=e=>Ce(e,Ce),be=e=>Ce(e,pe),me=(e,t,s,n,a=0)=>x((s?Se:Le)(e,t[a],a>Q(t)-2?s:ge),(o=>{if(a>Q(t)-2)return n?.(o)&&Ie(e,t[a]),o;const r=me(o,t,s,n,a+1);return le(o)&&Ie(e,t[a]),r})),Ve=e=>{const s=t(e);return D(s)||s==o&&E(e)?s:void 0},Ee=(e,t,s,n,a)=>M(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>M(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(A(e)||M(e)?e:[e]),xe=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=ge(),i=ge(),l=ge(),c=ge(),d=ge(),u=ge(),h=(t,s,...n)=>{const a=Se(u,t,Me);return W(n,(t=>xe(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>x(Le(u,t),(n=>{W(G(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),le(n)&&Ie(u,t)})),f=(e,s)=>{Ie(r,e,s),ie(i,e)||(Ie(i,e,t()),Ie(c,e,ge()),Ie(d,e,ge()),a(l))},L=e=>{Ie(r,e),Ie(i,e),Ie(c,e),Ie(d,e),g(e),a(l)};return[()=>e,()=>fe(r),e=>we(i,e),e=>ie(i,e),e=>Le(r,e),e=>Le(i,e),(e,t)=>Ie(i,e,t),f,(t,n,a,r,i)=>{f(t,n);const l=ge(),u=ge(),L=Le(c,t),w=Le(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=Le(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||A(c)&&A(d)&&O(c,d)||Ie(l,t,[c,d]),!M(i)){const e=Le(w,t),s=o(n,t)?i(a,t):void 0;e!=s&&Ie(u,t,s)}},S=e=>{a((()=>{ue(l,(([,e],t)=>Ie(L,t,e))),ue(u,((e,t)=>Ie(w,t,e)))}),l,u,L,w,e),de(l),de(u)};we(L,I),e.hasTable(n)&&W(e.getRowIds(n),(e=>{ie(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,l),()=>we(u,L),h,g]},Je=(e,a)=>t(e)==n?t=>t(e):e??(()=>a??s),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let t=0;return[n=>(n?X(e):null)??s+t++,t=>{Fe.test(t)&&Q(e)<1e3&&K(e,t)}]},ze=e=>{let t;const[n,a]=Qe(),o=ge();return[(a,r,i,l=[],c=(()=>[]))=>{t??=e();const d=n(1);return Ie(o,d,[a,r,i,l,c]),xe(me(r,i??[s],Me),d),d},(e,n,...a)=>W(((e,t=[s])=>{const n=[],a=(e,s)=>s==Q(t)?K(n,e):null===t[s]?ue(e,(e=>a(e,s+1))):W([t[s],null],(t=>a(Le(e,t),s+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](t,...n??[],...a))))),e=>x(Le(o,e),(([,t,n])=>(me(t,n??[s],void 0,(t=>(he(t,e),le(t)?1:0))),Ie(o,e),a(e),n))),e=>x(Le(o,e),(([e,,s=[],n,a])=>{const o=(...r)=>{const i=Q(r);i==Q(s)?e(t,...r,...a(r)):M(s[i])?W(n[i]?.(...r)??[],(e=>o(...r,e))):o(...r,s[i])};o()}))]},Ne=Ae((e=>{let t,n,a,o=100,r=ge(),i=ge(),l=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>F)),f=ge(),L=ge(),w=[],I=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),l=1},T=e=>{Ie(f,e),Ie(L,e),h(d,[e])},v=(e,t)=>W(((e,t)=>e.splice(0,t))(e,t??Q(e)),T),R=()=>v(w,Q(w)-o),y=()=>x(t,(()=>{K(w,t),R(),v(I),t=void 0,a=1})),C=()=>{t=U(w),a=1},p=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(l){y();const e=Se(r,t,ge),i=Se(e,s,ge),l=Se(i,n,(()=>[o,void 0]));l[1]=a,l[0]===a&&le(Ie(i,n))&&le(Ie(e,s))&&le(Ie(r,t))&&C(),k()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(l){y();const e=Se(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(Ie(i,t))&&C(),k()}})),m=(e="")=>(M(t)&&(t=s+n++,Ie(f,t,[r,i]),J(t,e),r=ge(),i=ge(),a=1),t),V=()=>{G(w)||(((e,...t)=>{e.unshift(...t)})(I,m()),S(0,t),t=U(w),a=1)},E=()=>{G(I)||(K(w,t),t=X(I),S(1,t),a=1)},k=()=>{a&&(h(c),a=0)},D=e=>{const t=m(e);return k(),t},J=(e,t)=>(A(e)&&Le(L,e)!==t&&(Ie(L,e,t),h(d,[e])),F),A=e=>ie(f,e),F={setSize:e=>(o=e,R(),F),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...I]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:A,getCheckpoint:e=>Le(L,e),goBackward:()=>(V(),k(),F),goForward:()=>(E(),k(),F),goTo:e=>{const s=N(w,e)?V:N(I,e)?E:null;for(;!M(s)&&e!=t;)s();return k(),F},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),F),clear:()=>(v(w),v(I),M(t)||T(t),t=void 0,n=0,D(),F),destroy:()=>{e.delListener(p),e.delListener(b)},getListenerStats:()=>({})};return ee(F.clear())})),je=(e,t)=>(e??0)<(t??0)?-1:1,Oe=Ae((e=>{const t=ge(),n=ge(),[a,o,r]=ze((()=>T)),[i,l,c,d,u,h,g,,f,L,w,I]=De(e,ge,(e=>M(e)?s:A(e)?$(e,b):b(e)),a,o),S=(t,s,n)=>{const a=u(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},T={setIndexDefinition:(e,s,a,r,i,l=je)=>{const c=M(i)?void 0:([e],[t])=>i(e,t);return f(e,s,((s,a,i,d,u,f)=>{let L=0;const w=Me(),I=Me(),S=h(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{xe(w,e),x(Le(S,e),(t=>{he(t,s),le(t)&&(Ie(S,e),L=1)}))})),ue(a,(e=>{xe(w,e),ie(S,e)||(Ie(S,e,Me()),L=1),xe(Le(S,e),s),M(r)||xe(I,e)}))})),s(),le(u)||(f?we(S,(e=>xe(I,e))):we(i,(e=>x(Le(d,e),(e=>xe(I,e))))),ue(I,(e=>{const t=(t,s)=>l(Le(u,t),Le(u,s),e),s=[...Le(S,e)];P(s,t)||(Ie(S,e,Me(B(s,t))),xe(w,e))}))),(L||f)&&!M(c)){const t=[...S];P(t,c)||(g(e,ge(B(t,c))),L=1)}L&&o(t,[e]),ue(w,(t=>o(n,[e,t])))}),Je(a),x(r,Je)),T},delIndexDefinition:e=>(L(e),T),getStore:i,getIndexIds:l,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>ie(h(e),t),getTableId:u,getSliceIds:e=>fe(h(e)),getSliceRowIds:(e,t)=>ce(Le(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,s)=>a(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),T),destroy:I,getListenerStats:()=>({})};return ee(T)})),Pe=ge([["avg",[(e,t)=>q(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=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>q(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Be=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,i,l,c]=a;return o||=M(e),ue(n,(([s,n])=>{o||(e=M(s)?i?.(e,n,t++):M(n)?l?.(e,s,t--):c?.(e,n,s,t),o||=M(e))})),o?r(ce(s),re(s)):e},We=Ae((e=>{const t=ge(),[n,a,o]=ze((()=>I)),[r,i,l,c,d,u,h,,g,f,L,w]=De(e,z,(e=>isNaN(e)||M(e)||!0===e||!1===e||e===s?void 0:1*e),n,a),I={setMetricDefinition:(e,s,n,o,r,i,l)=>{const c=J(n)?[n,r,i,l]:Le(Pe,n)??Le(Pe,"sum");return g(e,s,((s,n,o,r,i,l)=>{const d=u(e),g=re(r);l||=M(d),s();let f=Be(d,g,r,n,c,l);E(f)||(f=void 0),f!=d&&(h(e,f),a(t,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:i,forEachMetric:l,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,s)=>n(s,t,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return ee(I)})),$e=ge(),qe=ge(),Ge=Ae((e=>{const t=e.createStore,n=t(),a=t(),o=ge(),{addListener:r,callListeners:i,delListener:l}=a,[h,f,L,y,C,,,p,,b,m,V,E,k]=De(e,(()=>!0),z,r,i),D=(e,t,...s)=>W(s,(s=>xe(Se(Se(o,t,ge),e,Me),s))),A=e=>{x(Le(o,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),W([a,n],(t=>t.delTable(e)))},N=(e,t,s)=>D(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),O={setQueryDefinition:(t,o,r)=>{p(t,o),A(t);const i=[],l=[[null,[o,null,null,[],ge()]]],c=[],d=[],u=[];r({select:(e,t)=>{const n=J(e)?[Q(i)+s,e]:[M(t)?e:t,s=>s(e,t)];return K(i,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=M(s)||J(t)?null:t,a=M(n)?t:s,o=[e,[e,n,J(a)?a:e=>e(a),[],ge()]];return K(l,o),{as:e=>o[0]=e}},where:(e,t,s)=>K(c,J(e)?e:M(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,J(t)?[t,s,n,a]:Le(Pe,t)??[(e,t)=>t]]];return K(d,o),{as:e=>o[0]=e}},having:(e,t)=>K(u,J(e)?e:s=>s(e)===t)});const h=ge(i);if(le(h))return O;const g=ge(l);we(g,((e,[,t])=>x(Le(g,t),(({3:t})=>M(e)?0:K(t,e)))));const f=ge(d);let L=n;if(le(f)&&G(u))L=a;else{N(t,L,a);const e=ge();we(f,((t,[s,n])=>xe(Se(e,s,Me),[t,n])));const s=Me();we(h,(t=>ie(e,t)?0:xe(s,t)));const n=ge(),o=(s,n,o,r)=>x(s,(([i,l,c,d])=>{we(n,((t,[s])=>{const n=Se(i,t,ge),a=Le(n,o),l=r?void 0:s;if(a!==l){const s=Me([[a,l]]),r=re(n);Ie(n,o,l),ue(Le(e,t),(([e,t])=>{const a=Be(d[e],r,n,s,t);d[e]=M(Ve(a))?null:a}))}})),le(l)||!j(u,(e=>e((e=>d[e]))))?a.delRow(t,c):M(c)?s[2]=a.addRow(t,d):a.setRow(t,c,d)}));D(L,t,L.addRowListener(t,null,((a,r,i,l)=>{const c=[],d=[],u=ge(),h=L.hasRow(t,i);let g=!h;ue(s,(e=>{const[s,n,a]=l(t,i,e);K(c,n),K(d,a),g||=s})),we(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&Ie(u,e,[n])})),g&&o(me(n,c,void 0,(([,e])=>(he(e,i),le(e)))),u,i,1),h&&o(me(n,d,(()=>{const e={};return ue(s,(s=>e[s]=L.getCell(t,i,s))),[ge(),Me(),void 0,e]}),(([,e])=>{xe(e,i)})),u,i)})))}N(t,e,L);const w=(s,n,a,r)=>{const i=t=>e.getCell(n,a,t);W(r,(n=>{const[a,,o,r,l]=Le(g,n),c=o?.(i,s),[d,u]=Le(l,s)??[];c!=d&&(M(u)||k(t,u),Ie(l,s,M(c)?null:[c,...E(t,1,e.addRowListener(a,c,(()=>w(s,a,c,r))))]))})),(s=>{const n=(t,n)=>e.getCell(...M(n)?[o,s,t]:t===o?[o,s,n]:[Le(g,t)?.[0],Le(Le(g,t)?.[4],s)?.[0],n]);L.transaction((()=>j(c,(e=>e(n)))?we(h,((e,a)=>Ee(L,t,s,e,a(n,s)))):L.delRow(t,s)))})(s)},{3:I}=Le(g,null);return L.transaction((()=>E(t,1,e.addRowListener(o,null,((s,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(t,a),ue(g,(({4:e})=>x(Le(e,a),(([,s])=>{k(t,s),Ie(e,a)})))))}))))),O},delQueryDefinition:e=>(A(e),b(e),O),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:y,getTableId:C,addQueryIdsListener:e=>m((()=>e(O))),delListener:e=>(l(e),O),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ae({[g]:[1,1],[g+R]:[0,1],[I]:[0,1],[S]:[0,1],[T]:[0,5],[w]:[1,2],[R]:[0,2],[v]:[1,3]},(([e,t],s)=>{W(e?["get","has","forEach"]:["get"],(e=>O[e+d+s]=(...t)=>a[e+s](...t))),O[u+d+s+c]=(...e)=>a[u+s+c](...F(e,0,t),((s,...n)=>e[t](O,...n)),!0)})),ee(O)})),He=Ae((e=>{const t=ge(),n=ge(),a=ge(),o=ge(),[r,i,l]=ze((()=>y)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[ge(),ge(),ge(),ge()]),(e=>M(e)?void 0:e+s),r,i),T=(e,t,s)=>x(f(e),(([n,,a])=>{if(!ie(a,t)){const o=Me();if(g(e)!=R(e))xe(o,t);else{let e=t;for(;!M(e)&&!ie(o,e);)xe(o,e),e=Le(n,e)}if(s)return o;Ie(a,t,o)}return Le(a,t)})),v=(e,t)=>x(f(e),(([,,e])=>Ie(e,t))),R=e=>Le(t,e),y={setRelationshipDefinition:(e,s,r,l)=>(Ie(t,e,r),L(e,s,((t,s)=>{const r=Me(),l=Me(),c=Me(),[d,u]=f(e);ue(s,(([t,s],n)=>{M(t)||(xe(l,t),x(Le(u,t),(e=>{he(e,n),le(e)&&Ie(u,t)}))),M(s)||(xe(l,s),ie(u,s)||Ie(u,s,Me()),xe(Le(u,s),n)),xe(r,n),Ie(d,n,s),we(Le(o,e),(t=>{ie(T(e,t),n)&&xe(c,t)}))})),t(),ue(r,(t=>i(n,[e,t]))),ue(l,(t=>i(a,[e,t]))),ue(c,(t=>{v(e,t),i(o,[e,t])}))}),Je(l)),y),delRelationshipDefinition:e=>(Ie(t,e),w(e),y),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:R,getRemoteRowId:(e,t)=>Le(f(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>M(f(e))?[t]:ce(T(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(T(e,t),r(s,o,[e,t])),delListener:e=>(v(...l(e)??[]),y),destroy:S,getListenerStats:()=>({})};return ee(y)})),Ke=e=>[e,e],Ue=()=>[ge(),ge()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>k(t,Map)?Y.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>M(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),tt=(e,t,s)=>Ie(e,t,Le(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,a=0;const r=ge(),d=ge(),h=ge(),T=ge(),m=ge(),V=ge(),E=ge(),k=ge(),A=ge(),Q=ge(),z=ge(),j=ge(),P=ge(),q=ge(),G=Me(),H=ge(),U=ge(),X=ge(),Y=ge(),Z=Ue(),_=Ue(),te=Ue(),ce=Ue(),me=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),Fe=Ue(),Ne=Ue(),Oe=Ue(),Pe=Ue(),Be=Ue(),We=Ue(),$e=Ue(),qe=ge(),Ge=Ue(),[He,nt,at,ot]=ze((()=>Ts)),rt=e=>{if(!et(e,((e,t)=>N([i,l],t))))return!1;const t=e[i];return!(!D(t)&&t!=o||(Ve(e[l])!=t&&ne(e,l),0))},it=(t,s)=>(!e||ie(z,s)||zt(s))&&et(t,((e,t)=>lt(s,t,e)),(()=>zt(s))),lt=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>x(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?x(Le(Le(z,t),n),(e=>Ve(a)!=e[i]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):M(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>x(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?x(Le(P,e),(t=>Ve(s)!=t[i]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):M(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(x(Le(j,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(ue(q,((t,s)=>{se(e,s)||(e[s]=t)})),ue(G,(t=>{se(e,t)||Nt(t)}))),e),ft=e=>Te(z,e,((e,t,s)=>{const n=ge(),a=Me();Te(Se(z,t,ge),s,((e,t,s)=>{Ie(e,t,s),x(s[l],(e=>Ie(n,t,e)),(()=>xe(a,t)))})),Ie(j,t,[n,a])}),((e,t)=>{Ie(z,t),Ie(j,t)})),Lt=e=>Te(P,e,((e,t,s)=>{Ie(P,t,s),x(s[l],(e=>Ie(q,t,e)),(()=>xe(G,t)))}),((e,t)=>{Ie(P,t),Ie(q,t),he(G,t)})),wt=e=>oe(e)?ds():os(e),It=e=>Te(X,e,((e,t,s)=>St(t,s)),((e,t)=>Vt(t))),St=(e,t)=>Te(Se(X,e,(()=>(xt(e,1),Ie(H,e,Qe()),Ie(U,e,ge()),ge()))),t,((t,s,n)=>Tt(e,t,s,n)),((t,s)=>Et(e,t,s))),Tt=(e,t,s,n,a)=>Te(Se(t,s,(()=>(Dt(e,s,1),ge()))),n,((t,n,a)=>vt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),vt=(e,t,s,n,a)=>{ie(s,n)||Jt(e,t,n,1);const o=Le(s,n);a!==o&&(At(e,t,n,o,a),Ie(s,n,a))},Rt=(e,t,s,n,a)=>x(Le(t,s),(t=>vt(e,s,t,n,a)),(()=>Tt(e,t,s,ht({[n]:a},e,s)))),yt=e=>oe(e)?gs():rs(e),Ct=e=>Te(Y,e,((e,t,s)=>pt(t,s)),((e,t)=>Mt(t))),pt=(e,t)=>{ie(Y,e)||Ft(e,1);const s=Le(Y,e);t!==s&&(Qt(e,s,t),Ie(Y,e,t))},bt=(e,t)=>{const[s]=Le(H,e),n=s(t);return ie(Le(X,e),n)?bt(e,t):n},mt=e=>Le(X,e)??St(e,{}),Vt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=Le(H,e);n(s),Tt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=Le(Le(j,e)?.[0],a);if(!M(r)&&!o)return vt(e,s,n,a,r);const i=t=>{At(e,s,t,Le(n,t)),Jt(e,s,t,-1),Ie(n,t)};M(r)?i(a):we(n,i),le(n)&&(Dt(e,s,-1),le(Ie(t,s))&&(xt(e,-1),Ie(X,e),Ie(H,e),Ie(U,e)))},Mt=e=>{const t=Le(q,e);if(!M(t))return pt(e,t);Qt(e,Le(Y,e)),Ft(e,-1),Ie(Y,e)},xt=(e,t)=>tt(r,e,t),Dt=(e,t,s)=>tt(Se(T,e,ge),t,s)&&Ie(h,e,Se(h,e,(()=>0))+s),Jt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Se(d,e,ge),s,n),Ie(a,s,o!=-n?o+n:null),tt(Se(Se(m,e,ge),t,ge),s,n)},At=(e,t,s,n,a)=>Se(Se(Se(V,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Se(k,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(K(Se(Se(Se(A,e,ge),t,ge),s,(()=>[])),n),a),Nt=(e,t,s)=>(K(Se(Q,e,(()=>[])),t),s),jt=(e,t,s)=>x(Le(Le(Le(V,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),Ot=e=>x(Le(k,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),Pt=e=>le(A)||le(Oe[e])?0:ue(e?be(A):A,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>nt(Oe[e],[s,n,a],t))))))),Bt=e=>le(Q)||le(Pe[e])?0:ue(e?Ce(Q):Q,((t,s)=>nt(Pe[e],[s],t))),Wt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>ve(t))),1},$t=e=>{const t=le(Je[e]),s=le(Fe[e])&&le(ce[e])&&le(me[e])&&le(De[e])&&t&&le(_[e]),n=le(Ne[e])&&le(Ae[e])&&le(te[e])&&le(Z[e]);if(!s||!n){const a=e?[Ce(r),pe(d),Ce(h),pe(T),be(m),be(V)]:[r,d,h,T,m,V];if(!s){Wt(_[e],a[0]),ue(a[1],((t,s)=>Wt(ce[e],t,[s]))),ue(a[2],((t,s)=>{0!=t&&nt(me[e],[s],Yt(s))}));const s=Me();ue(a[3],((n,a)=>{Wt(De[e],n,[a])&&!t&&(nt(Je[e],[a,null]),xe(s,a))})),t||ue(a[5],((t,n)=>{if(!ie(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?xe(s,a):he(e,a))))),ue(s,(t=>nt(Je[e],[n,t])))}})),ue(a[4],((t,s)=>ue(t,((t,n)=>Wt(Fe[e],t,[s,n])))))}if(!n){let t;ue(a[5],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,i],l)=>{i!==s&&(nt(Ne[e],[n,o,l],i,s,jt),t=a=r=1)})),r&&nt(Ae[e],[n,o],jt)})),a&&nt(te[e],[n],jt)})),t&&nt(Z[e],void 0,jt)}}},qt=e=>{const t=le(We[e]),s=le($e[e])&&le(Be[e]);if(!t||!s){const n=e?[Ce(E),Ce(k)]:[E,k];if(t||Wt(We[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,Ot),t=1)})),t&&nt(Be[e],void 0,Ot)}}},Gt=(e,...t)=>(ws((()=>e(...$(t,b)))),Ts),Ht=()=>[ve(V,((e,t)=>-1===Le(r,t)?null:ve(e,((e,s)=>-1===Le(Le(T,t),s)?null:ve(e,(([,e])=>e??null),((e,t)=>Ye(t)))),oe)),oe),ve(k,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:ye(V,Xe,Ye),invalidCells:ye(A),changedValues:ve(k,Xe,Ye),invalidValues:ve(Q),changedTableIds:ve(r),changedRowIds:Re(T),changedCellIds:ye(m),changedValueIds:ve(E)}),Ut=()=>ye(X),Xt=()=>fe(X),Yt=e=>re(Le(X,b(e))),Zt=e=>fe(Le(X,b(e))),_t=(e,t,s,n=0,a)=>{return $(F(B((o=Le(X,b(e)),r=(e,s)=>[M(t)?s:Le(e,b(t)),s],$([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>je(e,t)*(s?-1:1))),n,M(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>fe(Le(Le(X,b(e)),b(t))),ts=(e,t,s)=>Le(Le(Le(X,b(e)),b(t)),b(s)),ss=()=>ve(Y),ns=()=>fe(Y),as=e=>Le(Y,b(e)),os=e=>Gt((()=>(e=>et(e,it,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?Ct(e):0)),is=e=>{try{wt(_e(e))}catch{}return Ts},ls=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>ie(X,e)?Vt(e):0),e),hs=(e,t)=>Gt(((e,t)=>x(Le(X,e),(s=>ie(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>Ct({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=a){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=a&&a++,1==a&&nt(qe,void 0,Ht,Kt),Ts),Ss=e=>(a>0&&(a--,0==a&&(s=!le(V),n=!le(k),a=1,Pt(1),s&&$t(1),Bt(1),n&&qt(1),e?.(Ht,Kt)&&(ue(V,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(Ts,t,s,n,e))))))),ue(k,(([e],t)=>ke(Ts,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),a=-1,Pt(0),s&&$t(0),Bt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),a=0,s=n=!1,W([r,d,h,T,m,V,A,E,k,Q],de))),Ts),Ts={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>Re(Le(X,b(e))),getTableCellIds:e=>fe(Le(U,b(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>ve(Le(Le(X,b(e)),b(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>ie(X,b(e)),hasTableCell:(e,t)=>ie(Le(U,b(e)),b(t)),hasRow:(e,t)=>ie(Le(X,b(e)),b(t)),hasCell:(e,t,s)=>ie(Le(Le(X,b(e)),b(t)),b(s)),hasValues:()=>!le(Y),hasValue:e=>ie(Y,b(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(z),getValuesSchemaJson:()=>Ze(P),getSchemaJson:()=>Ze([z,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(oe(e)?ds:os)(e),(oe(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>it(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>lt(e,t,s)?Tt(e,mt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return lt(e,n,t)&&(e=b(e),Tt(e,mt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(lt(e,t,s,1)){const n=mt(e);ae(s,((s,a)=>Rt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>x(ct(e,t,s,J(n)?n(ts(e,t,s)):n),(n=>Rt(e,mt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ae(e,((e,t)=>pt(t,e))):0)),setValue:(e,t)=>Gt((e=>x(ut(e,J(t)?t(as(e)):t),(t=>pt(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ae(e[0],((e,t)=>M(e)?us(t):ae(e,((e,s)=>M(e)?hs(t,s):ae(e,((e,n)=>Ee(Ts,t,s,n,e))))))),ae(e[1],((e,t)=>ke(Ts,t,e)))})),setTablesJson:is,setValuesJson:e=>{try{yt(_e(e))}catch{}return Ts},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),yt(s)}catch{is(e)}})),setTablesSchema:ls,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{ls(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>x(Le(X,e),(a=>x(Le(a,t),(o=>ie(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>ie(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,b(e)),t),forEachRow:(e,t)=>ue(Le(X,b(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,b(e)),b(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let i=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);O(r,i)||(i=r,o(Ts,e,t,s,n,a,i))}),Je[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),Ts),delListener:e=>(at(e),Ts),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ae({[f]:[0,Z],[L]:[0,_],[g]:[1,te,[Xt]],[g+R]:[1,ce,[Xt]],[I]:[1,me,[Xt]],[S]:[1,De,[Xt]],[w]:[2,Ae,[Xt,Zt]],[R]:[2,Fe,[Xt,Zt]],[v]:[3,Ne,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,Oe],[C]:[0,Be],[p]:[0,We],[y]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,Pe]},(([e,t,s,n],a)=>{Ts[u+a+c]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?F(a,0,e):void 0,s,n)})),ee(Ts)};e.createCheckpoints=Ne,e.createCustomPersister=(e,t,s,n,a,o,[r,i]=[],l=[])=>{let c,d,u,h=0,g=0;Se($e,l,(()=>0)),Se(qe,l,(()=>[]));const f=async e=>(2!=h&&(h=1,await L.schedule((async()=>{await e(),h=0}))),L),L={load:async(s,n)=>await f((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(L.stopAutoLoad(),await L.load(s,a),g=1,u=n((async(s,n)=>{if(n){const t=n();await f((async()=>e.setTransactionChanges(t)))}else await f((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),L),stopAutoLoad:()=>(g&&(a(u),u=void 0,g=0),L),save:async t=>(1!=h&&(h=2,await L.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}h=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),c=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||L.save((()=>[s,n]))})),L),stopAutoSave:()=>(x(c,e.delListener),c=void 0,L),schedule:async(...e)=>(K(Le(qe,l),...e),await(async()=>{if(!Le($e,l)){for(Ie($e,l,1);!M(d=X(Le(qe,l)));)try{await d()}catch(e){o?.(e)}Ie($e,l,0)}})(),L),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>i),ee(L)},e.createIndexes=Oe,e.createMetrics=We,e.createQueries=Ge,e.createRelationships=He,e.createStore=st,e.defaultSorter=je},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),a=t(!0),o=t(0),r=t(t),i="type",l="default",c="Listener",d="Result",u="add",h="Ids",g="Table",f=g+"s",L=g+h,w="Row",I=w+"Count",S=w+h,y="Sorted"+w+h,T="Cell",v=T+h,R="Value",p=R+"s",C=R+h,b=e=>s+e,m=Math.max,V=Math.min,E=isFinite,k=e=>null==e,M=(e,t,s)=>k(e)?s?.():t(e),x=e=>e==n||e==a,D=e=>t(e)==r,J=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),F=e=>e.length,Q=()=>{},z=(e,t)=>e.includes(t),N=(e,t)=>e.every(t),O=(e,t)=>F(e)===F(t)&&N(e,((e,s)=>t[s]===e)),P=(e,t)=>N(e,((s,n)=>0==n||t(e[n-1],s)<=0)),j=(e,t)=>e.sort(t),B=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),$=e=>G(e,((e,t)=>e+t),0),q=e=>0==F(e),G=(e,t,s)=>e.reduce(t,s),H=(e,...t)=>e.push(...t),K=e=>e.pop(),U=e=>e.shift(),X=Object,Y=e=>X.getPrototypeOf(e),Z=X.keys,_=X.isFrozen,ee=X.freeze,te=e=>!k(e)&&M(Y(e),(e=>e==X.prototype||k(Y(e))),(()=>!0)),se=(e,t)=>!k(((e,t)=>M(e,(e=>e[t])))(e,t)),ne=(e,t)=>(delete e[t],e),ae=(e,t)=>W(X.entries(e),(([e,s])=>t(s,e))),oe=e=>te(e)&&0==(e=>F(Z(e)))(e),re=e=>e?.size??0,ie=(e,t)=>e?.has(t)??!1,le=e=>k(e)||0==re(e),ce=e=>[...e?.values()??[]],de=e=>e.clear(),ue=(e,t)=>e?.forEach(t),he=(e,t)=>e?.delete(t),ge=e=>new Map(e),fe=e=>[...e?.keys()??[]],Le=(e,t)=>e?.get(t),we=(e,t)=>ue(e,((e,s)=>t(s,e))),Ie=(e,t,s)=>k(s)?(he(e,t),e):e?.set(t,s),Se=(e,t,s)=>(ie(e,t)||Ie(e,t,s()),Le(e,t)),ye=(e,t,s,n=Ie)=>(ae(t,((t,n)=>s(e,n,t))),we(e,(s=>se(t,s)?0:n(e,s))),e),Te=(e,t,s)=>{const n={};return ue(e,((e,a)=>{const o=t?t(e,a):e;!s?.(o,e)&&(n[a]=o)})),n},ve=(e,t,s)=>Te(e,(e=>Te(e,t,s)),oe),Re=(e,t,s)=>Te(e,(e=>ve(e,t,s)),oe),pe=(e,t)=>{const s=ge();return ue(e,((e,n)=>s.set(n,t?.(e)??e))),s},Ce=e=>pe(e,pe),be=e=>pe(e,Ce),me=(e,t,s,n,a=0)=>M((s?Se:Le)(e,t[a],a>F(t)-2?s:ge),(o=>{if(a>F(t)-2)return n?.(o)&&Ie(e,t[a]),o;const r=me(o,t,s,n,a+1);return le(o)&&Ie(e,t[a]),r})),Ve=e=>{const s=t(e);return x(s)||s==o&&E(e)?s:void 0},Ee=(e,t,s,n,a)=>k(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),ke=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),Me=e=>new Set(J(e)||k(e)?e:[e]),xe=(e,t)=>e?.add(t),De=(e,t,s,n,a)=>{const o=e.hasRow,r=ge(),i=ge(),l=ge(),c=ge(),d=ge(),u=ge(),h=(t,s,...n)=>{const a=Se(u,t,Me);return B(n,(t=>xe(a,t)&&s&&e.callListener(t))),n},g=(t,...s)=>M(Le(u,t),(n=>{B(q(s)?ce(n):s,(t=>{e.delListener(t),he(n,t)})),le(n)&&Ie(u,t)})),f=(e,s)=>{Ie(r,e,s),ie(i,e)||(Ie(i,e,t()),Ie(c,e,ge()),Ie(d,e,ge()),a(l))},L=e=>{Ie(r,e),Ie(i,e),Ie(c,e),Ie(d,e),g(e),a(l)};return[()=>e,()=>fe(r),e=>we(i,e),e=>ie(i,e),e=>Le(r,e),e=>Le(i,e),(e,t)=>Ie(i,e,t),f,(t,n,a,r,i)=>{f(t,n);const l=ge(),u=ge(),L=Le(c,t),w=Le(d,t),I=t=>{const a=s=>e.getCell(n,t,s),c=Le(L,t),d=o(n,t)?s(r(a,t)):void 0;if(c===d||J(c)&&J(d)&&O(c,d)||Ie(l,t,[c,d]),!k(i)){const e=Le(w,t),s=o(n,t)?i(a,t):void 0;e!=s&&Ie(u,t,s)}},S=e=>{a((()=>{ue(l,(([,e],t)=>Ie(L,t,e))),ue(u,((e,t)=>Ie(w,t,e)))}),l,u,L,w,e),de(l),de(u)};we(L,I),e.hasTable(n)&&B(e.getRowIds(n),(e=>{ie(L,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(n,null,((e,t,s)=>I(s))),e.addTableListener(n,(()=>S())))},L,e=>n(e,l),()=>we(u,L),h,g]},Je=(e,a)=>t(e)==n?t=>t(e):e??(()=>a??s),Ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},Fe=/^\d+$/,Qe=()=>{const e=[];let t=0;return[n=>(n?U(e):null)??s+t++,t=>{Fe.test(t)&&F(e)<1e3&&H(e,t)}]},ze=e=>{let t;const[n,a]=Qe(),o=ge();return[(a,r,i,l=[],c=(()=>[]))=>{t??=e();const d=n(1);return Ie(o,d,[a,r,i,l,c]),xe(me(r,i??[s],Me),d),d},(e,n,...a)=>B(((e,t=[s])=>{const n=[],a=(e,s)=>s==F(t)?H(n,e):null===t[s]?ue(e,(e=>a(e,s+1))):B([t[s],null],(t=>a(Le(e,t),s+1)));return a(e,0),n})(e,n),(e=>ue(e,(e=>Le(o,e)[0](t,...n??[],...a))))),e=>M(Le(o,e),(([,t,n])=>(me(t,n??[s],void 0,(t=>(he(t,e),le(t)?1:0))),Ie(o,e),a(e),n))),e=>M(Le(o,e),(([e,,s=[],n,a])=>{const o=(...r)=>{const i=F(r);i==F(s)?e(t,...r,...a(r)):k(s[i])?B(n[i]?.(...r)??[],(e=>o(...r,e))):o(...r,s[i])};o()}))]},Ne=Ae((e=>{let t,n,a,o=100,r=ge(),i=ge(),l=1;const c=ge(),d=ge(),[u,h,g]=ze((()=>Q)),f=ge(),L=ge(),w=[],I=[],S=(t,s)=>{l=0,e.transaction((()=>{const[n,a]=Le(f,s);ue(n,((s,n)=>ue(s,((s,a)=>ue(s,((s,o)=>Ee(e,n,a,o,s[t]))))))),ue(a,((s,n)=>ke(e,n,s[t])))})),l=1},y=e=>{Ie(f,e),Ie(L,e),h(d,[e])},T=(e,t)=>B(((e,t)=>e.splice(0,t))(e,t??F(e)),y),v=()=>T(w,F(w)-o),R=()=>M(t,(()=>{H(w,t),v(),T(I),t=void 0,a=1})),p=()=>{t=K(w),a=1},C=e.addCellListener(null,null,null,((e,t,s,n,a,o)=>{if(l){R();const e=Se(r,t,ge),i=Se(e,s,ge),l=Se(i,n,(()=>[o,void 0]));l[1]=a,l[0]===a&&le(Ie(i,n))&&le(Ie(e,s))&&le(Ie(r,t))&&p(),x()}})),b=e.addValueListener(null,((e,t,s,n)=>{if(l){R();const e=Se(i,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&le(Ie(i,t))&&p(),x()}})),m=(e="")=>(k(t)&&(t=s+n++,Ie(f,t,[r,i]),J(t,e),r=ge(),i=ge(),a=1),t),V=()=>{q(w)||(((e,...t)=>{e.unshift(...t)})(I,m()),S(0,t),t=K(w),a=1)},E=()=>{q(I)||(H(w,t),t=U(I),S(1,t),a=1)},x=()=>{a&&(h(c),a=0)},D=e=>{const t=m(e);return x(),t},J=(e,t)=>(A(e)&&Le(L,e)!==t&&(Ie(L,e,t),h(d,[e])),Q),A=e=>ie(f,e),Q={setSize:e=>(o=e,v(),Q),addCheckpoint:D,setCheckpoint:J,getStore:()=>e,getCheckpointIds:()=>[[...w],t,[...I]],forEachCheckpoint:e=>we(L,e),hasCheckpoint:A,getCheckpoint:e=>Le(L,e),goBackward:()=>(V(),x(),Q),goForward:()=>(E(),x(),Q),goTo:e=>{const s=z(w,e)?V:z(I,e)?E:null;for(;!k(s)&&e!=t;)s();return x(),Q},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(g(e),Q),clear:()=>(T(w),T(I),k(t)||y(t),t=void 0,n=0,D(),Q),destroy:()=>{e.delListener(C),e.delListener(b)},getListenerStats:()=>({})};return ee(Q.clear())})),Oe=(e,t)=>(e??0)<(t??0)?-1:1,Pe=Ae((e=>{const t=ge(),n=ge(),[a,o,r]=ze((()=>y)),[i,l,c,d,u,h,g,,f,L,w,I]=De(e,ge,(e=>k(e)?s:J(e)?W(e,b):b(e)),a,o),S=(t,s,n)=>{const a=u(t);ue(n,((t,n)=>s(n,(s=>ue(t,(t=>s(t,(s=>e.forEachCell(a,t,s)))))))))},y={setIndexDefinition:(e,s,a,r,i,l=Oe)=>{const c=k(i)?void 0:([e],[t])=>i(e,t);return f(e,s,((s,a,i,d,u,f)=>{let L=0;const w=Me(),I=Me(),S=h(e);if(ue(a,(([e,t],s)=>{const n=Me(e),a=Me(t);ue(n,(e=>he(a,e)?he(n,e):0)),ue(n,(e=>{xe(w,e),M(Le(S,e),(t=>{he(t,s),le(t)&&(Ie(S,e),L=1)}))})),ue(a,(e=>{xe(w,e),ie(S,e)||(Ie(S,e,Me()),L=1),xe(Le(S,e),s),k(r)||xe(I,e)}))})),s(),le(u)||(f?we(S,(e=>xe(I,e))):we(i,(e=>M(Le(d,e),(e=>xe(I,e))))),ue(I,(e=>{const t=(t,s)=>l(Le(u,t),Le(u,s),e),s=[...Le(S,e)];P(s,t)||(Ie(S,e,Me(j(s,t))),xe(w,e))}))),(L||f)&&!k(c)){const t=[...S];P(t,c)||(g(e,ge(j(t,c))),L=1)}L&&o(t,[e]),ue(w,(t=>o(n,[e,t])))}),Je(a),M(r,Je)),y},delIndexDefinition:e=>(L(e),y),getStore:i,getIndexIds:l,forEachIndex:e=>c(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,h(e)),hasIndex:d,hasSlice:(e,t)=>ie(h(e),t),getTableId:u,getSliceIds:e=>fe(h(e)),getSliceRowIds:(e,t)=>ce(Le(h(e),t)),addIndexIdsListener:w,addSliceIdsListener:(e,s)=>a(s,t,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),y),destroy:I,getListenerStats:()=>({})};return ee(y)})),je=ge([["avg",[(e,t)=>$(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=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["min",[e=>V(...e),(e,t)=>V(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:V(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Be=(e,t,s,n,a,o=!1)=>{if(le(s))return;const[r,i,l,c]=a;return o||=k(e),ue(n,(([s,n])=>{o||(e=k(s)?i?.(e,n,t++):k(n)?l?.(e,s,t--):c?.(e,n,s,t),o||=k(e))})),o?r(ce(s),re(s)):e},We=Ae((e=>{const t=ge(),[n,a,o]=ze((()=>I)),[r,i,l,c,d,u,h,,g,f,L,w]=De(e,Q,(e=>isNaN(e)||k(e)||!0===e||!1===e||e===s?void 0:1*e),n,a),I={setMetricDefinition:(e,s,n,o,r,i,l)=>{const c=D(n)?[n,r,i,l]:Le(je,n)??Le(je,"sum");return g(e,s,((s,n,o,r,i,l)=>{const d=u(e),g=re(r);l||=k(d),s();let f=Be(d,g,r,n,c,l);E(f)||(f=void 0),f!=d&&(h(e,f),a(t,[e],f,d))}),Je(o,1)),I},delMetricDefinition:e=>(f(e),I),getStore:r,getMetricIds:i,forEachMetric:l,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:L,addMetricListener:(e,s)=>n(s,t,[e]),delListener:e=>(o(e),I),destroy:w,getListenerStats:()=>({})};return ee(I)})),$e=ge(),qe=ge(),Ge=Ae((e=>{const t=e.createStore,n=t(),a=t(),o=ge(),{addListener:r,callListeners:i,delListener:l}=a,[h,f,L,R,p,,,C,,b,m,V,E,x]=De(e,(()=>!0),Q,r,i),J=(e,t,...s)=>B(s,(s=>xe(Se(Se(o,t,ge),e,Me),s))),z=e=>{M(Le(o,e),(e=>{we(e,((e,t)=>ue(t,(t=>e.delListener(t))))),de(e)})),B([a,n],(t=>t.delTable(e)))},O=(e,t,s)=>J(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),P={setQueryDefinition:(t,o,r)=>{C(t,o),z(t);const i=[],l=[[null,[o,null,null,[],ge()]]],c=[],d=[],u=[];r({select:(e,t)=>{const n=D(e)?[F(i)+s,e]:[k(t)?e:t,s=>s(e,t)];return H(i,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=k(s)||D(t)?null:t,a=k(n)?t:s,o=[e,[e,n,D(a)?a:e=>e(a),[],ge()]];return H(l,o),{as:e=>o[0]=e}},where:(e,t,s)=>H(c,D(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,D(t)?[t,s,n,a]:Le(je,t)??[(e,t)=>t]]];return H(d,o),{as:e=>o[0]=e}},having:(e,t)=>H(u,D(e)?e:s=>s(e)===t)});const h=ge(i);if(le(h))return P;const g=ge(l);we(g,((e,[,t])=>M(Le(g,t),(({3:t})=>k(e)?0:H(t,e)))));const f=ge(d);let L=n;if(le(f)&&q(u))L=a;else{O(t,L,a);const e=ge();we(f,((t,[s,n])=>xe(Se(e,s,Me),[t,n])));const s=Me();we(h,(t=>ie(e,t)?0:xe(s,t)));const n=ge(),o=(s,n,o,r)=>M(s,(([i,l,c,d])=>{we(n,((t,[s])=>{const n=Se(i,t,ge),a=Le(n,o),l=r?void 0:s;if(a!==l){const s=Me([[a,l]]),r=re(n);Ie(n,o,l),ue(Le(e,t),(([e,t])=>{const a=Be(d[e],r,n,s,t);d[e]=k(Ve(a))?null:a}))}})),le(l)||!N(u,(e=>e((e=>d[e]))))?a.delRow(t,c):k(c)?s[2]=a.addRow(t,d):a.setRow(t,c,d)}));J(L,t,L.addRowListener(t,null,((a,r,i,l)=>{const c=[],d=[],u=ge(),h=L.hasRow(t,i);let g=!h;ue(s,(e=>{const[s,n,a]=l(t,i,e);H(c,n),H(d,a),g||=s})),we(e,(e=>{const[s,,n]=l(t,i,e);(g||s)&&Ie(u,e,[n])})),g&&o(me(n,c,void 0,(([,e])=>(he(e,i),le(e)))),u,i,1),h&&o(me(n,d,(()=>{const e={};return ue(s,(s=>e[s]=L.getCell(t,i,s))),[ge(),Me(),void 0,e]}),(([,e])=>{xe(e,i)})),u,i)})))}O(t,e,L);const w=(s,n,a,r)=>{const i=t=>e.getCell(n,a,t);B(r,(n=>{const[a,,o,r,l]=Le(g,n),c=o?.(i,s),[d,u]=Le(l,s)??[];c!=d&&(k(u)||x(t,u),Ie(l,s,k(c)?null:[c,...E(t,1,e.addRowListener(a,c,(()=>w(s,a,c,r))))]))})),(s=>{const n=(t,n)=>e.getCell(...k(n)?[o,s,t]:t===o?[o,s,n]:[Le(g,t)?.[0],Le(Le(g,t)?.[4],s)?.[0],n]);L.transaction((()=>N(c,(e=>e(n)))?we(h,((e,a)=>Ee(L,t,s,e,a(n,s)))):L.delRow(t,s)))})(s)},{3:I}=Le(g,null);return L.transaction((()=>E(t,1,e.addRowListener(o,null,((s,n,a)=>{e.hasRow(o,a)?w(a,o,a,I):(L.delRow(t,a),ue(g,(({4:e})=>M(Le(e,a),(([,s])=>{x(t,s),Ie(e,a)})))))}))))),P},delQueryDefinition:e=>(z(e),b(e),P),getStore:h,getQueryIds:f,forEachQuery:L,hasQuery:R,getTableId:p,addQueryIdsListener:e=>m((()=>e(P))),delListener:e=>(l(e),P),destroy:V,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return n}};return ae({[g]:[1,1],[g+v]:[0,1],[I]:[0,1],[S]:[0,1],[y]:[0,5],[w]:[1,2],[v]:[0,2],[T]:[1,3]},(([e,t],s)=>{B(e?["get","has","forEach"]:["get"],(e=>P[e+d+s]=(...t)=>a[e+s](...t))),P[u+d+s+c]=(...e)=>a[u+s+c](...A(e,0,t),((s,...n)=>e[t](P,...n)),!0)})),ee(P)})),He=Ae((e=>{const t=ge(),n=ge(),a=ge(),o=ge(),[r,i,l]=ze((()=>R)),[c,d,u,h,g,f,,,L,w,I,S]=De(e,(()=>[ge(),ge(),ge(),ge()]),(e=>k(e)?void 0:e+s),r,i),y=(e,t,s)=>M(f(e),(([n,,a])=>{if(!ie(a,t)){const o=Me();if(g(e)!=v(e))xe(o,t);else{let e=t;for(;!k(e)&&!ie(o,e);)xe(o,e),e=Le(n,e)}if(s)return o;Ie(a,t,o)}return Le(a,t)})),T=(e,t)=>M(f(e),(([,,e])=>Ie(e,t))),v=e=>Le(t,e),R={setRelationshipDefinition:(e,s,r,l)=>(Ie(t,e,r),L(e,s,((t,s)=>{const r=Me(),l=Me(),c=Me(),[d,u]=f(e);ue(s,(([t,s],n)=>{k(t)||(xe(l,t),M(Le(u,t),(e=>{he(e,n),le(e)&&Ie(u,t)}))),k(s)||(xe(l,s),ie(u,s)||Ie(u,s,Me()),xe(Le(u,s),n)),xe(r,n),Ie(d,n,s),we(Le(o,e),(t=>{ie(y(e,t),n)&&xe(c,t)}))})),t(),ue(r,(t=>i(n,[e,t]))),ue(l,(t=>i(a,[e,t]))),ue(c,(t=>{T(e,t),i(o,[e,t])}))}),Je(l)),R),delRelationshipDefinition:e=>(Ie(t,e),w(e),R),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(g(s),t))))),hasRelationship:h,getLocalTableId:g,getRemoteTableId:v,getRemoteRowId:(e,t)=>Le(f(e)?.[0],t),getLocalRowIds:(e,t)=>ce(Le(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(f(e))?[t]:ce(y(e,t,!0)),addRelationshipIdsListener:I,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(y(e,t),r(s,o,[e,t])),delListener:e=>(T(...l(e)??[]),R),destroy:S,getListenerStats:()=>({})};return ee(R)})),Ke=e=>[e,e],Ue=()=>[ge(),ge()],Xe=e=>[...e],Ye=([e,t])=>e===t,Ze=e=>JSON.stringify(e,((e,t)=>t instanceof Map?X.fromEntries([...t]):t)),_e=JSON.parse,et=(e,t,s)=>k(e)||!te(e)||oe(e)||_(e)?(s?.(),!1):(ae(e,((s,n)=>{t(s,n)||ne(e,n)})),!oe(e)),tt=(e,t,s)=>Ie(e,t,Le(e,t)==-s?void 0:s),st=()=>{let e,t,s=!1,n=!1,a=0;const r=ge(),d=ge(),h=ge(),y=ge(),m=ge(),V=ge(),E=ge(),J=ge(),F=ge(),Q=ge(),N=ge(),P=ge(),$=ge(),q=ge(),G=Me(),K=ge(),U=ge(),X=ge(),Y=ge(),Z=Ue(),_=Ue(),te=Ue(),ce=Ue(),me=Ue(),De=Ue(),Je=Ue(),Ae=Ue(),Fe=Ue(),Ne=Ue(),Pe=Ue(),je=Ue(),Be=Ue(),We=Ue(),$e=Ue(),qe=ge(),Ge=Ue(),[He,nt,at,ot]=ze((()=>ys)),rt=e=>{if(!et(e,((e,t)=>z([i,l],t))))return!1;const t=e[i];return!(!x(t)&&t!=o||(Ve(e[l])!=t&&ne(e,l),0))},it=(t,s)=>(!e||ie(N,s)||zt(s))&&et(t,((e,t)=>lt(s,t,e)),(()=>zt(s))),lt=(e,t,s,n)=>et(n?s:ht(s,e,t),((n,a)=>M(ct(e,t,a,n),(e=>(s[a]=e,!0)),(()=>!1))),(()=>zt(e,t))),ct=(t,s,n,a)=>e?M(Le(Le(N,t),n),(e=>Ve(a)!=e[i]?zt(t,s,n,a,e[l]):a),(()=>zt(t,s,n,a))):k(Ve(a))?zt(t,s,n,a):a,dt=(e,t)=>et(t?e:gt(e),((t,s)=>M(ut(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Nt())),ut=(e,s)=>t?M(Le($,e),(t=>Ve(s)!=t[i]?Nt(e,s,t[l]):s),(()=>Nt(e,s))):k(Ve(s))?Nt(e,s):s,ht=(e,t,s)=>(M(Le(P,t),(([n,a])=>{ue(n,((t,s)=>{se(e,s)||(e[s]=t)})),ue(a,(n=>{se(e,n)||zt(t,s,n)}))})),e),gt=e=>(t&&(ue(q,((t,s)=>{se(e,s)||(e[s]=t)})),ue(G,(t=>{se(e,t)||Nt(t)}))),e),ft=e=>ye(N,e,((e,t,s)=>{const n=ge(),a=Me();ye(Se(N,t,ge),s,((e,t,s)=>{Ie(e,t,s),M(s[l],(e=>Ie(n,t,e)),(()=>xe(a,t)))})),Ie(P,t,[n,a])}),((e,t)=>{Ie(N,t),Ie(P,t)})),Lt=e=>ye($,e,((e,t,s)=>{Ie($,t,s),M(s[l],(e=>Ie(q,t,e)),(()=>xe(G,t)))}),((e,t)=>{Ie($,t),Ie(q,t),he(G,t)})),wt=e=>oe(e)?ds():os(e),It=e=>ye(X,e,((e,t,s)=>St(t,s)),((e,t)=>Vt(t))),St=(e,t)=>ye(Se(X,e,(()=>(xt(e,1),Ie(K,e,Qe()),Ie(U,e,ge()),ge()))),t,((t,s,n)=>yt(e,t,s,n)),((t,s)=>Et(e,t,s))),yt=(e,t,s,n,a)=>ye(Se(t,s,(()=>(Dt(e,s,1),ge()))),n,((t,n,a)=>Tt(e,s,t,n,a)),((n,o)=>kt(e,t,s,n,o,a))),Tt=(e,t,s,n,a)=>{ie(s,n)||Jt(e,t,n,1);const o=Le(s,n);a!==o&&(At(e,t,n,o,a),Ie(s,n,a))},vt=(e,t,s,n,a)=>M(Le(t,s),(t=>Tt(e,s,t,n,a)),(()=>yt(e,t,s,ht({[n]:a},e,s)))),Rt=e=>oe(e)?gs():rs(e),pt=e=>ye(Y,e,((e,t,s)=>Ct(t,s)),((e,t)=>Mt(t))),Ct=(e,t)=>{ie(Y,e)||Ft(e,1);const s=Le(Y,e);t!==s&&(Qt(e,s,t),Ie(Y,e,t))},bt=(e,t)=>{const[s]=Le(K,e),n=s(t);return ie(Le(X,e),n)?bt(e,t):n},mt=e=>Le(X,e)??St(e,{}),Vt=e=>St(e,{}),Et=(e,t,s)=>{const[,n]=Le(K,e);n(s),yt(e,t,s,{},!0)},kt=(e,t,s,n,a,o)=>{const r=Le(Le(P,e)?.[0],a);if(!k(r)&&!o)return Tt(e,s,n,a,r);const i=t=>{At(e,s,t,Le(n,t)),Jt(e,s,t,-1),Ie(n,t)};k(r)?i(a):we(n,i),le(n)&&(Dt(e,s,-1),le(Ie(t,s))&&(xt(e,-1),Ie(X,e),Ie(K,e),Ie(U,e)))},Mt=e=>{const t=Le(q,e);if(!k(t))return Ct(e,t);Qt(e,Le(Y,e)),Ft(e,-1),Ie(Y,e)},xt=(e,t)=>tt(r,e,t),Dt=(e,t,s)=>tt(Se(y,e,ge),t,s)&&Ie(h,e,Se(h,e,(()=>0))+s),Jt=(e,t,s,n)=>{const a=Le(U,e),o=Le(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&tt(Se(d,e,ge),s,n),Ie(a,s,o!=-n?o+n:null),tt(Se(Se(m,e,ge),t,ge),s,n)},At=(e,t,s,n,a)=>Se(Se(Se(V,e,ge),t,ge),s,(()=>[n,0]))[1]=a,Ft=(e,t)=>tt(E,e,t),Qt=(e,t,s)=>Se(J,e,(()=>[t,0]))[1]=s,zt=(e,t,s,n,a)=>(H(Se(Se(Se(F,e,ge),t,ge),s,(()=>[])),n),a),Nt=(e,t,s)=>(H(Se(Q,e,(()=>[])),t),s),Ot=(e,t,s)=>M(Le(Le(Le(V,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(ts(e,t,s))])),Pt=e=>M(Le(J,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Ke(as(e))])),jt=e=>le(F)||le(Pe[e])?0:ue(e?be(F):F,((t,s)=>ue(t,((t,n)=>ue(t,((t,a)=>nt(Pe[e],[s,n,a],t))))))),Bt=e=>le(Q)||le(je[e])?0:ue(e?pe(Q):Q,((t,s)=>nt(je[e],[s],t))),Wt=(e,t,s)=>{if(!le(t))return nt(e,s,(()=>Te(t))),1},$t=e=>{const t=le(Je[e]),s=le(Fe[e])&&le(ce[e])&&le(me[e])&&le(De[e])&&t&&le(_[e]),n=le(Ne[e])&&le(Ae[e])&&le(te[e])&&le(Z[e]);if(!s||!n){const a=e?[pe(r),Ce(d),pe(h),Ce(y),be(m),be(V)]:[r,d,h,y,m,V];if(!s){Wt(_[e],a[0]),ue(a[1],((t,s)=>Wt(ce[e],t,[s]))),ue(a[2],((t,s)=>{0!=t&&nt(me[e],[s],Yt(s))}));const s=Me();ue(a[3],((n,a)=>{Wt(De[e],n,[a])&&!t&&(nt(Je[e],[a,null]),xe(s,a))})),t||ue(a[5],((t,n)=>{if(!ie(s,n)){const s=Me();ue(t,(e=>ue(e,(([t,n],a)=>n!==t?xe(s,a):he(e,a))))),ue(s,(t=>nt(Je[e],[n,t])))}})),ue(a[4],((t,s)=>ue(t,((t,n)=>Wt(Fe[e],t,[s,n])))))}if(!n){let t;ue(a[5],((s,n)=>{let a;ue(s,((s,o)=>{let r;ue(s,(([s,i],l)=>{i!==s&&(nt(Ne[e],[n,o,l],i,s,Ot),t=a=r=1)})),r&&nt(Ae[e],[n,o],Ot)})),a&&nt(te[e],[n],Ot)})),t&&nt(Z[e],void 0,Ot)}}},qt=e=>{const t=le(We[e]),s=le($e[e])&&le(Be[e]);if(!t||!s){const n=e?[pe(E),pe(J)]:[E,J];if(t||Wt(We[e],n[0]),!s){let t;ue(n[1],(([s,n],a)=>{n!==s&&(nt($e[e],[a],n,s,Pt),t=1)})),t&&nt(Be[e],void 0,Pt)}}},Gt=(e,...t)=>(ws((()=>e(...W(t,b)))),ys),Ht=()=>[Te(V,((e,t)=>-1===Le(r,t)?null:Te(e,((e,s)=>-1===Le(Le(y,t),s)?null:Te(e,(([,e])=>e??null),((e,t)=>Ye(t)))),oe)),oe),Te(J,(([,e])=>e??null),((e,t)=>Ye(t)))],Kt=()=>({cellsTouched:s,valuesTouched:n,changedCells:Re(V,Xe,Ye),invalidCells:Re(F),changedValues:Te(J,Xe,Ye),invalidValues:Te(Q),changedTableIds:Te(r),changedRowIds:ve(y),changedCellIds:Re(m),changedValueIds:Te(E)}),Ut=()=>Re(X),Xt=()=>fe(X),Yt=e=>re(Le(X,b(e))),Zt=e=>fe(Le(X,b(e))),_t=(e,t,s,n=0,a)=>{return W(A(j((o=Le(X,b(e)),r=(e,s)=>[k(t)?s:Le(e,b(t)),s],W([...o?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Oe(e,t)*(s?-1:1))),n,k(a)?a:n+a),(([,e])=>e));var o,r},es=(e,t)=>fe(Le(Le(X,b(e)),b(t))),ts=(e,t,s)=>Le(Le(Le(X,b(e)),b(t)),b(s)),ss=()=>Te(Y),ns=()=>fe(Y),as=e=>Le(Y,b(e)),os=e=>Gt((()=>(e=>et(e,it,zt))(e)?It(e):0)),rs=e=>Gt((()=>dt(e)?pt(e):0)),is=e=>{try{wt(_e(e))}catch{}return ys},ls=t=>Gt((()=>{if((e=et(t,(e=>et(e,rt))))&&(ft(t),!le(X))){const e=Ut();ds(),os(e)}})),cs=e=>Gt((()=>{if(t=(e=>et(e,rt))(e)){const s=ss();Ls(),gs(),t=!0,Lt(e),rs(s)}})),ds=()=>Gt((()=>It({}))),us=e=>Gt((e=>ie(X,e)?Vt(e):0),e),hs=(e,t)=>Gt(((e,t)=>M(Le(X,e),(s=>ie(s,t)?Et(e,s,t):0))),e,t),gs=()=>Gt((()=>pt({}))),fs=()=>Gt((()=>{ft({}),e=!1})),Ls=()=>Gt((()=>{Lt({}),t=!1})),ws=(e,t)=>{if(-1!=a){Is();const s=e();return Ss(t),s}},Is=()=>(-1!=a&&a++,1==a&&nt(qe,void 0,Ht,Kt),ys),Ss=e=>(a>0&&(a--,0==a&&(s=!le(V),n=!le(J),a=1,jt(1),s&&$t(1),Bt(1),n&&qt(1),e?.(Ht,Kt)&&(ue(V,((e,t)=>ue(e,((e,s)=>ue(e,(([e],n)=>Ee(ys,t,s,n,e))))))),ue(J,(([e],t)=>ke(ys,t,e))),s=n=!1),nt(Ge[0],void 0,Ht,Kt),a=-1,jt(0),s&&$t(0),Bt(0),n&&qt(0),nt(Ge[1],void 0,Ht,Kt),a=0,s=n=!1,B([r,d,h,y,m,V,F,E,J,Q],de))),ys),ys={getContent:()=>[Ut(),ss()],getTables:Ut,getTableIds:Xt,getTable:e=>ve(Le(X,b(e))),getTableCellIds:e=>fe(Le(U,b(e))),getRowCount:Yt,getRowIds:Zt,getSortedRowIds:_t,getRow:(e,t)=>Te(Le(Le(X,b(e)),b(t))),getCellIds:es,getCell:ts,getValues:ss,getValueIds:ns,getValue:as,hasTables:()=>!le(X),hasTable:e=>ie(X,b(e)),hasTableCell:(e,t)=>ie(Le(U,b(e)),b(t)),hasRow:(e,t)=>ie(Le(X,b(e)),b(t)),hasCell:(e,t,s)=>ie(Le(Le(X,b(e)),b(t)),b(s)),hasValues:()=>!le(Y),hasValue:e=>ie(Y,b(e)),getTablesJson:()=>Ze(X),getValuesJson:()=>Ze(Y),getJson:()=>Ze([X,Y]),getTablesSchemaJson:()=>Ze(N),getValuesSchemaJson:()=>Ze($),getSchemaJson:()=>Ze([N,$]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>Gt((()=>{(oe(e)?ds:os)(e),(oe(t)?gs:rs)(t)})),setTables:os,setTable:(e,t)=>Gt((e=>it(t,e)?St(e,t):0),e),setRow:(e,t,s)=>Gt(((e,t)=>lt(e,t,s)?yt(e,mt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>ws((()=>{let n;return lt(e,n,t)&&(e=b(e),yt(e,mt(e),n=bt(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>Gt(((e,t)=>{if(lt(e,t,s,1)){const n=mt(e);ae(s,((s,a)=>vt(e,n,t,a,s)))}}),e,t),setCell:(e,t,s,n)=>Gt(((e,t,s)=>M(ct(e,t,s,D(n)?n(ts(e,t,s)):n),(n=>vt(e,mt(e),t,s,n)))),e,t,s),setValues:rs,setPartialValues:e=>Gt((()=>dt(e,1)?ae(e,((e,t)=>Ct(t,e))):0)),setValue:(e,t)=>Gt((e=>M(ut(e,D(t)?t(as(e)):t),(t=>Ct(e,t)))),e),setTransactionChanges:e=>Gt((()=>{ae(e[0],((e,t)=>k(e)?us(t):ae(e,((e,s)=>k(e)?hs(t,s):ae(e,((e,n)=>Ee(ys,t,s,n,e))))))),ae(e[1],((e,t)=>ke(ys,t,e)))})),setTablesJson:is,setValuesJson:e=>{try{Rt(_e(e))}catch{}return ys},setJson:e=>Gt((()=>{try{const[t,s]=_e(e);wt(t),Rt(s)}catch{is(e)}})),setTablesSchema:ls,setValuesSchema:cs,setSchema:(e,t)=>Gt((()=>{ls(e),cs(t)})),delTables:ds,delTable:us,delRow:hs,delCell:(e,t,s,n)=>Gt(((e,t,s)=>M(Le(X,e),(a=>M(Le(a,t),(o=>ie(o,s)?kt(e,a,t,o,s,n):0))))),e,t,s),delValues:gs,delValue:e=>Gt((e=>ie(Y,e)?Mt(e):0),e),delTablesSchema:fs,delValuesSchema:Ls,delSchema:()=>Gt((()=>{fs(),Ls()})),transaction:ws,startTransaction:Is,finishTransaction:Ss,forEachTable:e=>ue(X,((t,s)=>e(s,(e=>ue(t,((t,s)=>e(s,(e=>we(t,e))))))))),forEachTableCell:(e,t)=>we(Le(U,b(e)),t),forEachRow:(e,t)=>ue(Le(X,b(e)),((e,s)=>t(s,(t=>we(e,t))))),forEachCell:(e,t,s)=>we(Le(Le(X,b(e)),b(t)),s),forEachValue:e=>we(Y,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>{let i=_t(e,t,s,n,a);return He((()=>{const r=_t(e,t,s,n,a);O(r,i)||(i=r,o(ys,e,t,s,n,a,i))}),Je[r?1:0],[e,t],[Xt])},addStartTransactionListener:e=>He(e,qe),addWillFinishTransactionListener:e=>He(e,Ge[0]),addDidFinishTransactionListener:e=>He(e,Ge[1]),callListener:e=>(ot(e),ys),delListener:e=>(at(e),ys),getListenerStats:()=>({}),createStore:st,addListener:He,callListeners:nt};return ae({[f]:[0,Z],[L]:[0,_],[g]:[1,te,[Xt]],[g+v]:[1,ce,[Xt]],[I]:[1,me,[Xt]],[S]:[1,De,[Xt]],[w]:[2,Ae,[Xt,Zt]],[v]:[2,Fe,[Xt,Zt]],[T]:[3,Ne,[Xt,Zt,es],e=>Ke(ts(...e))],InvalidCell:[3,Pe],[p]:[0,Be],[C]:[0,We],[R]:[1,$e,[ns],e=>Ke(as(e[0]))],InvalidValue:[1,je]},(([e,t,s,n],a)=>{ys[u+a+c]=(...a)=>He(a[e],t[a[e+1]?1:0],e>0?A(a,0,e):void 0,s,n)})),ee(ys)};e.createCheckpoints=Ne,e.createCustomPersister=(e,t,s,n,a,o,[r,i]=[],l=[])=>{let c,d,u,h=0,g=0;Se($e,l,(()=>0)),Se(qe,l,(()=>[]));const f=async e=>(2!=h&&(h=1,await L.schedule((async()=>{await e(),h=0}))),L),L={load:async(s,n)=>await f((async()=>{try{e.setContent(await t())}catch{e.setContent([s,n])}})),startAutoLoad:async(s={},a={})=>(L.stopAutoLoad(),await L.load(s,a),g=1,u=n((async(s,n)=>{if(n){const t=n();await f((async()=>e.setTransactionChanges(t)))}else await f((async()=>{try{e.setContent(s?.()??await t())}catch(e){o?.(e)}}))})),L),stopAutoLoad:()=>(g&&(a(u),u=void 0,g=0),L),save:async t=>(1!=h&&(h=2,await L.schedule((async()=>{try{await s(e.getContent,t)}catch(e){o?.(e)}h=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),c=e.addDidFinishTransactionListener(((e,t)=>{const[s,n]=t();oe(s)&&oe(n)||L.save((()=>[s,n]))})),L),stopAutoSave:()=>(M(c,e.delListener),c=void 0,L),schedule:async(...e)=>(H(Le(qe,l),...e),await(async()=>{if(!Le($e,l)){for(Ie($e,l,1);!k(d=U(Le(qe,l)));)try{await d()}catch(e){o?.(e)}Ie($e,l,0)}})(),L),getStore:()=>e,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return r&&(L[r]=()=>i),ee(L)},e.createIndexes=Pe,e.createMetrics=We,e.createQueries=Ge,e.createRelationships=He,e.createStore=st,e.defaultSorter=Oe},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBase={});
Binary file