tinybase 4.6.0 → 4.6.1

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 (93) hide show
  1. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  2. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  4. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  6. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  8. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  10. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  12. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  15. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  16. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  17. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  18. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  19. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  20. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  21. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  22. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  29. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +6 -2
  30. package/lib/debug/persisters/persister-electric-sql.js +7 -2
  31. package/lib/debug/persisters/persister-expo-sqlite-next.js +6 -2
  32. package/lib/debug/persisters/persister-expo-sqlite.js +6 -2
  33. package/lib/debug/persisters/persister-indexed-db.js +1 -0
  34. package/lib/debug/persisters/persister-sqlite-wasm.js +6 -2
  35. package/lib/debug/persisters/persister-sqlite3.js +6 -2
  36. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  37. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  38. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  39. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  40. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  41. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  42. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  43. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  44. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  45. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  46. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  47. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  48. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  49. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  50. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  51. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  52. package/lib/persisters/persister-electric-sql.js +1 -1
  53. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  54. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  55. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  56. package/lib/persisters/persister-expo-sqlite.js +1 -1
  57. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  58. package/lib/persisters/persister-indexed-db.js +1 -1
  59. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  60. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  61. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  62. package/lib/persisters/persister-sqlite3.js +1 -1
  63. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  64. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  65. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  66. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  67. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  68. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  69. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  70. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  71. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  72. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  73. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  74. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  75. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  76. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  77. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  78. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  79. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  80. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  81. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  82. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  83. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  84. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  85. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  86. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  87. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  88. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  89. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  90. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  91. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  92. package/package.json +17 -17
  93. package/readme.md +1 -1
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,l)=>u(e)?null==l?void 0:l():n(e),d=n=>e(n)==t,c=(e,n,l)=>e.slice(n,l),s=e=>e.length,v=e=>{return n=function*(){return r.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},y="_",f="_id",h=e=>`"${e.replace(/"/g,'""')}"`,E="SELECT",p=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),A=e=>0==s(e),O=(e,n)=>e.filter(n),T=(e,...n)=>e.push(...n),L=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},P=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),w=Object,N=e=>w.getPrototypeOf(e),R=w.keys,g=w.freeze,D=(e=[])=>w.fromEntries(e),x=(...e)=>w.assign({},...e),C=(e,n)=>m(w.entries(e),(([e,l])=>n(l,e))),S=e=>w.values(e),I=e=>s(R(e)),F=e=>(e=>!u(e)&&a(N(e),(e=>e==w.prototype||u(N(e))),(()=>!0)))(e)&&0==I(e),M=e=>new Map(e),$=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},_=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>{var l;return m([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},B=(e,n,l)=>u(l)?(b(e,n),e):null==e?void 0:e.set(n,l),H=(e,n,l)=>(L(e,n)||B(e,n,l()),_(e,n)),W=(e,n,l,t=B)=>(C(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),Y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),k=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,z=(e,n,l)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,K=(e,n)=>{for(var l in n||(n={}))U.call(n,l)&&z(e,l,n[l]);if(J)for(var l of J(n))q.call(n,l)&&z(e,l,n[l]);return e},V=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Q=E+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,t)=>{const o=M();return[()=>V(void 0,null,(function*(){return W(o,D(yield v(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+le(n)+")ORDER BY name",n),(n=>V(void 0,[n],(function*({name:n}){return[n,D(m(yield e(E+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>B(o,n,W(H(o,n,M),l,((e,n,l)=>{l!=_(e,n)&&B(e,n,l)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,l)=>V(void 0,null,(function*(){return((e,n)=>!u(_(_(o,e),n)))(n,l)?D(O(m(yield e(Q+h(n)),(e=>{return[e[l],(n=K({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!u(e)&&!F(n)))):{}})),(n,t,r,i,a,d=!1)=>V(void 0,null,(function*(){const c=Y();C(null!=r?r:{},(e=>m(R(null!=e?e:{}),(e=>k(c,e)))));const s=P(c);if(!d&&a&&A(s)&&L(o,n))return yield e("DROP TABLE"+h(n)),void B(o,n);if(A(s)||L(o,n)){const l=_(o,n),r=Y($(l));yield v([...m(s,(t=>V(void 0,null,(function*(){b(r,t)||(yield e(`ALTER TABLE${h(n)}ADD${h(t)}`),B(l,t,""))})))),...!d&&i?m(P(r),(o=>V(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${h(n)}DROP${h(o)}`),B(l,o))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(t)} PRIMARY KEY ON CONFLICT REPLACE${p(m(s,(e=>l+h(e))))});`),B(o,n,M([[t,""],...m(s,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield v(C(r,((l,o)=>V(void 0,null,(function*(){u(l)?yield e("DELETE FROM"+h(n)+Z+h(t)+"=?",[o]):A(s)||(yield ne(e,n,t,R(l),[o,...S(l)]))})))));else if(A(s))L(o,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=O($(_(o,n)),(e=>e!=t)),i=[],u=[];C(null!=r?r:{},((e,n)=>{T(i,n,...m(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ne(e,n,t,l,i),yield e("DELETE FROM"+h(n)+Z+h(t)+"NOT IN("+le(u)+")",u)}})),n=>V(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ne=(e,n,t,r,i)=>V(void 0,null,(function*(){return yield e("INSERT INTO"+h(n)+"("+h(t)+p(m(r,(e=>l+h(e))))+")VALUES"+c(o(`,(?${o(",?",s(r))})`,s(i)/(s(r)+1)),1)+"ON CONFLICT("+h(t)+")DO UPDATE SET"+p(m(r,(e=>h(e)+"=excluded."+h(e))),l),i)})),le=e=>p(m(e,(()=>"?")),l),te=JSON.parse;var oe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const re=M(),ie=M(),ue=(e,n,l,t,o,r,[i,d]=[],c=[])=>{let s,v,y,f=0,h=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const E=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>oe(void 0,null,(function*(){return yield E((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>oe(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),h=1,y=t(((l,t)=>oe(void 0,null,(function*(){if(t){const n=t();yield E((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield E((()=>oe(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),p})),stopAutoLoad:()=>(h&&(o(y),y=void 0,h=0),p),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>oe(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>oe(void 0,null,(function*(){return yield p.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();F(l)&&F(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(a(s,e.delListener),s=void 0,p),schedule:(...e)=>oe(void 0,null,(function*(){return T(_(ie,c),...e),yield oe(void 0,null,(function*(){if(!_(re,c)){for(B(re,c,1);!u((e=_(ie,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}B(re,c,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>d),g(p)};var ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de="store",ce=(e,n,l,t,o,[r],i,u)=>{const[a,d,c,s]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield s((()=>ae(void 0,null,(function*(){var e,n;return yield a(),te(null!=(n=null==(e=(yield d(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield s((()=>ae(void 0,null,(function*(){var n,l;yield a(),yield c(r,f,{[y]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?w.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,["getDb",u],u)};var se=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ve=(e,n,l,t,o,[r,i,[a,d,c]],s,h)=>{const[E,p,m,A]=ee(n,s,o),T=(e,n)=>se(void 0,null,(function*(){return yield v(j(i,((l,t)=>se(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield m(l,t,u,o,r,n))})))))})),L=(e,n)=>se(void 0,null,(function*(){return d?yield m(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>se(void 0,null,(function*(){return yield A((()=>se(void 0,null,(function*(){yield E();const e=yield se(void 0,null,(function*(){return D(O(yield v(j(r,((e,n)=>se(void 0,[e,n],(function*([e,n],l){return[e,yield p(l,n)]}))))),(e=>!F(e[1]))))})),n=yield se(void 0,null,(function*(){return a?(yield p(c,f))[y]:{}}));return F(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>se(void 0,null,(function*(){return yield A((()=>se(void 0,null,(function*(){if(yield E(),u(n)){const[n,l]=e();yield T(n),yield L(l)}else{const[e,l]=n();yield T(e,!0),yield L(l,!0)}}))))}))),l,t,o,["getDb",h],h)},ye="json",fe="autoLoadIntervalSeconds",he="rowIdColumnName",Ee="tableId",pe="tableName",me={mode:ye,[fe]:1},Ae={load:0,save:0,[pe]:n+"_values"},Oe=(e,n,l,t)=>{const o=M();return C(e,((e,r)=>{const i=c(S(x(n,d(e)?{[l]:e}:e)),0,I(n));u(i[0])||t(r,i[0])||B(o,r,i)})),o};var Te=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma ",Pe="data_version",be="schema_version",we=(e,l,t,o,r,u,a,s)=>{let v,y,h;const[p,m,A,O]=(e=>{const l=(e=>x(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[fe];if(l.mode==ye){const{storeTableName:e=n}=l;return[1,t,[e],Y(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=c(S(x(Ae,i)),0,I(Ae)),a=u[2],s=Y(a);return[0,t,[Oe(o,{[Ee]:null,[he]:f},Ee,(e=>k(s,e)&&e==a)),Oe(r,{[pe]:null,[he]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pe,((e,n)=>k(s,n)&&n==a)),u],s]})(l);return(p?ce:ve)(e,u?(e,n)=>Te(void 0,null,(function*(){return u(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Te(void 0,null,(function*(){try{const n=(yield t(Le+Pe))[0][Pe],l=(yield t(Le+be))[0][be],o=(yield t(E+" TOTAL_CHANGES() c"))[0].c;n==(null!=v?v:v=n)&&l==(null!=y?y:y=l)&&o==(null!=h?h:h=o)||(e(),v=n,y=l)}catch(e){}})),l=m,n(),setInterval(n,1e3*l)),o((n=>O.has(n)?e():0))];var n,l}),(([e,n])=>{i(e),v=y=null,r(n)}),a,A,P(O),s)},Ne=(e,n,l,t,o)=>we(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return(yield n.execAsync([{sql:e,args:l}],!1))[0].rows},new Promise(((e,n)=>{var l=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(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),t,o,n);export{Ne as createExpoSqlitePersister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,l)=>u(e)?null==l?void 0:l():n(e),d=n=>e(n)==t,c=(e,n,l)=>e.slice(n,l),s=e=>e.length,v=e=>{return n=function*(){return r.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},y="_",f="_id",h=e=>`"${e.replace(/"/g,'""')}"`,E="SELECT",p=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),A=e=>0==s(e),O=(e,n)=>e.filter(n),T=(e,...n)=>e.push(...n),L=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},P=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),w=Object,N=e=>w.getPrototypeOf(e),R=w.keys,g=w.freeze,x=(e=[])=>w.fromEntries(e),C=(...e)=>w.assign({},...e),D=(e,n)=>m(w.entries(e),(([e,l])=>n(l,e))),S=e=>w.values(e),I=e=>s(R(e)),F=e=>(e=>!u(e)&&a(N(e),(e=>e==w.prototype||u(N(e))),(()=>!0)))(e)&&0==I(e),M=e=>new Map(e),$=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},_=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>{var l;return m([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},B=(e,n,l)=>u(l)?(b(e,n),e):null==e?void 0:e.set(n,l),H=(e,n,l)=>(L(e,n)||B(e,n,l()),_(e,n)),W=(e,n,l,t=B)=>(D(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),Y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),k=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,z=(e,n,l)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,K=(e,n)=>{for(var l in n||(n={}))U.call(n,l)&&z(e,l,n[l]);if(J)for(var l of J(n))q.call(n,l)&&z(e,l,n[l]);return e},V=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Q=E+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,t)=>{const o=M();return[()=>V(void 0,null,(function*(){return W(o,x(yield v(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+le(n)+")ORDER BY name",n),(n=>V(void 0,[n],(function*({name:n}){return[n,x(m(yield e(E+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>B(o,n,W(H(o,n,M),l,((e,n,l)=>{l!=_(e,n)&&B(e,n,l)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,l)=>V(void 0,null,(function*(){return((e,n)=>!u(_(_(o,e),n)))(n,l)?x(O(m(yield e(Q+h(n)),(e=>{return[e[l],(n=K({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!u(e)&&!F(n)))):{}})),(n,t,r,i,a,d=!1)=>V(void 0,null,(function*(){const c=Y();D(null!=r?r:{},(e=>m(R(null!=e?e:{}),(e=>k(c,e)))));const s=P(c);if(!d&&a&&A(s)&&L(o,n))return yield e("DROP TABLE"+h(n)),void B(o,n);if(A(s)||L(o,n)){const l=_(o,n),r=Y($(l));yield v([...m(s,(t=>V(void 0,null,(function*(){b(r,t)||(yield e(`ALTER TABLE${h(n)}ADD${h(t)}`),B(l,t,""))})))),...!d&&i?m(P(r),(o=>V(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${h(n)}DROP${h(o)}`),B(l,o))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(t)} PRIMARY KEY ON CONFLICT REPLACE${p(m(s,(e=>l+h(e))))});`),B(o,n,M([[t,""],...m(s,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield v(D(r,((l,o)=>V(void 0,null,(function*(){u(l)?yield e("DELETE FROM"+h(n)+Z+h(t)+"=?",[o]):A(s)||(yield ne(e,n,t,R(l),[o,...S(l)]))})))));else if(A(s))L(o,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=O($(_(o,n)),(e=>e!=t)),i=[],u=[];D(null!=r?r:{},((e,n)=>{T(i,n,...m(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ne(e,n,t,l,i),yield e("DELETE FROM"+h(n)+Z+h(t)+"NOT IN("+le(u)+")",u)}})),n=>V(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ne=(e,n,t,r,i)=>V(void 0,null,(function*(){return yield e("INSERT INTO"+h(n)+"("+h(t)+p(m(r,(e=>l+h(e))))+")VALUES"+c(o(`,(?${o(",?",s(r))})`,s(i)/(s(r)+1)),1)+"ON CONFLICT("+h(t)+")DO UPDATE SET"+p(m(r,(e=>h(e)+"=excluded."+h(e))),l),i)})),le=e=>p(m(e,(()=>"?")),l),te=JSON.parse;var oe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const re=M(),ie=M(),ue=(e,n,l,t,o,r,[i,d]=[],c=[])=>{let s,v,y,f=0,h=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const E=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>oe(void 0,null,(function*(){return yield E((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>oe(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),h=1,y=t(((l,t)=>oe(void 0,null,(function*(){if(t){const n=t();yield E((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield E((()=>oe(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),p})),stopAutoLoad:()=>(h&&(o(y),y=void 0,h=0),p),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>oe(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>oe(void 0,null,(function*(){return yield p.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();F(l)&&F(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(a(s,e.delListener),s=void 0,p),schedule:(...e)=>oe(void 0,null,(function*(){return T(_(ie,c),...e),yield oe(void 0,null,(function*(){if(!_(re,c)){for(B(re,c,1);!u((e=_(ie,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}B(re,c,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>d),g(p)};var ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de="store",ce=(e,n,l,t,o,[r],i,u,a)=>{const[d,c,s,v]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var e,n;return yield d(),te(null!=(n=null==(e=(yield c(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var n,l;yield d(),yield s(r,f,{[y]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?w.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[a,u],u)};var se=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ve=(e,n,l,t,o,[r,i,[a,d,c]],s,h,E)=>{const[p,m,A,T]=ee(n,s,o),L=(e,n)=>se(void 0,null,(function*(){return yield v(j(i,((l,t)=>se(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield A(l,t,u,o,r,n))})))))})),P=(e,n)=>se(void 0,null,(function*(){return d?yield A(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>se(void 0,null,(function*(){return yield T((()=>se(void 0,null,(function*(){yield p();const e=yield se(void 0,null,(function*(){return x(O(yield v(j(r,((e,n)=>se(void 0,[e,n],(function*([e,n],l){return[e,yield m(l,n)]}))))),(e=>!F(e[1]))))})),n=yield se(void 0,null,(function*(){return a?(yield m(c,f))[y]:{}}));return F(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>se(void 0,null,(function*(){return yield T((()=>se(void 0,null,(function*(){if(yield p(),u(n)){const[n,l]=e();yield L(n),yield P(l)}else{const[e,l]=n();yield L(e,!0),yield P(l,!0)}}))))}))),l,t,o,[E,h],h)},ye="json",fe="autoLoadIntervalSeconds",he="rowIdColumnName",Ee="tableId",pe="tableName",me={mode:ye,[fe]:1},Ae={load:0,save:0,[pe]:n+"_values"},Oe=(e,n,l,t)=>{const o=M();return D(e,((e,r)=>{const i=c(S(C(n,d(e)?{[l]:e}:e)),0,I(n));u(i[0])||t(r,i[0])||B(o,r,i)})),o};var Te=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma ",Pe="data_version",be="schema_version",we=(e,l,t,o,r,u,a,s,v="getDb")=>{let y,h,p;const[m,A,O,T]=(e=>{const l=(e=>C(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[fe];if(l.mode==ye){const{storeTableName:e=n}=l;return[1,t,[e],Y(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=c(S(C(Ae,i)),0,I(Ae)),a=u[2],s=Y(a);return[0,t,[Oe(o,{[Ee]:null,[he]:f},Ee,(e=>k(s,e)&&e==a)),Oe(r,{[pe]:null,[he]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pe,((e,n)=>k(s,n)&&n==a)),u],s]})(l);return(m?ce:ve)(e,u?(e,n)=>Te(void 0,null,(function*(){return u(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Te(void 0,null,(function*(){try{const n=(yield t(Le+Pe))[0][Pe],l=(yield t(Le+be))[0][be],o=(yield t(E+" TOTAL_CHANGES() c"))[0].c;n==(null!=y?y:y=n)&&l==(null!=h?h:h=l)&&o==(null!=p?p:p=o)||(e(),y=n,h=l)}catch(e){}})),l=A,n(),setInterval(n,1e3*l)),o((n=>T.has(n)?e():0))];var n,l}),(([e,n])=>{i(e),y=h=null,r(n)}),a,O,P(T),s,v)},Ne=(e,n,l,t,o)=>we(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return(yield n.execAsync([{sql:e,args:l}],!1))[0].rows},new Promise(((e,n)=>{var l=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(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),t,o,n);export{Ne as createExpoSqlitePersister};
@@ -1 +1 @@
1
- const e=Promise,t=clearInterval,n=e=>null==e,o=(e,t,o)=>n(e)?null==o?void 0:o():t(e),l=t=>new e(t),r=t=>{return n=function*(){return e.all(t)},new Promise(((e,t)=>{var o=e=>{try{r(n.next(e))}catch(e){t(e)}},l=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,l);r((n=n.apply(void 0,null)).next())}));var n},u=(e,t)=>e.map(t),i=(e,...t)=>e.push(...t),d=Object,c=e=>d.getPrototypeOf(e),s=d.keys,a=d.freeze,v=e=>(e=>!n(e)&&o(c(e),(e=>e==d.prototype||n(c(e))),(()=>!0)))(e)&&0==(e=>s(e).length)(e),y=e=>new Map(e),f=(e,t)=>null==e?void 0:e.get(t),h=(e,t,o)=>{return n(o)?(r=t,null==(l=e)||l.delete(r),e):null==e?void 0:e.set(t,o);var l,r},p=(e,t,n)=>{var o,l,r;return l=t,null!=(r=null==(o=e)?void 0:o.has(l))&&r||h(e,t,n()),f(e,t)};var g=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},u=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,u);i((n=n.apply(e,t)).next())}));const w=y(),m=y();var A=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},u=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,u);i((n=n.apply(e,t)).next())}));const x=globalThis.window,P=["t","v"],S={keyPath:"k"},b=(e,t)=>A(void 0,null,(function*(){const l=((t,n)=>u(d.entries(t),(([t,n])=>L(e,"put",{k:t,v:n}))))(t);u(yield L(e,"getAllKeys"),(r=>((e,t)=>!n(((e,t)=>o(e,(e=>e[t])))(e,t)))(t,r)?0:i(l,L(e,"delete",r)))),yield r(l)})),L=(e,t,n)=>A(void 0,null,(function*(){return l(((o,l)=>{const r=e[t](n);r.onsuccess=()=>o(r.result),r.onerror=()=>l(`objectStore.${t} error`)}))})),k=(e,c,s=1,y)=>{const k=(e,...t)=>A(void 0,[e,...t],(function*(e,t=[],n=0){return l(((o,l)=>{const i=x.indexedDB.open(c,n?2:void 0);i.onupgradeneeded=()=>n&&u(P,(e=>{try{i.result.createObjectStore(e,S)}catch(e){}})),i.onsuccess=()=>A(void 0,null,(function*(){try{const n=i.result.transaction(P,"readwrite"),l=yield r(u(P,((o,l)=>A(void 0,null,(function*(){return yield e(n.objectStore(o),t[l])})))));i.result.close(),o(l)}catch(e){l(e)}})),i.onerror=()=>l("indexedDB.open error")}))}));return((e,t,l,r,u,d,[c,s]=[],y=[])=>{let A,x,P,S=0,b=0;p(w,y,(()=>0)),p(m,y,(()=>[]));const L=e=>g(void 0,null,(function*(){return 2!=S&&(S=1,yield k.schedule((()=>g(void 0,null,(function*(){yield e(),S=0}))))),k})),k={load:(n,o)=>g(void 0,null,(function*(){return yield L((()=>g(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,o])}}))))})),startAutoLoad:(...n)=>g(void 0,[...n],(function*(n={},o={}){return k.stopAutoLoad(),yield k.load(n,o),b=1,P=r(((n,o)=>g(void 0,null,(function*(){if(o){const t=o();yield L((()=>g(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield L((()=>g(void 0,null,(function*(){var o;try{e.setContent(null!=(o=null==n?void 0:n())?o:yield t())}catch(e){null==d||d(e)}}))))})))),k})),stopAutoLoad:()=>(b&&(u(P),P=void 0,b=0),k),save:t=>g(void 0,null,(function*(){return 1!=S&&(S=2,yield k.schedule((()=>g(void 0,null,(function*(){try{yield l(e.getContent,t)}catch(e){null==d||d(e)}S=0}))))),k})),startAutoSave:()=>g(void 0,null,(function*(){return yield k.stopAutoSave().save(),A=e.addDidFinishTransactionListener(((e,t)=>{const[n,o]=t();v(n)&&v(o)||k.save((()=>[n,o]))})),k})),stopAutoSave:()=>(o(A,e.delListener),A=void 0,k),schedule:(...e)=>g(void 0,null,(function*(){return i(f(m,y),...e),yield g(void 0,null,(function*(){if(!f(w,y)){for(h(w,y,1);!n((e=f(m,y),x=e.shift()));)try{yield x()}catch(e){null==d||d(e)}h(w,y,0)}var e})),k})),getStore:()=>e,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(k[c]=()=>s),a(k)})(e,(()=>A(void 0,null,(function*(){return yield k((e=>A(void 0,null,(function*(){return((e=[])=>d.fromEntries(e))(u(yield L(e,"getAll"),(({k:e,v:t})=>[e,t])))}))))}))),(e=>A(void 0,null,(function*(){return yield k(((e,t)=>A(void 0,null,(function*(){return yield b(e,t)}))),e(),1)}))),(e=>setInterval(e,1e3*s)),(e=>t(e)),y,["getDbName",c])};export{k as createIndexedDbPersister,b as objectStoreMatch};
1
+ const e=Promise,t=clearInterval,n=e=>null==e,o=(e,t,o)=>n(e)?null==o?void 0:o():t(e),l=t=>new e(t),r=t=>{return n=function*(){return e.all(t)},new Promise(((e,t)=>{var o=e=>{try{r(n.next(e))}catch(e){t(e)}},l=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,l);r((n=n.apply(void 0,null)).next())}));var n},u=(e,t)=>e.map(t),i=(e,...t)=>e.push(...t),d=Object,c=e=>d.getPrototypeOf(e),s=d.keys,a=d.freeze,v=e=>(e=>!n(e)&&o(c(e),(e=>e==d.prototype||n(c(e))),(()=>!0)))(e)&&0==(e=>s(e).length)(e),y=e=>new Map(e),f=(e,t)=>null==e?void 0:e.get(t),h=(e,t,o)=>{return n(o)?(r=t,null==(l=e)||l.delete(r),e):null==e?void 0:e.set(t,o);var l,r},p=(e,t,n)=>{var o,l,r;return l=t,null!=(r=null==(o=e)?void 0:o.has(l))&&r||h(e,t,n()),f(e,t)};var g=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},u=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,u);i((n=n.apply(e,t)).next())}));const w=y(),m=y();var A=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},u=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,u);i((n=n.apply(e,t)).next())}));const x=globalThis.window,P=["t","v"],S={keyPath:"k"},b=(e,t)=>A(void 0,null,(function*(){const l=((t,n)=>u(d.entries(t),(([t,n])=>L(e,"put",{k:t,v:n}))))(t);u(yield L(e,"getAllKeys"),(r=>((e,t)=>!n(((e,t)=>o(e,(e=>e[t])))(e,t)))(t,r)?0:i(l,L(e,"delete",r)))),yield r(l)})),L=(e,t,n)=>A(void 0,null,(function*(){return l(((o,l)=>{const r=e[t](n);r.onsuccess=()=>o(r.result),r.onerror=()=>l(`objectStore.${t} error`)}))})),k=(e,c,s=1,y)=>{const k=(e,...t)=>A(void 0,[e,...t],(function*(e,t=[],n=0){return l(((o,l)=>{const i=x.indexedDB.open(c,n?2:void 0);i.onupgradeneeded=()=>n&&u(P,(e=>{try{i.result.createObjectStore(e,S)}catch(e){}})),i.onsuccess=()=>A(void 0,null,(function*(){try{const n=i.result.transaction(P,"readwrite"),l=yield r(u(P,((o,l)=>A(void 0,null,(function*(){return yield e(n.objectStore(o),t[l])})))));i.result.close(),o(l)}catch(e){i.result.close(),l(e)}})),i.onerror=()=>l("indexedDB.open error")}))}));return((e,t,l,r,u,d,[c,s]=[],y=[])=>{let A,x,P,S=0,b=0;p(w,y,(()=>0)),p(m,y,(()=>[]));const L=e=>g(void 0,null,(function*(){return 2!=S&&(S=1,yield k.schedule((()=>g(void 0,null,(function*(){yield e(),S=0}))))),k})),k={load:(n,o)=>g(void 0,null,(function*(){return yield L((()=>g(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,o])}}))))})),startAutoLoad:(...n)=>g(void 0,[...n],(function*(n={},o={}){return k.stopAutoLoad(),yield k.load(n,o),b=1,P=r(((n,o)=>g(void 0,null,(function*(){if(o){const t=o();yield L((()=>g(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield L((()=>g(void 0,null,(function*(){var o;try{e.setContent(null!=(o=null==n?void 0:n())?o:yield t())}catch(e){null==d||d(e)}}))))})))),k})),stopAutoLoad:()=>(b&&(u(P),P=void 0,b=0),k),save:t=>g(void 0,null,(function*(){return 1!=S&&(S=2,yield k.schedule((()=>g(void 0,null,(function*(){try{yield l(e.getContent,t)}catch(e){null==d||d(e)}S=0}))))),k})),startAutoSave:()=>g(void 0,null,(function*(){return yield k.stopAutoSave().save(),A=e.addDidFinishTransactionListener(((e,t)=>{const[n,o]=t();v(n)&&v(o)||k.save((()=>[n,o]))})),k})),stopAutoSave:()=>(o(A,e.delListener),A=void 0,k),schedule:(...e)=>g(void 0,null,(function*(){return i(f(m,y),...e),yield g(void 0,null,(function*(){if(!f(w,y)){for(h(w,y,1);!n((e=f(m,y),x=e.shift()));)try{yield x()}catch(e){null==d||d(e)}h(w,y,0)}var e})),k})),getStore:()=>e,destroy:()=>k.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(k[c]=()=>s),a(k)})(e,(()=>A(void 0,null,(function*(){return yield k((e=>A(void 0,null,(function*(){return((e=[])=>d.fromEntries(e))(u(yield L(e,"getAll"),(({k:e,v:t})=>[e,t])))}))))}))),(e=>A(void 0,null,(function*(){return yield k(((e,t)=>A(void 0,null,(function*(){return yield b(e,t)}))),e(),1)}))),(e=>setInterval(e,1e3*s)),(e=>t(e)),y,["getDbName",c])};export{k as createIndexedDbPersister,b as objectStoreMatch};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,t)=>u(e)?null==t?void 0:t():n(e),d=n=>e(n)==l,c=(e,n,t)=>e.slice(n,t),s=e=>e.length,v=e=>{return n=function*(){return r.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},y="_",f="_id",p=e=>`"${e.replace(/"/g,'""')}"`,h="SELECT",E=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),O=e=>0==s(e),b=(e,n)=>e.filter(n),P=(e,...n)=>e.push(...n),T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},w=(e,n)=>null==e?void 0:e.delete(n),L=Object,R=e=>L.getPrototypeOf(e),N=L.keys,g=L.freeze,S=(e=[])=>L.fromEntries(e),x=(...e)=>L.assign({},...e),D=(e,n)=>m(L.entries(e),(([e,t])=>n(t,e))),C=e=>L.values(e),I=e=>s(N(e)),j=e=>(e=>!u(e)&&a(R(e),(e=>e==L.prototype||u(R(e))),(()=>!0)))(e)&&0==I(e),_=e=>new Map(e),M=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),$=(e,n)=>{var t;return m([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},B=(e,n,t)=>u(t)?(w(e,n),e):null==e?void 0:e.set(n,t),H=(e,n,t)=>(T(e,n)||B(e,n,t()),F(e,n)),k=(e,n,t,l=B)=>(D(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)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),W=e=>new Set(Array.isArray(e)||u(e)?e:[e]),Y=(e,n)=>null==e?void 0:e.add(n);var q=Object.defineProperty,G=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,V=(e,n,t)=>n in e?q(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)&&V(e,t,n[t]);if(G)for(var t of G(n))U.call(n,t)&&V(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 Q=h+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,l)=>{const o=_();return[()=>K(void 0,null,(function*(){return k(o,S(yield v(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+te(n)+")ORDER BY name",n),(n=>K(void 0,[n],(function*({name:n}){return[n,S(m(yield e(h+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>B(o,n,k(H(o,n,_),t,((e,n,t)=>{t!=F(e,n)&&B(e,n,t)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,t)=>K(void 0,null,(function*(){return((e,n)=>!u(F(F(o,e),n)))(n,t)?S(b(m(yield e(Q+p(n)),(e=>{return[e[t],(n=z({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!u(e)&&!j(n)))):{}})),(n,l,r,i,a,d=!1)=>K(void 0,null,(function*(){const c=W();D(null!=r?r:{},(e=>m(N(null!=e?e:{}),(e=>Y(c,e)))));const s=A(c);if(!d&&a&&O(s)&&T(o,n))return yield e("DROP TABLE"+p(n)),void B(o,n);if(O(s)||T(o,n)){const t=F(o,n),r=W(M(t));yield v([...m(s,(l=>K(void 0,null,(function*(){w(r,l)||(yield e(`ALTER TABLE${p(n)}ADD${p(l)}`),B(t,l,""))})))),...!d&&i?m(A(r),(o=>K(void 0,null,(function*(){o!=l&&(yield e(`ALTER TABLE${p(n)}DROP${p(o)}`),B(t,o))})))):[]])}else yield e(`CREATE TABLE${p(n)}(${p(l)} PRIMARY KEY ON CONFLICT REPLACE${E(m(s,(e=>t+p(e))))});`),B(o,n,_([[l,""],...m(s,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+p(n)+"WHERE 1"):yield v(D(r,((t,o)=>K(void 0,null,(function*(){u(t)?yield e("DELETE FROM"+p(n)+Z+p(l)+"=?",[o]):O(s)||(yield ne(e,n,l,N(t),[o,...C(t)]))})))));else if(O(s))T(o,n)&&(yield e("DELETE FROM"+p(n)+"WHERE 1"));else{const t=b(M(F(o,n)),(e=>e!=l)),i=[],u=[];D(null!=r?r:{},((e,n)=>{P(i,n,...m(t,(n=>null==e?void 0:e[n]))),P(u,n)})),yield ne(e,n,l,t,i),yield e("DELETE FROM"+p(n)+Z+p(l)+"NOT IN("+te(u)+")",u)}})),n=>K(void 0,null,(function*(){let t;yield e("BEGIN");try{t=yield n()}catch(e){null==l||l(e)}return yield e("END"),t}))]},ne=(e,n,l,r,i)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+p(n)+"("+p(l)+E(m(r,(e=>t+p(e))))+")VALUES"+c(o(`,(?${o(",?",s(r))})`,s(i)/(s(r)+1)),1)+"ON CONFLICT("+p(l)+")DO UPDATE SET"+E(m(r,(e=>p(e)+"=excluded."+p(e))),t),i)})),te=e=>E(m(e,(()=>"?")),t),le=JSON.parse;var oe=(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 re=_(),ie=_(),ue=(e,n,t,l,o,r,[i,d]=[],c=[])=>{let s,v,y,f=0,p=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const h=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield E.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),E})),E={load:(t,l)=>oe(void 0,null,(function*(){return yield h((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>oe(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),p=1,y=l(((t,l)=>oe(void 0,null,(function*(){if(l){const n=l();yield h((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>oe(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==t?void 0:t())?l:yield n())}catch(e){null==r||r(e)}}))))})))),E})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),E),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield E.schedule((()=>oe(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),E})),startAutoSave:()=>oe(void 0,null,(function*(){return yield E.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();j(t)&&j(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(a(s,e.delListener),s=void 0,E),schedule:(...e)=>oe(void 0,null,(function*(){return P(F(ie,c),...e),yield oe(void 0,null,(function*(){if(!F(re,c)){for(B(re,c,1);!u((e=F(ie,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}B(re,c,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(E[i]=()=>d),g(E)};var ae=(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 de="store",ce=(e,n,t,l,o,[r],i,u)=>{const[a,d,c,s]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield s((()=>ae(void 0,null,(function*(){var e,n;return yield a(),le(null!=(n=null==(e=(yield d(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield s((()=>ae(void 0,null,(function*(){var n,t;yield a(),yield c(r,f,{[y]:{[de]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,["getDb",u],u)};var se=(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 ve=(e,n,t,l,o,[r,i,[a,d,c]],s,p)=>{const[h,E,m,O]=ee(n,s,o),P=(e,n)=>se(void 0,null,(function*(){return yield v($(i,((t,l)=>se(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield m(t,l,u,o,r,n))})))))})),T=(e,n)=>se(void 0,null,(function*(){return d?yield m(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>se(void 0,null,(function*(){return yield O((()=>se(void 0,null,(function*(){yield h();const e=yield se(void 0,null,(function*(){return S(b(yield v($(r,((e,n)=>se(void 0,[e,n],(function*([e,n],t){return[e,yield E(t,n)]}))))),(e=>!j(e[1]))))})),n=yield se(void 0,null,(function*(){return a?(yield E(c,f))[y]:{}}));return j(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>se(void 0,null,(function*(){return yield O((()=>se(void 0,null,(function*(){if(yield h(),u(n)){const[n,t]=e();yield P(n),yield T(t)}else{const[e,t]=n();yield P(e,!0),yield T(t,!0)}}))))}))),t,l,o,["getDb",p],p)},ye="json",fe="autoLoadIntervalSeconds",pe="rowIdColumnName",he="tableId",Ee="tableName",me={mode:ye,[fe]:1},Oe={load:0,save:0,[Ee]:n+"_values"},be=(e,n,t,l)=>{const o=_();return D(e,((e,r)=>{const i=c(C(x(n,d(e)?{[t]:e}:e)),0,I(n));u(i[0])||l(r,i[0])||B(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 Te="pragma ",Ae="data_version",we="schema_version",Le=(e,t,l,o,r,u,a,s)=>{let v,y,p;const[E,m,O,b]=(e=>{const t=(e=>x(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[fe];if(t.mode==ye){const{storeTableName:e=n}=t;return[1,l,[e],W(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=c(C(x(Oe,i)),0,I(Oe)),a=u[2],s=W(a);return[0,l,[be(o,{[he]:null,[pe]:f},he,(e=>Y(s,e)&&e==a)),be(r,{[Ee]:null,[pe]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ee,((e,n)=>Y(s,n)&&n==a)),u],s]})(t);return(E?ce:ve)(e,u?(e,n)=>Pe(void 0,null,(function*(){return u(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Pe(void 0,null,(function*(){try{const n=(yield l(Te+Ae))[0][Ae],t=(yield l(Te+we))[0][we],o=(yield l(h+" TOTAL_CHANGES() c"))[0].c;n==(null!=v?v:v=n)&&t==(null!=y?y:y=t)&&o==(null!=p?p:p=o)||(e(),v=n,y=t)}catch(e){}})),t=m,n(),setInterval(n,1e3*t)),o((n=>b.has(n)?e():0))];var n,t}),(([e,n])=>{i(e),v=y=null,r(n)}),a,O,A(b),s)};var Re=Object.defineProperty,Ne=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable,xe=(e,n,t)=>n in e?Re(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const De=(e,n,t,l,o,r)=>Le(e,l,((e,...n)=>{return l=[e,...n],o=function*(e,n=[]){return t.exec(e,{bind:n,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,n)=>{for(var t in n||(n={}))ge.call(n,t)&&xe(e,t,n[t]);if(Ne)for(var t of Ne(n))Se.call(n,t)&&xe(e,t,n[t]);return e})({},e)))},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.capi.sqlite3_update_hook(t,((n,t,l,o)=>e(o)),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)),o,r,t);export{De as createSqliteWasmPersister};
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,t)=>u(e)?null==t?void 0:t():n(e),d=n=>e(n)==l,c=(e,n,t)=>e.slice(n,t),s=e=>e.length,v=e=>{return n=function*(){return r.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},y="_",f="_id",p=e=>`"${e.replace(/"/g,'""')}"`,h="SELECT",E=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),O=e=>0==s(e),b=(e,n)=>e.filter(n),P=(e,...n)=>e.push(...n),T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},w=(e,n)=>null==e?void 0:e.delete(n),L=Object,R=e=>L.getPrototypeOf(e),N=L.keys,S=L.freeze,g=(e=[])=>L.fromEntries(e),x=(...e)=>L.assign({},...e),C=(e,n)=>m(L.entries(e),(([e,t])=>n(t,e))),D=e=>L.values(e),I=e=>s(N(e)),j=e=>(e=>!u(e)&&a(R(e),(e=>e==L.prototype||u(R(e))),(()=>!0)))(e)&&0==I(e),_=e=>new Map(e),M=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),$=(e,n)=>{var t;return m([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},B=(e,n,t)=>u(t)?(w(e,n),e):null==e?void 0:e.set(n,t),H=(e,n,t)=>(T(e,n)||B(e,n,t()),F(e,n)),k=(e,n,t,l=B)=>(C(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)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),W=e=>new Set(Array.isArray(e)||u(e)?e:[e]),Y=(e,n)=>null==e?void 0:e.add(n);var q=Object.defineProperty,G=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,V=(e,n,t)=>n in e?q(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)&&V(e,t,n[t]);if(G)for(var t of G(n))U.call(n,t)&&V(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 Q=h+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,l)=>{const o=_();return[()=>K(void 0,null,(function*(){return k(o,g(yield v(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+te(n)+")ORDER BY name",n),(n=>K(void 0,[n],(function*({name:n}){return[n,g(m(yield e(h+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>B(o,n,k(H(o,n,_),t,((e,n,t)=>{t!=F(e,n)&&B(e,n,t)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,t)=>K(void 0,null,(function*(){return((e,n)=>!u(F(F(o,e),n)))(n,t)?g(b(m(yield e(Q+p(n)),(e=>{return[e[t],(n=z({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!u(e)&&!j(n)))):{}})),(n,l,r,i,a,d=!1)=>K(void 0,null,(function*(){const c=W();C(null!=r?r:{},(e=>m(N(null!=e?e:{}),(e=>Y(c,e)))));const s=A(c);if(!d&&a&&O(s)&&T(o,n))return yield e("DROP TABLE"+p(n)),void B(o,n);if(O(s)||T(o,n)){const t=F(o,n),r=W(M(t));yield v([...m(s,(l=>K(void 0,null,(function*(){w(r,l)||(yield e(`ALTER TABLE${p(n)}ADD${p(l)}`),B(t,l,""))})))),...!d&&i?m(A(r),(o=>K(void 0,null,(function*(){o!=l&&(yield e(`ALTER TABLE${p(n)}DROP${p(o)}`),B(t,o))})))):[]])}else yield e(`CREATE TABLE${p(n)}(${p(l)} PRIMARY KEY ON CONFLICT REPLACE${E(m(s,(e=>t+p(e))))});`),B(o,n,_([[l,""],...m(s,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+p(n)+"WHERE 1"):yield v(C(r,((t,o)=>K(void 0,null,(function*(){u(t)?yield e("DELETE FROM"+p(n)+Z+p(l)+"=?",[o]):O(s)||(yield ne(e,n,l,N(t),[o,...D(t)]))})))));else if(O(s))T(o,n)&&(yield e("DELETE FROM"+p(n)+"WHERE 1"));else{const t=b(M(F(o,n)),(e=>e!=l)),i=[],u=[];C(null!=r?r:{},((e,n)=>{P(i,n,...m(t,(n=>null==e?void 0:e[n]))),P(u,n)})),yield ne(e,n,l,t,i),yield e("DELETE FROM"+p(n)+Z+p(l)+"NOT IN("+te(u)+")",u)}})),n=>K(void 0,null,(function*(){let t;yield e("BEGIN");try{t=yield n()}catch(e){null==l||l(e)}return yield e("END"),t}))]},ne=(e,n,l,r,i)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+p(n)+"("+p(l)+E(m(r,(e=>t+p(e))))+")VALUES"+c(o(`,(?${o(",?",s(r))})`,s(i)/(s(r)+1)),1)+"ON CONFLICT("+p(l)+")DO UPDATE SET"+E(m(r,(e=>p(e)+"=excluded."+p(e))),t),i)})),te=e=>E(m(e,(()=>"?")),t),le=JSON.parse;var oe=(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 re=_(),ie=_(),ue=(e,n,t,l,o,r,[i,d]=[],c=[])=>{let s,v,y,f=0,p=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const h=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield E.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),E})),E={load:(t,l)=>oe(void 0,null,(function*(){return yield h((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>oe(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),p=1,y=l(((t,l)=>oe(void 0,null,(function*(){if(l){const n=l();yield h((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>oe(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==t?void 0:t())?l:yield n())}catch(e){null==r||r(e)}}))))})))),E})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),E),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield E.schedule((()=>oe(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),E})),startAutoSave:()=>oe(void 0,null,(function*(){return yield E.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();j(t)&&j(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(a(s,e.delListener),s=void 0,E),schedule:(...e)=>oe(void 0,null,(function*(){return P(F(ie,c),...e),yield oe(void 0,null,(function*(){if(!F(re,c)){for(B(re,c,1);!u((e=F(ie,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}B(re,c,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(E[i]=()=>d),S(E)};var ae=(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 de="store",ce=(e,n,t,l,o,[r],i,u,a)=>{const[d,c,s,v]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var e,n;return yield d(),le(null!=(n=null==(e=(yield c(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var n,t;yield d(),yield s(r,f,{[y]:{[de]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,[a,u],u)};var se=(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 ve=(e,n,t,l,o,[r,i,[a,d,c]],s,p,h)=>{const[E,m,O,P]=ee(n,s,o),T=(e,n)=>se(void 0,null,(function*(){return yield v($(i,((t,l)=>se(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield O(t,l,u,o,r,n))})))))})),A=(e,n)=>se(void 0,null,(function*(){return d?yield O(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>se(void 0,null,(function*(){return yield P((()=>se(void 0,null,(function*(){yield E();const e=yield se(void 0,null,(function*(){return g(b(yield v($(r,((e,n)=>se(void 0,[e,n],(function*([e,n],t){return[e,yield m(t,n)]}))))),(e=>!j(e[1]))))})),n=yield se(void 0,null,(function*(){return a?(yield m(c,f))[y]:{}}));return j(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>se(void 0,null,(function*(){return yield P((()=>se(void 0,null,(function*(){if(yield E(),u(n)){const[n,t]=e();yield T(n),yield A(t)}else{const[e,t]=n();yield T(e,!0),yield A(t,!0)}}))))}))),t,l,o,[h,p],p)},ye="json",fe="autoLoadIntervalSeconds",pe="rowIdColumnName",he="tableId",Ee="tableName",me={mode:ye,[fe]:1},Oe={load:0,save:0,[Ee]:n+"_values"},be=(e,n,t,l)=>{const o=_();return C(e,((e,r)=>{const i=c(D(x(n,d(e)?{[t]:e}:e)),0,I(n));u(i[0])||l(r,i[0])||B(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 Te="pragma ",Ae="data_version",we="schema_version",Le=(e,t,l,o,r,u,a,s,v="getDb")=>{let y,p,E;const[m,O,b,P]=(e=>{const t=(e=>x(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[fe];if(t.mode==ye){const{storeTableName:e=n}=t;return[1,l,[e],W(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=c(D(x(Oe,i)),0,I(Oe)),a=u[2],s=W(a);return[0,l,[be(o,{[he]:null,[pe]:f},he,(e=>Y(s,e)&&e==a)),be(r,{[Ee]:null,[pe]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ee,((e,n)=>Y(s,n)&&n==a)),u],s]})(t);return(m?ce:ve)(e,u?(e,n)=>Pe(void 0,null,(function*(){return u(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Pe(void 0,null,(function*(){try{const n=(yield l(Te+Ae))[0][Ae],t=(yield l(Te+we))[0][we],o=(yield l(h+" TOTAL_CHANGES() c"))[0].c;n==(null!=y?y:y=n)&&t==(null!=p?p:p=t)&&o==(null!=E?E:E=o)||(e(),y=n,p=t)}catch(e){}})),t=O,n(),setInterval(n,1e3*t)),o((n=>P.has(n)?e():0))];var n,t}),(([e,n])=>{i(e),y=p=null,r(n)}),a,b,A(P),s,v)};var Re=Object.defineProperty,Ne=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,xe=(e,n,t)=>n in e?Re(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Ce=(e,n,t,l,o,r)=>Le(e,l,((e,...n)=>{return l=[e,...n],o=function*(e,n=[]){return t.exec(e,{bind:n,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,n)=>{for(var t in n||(n={}))Se.call(n,t)&&xe(e,t,n[t]);if(Ne)for(var t of Ne(n))ge.call(n,t)&&xe(e,t,n[t]);return e})({},e)))},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.capi.sqlite3_update_hook(t,((n,t,l,o)=>e(o)),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)),o,r,t);export{Ce as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,l)=>u(e)?null==l?void 0:l():n(e),d=n=>e(n)==t,c=(e,n,l)=>e.slice(n,l),v=e=>e.length,s=e=>{return n=function*(){return r.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},y="_",f="_id",h=e=>`"${e.replace(/"/g,'""')}"`,E="SELECT",p=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),O=e=>0==v(e),T=(e,n)=>e.filter(n),A=(e,...n)=>e.push(...n),L=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},P=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),w=Object,R=e=>w.getPrototypeOf(e),N=w.keys,g=w.freeze,D=(e=[])=>w.fromEntries(e),S=(...e)=>w.assign({},...e),x=(e,n)=>m(w.entries(e),(([e,l])=>n(l,e))),C=e=>w.values(e),I=e=>v(N(e)),F=e=>(e=>!u(e)&&a(R(e),(e=>e==w.prototype||u(R(e))),(()=>!0)))(e)&&0==I(e),M=e=>new Map(e),$=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},_=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>{var l;return m([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},B=(e,n,l)=>u(l)?(b(e,n),e):null==e?void 0:e.set(n,l),H=(e,n,l)=>(L(e,n)||B(e,n,l()),_(e,n)),W=(e,n,l,t=B)=>(x(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),Y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),k=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))U.call(n,l)&&K(e,l,n[l]);if(J)for(var l of J(n))z.call(n,l)&&K(e,l,n[l]);return e},q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Q=E+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,t)=>{const o=M();return[()=>q(void 0,null,(function*(){return W(o,D(yield s(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+le(n)+")ORDER BY name",n),(n=>q(void 0,[n],(function*({name:n}){return[n,D(m(yield e(E+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>B(o,n,W(H(o,n,M),l,((e,n,l)=>{l!=_(e,n)&&B(e,n,l)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,l)=>q(void 0,null,(function*(){return((e,n)=>!u(_(_(o,e),n)))(n,l)?D(T(m(yield e(Q+h(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!u(e)&&!F(n)))):{}})),(n,t,r,i,a,d=!1)=>q(void 0,null,(function*(){const c=Y();x(null!=r?r:{},(e=>m(N(null!=e?e:{}),(e=>k(c,e)))));const v=P(c);if(!d&&a&&O(v)&&L(o,n))return yield e("DROP TABLE"+h(n)),void B(o,n);if(O(v)||L(o,n)){const l=_(o,n),r=Y($(l));yield s([...m(v,(t=>q(void 0,null,(function*(){b(r,t)||(yield e(`ALTER TABLE${h(n)}ADD${h(t)}`),B(l,t,""))})))),...!d&&i?m(P(r),(o=>q(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${h(n)}DROP${h(o)}`),B(l,o))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(t)} PRIMARY KEY ON CONFLICT REPLACE${p(m(v,(e=>l+h(e))))});`),B(o,n,M([[t,""],...m(v,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield s(x(r,((l,o)=>q(void 0,null,(function*(){u(l)?yield e("DELETE FROM"+h(n)+Z+h(t)+"=?",[o]):O(v)||(yield ne(e,n,t,N(l),[o,...C(l)]))})))));else if(O(v))L(o,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=T($(_(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{A(i,n,...m(l,(n=>null==e?void 0:e[n]))),A(u,n)})),yield ne(e,n,t,l,i),yield e("DELETE FROM"+h(n)+Z+h(t)+"NOT IN("+le(u)+")",u)}})),n=>q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ne=(e,n,t,r,i)=>q(void 0,null,(function*(){return yield e("INSERT INTO"+h(n)+"("+h(t)+p(m(r,(e=>l+h(e))))+")VALUES"+c(o(`,(?${o(",?",v(r))})`,v(i)/(v(r)+1)),1)+"ON CONFLICT("+h(t)+")DO UPDATE SET"+p(m(r,(e=>h(e)+"=excluded."+h(e))),l),i)})),le=e=>p(m(e,(()=>"?")),l),te=JSON.parse;var oe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const re=M(),ie=M(),ue=(e,n,l,t,o,r,[i,d]=[],c=[])=>{let v,s,y,f=0,h=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const E=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>oe(void 0,null,(function*(){return yield E((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>oe(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),h=1,y=t(((l,t)=>oe(void 0,null,(function*(){if(t){const n=t();yield E((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield E((()=>oe(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),p})),stopAutoLoad:()=>(h&&(o(y),y=void 0,h=0),p),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>oe(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>oe(void 0,null,(function*(){return yield p.stopAutoSave().save(),v=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();F(l)&&F(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(a(v,e.delListener),v=void 0,p),schedule:(...e)=>oe(void 0,null,(function*(){return A(_(ie,c),...e),yield oe(void 0,null,(function*(){if(!_(re,c)){for(B(re,c,1);!u((e=_(ie,c),s=e.shift()));)try{yield s()}catch(e){null==r||r(e)}B(re,c,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>d),g(p)};var ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de="store",ce=(e,n,l,t,o,[r],i,u)=>{const[a,d,c,v]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var e,n;return yield a(),te(null!=(n=null==(e=(yield d(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var n,l;yield a(),yield c(r,f,{[y]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?w.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,["getDb",u],u)};var ve=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const se=(e,n,l,t,o,[r,i,[a,d,c]],v,h)=>{const[E,p,m,O]=ee(n,v,o),A=(e,n)=>ve(void 0,null,(function*(){return yield s(j(i,((l,t)=>ve(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield m(l,t,u,o,r,n))})))))})),L=(e,n)=>ve(void 0,null,(function*(){return d?yield m(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>ve(void 0,null,(function*(){return yield O((()=>ve(void 0,null,(function*(){yield E();const e=yield ve(void 0,null,(function*(){return D(T(yield s(j(r,((e,n)=>ve(void 0,[e,n],(function*([e,n],l){return[e,yield p(l,n)]}))))),(e=>!F(e[1]))))})),n=yield ve(void 0,null,(function*(){return a?(yield p(c,f))[y]:{}}));return F(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>ve(void 0,null,(function*(){return yield O((()=>ve(void 0,null,(function*(){if(yield E(),u(n)){const[n,l]=e();yield A(n),yield L(l)}else{const[e,l]=n();yield A(e,!0),yield L(l,!0)}}))))}))),l,t,o,["getDb",h],h)},ye="json",fe="autoLoadIntervalSeconds",he="rowIdColumnName",Ee="tableId",pe="tableName",me={mode:ye,[fe]:1},Oe={load:0,save:0,[pe]:n+"_values"},Te=(e,n,l,t)=>{const o=M();return x(e,((e,r)=>{const i=c(C(S(n,d(e)?{[l]:e}:e)),0,I(n));u(i[0])||t(r,i[0])||B(o,r,i)})),o};var Ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma ",Pe="data_version",be="schema_version",we=(e,l,t,o,r,u,a,v)=>{let s,y,h;const[p,m,O,T]=(e=>{const l=(e=>S(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[fe];if(l.mode==ye){const{storeTableName:e=n}=l;return[1,t,[e],Y(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=c(C(S(Oe,i)),0,I(Oe)),a=u[2],v=Y(a);return[0,t,[Te(o,{[Ee]:null,[he]:f},Ee,(e=>k(v,e)&&e==a)),Te(r,{[pe]:null,[he]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pe,((e,n)=>k(v,n)&&n==a)),u],v]})(l);return(p?ce:se)(e,u?(e,n)=>Ae(void 0,null,(function*(){return u(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Ae(void 0,null,(function*(){try{const n=(yield t(Le+Pe))[0][Pe],l=(yield t(Le+be))[0][be],o=(yield t(E+" TOTAL_CHANGES() c"))[0].c;n==(null!=s?s:s=n)&&l==(null!=y?y:y=l)&&o==(null!=h?h:h=o)||(e(),s=n,y=l)}catch(e){}})),l=m,n(),setInterval(n,1e3*l)),o((n=>T.has(n)?e():0))];var n,l}),(([e,n])=>{i(e),s=y=null,r(n)}),a,O,P(T),v)},Re="change",Ne=(e,n,l,t,o)=>we(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield(t=(t,o)=>n.all(e,l,((e,n)=>e?o(e):t(n))),new r(t));var t},new Promise(((e,n)=>{var l=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(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>{const l=(n,l,t)=>e(t);return n.on(Re,l),l}),(e=>n.off(Re,e)),t,o,n);export{Ne as createSqlite3Persister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,l)=>u(e)?null==l?void 0:l():n(e),d=n=>e(n)==t,c=(e,n,l)=>e.slice(n,l),v=e=>e.length,s=e=>{return n=function*(){return r.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},y="_",f="_id",h=e=>`"${e.replace(/"/g,'""')}"`,E="SELECT",p=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),O=e=>0==v(e),T=(e,n)=>e.filter(n),A=(e,...n)=>e.push(...n),L=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},P=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},w=(e,n)=>null==e?void 0:e.delete(n),R=Object,b=e=>R.getPrototypeOf(e),N=R.keys,S=R.freeze,g=(e=[])=>R.fromEntries(e),x=(...e)=>R.assign({},...e),C=(e,n)=>m(R.entries(e),(([e,l])=>n(l,e))),D=e=>R.values(e),I=e=>v(N(e)),F=e=>(e=>!u(e)&&a(b(e),(e=>e==R.prototype||u(b(e))),(()=>!0)))(e)&&0==I(e),M=e=>new Map(e),$=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},_=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>{var l;return m([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},B=(e,n,l)=>u(l)?(w(e,n),e):null==e?void 0:e.set(n,l),H=(e,n,l)=>(L(e,n)||B(e,n,l()),_(e,n)),W=(e,n,l,t=B)=>(C(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),Y=e=>new Set(Array.isArray(e)||u(e)?e:[e]),k=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))U.call(n,l)&&K(e,l,n[l]);if(J)for(var l of J(n))z.call(n,l)&&K(e,l,n[l]);return e},q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Q=E+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,t)=>{const o=M();return[()=>q(void 0,null,(function*(){return W(o,g(yield s(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+le(n)+")ORDER BY name",n),(n=>q(void 0,[n],(function*({name:n}){return[n,g(m(yield e(E+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>B(o,n,W(H(o,n,M),l,((e,n,l)=>{l!=_(e,n)&&B(e,n,l)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,l)=>q(void 0,null,(function*(){return((e,n)=>!u(_(_(o,e),n)))(n,l)?g(T(m(yield e(Q+h(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!u(e)&&!F(n)))):{}})),(n,t,r,i,a,d=!1)=>q(void 0,null,(function*(){const c=Y();C(null!=r?r:{},(e=>m(N(null!=e?e:{}),(e=>k(c,e)))));const v=P(c);if(!d&&a&&O(v)&&L(o,n))return yield e("DROP TABLE"+h(n)),void B(o,n);if(O(v)||L(o,n)){const l=_(o,n),r=Y($(l));yield s([...m(v,(t=>q(void 0,null,(function*(){w(r,t)||(yield e(`ALTER TABLE${h(n)}ADD${h(t)}`),B(l,t,""))})))),...!d&&i?m(P(r),(o=>q(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${h(n)}DROP${h(o)}`),B(l,o))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(t)} PRIMARY KEY ON CONFLICT REPLACE${p(m(v,(e=>l+h(e))))});`),B(o,n,M([[t,""],...m(v,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield s(C(r,((l,o)=>q(void 0,null,(function*(){u(l)?yield e("DELETE FROM"+h(n)+Z+h(t)+"=?",[o]):O(v)||(yield ne(e,n,t,N(l),[o,...D(l)]))})))));else if(O(v))L(o,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=T($(_(o,n)),(e=>e!=t)),i=[],u=[];C(null!=r?r:{},((e,n)=>{A(i,n,...m(l,(n=>null==e?void 0:e[n]))),A(u,n)})),yield ne(e,n,t,l,i),yield e("DELETE FROM"+h(n)+Z+h(t)+"NOT IN("+le(u)+")",u)}})),n=>q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ne=(e,n,t,r,i)=>q(void 0,null,(function*(){return yield e("INSERT INTO"+h(n)+"("+h(t)+p(m(r,(e=>l+h(e))))+")VALUES"+c(o(`,(?${o(",?",v(r))})`,v(i)/(v(r)+1)),1)+"ON CONFLICT("+h(t)+")DO UPDATE SET"+p(m(r,(e=>h(e)+"=excluded."+h(e))),l),i)})),le=e=>p(m(e,(()=>"?")),l),te=JSON.parse;var oe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const re=M(),ie=M(),ue=(e,n,l,t,o,r,[i,d]=[],c=[])=>{let v,s,y,f=0,h=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const E=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>oe(void 0,null,(function*(){return yield E((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>oe(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),h=1,y=t(((l,t)=>oe(void 0,null,(function*(){if(t){const n=t();yield E((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield E((()=>oe(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),p})),stopAutoLoad:()=>(h&&(o(y),y=void 0,h=0),p),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>oe(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>oe(void 0,null,(function*(){return yield p.stopAutoSave().save(),v=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();F(l)&&F(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(a(v,e.delListener),v=void 0,p),schedule:(...e)=>oe(void 0,null,(function*(){return A(_(ie,c),...e),yield oe(void 0,null,(function*(){if(!_(re,c)){for(B(re,c,1);!u((e=_(ie,c),s=e.shift()));)try{yield s()}catch(e){null==r||r(e)}B(re,c,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>d),S(p)};var ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de="store",ce=(e,n,l,t,o,[r],i,u,a)=>{const[d,c,v,s]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield s((()=>ae(void 0,null,(function*(){var e,n;return yield d(),te(null!=(n=null==(e=(yield c(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield s((()=>ae(void 0,null,(function*(){var n,l;yield d(),yield v(r,f,{[y]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?R.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[a,u],u)};var ve=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const se=(e,n,l,t,o,[r,i,[a,d,c]],v,h,E)=>{const[p,m,O,A]=ee(n,v,o),L=(e,n)=>ve(void 0,null,(function*(){return yield s(j(i,((l,t)=>ve(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield O(l,t,u,o,r,n))})))))})),P=(e,n)=>ve(void 0,null,(function*(){return d?yield O(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>ve(void 0,null,(function*(){return yield A((()=>ve(void 0,null,(function*(){yield p();const e=yield ve(void 0,null,(function*(){return g(T(yield s(j(r,((e,n)=>ve(void 0,[e,n],(function*([e,n],l){return[e,yield m(l,n)]}))))),(e=>!F(e[1]))))})),n=yield ve(void 0,null,(function*(){return a?(yield m(c,f))[y]:{}}));return F(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>ve(void 0,null,(function*(){return yield A((()=>ve(void 0,null,(function*(){if(yield p(),u(n)){const[n,l]=e();yield L(n),yield P(l)}else{const[e,l]=n();yield L(e,!0),yield P(l,!0)}}))))}))),l,t,o,[E,h],h)},ye="json",fe="autoLoadIntervalSeconds",he="rowIdColumnName",Ee="tableId",pe="tableName",me={mode:ye,[fe]:1},Oe={load:0,save:0,[pe]:n+"_values"},Te=(e,n,l,t)=>{const o=M();return C(e,((e,r)=>{const i=c(D(x(n,d(e)?{[l]:e}:e)),0,I(n));u(i[0])||t(r,i[0])||B(o,r,i)})),o};var Ae=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma ",Pe="data_version",we="schema_version",Re=(e,l,t,o,r,u,a,v,s="getDb")=>{let y,h,p;const[m,O,T,A]=(e=>{const l=(e=>x(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[fe];if(l.mode==ye){const{storeTableName:e=n}=l;return[1,t,[e],Y(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=c(D(x(Oe,i)),0,I(Oe)),a=u[2],v=Y(a);return[0,t,[Te(o,{[Ee]:null,[he]:f},Ee,(e=>k(v,e)&&e==a)),Te(r,{[pe]:null,[he]:f,deleteEmptyColumns:0,deleteEmptyTable:0},pe,((e,n)=>k(v,n)&&n==a)),u],v]})(l);return(m?ce:se)(e,u?(e,n)=>Ae(void 0,null,(function*(){return u(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Ae(void 0,null,(function*(){try{const n=(yield t(Le+Pe))[0][Pe],l=(yield t(Le+we))[0][we],o=(yield t(E+" TOTAL_CHANGES() c"))[0].c;n==(null!=y?y:y=n)&&l==(null!=h?h:h=l)&&o==(null!=p?p:p=o)||(e(),y=n,h=l)}catch(e){}})),l=O,n(),setInterval(n,1e3*l)),o((n=>A.has(n)?e():0))];var n,l}),(([e,n])=>{i(e),y=h=null,r(n)}),a,T,P(A),v,s)},be="change",Ne=(e,n,l,t,o)=>Re(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield(t=(t,o)=>n.all(e,l,((e,n)=>e?o(e):t(n))),new r(t));var t},new Promise(((e,n)=>{var l=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(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>{const l=(n,l,t)=>e(t);return n.on(be,l),l}),(e=>n.off(be,e)),t,o,n);export{Ne as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),l=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",p=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),m=a=>0==l(a),L=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),h=Object,D=a=>h.getPrototypeOf(a),C=h.keys,S=h.freeze,g=(a=[])=>h.fromEntries(a),I=(...a)=>h.assign({},...a),b=(a,t)=>A(h.entries(a),(([a,e])=>t(e,a))),F=a=>h.values(a),M=a=>l(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==h.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(N(a,t),a):a?.set(t,e),j=(a,t,e)=>(R(a,t)||W(a,t,e()),B(a,t)),x=(a,t,e,s=W)=>(b(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),U=a=>new Set(Array.isArray(a)||o(a)?a:[a]),Y=(a,t)=>a?.add(t),k=T+"*FROM",G="FROM pragma_table_",J="WHERE",z=(a,t,s)=>{const n=_();return[async()=>x(n,g(await E(A(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,g(A(await a(T+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,x(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?g(L(A(await a(k+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,w=!1)=>{const y=U();b(i??{},(a=>A(C(a??{}),(a=>Y(y,a)))));const l=f(y);if(!w&&r&&m(l)&&R(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(m(l)||R(n,t)){const e=B(n,t),i=U(P(e));await E([...A(l,(async s=>{N(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!w&&c?A(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${p(A(l,(a=>e+v(a))))});`),W(n,t,_([[s,""],...A(l,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(b(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+J+v(s)+"=?",[n]):m(l)||await K(a,t,s,C(e),[n,...F(e)])})));else if(m(l))R(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];b(i??{},((a,t)=>{O(c,t,...A(e,(t=>a?.[t]))),O(o,t)})),await K(a,t,s,e,c),await a("DELETE FROM"+v(t)+J+v(s)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},K=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+p(A(i,(a=>e+v(a))))+")VALUES"+y(n(`,(?${n(",?",l(i))})`,l(c)/(l(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+p(A(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>p(A(a,(()=>"?")),e),q=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,w]=[],y=[])=>{let l,E,u,d=0,v=0;j(Q,y,(()=>0)),j(X,y,(()=>[]));const T=async a=>(2!=d&&(d=1,await p.schedule((async()=>{await a(),d=0}))),p),p={load:async(e,s)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),p),save:async t=>(1!=d&&(d=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),l=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(r(l,a.delListener),l=void 0,p),schedule:async(...a)=>(O(B(X,y),...a),await(async()=>{if(!B(Q,y)){for(W(Q,y,1);!o((a=B(X,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,y,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>w),S(p)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,w,y,l]=z(t,c,n);return Z(a,(async()=>await l((async()=>(await r(),q((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await l((async()=>{var t;await r(),await y(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,w,y]],l,v)=>{const[T,p,A,m]=z(t,l,n),O=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await A(e,s,o,n,i,t)}))),R=async(a,t)=>w?await A(y,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await m((async()=>{await T();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await p(y,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await T(),o(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,s,n,["getDb",v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},wa={load:0,save:0,[oa]:t+"_values"},ya=(a,t,e,s)=>{const n=_();return b(a,((a,i)=>{const c=y(F(I(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},la="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,l)=>{let E,u,v;const[p,A,m,L]=(a=>{const e=(a=>I(ra,w(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],U(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(F(I(wa,c)),0,M(wa)),r=o[2],l=U(r);return[0,s,[ya(n,{[ca]:null,[ia]:d},ca,(a=>Y(l,a)&&a==r)),ya(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>Y(l,t)&&t==r)),o],l]})(e);return(p?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(la+Ea))[0][Ea],e=(await s(la+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(v??=n)||(a(),E=t,u=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,m,f(L),l)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{va as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),l=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",p=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),m=a=>0==l(a),L=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),R=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),h=Object,C=a=>h.getPrototypeOf(a),D=h.keys,S=h.freeze,g=(a=[])=>h.fromEntries(a),I=(...a)=>h.assign({},...a),b=(a,t)=>A(h.entries(a),(([a,e])=>t(e,a))),F=a=>h.values(a),M=a=>l(D(a)),$=a=>(a=>!o(a)&&r(C(a),(a=>a==h.prototype||o(C(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(N(a,t),a):a?.set(t,e),j=(a,t,e)=>(R(a,t)||W(a,t,e()),B(a,t)),x=(a,t,e,s=W)=>(b(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),U=a=>new Set(Array.isArray(a)||o(a)?a:[a]),Y=(a,t)=>a?.add(t),k=T+"*FROM",G="FROM pragma_table_",J="WHERE",z=(a,t,s)=>{const n=_();return[async()=>x(n,g(await E(A(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,g(A(await a(T+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,x(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?g(L(A(await a(k+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,w=!1)=>{const y=U();b(i??{},(a=>A(D(a??{}),(a=>Y(y,a)))));const l=f(y);if(!w&&r&&m(l)&&R(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(m(l)||R(n,t)){const e=B(n,t),i=U(P(e));await E([...A(l,(async s=>{N(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!w&&c?A(f(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${p(A(l,(a=>e+v(a))))});`),W(n,t,_([[s,""],...A(l,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(b(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+J+v(s)+"=?",[n]):m(l)||await K(a,t,s,D(e),[n,...F(e)])})));else if(m(l))R(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];b(i??{},((a,t)=>{O(c,t,...A(e,(t=>a?.[t]))),O(o,t)})),await K(a,t,s,e,c),await a("DELETE FROM"+v(t)+J+v(s)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},K=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+p(A(i,(a=>e+v(a))))+")VALUES"+y(n(`,(?${n(",?",l(i))})`,l(c)/(l(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+p(A(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>p(A(a,(()=>"?")),e),q=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,w]=[],y=[])=>{let l,E,u,d=0,v=0;j(Q,y,(()=>0)),j(X,y,(()=>[]));const T=async a=>(2!=d&&(d=1,await p.schedule((async()=>{await a(),d=0}))),p),p={load:async(e,s)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),p),save:async t=>(1!=d&&(d=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),l=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(r(l,a.delListener),l=void 0,p),schedule:async(...a)=>(O(B(X,y),...a),await(async()=>{if(!B(Q,y)){for(W(Q,y,1);!o((a=B(X,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,y,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>w),S(p)},aa="store",ta=(a,t,e,s,n,[i],c,o,r)=>{const[w,y,l,E]=z(t,c,n);return Z(a,(async()=>await E((async()=>(await w(),q((await y(i,d))[u]?.[aa]??"null"))))),(async a=>await E((async()=>{var t;await w(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ea=(a,t,e,s,n,[i,c,[r,w,y]],l,v,T)=>{const[p,A,m,O]=z(t,l,n),R=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),f=async(a,t)=>w?await m(y,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await O((async()=>{await p();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(y,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),o(t)){const[t,e]=a();await R(t),await f(e)}else{const[a,e]=t();await R(a,!0),await f(e,!0)}}))),e,s,n,[T,v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},wa={load:0,save:0,[oa]:t+"_values"},ya=(a,t,e,s)=>{const n=_();return b(a,((a,i)=>{const c=y(F(I(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},la="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,l,E="getDb")=>{let u,v,p;const[A,m,L,O]=(a=>{const e=(a=>I(ra,w(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],U(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(F(I(wa,c)),0,M(wa)),r=o[2],l=U(r);return[0,s,[ya(n,{[ca]:null,[ia]:d},ca,(a=>Y(l,a)&&a==r)),ya(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>Y(l,t)&&t==r)),o],l]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(la+Ea))[0][Ea],e=(await s(la+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&n==(p??=n)||(a(),u=t,v=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,f(O),l,E)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{va as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),N=Object,D=a=>N.getPrototypeOf(a),C=N.keys,b=N.freeze,g=(a=[])=>N.fromEntries(a),S=(...a)=>N.assign({},...a),I=(a,t)=>A(N.entries(a),(([a,e])=>t(e,a))),F=a=>N.values(a),M=a=>y(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(R(a,t),a):a?.set(t,e),j=(a,t,e)=>(h(a,t)||W(a,t,e()),B(a,t)),Y=(a,t,e,s=W)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),x=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",q=(a,t,s)=>{const n=_();return[async()=>Y(n,g(await E(A(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,g(A(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,Y(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?g(L(A(await a(G+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,w=!1)=>{const l=k();I(i??{},(a=>A(C(a??{}),(a=>x(l,a)))));const y=O(l);if(!w&&r&&p(y)&&h(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(p(y)||h(n,t)){const e=B(n,t),i=k(P(e));await E([...A(y,(async s=>{R(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!w&&c?A(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${m(A(y,(a=>e+v(a))))});`),W(n,t,_([[s,""],...A(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(s)+"=?",[n]):p(y)||await z(a,t,s,C(e),[n,...F(e)])})));else if(p(y))h(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{f(c,t,...A(e,(t=>a?.[t]))),f(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+v(t)+U+v(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+m(A(i,(a=>e+v(a))))+")VALUES"+l(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+m(A(i,(a=>v(a)+"=excluded."+v(a))),e),c),K=a=>m(A(a,(()=>"?")),e),V=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await m.schedule((async()=>{await a(),d=0}))),m),m={load:async(e,s)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),m),save:async t=>(1!=d&&(d=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(r(y,a.delListener),y=void 0,m),schedule:async(...a)=>(f(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>w),b(m)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=q(t,c,n);return Z(a,(async()=>await y((async()=>(await r(),V((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,w,l]],y,v)=>{const[T,m,A,p]=q(t,y,n),f=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await A(e,s,o,n,i,t)}))),h=async(a,t)=>w?await A(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await p((async()=>{await T();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await m(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await p((async()=>{if(await T(),o(t)){const[t,e]=a();await f(t),await h(e)}else{const[a,e]=t();await f(a,!0),await h(e,!0)}}))),e,s,n,["getDb",v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,s)=>{const n=_();return I(a,((a,i)=>{const c=l(F(S(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y)=>{let E,u,v;const[m,A,p,L]=(a=>{const e=(a=>S(ra,w(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(F(S(wa,c)),0,M(wa)),r=o[2],y=k(r);return[0,s,[la(n,{[ca]:null,[ia]:d},ca,(a=>x(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(m?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(v??=n)||(a(),E=t,u=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,p,O(L),y)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>a()),s,n,t);export{va as createElectricSqlPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),l=t=>a(t)==s,w=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.keys,g=N.freeze,S=(a=[])=>N.fromEntries(a),b=(...a)=>N.assign({},...a),I=(a,t)=>A(N.entries(a),(([a,e])=>t(e,a))),F=a=>N.values(a),M=a=>y(D(a)),$=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(R(a,t),a):a?.set(t,e),j=(a,t,e)=>(h(a,t)||W(a,t,e()),B(a,t)),Y=(a,t,e,s=W)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),x=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",q=(a,t,s)=>{const n=_();return[async()=>Y(n,S(await E(A(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,S(A(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,Y(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?S(L(A(await a(G+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=k();I(i??{},(a=>A(D(a??{}),(a=>x(w,a)))));const y=O(w);if(!l&&r&&p(y)&&h(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(p(y)||h(n,t)){const e=B(n,t),i=k(P(e));await E([...A(y,(async s=>{R(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!l&&c?A(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${m(A(y,(a=>e+v(a))))});`),W(n,t,_([[s,""],...A(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(s)+"=?",[n]):p(y)||await z(a,t,s,D(e),[n,...F(e)])})));else if(p(y))h(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{f(c,t,...A(e,(t=>a?.[t]))),f(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+v(t)+U+v(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+m(A(i,(a=>e+v(a))))+")VALUES"+w(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+m(A(i,(a=>v(a)+"=excluded."+v(a))),e),c),K=a=>m(A(a,(()=>"?")),e),V=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,v=0;j(Q,w,(()=>0)),j(X,w,(()=>[]));const T=async a=>(2!=d&&(d=1,await m.schedule((async()=>{await a(),d=0}))),m),m={load:async(e,s)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),m),save:async t=>(1!=d&&(d=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(r(y,a.delListener),y=void 0,m),schedule:async(...a)=>(f(B(X,w),...a),await(async()=>{if(!B(Q,w)){for(W(Q,w,1);!o((a=B(X,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,w,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>l),g(m)},aa="store",ta=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=q(t,c,n);return Z(a,(async()=>await E((async()=>(await l(),V((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ea=(a,t,e,s,n,[i,c,[r,l,w]],y,v,T)=>{const[m,A,p,f]=q(t,y,n),h=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await p(e,s,o,n,i,t)}))),O=async(a,t)=>l?await p(w,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await f((async()=>{await m();const a=await(async()=>S(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(w,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await m(),o(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[T,v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[oa]:t+"_values"},wa=(a,t,e,s)=>{const n=_();return I(a,((a,i)=>{const c=w(F(b(t,l(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,v,m;const[A,p,L,f]=(a=>{const e=(a=>b(ra,l(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(F(b(la,c)),0,M(la)),r=o[2],y=k(r);return[0,s,[wa(n,{[ca]:null,[ia]:d},ca,(a=>x(y,a)&&a==r)),wa(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&n==(m??=n)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),n((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,O(f),y,E)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>a()),s,n,t,"getElectricClient");export{va as createElectricSqlPersister};
@@ -1 +1 @@
1
- import{addDatabaseChangeListener as a}from"expo-sqlite/next";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=a=>t(a)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",m="_id",v=a=>`"${a.replace(/"/g,'""')}"`,p="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),L=a=>0==E(a),f=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),D=Object,C=a=>D.getPrototypeOf(a),S=D.keys,g=D.freeze,b=(a=[])=>D.fromEntries(a),I=(...a)=>D.assign({},...a),F=(a,t)=>T(D.entries(a),(([a,e])=>t(e,a))),M=a=>D.values(a),$=a=>E(S(a)),_=a=>(a=>!r(a)&&l(C(a),(a=>a==D.prototype||r(C(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),x=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),H(a,t)),Y=(a,t,e,s=W)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=p+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,e)=>{const n=P();return[async()=>Y(n,b(await u(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(T(await a(p+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,Y(j(n,t,P),e,((a,t,e)=>{e!=H(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?b(f(T(await a(J+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!_(t)))):{},async(t,e,i,c,o,l=!1)=>{const w=k();F(i??{},(a=>T(S(a??{}),(a=>G(w,a)))));const y=R(w);if(!l&&o&&L(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(L(y)||O(n,t)){const s=H(n,t),i=k(B(s));await u([...T(y,(async e=>{h(i,e)||(await a(`ALTER TABLE${v(t)}ADD${v(e)}`),W(s,e,""))})),...!l&&c?T(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(s,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(e)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>s+v(a))))});`),W(n,t,P([[e,""],...T(y,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await u(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+v(t)+q+v(e)+"=?",[n]):L(y)||await K(a,t,e,S(s),[n,...M(s)])})));else if(L(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const s=f(B(H(n,t)),(a=>a!=e)),c=[],o=[];F(i??{},((a,t)=>{N(c,t,...T(s,(t=>a?.[t]))),N(o,t)})),await K(a,t,e,s,c),await a("DELETE FROM"+v(t)+q+v(e)+"NOT IN("+V(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,c)=>await a("INSERT INTO"+v(t)+"("+v(e)+A(T(n,(a=>s+v(a))))+")VALUES"+y(i(`,(?${i(",?",E(n))})`,E(c)/(E(n)+1)),1)+"ON CONFLICT("+v(e)+")DO UPDATE SET"+A(T(n,(a=>v(a)+"=excluded."+v(a))),s),c),V=a=>A(T(a,(()=>"?")),s),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,s,n,i,[c,o]=[],w=[])=>{let y,E,u,d=0,m=0;j(X,w,(()=>0)),j(Z,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await p.schedule((async()=>{await a(),d=0}))),p),p={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),m=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(m&&(n(u),u=void 0,m=0),p),save:async t=>(1!=d&&(d=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(l(y,a.delListener),y=void 0,p),schedule:async(...a)=>(N(H(Z,w),...a),await(async()=>{if(!H(X,w)){for(W(X,w,1);!r((a=H(Z,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(X,w,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),g(p)},ta="store",ea=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=z(t,c,n);return aa(a,(async()=>await y((async()=>(await r(),Q((await l(i,m))[d]?.[ta]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,m,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?D.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},sa=(a,t,e,s,n,[i,c,[o,l,w]],y,E)=>{const[v,p,A,T]=z(t,y,n),L=async(a,t)=>await u(x(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await A(e,s,o,n,i,t)}))),N=async(a,t)=>l?await A(w,m,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await T((async()=>{await v();const a=await(async()=>b(f(await u(x(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?(await p(w,m))[d]:{})();return _(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await v(),r(t)){const[t,e]=a();await L(t),await N(e)}else{const[a,e]=t();await L(a,!0),await N(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},wa={load:0,save:0,[ra]:e+"_values"},ya=(a,t,e,s)=>{const n=P();return F(a,((a,i)=>{const c=y(M(I(t,w(a)?{[e]:a}:a)),0,$(t));r(c[0])||s(i,c[0])||W(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",ma=(a,t,s,n,i,c,r,l)=>{let E,u,d;const[v,A,T,L]=(a=>{const t=(a=>I(la,w(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=y(M(I(wa,c)),0,$(wa)),r=o[2],l=k(r);return[0,s,[ya(n,{[oa]:null,[ca]:m},oa,(a=>G(l,a)&&a==r)),ya(i,{[ra]:null,[ca]:m,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(l,t)&&t==r)),o],l]})(t);return(v?ea:sa)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(p+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(d??=n)||(a(),E=t,u=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=u=null,i(t)}),r,T,R(L),l)},va=(t,e,s,n,i)=>ma(t,s,(async(a,t=[])=>await e.allAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),n,i,e);export{va as createExpoSqliteNextPersister};
1
+ import{addDatabaseChangeListener as a}from"expo-sqlite/next";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=a=>t(a)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",m="_id",v=a=>`"${a.replace(/"/g,'""')}"`,p="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),L=a=>0==E(a),f=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),C=Object,D=a=>C.getPrototypeOf(a),S=C.keys,g=C.freeze,I=(a=[])=>C.fromEntries(a),b=(...a)=>C.assign({},...a),F=(a,t)=>T(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),$=a=>E(S(a)),_=a=>(a=>!r(a)&&l(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),x=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>r(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),H(a,t)),Y=(a,t,e,s=W)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=p+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,e)=>{const n=P();return[async()=>Y(n,I(await u(T(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,I(T(await a(p+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,Y(j(n,t,P),e,((a,t,e)=>{e!=H(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?I(f(T(await a(J+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!_(t)))):{},async(t,e,i,c,o,l=!1)=>{const w=k();F(i??{},(a=>T(S(a??{}),(a=>G(w,a)))));const y=R(w);if(!l&&o&&L(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(L(y)||O(n,t)){const s=H(n,t),i=k(B(s));await u([...T(y,(async e=>{h(i,e)||(await a(`ALTER TABLE${v(t)}ADD${v(e)}`),W(s,e,""))})),...!l&&c?T(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(s,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(e)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>s+v(a))))});`),W(n,t,P([[e,""],...T(y,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await u(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+v(t)+q+v(e)+"=?",[n]):L(y)||await K(a,t,e,S(s),[n,...M(s)])})));else if(L(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const s=f(B(H(n,t)),(a=>a!=e)),c=[],o=[];F(i??{},((a,t)=>{N(c,t,...T(s,(t=>a?.[t]))),N(o,t)})),await K(a,t,e,s,c),await a("DELETE FROM"+v(t)+q+v(e)+"NOT IN("+V(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,c)=>await a("INSERT INTO"+v(t)+"("+v(e)+A(T(n,(a=>s+v(a))))+")VALUES"+y(i(`,(?${i(",?",E(n))})`,E(c)/(E(n)+1)),1)+"ON CONFLICT("+v(e)+")DO UPDATE SET"+A(T(n,(a=>v(a)+"=excluded."+v(a))),s),c),V=a=>A(T(a,(()=>"?")),s),Q=JSON.parse,X=P(),Z=P(),aa=(a,t,e,s,n,i,[c,o]=[],w=[])=>{let y,E,u,d=0,m=0;j(X,w,(()=>0)),j(Z,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await p.schedule((async()=>{await a(),d=0}))),p),p={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),m=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(m&&(n(u),u=void 0,m=0),p),save:async t=>(1!=d&&(d=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();_(e)&&_(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(l(y,a.delListener),y=void 0,p),schedule:async(...a)=>(N(H(Z,w),...a),await(async()=>{if(!H(X,w)){for(W(X,w,1);!r((a=H(Z,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(X,w,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),g(p)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=z(t,c,n);return aa(a,(async()=>await E((async()=>(await l(),Q((await w(i,m))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,m,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},sa=(a,t,e,s,n,[i,c,[o,l,w]],y,E,v)=>{const[p,A,T,L]=z(t,y,n),N=async(a,t)=>await u(x(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),O=async(a,t)=>l?await T(w,m,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await L((async()=>{await p();const a=await(async()=>I(f(await u(x(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?(await A(w,m))[d]:{})();return _(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await L((async()=>{if(await p(),r(t)){const[t,e]=a();await N(t),await O(e)}else{const[a,e]=t();await N(a,!0),await O(e,!0)}}))),e,s,n,[v,E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},wa={load:0,save:0,[ra]:e+"_values"},ya=(a,t,e,s)=>{const n=P();return F(a,((a,i)=>{const c=y(M(b(t,w(a)?{[e]:a}:a)),0,$(t));r(c[0])||s(i,c[0])||W(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",ma=(a,t,s,n,i,c,r,l,E="getDb")=>{let u,d,v;const[A,T,L,f]=(a=>{const t=(a=>b(la,w(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=y(M(b(wa,c)),0,$(wa)),r=o[2],l=k(r);return[0,s,[ya(n,{[oa]:null,[ca]:m},oa,(a=>G(l,a)&&a==r)),ya(i,{[ra]:null,[ca]:m,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(l,t)&&t==r)),o],l]})(t);return(A?ea:sa)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(p+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(d??=e)&&n==(v??=n)||(a(),u=t,d=e)}catch{}},e=T,t(),setInterval(t,1e3*e)),n((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),u=d=null,i(t)}),r,L,R(f),l,E)},va=(t,e,s,n,i)=>ma(t,s,(async(a,t=[])=>await e.allAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),n,i,e);export{va as createExpoSqliteNextPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),h=Object,D=a=>h.getPrototypeOf(a),C=h.keys,g=h.freeze,S=(a=[])=>h.fromEntries(a),b=(...a)=>h.assign({},...a),I=(a,t)=>T(h.entries(a),(([a,e])=>t(e,a))),F=a=>h.values(a),M=a=>y(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==h.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),x=(a,t,e,s=W)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||o(a)?a:[a]),k=(a,t)=>a?.add(t),G=m+"*FROM",J="FROM pragma_table_",U="WHERE",q=(a,t,s)=>{const n=_();return[async()=>x(n,S(await E(T(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,S(T(await a(m+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,x(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?S(L(T(await a(G+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,w=!1)=>{const l=Y();I(i??{},(a=>T(C(a??{}),(a=>k(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(p(y)||O(n,t)){const e=B(n,t),i=Y(P(e));await E([...T(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!w&&c?T(R(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>e+v(a))))});`),W(n,t,_([[s,""],...T(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(s)+"=?",[n]):p(y)||await z(a,t,s,C(e),[n,...F(e)])})));else if(p(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{N(c,t,...T(e,(t=>a?.[t]))),N(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+v(t)+U+v(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+A(T(i,(a=>e+v(a))))+")VALUES"+l(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(T(i,(a=>v(a)+"=excluded."+v(a))),e),c),K=a=>A(T(a,(()=>"?")),e),V=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const m=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await m((async()=>a.setTransactionChanges(t)))}else await m((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(N(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),g(A)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,w,l,y]=q(t,c,n);return Z(a,(async()=>await y((async()=>(await r(),V((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,w,l]],y,v)=>{const[m,A,T,p]=q(t,y,n),N=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await T(e,s,o,n,i,t)}))),O=async(a,t)=>w?await T(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await p((async()=>{await m();const a=await(async()=>S(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await p((async()=>{if(await m(),o(t)){const[t,e]=a();await N(t),await O(e)}else{const[a,e]=t();await N(a,!0),await O(e,!0)}}))),e,s,n,["getDb",v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,s)=>{const n=_();return I(a,((a,i)=>{const c=l(F(b(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y)=>{let E,u,v;const[A,T,p,L]=(a=>{const e=(a=>b(ra,w(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(F(b(wa,c)),0,M(wa)),r=o[2],y=Y(r);return[0,s,[la(n,{[ca]:null,[ia]:d},ca,(a=>k(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>k(y,t)&&t==r)),o],y]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(v??=n)||(a(),E=t,u=e)}catch{}},e=T,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,p,R(L),y)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{va as createExpoSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),h=Object,C=a=>h.getPrototypeOf(a),D=h.keys,S=h.freeze,g=(a=[])=>h.fromEntries(a),b=(...a)=>h.assign({},...a),I=(a,t)=>T(h.entries(a),(([a,e])=>t(e,a))),F=a=>h.values(a),M=a=>y(D(a)),$=a=>(a=>!o(a)&&r(C(a),(a=>a==h.prototype||o(C(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),x=(a,t,e,s=W)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||o(a)?a:[a]),k=(a,t)=>a?.add(t),G=m+"*FROM",J="FROM pragma_table_",U="WHERE",q=(a,t,s)=>{const n=_();return[async()=>x(n,g(await E(T(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,g(T(await a(m+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(n,t,x(j(n,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?g(L(T(await a(G+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,s,i,c,r,w=!1)=>{const l=Y();I(i??{},(a=>T(D(a??{}),(a=>k(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(n,t))return await a("DROP TABLE"+v(t)),void W(n,t);if(p(y)||O(n,t)){const e=B(n,t),i=Y(P(e));await E([...T(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${v(t)}ADD${v(s)}`),W(e,s,""))})),...!w&&c?T(R(i),(async n=>{n!=s&&(await a(`ALTER TABLE${v(t)}DROP${v(n)}`),W(e,n))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(s)} PRIMARY KEY ON CONFLICT REPLACE${A(T(y,(a=>e+v(a))))});`),W(n,t,_([[s,""],...T(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(s)+"=?",[n]):p(y)||await z(a,t,s,D(e),[n,...F(e)])})));else if(p(y))O(n,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{N(c,t,...T(e,(t=>a?.[t]))),N(o,t)})),await z(a,t,s,e,c),await a("DELETE FROM"+v(t)+U+v(s)+"NOT IN("+K(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},z=async(a,t,s,i,c)=>await a("INSERT INTO"+v(t)+"("+v(s)+A(T(i,(a=>e+v(a))))+")VALUES"+l(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(s)+")DO UPDATE SET"+A(T(i,(a=>v(a)+"=excluded."+v(a))),e),c),K=a=>A(T(a,(()=>"?")),e),V=JSON.parse,Q=_(),X=_(),Z=(a,t,e,s,n,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const m=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await m((async()=>a.setTransactionChanges(t)))}else await m((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(N(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),S(A)},aa="store",ta=(a,t,e,s,n,[i],c,o,r)=>{const[w,l,y,E]=q(t,c,n);return Z(a,(async()=>await E((async()=>(await w(),V((await l(i,d))[u]?.[aa]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ea=(a,t,e,s,n,[i,c,[r,w,l]],y,v,m)=>{const[A,T,p,N]=q(t,y,n),O=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await p(e,s,o,n,i,t)}))),R=async(a,t)=>w?await p(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await N((async()=>{await A();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await T(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await A(),o(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,s,n,[m,v],v)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,s)=>{const n=_();return I(a,((a,i)=>{const c=l(F(b(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||W(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,v,A;const[T,p,L,N]=(a=>{const e=(a=>b(ra,w(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=l(F(b(wa,c)),0,M(wa)),r=o[2],y=Y(r);return[0,s,[la(n,{[ca]:null,[ia]:d},ca,(a=>k(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>k(y,t)&&t==r)),o],y]})(e);return(T?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&n==(A??=n)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),n((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,R(N),y,E)},va=(a,t,e,s,n)=>da(a,e,(async(a,e=[])=>(await t.execAsync([{sql:a,args:e}],!1))[0].rows),(a=>t.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,n,t);export{va as createExpoSqlitePersister};
@@ -1 +1 @@
1
- const t=Promise,a=clearInterval,e=t=>null==t,s=(t,a,s)=>e(t)?s?.():a(t),n=a=>new t(a),o=async a=>t.all(a),c=(t,a)=>t.map(a),r=(t,...a)=>t.push(...a),i=Object,y=t=>i.getPrototypeOf(t),l=i.keys,d=i.freeze,w=t=>(t=>!e(t)&&s(y(t),(t=>t==i.prototype||e(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),u=t=>new Map(t),v=(t,a)=>t?.get(a),h=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),v(t,a)},g=u(),A=u(),S=globalThis.window,f=["t","v"],b={keyPath:"k"},L=async(t,a)=>{const n=((a,e)=>c(i.entries(a),(([a,e])=>k(t,"put",{k:a,v:e}))))(a);c(await k(t,"getAllKeys"),(o=>((t,a)=>!e(((t,a)=>s(t,(t=>t[a])))(t,a)))(a,o)?0:r(n,k(t,"delete",o)))),await o(n)},k=async(t,a,e)=>n(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(t,y,l=1,u)=>{const C=async(t,a=[],e=0)=>n(((s,n)=>{const r=S.indexedDB.open(y,e?2:void 0);r.onupgradeneeded=()=>e&&c(f,(t=>{try{r.result.createObjectStore(t,b)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(f,"readwrite"),n=await o(c(f,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),s(n)}catch(t){n(t)}},r.onerror=()=>n("indexedDB.open error")}));return((t,a,n,o,c,i,[y,l]=[],u=[])=>{let S,f,b,L=0,k=0;p(g,u,(()=>0)),p(A,u,(()=>[]));const C=async t=>(2!=L&&(L=1,await j.schedule((async()=>{await t(),L=0}))),j),j={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(j.stopAutoLoad(),await j.load(e,s),k=1,b=o((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),j),stopAutoLoad:()=>(k&&(c(b),b=void 0,k=0),j),save:async a=>(1!=L&&(L=2,await j.schedule((async()=>{try{await n(t.getContent,a)}catch(t){i?.(t)}L=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),S=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();w(e)&&w(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(s(S,t.delListener),S=void 0,j),schedule:async(...t)=>(r(v(A,u),...t),await(async()=>{if(!v(g,u)){for(h(g,u,1);!e((t=v(A,u),f=t.shift()));)try{await f()}catch(t){i?.(t)}h(g,u,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),d(j)})(t,(async()=>await C((async t=>((t=[])=>i.fromEntries(t))(c(await k(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await C((async(t,a)=>await L(t,a)),t(),1)),(t=>setInterval(t,1e3*l)),(t=>a(t)),u,["getDbName",y])};export{C as createIndexedDbPersister,L as objectStoreMatch};
1
+ const t=Promise,a=clearInterval,e=t=>null==t,s=(t,a,s)=>e(t)?s?.():a(t),n=a=>new t(a),o=async a=>t.all(a),c=(t,a)=>t.map(a),r=(t,...a)=>t.push(...a),i=Object,y=t=>i.getPrototypeOf(t),l=i.keys,d=i.freeze,u=t=>(t=>!e(t)&&s(y(t),(t=>t==i.prototype||e(y(t))),(()=>!0)))(t)&&0==(t=>l(t).length)(t),w=t=>new Map(t),v=(t,a)=>t?.get(a),h=(t,a,s)=>{return e(s)?(n=t,o=a,n?.delete(o),t):t?.set(a,s);var n,o},p=(t,a,e)=>{var s,n;return s=t,n=a,s?.has(n)||h(t,a,e()),v(t,a)},g=w(),A=w(),S=globalThis.window,f=["t","v"],b={keyPath:"k"},L=async(t,a)=>{const n=((a,e)=>c(i.entries(a),(([a,e])=>k(t,"put",{k:a,v:e}))))(a);c(await k(t,"getAllKeys"),(o=>((t,a)=>!e(((t,a)=>s(t,(t=>t[a])))(t,a)))(a,o)?0:r(n,k(t,"delete",o)))),await o(n)},k=async(t,a,e)=>n(((s,n)=>{const o=t[a](e);o.onsuccess=()=>s(o.result),o.onerror=()=>n(`objectStore.${a} error`)})),C=(t,y,l=1,w)=>{const C=async(t,a=[],e=0)=>n(((s,n)=>{const r=S.indexedDB.open(y,e?2:void 0);r.onupgradeneeded=()=>e&&c(f,(t=>{try{r.result.createObjectStore(t,b)}catch{}})),r.onsuccess=async()=>{try{const e=r.result.transaction(f,"readwrite"),n=await o(c(f,(async(s,n)=>await t(e.objectStore(s),a[n]))));r.result.close(),s(n)}catch(t){r.result.close(),n(t)}},r.onerror=()=>n("indexedDB.open error")}));return((t,a,n,o,c,i,[y,l]=[],w=[])=>{let S,f,b,L=0,k=0;p(g,w,(()=>0)),p(A,w,(()=>[]));const C=async t=>(2!=L&&(L=1,await j.schedule((async()=>{await t(),L=0}))),j),j={load:async(e,s)=>await C((async()=>{try{t.setContent(await a())}catch{t.setContent([e,s])}})),startAutoLoad:async(e={},s={})=>(j.stopAutoLoad(),await j.load(e,s),k=1,b=o((async(e,s)=>{if(s){const a=s();await C((async()=>t.setTransactionChanges(a)))}else await C((async()=>{try{t.setContent(e?.()??await a())}catch(t){i?.(t)}}))})),j),stopAutoLoad:()=>(k&&(c(b),b=void 0,k=0),j),save:async a=>(1!=L&&(L=2,await j.schedule((async()=>{try{await n(t.getContent,a)}catch(t){i?.(t)}L=0}))),j),startAutoSave:async()=>(await j.stopAutoSave().save(),S=t.addDidFinishTransactionListener(((t,a)=>{const[e,s]=a();u(e)&&u(s)||j.save((()=>[e,s]))})),j),stopAutoSave:()=>(s(S,t.delListener),S=void 0,j),schedule:async(...t)=>(r(v(A,w),...t),await(async()=>{if(!v(g,w)){for(h(g,w,1);!e((t=v(A,w),f=t.shift()));)try{await f()}catch(t){i?.(t)}h(g,w,0)}var t})(),j),getStore:()=>t,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return y&&(j[y]=()=>l),d(j)})(t,(async()=>await C((async t=>((t=[])=>i.fromEntries(t))(c(await k(t,"getAll"),(({k:t,v:a})=>[t,a])))))),(async t=>await C((async(t,a)=>await L(t,a)),t(),1)),(t=>setInterval(t,1e3*l)),(t=>a(t)),w,["getDbName",y])};export{C as createIndexedDbPersister,L as objectStoreMatch};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),l=t=>a(t)==s,w=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",p=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==y(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),N=Object,D=a=>N.getPrototypeOf(a),C=N.keys,S=N.freeze,b=(a=[])=>N.fromEntries(a),g=(...a)=>N.assign({},...a),I=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),_=a=>N.values(a),M=a=>y(C(a)),F=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),$=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),k=(a,t,e)=>(h(a,t)||j(a,t,e()),B(a,t)),W=(a,t,e,s=j)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x=a=>new Set(Array.isArray(a)||o(a)?a:[a]),Y=(a,t)=>a?.add(t),q=v+"*FROM",G="FROM pragma_table_",J="WHERE",U=(a,t,s)=>{const n=$();return[async()=>W(n,b(await E(m(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")ORDER BY name",t),(async({name:t})=>[t,b(m(await a(v+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,W(k(n,t,$),e,((a,t,e)=>{e!=B(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?b(L(m(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!F(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=x();I(i??{},(a=>m(C(a??{}),(a=>Y(w,a)))));const y=O(w);if(!l&&r&&A(y)&&h(n,t))return await a("DROP TABLE"+p(t)),void j(n,t);if(A(y)||h(n,t)){const e=B(n,t),i=x(P(e));await E([...m(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${p(t)}ADD${p(s)}`),j(e,s,""))})),...!l&&c?m(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),j(e,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(s)} PRIMARY KEY ON CONFLICT REPLACE${T(m(y,(a=>e+p(a))))});`),j(n,t,$([[s,""],...m(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+p(t)+J+p(s)+"=?",[n]):A(y)||await V(a,t,s,C(e),[n,..._(e)])})));else if(A(y))h(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{R(c,t,...m(e,(t=>a?.[t]))),R(o,t)})),await V(a,t,s,e,c),await a("DELETE FROM"+p(t)+J+p(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},V=async(a,t,s,i,c)=>await a("INSERT INTO"+p(t)+"("+p(s)+T(m(i,(a=>e+p(a))))+")VALUES"+w(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+p(s)+")DO UPDATE SET"+T(m(i,(a=>p(a)+"=excluded."+p(a))),e),c),z=a=>T(m(a,(()=>"?")),e),K=JSON.parse,Q=$(),X=$(),Z=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,p=0;k(Q,w,(()=>0)),k(X,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(r(y,a.delListener),y=void 0,T),schedule:async(...a)=>(R(B(X,w),...a),await(async()=>{if(!B(Q,w)){for(j(Q,w,1);!o((a=B(X,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Q,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>l),S(T)},aa="store",ta=(a,t,e,s,n,[i],c,o)=>{const[r,l,w,y]=U(t,c,n);return Z(a,(async()=>await y((async()=>(await r(),K((await l(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await w(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},ea=(a,t,e,s,n,[i,c,[r,l,w]],y,p)=>{const[v,T,m,A]=U(t,y,n),R=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),h=async(a,t)=>l?await m(w,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await A((async()=>{await v();const a=await(async()=>b(L(await E(H(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>r?(await T(w,d))[u]:{})();return F(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await v(),o(t)){const[t,e]=a();await R(t),await h(e)}else{const[a,e]=t();await R(a,!0),await h(e,!0)}}))),e,s,n,["getDb",p],p)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[oa]:t+"_values"},wa=(a,t,e,s)=>{const n=$();return I(a,((a,i)=>{const c=w(_(g(t,l(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||j(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y)=>{let E,u,p;const[T,m,A,L]=(a=>{const e=(a=>g(ra,l(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(_(g(la,c)),0,M(la)),r=o[2],y=x(r);return[0,s,[wa(n,{[ca]:null,[ia]:d},ca,(a=>Y(y,a)&&a==r)),wa(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>Y(y,t)&&t==r)),o],y]})(e);return(T?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(v+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(p??=n)||(a(),E=t,u=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,A,O(L),y)},pa=(a,t,e,s,n,i)=>da(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{pa as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),l=t=>a(t)==s,w=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",p=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==y(a),L=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],f=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.keys,S=N.freeze,b=(a=[])=>N.fromEntries(a),g=(...a)=>N.assign({},...a),I=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),_=a=>N.values(a),M=a=>y(D(a)),F=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==M(a),$=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>o(e)?(f(a,t),a):a?.set(t,e),k=(a,t,e)=>(h(a,t)||j(a,t,e()),B(a,t)),W=(a,t,e,s=j)=>(I(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x=a=>new Set(Array.isArray(a)||o(a)?a:[a]),Y=(a,t)=>a?.add(t),q=v+"*FROM",G="FROM pragma_table_",J="WHERE",U=(a,t,s)=>{const n=$();return[async()=>W(n,b(await E(m(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+z(t)+")ORDER BY name",t),(async({name:t})=>[t,b(m(await a(v+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(n,t,W(k(n,t,$),e,((a,t,e)=>{e!=B(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(n,t))),async(t,e)=>((a,t)=>!o(B(B(n,a),t)))(t,e)?b(L(m(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!o(a)&&!F(t)))):{},async(t,s,i,c,r,l=!1)=>{const w=x();I(i??{},(a=>m(D(a??{}),(a=>Y(w,a)))));const y=O(w);if(!l&&r&&A(y)&&h(n,t))return await a("DROP TABLE"+p(t)),void j(n,t);if(A(y)||h(n,t)){const e=B(n,t),i=x(P(e));await E([...m(y,(async s=>{f(i,s)||(await a(`ALTER TABLE${p(t)}ADD${p(s)}`),j(e,s,""))})),...!l&&c?m(O(i),(async n=>{n!=s&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),j(e,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(s)} PRIMARY KEY ON CONFLICT REPLACE${T(m(y,(a=>e+p(a))))});`),j(n,t,$([[s,""],...m(y,(a=>[a,""]))]));if(l)o(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await E(I(i,(async(e,n)=>{o(e)?await a("DELETE FROM"+p(t)+J+p(s)+"=?",[n]):A(y)||await V(a,t,s,D(e),[n,..._(e)])})));else if(A(y))h(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=L(P(B(n,t)),(a=>a!=s)),c=[],o=[];I(i??{},((a,t)=>{R(c,t,...m(e,(t=>a?.[t]))),R(o,t)})),await V(a,t,s,e,c),await a("DELETE FROM"+p(t)+J+p(s)+"NOT IN("+z(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},V=async(a,t,s,i,c)=>await a("INSERT INTO"+p(t)+"("+p(s)+T(m(i,(a=>e+p(a))))+")VALUES"+w(n(`,(?${n(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+p(s)+")DO UPDATE SET"+T(m(i,(a=>p(a)+"=excluded."+p(a))),e),c),z=a=>T(m(a,(()=>"?")),e),K=JSON.parse,Q=$(),X=$(),Z=(a,t,e,s,n,i,[c,l]=[],w=[])=>{let y,E,u,d=0,p=0;k(Q,w,(()=>0)),k(X,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),p=1,u=s((async(e,s)=>{if(s){const t=s();await v((async()=>a.setTransactionChanges(t)))}else await v((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(r(y,a.delListener),y=void 0,T),schedule:async(...a)=>(R(B(X,w),...a),await(async()=>{if(!B(Q,w)){for(j(Q,w,1);!o((a=B(X,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Q,w,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>l),S(T)},aa="store",ta=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=U(t,c,n);return Z(a,(async()=>await E((async()=>(await l(),K((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ea=(a,t,e,s,n,[i,c,[r,l,w]],y,p,v)=>{const[T,m,A,R]=U(t,y,n),h=async(a,t)=>await E(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await A(e,s,o,n,i,t)}))),O=async(a,t)=>l?await A(w,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await R((async()=>{await T();const a=await(async()=>b(L(await E(H(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>r?(await m(w,d))[u]:{})();return F(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await T(),o(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[v,p],p)},sa="json",na="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:sa,[na]:1},la={load:0,save:0,[oa]:t+"_values"},wa=(a,t,e,s)=>{const n=$();return I(a,((a,i)=>{const c=w(_(g(t,l(a)?{[e]:a}:a)),0,M(t));o(c[0])||s(i,c[0])||j(n,i,c)})),n},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,s,n,i,o,r,y,E="getDb")=>{let u,p,T;const[m,A,L,R]=(a=>{const e=(a=>g(ra,l(a)?{storeTableName:a}:a??{}))(a),s=e[na];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(_(g(la,c)),0,M(la)),r=o[2],y=x(r);return[0,s,[wa(n,{[ca]:null,[ia]:d},ca,(a=>Y(y,a)&&a==r)),wa(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>Y(y,t)&&t==r)),o],y]})(e);return(m?ta:ea)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ya+Ea))[0][Ea],e=(await s(ya+ua))[0][ua],n=(await s(v+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(p??=e)&&n==(T??=n)||(a(),u=t,p=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),n((t=>R.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=p=null,i(t)}),r,L,O(R),y,E)},pa=(a,t,e,s,n,i)=>da(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{pa as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==n,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",A=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,D=a=>N.getPrototypeOf(a),C=N.keys,S=N.freeze,g=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),b=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),F=a=>N.values(a),M=a=>y(C(a)),$=a=>(a=>!o(a)&&r(D(a),(a=>a==N.prototype||o(D(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),Y=(a,t,e,n=W)=>(b(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),x=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,n)=>{const s=_();return[async()=>Y(s,g(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,g(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(s,t,Y(j(s,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(s,t))),async(t,e)=>((a,t)=>!o(B(B(s,a),t)))(t,e)?g(L(m(await a(G+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,n,i,c,r,w=!1)=>{const l=k();b(i??{},(a=>m(C(a??{}),(a=>x(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(s,t))return await a("DROP TABLE"+v(t)),void W(s,t);if(p(y)||O(s,t)){const e=B(s,t),i=k(P(e));await E([...m(y,(async n=>{h(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),W(e,n,""))})),...!w&&c?m(R(i),(async s=>{s!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(s)}`),W(e,s))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${A(m(y,(a=>e+v(a))))});`),W(s,t,_([[n,""],...m(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(b(i,(async(e,s)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(n)+"=?",[s]):p(y)||await K(a,t,n,C(e),[s,...F(e)])})));else if(p(y))O(s,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(s,t)),(a=>a!=n)),c=[],o=[];b(i??{},((a,t)=>{f(c,t,...m(e,(t=>a?.[t]))),f(o,t)})),await K(a,t,n,e,c),await a("DELETE FROM"+v(t)+U+v(n)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},K=async(a,t,n,i,c)=>await a("INSERT INTO"+v(t)+"("+v(n)+A(m(i,(a=>e+v(a))))+")VALUES"+l(s(`,(?${s(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(n)+")DO UPDATE SET"+A(m(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>A(m(a,(()=>"?")),e),q=JSON.parse,Q=_(),X=_(),Z=(a,t,e,n,s,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,n)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),v=1,u=n((async(e,n)=>{if(n){const t=n();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(s(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();$(e)&&$(n)||A.save((()=>[e,n]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),S(A)},aa="store",ta=(a,t,e,n,s,[i],c,o)=>{const[r,w,l,y]=z(t,c,s);return Z(a,(async()=>await y((async()=>(await r(),q((await w(i,d))[u]?.[aa]??"null"))))),(async a=>await y((async()=>{var t;await r(),await l(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,["getDb",o],o)},ea=(a,t,e,n,s,[i,c,[r,w,l]],y,v)=>{const[T,A,m,p]=z(t,y,s),f=async(a,t)=>await E(H(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await m(e,n,o,s,i,t)}))),O=async(a,t)=>w?await m(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await p((async()=>{await T();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await A(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await p((async()=>{if(await T(),o(t)){const[t,e]=a();await f(t),await O(e)}else{const[a,e]=t();await f(a,!0),await O(e,!0)}}))),e,n,s,["getDb",v],v)},na="json",sa="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:na,[sa]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,n)=>{const s=_();return b(a,((a,i)=>{const c=l(F(I(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||n(i,c[0])||W(s,i,c)})),s},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,n,s,i,o,r,y)=>{let E,u,v;const[A,m,p,L]=(a=>{const e=(a=>I(ra,w(a)?{storeTableName:a}:a??{}))(a),n=e[sa];if(e.mode==na){const{storeTableName:a=t}=e;return[1,n,[a],k(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=l(F(I(wa,c)),0,M(wa)),r=o[2],y=k(r);return[0,n,[la(s,{[ca]:null,[ia]:d},ca,(a=>x(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(A?ta:ea)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ya+Ea))[0][Ea],e=(await n(ya+ua))[0][ua],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&s==(v??=s)||(a(),E=t,u=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=u=null,i(t)}),r,p,R(L),y)},va="change",Ta=(a,t,e,n,s)=>da(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new i(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(va,e),e}),(a=>t.off(va,a)),n,s,t);export{Ta as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",n=a(""),s=(a,t)=>a.repeat(t),i=Promise,c=clearInterval,o=a=>null==a,r=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==n,l=(a,t,e)=>a.slice(t,e),y=a=>a.length,E=async a=>i.all(a),u="_",d="_id",v=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",A=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),p=a=>0==y(a),L=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),N=Object,C=a=>N.getPrototypeOf(a),D=N.keys,S=N.freeze,g=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),b=(a,t)=>m(N.entries(a),(([a,e])=>t(e,a))),F=a=>N.values(a),M=a=>y(D(a)),$=a=>(a=>!o(a)&&r(C(a),(a=>a==N.prototype||o(C(a))),(()=>!0)))(a)&&0==M(a),_=a=>new Map(a),P=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>o(e)?(h(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||W(a,t,e()),B(a,t)),Y=(a,t,e,n=W)=>(b(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!o(((a,t)=>r(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),k=a=>new Set(Array.isArray(a)||o(a)?a:[a]),x=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,n)=>{const s=_();return[async()=>Y(s,g(await E(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,g(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(s,t,Y(j(s,t,_),e,((a,t,e)=>{e!=B(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(s,t))),async(t,e)=>((a,t)=>!o(B(B(s,a),t)))(t,e)?g(L(m(await a(G+v(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!$(t)))):{},async(t,n,i,c,r,w=!1)=>{const l=k();b(i??{},(a=>m(D(a??{}),(a=>x(l,a)))));const y=R(l);if(!w&&r&&p(y)&&O(s,t))return await a("DROP TABLE"+v(t)),void W(s,t);if(p(y)||O(s,t)){const e=B(s,t),i=k(P(e));await E([...m(y,(async n=>{h(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),W(e,n,""))})),...!w&&c?m(R(i),(async s=>{s!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(s)}`),W(e,s))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${A(m(y,(a=>e+v(a))))});`),W(s,t,_([[n,""],...m(y,(a=>[a,""]))]));if(w)o(i)?await a("DELETE FROM"+v(t)+"WHERE 1"):await E(b(i,(async(e,s)=>{o(e)?await a("DELETE FROM"+v(t)+U+v(n)+"=?",[s]):p(y)||await K(a,t,n,D(e),[s,...F(e)])})));else if(p(y))O(s,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=L(P(B(s,t)),(a=>a!=n)),c=[],o=[];b(i??{},((a,t)=>{f(c,t,...m(e,(t=>a?.[t]))),f(o,t)})),await K(a,t,n,e,c),await a("DELETE FROM"+v(t)+U+v(n)+"NOT IN("+V(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},K=async(a,t,n,i,c)=>await a("INSERT INTO"+v(t)+"("+v(n)+A(m(i,(a=>e+v(a))))+")VALUES"+l(s(`,(?${s(",?",y(i))})`,y(c)/(y(i)+1)),1)+"ON CONFLICT("+v(n)+")DO UPDATE SET"+A(m(i,(a=>v(a)+"=excluded."+v(a))),e),c),V=a=>A(m(a,(()=>"?")),e),q=JSON.parse,Q=_(),X=_(),Z=(a,t,e,n,s,i,[c,w]=[],l=[])=>{let y,E,u,d=0,v=0;j(Q,l,(()=>0)),j(X,l,(()=>[]));const T=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,n)=>await T((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(A.stopAutoLoad(),await A.load(e,s),v=1,u=n((async(e,n)=>{if(n){const t=n();await T((async()=>a.setTransactionChanges(t)))}else await T((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),A),stopAutoLoad:()=>(v&&(s(u),u=void 0,v=0),A),save:async t=>(1!=d&&(d=2,await A.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),A),startAutoSave:async()=>(await A.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();$(e)&&$(n)||A.save((()=>[e,n]))})),A),stopAutoSave:()=>(r(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(B(X,l),...a),await(async()=>{if(!B(Q,l)){for(W(Q,l,1);!o((a=B(X,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}W(Q,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>w),S(A)},aa="store",ta=(a,t,e,n,s,[i],c,o,r)=>{const[w,l,y,E]=z(t,c,s);return Z(a,(async()=>await E((async()=>(await w(),q((await l(i,d))[u]?.[aa]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,d,{[u]:{[aa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?N.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,[r,o],o)},ea=(a,t,e,n,s,[i,c,[r,w,l]],y,v,T)=>{const[A,m,p,f]=z(t,y,s),O=async(a,t)=>await E(H(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await p(e,n,o,s,i,t)}))),R=async(a,t)=>w?await p(l,d,{[u]:a},!0,!0,t):null;return Z(a,(async()=>await f((async()=>{await A();const a=await(async()=>g(L(await E(H(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>r?(await m(l,d))[u]:{})();return $(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await A(),o(t)){const[t,e]=a();await O(t),await R(e)}else{const[a,e]=t();await O(a,!0),await R(e,!0)}}))),e,n,s,[T,v],v)},na="json",sa="autoLoadIntervalSeconds",ia="rowIdColumnName",ca="tableId",oa="tableName",ra={mode:na,[sa]:1},wa={load:0,save:0,[oa]:t+"_values"},la=(a,t,e,n)=>{const s=_();return b(a,((a,i)=>{const c=l(F(I(t,w(a)?{[e]:a}:a)),0,M(t));o(c[0])||n(i,c[0])||W(s,i,c)})),s},ya="pragma ",Ea="data_version",ua="schema_version",da=(a,e,n,s,i,o,r,y,E="getDb")=>{let u,v,A;const[m,p,L,f]=(a=>{const e=(a=>I(ra,w(a)?{storeTableName:a}:a??{}))(a),n=e[sa];if(e.mode==na){const{storeTableName:a=t}=e;return[1,n,[a],k(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=l(F(I(wa,c)),0,M(wa)),r=o[2],y=k(r);return[0,n,[la(s,{[ca]:null,[ia]:d},ca,(a=>x(y,a)&&a==r)),la(i,{[oa]:null,[ia]:d,deleteEmptyColumns:0,deleteEmptyTable:0},oa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(m?ta:ea)(a,o?async(a,t)=>(o(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(ya+Ea))[0][Ea],e=(await n(ya+ua))[0][ua],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(v??=e)&&s==(A??=s)||(a(),u=t,v=e)}catch{}},e=p,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),u=v=null,i(t)}),r,L,R(f),y,E)},va="change",Ta=(a,t,e,n,s)=>da(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new i(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(va,e),e}),(a=>t.off(va,a)),n,s,t);export{Ta as createSqlite3Persister};
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),D=C.keys,g=C.freeze,b=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),F=(a,t)=>v(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),P=a=>E(D(a)),$=a=>(a=>!r(a)&&l(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),x=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||H(a,t,e()),W(a,t)),U=(a,t,e,s=H)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),q=T+"*FROM",G="FROM pragma_table_",J="WHERE",z=(a,t,e)=>{const n=_();return[async()=>U(n,b(await d(v(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(v(await a(T+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(n,t,U(j(n,t,_),e,((a,t,e)=>{e!=W(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(n,t))),async(t,e)=>((a,t)=>!r(W(W(n,a),t)))(t,e)?b(L(v(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=Y();F(i??{},(a=>v(D(a??{}),(a=>k(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void H(n,t);if(A(w)||O(n,t)){const s=W(n,t),i=Y(B(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),H(s,e,""))})),...!l&&o?v(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),H(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+p(a))))});`),H(n,t,_([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await d(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+J+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(B(W(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+p(t)+J+p(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+m(v(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+m(v(n,(a=>p(a)+"=excluded."+p(a))),s),o),V=a=>m(v(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,f=0;j(X,y,(()=>0)),j(Z,y,(()=>[]));const p=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,d=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(d),d=void 0,f=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(W(Z,y),...a),await(async()=>{if(!W(X,y)){for(H(X,y,1);!r((a=W(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}H(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),g(T)},ta="store",ea=(a,t,e,s,n,[i],o,c)=>{const[r,l,y,w]=z(t,o,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,f))[u]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,E)=>{const[p,T,m,v]=z(t,w,n),A=async(a,t)=>await d(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await m(e,s,c,n,i,t)}))),h=async(a,t)=>l?await m(y,f,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await v((async()=>{await p();const a=await(async()=>b(L(await d(x(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await T(y,f))[u]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await v((async()=>{if(await p(),r(t)){const[t,e]=a();await A(t),await h(e)}else{const[a,e]=t();await A(a,!0),await h(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||H(n,i,o)})),n},Ea="pragma ",da="data_version",ua="schema_version",fa=(a,t,s,n,i,o,r,l)=>{let E,d,u;const[p,m,v,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=Y(r);return[0,s,[wa(n,{[ca]:null,[oa]:f},ca,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(p?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+da))[0][da],e=(await s(Ea+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(d??=e)&&n==(u??=n)||(a(),E=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),E=d=null,i(t)}),r,v,R(A),l)};a.createCrSqliteWasmPersister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,d=async a=>o.all(a),u="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",m=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),A=a=>0==E(a),L=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),D=C.keys,g=C.freeze,b=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),F=(a,t)=>v(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),P=a=>E(D(a)),$=a=>(a=>!r(a)&&l(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],W=(a,t)=>a?.get(t),x=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),j=(a,t,e)=>(O(a,t)||H(a,t,e()),W(a,t)),U=(a,t,e,s=H)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),q=T+"*FROM",G="FROM pragma_table_",J="WHERE",z=(a,t,e)=>{const n=_();return[async()=>U(n,b(await d(v(await a("SELECT name "+G+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(v(await a(T+" name,type "+G+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(n,t,U(j(n,t,_),e,((a,t,e)=>{e!=W(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(n,t))),async(t,e)=>((a,t)=>!r(W(W(n,a),t)))(t,e)?b(L(v(await a(q+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,o,c,l=!1)=>{const y=Y();F(i??{},(a=>v(D(a??{}),(a=>k(y,a)))));const w=R(y);if(!l&&c&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void H(n,t);if(A(w)||O(n,t)){const s=W(n,t),i=Y(B(s));await d([...v(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),H(s,e,""))})),...!l&&o?v(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),H(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${m(v(w,(a=>s+p(a))))});`),H(n,t,_([[e,""],...v(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await d(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+J+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=L(B(W(n,t)),(a=>a!=e)),o=[],c=[];F(i??{},((a,t)=>{h(o,t,...v(s,(t=>a?.[t]))),h(c,t)})),await K(a,t,e,s,o),await a("DELETE FROM"+p(t)+J+p(e)+"NOT IN("+V(c)+")",c)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,o)=>await a("INSERT INTO"+p(t)+"("+p(e)+m(v(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(o)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+m(v(n,(a=>p(a)+"=excluded."+p(a))),s),o),V=a=>m(v(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[o,c]=[],y=[])=>{let w,E,d,u=0,f=0;j(X,y,(()=>0)),j(Z,y,(()=>[]));const p=async a=>(2!=u&&(u=1,await T.schedule((async()=>{await a(),u=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,d=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(d),d=void 0,f=0),T),save:async t=>(1!=u&&(u=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}u=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(h(W(Z,y),...a),await(async()=>{if(!W(X,y)){for(H(X,y,1);!r((a=W(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}H(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return o&&(T[o]=()=>c),g(T)},ta="store",ea=(a,t,e,s,n,[i],o,c,r)=>{const[l,y,w,E]=z(t,o,n);return aa(a,(async()=>await E((async()=>(await l(),Q((await y(i,f))[u]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[u]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,c],c)},sa=(a,t,e,s,n,[i,o,[c,l,y]],w,E,p)=>{const[T,m,v,A]=z(t,w,n),h=async(a,t)=>await d(x(o,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await v(e,s,c,n,i,t)}))),O=async(a,t)=>l?await v(y,f,{[u]:a},!0,!0,t):null;return aa(a,(async()=>await A((async()=>{await T();const a=await(async()=>b(L(await d(x(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>c?(await m(y,f))[u]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),r(t)){const[t,e]=a();await h(t),await O(e)}else{const[a,e]=t();await h(a,!0),await O(e,!0)}}))),e,s,n,[p,E],E)},na="json",ia="autoLoadIntervalSeconds",oa="rowIdColumnName",ca="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const o=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(o[0])||s(i,o[0])||H(n,i,o)})),n},Ea="pragma ",da="data_version",ua="schema_version",fa=(a,t,s,n,i,o,r,l,E="getDb")=>{let d,u,p;const[m,v,A,L]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(M(I(ya,o)),0,P(ya)),r=c[2],l=Y(r);return[0,s,[wa(n,{[ca]:null,[oa]:f},ca,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[oa]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),c],l]})(t);return(m?ea:sa)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+da))[0][da],e=(await s(Ea+ua))[0][ua],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(u??=e)&&n==(p??=n)||(a(),d=t,u=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>L.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),d=u=null,i(t)}),r,A,R(L),l,E)};a.createCrSqliteWasmPersister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==E(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),b=Object,g=a=>b.getPrototypeOf(a),D=b.keys,S=b.freeze,C=(a=[])=>b.fromEntries(a),I=(...a)=>b.assign({},...a),F=(a,t)=>m(b.entries(a),(([a,e])=>t(e,a))),M=a=>b.values(a),P=a=>E(D(a)),$=a=>(a=>!r(a)&&l(g(a),(a=>a==b.prototype||r(g(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),W=(a,t,e)=>(O(a,t)||x(a,t,e()),H(a,t)),q=(a,t,e,s=x)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>q(n,C(await u(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,C(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,q(W(n,t,_),e,((a,t,e)=>{e!=H(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?C(h(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,c,o,l=!1)=>{const y=Y();F(i??{},(a=>m(D(a??{}),(a=>k(y,a)))));const w=R(y);if(!l&&o&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void x(n,t);if(A(w)||O(n,t)){const s=H(n,t),i=Y(B(s));await u([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),x(s,e,""))})),...!l&&c?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),x(n,t,_([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await u(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+U+p(e)+"=?",[n]):A(w)||await K(a,t,e,D(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=h(B(H(n,t)),(a=>a!=e)),c=[],o=[];F(i??{},((a,t)=>{L(c,t,...m(s,(t=>a?.[t]))),L(o,t)})),await K(a,t,e,s,c),await a("DELETE FROM"+p(t)+U+p(e)+"NOT IN("+V(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,c)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(c)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),c),V=a=>v(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],y=[])=>{let w,E,u,d=0,f=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,u=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(u),u=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(L(H(Z,y),...a),await(async()=>{if(!H(X,y)){for(x(X,y,1);!r((a=H(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}x(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),S(T)},ta="store",ea=(a,t,e,s,n,[i],c,o)=>{const[r,l,y,w]=z(t,c,n);return aa(a,(async()=>await w((async()=>(await r(),Q((await l(i,f))[d]?.[ta]??"null"))))),(async a=>await w((async()=>{var t;await r(),await y(i,f,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,["getDb",o],o)},sa=(a,t,e,s,n,[i,c,[o,l,y]],w,E)=>{const[p,T,v,m]=z(t,w,n),A=async(a,t)=>await u(j(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await v(e,s,o,n,i,t)}))),L=async(a,t)=>l?await v(y,f,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await m((async()=>{await p();const a=await(async()=>C(h(await u(j(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>o?(await T(y,f))[d]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await m((async()=>{if(await p(),r(t)){const[t,e]=a();await A(t),await L(e)}else{const[a,e]=t();await A(a,!0),await L(e,!0)}}))),e,s,n,["getDb",E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const c=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(c[0])||s(i,c[0])||x(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",fa=(a,t,s,n,i,c,r,l)=>{let E,u,d;const[p,v,m,A]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=w(M(I(ya,c)),0,P(ya)),r=o[2],l=Y(r);return[0,s,[wa(n,{[oa]:null,[ca]:f},oa,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[ca]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),o],l]})(t);return(p?ea:sa)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(u??=e)&&n==(d??=n)||(a(),E=t,u=e)}catch{}},e=v,t(),setInterval(t,1e3*e)),n((t=>A.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=u=null,i(t)}),r,m,R(A),l)};a.createElectricSqlPersister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>a()),s,n,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),y=a=>t(a)==n,w=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",f="_id",p=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",v=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),A=a=>0==E(a),h=(a,t)=>a.filter(t),L=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),b=Object,g=a=>b.getPrototypeOf(a),C=b.keys,S=b.freeze,D=(a=[])=>b.fromEntries(a),I=(...a)=>b.assign({},...a),F=(a,t)=>m(b.entries(a),(([a,e])=>t(e,a))),M=a=>b.values(a),P=a=>E(C(a)),$=a=>(a=>!r(a)&&l(g(a),(a=>a==b.prototype||r(g(a))),(()=>!0)))(a)&&0==P(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),j=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),W=(a,t,e)=>(O(a,t)||x(a,t,e()),H(a,t)),q=(a,t,e,s=x)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),Y=a=>new Set(Array.isArray(a)||r(a)?a:[a]),k=(a,t)=>a?.add(t),G=T+"*FROM",J="FROM pragma_table_",U="WHERE",z=(a,t,e)=>{const n=_();return[async()=>q(n,D(await u(m(await a("SELECT name "+J+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,D(m(await a(T+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(n,t,q(W(n,t,_),e,((a,t,e)=>{e!=H(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(n,t))),async(t,e)=>((a,t)=>!r(H(H(n,a),t)))(t,e)?D(h(m(await a(G+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,e,i,c,o,l=!1)=>{const y=Y();F(i??{},(a=>m(C(a??{}),(a=>k(y,a)))));const w=R(y);if(!l&&o&&A(w)&&O(n,t))return await a("DROP TABLE"+p(t)),void x(n,t);if(A(w)||O(n,t)){const s=H(n,t),i=Y(B(s));await u([...m(w,(async e=>{N(i,e)||(await a(`ALTER TABLE${p(t)}ADD${p(e)}`),x(s,e,""))})),...!l&&c?m(R(i),(async n=>{n!=e&&(await a(`ALTER TABLE${p(t)}DROP${p(n)}`),x(s,n))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(e)} PRIMARY KEY ON CONFLICT REPLACE${v(m(w,(a=>s+p(a))))});`),x(n,t,_([[e,""],...m(w,(a=>[a,""]))]));if(l)r(i)?await a("DELETE FROM"+p(t)+"WHERE 1"):await u(F(i,(async(s,n)=>{r(s)?await a("DELETE FROM"+p(t)+U+p(e)+"=?",[n]):A(w)||await K(a,t,e,C(s),[n,...M(s)])})));else if(A(w))O(n,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const s=h(B(H(n,t)),(a=>a!=e)),c=[],o=[];F(i??{},((a,t)=>{L(c,t,...m(s,(t=>a?.[t]))),L(o,t)})),await K(a,t,e,s,c),await a("DELETE FROM"+p(t)+U+p(e)+"NOT IN("+V(o)+")",o)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},K=async(a,t,e,n,c)=>await a("INSERT INTO"+p(t)+"("+p(e)+v(m(n,(a=>s+p(a))))+")VALUES"+w(i(`,(?${i(",?",E(n))})`,E(c)/(E(n)+1)),1)+"ON CONFLICT("+p(e)+")DO UPDATE SET"+v(m(n,(a=>p(a)+"=excluded."+p(a))),s),c),V=a=>v(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],y=[])=>{let w,E,u,d=0,f=0;W(X,y,(()=>0)),W(Z,y,(()=>[]));const p=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),f=1,u=s((async(e,s)=>{if(s){const t=s();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(f&&(n(u),u=void 0,f=0),T),save:async t=>(1!=d&&(d=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}d=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),w=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();$(e)&&$(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(l(w,a.delListener),w=void 0,T),schedule:async(...a)=>(L(H(Z,y),...a),await(async()=>{if(!H(X,y)){for(x(X,y,1);!r((a=H(Z,y),E=a.shift()));)try{await E()}catch(a){i?.(a)}x(X,y,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),S(T)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[l,y,w,E]=z(t,c,n);return aa(a,(async()=>await E((async()=>(await l(),Q((await y(i,f))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await w(i,f,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?b.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},sa=(a,t,e,s,n,[i,c,[o,l,y]],w,E,p)=>{const[T,v,m,A]=z(t,w,n),L=async(a,t)=>await u(j(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await m(e,s,o,n,i,t)}))),O=async(a,t)=>l?await m(y,f,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await A((async()=>{await T();const a=await(async()=>D(h(await u(j(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>o?(await v(y,f))[d]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await T(),r(t)){const[t,e]=a();await L(t),await O(e)}else{const[a,e]=t();await L(a,!0),await O(e,!0)}}))),e,s,n,[p,E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},ya={load:0,save:0,[ra]:e+"_values"},wa=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const c=w(M(I(t,y(a)?{[e]:a}:a)),0,P(t));r(c[0])||s(i,c[0])||x(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",fa=(a,t,s,n,i,c,r,l,E="getDb")=>{let u,d,p;const[v,m,A,h]=(a=>{const t=(a=>I(la,y(a)?{storeTableName:a}:a??{}))(a),s=t[ia];if(t.mode==na){const{storeTableName:a=e}=t;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=w(M(I(ya,c)),0,P(ya)),r=o[2],l=Y(r);return[0,s,[wa(n,{[oa]:null,[ca]:f},oa,(a=>k(l,a)&&a==r)),wa(i,{[ra]:null,[ca]:f,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(l,t)&&t==r)),o],l]})(t);return(v?ea:sa)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(Ea+ua))[0][ua],e=(await s(Ea+da))[0][da],n=(await s(T+" TOTAL_CHANGES() c"))[0].c;t==(u??=t)&&e==(d??=e)&&n==(p??=n)||(a(),u=t,d=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),n((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),u=d=null,i(t)}),r,A,R(h),l,E)};a.createElectricSqlPersister=(a,t,e,s,n)=>fa(a,e,(async(a,e=[])=>await t.db.raw({sql:a,args:e})),(a=>t.notifier.subscribeToDataChanges((e=>{return s=({tablename:t})=>a(t),t.notifier.alias(e).forEach(s);var s}))),(a=>a()),s,n,t,"getElectricClient")},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterElectricSql={});