tinybase 4.0.1 → 4.0.2

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 (43) 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-sqlite-wasm.cjs +1 -1
  4. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  6. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  7. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  12. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  13. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +177 -117
  14. package/lib/debug/persisters/persister-sqlite-wasm.js +172 -116
  15. package/lib/debug/persisters/persister-sqlite3.js +172 -117
  16. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  17. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  18. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  19. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  20. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  21. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  22. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  23. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  24. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  25. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  26. package/lib/persisters/persister-sqlite3.js +1 -1
  27. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  28. package/lib/types/persisters.d.ts +7 -0
  29. package/lib/types/with-schemas/persisters.d.ts +7 -0
  30. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  31. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  32. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  33. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  34. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  35. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  36. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  37. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  38. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  39. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  40. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  41. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  42. package/package.json +19 -19
  43. package/readme.md +1 -1
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=(e,n)=>e instanceof n,y=e=>null==e,f=(e,n,t)=>y(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,h=e=>{return n=function*(){return s.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},E=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),O=Object,A=O.keys,P=O.freeze,T=(e=[])=>O.fromEntries(e),w=(...e)=>O.assign({},...e),L=(e,n)=>(delete e[n],e),S=(e,n)=>o(O.entries(e),(([e,t])=>n(t,e))),N=e=>O.values(e),g=e=>i(A(e)),C=e=>(e=>v(e,O)&&e.constructor==O)(e)&&0==g(e),R=e=>new Map(e),x=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>y(t)?(b(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(S(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!y(((e,n)=>f(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),_="_id",F=e=>`"${e.replace(/"/g,'""')}"`,M=e=>new Set(Array.isArray(e)||y(e)?e:[e]),B=(e,n)=>null==e?void 0:e.add(n);var k=Object.defineProperty,H=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,W=(e,n,t)=>n in e?k(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Y=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&W(e,t,n[t]);if(H)for(var t of H(n))U.call(n,t)&&W(e,t,n[t]);return e},z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const K="SELECT*FROM",V="FROM pragma_table_",q="WHERE",G=(e,n)=>{const l=R(),d=(e,n)=>!y(I(I(l,e),n)),s=(n,d,s,v,y)=>z(void 0,null,(function*(){const f=M();S(null!=y?y:{},(e=>o(A(e),(e=>B(f,e)))));const p=E(f);if(u(p)&&m(l,n)&&v)return yield e("DROP TABLE"+F(n)),void D(l,n);if(u(p)||m(l,n)){const t=I(l,n),r=M(x(t));yield h([...o(p,(l=>z(void 0,null,(function*(){b(r,l)||(yield e(`ALTER TABLE${F(n)}ADD${F(l)}`),D(t,l,""))})))),...s?o(E(r),(l=>z(void 0,null,(function*(){l!=d&&(yield e(`ALTER TABLE${F(n)}DROP${F(l)}`),D(t,l))})))):[]])}else yield e(`CREATE TABLE${F(n)}(${F(d)} PRIMARY KEY ON CONFLICT REPLACE${r(o(p,(e=>t+F(e))))});`),D(l,n,R([[d,""],...o(p,(e=>[e,""]))]));if(u(p))m(l,n)&&(yield e("DELETE FROM"+F(n)));else{const u=[],s=[],v=[],f=a(x(I(l,n)),(e=>e!=d));S(y,((e,n)=>{var t;c(u,`(?${t=i(f),",?".repeat(t)})`),c(s,n,...o(f,(n=>e[n]))),c(v,n)})),yield e("INSERT INTO"+F(n)+"("+F(d)+r(o(f,(e=>t+F(e))))+")VALUES"+r(u,t)+"ON CONFLICT("+F(d)+")DO UPDATE SET"+r(o(f,(e=>F(e)+"=excluded."+F(e))),t),s),yield e("DELETE FROM"+F(n)+q+F(d)+"NOT IN("+Q(v)+")",v)}}));return[()=>z(void 0,null,(function*(){return $(l,T(yield h(o(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+Q(n)+")",n),(n=>z(void 0,[n],(function*({name:n}){return[n,T(o(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return D(l,n,$((i=R,m(r=l,o=n)||D(r,o,i()),I(r,o)),t,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,n)=>D(l,n)))})),(n,t)=>z(void 0,null,(function*(){const l=d(n,t)?yield e(K+F(n)+q+F(t)+"=?",["_"]):[];return u(l)?null:L(l[0],t)})),(e,n,t,l)=>z(void 0,null,(function*(){return yield s(e,n,!0,!0,{[t]:l})})),(n,t)=>z(void 0,null,(function*(){return d(n,t)?T(a(o(yield e(K+F(n)),(e=>[e[t],L(Y({},e),t)])),(([e,n])=>!y(e)&&!C(n)))):{}})),s]},Q=e=>r(o(e,(()=>"?")),t),X=JSON.parse;var Z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ee=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],p=e=>Z(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>Z(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(t,l)=>Z(void 0,null,(function*(){return yield p((()=>Z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>Z(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),s=1,u=l(((t,l)=>Z(void 0,null,(function*(){return yield p((()=>Z(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),h),save:n=>Z(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>Z(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),h})),startAutoSave:()=>Z(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();C(t)&&C(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(f(o,e.delListener),h),schedule:(...e)=>Z(void 0,null,(function*(){return c(v,...e),yield Z(void 0,null,(function*(){if(!d){for(d=1;!y((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(h)};var ne=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const te="store",le=(e,n,t,l,[r],o)=>{const[i,u,a]=G(n,o),d=ee(e,(()=>ne(void 0,null,(function*(){var e;return yield i(),X((null!=(e=yield u(r,_))?e:{})[te])}))),(e=>ne(void 0,null,(function*(){return d.schedule(i,(()=>ne(void 0,null,(function*(){var n;yield a(r,_,"_",{[te]:(n=e(),JSON.stringify(n,((e,n)=>v(n,Map)?O.fromEntries([...n]):n)))})}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const oe=(e,n,t,l,[r,o,[i,u,d]],c)=>{const[s,v,f,p,m]=G(n,c);return ee(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return T(a(yield h(j(r,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!C(e[1]))))})),n=yield re(void 0,null,(function*(){return i?yield v(d,_):{}}));return C(e)&&y(n)?void 0:[e,n]}))),(e=>re(void 0,null,(function*(){const[n,t]=e();yield s(),yield(e=>re(void 0,null,(function*(){return yield h(j(o,((n,t)=>re(void 0,[n,t],(function*([n,t,l,r],o){return yield m(n,t,l,r,e[o])})))))})))(n),yield(e=>re(void 0,null,(function*(){return u?yield f(d,_,"_",e):null})))(t)}))),t,l)},ie="json",ue="autoLoadIntervalSeconds",ae="rowIdColumnName",de="tableId",ce="tableName",se={mode:ie,[ue]:1},ve={load:0,save:0,[ce]:n+"_values"},ye=(e,n,t,l)=>{const r=R();return S(e,((e,o)=>{const i=d(N(w(n,p(e)?{[t]:e}:e)),0,g(n));y(i[0])||l(o,i[0])||D(r,o,i)})),r},fe="pragma ",pe="data_version",he="schema_version",me=(e,t,l,r,o)=>{let i,u;const[a,c,s,v]=(e=>{const t=(e=>w(se,p(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ue];if(t.mode==ie){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=t,u=d(N(w(ve,i)),0,g(ve)),a=u[2],c=M(a);return[0,l,[ye(r,{[de]:null,[ae]:_},de,(e=>B(c,e)&&e==a)),ye(o,{[ce]:null,[ae]:_,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>B(c,n)&&n==a)),u],c]})(t);return(a?le:oe)(e,l,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield l(fe+pe))[0][pe],t=(yield l(fe+he))[0][he];n==(null!=i?i:i=n)&&t==(null!=u?u:u=t)||(e(),i=n,u=t)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n}),1e3*c),r((n=>v.has(n)?e():0))]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),s,E(v))};var Ee=Object.defineProperty,be=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,Pe=(e,n,t)=>n in e?Ee(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Te="change",we=(e,n,t)=>me(e,t,((e,t=[])=>new s(((l,r)=>n.all(e,t,((e,n)=>e?r(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))Oe.call(n,t)&&Pe(e,t,n[t]);if(be)for(var t of be(n))Ae.call(n,t)&&Pe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=(n,t,l)=>e(l);return n.on(Te,t),t}),(e=>n.off(Te,e)));export{we as createSqlite3Persister};
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,p=(e,n,t)=>f(e)?null==t?void 0:t():n(e),E=n=>e(n)==l,h=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},O=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),T=Object,A=T.keys,L=T.freeze,P=(e=[])=>T.fromEntries(e),w=(...e)=>T.assign({},...e),R=(e,n)=>i(T.entries(e),(([e,t])=>n(t,e))),S=e=>T.values(e),g=e=>u(A(e)),N=e=>(e=>y(e,T)&&e.constructor==T)(e)&&0==g(e),C=e=>new Map(e),x=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),D=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},j=(e,n,t)=>f(t)?(b(e,n),e):null==e?void 0:e.set(n,t),F=(e,n,t,l=j)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>p(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M=e=>new Set(Array.isArray(e)||f(e)?e:[e]),$=(e,n)=>null==e?void 0:e.add(n),_="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var W=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,z=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&Y(e,t,n[t]);if(k)for(var t of k(n))U.call(n,t)&&Y(e,t,n[t]);return e},K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="FROM pragma_table_",q="WHERE",G=(e,n)=>{const l=C();return[()=>K(void 0,null,(function*(){return F(l,P(yield h(i(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>K(void 0,[n],(function*({name:n}){return[n,P(i(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return j(l,n,F((i=C,m(o=l,r=n)||j(o,r,i()),I(o,r)),t,((e,n,t)=>{t!=I(e,n)&&j(e,n,t)}),((e,n)=>j(e,n))));var o,r,i}),((e,n)=>j(l,n)))})),(n,t)=>K(void 0,null,(function*(){return((e,n)=>!f(I(I(l,e),n)))(n,t)?P(d(i(yield e("SELECT*FROM"+H(n)),(e=>{return[e[t],(n=z({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!N(n)))):{}})),(n,o,u,c,v,y=!1)=>K(void 0,null,(function*(){const p=M();R(null!=u?u:{},(e=>i(A(null!=e?e:{}),(e=>$(p,e)))));const E=O(p);if(!y&&v&&a(E)&&m(l,n))return yield e("DROP TABLE"+H(n)),void j(l,n);if(a(E)||m(l,n)){const t=I(l,n),r=M(x(t));yield h([...i(E,(l=>K(void 0,null,(function*(){b(r,l)||(yield e(`ALTER TABLE${H(n)}ADD${H(l)}`),j(t,l,""))})))),...!y&&c?i(O(r),(l=>K(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(l)}`),j(t,l))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>t+H(e))))});`),j(l,n,C([[o,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield h(R(u,((t,l)=>K(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+H(n)+q+H(o)+"=?",[l]):a(E)||(yield Q(e,n,o,A(t),[l,...S(t)]))})))));else if(a(E))m(l,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const t=d(x(I(l,n)),(e=>e!=o)),r=[],a=[];R(null!=u?u:{},((e,n)=>{s(r,n,...i(t,(n=>null==e?void 0:e[n]))),s(a,n)})),yield Q(e,n,o,t,r),yield e("DELETE FROM"+H(n)+q+H(o)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(l)+r(i(a,(e=>t+H(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+H(l)+")DO UPDATE SET"+r(i(a,(e=>H(e)+"=excluded."+H(e))),t),d)})),X=e=>r(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,c=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield E.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),E})),E={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),c=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),E})),stopAutoLoad:()=>(c&&(o(u),u=void 0,c=0),E),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield E.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),E})),startAutoSave:()=>ee(void 0,null,(function*(){return yield E.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(p(r,e.delListener),E),schedule:(...e)=>ee(void 0,null,(function*(){return s(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(E)};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le="store",oe=(e,n,t,l,[o],r)=>{const[i,u,a]=G(n,r),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(o,B))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(o,B,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?T.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[o,r,[i,u,a]],c)=>{const[s,v,y]=G(n,c),p=(e,n)=>re(void 0,null,(function*(){return yield h(D(r,((t,l)=>re(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),E=(e,n)=>re(void 0,null,(function*(){return u?yield y(a,B,{[_]:e},!0,!0,n):null}));return ne(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return P(d(yield h(D(o,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!N(e[1]))))})),n=yield re(void 0,null,(function*(){return i?(yield v(a,B))[_]:{}}));return N(e)&&f(n)?void 0:[e,n]}))),((e,n)=>re(void 0,null,(function*(){if(yield s(),f(n)){const[n,t]=e();yield p(n),yield E(t)}else{const[e,t]=n();yield p(e,!0),yield E(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",ce="tableId",se="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[se]:n+"_values"},fe=(e,n,t,l)=>{const o=C();return R(e,((e,r)=>{const i=c(S(w(n,E(e)?{[t]:e}:e)),0,g(n));f(i[0])||l(r,i[0])||j(o,r,i)})),o};var pe=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",he="data_version",me="schema_version",Oe=(e,t,l,o,r,i)=>{let u,a;const[d,s,v,y]=(e=>{const t=(e=>w(ve,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=c(S(w(ye,i)),0,g(ye)),a=u[2],d=M(a);return[0,l,[fe(o,{[ce]:null,[de]:B},ce,(e=>$(d,e)&&e==a)),fe(r,{[se]:null,[de]:B,deleteEmptyColumns:0,deleteEmptyTable:0},se,((e,n)=>$(d,n)&&n==a)),u],d]})(t);return(d?oe:ie)(e,i?(e,n)=>pe(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>pe(void 0,null,(function*(){try{const n=(yield l(Ee+he))[0][he],t=(yield l(Ee+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,O(y))};var be=Object.defineProperty,Te=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Pe=(e,n,t)=>n in e?be(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const we="change",Re=(e,n,t,l)=>Oe(e,t,((e,t=[])=>new v(((l,o)=>n.all(e,t,((e,n)=>e?o(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))Ae.call(n,t)&&Pe(e,t,n[t]);if(Te)for(var t of Te(n))Le.call(n,t)&&Pe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=(n,t,l)=>e(l);return n.on(we,t),t}),(e=>n.off(we,e)),l);export{Re as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,m=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),O=(...a)=>L.assign({},...a),C=(a,t)=>(delete a[t],a),S=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),I=a=>i(h(a)),g=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==I(a),D=a=>new Map(a),b=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||d(a)?a:[a]),x=(a,t)=>a?.add(t),U="SELECT*FROM",k="FROM pragma_table_",H="WHERE",J=(a,t)=>{const s=D(),l=(a,t)=>!d($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=j();S(d??{},(a=>c(h(a),(a=>x(E,a)))));const v=T(E);if(o(v)&&A(s,t)&&u)return await a("DROP TABLE"+B(t)),void F(s,t);if(o(v)||A(s,t)){const e=$(s,t),n=j(b(e));await m([...c(v,(async s=>{p(n,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(v,(a=>e+B(a))))});`),F(s,t,D([[l,""],...c(v,(a=>[a,""]))]));if(o(v))A(s,t)&&await a("DELETE FROM"+B(t));else{const o=[],w=[],u=[],E=r(b($(s,t)),(a=>a!=l));S(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+B(t)+"("+B(l)+n(c(E,(a=>e+B(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+n(c(E,(a=>B(a)+"=excluded."+B(a))),e),w),await a("DELETE FROM"+B(t)+H+B(l)+"NOT IN("+W(u)+")",u)}};return[async()=>M(s,N(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+W(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,M((i=D,A(n=s,c=t)||F(n,c,i()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,i}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(U+B(t)+H+B(e)+"=?",["_"]):[];return o(s)?null:C(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(c(await a(U+B(t)),(a=>[a[e],C({...a},e)])),(([a,t])=>!d(a)&&!g(t)))):{},w]},W=a=>n(c(a,(()=>"?")),e),Y=JSON.parse,z=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],v=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>await v((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(E(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},K="store",V=(a,t,e,s,[n],c)=>{const[i,o,r]=J(t,c),l=z(a,(async()=>(await i(),Y((await o(n,P)??{})[K]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},q=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,v,A]=J(t,y);return z(a,(async()=>{await w();const a=await(async()=>N(r(await m(_(n,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return g(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await m(_(c,(async([t,e,s,n],c)=>await A(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=D();return S(a,((a,c)=>{const i=l(R(O(t,v(a)?{[e]:a}:a)),0,I(t));d(i[0])||s(c,i[0])||F(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>O(ta,v(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(O(ea,i)),0,I(ea)),r=o[2],y=j(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>x(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(r?V:q)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,T(u))},ra=(a,t,e)=>oa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()));export{ra as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,O=f.freeze,R=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),D=a=>o(h(a)),g=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==D(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",U="WHERE",k=(a,t)=>{const s=I();return[async()=>_(s,R(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,R(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?R(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!g(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+U+j(n)+"=?",[s]):r(T)||await J(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+j(t)+U+j(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=k(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=k(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>R(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return g(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,D(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la=(a,t,e,s)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s);export{la as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,i=a=>0==c(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>w.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),C=(...a)=>L.assign({},...a),O=(a,t)=>(delete a[t],a),R=(a,t)=>o(L.entries(a),(([a,e])=>t(e,a))),S=a=>L.values(a),_=a=>c(h(a)),b=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==_(a),I=a=>new Map(a),g=a=>[...a?.keys()??[]],D=(a,t)=>a?.get(t),$=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>d(e)?(T(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),x="SELECT*FROM",q="FROM pragma_table_",H="WHERE",J=(a,t)=>{const s=I(),l=(a,t)=>!d(D(D(s,a),t)),w=async(t,l,w,u,d)=>{const E=k();R(d??{},(a=>o(h(a),(a=>B(E,a)))));const p=A(E);if(i(p)&&v(s,t)&&u)return await a("DROP TABLE"+j(t)),void M(s,t);if(i(p)||v(s,t)){const e=D(s,t),n=k(g(e));await m([...o(p,(async s=>{T(n,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),M(e,s,""))})),...w?o(A(n),(async s=>{s!=l&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),M(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(l)} PRIMARY KEY ON CONFLICT REPLACE${n(o(p,(a=>e+j(a))))});`),M(s,t,I([[l,""],...o(p,(a=>[a,""]))]));if(i(p))v(s,t)&&await a("DELETE FROM"+j(t));else{const i=[],w=[],u=[],E=r(g(D(s,t)),(a=>a!=l));R(d,((a,t)=>{var e;y(i,`(?${e=c(E),",?".repeat(e)})`),y(w,t,...o(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+j(t)+"("+j(l)+n(o(E,(a=>e+j(a))))+")VALUES"+n(i,e)+"ON CONFLICT("+j(l)+")DO UPDATE SET"+n(o(E,(a=>j(a)+"=excluded."+j(a))),e),w),await a("DELETE FROM"+j(t)+H+j(l)+"NOT IN("+U(u)+")",u)}};return[async()=>F(s,N(await m(o(await a("SELECT name "+q+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,N(o(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return M(s,t,F((c=I,v(n=s,o=t)||M(n,o,c()),D(n,o)),e,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,o,c}),((a,t)=>M(s,t))),async(t,e)=>{const s=l(t,e)?await a(x+j(t)+H+j(e)+"=?",["_"]):[];return i(s)?null:O(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(o(await a(x+j(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!d(a)&&!b(t)))):{},w]},U=a=>n(o(a,(()=>"?")),e),V=JSON.parse,W=(a,t,e,s,n)=>{let o,c,i,r=0,l=0,w=0;const u=[],p=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,i=s((async(e,s)=>await p((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(i),i=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(E(o,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},Y="store",z=(a,t,e,s,[n],o)=>{const[c,i,r]=J(t,o),l=W(a,(async()=>(await c(),V((await i(n,P)??{})[Y]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},K=(a,t,e,s,[n,o,[c,i,l]],y)=>{const[w,u,E,p,v]=J(t,y);return W(a,(async()=>{await w();const a=await(async()=>N(r(await m($(n,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>c?await u(l,P):{})();return b(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await m($(o,(async([t,e,s,n],o)=>await v(t,e,s,n,a[o])))))(t),await(async a=>i?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=I();return R(a,((a,o)=>{const c=l(S(C(t,p(a)?{[e]:a}:a)),0,_(t));d(c[0])||s(o,c[0])||M(n,o,c)})),n},na="pragma ",oa="data_version",ca="schema_version",ia=(a,e,s,n,o)=>{let c,i;const[r,y,w,u]=(a=>{const e=(a=>C(ta,p(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:o={}}={},values:c={}}=e,i=l(S(C(ea,c)),0,_(ea)),r=i[2],y=k(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>B(y,a)&&a==r)),sa(o,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>B(y,t)&&t==r)),i],y]})(e);return(r?z:K)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+oa))[0][oa],e=(await s(na+ca))[0][ca];t==(c??=t)&&e==(i??=e)||(a(),c=t,i=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=i=null,o(t)}),w,A(u))},ra=(a,t,e,s)=>ia(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)));export{ra as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,T=async a=>E.all(a),m=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,f=h.freeze,O=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),b=a=>c(R(a)),D=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),I=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e,s=F)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",B="_id",H=a=>`"${a.replace(/"/g,'""')}"`,W="FROM pragma_table_",x="WHERE",q=(a,t)=>{const s=g();return[async()=>$(s,O(await T(o(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,O(o(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,$((o=g,m(n=s,i=t)||F(n,i,o()),_(n,i)),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(s,t))),async(t,e)=>((a,t)=>!d(_(_(s,a),t)))(t,e)?O(l(o(await a("SELECT*FROM"+H(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,c,w,E,u=!1)=>{const p=P();C(c??{},(a=>o(R(a??{}),(a=>j(p,a)))));const v=A(p);if(!u&&E&&r(v)&&m(s,t))return await a("DROP TABLE"+H(t)),void F(s,t);if(r(v)||m(s,t)){const e=_(s,t),i=P(I(e));await T([...o(v,(async s=>{L(i,s)||(await a(`ALTER TABLE${H(t)}ADD${H(s)}`),F(e,s,""))})),...!u&&w?o(A(i),(async s=>{s!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(v,(a=>e+H(a))))});`),F(s,t,g([[n,""],...o(v,(a=>[a,""]))]));if(u)d(c)?await a("DELETE FROM"+H(t)+"WHERE 1"):await T(C(c,(async(e,s)=>{d(e)?await a("DELETE FROM"+H(t)+x+H(n)+"=?",[s]):r(v)||await J(a,t,n,R(e),[s,...S(e)])})));else if(r(v))m(s,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const e=l(I(_(s,t)),(a=>a!=n)),i=[],r=[];C(c??{},((a,t)=>{y(i,t,...o(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+H(t)+x+H(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+H(t)+"("+H(s)+i(o(r,(a=>e+H(a))))+")VALUES"+n(`,(?${n(",?",c(r))})`,c(l)/(c(r)+1)).substring(1)+"ON CONFLICT("+H(s)+")DO UPDATE SET"+i(o(r,(a=>H(a)+"=excluded."+H(a))),e),l),U=a=>i(o(a,(()=>"?")),e),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(c),c=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(p(i,a.delListener),v),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,o=a.shift()));)try{await o()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=Y(a,(async()=>(await o(),V((await c(n,B))[k]?.[z]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[k]:{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],w)=>{const[y,E,u]=q(t,w),p=async(a,t)=>await T(M(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),v=async(a,t)=>c?await u(r,B,{[k]:a},!0,!0,t):null;return Y(a,(async()=>{await y();const a=await(async()=>O(l(await T(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await E(r,B))[k]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await p(t),await v(e)}else{const[a,e]=t();await p(a,!0),await v(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=g();return C(a,((a,i)=>{const o=w(S(N(t,v(a)?{[e]:a}:a)),0,b(t));d(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,e,s,n,i,o)=>{let c,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,v(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,c=w(S(N(sa,o)),0,b(sa)),r=c[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:B},aa,(a=>j(l,a)&&a==r)),na(i,{[ta]:null,[Z]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>j(l,t)&&t==r)),c],l]})(e);return(l?K:G)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),E,A(u))},la=(a,t,e,s,n)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n);export{la as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,i=a=>0==o(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),C=(...a)=>L.assign({},...a),O=(a,t)=>(delete a[t],a),S=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),g=a=>o(h(a)),I=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==g(a),D=a=>new Map(a),b=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||d(a)?a:[a]),k=(a,t)=>a?.add(t),x="SELECT*FROM",H="FROM pragma_table_",J="WHERE",U=(a,t)=>{const s=D(),l=(a,t)=>!d($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=j();S(d??{},(a=>c(h(a),(a=>k(E,a)))));const m=T(E);if(i(m)&&A(s,t)&&u)return await a("DROP TABLE"+B(t)),void F(s,t);if(i(m)||A(s,t)){const e=$(s,t),n=j(b(e));await v([...c(m,(async s=>{p(n,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(m,(a=>e+B(a))))});`),F(s,t,D([[l,""],...c(m,(a=>[a,""]))]));if(i(m))A(s,t)&&await a("DELETE FROM"+B(t));else{const i=[],w=[],u=[],E=r(b($(s,t)),(a=>a!=l));S(d,((a,t)=>{var e;y(i,`(?${e=o(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+B(t)+"("+B(l)+n(c(E,(a=>e+B(a))))+")VALUES"+n(i,e)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+n(c(E,(a=>B(a)+"=excluded."+B(a))),e),w),await a("DELETE FROM"+B(t)+J+B(l)+"NOT IN("+W(u)+")",u)}};return[async()=>M(s,N(await v(c(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+W(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,M((o=D,A(n=s,c=t)||F(n,c,o()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,o}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(x+B(t)+J+B(e)+"=?",["_"]):[];return i(s)?null:O(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(c(await a(x+B(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!d(a)&&!I(t)))):{},w]},W=a=>n(c(a,(()=>"?")),e),Y=JSON.parse,z=(a,t,e,s,n)=>{let c,o,i,r=0,l=0,w=0;const u=[],m=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,i=s((async(e,s)=>await m((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(i),i=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(E(c,a.delListener),v),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,o=a.shift()));)try{await o()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},K="store",V=(a,t,e,s,[n],c)=>{const[o,i,r]=U(t,c),l=z(a,(async()=>(await o(),Y((await i(n,P)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,P,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},q=(a,t,e,s,[n,c,[o,i,l]],y)=>{const[w,u,E,m,A]=U(t,y);return z(a,(async()=>{await w();const a=await(async()=>N(r(await v(_(n,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?await u(l,P):{})();return I(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await v(_(c,(async([t,e,s,n],c)=>await A(t,e,s,n,a[c])))))(t),await(async a=>i?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=D();return S(a,((a,c)=>{const o=l(R(C(t,m(a)?{[e]:a}:a)),0,g(t));d(o[0])||s(c,o[0])||F(n,c,o)})),n},na="pragma ",ca="data_version",oa="schema_version",ia=(a,e,s,n,c)=>{let o,i;const[r,y,w,u]=(a=>{const e=(a=>C(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:c={}}={},values:o={}}=e,i=l(R(C(ea,o)),0,g(ea)),r=i[2],y=j(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>k(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>k(y,t)&&t==r)),i],y]})(e);return(r?V:q)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+oa))[0][oa];t==(o??=t)&&e==(i??=e)||(a(),o=t,i=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=i=null,c(t)}),w,T(u))},ra="change",la=(a,t,e)=>ia(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(ra,e),e}),(a=>t.off(ra,a)));export{la as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,R=f.freeze,O=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),g=a=>o(h(a)),D=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==g(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",x="WHERE",J=(a,t)=>{const s=I();return[async()=>_(s,O(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+x+j(n)+"=?",[s]):r(T)||await U(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await U(a,t,n,e,i),await a("DELETE FROM"+j(t)+x+j(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=J(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=J(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>O(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,g(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,g(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la="change",wa=(a,t,e,s)=>ra(a,e,((a,e=[])=>new E(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)),s);export{wa as createSqlite3Persister};
@@ -392,6 +392,13 @@ export type DpcTabularLoad = {
392
392
  * enable the `deleteEmptyColumns` or `deleteEmptyTable` settings, you can
393
393
  * simply provide the name of the database table instead of the whole object.
394
394
  *
395
+ * `deleteEmptyColumns` and `deleteEmptyTable` only have a guaranteed effect
396
+ * when an explicit call is made to the Persister's save method. Columns and
397
+ * tables will not necessarily be removed when the Persister is incrementally
398
+ * 'autoSaving', due to performance reasons. If you want to be sure that your
399
+ * database table matches a TinyBase Table without any extraneous columns,
400
+ * simply call the save method at an idle moment.
401
+ *
395
402
  * The 'Dpc' prefix indicates that this type is used within the
396
403
  * DatabasePersisterConfig type.
397
404
  * @example
@@ -416,6 +416,13 @@ export type DpcTabularLoad<Schema extends OptionalTablesSchema> = {
416
416
  * enable the `deleteEmptyColumns` or `deleteEmptyTable` settings, you can
417
417
  * simply provide the name of the database table instead of the whole object.
418
418
  *
419
+ * `deleteEmptyColumns` and `deleteEmptyTable` only have a guaranteed effect
420
+ * when an explicit call is made to the Persister's save method. Columns and
421
+ * tables will not necessarily be removed when the Persister is incrementally
422
+ * 'autoSaving', due to performance reasons. If you want to be sure that your
423
+ * database table matches a TinyBase Table without any extraneous columns,
424
+ * simply call the save method at an idle moment.
425
+ *
419
426
  * The 'Dpc' prefix indicates that this type is used within the
420
427
  * DatabasePersisterConfig type.
421
428
  * @example
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),w=(a,...t)=>a.push(...t),d=Promise,u=(a,t)=>a instanceof t,E=a=>null==a,f=(a,t,e)=>E(a)?e?.():t(a),p=a=>t(a)==n,m=async a=>d.all(a),T=(a,t)=>a?.has(t)??!1,v=a=>[...a?.values()??[]],A=(a,t)=>a?.delete(t),h=Object,L=h.keys,C=h.freeze,S=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),O=(a,t)=>(delete a[t],a),R=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),b=a=>h.values(a),g=a=>c(L(a)),I=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==g(a),D=a=>new Map(a),$=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),P=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>E(e)?(A(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||E(a)?a:[a]),W=(a,t)=>a?.add(t),U="SELECT*FROM",k="FROM pragma_table_",q="WHERE",H=(a,t)=>{const e=D(),n=(a,t)=>!E(_(_(e,a),t)),y=async(t,n,y,d,u)=>{const E=j();R(u??{},(a=>o(L(a),(a=>W(E,a)))));const f=v(E);if(r(f)&&T(e,t)&&d)return await a("DROP TABLE"+B(t)),void F(e,t);if(r(f)||T(e,t)){const s=_(e,t),i=j($(s));await m([...o(f,(async e=>{A(i,e)||(await a(`ALTER TABLE${B(t)}ADD${B(e)}`),F(s,e,""))})),...y?o(v(i),(async e=>{e!=n&&(await a(`ALTER TABLE${B(t)}DROP${B(e)}`),F(s,e))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(f,(a=>s+B(a))))});`),F(e,t,D([[n,""],...o(f,(a=>[a,""]))]));if(r(f))T(e,t)&&await a("DELETE FROM"+B(t));else{const r=[],y=[],d=[],E=l($(_(e,t)),(a=>a!=n));R(u,((a,t)=>{var e;w(r,`(?${e=c(E),",?".repeat(e)})`),w(y,t,...o(E,(t=>a[t]))),w(d,t)})),await a("INSERT INTO"+B(t)+"("+B(n)+i(o(E,(a=>s+B(a))))+")VALUES"+i(r,s)+"ON CONFLICT("+B(n)+")DO UPDATE SET"+i(o(E,(a=>B(a)+"=excluded."+B(a))),s),y),await a("DELETE FROM"+B(t)+q+B(n)+"NOT IN("+J(d)+")",d)}};return[async()=>M(e,S(await m(o(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+J(t)+")",t),(async({name:t})=>[t,S(o(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return F(e,t,M((o=D,T(n=e,i=t)||F(n,i,o()),_(n,i)),s,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(e,t))),async(t,e)=>{const s=n(t,e)?await a(U+B(t)+q+B(e)+"=?",["_"]):[];return r(s)?null:O(s[0],e)},async(a,t,e,s)=>await y(a,t,!0,!0,{[e]:s}),async(t,e)=>n(t,e)?S(l(o(await a(U+B(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!E(a)&&!I(t)))):{},y]},J=a=>i(o(a,(()=>"?")),s),Y=JSON.parse,z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const d=[],u=async a=>(2!=r&&(r=1,await p.schedule((async()=>{await a(),r=0}))),p),p={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),y=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),p),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),p),save:async t=>(1!=r&&(r=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(f(i,a.delListener),p),schedule:async(...a)=>(w(d,...a),await(async()=>{if(!l){for(l=1;!E((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return C(p)},K="store",V=(a,t,e,s,[n],i)=>{const[o,c,r]=H(t,i),l=z(a,(async()=>(await o(),Y((await c(n,x)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,x,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))})}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],y)=>{const[w,d,u,f,p]=H(t,y);return z(a,(async()=>{await w();const a=await(async()=>S(l(await m(P(n,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?await d(r,x):{})();return I(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await m(P(i,(async([t,e,s,n],i)=>await p(t,e,s,n,a[i])))))(t),await(async a=>c?await u(r,x,"_",a):null)(e)}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:e+"_values"},na=(a,t,e,s)=>{const n=D();return R(a,((a,i)=>{const o=y(b(N(t,p(a)?{[e]:a}:a)),0,g(t));E(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,t,s,n,i)=>{let o,c;const[r,l,w,d]=(a=>{const t=(a=>N(ea,p(a)?{storeTableName:a}:a??{}))(a),s=t[X];if(t.mode==Q){const{storeTableName:a=e}=t;return[1,s,[a],j(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=y(b(N(sa,o)),0,g(sa)),r=c[2],l=j(r);return[0,s,[na(n,{[aa]:null,[Z]:x},aa,(a=>W(l,a)&&a==r)),na(i,{[ta]:null,[Z]:x,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>W(l,t)&&t==r)),c],l]})(t);return(r?V:G)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(o??=t)&&e==(c??=e)||(a(),o=t,c=e)}catch{}}),1e3*l),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=c=null,i(t)}),w,v(d))};a.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),d=(a,...t)=>a.push(...t),u=Promise,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),T=a=>t(a)==n,m=async a=>u.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,O=h.keys,R=h.freeze,C=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),N=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),b=a=>h.values(a),g=a=>r(O(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==g(a),I=a=>new Map(a),F=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(L(a,t),a):a?.set(t,e),_=(a,t,e,s=P)=>(N(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x=(a,t)=>a?.add(t),B="_",j="_id",H=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",k="WHERE",q=(a,t)=>{const e=I();return[async()=>_(e,C(await m(c(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,_((o=I,v(n=e,i=t)||P(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,s)=>((a,t)=>!f(M(M(e,a),t)))(t,s)?C(y(c(await a("SELECT*FROM"+H(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!f(a)&&!D(t)))):{},async(t,n,i,r,w,u=!1)=>{const E=W();N(i??{},(a=>c(O(a??{}),(a=>x(E,a)))));const p=A(E);if(!u&&w&&l(p)&&v(e,t))return await a("DROP TABLE"+H(t)),void P(e,t);if(l(p)||v(e,t)){const s=M(e,t),i=W(F(s));await m([...c(p,(async e=>{L(i,e)||(await a(`ALTER TABLE${H(t)}ADD${H(e)}`),P(s,e,""))})),...!u&&r?c(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(p,(a=>s+H(a))))});`),P(e,t,I([[n,""],...c(p,(a=>[a,""]))]));if(u)f(i)?await a("DELETE FROM"+H(t)+"WHERE 1"):await m(N(i,(async(e,s)=>{f(e)?await a("DELETE FROM"+H(t)+k+H(n)+"=?",[s]):l(p)||await J(a,t,n,O(e),[s,...b(e)])})));else if(l(p))v(e,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const s=y(F(M(e,t)),(a=>a!=n)),o=[],r=[];N(i??{},((a,t)=>{d(o,t,...c(s,(t=>a?.[t]))),d(r,t)})),await J(a,t,n,s,o),await a("DELETE FROM"+H(t)+k+H(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,e,n,l)=>await a("INSERT INTO"+H(t)+"("+H(e)+o(c(n,(a=>s+H(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+H(e)+")DO UPDATE SET"+o(c(n,(a=>H(a)+"=excluded."+H(a))),s),l),Y=a=>o(c(a,(()=>"?")),s),z=JSON.parse,K=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],u=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(d(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(E)},V="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=K(a,(async()=>(await o(),z((await c(n,j))[B]?.[V]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,j,{[B]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,d,u]=q(t,l),E=async(a,t)=>await m($(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),p=async(a,t)=>c?await u(r,j,{[B]:a},!0,!0,t):null;return K(a,(async()=>{await w();const a=await(async()=>C(y(await m($(n,(async([a,t],e)=>[a,await d(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await d(r,j))[B]:{})();return D(a)&&f(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),f(t)){const[t,e]=a();await E(t),await p(e)}else{const[a,e]=t();await E(a,!0),await p(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return N(a,((a,i)=>{const o=w(b(S(t,T(a)?{[e]:a}:a)),0,g(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,d,u]=(a=>{const t=(a=>S(sa,T(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(b(S(na,o)),0,g(na)),r=c[2],l=W(r);return[0,s,[ia(n,{[ta]:null,[aa]:j},ta,(a=>x(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:j,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>x(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),d,A(u))};a.createCrSqliteWasmPersister=(a,t,e,s)=>la(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s)},"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.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=(a,t)=>a instanceof t,E=a=>null==a,p=(a,t,e)=>E(a)?e?.():t(a),f=a=>t(a)==n,m=async a=>d.all(a),T=(a,t)=>a?.has(t)??!1,v=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),A=Object,L=A.keys,S=A.freeze,N=(a=[])=>A.fromEntries(a),C=(...a)=>A.assign({},...a),O=(a,t)=>(delete a[t],a),R=(a,t)=>o(A.entries(a),(([a,e])=>t(e,a))),b=a=>A.values(a),g=a=>c(L(a)),_=a=>(a=>w(a,A)&&a.constructor==A)(a)&&0==g(a),I=a=>new Map(a),D=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>E(e)?(h(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",x=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),k=(a,t)=>a?.add(t),q="SELECT*FROM",W="FROM pragma_table_",H="WHERE",J=(a,t)=>{const e=I(),n=(a,t)=>!E($($(e,a),t)),y=async(t,n,y,d,w)=>{const E=B();R(w??{},(a=>o(L(a),(a=>k(E,a)))));const p=v(E);if(r(p)&&T(e,t)&&d)return await a("DROP TABLE"+x(t)),void P(e,t);if(r(p)||T(e,t)){const s=$(e,t),i=B(D(s));await m([...o(p,(async e=>{h(i,e)||(await a(`ALTER TABLE${x(t)}ADD${x(e)}`),P(s,e,""))})),...y?o(v(i),(async e=>{e!=n&&(await a(`ALTER TABLE${x(t)}DROP${x(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${x(t)}(${x(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+x(a))))});`),P(e,t,I([[n,""],...o(p,(a=>[a,""]))]));if(r(p))T(e,t)&&await a("DELETE FROM"+x(t));else{const r=[],y=[],d=[],E=l(D($(e,t)),(a=>a!=n));R(w,((a,t)=>{var e;u(r,`(?${e=c(E),",?".repeat(e)})`),u(y,t,...o(E,(t=>a[t]))),u(d,t)})),await a("INSERT INTO"+x(t)+"("+x(n)+i(o(E,(a=>s+x(a))))+")VALUES"+i(r,s)+"ON CONFLICT("+x(n)+")DO UPDATE SET"+i(o(E,(a=>x(a)+"=excluded."+x(a))),s),y),await a("DELETE FROM"+x(t)+H+x(n)+"NOT IN("+U(d)+")",d)}};return[async()=>F(e,N(await m(o(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,N(o(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,F((o=I,T(n=e,i=t)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,e)=>{const s=n(t,e)?await a(q+x(t)+H+x(e)+"=?",["_"]):[];return r(s)?null:O(s[0],e)},async(a,t,e,s)=>await y(a,t,!0,!0,{[e]:s}),async(t,e)=>n(t,e)?N(l(o(await a(q+x(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!E(a)&&!_(t)))):{},y]},U=a=>i(o(a,(()=>"?")),s),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const d=[],w=async a=>(2!=r&&(r=1,await f.schedule((async()=>{await a(),r=0}))),f),f={load:async(e,s)=>await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(f.stopAutoLoad(),await f.load(e,n),y=1,c=s((async(e,s)=>await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),f),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),f),save:async t=>(1!=r&&(r=2,await f.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),f),startAutoSave:async()=>(await f.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||f.save((()=>[e,s]))})),f),stopAutoSave:()=>(p(i,a.delListener),f),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!E((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),f),getStore:()=>a,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return S(f)},z="store",K=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=Y(a,(async()=>(await o(),V((await c(n,j)??{})[z]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,j,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>w(t,Map)?A.fromEntries([...t]):t)))})}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],y)=>{const[u,d,w,p,f]=J(t,y);return Y(a,(async()=>{await u();const a=await(async()=>N(l(await m(M(n,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?await d(r,j):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await u(),await(async a=>await m(M(i,(async([t,e,s,n],i)=>await f(t,e,s,n,a[i])))))(t),await(async a=>c?await w(r,j,"_",a):null)(e)}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:e+"_values"},na=(a,t,e,s)=>{const n=I();return R(a,((a,i)=>{const o=y(b(C(t,f(a)?{[e]:a}:a)),0,g(t));E(o[0])||s(i,o[0])||P(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,t,s,n,i)=>{let o,c;const[r,l,u,d]=(a=>{const t=(a=>C(ea,f(a)?{storeTableName:a}:a??{}))(a),s=t[X];if(t.mode==Q){const{storeTableName:a=e}=t;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=y(b(C(sa,o)),0,g(sa)),r=c[2],l=B(r);return[0,s,[na(n,{[aa]:null,[Z]:j},aa,(a=>k(l,a)&&a==r)),na(i,{[ta]:null,[Z]:j,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(r?K:G)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(o??=t)&&e==(c??=e)||(a(),o=t,c=e)}catch{}}),1e3*l),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=c=null,i(t)}),u,v(d))};a.createSqliteWasmPersister=(a,t,e,s)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)))},"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=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,E=(a,t)=>a instanceof t,p=a=>null==a,f=(a,t,e)=>p(a)?e?.():t(a),m=a=>t(a)==n,T=async a=>d.all(a),v=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],A=(a,t)=>a?.delete(t),L=Object,R=L.keys,O=L.freeze,S=(a=[])=>L.fromEntries(a),N=(...a)=>L.assign({},...a),b=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),C=a=>L.values(a),g=a=>r(R(a)),D=a=>(a=>E(a,L)&&a.constructor==L)(a)&&0==g(a),I=a=>new Map(a),_=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),F=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>p(e)?(A(a,t),a):a?.set(t,e),P=(a,t,e,s=$)=>(b(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!p(((a,t)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||p(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",B="_id",k=a=>`"${a.replace(/"/g,'""')}"`,q="FROM pragma_table_",H="WHERE",J=(a,t)=>{const e=I();return[async()=>P(e,S(await T(c(await a("SELECT name "+q+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return $(e,t,P((o=I,v(n=e,i=t)||$(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,o}),((a,t)=>$(e,t))),async(t,s)=>((a,t)=>!p(M(M(e,a),t)))(t,s)?S(y(c(await a("SELECT*FROM"+k(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!p(a)&&!D(t)))):{},async(t,n,i,r,w,d=!1)=>{const E=W();b(i??{},(a=>c(R(a??{}),(a=>j(E,a)))));const f=h(E);if(!d&&w&&l(f)&&v(e,t))return await a("DROP TABLE"+k(t)),void $(e,t);if(l(f)||v(e,t)){const s=M(e,t),i=W(_(s));await T([...c(f,(async e=>{A(i,e)||(await a(`ALTER TABLE${k(t)}ADD${k(e)}`),$(s,e,""))})),...!d&&r?c(h(i),(async e=>{e!=n&&(await a(`ALTER TABLE${k(t)}DROP${k(e)}`),$(s,e))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(f,(a=>s+k(a))))});`),$(e,t,I([[n,""],...c(f,(a=>[a,""]))]));if(d)p(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await T(b(i,(async(e,s)=>{p(e)?await a("DELETE FROM"+k(t)+H+k(n)+"=?",[s]):l(f)||await U(a,t,n,R(e),[s,...C(e)])})));else if(l(f))v(e,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const s=y(_(M(e,t)),(a=>a!=n)),o=[],r=[];b(i??{},((a,t)=>{u(o,t,...c(s,(t=>a?.[t]))),u(r,t)})),await U(a,t,n,s,o),await a("DELETE FROM"+k(t)+H+k(n)+"NOT IN("+V(r)+")",r)}}]},U=async(a,t,e,n,l)=>await a("INSERT INTO"+k(t)+"("+k(e)+o(c(n,(a=>s+k(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+k(e)+")DO UPDATE SET"+o(c(n,(a=>k(a)+"=excluded."+k(a))),s),l),V=a=>o(c(a,(()=>"?")),s),Y=JSON.parse,z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(f(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!p((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(E)},K="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=z(a,(async()=>(await o(),Y((await c(n,B))[x]?.[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[x]:{[K]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?L.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,u,d]=J(t,l),E=async(a,t)=>await T(F(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await d(e,s,c,n,i,t)}))),f=async(a,t)=>c?await d(r,B,{[x]:a},!0,!0,t):null;return z(a,(async()=>{await w();const a=await(async()=>S(y(await T(F(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await u(r,B))[x]:{})();return D(a)&&p(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),p(t)){const[t,e]=a();await E(t),await f(e)}else{const[a,e]=t();await E(a,!0),await f(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return b(a,((a,i)=>{const o=w(C(N(t,m(a)?{[e]:a}:a)),0,g(t));p(o[0])||s(i,o[0])||$(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,u,d]=(a=>{const t=(a=>N(sa,m(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(C(N(na,o)),0,g(na)),r=c[2],l=W(r);return[0,s,[ia(n,{[ta]:null,[aa]:B},ta,(a=>j(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>j(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),u,h(d))};a.createSqliteWasmPersister=(a,t,e,s,n)=>la(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)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),w=Promise,d=(a,t)=>a instanceof t,E=a=>null==a,f=(a,t,e)=>E(a)?e?.():t(a),p=a=>t(a)==n,m=async a=>w.all(a),T=(a,t)=>a?.has(t)??!1,v=a=>[...a?.values()??[]],A=(a,t)=>a?.delete(t),h=Object,L=h.keys,S=h.freeze,N=(a=[])=>h.fromEntries(a),C=(...a)=>h.assign({},...a),O=(a,t)=>(delete a[t],a),R=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),b=a=>c(L(a)),I=a=>(a=>d(a,h)&&a.constructor==h)(a)&&0==b(a),D=a=>new Map(a),$=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),P=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>E(e)?(A(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x=a=>new Set(Array.isArray(a)||E(a)?a:[a]),k=(a,t)=>a?.add(t),q="SELECT*FROM",H="FROM pragma_table_",J="WHERE",U=(a,t)=>{const e=D(),n=(a,t)=>!E(_(_(e,a),t)),y=async(t,n,y,w,d)=>{const E=x();R(d??{},(a=>o(L(a),(a=>k(E,a)))));const f=v(E);if(r(f)&&T(e,t)&&w)return await a("DROP TABLE"+j(t)),void F(e,t);if(r(f)||T(e,t)){const s=_(e,t),i=x($(s));await m([...o(f,(async e=>{A(i,e)||(await a(`ALTER TABLE${j(t)}ADD${j(e)}`),F(s,e,""))})),...y?o(v(i),(async e=>{e!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(e)}`),F(s,e))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(f,(a=>s+j(a))))});`),F(e,t,D([[n,""],...o(f,(a=>[a,""]))]));if(r(f))T(e,t)&&await a("DELETE FROM"+j(t));else{const r=[],y=[],w=[],E=l($(_(e,t)),(a=>a!=n));R(d,((a,t)=>{var e;u(r,`(?${e=c(E),",?".repeat(e)})`),u(y,t,...o(E,(t=>a[t]))),u(w,t)})),await a("INSERT INTO"+j(t)+"("+j(n)+i(o(E,(a=>s+j(a))))+")VALUES"+i(r,s)+"ON CONFLICT("+j(n)+")DO UPDATE SET"+i(o(E,(a=>j(a)+"=excluded."+j(a))),s),y),await a("DELETE FROM"+j(t)+J+j(n)+"NOT IN("+W(w)+")",w)}};return[async()=>M(e,N(await m(o(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+W(t)+")",t),(async({name:t})=>[t,N(o(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return F(e,t,M((o=D,T(n=e,i=t)||F(n,i,o()),_(n,i)),s,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(e,t))),async(t,e)=>{const s=n(t,e)?await a(q+j(t)+J+j(e)+"=?",["_"]):[];return r(s)?null:O(s[0],e)},async(a,t,e,s)=>await y(a,t,!0,!0,{[e]:s}),async(t,e)=>n(t,e)?N(l(o(await a(q+j(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!E(a)&&!I(t)))):{},y]},W=a=>i(o(a,(()=>"?")),s),Y=JSON.parse,z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await p.schedule((async()=>{await a(),r=0}))),p),p={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),p),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),p),save:async t=>(1!=r&&(r=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(f(i,a.delListener),p),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return S(p)},K="store",V=(a,t,e,s,[n],i)=>{const[o,c,r]=U(t,i),l=z(a,(async()=>(await o(),Y((await c(n,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>d(t,Map)?h.fromEntries([...t]):t)))})}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],y)=>{const[u,w,d,f,p]=U(t,y);return z(a,(async()=>{await u();const a=await(async()=>N(l(await m(P(n,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>o?await w(r,B):{})();return I(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await u(),await(async a=>await m(P(i,(async([t,e,s,n],i)=>await p(t,e,s,n,a[i])))))(t),await(async a=>c?await d(r,B,"_",a):null)(e)}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:e+"_values"},na=(a,t,e,s)=>{const n=D();return R(a,((a,i)=>{const o=y(g(C(t,p(a)?{[e]:a}:a)),0,b(t));E(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,t,s,n,i)=>{let o,c;const[r,l,u,w]=(a=>{const t=(a=>C(ea,p(a)?{storeTableName:a}:a??{}))(a),s=t[X];if(t.mode==Q){const{storeTableName:a=e}=t;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=y(g(C(sa,o)),0,b(sa)),r=c[2],l=x(r);return[0,s,[na(n,{[aa]:null,[Z]:B},aa,(a=>k(l,a)&&a==r)),na(i,{[ta]:null,[Z]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(r?V:G)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(o??=t)&&e==(c??=e)||(a(),o=t,c=e)}catch{}}),1e3*l),n((t=>w.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=c=null,i(t)}),u,v(w))},la="change";a.createSqlite3Persister=(a,t,e)=>ra(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)))},"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=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),T=a=>t(a)==n,m=async a=>d.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,O=h.freeze,S=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),b=a=>r(R(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==b(a),I=a=>new Map(a),F=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(L(a,t),a):a?.set(t,e),_=(a,t,e,s=P)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B=a=>new Set(Array.isArray(a)||f(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",H="_id",W=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",q="WHERE",J=(a,t)=>{const e=I();return[async()=>_(e,S(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,_((o=I,v(n=e,i=t)||P(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,s)=>((a,t)=>!f(M(M(e,a),t)))(t,s)?S(y(c(await a("SELECT*FROM"+W(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!f(a)&&!D(t)))):{},async(t,n,i,r,w,d=!1)=>{const E=B();C(i??{},(a=>c(R(a??{}),(a=>j(E,a)))));const p=A(E);if(!d&&w&&l(p)&&v(e,t))return await a("DROP TABLE"+W(t)),void P(e,t);if(l(p)||v(e,t)){const s=M(e,t),i=B(F(s));await m([...c(p,(async e=>{L(i,e)||(await a(`ALTER TABLE${W(t)}ADD${W(e)}`),P(s,e,""))})),...!d&&r?c(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${W(t)}DROP${W(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${W(t)}(${W(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(p,(a=>s+W(a))))});`),P(e,t,I([[n,""],...c(p,(a=>[a,""]))]));if(d)f(i)?await a("DELETE FROM"+W(t)+"WHERE 1"):await m(C(i,(async(e,s)=>{f(e)?await a("DELETE FROM"+W(t)+q+W(n)+"=?",[s]):l(p)||await U(a,t,n,R(e),[s,...g(e)])})));else if(l(p))v(e,t)&&await a("DELETE FROM"+W(t)+"WHERE 1");else{const s=y(F(M(e,t)),(a=>a!=n)),o=[],r=[];C(i??{},((a,t)=>{u(o,t,...c(s,(t=>a?.[t]))),u(r,t)})),await U(a,t,n,s,o),await a("DELETE FROM"+W(t)+q+W(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,e,n,l)=>await a("INSERT INTO"+W(t)+"("+W(e)+o(c(n,(a=>s+W(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+W(e)+")DO UPDATE SET"+o(c(n,(a=>W(a)+"=excluded."+W(a))),s),l),Y=a=>o(c(a,(()=>"?")),s),z=JSON.parse,K=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(E)},V="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=K(a,(async()=>(await o(),z((await c(n,H))[x]?.[V]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,H,{[x]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,u,d]=J(t,l),E=async(a,t)=>await m($(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await d(e,s,c,n,i,t)}))),p=async(a,t)=>c?await d(r,H,{[x]:a},!0,!0,t):null;return K(a,(async()=>{await w();const a=await(async()=>S(y(await m($(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await u(r,H))[x]:{})();return D(a)&&f(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),f(t)){const[t,e]=a();await E(t),await p(e)}else{const[a,e]=t();await E(a,!0),await p(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const o=w(g(N(t,T(a)?{[e]:a}:a)),0,b(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,u,d]=(a=>{const t=(a=>N(sa,T(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(g(N(na,o)),0,b(na)),r=c[2],l=B(r);return[0,s,[ia(n,{[ta]:null,[aa]:H},ta,(a=>j(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>j(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),u,A(d))},ya="change";a.createSqlite3Persister=(a,t,e,s)=>la(a,e,((a,e=[])=>new d(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(ya,e),e}),(a=>t.off(ya,a)),s)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",r=n(""),o=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),s=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,p=(e,n,t)=>f(e)?null==t?void 0:t():n(e),h=e=>n(e)==r,m=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},E=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},P=(e,n)=>null==e?void 0:e.delete(n),A=Object,O=A.keys,b=A.freeze,L=(e=[])=>A.fromEntries(e),w=(...e)=>A.assign({},...e),x=(e,n)=>(delete e[n],e),S=(e,n)=>i(A.entries(e),(([e,t])=>n(t,e))),C=e=>A.values(e),N=e=>u(O(e)),g=e=>(e=>y(e,A)&&e.constructor==A)(e)&&0==N(e),R=e=>new Map(e),I=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),$=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},_=(e,n,t)=>f(t)?(P(e,n),e):null==e?void 0:e.set(n,t),j=(e,n,t,l=_)=>(S(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>p(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),F="_id",M=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||f(e)?e:[e]),W=(e,n)=>null==e?void 0:e.add(n);var U=Object.defineProperty,k=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,J=(e,n,t)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Y=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&J(e,t,n[t]);if(k)for(var t of k(n))H.call(n,t)&&J(e,t,n[t]);return e},z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const K="SELECT*FROM",V="FROM pragma_table_",G="WHERE",Q=(e,n)=>{const t=R(),r=(e,n)=>!f(D(D(t,e),n)),s=(n,r,s,v,y)=>z(void 0,null,(function*(){const f=B();S(null!=y?y:{},(e=>i(O(e),(e=>W(f,e)))));const p=T(f);if(a(p)&&E(t,n)&&v)return yield e("DROP TABLE"+M(n)),void _(t,n);if(a(p)||E(t,n)){const l=D(t,n),o=B(I(l));yield m([...i(p,(t=>z(void 0,null,(function*(){P(o,t)||(yield e(`ALTER TABLE${M(n)}ADD${M(t)}`),_(l,t,""))})))),...s?i(T(o),(t=>z(void 0,null,(function*(){t!=r&&(yield e(`ALTER TABLE${M(n)}DROP${M(t)}`),_(l,t))})))):[]])}else yield e(`CREATE TABLE${M(n)}(${M(r)} PRIMARY KEY ON CONFLICT REPLACE${o(i(p,(e=>l+M(e))))});`),_(t,n,R([[r,""],...i(p,(e=>[e,""]))]));if(a(p))E(t,n)&&(yield e("DELETE FROM"+M(n)));else{const a=[],s=[],v=[],f=d(I(D(t,n)),(e=>e!=r));S(y,((e,n)=>{var t;c(a,`(?${t=u(f),",?".repeat(t)})`),c(s,n,...i(f,(n=>e[n]))),c(v,n)})),yield e("INSERT INTO"+M(n)+"("+M(r)+o(i(f,(e=>l+M(e))))+")VALUES"+o(a,l)+"ON CONFLICT("+M(r)+")DO UPDATE SET"+o(i(f,(e=>M(e)+"=excluded."+M(e))),l),s),yield e("DELETE FROM"+M(n)+G+M(r)+"NOT IN("+X(v)+")",v)}}));return[()=>z(void 0,null,(function*(){return j(t,L(yield m(i(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>z(void 0,[n],(function*({name:n}){return[n,L(i(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>{return _(t,n,j((i=R,E(r=t,o=n)||_(r,o,i()),D(r,o)),l,((e,n,t)=>{t!=D(e,n)&&_(e,n,t)}),((e,n)=>_(e,n))));var r,o,i}),((e,n)=>_(t,n)))})),(n,t)=>z(void 0,null,(function*(){const l=r(n,t)?yield e(K+M(n)+G+M(t)+"=?",["_"]):[];return a(l)?null:x(l[0],t)})),(e,n,t,l)=>z(void 0,null,(function*(){return yield s(e,n,!0,!0,{[t]:l})})),(n,t)=>z(void 0,null,(function*(){return r(n,t)?L(d(i(yield e(K+M(n)),(e=>[e[t],x(Y({},e),t)])),(([e,n])=>!f(e)&&!g(n)))):{}})),s]},X=e=>o(i(e,(()=>"?")),l),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),s=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),h),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),h})),startAutoSave:()=>ee(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();g(t)&&g(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>ee(void 0,null,(function*(){return c(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return b(h)};var te=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const le="store",re=(e,n,t,l,[r],o)=>{const[i,u,a]=Q(n,o),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z((null!=(e=yield u(r,F))?e:{})[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(r,F,"_",{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?A.fromEntries([...n]):n)))})}))))}))),t,l);return d};var oe=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[r,o,[i,u,a]],s)=>{const[c,v,y,p,h]=Q(n,s);return ne(e,(()=>oe(void 0,null,(function*(){yield c();const e=yield oe(void 0,null,(function*(){return L(d(yield m($(r,((e,n)=>oe(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!g(e[1]))))})),n=yield oe(void 0,null,(function*(){return i?yield v(a,F):{}}));return g(e)&&f(n)?void 0:[e,n]}))),(e=>oe(void 0,null,(function*(){const[n,t]=e();yield c(),yield(e=>oe(void 0,null,(function*(){return yield m($(o,((n,t)=>oe(void 0,[n,t],(function*([n,t,l,r],o){return yield h(n,t,l,r,e[o])})))))})))(n),yield(e=>oe(void 0,null,(function*(){return u?yield y(a,F,"_",e):null})))(t)}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",se="tableId",ce="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[ce]:t+"_values"},fe=(e,n,t,l)=>{const r=R();return S(e,((e,o)=>{const i=s(C(w(n,h(e)?{[t]:e}:e)),0,N(n));f(i[0])||l(o,i[0])||_(r,o,i)})),r},pe="pragma ",he="data_version",me="schema_version",Ee=(e,n,l,r,o)=>{let i,u;const[a,d,c,v]=(e=>{const n=(e=>w(ve,h(e)?{storeTableName:e}:null!=e?e:{}))(e),l=n[ae];if(n.mode==ue){const{storeTableName:e=t}=n;return[1,l,[e],B(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=n,u=s(C(w(ye,i)),0,N(ye)),a=u[2],d=B(a);return[0,l,[fe(r,{[se]:null,[de]:F},se,(e=>W(d,e)&&e==a)),fe(o,{[ce]:null,[de]:F,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>W(d,n)&&n==a)),u],d]})(n);return(a?re:ie)(e,l,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield l(pe+he))[0][he],t=(yield l(pe+me))[0][me];n==(null!=i?i:i=n)&&t==(null!=u?u:u=t)||(e(),i=n,u=t)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n}),1e3*d),r((n=>v.has(n)?e():0))]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),c,T(v))};e.createCrSqliteWasmPersister=(e,n,t)=>Ee(e,t,((e,...t)=>{return l=[e,...t],r=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=e=>{try{i(r.next(e))}catch(e){n(e)}},o=e=>{try{i(r.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);i((r=r.apply(void 0,l)).next())}));var l,r}),(e=>n.onUpdate(((n,t,l)=>e(l)))),(e=>e()))},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterCrSqliteWasm={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",o=n(""),r=(e,n)=>e.repeat(n),i=(e,n="")=>e.join(n),u=(e,n)=>e.map(n),a=e=>e.length,d=e=>0==a(e),s=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),v=(e,...n)=>e.push(...n),y=Promise,f=(e,n)=>e instanceof n,p=e=>null==e,h=(e,n,t)=>p(e)?null==t?void 0:t():n(e),E=e=>n(e)==o,m=e=>{return n=function*(){return y.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},O=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},P=(e,n)=>null==e?void 0:e.delete(n),A=Object,L=A.keys,b=A.freeze,w=(e=[])=>A.fromEntries(e),x=(...e)=>A.assign({},...e),R=(e,n)=>u(A.entries(e),(([e,t])=>n(t,e))),S=e=>A.values(e),C=e=>a(L(e)),N=e=>(e=>f(e,A)&&e.constructor==A)(e)&&0==C(e),g=e=>new Map(e),D=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),F=(e,n)=>{var t;return u([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},M=(e,n,t)=>p(t)?(P(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=M)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!p(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),j=e=>new Set(Array.isArray(e)||p(e)?e:[e]),_=(e,n)=>null==e?void 0:e.add(n),W="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var U=Object.defineProperty,k=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,z=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&Y(e,t,n[t]);if(k)for(var t of k(n))J.call(n,t)&&Y(e,t,n[t]);return e},K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="FROM pragma_table_",G="WHERE",Q=(e,n)=>{const t=g();return[()=>K(void 0,null,(function*(){return $(t,w(yield m(u(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+Z(n)+")",n),(n=>K(void 0,[n],(function*({name:n}){return[n,w(u(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>{return M(t,n,$((i=g,T(o=t,r=n)||M(o,r,i()),I(o,r)),l,((e,n,t)=>{t!=I(e,n)&&M(e,n,t)}),((e,n)=>M(e,n))));var o,r,i}),((e,n)=>M(t,n)))})),(n,l)=>K(void 0,null,(function*(){return((e,n)=>!p(I(I(t,e),n)))(n,l)?w(s(u(yield e("SELECT*FROM"+H(n)),(e=>{return[e[l],(n=z({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!p(e)&&!N(n)))):{}})),(n,o,r,a,c,y=!1)=>K(void 0,null,(function*(){const f=j();R(null!=r?r:{},(e=>u(L(null!=e?e:{}),(e=>_(f,e)))));const h=O(f);if(!y&&c&&d(h)&&T(t,n))return yield e("DROP TABLE"+H(n)),void M(t,n);if(d(h)||T(t,n)){const l=I(t,n),r=j(D(l));yield m([...u(h,(t=>K(void 0,null,(function*(){P(r,t)||(yield e(`ALTER TABLE${H(n)}ADD${H(t)}`),M(l,t,""))})))),...!y&&a?u(O(r),(t=>K(void 0,null,(function*(){t!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(t)}`),M(l,t))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${i(u(h,(e=>l+H(e))))});`),M(t,n,g([[o,""],...u(h,(e=>[e,""]))]));if(y)p(r)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield m(R(r,((t,l)=>K(void 0,null,(function*(){p(t)?yield e("DELETE FROM"+H(n)+G+H(o)+"=?",[l]):d(h)||(yield X(e,n,o,L(t),[l,...S(t)]))})))));else if(d(h))T(t,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const l=s(D(I(t,n)),(e=>e!=o)),i=[],a=[];R(null!=r?r:{},((e,n)=>{v(i,n,...u(l,(n=>null==e?void 0:e[n]))),v(a,n)})),yield X(e,n,o,l,i),yield e("DELETE FROM"+H(n)+G+H(o)+"NOT IN("+Z(a)+")",a)}}))]},X=(e,n,t,o,d)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(t)+i(u(o,(e=>l+H(e))))+")VALUES"+r(`,(?${r(",?",a(o))})`,a(d)/(a(o)+1)).substring(1)+"ON CONFLICT("+H(t)+")DO UPDATE SET"+i(u(o,(e=>H(e)+"=excluded."+H(e))),l),d)})),Z=e=>i(u(e,(()=>"?")),l),ee=JSON.parse;var ne=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const c=[],y=e=>ne(void 0,null,(function*(){return 2!=a&&(a=1,yield f.schedule((()=>ne(void 0,null,(function*(){yield e(),a=0}))))),f})),f={load:(t,l)=>ne(void 0,null,(function*(){return yield y((()=>ne(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ne(void 0,[...t],(function*(t={},o={}){return f.stopAutoLoad(),yield f.load(t,o),s=1,u=l(((t,l)=>ne(void 0,null,(function*(){return yield y((()=>ne(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),f})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),f),save:n=>ne(void 0,null,(function*(){return 1!=a&&(a=2,yield f.schedule((()=>ne(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),f})),startAutoSave:()=>ne(void 0,null,(function*(){return yield f.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||f.save((()=>[t,l]))})),f})),stopAutoSave:()=>(h(r,e.delListener),f),schedule:(...e)=>ne(void 0,null,(function*(){return v(c,...e),yield ne(void 0,null,(function*(){if(!d){for(d=1;!p((e=c,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return b(f)};var le=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const oe="store",re=(e,n,t,l,[o],r)=>{const[i,u,a]=Q(n,r),d=te(e,(()=>le(void 0,null,(function*(){var e;return yield i(),ee(null==(e=(yield u(o,B))[W])?void 0:e[oe])}))),(e=>le(void 0,null,(function*(){return d.schedule(i,(()=>le(void 0,null,(function*(){var n;yield a(o,B,{[W]:{[oe]:(n=e(),JSON.stringify(n,((e,n)=>f(n,Map)?A.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var ie=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ue=(e,n,t,l,[o,r,[i,u,a]],d)=>{const[c,v,y]=Q(n,d),f=(e,n)=>ie(void 0,null,(function*(){return yield m(F(r,((t,l)=>ie(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),h=(e,n)=>ie(void 0,null,(function*(){return u?yield y(a,B,{[W]:e},!0,!0,n):null}));return te(e,(()=>ie(void 0,null,(function*(){yield c();const e=yield ie(void 0,null,(function*(){return w(s(yield m(F(o,((e,n)=>ie(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!N(e[1]))))})),n=yield ie(void 0,null,(function*(){return i?(yield v(a,B))[W]:{}}));return N(e)&&p(n)?void 0:[e,n]}))),((e,n)=>ie(void 0,null,(function*(){if(yield c(),p(n)){const[n,t]=e();yield f(n),yield h(t)}else{const[e,t]=n();yield f(e,!0),yield h(t,!0)}}))),t,l)},ae="json",de="autoLoadIntervalSeconds",se="rowIdColumnName",ce="tableId",ve="tableName",ye={mode:ae,[de]:1},fe={load:0,save:0,[ve]:t+"_values"},pe=(e,n,t,l)=>{const o=g();return R(e,((e,r)=>{const i=c(S(x(n,E(e)?{[t]:e}:e)),0,C(n));p(i[0])||l(r,i[0])||M(o,r,i)})),o};var he=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",me="data_version",Te="schema_version",Oe=(e,n,l,o,r,i)=>{let u,a;const[d,s,v,y]=(e=>{const n=(e=>x(ye,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=n[de];if(n.mode==ae){const{storeTableName:e=t}=n;return[1,l,[e],j(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=n,u=c(S(x(fe,i)),0,C(fe)),a=u[2],d=j(a);return[0,l,[pe(o,{[ce]:null,[se]:B},ce,(e=>_(d,e)&&e==a)),pe(r,{[ve]:null,[se]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ve,((e,n)=>_(d,n)&&n==a)),u],d]})(n);return(d?re:ue)(e,i?(e,n)=>he(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>he(void 0,null,(function*(){try{const n=(yield l(Ee+me))[0][me],t=(yield l(Ee+Te))[0][Te];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,O(y))};e.createCrSqliteWasmPersister=(e,n,t,l)=>Oe(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.onUpdate(((n,t,l)=>e(l)))),(e=>e()),l)},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterCrSqliteWasm={});