tinybase 4.6.0-beta.2 → 4.6.0

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 (117) hide show
  1. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  2. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  4. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  6. package/lib/cjs/persisters/persister-expo-sqlite-next.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-indexed-db.cjs +1 -1
  10. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  12. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  16. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  17. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  18. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  19. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  20. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  21. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  22. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  30. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  35. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  36. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  37. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +40 -26
  38. package/lib/debug/persisters/persister-electric-sql.js +40 -26
  39. package/lib/debug/persisters/persister-expo-sqlite-next.js +40 -26
  40. package/lib/debug/persisters/persister-expo-sqlite.js +40 -26
  41. package/lib/debug/persisters/persister-indexed-db.js +5 -2
  42. package/lib/debug/persisters/persister-remote.js +5 -2
  43. package/lib/debug/persisters/persister-sqlite-wasm.js +40 -26
  44. package/lib/debug/persisters/persister-sqlite3.js +40 -26
  45. package/lib/debug/ui-react-dom.js +1 -1
  46. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  47. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  48. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  49. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  50. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  51. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  52. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  53. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  54. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  55. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  56. package/lib/es6/persisters/persister-remote.js +1 -1
  57. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  58. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  59. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  60. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  61. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  62. package/lib/es6/ui-react-dom-debug.js +1 -1
  63. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  64. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  65. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  66. package/lib/persisters/persister-electric-sql.js +1 -1
  67. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  68. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  69. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  70. package/lib/persisters/persister-expo-sqlite.js +1 -1
  71. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  72. package/lib/persisters/persister-indexed-db.js +1 -1
  73. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  74. package/lib/persisters/persister-remote.js +1 -1
  75. package/lib/persisters/persister-remote.js.gz +0 -0
  76. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  77. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  78. package/lib/persisters/persister-sqlite3.js +1 -1
  79. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  80. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  81. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  82. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  83. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  84. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  85. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  86. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  87. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  88. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  89. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  90. package/lib/umd/persisters/persister-remote.js +1 -1
  91. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  92. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  93. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  94. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  95. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  96. package/lib/umd/ui-react-dom-debug.js +1 -1
  97. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  98. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  99. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  100. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  101. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  102. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  103. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  104. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  105. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  106. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  107. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  108. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  109. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  110. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  111. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  112. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  113. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  114. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  115. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  116. package/package.json +20 -19
  117. package/readme.md +13 -13
@@ -1 +1 @@
1
- const t=Promise,a=setInterval,e=clearInterval,s=t=>null==t,n=(t,a,e)=>s(t)?e?.():a(t),o=a=>new t(a),c=async a=>t.all(a),r=(t,a)=>t.map(a),i=(t,...a)=>t.push(...a),y=Object,l=t=>y.getPrototypeOf(t),d=y.keys,w=y.freeze,u=t=>(t=>!s(t)&&n(l(t),(t=>t==y.prototype||s(l(t))),(()=>!0)))(t)&&0==(t=>d(t).length)(t),v=t=>new Map(t),h=(t,a)=>t?.get(a),p=(t,a,e)=>{return s(e)?(n=t,o=a,n?.delete(o),t):t?.set(a,e);var n,o},g=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||p(t,a,e()),h(t,a)},A=v(),S=v(),f=globalThis.window,b=["t","v"],L={keyPath:"k"},k=async(t,a)=>{const e=((a,e)=>r(y.entries(a),(([a,e])=>C(t,"put",{k:a,v:e}))))(a);r(await C(t,"getAllKeys"),(o=>((t,a)=>!s(((t,a)=>n(t,(t=>t[a])))(t,a)))(a,o)?0:i(e,C(t,"delete",o)))),await c(e)},C=async(t,a,e)=>o(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),j=(t,l,d=1,v)=>{const j=async(t,a=[],e=0)=>o(((s,n)=>{const o=f.indexedDB.open(l,e?2:void 0);o.onupgradeneeded=()=>e&&r(b,(t=>{try{o.result.createObjectStore(t,L)}catch{}})),o.onsuccess=async()=>{try{const e=o.result.transaction(b,"readwrite"),n=await c(r(b,(async(s,n)=>await t(e.objectStore(s),a[n]))));o.result.close(),s(n)}catch(t){n(t)}},o.onerror=()=>n("indexedDB.open error")}));return((t,a,e,o,c,r,[y,l]=[],d=[])=>{let v,f,b,L=0,k=0;g(A,d,(()=>0)),g(S,d,(()=>[]));const C=async t=>(2!=L&&(L=1,await j.schedule((async()=>{await t(),L=0}))),j),j={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(j.stopAutoLoad(),await j.load(e,s),k=1,b=o((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){r?.(t)}}))})),j),stopAutoLoad:()=>(k&&(c(b),b=void 0,k=0),j),save:async a=>(1!=L&&(L=2,await j.schedule((async()=>{try{await e(t.getContent,a)}catch(t){r?.(t)}L=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),v=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(n(v,t.delListener),v=void 0,j),schedule:async(...t)=>(i(h(S,d),...t),await(async()=>{if(!h(A,d)){for(p(A,d,1);!s((t=h(S,d),f=t.shift()));)try{await f()}catch(t){r?.(t)}p(A,d,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),w(j)})(t,(async()=>await j((async t=>((t=[])=>y.fromEntries(t))(r(await C(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await j((async(t,a)=>await k(t,a)),t(),1)),(t=>a(t,1e3*d)),(t=>e(t)),v,["getDbName",l])};export{j as createIndexedDbPersister,k as objectStoreMatch};
1
+ const t=Promise,a=clearInterval,e=t=>null==t,s=(t,a,s)=>e(t)?s?.():a(t),n=a=>new t(a),o=async a=>t.all(a),c=(t,a)=>t.map(a),r=(t,...a)=>t.push(...a),i=Object,y=t=>i.getPrototypeOf(t),l=i.keys,d=i.freeze,w=t=>(t=>!e(t)&&s(y(t),(t=>t==i.prototype||e(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),u=t=>new Map(t),v=(t,a)=>t?.get(a),h=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),v(t,a)},g=u(),A=u(),S=globalThis.window,f=["t","v"],b={keyPath:"k"},L=async(t,a)=>{const n=((a,e)=>c(i.entries(a),(([a,e])=>k(t,"put",{k:a,v:e}))))(a);c(await k(t,"getAllKeys"),(o=>((t,a)=>!e(((t,a)=>s(t,(t=>t[a])))(t,a)))(a,o)?0:r(n,k(t,"delete",o)))),await o(n)},k=async(t,a,e)=>n(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(t,y,l=1,u)=>{const C=async(t,a=[],e=0)=>n(((s,n)=>{const r=S.indexedDB.open(y,e?2:void 0);r.onupgradeneeded=()=>e&&c(f,(t=>{try{r.result.createObjectStore(t,b)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(f,"readwrite"),n=await o(c(f,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),s(n)}catch(t){n(t)}},r.onerror=()=>n("indexedDB.open error")}));return((t,a,n,o,c,i,[y,l]=[],u=[])=>{let S,f,b,L=0,k=0;p(g,u,(()=>0)),p(A,u,(()=>[]));const C=async t=>(2!=L&&(L=1,await j.schedule((async()=>{await t(),L=0}))),j),j={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(j.stopAutoLoad(),await j.load(e,s),k=1,b=o((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),j),stopAutoLoad:()=>(k&&(c(b),b=void 0,k=0),j),save:async a=>(1!=L&&(L=2,await j.schedule((async()=>{try{await n(t.getContent,a)}catch(t){i?.(t)}L=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),S=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();w(e)&&w(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(s(S,t.delListener),S=void 0,j),schedule:async(...t)=>(r(v(A,u),...t),await(async()=>{if(!v(g,u)){for(h(g,u,1);!e((t=v(A,u),f=t.shift()));)try{await f()}catch(t){i?.(t)}h(g,u,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),d(j)})(t,(async()=>await C((async t=>((t=[])=>i.fromEntries(t))(c(await k(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await C((async(t,a)=>await L(t,a)),t(),1)),(t=>setInterval(t,1e3*l)),(t=>a(t)),u,["getDbName",y])};export{C as createIndexedDbPersister,L as objectStoreMatch};
@@ -1 +1 @@
1
- const t=setInterval,a=clearInterval,e=t=>null==t,s=(t,a,s)=>e(t)?s?.():a(t),n=Object,o=t=>n.getPrototypeOf(t),r=n.keys,c=n.freeze,i=t=>(t=>!e(t)&&s(o(t),(t=>t==n.prototype||e(o(t))),(()=>!0)))(t)&&0==(t=>r(t).length)(t),y=JSON.parse,d=t=>new Map(t),h=(t,a)=>t?.get(a),u=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},l=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||u(t,a,e()),h(t,a)},w=d(),p=d(),v=t=>t.headers.get("ETag"),f=(o,r,d,f=5,g)=>{let A;return((t,a,n,o,r,y,[d,v]=[],f=[])=>{let g,A,S,C=0,L=0;l(w,f,(()=>0)),l(p,f,(()=>[]));const O=async t=>(2!=C&&(C=1,await T.schedule((async()=>{await t(),C=0}))),T),T={load:async(e,s)=>await O((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(T.stopAutoLoad(),await T.load(e,s),L=1,S=o((async(e,s)=>{if(s){const a=s();await O((async()=>t.setTransactionChanges(a)))}else await O((async()=>{try{t.setContent(e?.()??await a())}catch(t){y?.(t)}}))})),T),stopAutoLoad:()=>(L&&(r(S),S=void 0,L=0),T),save:async a=>(1!=C&&(C=2,await T.schedule((async()=>{try{await n(t.getContent,a)}catch(t){y?.(t)}C=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();i(e)&&i(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(s(g,t.delListener),g=void 0,T),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(h(p,f),...t),await(async()=>{if(!h(w,f)){for(u(w,f,1);!e((t=h(p,f),A=t.shift()));)try{await A()}catch(t){y?.(t)}u(w,f,0)}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(T[d]=()=>v),c(T)})(o,(async()=>{const t=await fetch(r);return A=v(t),y(await t.text())}),(async t=>{return await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?n.fromEntries([...a]):a)))});var a}),(a=>t((async()=>{const t=await fetch(r,{method:"HEAD"}),s=v(t);e(A)||e(s)||s==A||(A=s,a())}),1e3*f)),(t=>a(t)),g,["getUrls",[r,d]])};export{f as createRemotePersister};
1
+ const t=clearInterval,a=t=>null==t,e=(t,e,s)=>a(t)?s?.():e(t),s=Object,n=t=>s.getPrototypeOf(t),o=s.keys,r=s.freeze,c=t=>(t=>!a(t)&&e(n(t),(t=>t==s.prototype||a(n(t))),(()=>!0)))(t)&&0==(t=>o(t).length)(t),i=JSON.parse,y=t=>new Map(t),d=(t,a)=>t?.get(a),h=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},u=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),d(t,a)},l=y(),w=y(),p=t=>t.headers.get("ETag"),v=(n,o,y,v=5,f)=>{let g;return((t,s,n,o,i,y,[p,v]=[],f=[])=>{let g,A,S,C=0,L=0;u(l,f,(()=>0)),u(w,f,(()=>[]));const O=async t=>(2!=C&&(C=1,await T.schedule((async()=>{await t(),C=0}))),T),T={load:async(a,e)=>await O((async()=>{try{t.setContent(await s())}catch{t.setContent([a,e])}})),startAutoLoad:async(a={},e={})=>(T.stopAutoLoad(),await T.load(a,e),L=1,S=o((async(a,e)=>{if(e){const a=e();await O((async()=>t.setTransactionChanges(a)))}else await O((async()=>{try{t.setContent(a?.()??await s())}catch(t){y?.(t)}}))})),T),stopAutoLoad:()=>(L&&(i(S),S=void 0,L=0),T),save:async a=>(1!=C&&(C=2,await T.schedule((async()=>{try{await n(t.getContent,a)}catch(t){y?.(t)}C=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();c(e)&&c(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(e(g,t.delListener),g=void 0,T),schedule:async(...t)=>(((t,...a)=>{t.push(...a)})(d(w,f),...t),await(async()=>{if(!d(l,f)){for(h(l,f,1);!a((t=d(w,f),A=t.shift()));)try{await A()}catch(t){y?.(t)}h(l,f,0)}var t})(),T),getStore:()=>t,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(T[p]=()=>v),r(T)})(n,(async()=>{const t=await fetch(o);return g=p(t),i(await t.text())}),(async t=>{return await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:(a=t(),JSON.stringify(a,((t,a)=>a instanceof Map?s.fromEntries([...a]):a)))});var a}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),s=p(e);a(g)||a(s)||s==g||(g=s,t())}),1e3*v)),(a=>t(a)),f,["getUrls",[o,y]])};export{v as createRemotePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>i.all(a),d=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),v=a=>0==E(a),T=(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),f=Object,R=a=>f.getPrototypeOf(a),N=f.keys,O=f.freeze,C=(a=[])=>f.fromEntries(a),D=(...a)=>f.assign({},...a),S=(a,t)=>p(f.entries(a),(([a,e])=>t(e,a))),b=a=>f.values(a),g=a=>E(N(a)),I=a=>(a=>!r(a)&&l(R(a),(a=>a==f.prototype||r(R(a))),(()=>!0)))(a)&&0==g(a),_=a=>new Map(a),M=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),$=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>r(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e)=>(A(a,t)||P(a,t,e()),F(a,t)),j=(a,t,e,s=P)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),H=(a,t)=>a?.add(t),W="_",x="_id",q=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",U="WHERE",V=(a,t,s)=>{const n=_();return[async()=>j(n,C(await u(p(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")",t),(async({name:t})=>[t,C(p(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>P(n,t,j(B(n,t,_),e,((a,t,e)=>{e!=F(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))))),((a,t)=>P(n,t))),async(t,e)=>((a,t)=>!r(F(F(n,a),t)))(t,e)?C(T(p(await a("SELECT*FROM"+q(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!I(t)))):{},async(t,s,i,c,o,l=!1)=>{const w=k();S(i??{},(a=>p(N(a??{}),(a=>H(w,a)))));const y=L(w);if(!l&&o&&v(y)&&A(n,t))return await a("DROP TABLE"+q(t)),void P(n,t);if(v(y)||A(n,t)){const e=F(n,t),i=k(M(e));await u([...p(y,(async s=>{h(i,s)||(await a(`ALTER TABLE${q(t)}ADD${q(s)}`),P(e,s,""))})),...!l&&c?p(L(i),(async n=>{n!=s&&(await a(`ALTER TABLE${q(t)}DROP${q(n)}`),P(e,n))})):[]])}else await a(`CREATE TABLE${q(t)}(${q(s)} PRIMARY KEY ON CONFLICT REPLACE${d(p(y,(a=>e+q(a))))});`),P(n,t,_([[s,""],...p(y,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+q(t)+"WHERE 1"):await u(S(i,(async(e,n)=>{r(e)?await a("DELETE FROM"+q(t)+U+q(s)+"=?",[n]):v(y)||await Y(a,t,s,N(e),[n,...b(e)])})));else if(v(y))A(n,t)&&await a("DELETE FROM"+q(t)+"WHERE 1");else{const e=T(M(F(n,t)),(a=>a!=s)),c=[],o=[];S(i??{},((a,t)=>{m(c,t,...p(e,(t=>a?.[t]))),m(o,t)})),await Y(a,t,s,e,c),await a("DELETE FROM"+q(t)+U+q(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},Y=async(a,t,s,i,c)=>await a("INSERT INTO"+q(t)+"("+q(s)+d(p(i,(a=>e+q(a))))+")VALUES"+y(n(`,(?${n(",?",E(i))})`,E(c)/(E(i)+1)),1)+"ON CONFLICT("+q(s)+")DO UPDATE SET"+d(p(i,(a=>q(a)+"=excluded."+q(a))),e),c),z=a=>d(p(a,(()=>"?")),e),G=JSON.parse,K=_(),Q=_(),X=(a,t,e,s,n,i,[c,o]=[],w=[])=>{let y,E,u,d=0,p=0;B(K,w,(()=>0)),B(Q,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=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(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(y,a.delListener),y=void 0,T),schedule:async(...a)=>(m(F(Q,w),...a),await(async()=>{if(!F(K,w)){for(P(K,w,1);!r((a=F(Q,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}P(K,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),O(T)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=V(t,c,n);return X(a,(async()=>await y((async()=>(await r(),G((await l(i,x))[W]?.[Z]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,x,{[W]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ta=(a,t,e,s,n,[i,c,[o,l,w]],y,E)=>{const[d,p,v,m]=V(t,y,n),A=async(a,t)=>await u($(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),L=async(a,t)=>l?await v(w,x,{[W]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await d();const a=await(async()=>C(T(await u($(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?(await p(w,x))[W]:{})();return I(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),r(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",E],E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},la=(a,t,e,s)=>{const n=_();return S(a,((a,i)=>{const c=y(b(D(t,w(a)?{[e]:a}:a)),0,g(t));r(c[0])||s(i,c[0])||P(n,i,c)})),n},wa="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,l,E)=>{let u,d;const[p,v,T,m]=(a=>{const e=(a=>D(oa,w(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(b(D(ra,c)),0,g(ra)),r=o[2],l=k(r);return[0,s,[la(n,{[ia]:null,[na]:x},ia,(a=>H(l,a)&&a==r)),la(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>H(l,t)&&t==r)),o],l]})(e);return(p?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(wa+ya))[0][ya],e=(await s(wa+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*v),n((t=>m.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),l,T,L(m),E)},da=(a,t,e,s,n,i)=>ua(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{da as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),l=t=>a(t)==s,w=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",p=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==y(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),N=Object,D=a=>N.getPrototypeOf(a),C=N.keys,S=N.freeze,b=(a=[])=>N.fromEntries(a),g=(...a)=>N.assign({},...a),I=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),_=a=>N.values(a),M=a=>y(C(a)),F=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),$=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),k=(a,t,e)=>(h(a,t)||j(a,t,e()),B(a,t)),W=(a,t,e,s=j)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x=a=>new Set(Array.isArray(a)||o(a)?a:[a]),Y=(a,t)=>a?.add(t),q=v+"*FROM",G="FROM pragma_table_",J="WHERE",U=(a,t,s)=>{const n=$();return[async()=>W(n,b(await E(m(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")ORDER BY name",t),(async({name:t})=>[t,b(m(await a(v+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,W(k(n,t,$),e,((a,t,e)=>{e!=B(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?b(L(m(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!F(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=x();I(i??{},(a=>m(C(a??{}),(a=>Y(w,a)))));const y=O(w);if(!l&&r&&A(y)&&h(n,t))return await a("DROP TABLE"+p(t)),void j(n,t);if(A(y)||h(n,t)){const e=B(n,t),i=x(P(e));await E([...m(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${p(t)}ADD${p(s)}`),j(e,s,""))})),...!l&&c?m(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),j(e,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(s)} PRIMARY KEY ON CONFLICT REPLACE${T(m(y,(a=>e+p(a))))});`),j(n,t,$([[s,""],...m(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+p(t)+J+p(s)+"=?",[n]):A(y)||await V(a,t,s,C(e),[n,..._(e)])})));else if(A(y))h(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{R(c,t,...m(e,(t=>a?.[t]))),R(o,t)})),await V(a,t,s,e,c),await a("DELETE FROM"+p(t)+J+p(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},V=async(a,t,s,i,c)=>await a("INSERT INTO"+p(t)+"("+p(s)+T(m(i,(a=>e+p(a))))+")VALUES"+w(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+p(s)+")DO UPDATE SET"+T(m(i,(a=>p(a)+"=excluded."+p(a))),e),c),z=a=>T(m(a,(()=>"?")),e),K=JSON.parse,Q=$(),X=$(),Z=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,p=0;k(Q,w,(()=>0)),k(X,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=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(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(r(y,a.delListener),y=void 0,T),schedule:async(...a)=>(R(B(X,w),...a),await(async()=>{if(!B(Q,w)){for(j(Q,w,1);!o((a=B(X,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Q,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>l),S(T)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=U(t,c,n);return Z(a,(async()=>await y((async()=>(await r(),K((await l(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,l,w]],y,p)=>{const[v,T,m,A]=U(t,y,n),R=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),h=async(a,t)=>l?await m(w,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await A((async()=>{await v();const a=await(async()=>b(L(await E(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>r?(await T(w,d))[u]:{})();return F(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),o(t)){const[t,e]=a();await R(t),await h(e)}else{const[a,e]=t();await R(a,!0),await h(e,!0)}}))),e,s,n,["getDb",p],p)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[oa]:t+"_values"},wa=(a,t,e,s)=>{const n=$();return I(a,((a,i)=>{const c=w(_(g(t,l(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||j(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y)=>{let E,u,p;const[T,m,A,L]=(a=>{const e=(a=>g(ra,l(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(_(g(la,c)),0,M(la)),r=o[2],y=x(r);return[0,s,[wa(n,{[ca]:null,[ia]:d},ca,(a=>Y(y,a)&&a==r)),wa(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>Y(y,t)&&t==r)),o],y]})(e);return(T?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(p??=n)||(a(),E=t,u=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,A,O(L),y)},pa=(a,t,e,s,n,i)=>da(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{pa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=setInterval,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>i.all(a),d=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),T=a=>0==E(a),p=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),h=Object,N=a=>h.getPrototypeOf(a),O=h.keys,R=h.freeze,C=(a=[])=>h.fromEntries(a),D=(...a)=>h.assign({},...a),S=(a,t)=>v(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),I=a=>E(O(a)),b=a=>(a=>!r(a)&&w(N(a),(a=>a==h.prototype||r(N(a))),(()=>!0)))(a)&&0==I(a),F=a=>new Map(a),M=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),P=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),_=(a,t,e)=>r(e)?(f(a,t),a):a?.set(t,e),B=(a,t,e)=>(A(a,t)||_(a,t,e()),$(a,t)),H=(a,t,e,s=_)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||r(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",x="_id",J=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",Y="WHERE",z=(a,t,s)=>{const n=F();return[async()=>H(n,C(await u(v(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,C(v(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>_(n,t,H(B(n,t,F),e,((a,t,e)=>{e!=$(a,t)&&_(a,t,e)}),((a,t)=>_(a,t))))),((a,t)=>_(n,t))),async(t,e)=>((a,t)=>!r($($(n,a),t)))(t,e)?C(p(v(await a("SELECT*FROM"+J(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!b(t)))):{},async(t,s,i,c,o,w=!1)=>{const l=W();S(i??{},(a=>v(O(a??{}),(a=>j(l,a)))));const y=L(l);if(!w&&o&&T(y)&&A(n,t))return await a("DROP TABLE"+J(t)),void _(n,t);if(T(y)||A(n,t)){const e=$(n,t),i=W(M(e));await u([...v(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${J(t)}ADD${J(s)}`),_(e,s,""))})),...!w&&c?v(L(i),(async n=>{n!=s&&(await a(`ALTER TABLE${J(t)}DROP${J(n)}`),_(e,n))})):[]])}else await a(`CREATE TABLE${J(t)}(${J(s)} PRIMARY KEY ON CONFLICT REPLACE${d(v(y,(a=>e+J(a))))});`),_(n,t,F([[s,""],...v(y,(a=>[a,""]))]));if(w)r(i)?await a("DELETE FROM"+J(t)+"WHERE 1"):await u(S(i,(async(e,n)=>{r(e)?await a("DELETE FROM"+J(t)+Y+J(s)+"=?",[n]):T(y)||await G(a,t,s,O(e),[n,...g(e)])})));else if(T(y))A(n,t)&&await a("DELETE FROM"+J(t)+"WHERE 1");else{const e=p(M($(n,t)),(a=>a!=s)),c=[],o=[];S(i??{},((a,t)=>{m(c,t,...v(e,(t=>a?.[t]))),m(o,t)})),await G(a,t,s,e,c),await a("DELETE FROM"+J(t)+Y+J(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},G=async(a,t,s,i,c)=>await a("INSERT INTO"+J(t)+"("+J(s)+d(v(i,(a=>e+J(a))))+")VALUES"+y(n(`,(?${n(",?",E(i))})`,E(c)/(E(i)+1)),1)+"ON CONFLICT("+J(s)+")DO UPDATE SET"+d(v(i,(a=>J(a)+"=excluded."+J(a))),e),c),K=a=>d(v(a,(()=>"?")),e),V=JSON.parse,q=F(),Q=F(),X=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,E,u,d=0,v=0;B(q,l,(()=>0)),B(Q,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await p.schedule((async()=>{await a(),d=0}))),p),p={load:async(e,s)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),p),save:async t=>(1!=d&&(d=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(y,a.delListener),y=void 0,p),schedule:async(...a)=>(m($(Q,l),...a),await(async()=>{if(!$(q,l)){for(_(q,l,1);!r((a=$(Q,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}_(q,l,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),R(p)},Z="store",aa=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=z(t,c,n);return X(a,(async()=>await y((async()=>(await r(),V((await w(i,x))[k]?.[Z]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,x,{[k]:{[Z]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ta=(a,t,e,s,n,[i,c,[o,w,l]],y,E)=>{const[d,v,T,m]=z(t,y,n),A=async(a,t)=>await u(P(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),L=async(a,t)=>w?await T(l,x,{[k]:a},!0,!0,t):null;return X(a,(async()=>await m((async()=>{await d();const a=await(async()=>C(p(await u(P(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?(await v(l,x))[k]:{})();return b(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await d(),r(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",E],E)},ea="json",sa="autoLoadIntervalSeconds",na="rowIdColumnName",ia="tableId",ca="tableName",oa={mode:ea,[sa]:1},ra={load:0,save:0,[ca]:t+"_values"},wa=(a,t,e,s)=>{const n=F();return S(a,((a,i)=>{const c=y(g(D(t,l(a)?{[e]:a}:a)),0,I(t));r(c[0])||s(i,c[0])||_(n,i,c)})),n},la="pragma ",ya="data_version",Ea="schema_version",ua=(a,e,s,n,i,r,w,E)=>{let u,d;const[v,T,p,m]=(a=>{const e=(a=>D(oa,l(a)?{storeTableName:a}:a??{}))(a),s=e[sa];if(e.mode==ea){const{storeTableName:a=t}=e;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(g(D(ra,c)),0,I(ra)),r=o[2],w=W(r);return[0,s,[wa(n,{[ia]:null,[na]:x},ia,(a=>j(w,a)&&a==r)),wa(i,{[ca]:null,[na]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>j(w,t)&&t==r)),o],w]})(e);return(v?aa:ta)(a,r?async(a,t)=>(r(a,t),await s(a,t)):s,(a=>[c((async()=>{try{const t=(await s(la+ya))[0][ya],e=(await s(la+Ea))[0][Ea];t==(u??=t)&&e==(d??=e)||(a(),u=t,d=e)}catch{}}),1e3*T),n((t=>m.has(t)?a():0))]),(([a,t])=>{o(a),u=d=null,i(t)}),w,p,L(m),E)},da="change",va=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t))),new i(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(da,e),e}),(a=>t.off(da,a)),s,n,t);export{va as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==n,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",A=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,D=a=>N.getPrototypeOf(a),C=N.keys,S=N.freeze,g=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),b=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),F=a=>N.values(a),M=a=>y(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),Y=(a,t,e,n=W)=>(b(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),x=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,n)=>{const s=_();return[async()=>Y(s,g(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,g(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(s,t,Y(j(s,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(s,t))),async(t,e)=>((a,t)=>!o(B(B(s,a),t)))(t,e)?g(L(m(await a(G+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,n,i,c,r,w=!1)=>{const l=k();b(i??{},(a=>m(C(a??{}),(a=>x(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(s,t))return await a("DROP TABLE"+v(t)),void W(s,t);if(p(y)||O(s,t)){const e=B(s,t),i=k(P(e));await E([...m(y,(async n=>{h(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),W(e,n,""))})),...!w&&c?m(R(i),(async s=>{s!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(s)}`),W(e,s))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${A(m(y,(a=>e+v(a))))});`),W(s,t,_([[n,""],...m(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(b(i,(async(e,s)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(n)+"=?",[s]):p(y)||await K(a,t,n,C(e),[s,...F(e)])})));else if(p(y))O(s,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(s,t)),(a=>a!=n)),c=[],o=[];b(i??{},((a,t)=>{f(c,t,...m(e,(t=>a?.[t]))),f(o,t)})),await K(a,t,n,e,c),await a("DELETE FROM"+v(t)+U+v(n)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},K=async(a,t,n,i,c)=>await a("INSERT INTO"+v(t)+"("+v(n)+A(m(i,(a=>e+v(a))))+")VALUES"+l(s(`,(?${s(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(n)+")DO UPDATE SET"+A(m(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>A(m(a,(()=>"?")),e),q=JSON.parse,Q=_(),X=_(),Z=(a,t,e,n,s,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,n)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),v=1,u=n((async(e,n)=>{if(n){const t=n();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(s(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();$(e)&&$(n)||A.save((()=>[e,n]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),S(A)},aa="store",ta=(a,t,e,n,s,[i],c,o)=>{const[r,w,l,y]=z(t,c,s);return Z(a,(async()=>await y((async()=>(await r(),q((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,["getDb",o],o)},ea=(a,t,e,n,s,[i,c,[r,w,l]],y,v)=>{const[T,A,m,p]=z(t,y,s),f=async(a,t)=>await E(H(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await m(e,n,o,s,i,t)}))),O=async(a,t)=>w?await m(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await p((async()=>{await T();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await p((async()=>{if(await T(),o(t)){const[t,e]=a();await f(t),await O(e)}else{const[a,e]=t();await f(a,!0),await O(e,!0)}}))),e,n,s,["getDb",v],v)},na="json",sa="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:na,[sa]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,n)=>{const s=_();return b(a,((a,i)=>{const c=l(F(I(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||n(i,c[0])||W(s,i,c)})),s},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,n,s,i,o,r,y)=>{let E,u,v;const[A,m,p,L]=(a=>{const e=(a=>I(ra,w(a)?{storeTableName:a}:a??{}))(a),n=e[sa];if(e.mode==na){const{storeTableName:a=t}=e;return[1,n,[a],k(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=l(F(I(wa,c)),0,M(wa)),r=o[2],y=k(r);return[0,n,[la(s,{[ca]:null,[ia]:d},ca,(a=>x(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ya+Ea))[0][Ea],e=(await n(ya+ua))[0][ua],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&s==(v??=s)||(a(),E=t,u=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,p,R(L),y)},va="change",Ta=(a,t,e,n,s)=>da(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new i(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(va,e),e}),(a=>t.off(va,a)),n,s,t);export{Ta as createSqlite3Persister};
@@ -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=>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),f=(a,t="")=>a.join(t),p=(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),O=Object,N=a=>O.getPrototypeOf(a),R=O.keys,C=O.freeze,S=(a=[])=>O.fromEntries(a),g=(...a)=>O.assign({},...a),D=(a,t)=>p(O.entries(a),(([a,e])=>t(e,a))),b=a=>O.values(a),I=a=>d(R(a)),F=a=>(a=>!l(a)&&y(N(a),(a=>a==O.prototype||l(N(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),W=(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),j=a=>new Set(Array.isArray(a)||l(a)?a:[a]),H=(a,t)=>a?.add(t),U="_",k="_id",q=a=>`"${a.replace(/"/g,'""')}"`,J="FROM pragma_table_",Y="WHERE",z=(a,t,e)=>{const n=M();return[async()=>x(n,S(await u(p(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")",t),(async({name:t})=>[t,S(p(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(n,t,x(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)=>!l($($(n,a),t)))(t,e)?S(m(p(await a("SELECT*FROM"+q(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=j();D(i??{},(a=>p(R(a??{}),(a=>H(y,a)))));const w=L(y);if(!r&&c&&T(w)&&A(n,t))return await a("DROP TABLE"+q(t)),void B(n,t);if(T(w)||A(n,t)){const s=$(n,t),i=j(P(s));await u([...p(w,(async e=>{h(i,e)||(await a(`ALTER TABLE${q(t)}ADD${q(e)}`),B(s,e,""))})),...!r&&o?p(L(i),(async n=>{n!=e&&(await a(`ALTER TABLE${q(t)}DROP${q(n)}`),B(s,n))})):[]])}else await a(`CREATE TABLE${q(t)}(${q(e)} PRIMARY KEY ON CONFLICT REPLACE${f(p(w,(a=>s+q(a))))});`),B(n,t,M([[e,""],...p(w,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+q(t)+"WHERE 1"):await u(D(i,(async(s,n)=>{l(s)?await a("DELETE FROM"+q(t)+Y+q(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"+q(t)+"WHERE 1");else{const s=m(P($(n,t)),(a=>a!=e)),o=[],c=[];D(i??{},((a,t)=>{v(o,t,...p(s,(t=>a?.[t]))),v(c,t)})),await G(a,t,e,s,o),await a("DELETE FROM"+q(t)+Y+q(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"+q(t)+"("+q(e)+f(p(n,(a=>s+q(a))))+")VALUES"+E(i(`,(?${i(",?",d(n))})`,d(o)/(d(n)+1)),1)+"ON CONFLICT("+q(e)+")DO UPDATE SET"+f(p(n,(a=>q(a)+"=excluded."+q(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,d,u=0,f=0;W(Q,r,(()=>0)),W(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(),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(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),C(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))[U]?.[aa]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,k,{[U]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?O.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,f,p,T]=z(t,w,n),v=async(a,t)=>await u(_(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,k,{[U]:a},!0,!0,t):null;return Z(a,(async()=>await T((async()=>{await d();const a=await(async()=>S(m(await u(_(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>c?(await f(y,k))[U]:{})();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 D(a,((a,i)=>{const o=E(b(g(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",da="schema_version",ua=(a,t,s,n,i,o,l,y)=>{let d,u;const[f,p,T,m]=(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],j(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(b(g(la,o)),0,I(la)),r=c[2],l=j(r);return[0,s,[ya(n,{[oa]:null,[ia]:k},oa,(a=>H(l,a)&&a==r)),ya(i,{[ca]:null,[ia]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ca,((a,t)=>H(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==(d??=t)&&e==(u??=e)||(a(),d=t,u=e)}catch{}}),1e3*p),n((t=>m.has(t)?a():0))]),(([a,t])=>{r(a),d=u=null,i(t)}),l,T,L(m),y)};a.createCrSqliteWasmPersister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>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).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),D=C.keys,g=C.freeze,b=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),F=(a,t)=>v(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),P=a=>E(D(a)),$=a=>(a=>!r(a)&&l(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),x=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||H(a,t,e()),W(a,t)),U=(a,t,e,s=H)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),q=T+"*FROM",G="FROM pragma_table_",J="WHERE",z=(a,t,e)=>{const n=_();return[async()=>U(n,b(await d(v(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(v(await a(T+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(n,t,U(j(n,t,_),e,((a,t,e)=>{e!=W(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(n,t))),async(t,e)=>((a,t)=>!r(W(W(n,a),t)))(t,e)?b(L(v(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=Y();F(i??{},(a=>v(D(a??{}),(a=>k(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void H(n,t);if(A(w)||O(n,t)){const s=W(n,t),i=Y(B(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),H(s,e,""))})),...!l&&o?v(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),H(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+p(a))))});`),H(n,t,_([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await d(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+J+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(B(W(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+p(t)+J+p(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+m(v(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+m(v(n,(a=>p(a)+"=excluded."+p(a))),s),o),V=a=>m(v(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,f=0;j(X,y,(()=>0)),j(Z,y,(()=>[]));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(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(W(Z,y),...a),await(async()=>{if(!W(X,y)){for(H(X,y,1);!r((a=W(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}H(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),g(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,f))[u]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,E)=>{const[p,T,m,v]=z(t,w,n),A=async(a,t)=>await d(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await m(e,s,c,n,i,t)}))),h=async(a,t)=>l?await m(y,f,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await v((async()=>{await p();const a=await(async()=>b(L(await d(x(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,f))[u]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await p(),r(t)){const[t,e]=a();await A(t),await h(e)}else{const[a,e]=t();await A(a,!0),await h(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||H(n,i,o)})),n},Ea="pragma ",da="data_version",ua="schema_version",fa=(a,t,s,n,i,o,r,l)=>{let E,d,u;const[p,m,v,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=Y(r);return[0,s,[wa(n,{[ca]:null,[oa]:f},ca,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(p?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+da))[0][da],e=(await s(Ea+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(d??=e)&&n==(u??=n)||(a(),E=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=d=null,i(t)}),r,v,R(A),l)};a.createCrSqliteWasmPersister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>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).TinyBasePersisterCrSqliteWasm={});
@@ -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=>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),f=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),T=a=>0==d(a),v=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),b=Object,N=a=>b.getPrototypeOf(a),O=b.keys,R=b.freeze,g=(a=[])=>b.fromEntries(a),S=(...a)=>b.assign({},...a),C=(a,t)=>p(b.entries(a),(([a,e])=>t(e,a))),D=a=>b.values(a),I=a=>d(O(a)),F=a=>(a=>!l(a)&&y(N(a),(a=>a==b.prototype||l(N(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)?(L(a,t),a):a?.set(t,e),j=(a,t,e)=>(h(a,t)||B(a,t,e()),$(a,t)),x=(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),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()=>x(n,g(await u(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();C(i??{},(a=>p(O(a??{}),(a=>W(y,a)))));const w=A(y);if(!r&&c&&T(w)&&h(n,t))return await a("DROP TABLE"+J(t)),void B(n,t);if(T(w)||h(n,t)){const s=$(n,t),i=H(P(s));await u([...p(w,(async e=>{L(i,e)||(await a(`ALTER TABLE${J(t)}ADD${J(e)}`),B(s,e,""))})),...!r&&o?p(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${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 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,O(s),[n,...D(s)])})));else if(T(w))h(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)=>{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(",?",d(n))})`,d(o)/(d(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,d,u=0,f=0;j(Q,r,(()=>0)),j(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(),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),R(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?b.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,f,p,T]=z(t,w,n),m=async(a,t)=>await u(_(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await p(e,s,c,n,i,t)}))),h=async(a,t)=>r?await p(y,k,{[q]:a},!0,!0,t):null;return Z(a,(async()=>await T((async()=>{await d();const a=await(async()=>g(v(await u(_(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>c?(await f(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 m(t),await h(e)}else{const[a,e]=t();await m(a,!0),await h(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(S(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",da="schema_version",ua=(a,t,s,n,i,o,l,y)=>{let d,u;const[f,p,T,v]=(a=>{const t=(a=>S(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(S(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==(d??=t)&&e==(u??=e)||(a(),d=t,u=e)}catch{}}),1e3*p),n((t=>v.has(t)?a():0))]),(([a,t])=>{r(a),d=u=null,i(t)}),l,T,A(v),y)};a.createElectricSqlPersister=(a,t,e,s,n)=>ua(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>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).TinyBasePersisterElectricSql={});
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=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==E(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),b=Object,g=a=>b.getPrototypeOf(a),D=b.keys,S=b.freeze,C=(a=[])=>b.fromEntries(a),I=(...a)=>b.assign({},...a),F=(a,t)=>m(b.entries(a),(([a,e])=>t(e,a))),M=a=>b.values(a),P=a=>E(D(a)),$=a=>(a=>!r(a)&&l(g(a),(a=>a==b.prototype||r(g(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),W=(a,t,e)=>(O(a,t)||x(a,t,e()),H(a,t)),q=(a,t,e,s=x)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>q(n,C(await u(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,C(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,q(W(n,t,_),e,((a,t,e)=>{e!=H(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?C(h(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,c,o,l=!1)=>{const y=Y();F(i??{},(a=>m(D(a??{}),(a=>k(y,a)))));const w=R(y);if(!l&&o&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void x(n,t);if(A(w)||O(n,t)){const s=H(n,t),i=Y(B(s));await u([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),x(s,e,""))})),...!l&&c?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),x(n,t,_([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await u(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+U+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=h(B(H(n,t)),(a=>a!=e)),c=[],o=[];F(i??{},((a,t)=>{L(c,t,...m(s,(t=>a?.[t]))),L(o,t)})),await K(a,t,e,s,c),await a("DELETE FROM"+p(t)+U+p(e)+"NOT IN("+V(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,c)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(c)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),c),V=a=>v(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],y=[])=>{let w,E,u,d=0,f=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));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();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(L(H(Z,y),...a),await(async()=>{if(!H(X,y)){for(x(X,y,1);!r((a=H(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}x(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),S(T)},ta="store",ea=(a,t,e,s,n,[i],c,o)=>{const[r,l,y,w]=z(t,c,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,f))[d]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},sa=(a,t,e,s,n,[i,c,[o,l,y]],w,E)=>{const[p,T,v,m]=z(t,w,n),A=async(a,t)=>await u(j(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),L=async(a,t)=>l?await v(y,f,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await m((async()=>{await p();const a=await(async()=>C(h(await u(j(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>o?(await T(y,f))[d]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await p(),r(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const c=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(c[0])||s(i,c[0])||x(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",fa=(a,t,s,n,i,c,r,l)=>{let E,u,d;const[p,v,m,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=w(M(I(ya,c)),0,P(ya)),r=o[2],l=Y(r);return[0,s,[wa(n,{[oa]:null,[ca]:f},oa,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[ca]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),o],l]})(t);return(p?ea:sa)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(d??=n)||(a(),E=t,u=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=u=null,i(t)}),r,m,R(A),l)};a.createElectricSqlPersister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>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).TinyBasePersisterElectricSql={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,s="tinybase",n=",",i=e(""),o=(a,t)=>a.repeat(t),c=Promise,r=setInterval,l=clearInterval,y=a=>null==a,w=(a,t,e)=>y(a)?e?.():t(a),E=a=>e(a)==i,d=(a,t,e)=>a.slice(t,e),u=a=>a.length,p=async a=>c.all(a),f=(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),O=Object,R=a=>O.getPrototypeOf(a),S=O.keys,b=O.freeze,g=(a=[])=>O.fromEntries(a),C=(...a)=>O.assign({},...a),D=(a,t)=>T(O.entries(a),(([a,e])=>t(e,a))),x=a=>O.values(a),I=a=>u(S(a)),F=a=>(a=>!y(a)&&w(R(a),(a=>a==O.prototype||y(R(a))),(()=>!0)))(a)&&0==I(a),M=a=>new Map(a),P=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),q=(a,t,e)=>y(e)?(N(a,t),a):a?.set(t,e),B=(a,t,e)=>(L(a,t)||q(a,t,e()),$(a,t)),j=(a,t,e,s=q)=>(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="_",J="_id",U=a=>`"${a.replace(/"/g,'""')}"`,Y="FROM pragma_table_",z="WHERE",G=(a,t,e)=>{const s=M();return[async()=>j(s,g(await p(T(await a("SELECT name "+Y+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,g(T(await a("SELECT name,type "+Y+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>q(s,t,j(B(s,t,M),e,((a,t,e)=>{e!=$(a,t)&&q(a,t,e)}),((a,t)=>q(a,t))))),((a,t)=>q(s,t))),async(t,e)=>((a,t)=>!y($($(s,a),t)))(t,e)?g(v(T(await a("SELECT*FROM"+U(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();D(i??{},(a=>T(S(a??{}),(a=>W(l,a)))));const w=h(l);if(!r&&c&&m(w)&&L(s,t))return await a("DROP TABLE"+U(t)),void q(s,t);if(m(w)||L(s,t)){const n=$(s,t),i=H(P(n));await p([...T(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${U(t)}ADD${U(e)}`),q(n,e,""))})),...!r&&o?T(h(i),(async s=>{s!=e&&(await a(`ALTER TABLE${U(t)}DROP${U(s)}`),q(n,s))})):[]])}else await a(`CREATE TABLE${U(t)}(${U(e)} PRIMARY KEY ON CONFLICT REPLACE${f(T(w,(a=>n+U(a))))});`),q(s,t,M([[e,""],...T(w,(a=>[a,""]))]));if(r)y(i)?await a("DELETE FROM"+U(t)+"WHERE 1"):await p(D(i,(async(s,n)=>{y(s)?await a("DELETE FROM"+U(t)+z+U(e)+"=?",[n]):m(w)||await K(a,t,e,S(s),[n,...x(s)])})));else if(m(w))L(s,t)&&await a("DELETE FROM"+U(t)+"WHERE 1");else{const n=v(P($(s,t)),(a=>a!=e)),o=[],c=[];D(i??{},((a,t)=>{A(o,t,...T(n,(t=>a?.[t]))),A(c,t)})),await K(a,t,e,n,o),await a("DELETE FROM"+U(t)+z+U(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,s,i)=>await a("INSERT INTO"+U(t)+"("+U(e)+f(T(s,(a=>n+U(a))))+")VALUES"+d(o(`,(?${o(",?",u(s))})`,u(i)/(u(s)+1)),1)+"ON CONFLICT("+U(e)+")DO UPDATE SET"+f(T(s,(a=>U(a)+"=excluded."+U(a))),n),i),V=a=>f(T(a,(()=>"?")),n),Q=JSON.parse,X=M(),Z=M(),aa=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let l,E,d,u=0,p=0;B(X,r,(()=>0)),B(Z,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(),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($(Z,r),...a),await(async()=>{if(!$(X,r)){for(q(X,r,1);!y((a=$(Z,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}q(X,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),b(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=G(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,J))[k]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,J,{[k]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?O.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,r,l]],w,E)=>{const[d,u,f,T]=G(t,w,n),m=async(a,t)=>await p(_(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(l,J,{[k]:a},!0,!0,t):null;return aa(a,(async()=>await T((async()=>{await d();const a=await(async()=>g(v(await p(_(i,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>c?(await u(l,J))[k]:{})();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)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:s+"_values"},wa=(a,t,e,s)=>{const n=M();return D(a,((a,i)=>{const o=d(x(C(t,E(a)?{[e]:a}:a)),0,I(t));y(o[0])||s(i,o[0])||q(n,i,o)})),n},Ea="pragma ",da="data_version",ua="schema_version",pa=(a,t,e,n,i,o,c,y)=>{let w,u;const[p,f,T,m]=(a=>{const t=(a=>C(la,E(a)?{storeTableName:a}:a??{}))(a),e=t[ia];if(t.mode==na){const{storeTableName:a=s}=t;return[1,e,[a],H(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=d(x(C(ya,o)),0,I(ya)),r=c[2],l=H(r);return[0,e,[wa(n,{[ca]:null,[oa]:J},ca,(a=>W(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:J,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(p?ea:sa)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>[r((async()=>{try{const t=(await e(Ea+da))[0][da],s=(await e(Ea+ua))[0][ua];t==(w??=t)&&s==(u??=s)||(a(),w=t,u=s)}catch{}}),1e3*f),n((t=>m.has(t)?a():0))]),(([a,t])=>{l(a),w=u=null,i(t)}),c,T,h(m),y)};a.createExpoSqliteNextPersister=(a,e,s,n,i)=>pa(a,s,(async(a,t=[])=>await e.allAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite/next")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite/next"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqliteNext={},a["expo-sqlite/next"]);
1
+ var a,t;a=this,t=function(a,t){"use strict";const e=a=>typeof a,s="tinybase",n=",",i=e(""),o=(a,t)=>a.repeat(t),c=Promise,r=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>e(a)==i,E=(a,t,e)=>a.slice(t,e),d=a=>a.length,u=async a=>c.all(a),p="_",f="_id",T=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",v=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),L=a=>0==d(a),h=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],D=(a,t)=>a?.delete(t),S=Object,b=a=>S.getPrototypeOf(a),g=S.keys,C=S.freeze,x=(a=[])=>S.fromEntries(a),I=(...a)=>S.assign({},...a),F=(a,t)=>A(S.entries(a),(([a,e])=>t(e,a))),M=a=>S.values(a),P=a=>d(g(a)),$=a=>(a=>!l(a)&&y(b(a),(a=>a==S.prototype||l(b(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],q=(a,t)=>a?.get(t),H=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>l(e)?(D(a,t),a):a?.set(t,e),W=(a,t,e)=>(O(a,t)||j(a,t,e()),q(a,t)),Y=(a,t,e,s=j)=>(F(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),k=a=>new Set(Array.isArray(a)||l(a)?a:[a]),G=(a,t)=>a?.add(t),J=m+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,e)=>{const s=_();return[async()=>Y(s,x(await u(A(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,x(A(await a(m+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(s,t,Y(W(s,t,_),e,((a,t,e)=>{e!=q(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(s,t))),async(t,e)=>((a,t)=>!l(q(q(s,a),t)))(t,e)?x(h(A(await a(J+T(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=k();F(i??{},(a=>A(g(a??{}),(a=>G(y,a)))));const w=R(y);if(!r&&c&&L(w)&&O(s,t))return await a("DROP TABLE"+T(t)),void j(s,t);if(L(w)||O(s,t)){const n=q(s,t),i=k(B(n));await u([...A(w,(async e=>{D(i,e)||(await a(`ALTER TABLE${T(t)}ADD${T(e)}`),j(n,e,""))})),...!r&&o?A(R(i),(async s=>{s!=e&&(await a(`ALTER TABLE${T(t)}DROP${T(s)}`),j(n,s))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(e)} PRIMARY KEY ON CONFLICT REPLACE${v(A(w,(a=>n+T(a))))});`),j(s,t,_([[e,""],...A(w,(a=>[a,""]))]));if(r)l(i)?await a("DELETE FROM"+T(t)+"WHERE 1"):await u(F(i,(async(s,n)=>{l(s)?await a("DELETE FROM"+T(t)+z+T(e)+"=?",[n]):L(w)||await V(a,t,e,g(s),[n,...M(s)])})));else if(L(w))O(s,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const n=h(B(q(s,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{N(o,t,...A(n,(t=>a?.[t]))),N(c,t)})),await V(a,t,e,n,o),await a("DELETE FROM"+T(t)+z+T(e)+"NOT IN("+Q(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},V=async(a,t,e,s,i)=>await a("INSERT INTO"+T(t)+"("+T(e)+v(A(s,(a=>n+T(a))))+")VALUES"+E(o(`,(?${o(",?",d(s))})`,d(i)/(d(s)+1)),1)+"ON CONFLICT("+T(e)+")DO UPDATE SET"+v(A(s,(a=>T(a)+"=excluded."+T(a))),n),i),Q=a=>v(A(a,(()=>"?")),n),X=JSON.parse,Z=_(),aa=_(),ta=(a,t,e,s,n,i,[o,c]=[],r=[])=>{let w,E,d,u=0,p=0;W(Z,r,(()=>0)),W(aa,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();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(y(w,a.delListener),w=void 0,T),schedule:async(...a)=>(N(q(aa,r),...a),await(async()=>{if(!q(Z,r)){for(j(Z,r,1);!l((a=q(aa,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Z,r,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),C(T)},ea="store",sa=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=K(t,o,n);return ta(a,(async()=>await w((async()=>(await r(),X((await l(i,f))[p]?.[ea]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[p]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},na=(a,t,e,s,n,[i,o,[c,r,y]],w,E)=>{const[d,T,m,v]=K(t,w,n),A=async(a,t)=>await u(H(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await m(e,s,c,n,i,t)}))),L=async(a,t)=>r?await m(y,f,{[p]:a},!0,!0,t):null;return ta(a,(async()=>await v((async()=>{await d();const a=await(async()=>x(h(await u(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,f))[p]:{})();return $(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await d(),l(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",E],E)},ia="json",oa="autoLoadIntervalSeconds",ca="rowIdColumnName",ra="tableId",la="tableName",ya={mode:ia,[oa]:1},wa={load:0,save:0,[la]:s+"_values"},Ea=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=E(M(I(t,w(a)?{[e]:a}:a)),0,P(t));l(o[0])||s(i,o[0])||j(n,i,o)})),n},da="pragma ",ua="data_version",pa="schema_version",fa=(a,t,e,n,i,o,c,l)=>{let y,d,u;const[p,T,v,A]=(a=>{const t=(a=>I(ya,w(a)?{storeTableName:a}:a??{}))(a),e=t[oa];if(t.mode==ia){const{storeTableName:a=s}=t;return[1,e,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=E(M(I(wa,o)),0,P(wa)),r=c[2],l=k(r);return[0,e,[Ea(n,{[ra]:null,[ca]:f},ra,(a=>G(l,a)&&a==r)),Ea(i,{[la]:null,[ca]:f,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>G(l,t)&&t==r)),c],l]})(t);return(p?sa:na)(a,o?async(a,t)=>(o(a,t),await e(a,t)):e,(a=>{return[(t=async()=>{try{const t=(await e(da+ua))[0][ua],s=(await e(da+pa))[0][pa],n=(await e(m+" TOTAL_CHANGES() c"))[0].c;t==(y??=t)&&s==(d??=s)&&n==(u??=n)||(a(),y=t,d=s)}catch{}},s=T,t(),setInterval(t,1e3*s)),n((t=>A.has(t)?a():0))];var t,s}),(([a,t])=>{r(a),y=d=null,i(t)}),c,v,R(A),l)};a.createExpoSqliteNextPersister=(a,e,s,n,i)=>fa(a,s,(async(a,t=[])=>await e.allAsync(a,t)),(a=>t.addDatabaseChangeListener((({tableName:t})=>a(t)))),(a=>a.remove()),n,i,e)},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("expo-sqlite/next")):"function"==typeof define&&define.amd?define(["exports","expo-sqlite/next"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterExpoSqliteNext={},a["expo-sqlite/next"]);
@@ -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=>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
+ 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=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",p="_id",f=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),g=Object,D=a=>g.getPrototypeOf(a),S=g.keys,b=g.freeze,C=(a=[])=>g.fromEntries(a),I=(...a)=>g.assign({},...a),F=(a,t)=>v(g.entries(a),(([a,e])=>t(e,a))),M=a=>g.values(a),P=a=>E(S(a)),$=a=>(a=>!r(a)&&l(D(a),(a=>a==g.prototype||r(D(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),x=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(R(a,t),a):a?.set(t,e),W=(a,t,e)=>(N(a,t)||j(a,t,e()),B(a,t)),q=(a,t,e,s=j)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>q(n,C(await d(v(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,C(v(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,q(W(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!r(B(B(n,a),t)))(t,e)?C(L(v(await a(G+f(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=Y();F(i??{},(a=>v(S(a??{}),(a=>k(y,a)))));const w=O(y);if(!l&&c&&A(w)&&N(n,t))return await a("DROP TABLE"+f(t)),void j(n,t);if(A(w)||N(n,t)){const s=B(n,t),i=Y(x(s));await d([...v(w,(async e=>{R(i,e)||(await a(`ALTER TABLE${f(t)}ADD${f(e)}`),j(s,e,""))})),...!l&&o?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${f(t)}DROP${f(n)}`),j(s,n))})):[]])}else await a(`CREATE TABLE${f(t)}(${f(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+f(a))))});`),j(n,t,_([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+f(t)+"WHERE 1"):await d(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+f(t)+U+f(e)+"=?",[n]):A(w)||await K(a,t,e,S(s),[n,...M(s)])})));else if(A(w))N(n,t)&&await a("DELETE FROM"+f(t)+"WHERE 1");else{const s=L(x(B(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+f(t)+U+f(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+f(t)+"("+f(e)+m(v(n,(a=>s+f(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+f(e)+")DO UPDATE SET"+m(v(n,(a=>f(a)+"=excluded."+f(a))),s),o),V=a=>m(v(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,p=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));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();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(B(Z,y),...a),await(async()=>{if(!B(X,y)){for(j(X,y,1);!r((a=B(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),b(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,p))[u]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,p,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?g.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,E)=>{const[f,T,m,v]=z(t,w,n),A=async(a,t)=>await d(H(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await m(e,s,c,n,i,t)}))),h=async(a,t)=>l?await m(y,p,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await v((async()=>{await f();const a=await(async()=>C(L(await d(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,p))[u]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await f(),r(t)){const[t,e]=a();await A(t),await h(e)}else{const[a,e]=t();await A(a,!0),await h(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||j(n,i,o)})),n},Ea="pragma ",da="data_version",ua="schema_version",pa=(a,t,s,n,i,o,r,l)=>{let E,d,u;const[f,m,v,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=Y(r);return[0,s,[wa(n,{[ca]:null,[oa]:p},ca,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:p,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(f?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+da))[0][da],e=(await s(Ea+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(d??=e)&&n==(u??=n)||(a(),E=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=d=null,i(t)}),r,v,O(A),l)};a.createExpoSqlitePersister=(a,t,e,s,n)=>pa(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){"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
+ var t,e;t=this,e=function(t){"use strict";const e=Promise,a=clearInterval,s=t=>null==t,n=(t,e,a)=>s(t)?a?.():e(t),o=t=>new e(t),r=async t=>e.all(t),c=(t,e)=>t.map(e),i=(t,...e)=>t.push(...e),d=Object,y=t=>d.getPrototypeOf(t),l=d.keys,u=d.freeze,w=t=>(t=>!s(t)&&n(y(t),(t=>t==d.prototype||s(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),p=t=>new Map(t),h=(t,e)=>t?.get(e),f=(t,e,a)=>{return s(a)?(n=t,o=e,n?.delete(o),t):t?.set(e,a);var n,o},v=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),h(t,e)},g=p(),b=p(),A=globalThis.window,S=["t","v"],x={keyPath:"k"},j=async(t,e)=>{const a=((e,a)=>c(d.entries(e),(([e,a])=>m(t,"put",{k:e,v:a}))))(e);c(await m(t,"getAllKeys"),(o=>((t,e)=>!s(((t,e)=>n(t,(t=>t[e])))(t,e)))(e,o)?0:i(a,m(t,"delete",o)))),await r(a)},m=async(t,e,a)=>o(((s,n)=>{const o=t[e](a);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${e} error`)}));t.createIndexedDbPersister=(t,e,y=1,l)=>{const p=async(t,a=[],s=0)=>o(((n,o)=>{const i=A.indexedDB.open(e,s?2:void 0);i.onupgradeneeded=()=>s&&c(S,(t=>{try{i.result.createObjectStore(t,x)}catch{}})),i.onsuccess=async()=>{try{const e=i.result.transaction(S,"readwrite"),s=await r(c(S,(async(s,n)=>await t(e.objectStore(s),a[n]))));i.result.close(),n(s)}catch(t){o(t)}},i.onerror=()=>o("indexedDB.open error")}));return((t,e,a,o,r,c,[d,y]=[],l=[])=>{let p,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={},s={})=>(D.stopAutoLoad(),await D.load(a,s),j=1,S=o((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(),p=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();w(a)&&w(s)||D.save((()=>[a,s]))})),D),stopAutoSave:()=>(n(p,t.delListener),p=void 0,D),schedule:async(...t)=>(i(h(b,l),...t),await(async()=>{if(!h(g,l)){for(f(g,l,1);!s((t=h(b,l),A=t.shift()));)try{await A()}catch(t){c?.(t)}f(g,l,0)}var t})(),D),getStore:()=>t,destroy:()=>D.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(D[d]=()=>y),u(D)})(t,(async()=>await p((async t=>((t=[])=>d.fromEntries(t))(c(await m(t,"getAll"),(({k:t,v:e})=>[t,e])))))),(async t=>await p((async(t,e)=>await j(t,e)),t(),1)),(t=>setInterval(t,1e3*y)),(t=>a(t)),l,["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 +1 @@
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
+ var t,e;t=this,e=function(t){"use strict";const e=clearInterval,a=t=>null==t,s=(t,e,s)=>a(t)?s?.():e(t),n=Object,o=t=>n.getPrototypeOf(t),r=n.keys,i=n.freeze,c=t=>(t=>!a(t)&&s(o(t),(t=>t==n.prototype||a(o(t))),(()=>!0)))(t)&&0==(t=>r(t).length)(t),y=JSON.parse,d=t=>new Map(t),u=(t,e)=>t?.get(e),f=(t,e,s)=>{return a(s)?(n=t,o=e,n?.delete(o),t):t?.set(e,s);var n,o},l=(t,e,a)=>{var s,n;return s=t,n=e,s?.has(n)||f(t,e,a()),u(t,e)},h=d(),p=d(),w=t=>t.headers.get("ETag");t.createRemotePersister=(t,o,r,d=5,v)=>{let g;return((t,e,n,o,r,y,[d,w]=[],v=[])=>{let g,A,S,T=0,m=0;l(h,v,(()=>0)),l(p,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){y?.(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 n(t.getContent,e)}catch(t){y?.(t)}T=0}))),L),startAutoSave:async()=>(await L.stopAutoSave().save(),g=t.addDidFinishTransactionListener(((t,e)=>{const[a,s]=e();c(a)&&c(s)||L.save((()=>[a,s]))})),L),stopAutoSave:()=>(s(g,t.delListener),g=void 0,L),schedule:async(...t)=>(((t,...e)=>{t.push(...e)})(u(p,v),...t),await(async()=>{if(!u(h,v)){for(f(h,v,1);!a((t=u(p,v),A=t.shift()));)try{await A()}catch(t){y?.(t)}f(h,v,0)}var t})(),L),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return d&&(L[d]=()=>w),i(L)})(t,(async()=>{const t=await fetch(o);return g=w(t),y(await t.text())}),(async t=>{return await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?n.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const e=await fetch(o,{method:"HEAD"}),s=w(e);a(g)||a(s)||s==g||(g=s,t())}),1e3*d)),(t=>e(t)),v,["getUrls",[o,r]])}},"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=>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
+ 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=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),E="_",p="_id",f=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",T=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==u(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),S=Object,b=a=>S.getPrototypeOf(a),D=S.keys,g=S.freeze,C=(a=[])=>S.fromEntries(a),I=(...a)=>S.assign({},...a),_=(a,t)=>v(S.entries(a),(([a,e])=>t(e,a))),M=a=>S.values(a),F=a=>u(D(a)),P=a=>(a=>!r(a)&&l(b(a),(a=>a==S.prototype||r(b(a))),(()=>!0)))(a)&&0==F(a),$=a=>new Map(a),B=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),j=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),H=(a,t,e)=>(R(a,t)||x(a,t,e()),W(a,t)),k=(a,t,e,s=x)=>(_(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),q=a=>new Set(Array.isArray(a)||r(a)?a:[a]),Y=(a,t)=>a?.add(t),G=m+"*FROM",J="FROM pragma_table_",U="WHERE",V=(a,t,e)=>{const n=$();return[async()=>k(n,C(await d(v(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,C(v(await a(m+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,k(H(n,t,$),e,((a,t,e)=>{e!=W(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(W(W(n,a),t)))(t,e)?C(h(v(await a(G+f(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!P(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=q();_(i??{},(a=>v(D(a??{}),(a=>Y(y,a)))));const w=O(y);if(!l&&c&&A(w)&&R(n,t))return await a("DROP TABLE"+f(t)),void x(n,t);if(A(w)||R(n,t)){const s=W(n,t),i=q(B(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${f(t)}ADD${f(e)}`),x(s,e,""))})),...!l&&o?v(O(i),(async n=>{n!=e&&(await a(`ALTER TABLE${f(t)}DROP${f(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${f(t)}(${f(e)} PRIMARY KEY ON CONFLICT REPLACE${T(v(w,(a=>s+f(a))))});`),x(n,t,$([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+f(t)+"WHERE 1"):await d(_(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+f(t)+U+f(e)+"=?",[n]):A(w)||await z(a,t,e,D(s),[n,...M(s)])})));else if(A(w))R(n,t)&&await a("DELETE FROM"+f(t)+"WHERE 1");else{const s=h(B(W(n,t)),(a=>a!=e)),o=[],c=[];_(i??{},((a,t)=>{L(o,t,...v(s,(t=>a?.[t]))),L(c,t)})),await z(a,t,e,s,o),await a("DELETE FROM"+f(t)+U+f(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}]},z=async(a,t,e,n,o)=>await a("INSERT INTO"+f(t)+"("+f(e)+T(v(n,(a=>s+f(a))))+")VALUES"+w(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+f(e)+")DO UPDATE SET"+T(v(n,(a=>f(a)+"=excluded."+f(a))),s),o),K=a=>T(v(a,(()=>"?")),s),Q=JSON.parse,X=$(),Z=$(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,u,d,E=0,p=0;H(X,y,(()=>0)),H(Z,y,(()=>[]));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(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();P(e)&&P(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(l(w,a.delListener),w=void 0,m),schedule:async(...a)=>(L(W(Z,y),...a),await(async()=>{if(!W(X,y)){for(x(X,y,1);!r((a=W(Z,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}x(X,y,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(m[o]=()=>c),g(m)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=V(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,p))[E]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,p,{[E]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,u)=>{const[f,m,T,v]=V(t,w,n),A=async(a,t)=>await d(j(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await T(e,s,c,n,i,t)}))),L=async(a,t)=>l?await T(y,p,{[E]:a},!0,!0,t):null;return aa(a,(async()=>await v((async()=>{await f();const a=await(async()=>C(h(await d(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>c?(await m(y,p))[E]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await f(),r(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",u],u)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=$();return _(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,F(t));r(o[0])||s(i,o[0])||x(n,i,o)})),n},ua="pragma ",da="data_version",Ea="schema_version",pa=(a,t,s,n,i,o,r,l)=>{let u,d,E;const[f,T,v,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],q(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,F(ya)),r=c[2],l=q(r);return[0,s,[wa(n,{[ca]:null,[oa]:p},ca,(a=>Y(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:p,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>Y(l,t)&&t==r)),c],l]})(t);return(f?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ua+da))[0][da],e=(await s(ua+Ea))[0][Ea],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(d??=e)&&n==(E??=n)||(a(),u=t,d=e)}catch{}},e=T,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=d=null,i(t)}),r,v,O(A),l)};a.createSqliteWasmPersister=(a,t,e,s,n,i)=>pa(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),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
+ 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=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),u=a=>a.length,E=async a=>o.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==u(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),S=Object,g=a=>S.getPrototypeOf(a),D=S.keys,C=S.freeze,b=(a=[])=>S.fromEntries(a),I=(...a)=>S.assign({},...a),F=(a,t)=>m(S.entries(a),(([a,e])=>t(e,a))),M=a=>S.values(a),P=a=>u(D(a)),$=a=>(a=>!r(a)&&l(g(a),(a=>a==S.prototype||r(g(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),W=(a,t,e)=>(O(a,t)||x(a,t,e()),H(a,t)),Y=(a,t,e,s=x)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),q=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>Y(n,b(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,Y(W(n,t,_),e,((a,t,e)=>{e!=H(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?b(L(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=k();F(i??{},(a=>m(D(a??{}),(a=>q(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void x(n,t);if(A(w)||O(n,t)){const s=H(n,t),i=k(B(s));await E([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),x(s,e,""))})),...!l&&o?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),x(n,t,_([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+U+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(B(H(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...m(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+p(t)+U+p(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",u(n))})`,u(o)/(u(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),o),V=a=>v(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,u,E,d=0,f=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));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(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(H(Z,y),...a),await(async()=>{if(!H(X,y)){for(x(X,y,1);!r((a=H(Z,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}x(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),C(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,f))[d]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,u)=>{const[p,T,v,m]=z(t,w,n),A=async(a,t)=>await E(j(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),h=async(a,t)=>l?await v(y,f,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await m((async()=>{await p();const a=await(async()=>b(L(await E(j(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,f))[d]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await p(),r(t)){const[t,e]=a();await A(t),await h(e)}else{const[a,e]=t();await A(a,!0),await h(e,!0)}}))),e,s,n,["getDb",u],u)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||x(n,i,o)})),n},ua="pragma ",Ea="data_version",da="schema_version",fa=(a,t,s,n,i,o,r,l)=>{let u,E,d;const[p,v,m,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=k(r);return[0,s,[wa(n,{[ca]:null,[oa]:f},ca,(a=>q(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>q(l,t)&&t==r)),c],l]})(t);return(p?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ua+Ea))[0][Ea],e=(await s(ua+da))[0][da],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(E??=e)&&n==(d??=n)||(a(),u=t,E=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=E=null,i(t)}),r,m,R(A),l)},pa="change";a.createSqlite3Persister=(a,t,e,s,n)=>fa(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(pa,e),e}),(a=>t.off(pa,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={});