tinybase 4.7.4 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) 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-libsql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-powersync.cjs +1 -0
  12. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  16. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  17. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  18. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  19. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  20. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  21. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  22. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -0
  28. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  30. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  33. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +24 -13
  34. package/lib/debug/persisters/persister-electric-sql.js +24 -13
  35. package/lib/debug/persisters/persister-expo-sqlite-next.js +24 -13
  36. package/lib/debug/persisters/persister-expo-sqlite.js +24 -13
  37. package/lib/debug/persisters/persister-libsql.js +24 -13
  38. package/lib/debug/persisters/persister-powersync.js +892 -0
  39. package/lib/debug/persisters/persister-sqlite-wasm.js +24 -13
  40. package/lib/debug/persisters/persister-sqlite3.js +24 -13
  41. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  42. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  43. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  44. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  45. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  46. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  47. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  48. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  49. package/lib/es6/persisters/persister-libsql.js +1 -1
  50. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  51. package/lib/es6/persisters/persister-powersync.js +1 -0
  52. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  53. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  54. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  55. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  56. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  57. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  58. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  59. package/lib/persisters/persister-electric-sql.js +1 -1
  60. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  61. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  62. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  63. package/lib/persisters/persister-expo-sqlite.js +1 -1
  64. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  65. package/lib/persisters/persister-libsql.js +1 -1
  66. package/lib/persisters/persister-libsql.js.gz +0 -0
  67. package/lib/persisters/persister-powersync.js +1 -0
  68. package/lib/persisters/persister-powersync.js.gz +0 -0
  69. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  70. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  71. package/lib/persisters/persister-sqlite3.js +1 -1
  72. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  73. package/lib/types/persisters/persister-powersync.d.ts +154 -0
  74. package/lib/types/persisters.d.ts +1 -0
  75. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +1 -1
  76. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
  77. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +1 -1
  78. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +1 -1
  79. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -1
  80. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -1
  81. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
  82. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +1 -1
  83. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +1 -1
  84. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +1 -1
  85. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +167 -0
  86. package/lib/types/with-schemas/persisters/persister-remote.d.ts +1 -1
  87. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -1
  88. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -1
  89. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +1 -1
  90. package/lib/types/with-schemas/persisters.d.ts +1 -0
  91. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  92. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  93. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  94. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  95. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  96. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  97. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  98. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  99. package/lib/umd/persisters/persister-libsql.js +1 -1
  100. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  101. package/lib/umd/persisters/persister-powersync.js +1 -0
  102. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  103. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  104. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  105. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  106. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  107. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  108. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  109. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  110. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  111. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  112. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  113. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  114. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  115. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  116. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  117. package/lib/umd-es6/persisters/persister-powersync.js +1 -0
  118. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  119. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  120. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  121. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  122. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  123. package/package.json +9 -4
  124. package/readme.md +2 -2
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t="",l=",",o=e(t),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,t)=>a(e)?null==t?void 0:t():n(e),c=n=>e(n)==o,s=(e,n,t)=>e.slice(n,t),v=e=>e.length,y=e=>{return n=function*(){return i.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},f="_",p="_id",E=e=>`"${e.replace(/"/g,'""')}"`,h="SELECT",m=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),b=e=>0==v(e),P=(e,n)=>e.filter(n),A=(e,...n)=>e.push(...n),T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},w=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=(e,n)=>null==e?void 0:e.delete(n),R=Object,N=e=>R.getPrototypeOf(e),S=R.keys,g=R.freeze,x=(e=[])=>R.fromEntries(e),C=(...e)=>R.assign({},...e),D=(e,n)=>O(R.entries(e),(([e,t])=>n(t,e))),I=e=>R.values(e),j=e=>v(S(e)),_=e=>(e=>!a(e)&&d(N(e),(e=>e==R.prototype||a(N(e))),(()=>!0)))(e)&&0==j(e),M=e=>new Map(e),F=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},$=(e,n)=>null==e?void 0:e.get(n),B=(e,n)=>{var t;return O([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},H=(e,n,t)=>a(t)?(L(e,n),e):null==e?void 0:e.set(n,t),k=(e,n,t)=>(T(e,n)||H(e,n,t()),$(e,n)),W=(e,n,t,l=H)=>(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)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),Y=e=>new Set(Array.isArray(e)||a(e)?e:[e]),q=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,z=(e,n,t)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,K=(e,n)=>{for(var t in n||(n={}))U.call(n,t)&&z(e,t,n[t]);if(J)for(var t of J(n))V.call(n,t)&&z(e,t,n[t]);return e},Q=(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 X=h+"*FROM",Z="FROM pragma_table_",ee="WHERE",ne=(e,n,o,r)=>{const i=M();return[()=>Q(void 0,null,(function*(){return W(i,x(yield y(O(yield e("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+le(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,x(O(yield e(h+" name,type "+Z+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>H(i,n,W(k(i,n,M),t,((e,n,t)=>{t!=$(e,n)&&H(e,n,t)}),((e,n)=>H(e,n))))),((e,n)=>H(i,n)))})),(n,t)=>Q(void 0,null,(function*(){return((e,n)=>!a($($(i,e),n)))(n,t)?x(P(O(yield e(X+E(n)),(e=>{return[e[t],(n=K({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!a(e)&&!_(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=Y();D(null!=u?u:{},(e=>O(S(null!=e?e:{}),(e=>q(v,e)))));const f=w(v);if(!s&&c&&b(f)&&T(i,n))return yield e("DROP TABLE"+E(n)),void H(i,n);if(b(f)||T(i,n)){const l=$(i,n),r=Y(F(l));yield y([...O(f,(o=>Q(void 0,null,(function*(){L(r,o)||(yield e(`ALTER TABLE${E(n)}ADD${E(o)}`),H(l,o,t))})))),...!s&&d?O(w(r),(t=>Q(void 0,null,(function*(){t!=o&&(yield e(`ALTER TABLE${E(n)}DROP${E(t)}`),H(l,t))})))):[]])}else yield e(`CREATE TABLE${E(n)}(${E(o)} PRIMARY KEY ON CONFLICT REPLACE${m(O(f,(e=>l+E(e))))});`),H(i,n,M([[o,t],...O(f,(e=>[e,t]))]));if(s)a(u)?yield e("DELETE FROM"+E(n)+"WHERE 1"):yield y(D(u,((t,l)=>Q(void 0,null,(function*(){a(t)?yield e("DELETE FROM"+E(n)+ee+E(o)+"=?",[l]):b(f)||(yield te(e,n,o,S(t),[l,...I(t)],r))})))));else if(b(f))T(i,n)&&(yield e("DELETE FROM"+E(n)+"WHERE 1"));else{const t=P(F($(i,n)),(e=>e!=o)),l=[],r=[];D(null!=u?u:{},((e,n)=>{A(l,n,...O(t,(n=>null==e?void 0:e[n]))),A(r,n)})),yield te(e,n,o,t,l),yield e("DELETE FROM"+E(n)+ee+E(o)+"NOT IN("+le(r)+")",r)}})),n=>Q(void 0,null,(function*(){let t;yield e("BEGIN");try{t=yield n()}catch(e){null==o||o(e)}return yield e("END"),t}))]},te=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?t:"OR REPLACE ")+"INTO"+E(n)+"("+E(o)+m(O(i,(e=>l+E(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+E(o)+")DO UPDATE SET"+m(O(i,(e=>E(e)+"=excluded."+E(e))),l):t),O(u,(e=>null!=e?e:null)))})),le=e=>m(O(e,(()=>"?")),l),oe=JSON.parse;var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=M(),ue=M(),ae=(e,n,t,l,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,p=0;k(ie,c,(()=>0)),k(ue,c,(()=>[]));const E=e=>re(void 0,null,(function*(){return 2!=f&&(f=1,yield h.schedule((()=>re(void 0,null,(function*(){yield e(),f=0}))))),h})),h={load:(t,l)=>re(void 0,null,(function*(){return yield E((()=>re(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>re(void 0,[...t],(function*(t={},o={}){return h.stopAutoLoad(),yield h.load(t,o),p=1,y=l(((t,l)=>re(void 0,null,(function*(){if(l){const n=l();yield E((()=>re(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield E((()=>re(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)}}))))})))),h})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),h),save:n=>re(void 0,null,(function*(){return 1!=f&&(f=2,yield h.schedule((()=>re(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),h})),startAutoSave:()=>re(void 0,null,(function*(){return yield h.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();_(t)&&_(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,h),schedule:(...e)=>re(void 0,null,(function*(){return A($(ue,c),...e),yield re(void 0,null,(function*(){if(!$(ie,c)){for(H(ie,c,1);!a((e=$(ue,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}H(ie,c,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(h[i]=()=>u),g(h)};var de=(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 ce="store",se=(e,n,t,l,o,[r],i,u,a)=>{const[d,c,s,v]=ne(n,i,o);return ae(e,(()=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var e,n;return yield d(),oe(null!=(n=null==(e=(yield c(r,p))[f])?void 0:e[ce])?n:"null")}))))}))),(e=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var n,t;yield d(),yield s(r,p,{[f]:{[ce]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?R.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,[a,u],u)};var ve=(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 ye=(e,n,t,l,o,[r,i,[u,d,c]],s,v,E,h)=>{const[m,O,b,A]=ne(n,s,o,h),T=(e,n)=>ve(void 0,null,(function*(){return yield y(B(i,((t,l)=>ve(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield b(t,l,u,o,r,n))})))))})),w=(e,n)=>ve(void 0,null,(function*(){return d?yield b(c,p,{[f]:e},!0,!0,n):null}));return ae(e,(()=>ve(void 0,null,(function*(){return yield A((()=>ve(void 0,null,(function*(){yield m();const e=yield ve(void 0,null,(function*(){return x(P(yield y(B(r,((e,n)=>ve(void 0,[e,n],(function*([e,n],t){return[e,yield O(t,n)]}))))),(e=>!_(e[1]))))})),n=yield ve(void 0,null,(function*(){return u?(yield O(c,p))[f]:{}}));return _(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ve(void 0,null,(function*(){return yield A((()=>ve(void 0,null,(function*(){if(yield m(),a(n)){const[n,t]=e();yield T(n),yield w(t)}else{const[e,t]=n();yield T(e,!0),yield w(t,!0)}}))))}))),t,l,o,[E,v],v)},fe="json",pe="autoLoadIntervalSeconds",Ee="rowIdColumnName",he="tableId",me="tableName",Oe={mode:fe,[pe]:1},be={load:0,save:0,[me]:n+"_values"},Pe=(e,n,t,l)=>{const o=M();return D(e,((e,r)=>{const i=s(I(C(n,c(e)?{[t]:e}:e)),0,j(n));a(i[0])||l(r,i[0])||H(o,r,i)})),o};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 Te="pragma ",we="data_version",Le="schema_version",Re=(e,t,l,o,r,i,a,d,v="getDb",y)=>{let f,E,m;const[O,b,P,A]=(e=>{const t=(e=>C(Oe,c(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[pe];if(t.mode==fe){const{storeTableName:e=n}=t;return[1,l,[e],Y(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=s(I(C(be,i)),0,j(be)),a=u[2],d=Y(a);return[0,l,[Pe(o,{[he]:null,[Ee]:p},he,(e=>q(d,e)&&e==a)),Pe(r,{[me]:null,[Ee]:p,deleteEmptyColumns:0,deleteEmptyTable:0},me,((e,n)=>q(d,n)&&n==a)),u],d]})(t);return(O?se:ye)(e,i?(e,n)=>Ae(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Ae(void 0,null,(function*(){try{const n=(yield l(Te+we))[0][we],t=(yield l(Te+Le))[0][Le],o=(yield l(h+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&t==(null!=E?E:E=t)&&o==(null!=m?m:m=o)||(e(),f=n,E=t)}catch(e){}})),t=b,n(),setInterval(n,1e3*t)),o((n=>A.has(n)?e():0))];var n,t}),(([e,n])=>{u(e),f=E=null,r(n)}),a,P,w(A),d,v,y)};var Ne=Object.defineProperty,Se=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,Ce=(e,n,t)=>n in e?Ne(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const De=(e,n,t,l,o,r)=>Re(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)&&Ce(e,t,n[t]);if(Se)for(var t of Se(n))xe.call(n,t)&&Ce(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=",",o=e(t),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,t)=>a(e)?null==t?void 0:t():n(e),c=n=>e(n)==o,s=(e,n,t)=>e.slice(n,t),v=e=>e.length,y=e=>{return n=function*(){return i.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},f="_",p="_id",h=e=>`"${e.replace(/"/g,'""')}"`,m="SELECT",E=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),b=e=>0==v(e),P=(e,n)=>e.filter(n),w=(e,...n)=>e.push(...n),A=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},T=(e,n)=>null==e?void 0:e.delete(n),R=Object,L=e=>R.getPrototypeOf(e),S=R.keys,g=R.freeze,x=(e=[])=>R.fromEntries(e),C=(...e)=>R.assign({},...e),I=(e,n)=>O(R.entries(e),(([e,t])=>n(t,e))),D=e=>R.values(e),j=e=>v(S(e)),_=e=>(e=>!a(e)&&d(L(e),(e=>e==R.prototype||a(L(e))),(()=>!0)))(e)&&0==j(e),M=e=>new Map(e),F=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},k=(e,n)=>null==e?void 0:e.get(n),B=(e,n)=>{var t;return O([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},H=(e,n,t)=>a(t)?(T(e,n),e):null==e?void 0:e.set(n,t),Y=(e,n,t)=>(A(e,n)||H(e,n,t()),k(e,n)),$=(e,n,t,l=H)=>(I(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)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),q=e=>new Set(Array.isArray(e)||a(e)?e:[e]),G=(e,n)=>null==e?void 0:e.add(n);var J=Object.defineProperty,U=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,z=(e,n,t)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,K=(e,n)=>{for(var t in n||(n={}))V.call(n,t)&&z(e,t,n[t]);if(U)for(var t of U(n))W.call(n,t)&&z(e,t,n[t]);return e},Q=(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 X="TABLE",Z="ALTER "+X,ee="DELETE FROM",ne=m+"*FROM",te="FROM pragma_table_",le="WHERE",oe=(e,n,o,r)=>{const i=M();return[()=>Q(void 0,null,(function*(){return $(i,x(yield y(O(yield e("SELECT name "+te+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ie(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,x(O(yield e(m+" name,type "+te+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>H(i,n,$(Y(i,n,M),t,((e,n,t)=>{t!=k(e,n)&&H(e,n,t)}),((e,n)=>H(e,n))))),((e,n)=>H(i,n)))})),(n,t)=>Q(void 0,null,(function*(){return((e,n)=>!a(k(k(i,e),n)))(n,t)?x(P(O(yield e(ne+h(n)),(e=>{return[e[t],(n=K({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!a(e)&&!_(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=q();I(null!=u?u:{},(e=>O(S(null!=e?e:{}),(e=>G(v,e)))));const f=N(v);if(!s&&c&&b(f)&&A(i,n))return yield e("DROP "+X+h(n)),void H(i,n);if(b(f)||A(i,n)){const l=k(i,n),r=q(F(l));yield y([...O(f,(o=>Q(void 0,null,(function*(){T(r,o)||(yield e(Z+h(n)+"ADD"+h(o)),H(l,o,t))})))),...!s&&d?O(N(r),(t=>Q(void 0,null,(function*(){t!=o&&(yield e(Z+h(n)+"DROP"+h(t)),H(l,t))})))):[]])}else yield e("CREATE "+X+h(n)+"("+h(o)+` PRIMARY KEY ON CONFLICT REPLACE${E(O(f,(e=>l+h(e))))});`),H(i,n,M([[o,t],...O(f,(e=>[e,t]))]));if(s)a(u)?yield e(ee+h(n)+le+" 1"):yield y(I(u,((t,l)=>Q(void 0,null,(function*(){a(t)?yield e(ee+h(n)+le+h(o)+"=?",[l]):b(f)||(yield re(e,n,o,S(t),[l,...D(t)],r))})))));else if(b(f))A(i,n)&&(yield e(ee+h(n)+le+" 1"));else{const t=P(F(k(i,n)),(e=>e!=o)),l=[],a=[];I(null!=u?u:{},((e,n)=>{w(l,n,...O(t,(n=>null==e?void 0:e[n]))),w(a,n)})),yield re(e,n,o,t,l,r),yield e(ee+h(n)+le+h(o)+"NOT IN("+ie(a)+")",a)}})),n=>Q(void 0,null,(function*(){let t;yield e("BEGIN");try{t=yield n()}catch(e){null==o||o(e)}return yield e("END"),t}))]},re=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?t:"OR REPLACE ")+"INTO"+h(n)+"("+h(o)+E(O(i,(e=>l+h(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+h(o)+")DO UPDATE SET"+E(O(i,(e=>h(e)+"=excluded."+h(e))),l):t),O(u,(e=>null!=e?e:null)))})),ie=e=>E(O(e,(()=>"?")),l),ue=JSON.parse;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=M(),ce=M(),se=(e,n,t,l,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,p=0;Y(de,c,(()=>0)),Y(ce,c,(()=>[]));const h=e=>ae(void 0,null,(function*(){return 2!=f&&(f=1,yield m.schedule((()=>ae(void 0,null,(function*(){yield e(),f=0}))))),m})),m={load:(t,l)=>ae(void 0,null,(function*(){return yield h((()=>ae(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ae(void 0,[...t],(function*(t={},o={}){return m.stopAutoLoad(),yield m.load(t,o),p=1,y=l(((t,l)=>ae(void 0,null,(function*(){if(l){const n=l();yield h((()=>ae(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>ae(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)}}))))})))),m})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),m),save:n=>ae(void 0,null,(function*(){return 1!=f&&(f=2,yield m.schedule((()=>ae(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),m})),startAutoSave:()=>ae(void 0,null,(function*(){return yield m.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();_(t)&&_(l)||m.save((()=>[t,l]))})),m})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,m),schedule:(...e)=>ae(void 0,null,(function*(){return w(k(ce,c),...e),yield ae(void 0,null,(function*(){if(!k(de,c)){for(H(de,c,1);!a((e=k(ce,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}H(de,c,0)}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(m[i]=()=>u),g(m)};var ve=(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 ye="store",fe=(e,n,t,l,o,[r],i,u,a,d)=>{const[c,s,v,y]=oe(n,i,o,d);return se(e,(()=>ve(void 0,null,(function*(){return yield y((()=>ve(void 0,null,(function*(){var e,n;return yield c(),ue(null!=(n=null==(e=(yield s(r,p))[f])?void 0:e[ye])?n:"null")}))))}))),(e=>ve(void 0,null,(function*(){return yield y((()=>ve(void 0,null,(function*(){var n,t;yield c(),yield v(r,p,{[f]:{[ye]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?R.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,[a,u],u)};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 he=(e,n,t,l,o,[r,i,[u,d,c]],s,v,h,m)=>{const[E,O,b,w]=oe(n,s,o,m),A=(e,n)=>pe(void 0,null,(function*(){return yield y(B(i,((t,l)=>pe(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield b(t,l,u,o,r,n))})))))})),N=(e,n)=>pe(void 0,null,(function*(){return d?yield b(c,p,{[f]:e},!0,!0,n):null}));return se(e,(()=>pe(void 0,null,(function*(){return yield w((()=>pe(void 0,null,(function*(){yield E();const e=yield pe(void 0,null,(function*(){return x(P(yield y(B(r,((e,n)=>pe(void 0,[e,n],(function*([e,n],t){return[e,yield O(t,n)]}))))),(e=>!_(e[1]))))})),n=yield pe(void 0,null,(function*(){return u?(yield O(c,p))[f]:{}}));return _(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>pe(void 0,null,(function*(){return yield w((()=>pe(void 0,null,(function*(){if(yield E(),a(n)){const[n,t]=e();yield A(n),yield N(t)}else{const[e,t]=n();yield A(e,!0),yield N(t,!0)}}))))}))),t,l,o,[h,v],v)},me="json",Ee="autoLoadIntervalSeconds",Oe="rowIdColumnName",be="tableId",Pe="tableName",we={mode:me,[Ee]:1},Ae={load:0,save:0,[Pe]:n+"_values"},Ne=(e,n,t,l)=>{const o=M();return I(e,((e,r)=>{const i=s(D(C(n,c(e)?{[t]:e}:e)),0,j(n));a(i[0])||l(r,i[0])||H(o,r,i)})),o};var Te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Re="pragma ",Le="data_version",Se="schema_version",ge=(e,t,l,o,r,i,a,d,v="getDb",y)=>{let f,h,E;const[O,b,P,w]=(e=>{const t=(e=>C(we,c(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[Ee];if(t.mode==me){const{storeTableName:e=n}=t;return[1,l,[e],q(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=s(D(C(Ae,i)),0,j(Ae)),a=u[2],d=q(a);return[0,l,[Ne(o,{[be]:null,[Oe]:p},be,(e=>G(d,e)&&e==a)),Ne(r,{[Pe]:null,[Oe]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Pe,((e,n)=>G(d,n)&&n==a)),u],d]})(t);return(O?fe:he)(e,i?(e,n)=>Te(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Te(void 0,null,(function*(){try{const n=(yield l(Re+Le))[0][Le],t=(yield l(Re+Se))[0][Se],o=(yield l(m+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&t==(null!=h?h:h=t)&&o==(null!=E?E:E=o)||(e(),f=n,h=t)}catch(e){}})),t=b,n(),setInterval(n,1e3*t)),o((n=>w.has(n)?e():0))];var n,t}),(([e,n])=>{u(e),f=h=null,r(n)}),a,P,N(w),d,v,y)};var xe=Object.defineProperty,Ce=Object.getOwnPropertySymbols,Ie=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,je=(e,n,t)=>n in e?xe(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const _e=(e,n,t,l,o,r)=>ge(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={}))Ie.call(n,t)&&je(e,t,n[t]);if(Ce)for(var t of Ce(n))De.call(n,t)&&je(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{_e as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,l)=>a(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,v=(e,n,l)=>e.slice(n,l),s=e=>e.length,y=e=>{return n=function*(){return i.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},f="_",E="_id",h=e=>`"${e.replace(/"/g,'""')}"`,p="SELECT",m=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),A=e=>0==s(e),T=(e,n)=>e.filter(n),L=(e,...n)=>e.push(...n),P=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},R=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},w=(e,n)=>null==e?void 0:e.delete(n),b=Object,N=e=>b.getPrototypeOf(e),C=b.keys,S=b.freeze,g=(e=[])=>b.fromEntries(e),x=(...e)=>b.assign({},...e),D=(e,n)=>O(b.entries(e),(([e,l])=>n(l,e))),I=e=>b.values(e),F=e=>s(C(e)),M=e=>(e=>!a(e)&&d(N(e),(e=>e==b.prototype||a(N(e))),(()=>!0)))(e)&&0==F(e),$=e=>new Map(e),_=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},j=(e,n)=>null==e?void 0:e.get(n),B=(e,n)=>{var l;return O([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},H=(e,n,l)=>a(l)?(w(e,n),e):null==e?void 0:e.set(n,l),W=(e,n,l)=>(P(e,n)||H(e,n,l()),j(e,n)),Y=(e,n,l,t=H)=>(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)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),k=e=>new Set(Array.isArray(e)||a(e)?e:[e]),G=(e,n)=>null==e?void 0:e.add(n);var J=Object.defineProperty,U=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,V=(e,n,l)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,q=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&V(e,l,n[l]);if(U)for(var l of U(n))K.call(n,l)&&V(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 X=p+"*FROM",Z="FROM pragma_table_",ee="WHERE",ne=(e,n,o,r)=>{const i=$();return[()=>Q(void 0,null,(function*(){return Y(i,g(yield y(O(yield e("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+te(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,g(O(yield e(p+" name,type "+Z+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>H(i,n,Y(W(i,n,$),l,((e,n,l)=>{l!=j(e,n)&&H(e,n,l)}),((e,n)=>H(e,n))))),((e,n)=>H(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!a(j(j(i,e),n)))(n,l)?g(T(O(yield e(X+h(n)),(e=>{return[e[l],(n=q({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!M(n)))):{}})),(n,o,u,d,c,v=!1)=>Q(void 0,null,(function*(){const s=k();D(null!=u?u:{},(e=>O(C(null!=e?e:{}),(e=>G(s,e)))));const f=R(s);if(!v&&c&&A(f)&&P(i,n))return yield e("DROP TABLE"+h(n)),void H(i,n);if(A(f)||P(i,n)){const t=j(i,n),r=k(_(t));yield y([...O(f,(o=>Q(void 0,null,(function*(){w(r,o)||(yield e(`ALTER TABLE${h(n)}ADD${h(o)}`),H(t,o,l))})))),...!v&&d?O(R(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${h(n)}DROP${h(l)}`),H(t,l))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(o)} PRIMARY KEY ON CONFLICT REPLACE${m(O(f,(e=>t+h(e))))});`),H(i,n,$([[o,l],...O(f,(e=>[e,l]))]));if(v)a(u)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield y(D(u,((l,t)=>Q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+h(n)+ee+h(o)+"=?",[t]):A(f)||(yield le(e,n,o,C(l),[t,...I(l)],r))})))));else if(A(f))P(i,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=T(_(j(i,n)),(e=>e!=o)),t=[],r=[];D(null!=u?u:{},((e,n)=>{L(t,n,...O(l,(n=>null==e?void 0:e[n]))),L(r,n)})),yield le(e,n,o,l,t),yield e("DELETE FROM"+h(n)+ee+h(o)+"NOT IN("+te(r)+")",r)}})),n=>Q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==o||o(e)}return yield e("END"),l}))]},le=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?l:"OR REPLACE ")+"INTO"+h(n)+"("+h(o)+m(O(i,(e=>t+h(e))))+")VALUES"+v(r(`,(?${r(",?",s(i))})`,s(u)/(s(i)+1)),1)+(a?"ON CONFLICT("+h(o)+")DO UPDATE SET"+m(O(i,(e=>h(e)+"=excluded."+h(e))),t):l),O(u,(e=>null!=e?e:null)))})),te=e=>m(O(e,(()=>"?")),t),oe=JSON.parse;var re=(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 ie=$(),ue=$(),ae=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let v,s,y,f=0,E=0;W(ie,c,(()=>0)),W(ue,c,(()=>[]));const h=e=>re(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>re(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>re(void 0,null,(function*(){return yield h((()=>re(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>re(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),E=1,y=t(((l,t)=>re(void 0,null,(function*(){if(t){const n=t();yield h((()=>re(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>re(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:()=>(E&&(o(y),y=void 0,E=0),p),save:n=>re(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>re(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>re(void 0,null,(function*(){return yield p.stopAutoSave().save(),v=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();M(l)&&M(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(d(v,e.delListener),v=void 0,p),schedule:(...e)=>re(void 0,null,(function*(){return L(j(ue,c),...e),yield re(void 0,null,(function*(){if(!j(ie,c)){for(H(ie,c,1);!a((e=j(ue,c),s=e.shift()));)try{yield s()}catch(e){null==r||r(e)}H(ie,c,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>u),S(p)};var de=(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 ce="store",ve=(e,n,l,t,o,[r],i,u,a)=>{const[d,c,v,s]=ne(n,i,o);return ae(e,(()=>de(void 0,null,(function*(){return yield s((()=>de(void 0,null,(function*(){var e,n;return yield d(),oe(null!=(n=null==(e=(yield c(r,E))[f])?void 0:e[ce])?n:"null")}))))}))),(e=>de(void 0,null,(function*(){return yield s((()=>de(void 0,null,(function*(){var n,l;yield d(),yield v(r,E,{[f]:{[ce]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?b.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 ye=(e,n,l,t,o,[r,i,[u,d,c]],v,s,h,p)=>{const[m,O,A,L]=ne(n,v,o,p),P=(e,n)=>se(void 0,null,(function*(){return yield y(B(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))})))))})),R=(e,n)=>se(void 0,null,(function*(){return d?yield A(c,E,{[f]:e},!0,!0,n):null}));return ae(e,(()=>se(void 0,null,(function*(){return yield L((()=>se(void 0,null,(function*(){yield m();const e=yield se(void 0,null,(function*(){return g(T(yield y(B(r,((e,n)=>se(void 0,[e,n],(function*([e,n],l){return[e,yield O(l,n)]}))))),(e=>!M(e[1]))))})),n=yield se(void 0,null,(function*(){return u?(yield O(c,E))[f]:{}}));return M(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>se(void 0,null,(function*(){return yield L((()=>se(void 0,null,(function*(){if(yield m(),a(n)){const[n,l]=e();yield P(n),yield R(l)}else{const[e,l]=n();yield P(e,!0),yield R(l,!0)}}))))}))),l,t,o,[h,s],s)},fe="json",Ee="autoLoadIntervalSeconds",he="rowIdColumnName",pe="tableId",me="tableName",Oe={mode:fe,[Ee]:1},Ae={load:0,save:0,[me]:n+"_values"},Te=(e,n,l,t)=>{const o=$();return D(e,((e,r)=>{const i=v(I(x(n,c(e)?{[l]:e}:e)),0,F(n));a(i[0])||t(r,i[0])||H(o,r,i)})),o};var Le=(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 Pe="pragma ",Re="data_version",we="schema_version",be=(e,l,t,o,r,i,a,d,s="getDb",y)=>{let f,h,m;const[O,A,T,L]=(e=>{const l=(e=>x(Oe,c(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[Ee];if(l.mode==fe){const{storeTableName:e=n}=l;return[1,t,[e],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(I(x(Ae,i)),0,F(Ae)),a=u[2],d=k(a);return[0,t,[Te(o,{[pe]:null,[he]:E},pe,(e=>G(d,e)&&e==a)),Te(r,{[me]:null,[he]:E,deleteEmptyColumns:0,deleteEmptyTable:0},me,((e,n)=>G(d,n)&&n==a)),u],d]})(l);return(O?ve:ye)(e,i?(e,n)=>Le(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Le(void 0,null,(function*(){try{const n=(yield t(Pe+Re))[0][Re],l=(yield t(Pe+we))[0][we],o=(yield t(p+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&l==(null!=h?h:h=l)&&o==(null!=m?m:m=o)||(e(),f=n,h=l)}catch(e){}})),l=A,n(),setInterval(n,1e3*l)),o((n=>L.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=h=null,r(n)}),a,T,R(L),d,s,y)},Ne="change",Ce=(e,n,l,t,o)=>be(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 i(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(Ne,l),l}),(e=>n.off(Ne,e)),t,o,n);export{Ce as createSqlite3Persister};
1
+ const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,l)=>a(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,v=(e,n,l)=>e.slice(n,l),s=e=>e.length,y=e=>{return n=function*(){return i.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},f="_",h="_id",p=e=>`"${e.replace(/"/g,'""')}"`,m="SELECT",E=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),P=e=>0==s(e),A=(e,n)=>e.filter(n),w=(e,...n)=>e.push(...n),b=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},T=(e,n)=>null==e?void 0:e.delete(n),L=Object,R=e=>L.getPrototypeOf(e),C=L.keys,S=L.freeze,g=(e=[])=>L.fromEntries(e),x=(...e)=>L.assign({},...e),I=(e,n)=>O(L.entries(e),(([e,l])=>n(l,e))),D=e=>L.values(e),_=e=>s(C(e)),j=e=>(e=>!a(e)&&d(R(e),(e=>e==L.prototype||a(R(e))),(()=>!0)))(e)&&0==_(e),F=e=>new Map(e),M=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},B=(e,n)=>null==e?void 0:e.get(n),H=(e,n)=>{var l;return O([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},Y=(e,n,l)=>a(l)?(T(e,n),e):null==e?void 0:e.set(n,l),$=(e,n,l)=>(b(e,n)||Y(e,n,l()),B(e,n)),k=(e,n,l,t=Y)=>(I(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)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),G=e=>new Set(Array.isArray(e)||a(e)?e:[e]),J=(e,n)=>null==e?void 0:e.add(n);var U=Object.defineProperty,W=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,V=(e,n,l)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,q=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&V(e,l,n[l]);if(W)for(var l of W(n))K.call(n,l)&&V(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 X="TABLE",Z="ALTER "+X,ee="DELETE FROM",ne=m+"*FROM",le="FROM pragma_table_",te="WHERE",oe=(e,n,o,r)=>{const i=F();return[()=>Q(void 0,null,(function*(){return k(i,g(yield y(O(yield e("SELECT name "+le+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ie(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,g(O(yield e(m+" name,type "+le+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>Y(i,n,k($(i,n,F),l,((e,n,l)=>{l!=B(e,n)&&Y(e,n,l)}),((e,n)=>Y(e,n))))),((e,n)=>Y(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!a(B(B(i,e),n)))(n,l)?g(A(O(yield e(ne+p(n)),(e=>{return[e[l],(n=q({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!j(n)))):{}})),(n,o,u,d,c,v=!1)=>Q(void 0,null,(function*(){const s=G();I(null!=u?u:{},(e=>O(C(null!=e?e:{}),(e=>J(s,e)))));const f=N(s);if(!v&&c&&P(f)&&b(i,n))return yield e("DROP "+X+p(n)),void Y(i,n);if(P(f)||b(i,n)){const t=B(i,n),r=G(M(t));yield y([...O(f,(o=>Q(void 0,null,(function*(){T(r,o)||(yield e(Z+p(n)+"ADD"+p(o)),Y(t,o,l))})))),...!v&&d?O(N(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(Z+p(n)+"DROP"+p(l)),Y(t,l))})))):[]])}else yield e("CREATE "+X+p(n)+"("+p(o)+` PRIMARY KEY ON CONFLICT REPLACE${E(O(f,(e=>t+p(e))))});`),Y(i,n,F([[o,l],...O(f,(e=>[e,l]))]));if(v)a(u)?yield e(ee+p(n)+te+" 1"):yield y(I(u,((l,t)=>Q(void 0,null,(function*(){a(l)?yield e(ee+p(n)+te+p(o)+"=?",[t]):P(f)||(yield re(e,n,o,C(l),[t,...D(l)],r))})))));else if(P(f))b(i,n)&&(yield e(ee+p(n)+te+" 1"));else{const l=A(M(B(i,n)),(e=>e!=o)),t=[],a=[];I(null!=u?u:{},((e,n)=>{w(t,n,...O(l,(n=>null==e?void 0:e[n]))),w(a,n)})),yield re(e,n,o,l,t,r),yield e(ee+p(n)+te+p(o)+"NOT IN("+ie(a)+")",a)}})),n=>Q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==o||o(e)}return yield e("END"),l}))]},re=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?l:"OR REPLACE ")+"INTO"+p(n)+"("+p(o)+E(O(i,(e=>t+p(e))))+")VALUES"+v(r(`,(?${r(",?",s(i))})`,s(u)/(s(i)+1)),1)+(a?"ON CONFLICT("+p(o)+")DO UPDATE SET"+E(O(i,(e=>p(e)+"=excluded."+p(e))),t):l),O(u,(e=>null!=e?e:null)))})),ie=e=>E(O(e,(()=>"?")),t),ue=JSON.parse;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=F(),ce=F(),ve=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let v,s,y,f=0,h=0;$(de,c,(()=>0)),$(ce,c,(()=>[]));const p=e=>ae(void 0,null,(function*(){return 2!=f&&(f=1,yield m.schedule((()=>ae(void 0,null,(function*(){yield e(),f=0}))))),m})),m={load:(l,t)=>ae(void 0,null,(function*(){return yield p((()=>ae(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>ae(void 0,[...l],(function*(l={},o={}){return m.stopAutoLoad(),yield m.load(l,o),h=1,y=t(((l,t)=>ae(void 0,null,(function*(){if(t){const n=t();yield p((()=>ae(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield p((()=>ae(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)}}))))})))),m})),stopAutoLoad:()=>(h&&(o(y),y=void 0,h=0),m),save:n=>ae(void 0,null,(function*(){return 1!=f&&(f=2,yield m.schedule((()=>ae(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),m})),startAutoSave:()=>ae(void 0,null,(function*(){return yield m.stopAutoSave().save(),v=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();j(l)&&j(t)||m.save((()=>[l,t]))})),m})),stopAutoSave:()=>(d(v,e.delListener),v=void 0,m),schedule:(...e)=>ae(void 0,null,(function*(){return w(B(ce,c),...e),yield ae(void 0,null,(function*(){if(!B(de,c)){for(Y(de,c,1);!a((e=B(ce,c),s=e.shift()));)try{yield s()}catch(e){null==r||r(e)}Y(de,c,0)}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(m[i]=()=>u),S(m)};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 ye="store",fe=(e,n,l,t,o,[r],i,u,a,d)=>{const[c,v,s,y]=oe(n,i,o,d);return ve(e,(()=>se(void 0,null,(function*(){return yield y((()=>se(void 0,null,(function*(){var e,n;return yield c(),ue(null!=(n=null==(e=(yield v(r,h))[f])?void 0:e[ye])?n:"null")}))))}))),(e=>se(void 0,null,(function*(){return yield y((()=>se(void 0,null,(function*(){var n,l;yield c(),yield s(r,h,{[f]:{[ye]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[a,u],u)};var he=(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 pe=(e,n,l,t,o,[r,i,[u,d,c]],v,s,p,m)=>{const[E,O,P,w]=oe(n,v,o,m),b=(e,n)=>he(void 0,null,(function*(){return yield y(H(i,((l,t)=>he(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield P(l,t,u,o,r,n))})))))})),N=(e,n)=>he(void 0,null,(function*(){return d?yield P(c,h,{[f]:e},!0,!0,n):null}));return ve(e,(()=>he(void 0,null,(function*(){return yield w((()=>he(void 0,null,(function*(){yield E();const e=yield he(void 0,null,(function*(){return g(A(yield y(H(r,((e,n)=>he(void 0,[e,n],(function*([e,n],l){return[e,yield O(l,n)]}))))),(e=>!j(e[1]))))})),n=yield he(void 0,null,(function*(){return u?(yield O(c,h))[f]:{}}));return j(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>he(void 0,null,(function*(){return yield w((()=>he(void 0,null,(function*(){if(yield E(),a(n)){const[n,l]=e();yield b(n),yield N(l)}else{const[e,l]=n();yield b(e,!0),yield N(l,!0)}}))))}))),l,t,o,[p,s],s)},me="json",Ee="autoLoadIntervalSeconds",Oe="rowIdColumnName",Pe="tableId",Ae="tableName",we={mode:me,[Ee]:1},be={load:0,save:0,[Ae]:n+"_values"},Ne=(e,n,l,t)=>{const o=F();return I(e,((e,r)=>{const i=v(D(x(n,c(e)?{[l]:e}:e)),0,_(n));a(i[0])||t(r,i[0])||Y(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 ",Re="data_version",Ce="schema_version",Se=(e,l,t,o,r,i,a,d,s="getDb",y)=>{let f,p,E;const[O,P,A,w]=(e=>{const l=(e=>x(we,c(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[Ee];if(l.mode==me){const{storeTableName:e=n}=l;return[1,t,[e],G(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(D(x(be,i)),0,_(be)),a=u[2],d=G(a);return[0,t,[Ne(o,{[Pe]:null,[Oe]:h},Pe,(e=>J(d,e)&&e==a)),Ne(r,{[Ae]:null,[Oe]:h,deleteEmptyColumns:0,deleteEmptyTable:0},Ae,((e,n)=>J(d,n)&&n==a)),u],d]})(l);return(O?fe:pe)(e,i?(e,n)=>Te(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Te(void 0,null,(function*(){try{const n=(yield t(Le+Re))[0][Re],l=(yield t(Le+Ce))[0][Ce],o=(yield t(m+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&l==(null!=p?p:p=l)&&o==(null!=E?E:E=o)||(e(),f=n,p=l)}catch(e){}})),l=P,n(),setInterval(n,1e3*l)),o((n=>w.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=p=null,r(n)}),a,A,N(w),d,s,y)},ge="change",xe=(e,n,l,t,o)=>Se(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 i(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(ge,l),l}),(e=>n.off(ge,e)),t,o,n);export{xe as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",v="_id",p=a=>`"${a.replace(/"/g,'""')}"`,A="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),L=a=>0==E(a),O=(a,t)=>a.filter(t),R=(a,...t)=>a.push(...t),f=(a,t)=>a?.has(t)??!1,N=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)=>m(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),$=a=>E(S(a)),P=a=>(a=>!r(a)&&w(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==$(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(h(a,t),a):a?.set(t,e),x=(a,t,e)=>(f(a,t)||j(a,t,e()),H(a,t)),U=(a,t,e,s=j)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(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=A+"*FROM",J="FROM pragma_table_",z="WHERE",K=(a,t,n,i)=>{const c=_();return[async()=>U(c,I(await u(m(await a("SELECT name "+J+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(A+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(c,t,U(x(c,t,_),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?I(O(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)&&!P(t)))):{},async(t,n,o,w,l,y=!1)=>{const E=Y();F(o??{},(a=>m(S(a??{}),(a=>k(E,a)))));const d=N(E);if(!y&&l&&L(d)&&f(c,t))return await a("DROP TABLE"+p(t)),void j(c,t);if(L(d)||f(c,t)){const s=H(c,t),i=Y(B(s));await u([...m(d,(async n=>{h(i,n)||(await a(`ALTER TABLE${p(t)}ADD${p(n)}`),j(s,n,e))})),...!y&&w?m(N(i),(async e=>{e!=n&&(await a(`ALTER TABLE${p(t)}DROP${p(e)}`),j(s,e))})):[]])}else await a(`CREATE TABLE${p(t)}(${p(n)} PRIMARY KEY ON CONFLICT REPLACE${T(m(d,(a=>s+p(a))))});`),j(c,t,_([[n,e],...m(d,(a=>[a,e]))]));if(y)r(o)?await a("DELETE FROM"+p(t)+"WHERE 1"):await u(F(o,(async(e,s)=>{r(e)?await a("DELETE FROM"+p(t)+z+p(n)+"=?",[s]):L(d)||await V(a,t,n,S(e),[s,...M(e)],i)})));else if(L(d))f(c,t)&&await a("DELETE FROM"+p(t)+"WHERE 1");else{const e=O(B(H(c,t)),(a=>a!=n)),s=[],i=[];F(o??{},((a,t)=>{R(s,t,...m(e,(t=>a?.[t]))),R(i,t)})),await V(a,t,n,e,s),await a("DELETE FROM"+p(t)+z+p(n)+"NOT IN("+q(i)+")",i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},V=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+p(t)+"("+p(n)+T(m(c,(a=>s+p(a))))+")VALUES"+y(i(`,(?${i(",?",E(c))})`,E(o)/(E(c)+1)),1)+(r?"ON CONFLICT("+p(n)+")DO UPDATE SET"+T(m(c,(a=>p(a)+"=excluded."+p(a))),s):e),m(o,(a=>a??null))),q=a=>T(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,E,u,d=0,v=0;x(X,l,(()=>0)),x(Z,l,(()=>[]));const p=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await p((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 p((async()=>a.setTransactionChanges(t)))}else await p((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();P(e)&&P(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(w(y,a.delListener),y=void 0,A),schedule:async(...a)=>(R(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!r((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>o),g(A)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[w,l,y,E]=K(t,c,n);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,v))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,v,{[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,w,l]],y,E,p,A)=>{const[T,m,L,R]=K(t,y,n,A),f=async(a,t)=>await u(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await L(e,s,o,n,i,t)}))),N=async(a,t)=>w?await L(l,v,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await R((async()=>{await T();const a=await(async()=>I(O(await u(W(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>o?(await m(l,v))[d]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await T(),r(t)){const[t,e]=a();await f(t),await N(e)}else{const[a,e]=t();await f(a,!0),await N(e,!0)}}))),e,s,n,[p,E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:na,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const c=y(M(b(t,l(a)?{[e]:a}:a)),0,$(t));r(c[0])||s(i,c[0])||j(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,s,n,i,c,r,w,E="getDb",u)=>{let d,p,T;const[m,L,O,R]=(a=>{const e=(a=>b(wa,l(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(M(b(la,c)),0,$(la)),r=o[2],w=Y(r);return[0,s,[ya(n,{[oa]:null,[ca]:v},oa,(a=>k(w,a)&&a==r)),ya(i,{[ra]:null,[ca]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>k(w,t)&&t==r)),o],w]})(e);return(m?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(A+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(p??=e)&&n==(T??=n)||(a(),d=t,p=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),n((t=>R.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),d=p=null,i(t)}),r,O,N(R),w,E,u)},pa=(a,t,e,s,n)=>va(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{pa as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",v="_id",p=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),f=a=>0==u(a),N=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),g=C.keys,D=C.freeze,I=(a=[])=>C.fromEntries(a),b=(...a)=>C.assign({},...a),P=(a,t)=>O(C.entries(a),(([a,e])=>t(e,a))),_=a=>C.values(a),F=a=>u(g(a)),M=a=>(a=>!r(a)&&w(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==F(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>O([...a?.entries()??[]],(([a,e])=>t(e,a))),U=(a,t,e)=>r(e)?(R(a,t),a):a?.set(t,e),Y=(a,t,e)=>(h(a,t)||U(a,t,e()),B(a,t)),$=(a,t,e,s=U)=>(P(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),k=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J="TABLE",W="ALTER "+J,z="DELETE FROM",K=m+"*FROM",V="FROM pragma_table_",q="WHERE",Q=(a,t,n,i)=>{const c=j();return[async()=>$(c,I(await d(O(await a("SELECT name "+V+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(O(await a(m+" name,type "+V+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>U(c,t,$(Y(c,t,j),e,((a,t,e)=>{e!=B(a,t)&&U(a,t,e)}),((a,t)=>U(a,t))))),((a,t)=>U(c,t))),async(t,e)=>((a,t)=>!r(B(B(c,a),t)))(t,e)?I(N(O(await a(K+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!M(t)))):{},async(t,n,o,w,l,y=!1)=>{const u=k();P(o??{},(a=>O(g(a??{}),(a=>G(u,a)))));const E=L(u);if(!y&&l&&f(E)&&h(c,t))return await a("DROP "+J+p(t)),void U(c,t);if(f(E)||h(c,t)){const s=B(c,t),i=k(x(s));await d([...O(E,(async n=>{R(i,n)||(await a(W+p(t)+"ADD"+p(n)),U(s,n,e))})),...!y&&w?O(L(i),(async e=>{e!=n&&(await a(W+p(t)+"DROP"+p(e)),U(s,e))})):[]])}else await a("CREATE "+J+p(t)+"("+p(n)+` PRIMARY KEY ON CONFLICT REPLACE${A(O(E,(a=>s+p(a))))});`),U(c,t,j([[n,e],...O(E,(a=>[a,e]))]));if(y)r(o)?await a(z+p(t)+q+" 1"):await d(P(o,(async(e,s)=>{r(e)?await a(z+p(t)+q+p(n)+"=?",[s]):f(E)||await X(a,t,n,g(e),[s,..._(e)],i)})));else if(f(E))h(c,t)&&await a(z+p(t)+q+" 1");else{const e=N(x(B(c,t)),(a=>a!=n)),s=[],r=[];P(o??{},((a,t)=>{T(s,t,...O(e,(t=>a?.[t]))),T(r,t)})),await X(a,t,n,e,s,i),await a(z+p(t)+q+p(n)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},X=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+p(t)+"("+p(n)+A(O(c,(a=>s+p(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+p(n)+")DO UPDATE SET"+A(O(c,(a=>p(a)+"=excluded."+p(a))),s):e),O(o,(a=>a??null))),Z=a=>A(O(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),sa=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,u,d,E=0,v=0;Y(ta,l,(()=>0)),Y(ea,l,(()=>[]));const p=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),v=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)}}))})),m),stopAutoLoad:()=>(v&&(n(d),d=void 0,v=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();M(e)&&M(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(w(y,a.delListener),y=void 0,m),schedule:async(...a)=>(T(B(ea,l),...a),await(async()=>{if(!B(ta,l)){for(U(ta,l,1);!r((a=B(ea,l),u=a.shift()));)try{await u()}catch(a){i?.(a)}U(ta,l,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>o),D(m)},na="store",ia=(a,t,e,s,n,[i],c,o,r,w)=>{const[l,y,u,d]=Q(t,c,n,w);return sa(a,(async()=>await d((async()=>(await l(),aa((await y(i,v))[E]?.[na]??"null"))))),(async a=>await d((async()=>{var t;await l(),await u(i,v,{[E]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ca=(a,t,e,s,n,[i,c,[o,w,l]],y,u,p,m)=>{const[A,O,f,T]=Q(t,y,n,m),h=async(a,t)=>await d(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await f(e,s,o,n,i,t)}))),L=async(a,t)=>w?await f(l,v,{[E]:a},!0,!0,t):null;return sa(a,(async()=>await T((async()=>{await A();const a=await(async()=>I(N(await d(H(i,(async([a,t],e)=>[a,await O(e,t)]))),(a=>!M(a[1])))))(),t=await(async()=>o?(await O(l,v))[E]:{})();return M(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await A(),r(t)){const[t,e]=a();await h(t),await L(e)}else{const[a,e]=t();await h(a,!0),await L(e,!0)}}))),e,s,n,[p,u],u)},oa="json",ra="autoLoadIntervalSeconds",wa="rowIdColumnName",la="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,s)=>{const n=j();return P(a,((a,i)=>{const c=y(_(b(t,l(a)?{[e]:a}:a)),0,F(t));r(c[0])||s(i,c[0])||U(n,i,c)})),n},va="pragma ",pa="data_version",ma="schema_version",Aa=(a,e,s,n,i,c,r,w,u="getDb",d)=>{let E,p,A;const[O,f,N,T]=(a=>{const e=(a=>b(ua,l(a)?{storeTableName:a}:a??{}))(a),s=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(_(b(da,c)),0,F(da)),r=o[2],w=k(r);return[0,s,[Ea(n,{[la]:null,[wa]:v},la,(a=>G(w,a)&&a==r)),Ea(i,{[ya]:null,[wa]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>G(w,t)&&t==r)),o],w]})(e);return(O?ia:ca)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(va+pa))[0][pa],e=(await s(va+ma))[0][ma],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&n==(A??=n)||(a(),E=t,p=e)}catch{}},e=f,t(),setInterval(t,1e3*e)),n((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=p=null,i(t)}),r,N,L(T),w,u,d)},Oa=(a,t,e,s,n)=>Aa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s,n,t);export{Oa as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",v="_id",T=a=>`"${a.replace(/"/g,'""')}"`,A="SELECT",m=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),L=a=>0==E(a),R=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),C=Object,D=a=>C.getPrototypeOf(a),g=C.keys,S=C.freeze,b=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),F=(a,t)=>p(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),$=a=>E(g(a)),P=a=>(a=>!r(a)&&l(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==$(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),Y=(a,t,e)=>(O(a,t)||j(a,t,e()),H(a,t)),k=(a,t,e,s=j)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),x=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=A+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,n,i)=>{const c=_();return[async()=>k(c,b(await u(p(await a("SELECT name "+U+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(p(await a(A+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(c,t,k(Y(c,t,_),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?b(R(p(await a(J+T(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!P(t)))):{},async(t,n,o,l,w,y=!1)=>{const E=x();F(o??{},(a=>p(g(a??{}),(a=>G(E,a)))));const d=h(E);if(!y&&w&&L(d)&&O(c,t))return await a("DROP TABLE"+T(t)),void j(c,t);if(L(d)||O(c,t)){const s=H(c,t),i=x(B(s));await u([...p(d,(async n=>{N(i,n)||(await a(`ALTER TABLE${T(t)}ADD${T(n)}`),j(s,n,e))})),...!y&&l?p(h(i),(async e=>{e!=n&&(await a(`ALTER TABLE${T(t)}DROP${T(e)}`),j(s,e))})):[]])}else await a(`CREATE TABLE${T(t)}(${T(n)} PRIMARY KEY ON CONFLICT REPLACE${m(p(d,(a=>s+T(a))))});`),j(c,t,_([[n,e],...p(d,(a=>[a,e]))]));if(y)r(o)?await a("DELETE FROM"+T(t)+"WHERE 1"):await u(F(o,(async(e,s)=>{r(e)?await a("DELETE FROM"+T(t)+q+T(n)+"=?",[s]):L(d)||await K(a,t,n,g(e),[s,...M(e)],i)})));else if(L(d))O(c,t)&&await a("DELETE FROM"+T(t)+"WHERE 1");else{const e=R(B(H(c,t)),(a=>a!=n)),s=[],i=[];F(o??{},((a,t)=>{f(s,t,...p(e,(t=>a?.[t]))),f(i,t)})),await K(a,t,n,e,s),await a("DELETE FROM"+T(t)+q+T(n)+"NOT IN("+V(i)+")",i)}},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,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+T(t)+"("+T(n)+m(p(c,(a=>s+T(a))))+")VALUES"+y(i(`,(?${i(",?",E(c))})`,E(o)/(E(c)+1)),1)+(r?"ON CONFLICT("+T(n)+")DO UPDATE SET"+m(p(c,(a=>T(a)+"=excluded."+T(a))),s):e),p(o,(a=>a??null))),V=a=>m(p(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],w=[])=>{let y,E,u,d=0,v=0;Y(X,w,(()=>0)),Y(Z,w,(()=>[]));const T=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await T((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 T((async()=>a.setTransactionChanges(t)))}else await T((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();P(e)&&P(s)||A.save((()=>[e,s]))})),A),stopAutoSave:()=>(l(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(H(Z,w),...a),await(async()=>{if(!H(X,w)){for(j(X,w,1);!r((a=H(Z,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,w,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>o),S(A)},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,v))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,v,{[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,T,A)=>{const[m,p,L,f]=z(t,y,n,A),O=async(a,t)=>await u(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await L(e,s,o,n,i,t)}))),h=async(a,t)=>l?await L(w,v,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await f((async()=>{await m();const a=await(async()=>b(R(await u(W(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>o?(await p(w,v))[d]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await f((async()=>{if(await m(),r(t)){const[t,e]=a();await O(t),await h(e)}else{const[a,e]=t();await O(a,!0),await h(e,!0)}}))),e,s,n,[T,E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",la={mode:na,[ia]:1},wa={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=_();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])||j(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,s,n,i,c,r,l,E="getDb",u)=>{let d,T,m;const[p,L,R,f]=(a=>{const e=(a=>I(la,w(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],x(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(M(I(wa,c)),0,$(wa)),r=o[2],l=x(r);return[0,s,[ya(n,{[oa]:null,[ca]:v},oa,(a=>G(l,a)&&a==r)),ya(i,{[ra]:null,[ca]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(l,t)&&t==r)),o],l]})(e);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(A+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(T??=e)&&n==(m??=n)||(a(),d=t,T=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),n((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),d=T=null,i(t)}),r,R,h(f),l,E,u)},Ta=(a,t,e,s,n)=>va(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{Ta as createElectricSqlPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",v="_id",m=a=>`"${a.replace(/"/g,'""')}"`,p="SELECT",f=(a,t="")=>a.join(t),A=(a,t)=>a.map(t),h=a=>0==u(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,C=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,g=a=>R.getPrototypeOf(a),S=R.keys,b=R.freeze,D=(a=[])=>R.fromEntries(a),I=(...a)=>R.assign({},...a),P=(a,t)=>A(R.entries(a),(([a,e])=>t(e,a))),_=a=>R.values(a),F=a=>u(S(a)),M=a=>(a=>!r(a)&&l(g(a),(a=>a==R.prototype||r(g(a))),(()=>!0)))(a)&&0==F(a),j=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),Y=(a,t)=>A([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),k=(a,t,e)=>(O(a,t)||$(a,t,e()),H(a,t)),x=(a,t,e,s=$)=>(P(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),G=a=>new Set(Array.isArray(a)||r(a)?a:[a]),J=(a,t)=>a?.add(t),U="TABLE",W="ALTER "+U,q="DELETE FROM",z=p+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,n,i)=>{const c=j();return[async()=>x(c,D(await d(A(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,D(A(await a(p+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(c,t,x(k(c,t,j),e,((a,t,e)=>{e!=H(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?D(T(A(await a(z+m(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!M(t)))):{},async(t,n,o,l,w,y=!1)=>{const u=G();P(o??{},(a=>A(S(a??{}),(a=>J(u,a)))));const E=C(u);if(!y&&w&&h(E)&&O(c,t))return await a("DROP "+U+m(t)),void $(c,t);if(h(E)||O(c,t)){const s=H(c,t),i=G(B(s));await d([...A(E,(async n=>{L(i,n)||(await a(W+m(t)+"ADD"+m(n)),$(s,n,e))})),...!y&&l?A(C(i),(async e=>{e!=n&&(await a(W+m(t)+"DROP"+m(e)),$(s,e))})):[]])}else await a("CREATE "+U+m(t)+"("+m(n)+` PRIMARY KEY ON CONFLICT REPLACE${f(A(E,(a=>s+m(a))))});`),$(c,t,j([[n,e],...A(E,(a=>[a,e]))]));if(y)r(o)?await a(q+m(t)+V+" 1"):await d(P(o,(async(e,s)=>{r(e)?await a(q+m(t)+V+m(n)+"=?",[s]):h(E)||await X(a,t,n,S(e),[s,..._(e)],i)})));else if(h(E))O(c,t)&&await a(q+m(t)+V+" 1");else{const e=T(B(H(c,t)),(a=>a!=n)),s=[],r=[];P(o??{},((a,t)=>{N(s,t,...A(e,(t=>a?.[t]))),N(r,t)})),await X(a,t,n,e,s,i),await a(q+m(t)+V+m(n)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},X=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+m(t)+"("+m(n)+f(A(c,(a=>s+m(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+m(n)+")DO UPDATE SET"+f(A(c,(a=>m(a)+"=excluded."+m(a))),s):e),A(o,(a=>a??null))),Z=a=>f(A(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),sa=(a,t,e,s,n,i,[c,o]=[],w=[])=>{let y,u,d,E=0,v=0;k(ta,w,(()=>0)),k(ea,w,(()=>[]));const m=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),v=1,d=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)}}))})),p),stopAutoLoad:()=>(v&&(n(d),d=void 0,v=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();M(e)&&M(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(l(y,a.delListener),y=void 0,p),schedule:async(...a)=>(N(H(ea,w),...a),await(async()=>{if(!H(ta,w)){for($(ta,w,1);!r((a=H(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}$(ta,w,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),b(p)},na="store",ia=(a,t,e,s,n,[i],c,o,r,l)=>{const[w,y,u,d]=Q(t,c,n,l);return sa(a,(async()=>await d((async()=>(await w(),aa((await y(i,v))[E]?.[na]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,v,{[E]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ca=(a,t,e,s,n,[i,c,[o,l,w]],y,u,m,p)=>{const[f,A,h,N]=Q(t,y,n,p),O=async(a,t)=>await d(Y(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await h(e,s,o,n,i,t)}))),C=async(a,t)=>l?await h(w,v,{[E]:a},!0,!0,t):null;return sa(a,(async()=>await N((async()=>{await f();const a=await(async()=>D(T(await d(Y(i,(async([a,t],e)=>[a,await A(e,t)]))),(a=>!M(a[1])))))(),t=await(async()=>o?(await A(w,v))[E]:{})();return M(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await f(),r(t)){const[t,e]=a();await O(t),await C(e)}else{const[a,e]=t();await O(a,!0),await C(e,!0)}}))),e,s,n,[m,u],u)},oa="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",wa="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,s)=>{const n=j();return P(a,((a,i)=>{const c=y(_(I(t,w(a)?{[e]:a}:a)),0,F(t));r(c[0])||s(i,c[0])||$(n,i,c)})),n},va="pragma ",ma="data_version",pa="schema_version",fa=(a,e,s,n,i,c,r,l,u="getDb",d)=>{let E,m,f;const[A,h,T,N]=(a=>{const e=(a=>I(ua,w(a)?{storeTableName:a}:a??{}))(a),s=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,s,[a],G(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(_(I(da,c)),0,F(da)),r=o[2],l=G(r);return[0,s,[Ea(n,{[wa]:null,[la]:v},wa,(a=>J(l,a)&&a==r)),Ea(i,{[ya]:null,[la]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>J(l,t)&&t==r)),o],l]})(e);return(A?ia:ca)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(va+ma))[0][ma],e=(await s(va+pa))[0][pa],n=(await s(p+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(m??=e)&&n==(f??=n)||(a(),E=t,m=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),n((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=m=null,i(t)}),r,T,C(N),l,u,d)},Aa=(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");export{Aa as createElectricSqlPersister};
@@ -1 +1 @@
1
- import{addDatabaseChangeListener as a}from"expo-sqlite/next";const t=a=>typeof a,e="tinybase",s="",n=",",i=t(s),c=(a,t)=>a.repeat(t),o=Promise,r=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=a=>t(a)==i,E=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>o.all(a),m="_",v="_id",A=a=>`"${a.replace(/"/g,'""')}"`,p="SELECT",T=(a,t="")=>a.join(t),L=(a,t)=>a.map(t),R=a=>0==u(a),O=(a,t)=>a.filter(t),f=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),D=Object,S=a=>D.getPrototypeOf(a),g=D.keys,I=D.freeze,b=(a=[])=>D.fromEntries(a),F=(...a)=>D.assign({},...a),M=(a,t)=>L(D.entries(a),(([a,e])=>t(e,a))),$=a=>D.values(a),P=a=>u(g(a)),_=a=>(a=>!l(a)&&w(S(a),(a=>a==D.prototype||l(S(a))),(()=>!0)))(a)&&0==P(a),B=a=>new Map(a),H=a=>[...a?.keys()??[]],x=(a,t)=>a?.get(t),W=(a,t)=>L([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>l(e)?(C(a,t),a):a?.set(t,e),Y=(a,t,e)=>(N(a,t)||j(a,t,e()),x(a,t)),k=(a,t,e,s=j)=>(M(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),G=a=>new Set(Array.isArray(a)||l(a)?a:[a]),J=(a,t)=>a?.add(t),U=p+"*FROM",q="FROM pragma_table_",z="WHERE",K=(a,t,e,i)=>{const c=B();return[async()=>k(c,b(await d(L(await a("SELECT name "+q+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Q(t)+")ORDER BY name",t),(async({name:t})=>[t,b(L(await a(p+" name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(c,t,k(Y(c,t,B),e,((a,t,e)=>{e!=x(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(c,t))),async(t,e)=>((a,t)=>!l(x(x(c,a),t)))(t,e)?b(O(L(await a(U+A(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!_(t)))):{},async(t,e,o,r,w,y=!1)=>{const E=G();M(o??{},(a=>L(g(a??{}),(a=>J(E,a)))));const u=h(E);if(!y&&w&&R(u)&&N(c,t))return await a("DROP TABLE"+A(t)),void j(c,t);if(R(u)||N(c,t)){const n=x(c,t),i=G(H(n));await d([...L(u,(async e=>{C(i,e)||(await a(`ALTER TABLE${A(t)}ADD${A(e)}`),j(n,e,s))})),...!y&&r?L(h(i),(async s=>{s!=e&&(await a(`ALTER TABLE${A(t)}DROP${A(s)}`),j(n,s))})):[]])}else await a(`CREATE TABLE${A(t)}(${A(e)} PRIMARY KEY ON CONFLICT REPLACE${T(L(u,(a=>n+A(a))))});`),j(c,t,B([[e,s],...L(u,(a=>[a,s]))]));if(y)l(o)?await a("DELETE FROM"+A(t)+"WHERE 1"):await d(M(o,(async(s,n)=>{l(s)?await a("DELETE FROM"+A(t)+z+A(e)+"=?",[n]):R(u)||await V(a,t,e,g(s),[n,...$(s)],i)})));else if(R(u))N(c,t)&&await a("DELETE FROM"+A(t)+"WHERE 1");else{const s=O(H(x(c,t)),(a=>a!=e)),n=[],i=[];M(o??{},((a,t)=>{f(n,t,...L(s,(t=>a?.[t]))),f(i,t)})),await V(a,t,e,s,n),await a("DELETE FROM"+A(t)+z+A(e)+"NOT IN("+Q(i)+")",i)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},V=async(a,t,e,i,o,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+A(t)+"("+A(e)+T(L(i,(a=>n+A(a))))+")VALUES"+E(c(`,(?${c(",?",u(i))})`,u(o)/(u(i)+1)),1)+(r?"ON CONFLICT("+A(e)+")DO UPDATE SET"+T(L(i,(a=>A(a)+"=excluded."+A(a))),n):s),L(o,(a=>a??null))),Q=a=>T(L(a,(()=>"?")),n),X=JSON.parse,Z=B(),aa=B(),ta=(a,t,e,s,n,i,[c,o]=[],r=[])=>{let y,E,u,d=0,m=0;Y(Z,r,(()=>0)),Y(aa,r,(()=>[]));const v=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.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)}}))})),A),stopAutoLoad:()=>(m&&(n(u),u=void 0,m=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:()=>(w(y,a.delListener),y=void 0,A),schedule:async(...a)=>(f(x(aa,r),...a),await(async()=>{if(!x(Z,r)){for(j(Z,r,1);!l((a=x(aa,r),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(Z,r,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>o),I(A)},ea="store",sa=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=K(t,c,n);return ta(a,(async()=>await E((async()=>(await l(),X((await w(i,v))[m]?.[ea]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,v,{[m]:{[ea]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?D.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},na=(a,t,e,s,n,[i,c,[o,r,w]],y,E,u,A)=>{const[p,T,L,R]=K(t,y,n,A),f=async(a,t)=>await d(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await L(e,s,o,n,i,t)}))),N=async(a,t)=>r?await L(w,v,{[m]:a},!0,!0,t):null;return ta(a,(async()=>await R((async()=>{await p();const a=await(async()=>b(O(await d(W(i,(async([a,t],e)=>[a,await T(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?(await T(w,v))[m]:{})();return _(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await R((async()=>{if(await p(),l(t)){const[t,e]=a();await f(t),await N(e)}else{const[a,e]=t();await f(a,!0),await N(e,!0)}}))),e,s,n,[u,E],E)},ia="json",ca="autoLoadIntervalSeconds",oa="rowIdColumnName",ra="tableId",la="tableName",wa={mode:ia,[ca]:1},ya={load:0,save:0,[la]:e+"_values"},Ea=(a,t,e,s)=>{const n=B();return M(a,((a,i)=>{const c=E($(F(t,y(a)?{[e]:a}:a)),0,P(t));l(c[0])||s(i,c[0])||j(n,i,c)})),n},ua="pragma ",da="data_version",ma="schema_version",va=(a,t,s,n,i,c,o,l,w="getDb",u)=>{let d,m,A;const[T,L,R,O]=(a=>{const t=(a=>F(wa,y(a)?{storeTableName:a}:a??{}))(a),s=t[ca];if(t.mode==ia){const{storeTableName:a=e}=t;return[1,s,[a],G(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=E($(F(ya,c)),0,P(ya)),r=o[2],l=G(r);return[0,s,[Ea(n,{[ra]:null,[oa]:v},ra,(a=>J(l,a)&&a==r)),Ea(i,{[la]:null,[oa]:v,deleteEmptyColumns:0,deleteEmptyTable:0},la,((a,t)=>J(l,t)&&t==r)),o],l]})(t);return(T?sa:na)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(ua+da))[0][da],e=(await s(ua+ma))[0][ma],n=(await s(p+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(m??=e)&&n==(A??=n)||(a(),d=t,m=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),d=m=null,i(t)}),o,R,h(O),l,w,u)},Aa=(t,e,s,n,i)=>va(t,s,(async(a,t=[])=>await e.getAllAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),n,i,e);export{Aa as createExpoSqliteNextPersister};
1
+ import{addDatabaseChangeListener as a}from"expo-sqlite/next";const t=a=>typeof a,e="tinybase",s="",n=",",i=t(s),c=(a,t)=>a.repeat(t),o=Promise,r=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=a=>t(a)==i,u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>o.all(a),m="_",v="_id",p=a=>`"${a.replace(/"/g,'""')}"`,A="SELECT",f=(a,t="")=>a.join(t),N=(a,t)=>a.map(t),O=a=>0==d(a),T=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),L=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],C=(a,t)=>a?.delete(t),S=Object,g=a=>S.getPrototypeOf(a),D=S.keys,I=S.freeze,b=(a=[])=>S.fromEntries(a),P=(...a)=>S.assign({},...a),_=(a,t)=>N(S.entries(a),(([a,e])=>t(e,a))),F=a=>S.values(a),M=a=>d(D(a)),x=a=>(a=>!l(a)&&w(g(a),(a=>a==S.prototype||l(g(a))),(()=>!0)))(a)&&0==M(a),j=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),Y=(a,t)=>N([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>l(e)?(C(a,t),a):a?.set(t,e),k=(a,t,e)=>(L(a,t)||$(a,t,e()),H(a,t)),G=(a,t,e,s=$)=>(_(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!l(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),J=a=>new Set(Array.isArray(a)||l(a)?a:[a]),U=(a,t)=>a?.add(t),W="TABLE",q="ALTER "+W,z="DELETE FROM",K=A+"*FROM",V="FROM pragma_table_",Q="WHERE",X=(a,t,e,i)=>{const c=j();return[async()=>G(c,b(await E(N(await a("SELECT name "+V+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+aa(t)+")ORDER BY name",t),(async({name:t})=>[t,b(N(await a(A+" name,type "+V+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(c,t,G(k(c,t,j),e,((a,t,e)=>{e!=H(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(c,t))),async(t,e)=>((a,t)=>!l(H(H(c,a),t)))(t,e)?b(T(N(await a(K+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!l(a)&&!x(t)))):{},async(t,e,o,r,w,y=!1)=>{const u=J();_(o??{},(a=>N(D(a??{}),(a=>U(u,a)))));const d=R(u);if(!y&&w&&O(d)&&L(c,t))return await a("DROP "+W+p(t)),void $(c,t);if(O(d)||L(c,t)){const n=H(c,t),i=J(B(n));await E([...N(d,(async e=>{C(i,e)||(await a(q+p(t)+"ADD"+p(e)),$(n,e,s))})),...!y&&r?N(R(i),(async s=>{s!=e&&(await a(q+p(t)+"DROP"+p(s)),$(n,s))})):[]])}else await a("CREATE "+W+p(t)+"("+p(e)+` PRIMARY KEY ON CONFLICT REPLACE${f(N(d,(a=>n+p(a))))});`),$(c,t,j([[e,s],...N(d,(a=>[a,s]))]));if(y)l(o)?await a(z+p(t)+Q+" 1"):await E(_(o,(async(s,n)=>{l(s)?await a(z+p(t)+Q+p(e)+"=?",[n]):O(d)||await Z(a,t,e,D(s),[n,...F(s)],i)})));else if(O(d))L(c,t)&&await a(z+p(t)+Q+" 1");else{const s=T(B(H(c,t)),(a=>a!=e)),n=[],r=[];_(o??{},((a,t)=>{h(n,t,...N(s,(t=>a?.[t]))),h(r,t)})),await Z(a,t,e,s,n,i),await a(z+p(t)+Q+p(e)+"NOT IN("+aa(r)+")",r)}},async t=>{let s;await a("BEGIN");try{s=await t()}catch(a){e?.(a)}return await a("END"),s}]},Z=async(a,t,e,i,o,r=!0)=>await a("INSERT "+(r?s:"OR REPLACE ")+"INTO"+p(t)+"("+p(e)+f(N(i,(a=>n+p(a))))+")VALUES"+u(c(`,(?${c(",?",d(i))})`,d(o)/(d(i)+1)),1)+(r?"ON CONFLICT("+p(e)+")DO UPDATE SET"+f(N(i,(a=>p(a)+"=excluded."+p(a))),n):s),N(o,(a=>a??null))),aa=a=>f(N(a,(()=>"?")),n),ta=JSON.parse,ea=j(),sa=j(),na=(a,t,e,s,n,i,[c,o]=[],r=[])=>{let y,u,d,E=0,m=0;k(ea,r,(()=>0)),k(sa,r,(()=>[]));const v=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=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,d=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(d),d=void 0,m=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();x(e)&&x(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(y,a.delListener),y=void 0,p),schedule:async(...a)=>(h(H(sa,r),...a),await(async()=>{if(!H(ea,r)){for($(ea,r,1);!l((a=H(sa,r),u=a.shift()));)try{await u()}catch(a){i?.(a)}$(ea,r,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),I(p)},ia="store",ca=(a,t,e,s,n,[i],c,o,r,l)=>{const[w,y,u,d]=X(t,c,n,l);return na(a,(async()=>await d((async()=>(await w(),ta((await y(i,v))[m]?.[ia]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,v,{[m]:{[ia]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},oa=(a,t,e,s,n,[i,c,[o,r,w]],y,u,d,p)=>{const[A,f,N,O]=X(t,y,n,p),h=async(a,t)=>await E(Y(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await N(e,s,o,n,i,t)}))),L=async(a,t)=>r?await N(w,v,{[m]:a},!0,!0,t):null;return na(a,(async()=>await O((async()=>{await A();const a=await(async()=>b(T(await E(Y(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!x(a[1])))))(),t=await(async()=>o?(await f(w,v))[m]:{})();return x(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),l(t)){const[t,e]=a();await h(t),await L(e)}else{const[a,e]=t();await h(a,!0),await L(e,!0)}}))),e,s,n,[d,u],u)},ra="json",la="autoLoadIntervalSeconds",wa="rowIdColumnName",ya="tableId",ua="tableName",da={mode:ra,[la]:1},Ea={load:0,save:0,[ua]:e+"_values"},ma=(a,t,e,s)=>{const n=j();return _(a,((a,i)=>{const c=u(F(P(t,y(a)?{[e]:a}:a)),0,M(t));l(c[0])||s(i,c[0])||$(n,i,c)})),n},va="pragma ",pa="data_version",Aa="schema_version",fa=(a,t,s,n,i,c,o,l,w="getDb",d)=>{let E,m,p;const[f,N,O,T]=(a=>{const t=(a=>P(da,y(a)?{storeTableName:a}:a??{}))(a),s=t[la];if(t.mode==ra){const{storeTableName:a=e}=t;return[1,s,[a],J(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=t,o=u(F(P(Ea,c)),0,M(Ea)),r=o[2],l=J(r);return[0,s,[ma(n,{[ya]:null,[wa]:v},ya,(a=>U(l,a)&&a==r)),ma(i,{[ua]:null,[wa]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ua,((a,t)=>U(l,t)&&t==r)),o],l]})(t);return(f?ca:oa)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(va+pa))[0][pa],e=(await s(va+Aa))[0][Aa],n=(await s(A+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(m??=e)&&n==(p??=n)||(a(),E=t,m=e)}catch{}},e=N,t(),setInterval(t,1e3*e)),n((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{r(a),E=m=null,i(t)}),o,O,R(T),l,w,d)},Na=(t,e,s,n,i)=>fa(t,s,(async(a,t=[])=>await e.getAllAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),n,i,e);export{Na as createExpoSqliteNextPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",v="_id",A=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",T=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),L=a=>0==E(a),R=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),C=Object,D=a=>C.getPrototypeOf(a),S=C.keys,g=C.freeze,b=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),F=(a,t)=>p(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),$=a=>E(S(a)),P=a=>(a=>!r(a)&&w(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==$(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(h(a,t),a):a?.set(t,e),x=(a,t,e)=>(N(a,t)||j(a,t,e()),H(a,t)),Y=(a,t,e,s=j)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(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=m+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,n,i)=>{const c=_();return[async()=>Y(c,b(await u(p(await a("SELECT name "+U+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,b(p(await a(m+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(c,t,Y(x(c,t,_),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?b(R(p(await a(J+A(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!P(t)))):{},async(t,n,o,w,l,y=!1)=>{const E=k();F(o??{},(a=>p(S(a??{}),(a=>G(E,a)))));const d=f(E);if(!y&&l&&L(d)&&N(c,t))return await a("DROP TABLE"+A(t)),void j(c,t);if(L(d)||N(c,t)){const s=H(c,t),i=k(B(s));await u([...p(d,(async n=>{h(i,n)||(await a(`ALTER TABLE${A(t)}ADD${A(n)}`),j(s,n,e))})),...!y&&w?p(f(i),(async e=>{e!=n&&(await a(`ALTER TABLE${A(t)}DROP${A(e)}`),j(s,e))})):[]])}else await a(`CREATE TABLE${A(t)}(${A(n)} PRIMARY KEY ON CONFLICT REPLACE${T(p(d,(a=>s+A(a))))});`),j(c,t,_([[n,e],...p(d,(a=>[a,e]))]));if(y)r(o)?await a("DELETE FROM"+A(t)+"WHERE 1"):await u(F(o,(async(e,s)=>{r(e)?await a("DELETE FROM"+A(t)+q+A(n)+"=?",[s]):L(d)||await K(a,t,n,S(e),[s,...M(e)],i)})));else if(L(d))N(c,t)&&await a("DELETE FROM"+A(t)+"WHERE 1");else{const e=R(B(H(c,t)),(a=>a!=n)),s=[],i=[];F(o??{},((a,t)=>{O(s,t,...p(e,(t=>a?.[t]))),O(i,t)})),await K(a,t,n,e,s),await a("DELETE FROM"+A(t)+q+A(n)+"NOT IN("+V(i)+")",i)}},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,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+A(t)+"("+A(n)+T(p(c,(a=>s+A(a))))+")VALUES"+y(i(`,(?${i(",?",E(c))})`,E(o)/(E(c)+1)),1)+(r?"ON CONFLICT("+A(n)+")DO UPDATE SET"+T(p(c,(a=>A(a)+"=excluded."+A(a))),s):e),p(o,(a=>a??null))),V=a=>T(p(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,E,u,d=0,v=0;x(X,l,(()=>0)),x(Z,l,(()=>[]));const A=async a=>(2!=d&&(d=1,await m.schedule((async()=>{await a(),d=0}))),m),m={load:async(e,s)=>await A((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 A((async()=>a.setTransactionChanges(t)))}else await A((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();P(e)&&P(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(w(y,a.delListener),y=void 0,m),schedule:async(...a)=>(O(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!r((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>o),g(m)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[w,l,y,E]=z(t,c,n);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,v))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,v,{[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,w,l]],y,E,A,m)=>{const[T,p,L,O]=z(t,y,n,m),N=async(a,t)=>await u(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await L(e,s,o,n,i,t)}))),f=async(a,t)=>w?await L(l,v,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await O((async()=>{await T();const a=await(async()=>b(R(await u(W(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>o?(await p(l,v))[d]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await T(),r(t)){const[t,e]=a();await N(t),await f(e)}else{const[a,e]=t();await N(a,!0),await f(e,!0)}}))),e,s,n,[A,E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:na,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const c=y(M(I(t,l(a)?{[e]:a}:a)),0,$(t));r(c[0])||s(i,c[0])||j(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,s,n,i,c,r,w,E="getDb",u)=>{let d,A,T;const[p,L,R,O]=(a=>{const e=(a=>I(wa,l(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(M(I(la,c)),0,$(la)),r=o[2],w=k(r);return[0,s,[ya(n,{[oa]:null,[ca]:v},oa,(a=>G(w,a)&&a==r)),ya(i,{[ra]:null,[ca]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(w,t)&&t==r)),o],w]})(e);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(m+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(A??=e)&&n==(T??=n)||(a(),d=t,A=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),d=A=null,i(t)}),r,R,f(O),w,E,u)},Aa=(a,t,e,s,n)=>va(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{Aa as createExpoSqlitePersister};
1
+ const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",v="_id",m=a=>`"${a.replace(/"/g,'""')}"`,p="SELECT",A=(a,t="")=>a.join(t),N=(a,t)=>a.map(t),f=a=>0==u(a),h=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),T=(a,t)=>a?.has(t)??!1,C=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,S=a=>R.getPrototypeOf(a),g=R.keys,D=R.freeze,b=(a=[])=>R.fromEntries(a),I=(...a)=>R.assign({},...a),P=(a,t)=>N(R.entries(a),(([a,e])=>t(e,a))),_=a=>R.values(a),F=a=>u(g(a)),M=a=>(a=>!r(a)&&w(S(a),(a=>a==R.prototype||r(S(a))),(()=>!0)))(a)&&0==F(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>N([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e)=>(T(a,t)||Y(a,t,e()),B(a,t)),k=(a,t,e,s=Y)=>(P(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),G=a=>new Set(Array.isArray(a)||r(a)?a:[a]),J=(a,t)=>a?.add(t),U="TABLE",W="ALTER "+U,q="DELETE FROM",z=p+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,n,i)=>{const c=j();return[async()=>k(c,b(await d(N(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,b(N(await a(p+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(c,t,k($(c,t,j),e,((a,t,e)=>{e!=B(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(c,t))),async(t,e)=>((a,t)=>!r(B(B(c,a),t)))(t,e)?b(h(N(await a(z+m(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!M(t)))):{},async(t,n,o,w,l,y=!1)=>{const u=G();P(o??{},(a=>N(g(a??{}),(a=>J(u,a)))));const E=C(u);if(!y&&l&&f(E)&&T(c,t))return await a("DROP "+U+m(t)),void Y(c,t);if(f(E)||T(c,t)){const s=B(c,t),i=G(x(s));await d([...N(E,(async n=>{L(i,n)||(await a(W+m(t)+"ADD"+m(n)),Y(s,n,e))})),...!y&&w?N(C(i),(async e=>{e!=n&&(await a(W+m(t)+"DROP"+m(e)),Y(s,e))})):[]])}else await a("CREATE "+U+m(t)+"("+m(n)+` PRIMARY KEY ON CONFLICT REPLACE${A(N(E,(a=>s+m(a))))});`),Y(c,t,j([[n,e],...N(E,(a=>[a,e]))]));if(y)r(o)?await a(q+m(t)+V+" 1"):await d(P(o,(async(e,s)=>{r(e)?await a(q+m(t)+V+m(n)+"=?",[s]):f(E)||await X(a,t,n,g(e),[s,..._(e)],i)})));else if(f(E))T(c,t)&&await a(q+m(t)+V+" 1");else{const e=h(x(B(c,t)),(a=>a!=n)),s=[],r=[];P(o??{},((a,t)=>{O(s,t,...N(e,(t=>a?.[t]))),O(r,t)})),await X(a,t,n,e,s,i),await a(q+m(t)+V+m(n)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},X=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+m(t)+"("+m(n)+A(N(c,(a=>s+m(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+m(n)+")DO UPDATE SET"+A(N(c,(a=>m(a)+"=excluded."+m(a))),s):e),N(o,(a=>a??null))),Z=a=>A(N(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),sa=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,u,d,E=0,v=0;$(ta,l,(()=>0)),$(ea,l,(()=>[]));const m=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),v=1,d=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)}}))})),p),stopAutoLoad:()=>(v&&(n(d),d=void 0,v=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();M(e)&&M(s)||p.save((()=>[e,s]))})),p),stopAutoSave:()=>(w(y,a.delListener),y=void 0,p),schedule:async(...a)=>(O(B(ea,l),...a),await(async()=>{if(!B(ta,l)){for(Y(ta,l,1);!r((a=B(ea,l),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,l,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),D(p)},na="store",ia=(a,t,e,s,n,[i],c,o,r,w)=>{const[l,y,u,d]=Q(t,c,n,w);return sa(a,(async()=>await d((async()=>(await l(),aa((await y(i,v))[E]?.[na]??"null"))))),(async a=>await d((async()=>{var t;await l(),await u(i,v,{[E]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ca=(a,t,e,s,n,[i,c,[o,w,l]],y,u,m,p)=>{const[A,N,f,O]=Q(t,y,n,p),T=async(a,t)=>await d(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await f(e,s,o,n,i,t)}))),C=async(a,t)=>w?await f(l,v,{[E]:a},!0,!0,t):null;return sa(a,(async()=>await O((async()=>{await A();const a=await(async()=>b(h(await d(H(i,(async([a,t],e)=>[a,await N(e,t)]))),(a=>!M(a[1])))))(),t=await(async()=>o?(await N(l,v))[E]:{})();return M(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await T(t),await C(e)}else{const[a,e]=t();await T(a,!0),await C(e,!0)}}))),e,s,n,[m,u],u)},oa="json",ra="autoLoadIntervalSeconds",wa="rowIdColumnName",la="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,s)=>{const n=j();return P(a,((a,i)=>{const c=y(_(I(t,l(a)?{[e]:a}:a)),0,F(t));r(c[0])||s(i,c[0])||Y(n,i,c)})),n},va="pragma ",ma="data_version",pa="schema_version",Aa=(a,e,s,n,i,c,r,w,u="getDb",d)=>{let E,m,A;const[N,f,h,O]=(a=>{const e=(a=>I(ua,l(a)?{storeTableName:a}:a??{}))(a),s=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,s,[a],G(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(_(I(da,c)),0,F(da)),r=o[2],w=G(r);return[0,s,[Ea(n,{[la]:null,[wa]:v},la,(a=>J(w,a)&&a==r)),Ea(i,{[ya]:null,[wa]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>J(w,t)&&t==r)),o],w]})(e);return(N?ia:ca)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(va+ma))[0][ma],e=(await s(va+pa))[0][pa],n=(await s(p+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(m??=e)&&n==(A??=n)||(a(),E=t,m=e)}catch{}},e=f,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=m=null,i(t)}),r,h,C(O),w,u,d)},Na=(a,t,e,s,n)=>Aa(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{Na as createExpoSqlitePersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",v="_id",A=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",p=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),L=a=>0==E(a),R=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),f=(a,t)=>a?.has(t)??!1,N=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)=>m(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),$=a=>E(S(a)),P=a=>(a=>!r(a)&&w(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==$(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(h(a,t),a):a?.set(t,e),x=(a,t,e)=>(f(a,t)||j(a,t,e()),H(a,t)),Y=(a,t,e,s=j)=>(F(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(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=T+"*FROM",U="FROM pragma_table_",q="WHERE",z=(a,t,n,i)=>{const c=_();return[async()=>Y(c,I(await u(m(await a("SELECT name "+U+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+V(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(c,t,Y(x(c,t,_),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?I(R(m(await a(J+A(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!P(t)))):{},async(t,n,o,w,l,y=!1)=>{const E=k();F(o??{},(a=>m(S(a??{}),(a=>G(E,a)))));const d=N(E);if(!y&&l&&L(d)&&f(c,t))return await a("DROP TABLE"+A(t)),void j(c,t);if(L(d)||f(c,t)){const s=H(c,t),i=k(B(s));await u([...m(d,(async n=>{h(i,n)||(await a(`ALTER TABLE${A(t)}ADD${A(n)}`),j(s,n,e))})),...!y&&w?m(N(i),(async e=>{e!=n&&(await a(`ALTER TABLE${A(t)}DROP${A(e)}`),j(s,e))})):[]])}else await a(`CREATE TABLE${A(t)}(${A(n)} PRIMARY KEY ON CONFLICT REPLACE${p(m(d,(a=>s+A(a))))});`),j(c,t,_([[n,e],...m(d,(a=>[a,e]))]));if(y)r(o)?await a("DELETE FROM"+A(t)+"WHERE 1"):await u(F(o,(async(e,s)=>{r(e)?await a("DELETE FROM"+A(t)+q+A(n)+"=?",[s]):L(d)||await K(a,t,n,S(e),[s,...M(e)],i)})));else if(L(d))f(c,t)&&await a("DELETE FROM"+A(t)+"WHERE 1");else{const e=R(B(H(c,t)),(a=>a!=n)),s=[],i=[];F(o??{},((a,t)=>{O(s,t,...m(e,(t=>a?.[t]))),O(i,t)})),await K(a,t,n,e,s),await a("DELETE FROM"+A(t)+q+A(n)+"NOT IN("+V(i)+")",i)}},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,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+A(t)+"("+A(n)+p(m(c,(a=>s+A(a))))+")VALUES"+y(i(`,(?${i(",?",E(c))})`,E(o)/(E(c)+1)),1)+(r?"ON CONFLICT("+A(n)+")DO UPDATE SET"+p(m(c,(a=>A(a)+"=excluded."+A(a))),s):e),m(o,(a=>a??null))),V=a=>p(m(a,(()=>"?")),s),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,E,u,d=0,v=0;x(X,l,(()=>0)),x(Z,l,(()=>[]));const A=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,s)=>await A((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),v=1,u=s((async(e,s)=>{if(s){const t=s();await A((async()=>a.setTransactionChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(v&&(n(u),u=void 0,v=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();P(e)&&P(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(w(y,a.delListener),y=void 0,T),schedule:async(...a)=>(O(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!r((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),g(T)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[w,l,y,E]=z(t,c,n);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,v))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,v,{[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,w,l]],y,E,A,T)=>{const[p,m,L,O]=z(t,y,n,T),f=async(a,t)=>await u(W(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await L(e,s,o,n,i,t)}))),N=async(a,t)=>w?await L(l,v,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await O((async()=>{await p();const a=await(async()=>I(R(await u(W(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>o?(await m(l,v))[d]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),r(t)){const[t,e]=a();await f(t),await N(e)}else{const[a,e]=t();await f(a,!0),await N(e,!0)}}))),e,s,n,[A,E],E)},na="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:na,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,s)=>{const n=_();return F(a,((a,i)=>{const c=y(M(b(t,l(a)?{[e]:a}:a)),0,$(t));r(c[0])||s(i,c[0])||j(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,s,n,i,c,r,w,E="getDb",u)=>{let d,A,p;const[m,L,R,O]=(a=>{const e=(a=>b(wa,l(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(M(b(la,c)),0,$(la)),r=o[2],w=k(r);return[0,s,[ya(n,{[oa]:null,[ca]:v},oa,(a=>G(w,a)&&a==r)),ya(i,{[ra]:null,[ca]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(w,t)&&t==r)),o],w]})(e);return(m?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==(d??=t)&&e==(A??=e)&&n==(p??=n)||(a(),d=t,A=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),d=A=null,i(t)}),r,R,N(O),w,E,u)},Aa=(a,t,e,s,n)=>va(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),s,n,t,"getClient");export{Aa as createLibSqlPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",v="_id",p=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),N=a=>0==u(a),O=(a,t)=>a.filter(t),T=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,C=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),R=Object,S=a=>R.getPrototypeOf(a),g=R.keys,D=R.freeze,I=(a=[])=>R.fromEntries(a),b=(...a)=>R.assign({},...a),P=(a,t)=>f(R.entries(a),(([a,e])=>t(e,a))),_=a=>R.values(a),F=a=>u(g(a)),M=a=>(a=>!r(a)&&w(S(a),(a=>a==R.prototype||r(S(a))),(()=>!0)))(a)&&0==F(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e)=>(h(a,t)||Y(a,t,e()),B(a,t)),k=(a,t,e,s=Y)=>(P(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),G=a=>new Set(Array.isArray(a)||r(a)?a:[a]),J=(a,t)=>a?.add(t),U="TABLE",W="ALTER "+U,q="DELETE FROM",z=m+"*FROM",K="FROM pragma_table_",V="WHERE",Q=(a,t,n,i)=>{const c=j();return[async()=>k(c,I(await d(f(await a("SELECT name "+K+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(f(await a(m+" name,type "+K+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(c,t,k($(c,t,j),e,((a,t,e)=>{e!=B(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(c,t))),async(t,e)=>((a,t)=>!r(B(B(c,a),t)))(t,e)?I(O(f(await a(z+p(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!M(t)))):{},async(t,n,o,w,l,y=!1)=>{const u=G();P(o??{},(a=>f(g(a??{}),(a=>J(u,a)))));const E=C(u);if(!y&&l&&N(E)&&h(c,t))return await a("DROP "+U+p(t)),void Y(c,t);if(N(E)||h(c,t)){const s=B(c,t),i=G(x(s));await d([...f(E,(async n=>{L(i,n)||(await a(W+p(t)+"ADD"+p(n)),Y(s,n,e))})),...!y&&w?f(C(i),(async e=>{e!=n&&(await a(W+p(t)+"DROP"+p(e)),Y(s,e))})):[]])}else await a("CREATE "+U+p(t)+"("+p(n)+` PRIMARY KEY ON CONFLICT REPLACE${A(f(E,(a=>s+p(a))))});`),Y(c,t,j([[n,e],...f(E,(a=>[a,e]))]));if(y)r(o)?await a(q+p(t)+V+" 1"):await d(P(o,(async(e,s)=>{r(e)?await a(q+p(t)+V+p(n)+"=?",[s]):N(E)||await X(a,t,n,g(e),[s,..._(e)],i)})));else if(N(E))h(c,t)&&await a(q+p(t)+V+" 1");else{const e=O(x(B(c,t)),(a=>a!=n)),s=[],r=[];P(o??{},((a,t)=>{T(s,t,...f(e,(t=>a?.[t]))),T(r,t)})),await X(a,t,n,e,s,i),await a(q+p(t)+V+p(n)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},X=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+p(t)+"("+p(n)+A(f(c,(a=>s+p(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+p(n)+")DO UPDATE SET"+A(f(c,(a=>p(a)+"=excluded."+p(a))),s):e),f(o,(a=>a??null))),Z=a=>A(f(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),sa=(a,t,e,s,n,i,[c,o]=[],l=[])=>{let y,u,d,E=0,v=0;$(ta,l,(()=>0)),$(ea,l,(()=>[]));const p=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),v=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)}}))})),m),stopAutoLoad:()=>(v&&(n(d),d=void 0,v=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();M(e)&&M(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(w(y,a.delListener),y=void 0,m),schedule:async(...a)=>(T(B(ea,l),...a),await(async()=>{if(!B(ta,l)){for(Y(ta,l,1);!r((a=B(ea,l),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,l,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>o),D(m)},na="store",ia=(a,t,e,s,n,[i],c,o,r,w)=>{const[l,y,u,d]=Q(t,c,n,w);return sa(a,(async()=>await d((async()=>(await l(),aa((await y(i,v))[E]?.[na]??"null"))))),(async a=>await d((async()=>{var t;await l(),await u(i,v,{[E]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?R.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ca=(a,t,e,s,n,[i,c,[o,w,l]],y,u,p,m)=>{const[A,f,N,T]=Q(t,y,n,m),h=async(a,t)=>await d(H(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await N(e,s,o,n,i,t)}))),C=async(a,t)=>w?await N(l,v,{[E]:a},!0,!0,t):null;return sa(a,(async()=>await T((async()=>{await A();const a=await(async()=>I(O(await d(H(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!M(a[1])))))(),t=await(async()=>o?(await f(l,v))[E]:{})();return M(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await A(),r(t)){const[t,e]=a();await h(t),await C(e)}else{const[a,e]=t();await h(a,!0),await C(e,!0)}}))),e,s,n,[p,u],u)},oa="json",ra="autoLoadIntervalSeconds",wa="rowIdColumnName",la="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,s)=>{const n=j();return P(a,((a,i)=>{const c=y(_(b(t,l(a)?{[e]:a}:a)),0,F(t));r(c[0])||s(i,c[0])||Y(n,i,c)})),n},va="pragma ",pa="data_version",ma="schema_version",Aa=(a,e,s,n,i,c,r,w,u="getDb",d)=>{let E,p,A;const[f,N,O,T]=(a=>{const e=(a=>b(ua,l(a)?{storeTableName:a}:a??{}))(a),s=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,s,[a],G(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(_(b(da,c)),0,F(da)),r=o[2],w=G(r);return[0,s,[Ea(n,{[la]:null,[wa]:v},la,(a=>J(w,a)&&a==r)),Ea(i,{[ya]:null,[wa]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>J(w,t)&&t==r)),o],w]})(e);return(f?ia:ca)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(va+pa))[0][pa],e=(await s(va+ma))[0][ma],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&n==(A??=n)||(a(),E=t,p=e)}catch{}},e=N,t(),setInterval(t,1e3*e)),n((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=p=null,i(t)}),r,O,C(T),w,u,d)},fa=(a,t,e,s,n)=>Aa(a,e,(async(a,e=[])=>(await t.execute({sql:a,args:e})).rows),(()=>()=>0),(a=>a()),s,n,t,"getClient");export{fa as createLibSqlPersister};
@@ -0,0 +1 @@
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",v="_id",m=a=>`"${a.replace(/"/g,'""')}"`,p="SELECT",A=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),h=a=>0==u(a),T=(a,t)=>a.filter(t),N=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,C=a=>[...a?.values()??[]],g=(a,t)=>a?.delete(t),L=Object,R=a=>L.getPrototypeOf(a),S=L.keys,b=L.freeze,D=(a=[])=>L.fromEntries(a),I=(...a)=>L.assign({},...a),P=(a,t)=>f(L.entries(a),(([a,e])=>t(e,a))),_=a=>L.values(a),F=a=>u(S(a)),M=a=>(a=>!r(a)&&l(R(a),(a=>a==L.prototype||r(R(a))),(()=>!0)))(a)&&0==F(a),j=a=>new Map(a),x=a=>[...a?.keys()??[]],B=(a,t)=>a?.get(t),H=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),Y=(a,t,e)=>r(e)?(g(a,t),a):a?.set(t,e),$=(a,t,e)=>(O(a,t)||Y(a,t,e()),B(a,t)),k=(a,t,e,n=Y)=>(P(t,((t,n)=>e(a,n,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:n(a,e))),a),G=a=>new Set(Array.isArray(a)||r(a)?a:[a]),J=(a,t)=>a?.add(t),U="TABLE",W="ALTER "+U,z="DELETE FROM",K=p+"*FROM",V="FROM pragma_table_",q="WHERE",Q=(a,t,s,i)=>{const c=j();return[async()=>k(c,D(await d(f(await a("SELECT name "+V+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,D(f(await a(p+" name,type "+V+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>Y(c,t,k($(c,t,j),e,((a,t,e)=>{e!=B(a,t)&&Y(a,t,e)}),((a,t)=>Y(a,t))))),((a,t)=>Y(c,t))),async(t,e)=>((a,t)=>!r(B(B(c,a),t)))(t,e)?D(T(f(await a(K+m(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!M(t)))):{},async(t,s,o,l,w,y=!1)=>{const u=G();P(o??{},(a=>f(S(a??{}),(a=>J(u,a)))));const E=C(u);if(!y&&w&&h(E)&&O(c,t))return await a("DROP "+U+m(t)),void Y(c,t);if(h(E)||O(c,t)){const n=B(c,t),i=G(x(n));await d([...f(E,(async s=>{g(i,s)||(await a(W+m(t)+"ADD"+m(s)),Y(n,s,e))})),...!y&&l?f(C(i),(async e=>{e!=s&&(await a(W+m(t)+"DROP"+m(e)),Y(n,e))})):[]])}else await a("CREATE "+U+m(t)+"("+m(s)+` PRIMARY KEY ON CONFLICT REPLACE${A(f(E,(a=>n+m(a))))});`),Y(c,t,j([[s,e],...f(E,(a=>[a,e]))]));if(y)r(o)?await a(z+m(t)+q+" 1"):await d(P(o,(async(e,n)=>{r(e)?await a(z+m(t)+q+m(s)+"=?",[n]):h(E)||await X(a,t,s,S(e),[n,..._(e)],i)})));else if(h(E))O(c,t)&&await a(z+m(t)+q+" 1");else{const e=T(x(B(c,t)),(a=>a!=s)),n=[],r=[];P(o??{},((a,t)=>{N(n,t,...f(e,(t=>a?.[t]))),N(r,t)})),await X(a,t,s,e,n,i),await a(z+m(t)+q+m(s)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},X=async(a,t,s,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+m(t)+"("+m(s)+A(f(c,(a=>n+m(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+m(s)+")DO UPDATE SET"+A(f(c,(a=>m(a)+"=excluded."+m(a))),n):e),f(o,(a=>a??null))),Z=a=>A(f(a,(()=>"?")),n),aa=JSON.parse,ta=j(),ea=j(),na=(a,t,e,n,s,i,[c,o]=[],w=[])=>{let y,u,d,E=0,v=0;$(ta,w,(()=>0)),$(ea,w,(()=>[]));const m=async a=>(2!=E&&(E=1,await p.schedule((async()=>{await a(),E=0}))),p),p={load:async(e,n)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(p.stopAutoLoad(),await p.load(e,s),v=1,d=n((async(e,n)=>{if(n){const t=n();await m((async()=>a.setTransactionChanges(t)))}else await m((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),p),stopAutoLoad:()=>(v&&(s(d),d=void 0,v=0),p),save:async t=>(1!=E&&(E=2,await p.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),p),startAutoSave:async()=>(await p.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();M(e)&&M(n)||p.save((()=>[e,n]))})),p),stopAutoSave:()=>(l(y,a.delListener),y=void 0,p),schedule:async(...a)=>(N(B(ea,w),...a),await(async()=>{if(!B(ta,w)){for(Y(ta,w,1);!r((a=B(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}Y(ta,w,0)}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(p[c]=()=>o),b(p)},sa="store",ia=(a,t,e,n,s,[i],c,o,r,l)=>{const[w,y,u,d]=Q(t,c,s,l);return na(a,(async()=>await d((async()=>(await w(),aa((await y(i,v))[E]?.[sa]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,v,{[E]:{[sa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?L.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,[r,o],o)},ca=(a,t,e,n,s,[i,c,[o,l,w]],y,u,m,p)=>{const[A,f,h,N]=Q(t,y,s,p),O=async(a,t)=>await d(H(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await h(e,n,o,s,i,t)}))),C=async(a,t)=>l?await h(w,v,{[E]:a},!0,!0,t):null;return na(a,(async()=>await N((async()=>{await A();const a=await(async()=>D(T(await d(H(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!M(a[1])))))(),t=await(async()=>o?(await f(w,v))[E]:{})();return M(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await N((async()=>{if(await A(),r(t)){const[t,e]=a();await O(t),await C(e)}else{const[a,e]=t();await O(a,!0),await C(e,!0)}}))),e,n,s,[m,u],u)},oa="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",wa="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,n)=>{const s=j();return P(a,((a,i)=>{const c=y(_(I(t,w(a)?{[e]:a}:a)),0,F(t));r(c[0])||n(i,c[0])||Y(s,i,c)})),s},va="pragma ",ma="data_version",pa="schema_version",Aa=(a,e,n,s,i,c,r,l,u="getDb",d)=>{let E,m,A;const[f,h,T,N]=(a=>{const e=(a=>I(ua,w(a)?{storeTableName:a}:a??{}))(a),n=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,n,[a],G(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=y(_(I(da,c)),0,F(da)),r=o[2],l=G(r);return[0,n,[Ea(s,{[wa]:null,[la]:v},wa,(a=>J(l,a)&&a==r)),Ea(i,{[ya]:null,[la]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>J(l,t)&&t==r)),o],l]})(e);return(f?ia:ca)(a,c?async(a,t)=>(c(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+ma))[0][ma],e=(await n(va+pa))[0][pa],s=(await n(p+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(m??=e)&&s==(A??=s)||(a(),E=t,m=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=m=null,i(t)}),r,T,C(N),l,u,d)},fa=(a,t,e,n,s,i=!1)=>Aa(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const t of n)f(t.changedTables,a)})(),e}),(a=>a.abort()),n,s,t,"getPowerSync",i);export{fa as createPowerSyncPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",p="_id",v=a=>`"${a.replace(/"/g,'""')}"`,A="SELECT",T=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),L=a=>0==E(a),R=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),h=(a,t)=>a?.has(t)??!1,f=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),C=Object,D=a=>C.getPrototypeOf(a),S=C.keys,b=C.freeze,g=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),_=(a,t)=>m(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),F=a=>E(S(a)),$=a=>(a=>!r(a)&&l(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==F(a),P=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))),k=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),W=(a,t,e)=>(h(a,t)||k(a,t,e()),H(a,t)),x=(a,t,e,s=k)=>(_(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]),q=(a,t)=>a?.add(t),G=A+"*FROM",J="FROM pragma_table_",U="WHERE",V=(a,t,n,i)=>{const c=P();return[async()=>x(c,g(await u(m(await a("SELECT name "+J+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+K(t)+")ORDER BY name",t),(async({name:t})=>[t,g(m(await a(A+" name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(c,t,x(W(c,t,P),e,((a,t,e)=>{e!=H(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?g(R(m(await a(G+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!$(t)))):{},async(t,n,o,l,w,y=!1)=>{const E=Y();_(o??{},(a=>m(S(a??{}),(a=>q(E,a)))));const d=f(E);if(!y&&w&&L(d)&&h(c,t))return await a("DROP TABLE"+v(t)),void k(c,t);if(L(d)||h(c,t)){const s=H(c,t),i=Y(B(s));await u([...m(d,(async n=>{N(i,n)||(await a(`ALTER TABLE${v(t)}ADD${v(n)}`),k(s,n,e))})),...!y&&l?m(f(i),(async e=>{e!=n&&(await a(`ALTER TABLE${v(t)}DROP${v(e)}`),k(s,e))})):[]])}else await a(`CREATE TABLE${v(t)}(${v(n)} PRIMARY KEY ON CONFLICT REPLACE${T(m(d,(a=>s+v(a))))});`),k(c,t,P([[n,e],...m(d,(a=>[a,e]))]));if(y)r(o)?await a("DELETE FROM"+v(t)+"WHERE 1"):await u(_(o,(async(e,s)=>{r(e)?await a("DELETE FROM"+v(t)+U+v(n)+"=?",[s]):L(d)||await z(a,t,n,S(e),[s,...M(e)],i)})));else if(L(d))h(c,t)&&await a("DELETE FROM"+v(t)+"WHERE 1");else{const e=R(B(H(c,t)),(a=>a!=n)),s=[],i=[];_(o??{},((a,t)=>{O(s,t,...m(e,(t=>a?.[t]))),O(i,t)})),await z(a,t,n,e,s),await a("DELETE FROM"+v(t)+U+v(n)+"NOT IN("+K(i)+")",i)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},z=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+v(t)+"("+v(n)+T(m(c,(a=>s+v(a))))+")VALUES"+y(i(`,(?${i(",?",E(c))})`,E(o)/(E(c)+1)),1)+(r?"ON CONFLICT("+v(n)+")DO UPDATE SET"+T(m(c,(a=>v(a)+"=excluded."+v(a))),s):e),m(o,(a=>a??null))),K=a=>T(m(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,p=0;W(X,w,(()=>0)),W(Z,w,(()=>[]));const v=async a=>(2!=d&&(d=1,await A.schedule((async()=>{await a(),d=0}))),A),A={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(A.stopAutoLoad(),await A.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)}}))})),A),stopAutoLoad:()=>(p&&(n(u),u=void 0,p=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:()=>(l(y,a.delListener),y=void 0,A),schedule:async(...a)=>(O(H(Z,w),...a),await(async()=>{if(!H(X,w)){for(k(X,w,1);!r((a=H(Z,w),E=a.shift()));)try{await E()}catch(a){i?.(a)}k(X,w,0)}var a})(),A),getStore:()=>a,destroy:()=>A.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(A[c]=()=>o),b(A)},ta="store",ea=(a,t,e,s,n,[i],c,o,r)=>{const[l,w,y,E]=V(t,c,n);return aa(a,(async()=>await E((async()=>(await l(),Q((await w(i,p))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await l(),await y(i,p,{[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,A)=>{const[T,m,L,O]=V(t,y,n,A),h=async(a,t)=>await u(j(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await L(e,s,o,n,i,t)}))),f=async(a,t)=>l?await L(w,p,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await O((async()=>{await T();const a=await(async()=>g(R(await u(j(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>o?(await m(w,p))[d]:{})();return $(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await T(),r(t)){const[t,e]=a();await h(t),await f(e)}else{const[a,e]=t();await h(a,!0),await f(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]:t+"_values"},ya=(a,t,e,s)=>{const n=P();return _(a,((a,i)=>{const c=y(M(I(t,w(a)?{[e]:a}:a)),0,F(t));r(c[0])||s(i,c[0])||k(n,i,c)})),n},Ea="pragma ",ua="data_version",da="schema_version",pa=(a,e,s,n,i,c,r,l,E="getDb",u)=>{let d,v,T;const[m,L,R,O]=(a=>{const e=(a=>I(la,w(a)?{storeTableName:a}:a??{}))(a),s=e[ia];if(e.mode==na){const{storeTableName:a=t}=e;return[1,s,[a],Y(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(M(I(wa,c)),0,F(wa)),r=o[2],l=Y(r);return[0,s,[ya(n,{[oa]:null,[ca]:p},oa,(a=>q(l,a)&&a==r)),ya(i,{[ra]:null,[ca]:p,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>q(l,t)&&t==r)),o],l]})(e);return(m?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(A+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(v??=e)&&n==(T??=n)||(a(),d=t,v=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),d=v=null,i(t)}),r,R,f(O),l,E,u)},va=(a,t,e,s,n,i)=>pa(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n,i,e);export{va as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e="",s=",",n=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,l=(a,t,e)=>r(a)?e?.():t(a),w=t=>a(t)==n,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",p="_id",v=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),h=(a,t)=>a.map(t),f=a=>0==u(a),N=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),T=(a,t)=>a?.has(t)??!1,R=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),b=C.keys,g=C.freeze,D=(a=[])=>C.fromEntries(a),I=(...a)=>C.assign({},...a),_=(a,t)=>h(C.entries(a),(([a,e])=>t(e,a))),P=a=>C.values(a),M=a=>u(b(a)),F=a=>(a=>!r(a)&&l(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==M(a),j=a=>new Map(a),k=a=>[...a?.keys()??[]],x=(a,t)=>a?.get(t),B=(a,t)=>h([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>r(e)?(L(a,t),a):a?.set(t,e),Y=(a,t,e)=>(T(a,t)||H(a,t,e()),x(a,t)),$=(a,t,e,s=H)=>(_(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>l(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),q=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J="TABLE",U="ALTER "+J,V="DELETE FROM",W=m+"*FROM",z="FROM pragma_table_",K="WHERE",Q=(a,t,n,i)=>{const c=j();return[async()=>$(c,D(await d(h(await a("SELECT name "+z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,D(h(await a(m+" name,type "+z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(c,t,$(Y(c,t,j),e,((a,t,e)=>{e!=x(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(c,t))),async(t,e)=>((a,t)=>!r(x(x(c,a),t)))(t,e)?D(N(h(await a(W+v(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!r(a)&&!F(t)))):{},async(t,n,o,l,w,y=!1)=>{const u=q();_(o??{},(a=>h(b(a??{}),(a=>G(u,a)))));const E=R(u);if(!y&&w&&f(E)&&T(c,t))return await a("DROP "+J+v(t)),void H(c,t);if(f(E)||T(c,t)){const s=x(c,t),i=q(k(s));await d([...h(E,(async n=>{L(i,n)||(await a(U+v(t)+"ADD"+v(n)),H(s,n,e))})),...!y&&l?h(R(i),(async e=>{e!=n&&(await a(U+v(t)+"DROP"+v(e)),H(s,e))})):[]])}else await a("CREATE "+J+v(t)+"("+v(n)+` PRIMARY KEY ON CONFLICT REPLACE${A(h(E,(a=>s+v(a))))});`),H(c,t,j([[n,e],...h(E,(a=>[a,e]))]));if(y)r(o)?await a(V+v(t)+K+" 1"):await d(_(o,(async(e,s)=>{r(e)?await a(V+v(t)+K+v(n)+"=?",[s]):f(E)||await X(a,t,n,b(e),[s,...P(e)],i)})));else if(f(E))T(c,t)&&await a(V+v(t)+K+" 1");else{const e=N(k(x(c,t)),(a=>a!=n)),s=[],r=[];_(o??{},((a,t)=>{O(s,t,...h(e,(t=>a?.[t]))),O(r,t)})),await X(a,t,n,e,s,i),await a(V+v(t)+K+v(n)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){n?.(a)}return await a("END"),e}]},X=async(a,t,n,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+v(t)+"("+v(n)+A(h(c,(a=>s+v(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+v(n)+")DO UPDATE SET"+A(h(c,(a=>v(a)+"=excluded."+v(a))),s):e),h(o,(a=>a??null))),Z=a=>A(h(a,(()=>"?")),s),aa=JSON.parse,ta=j(),ea=j(),sa=(a,t,e,s,n,i,[c,o]=[],w=[])=>{let y,u,d,E=0,p=0;Y(ta,w,(()=>0)),Y(ea,w,(()=>[]));const v=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,s)=>await v((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),p=1,d=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)}}))})),m),stopAutoLoad:()=>(p&&(n(d),d=void 0,p=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();F(e)&&F(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(l(y,a.delListener),y=void 0,m),schedule:async(...a)=>(O(x(ea,w),...a),await(async()=>{if(!x(ta,w)){for(H(ta,w,1);!r((a=x(ea,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}H(ta,w,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>o),g(m)},na="store",ia=(a,t,e,s,n,[i],c,o,r,l)=>{const[w,y,u,d]=Q(t,c,n,l);return sa(a,(async()=>await d((async()=>(await w(),aa((await y(i,p))[E]?.[na]??"null"))))),(async a=>await d((async()=>{var t;await w(),await u(i,p,{[E]:{[na]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,s,n,[r,o],o)},ca=(a,t,e,s,n,[i,c,[o,l,w]],y,u,v,m)=>{const[A,h,f,O]=Q(t,y,n,m),T=async(a,t)=>await d(B(c,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await f(e,s,o,n,i,t)}))),R=async(a,t)=>l?await f(w,p,{[E]:a},!0,!0,t):null;return sa(a,(async()=>await O((async()=>{await A();const a=await(async()=>D(N(await d(B(i,(async([a,t],e)=>[a,await h(e,t)]))),(a=>!F(a[1])))))(),t=await(async()=>o?(await h(w,p))[E]:{})();return F(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await T(t),await R(e)}else{const[a,e]=t();await T(a,!0),await R(e,!0)}}))),e,s,n,[v,u],u)},oa="json",ra="autoLoadIntervalSeconds",la="rowIdColumnName",wa="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,s)=>{const n=j();return _(a,((a,i)=>{const c=y(P(I(t,w(a)?{[e]:a}:a)),0,M(t));r(c[0])||s(i,c[0])||H(n,i,c)})),n},pa="pragma ",va="data_version",ma="schema_version",Aa=(a,e,s,n,i,c,r,l,u="getDb",d)=>{let E,v,A;const[h,f,N,O]=(a=>{const e=(a=>I(ua,w(a)?{storeTableName:a}:a??{}))(a),s=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,s,[a],q(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=y(P(I(da,c)),0,M(da)),r=o[2],l=q(r);return[0,s,[Ea(n,{[wa]:null,[la]:p},wa,(a=>G(l,a)&&a==r)),Ea(i,{[ya]:null,[la]:p,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>G(l,t)&&t==r)),o],l]})(e);return(h?ia:ca)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>{return[(t=async()=>{try{const t=(await s(pa+va))[0][va],e=(await s(pa+ma))[0][ma],n=(await s(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(v??=e)&&n==(A??=n)||(a(),E=t,v=e)}catch{}},e=f,t(),setInterval(t,1e3*e)),n((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=v=null,i(t)}),r,N,R(O),l,u,d)},ha=(a,t,e,s,n,i)=>Aa(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{ha as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),E=a=>a.length,u=async a=>c.all(a),d="_",v="_id",A=a=>`"${a.replace(/"/g,'""')}"`,T="SELECT",p=(a,t="")=>a.join(t),m=(a,t)=>a.map(t),L=a=>0==E(a),R=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),f=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],N=(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)=>m(C.entries(a),(([a,e])=>t(e,a))),M=a=>C.values(a),$=a=>E(S(a)),P=a=>(a=>!r(a)&&w(D(a),(a=>a==C.prototype||r(D(a))),(()=>!0)))(a)&&0==$(a),_=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),W=(a,t)=>m([...a?.entries()??[]],(([a,e])=>t(e,a))),j=(a,t,e)=>r(e)?(N(a,t),a):a?.set(t,e),Y=(a,t,e)=>(f(a,t)||j(a,t,e()),H(a,t)),k=(a,t,e,n=j)=>(F(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),x=a=>new Set(Array.isArray(a)||r(a)?a:[a]),G=(a,t)=>a?.add(t),J=T+"*FROM",U="FROM pragma_table_",z="WHERE",K=(a,t,s,i)=>{const c=_();return[async()=>k(c,I(await u(m(await a("SELECT name "+U+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+q(t)+")ORDER BY name",t),(async({name:t})=>[t,I(m(await a(T+" name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>j(c,t,k(Y(c,t,_),e,((a,t,e)=>{e!=H(a,t)&&j(a,t,e)}),((a,t)=>j(a,t))))),((a,t)=>j(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?I(R(m(await a(J+A(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!P(t)))):{},async(t,s,o,w,l,y=!1)=>{const E=x();F(o??{},(a=>m(S(a??{}),(a=>G(E,a)))));const d=h(E);if(!y&&l&&L(d)&&f(c,t))return await a("DROP TABLE"+A(t)),void j(c,t);if(L(d)||f(c,t)){const n=H(c,t),i=x(B(n));await u([...m(d,(async s=>{N(i,s)||(await a(`ALTER TABLE${A(t)}ADD${A(s)}`),j(n,s,e))})),...!y&&w?m(h(i),(async e=>{e!=s&&(await a(`ALTER TABLE${A(t)}DROP${A(e)}`),j(n,e))})):[]])}else await a(`CREATE TABLE${A(t)}(${A(s)} PRIMARY KEY ON CONFLICT REPLACE${p(m(d,(a=>n+A(a))))});`),j(c,t,_([[s,e],...m(d,(a=>[a,e]))]));if(y)r(o)?await a("DELETE FROM"+A(t)+"WHERE 1"):await u(F(o,(async(e,n)=>{r(e)?await a("DELETE FROM"+A(t)+z+A(s)+"=?",[n]):L(d)||await V(a,t,s,S(e),[n,...M(e)],i)})));else if(L(d))f(c,t)&&await a("DELETE FROM"+A(t)+"WHERE 1");else{const e=R(B(H(c,t)),(a=>a!=s)),n=[],i=[];F(o??{},((a,t)=>{O(n,t,...m(e,(t=>a?.[t]))),O(i,t)})),await V(a,t,s,e,n),await a("DELETE FROM"+A(t)+z+A(s)+"NOT IN("+q(i)+")",i)}},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,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+A(t)+"("+A(s)+p(m(c,(a=>n+A(a))))+")VALUES"+y(i(`,(?${i(",?",E(c))})`,E(o)/(E(c)+1)),1)+(r?"ON CONFLICT("+A(s)+")DO UPDATE SET"+p(m(c,(a=>A(a)+"=excluded."+A(a))),n):e),m(o,(a=>a??null))),q=a=>p(m(a,(()=>"?")),n),Q=JSON.parse,X=_(),Z=_(),aa=(a,t,e,n,s,i,[c,o]=[],l=[])=>{let y,E,u,d=0,v=0;Y(X,l,(()=>0)),Y(Z,l,(()=>[]));const A=async a=>(2!=d&&(d=1,await T.schedule((async()=>{await a(),d=0}))),T),T={load:async(e,n)=>await A((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(T.stopAutoLoad(),await T.load(e,s),v=1,u=n((async(e,n)=>{if(n){const t=n();await A((async()=>a.setTransactionChanges(t)))}else await A((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),T),stopAutoLoad:()=>(v&&(s(u),u=void 0,v=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,n]=t();P(e)&&P(n)||T.save((()=>[e,n]))})),T),stopAutoSave:()=>(w(y,a.delListener),y=void 0,T),schedule:async(...a)=>(O(H(Z,l),...a),await(async()=>{if(!H(X,l)){for(j(X,l,1);!r((a=H(Z,l),E=a.shift()));)try{await E()}catch(a){i?.(a)}j(X,l,0)}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(T[c]=()=>o),g(T)},ta="store",ea=(a,t,e,n,s,[i],c,o,r)=>{const[w,l,y,E]=K(t,c,s);return aa(a,(async()=>await E((async()=>(await w(),Q((await l(i,v))[d]?.[ta]??"null"))))),(async a=>await E((async()=>{var t;await w(),await y(i,v,{[d]:{[ta]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,[r,o],o)},na=(a,t,e,n,s,[i,c,[o,w,l]],y,E,A,T)=>{const[p,m,L,O]=K(t,y,s,T),f=async(a,t)=>await u(W(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await L(e,n,o,s,i,t)}))),h=async(a,t)=>w?await L(l,v,{[d]:a},!0,!0,t):null;return aa(a,(async()=>await O((async()=>{await p();const a=await(async()=>I(R(await u(W(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>o?(await m(l,v))[d]:{})();return P(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),r(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,n,s,[A,E],E)},sa="json",ia="autoLoadIntervalSeconds",ca="rowIdColumnName",oa="tableId",ra="tableName",wa={mode:sa,[ia]:1},la={load:0,save:0,[ra]:t+"_values"},ya=(a,t,e,n)=>{const s=_();return F(a,((a,i)=>{const c=y(M(b(t,l(a)?{[e]:a}:a)),0,$(t));r(c[0])||n(i,c[0])||j(s,i,c)})),s},Ea="pragma ",ua="data_version",da="schema_version",va=(a,e,n,s,i,c,r,w,E="getDb",u)=>{let d,A,p;const[m,L,R,O]=(a=>{const e=(a=>b(wa,l(a)?{storeTableName:a}:a??{}))(a),n=e[ia];if(e.mode==sa){const{storeTableName:a=t}=e;return[1,n,[a],x(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=y(M(b(la,c)),0,$(la)),r=o[2],w=x(r);return[0,n,[ya(s,{[oa]:null,[ca]:v},oa,(a=>G(w,a)&&a==r)),ya(i,{[ra]:null,[ca]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ra,((a,t)=>G(w,t)&&t==r)),o],w]})(e);return(m?ea:na)(a,c?async(a,t)=>(c(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(Ea+ua))[0][ua],e=(await n(Ea+da))[0][da],s=(await n(T+" TOTAL_CHANGES() c"))[0].c;t==(d??=t)&&e==(A??=e)&&s==(p??=s)||(a(),d=t,A=e)}catch{}},e=L,t(),setInterval(t,1e3*e)),s((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),d=A=null,i(t)}),r,R,h(O),w,E,u)},Aa="change",Ta=(a,t,e,n,s)=>va(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new c(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(Aa,e),e}),(a=>t.off(Aa,a)),n,s,t);export{Ta as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,r=a=>null==a,w=(a,t,e)=>r(a)?e?.():t(a),l=t=>a(t)==s,y=(a,t,e)=>a.slice(t,e),u=a=>a.length,d=async a=>c.all(a),E="_",v="_id",p=a=>`"${a.replace(/"/g,'""')}"`,m="SELECT",A=(a,t="")=>a.join(t),f=(a,t)=>a.map(t),h=a=>0==u(a),N=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),T=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),C=Object,S=a=>C.getPrototypeOf(a),g=C.keys,D=C.freeze,I=(a=[])=>C.fromEntries(a),b=(...a)=>C.assign({},...a),P=(a,t)=>f(C.entries(a),(([a,e])=>t(e,a))),_=a=>C.values(a),F=a=>u(g(a)),M=a=>(a=>!r(a)&&w(S(a),(a=>a==C.prototype||r(S(a))),(()=>!0)))(a)&&0==F(a),j=a=>new Map(a),B=a=>[...a?.keys()??[]],H=(a,t)=>a?.get(t),Y=(a,t)=>f([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>r(e)?(R(a,t),a):a?.set(t,e),k=(a,t,e)=>(T(a,t)||$(a,t,e()),H(a,t)),x=(a,t,e,n=$)=>(P(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!r(((a,t)=>w(a,(a=>a[t])))(a,t)))(t,e)?0:n(a,e))),a),G=a=>new Set(Array.isArray(a)||r(a)?a:[a]),J=(a,t)=>a?.add(t),U="TABLE",W="ALTER "+U,z="DELETE FROM",K=m+"*FROM",V="FROM pragma_table_",q="WHERE",Q=(a,t,s,i)=>{const c=j();return[async()=>x(c,I(await d(f(await a("SELECT name "+V+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+Z(t)+")ORDER BY name",t),(async({name:t})=>[t,I(f(await a(m+" name,type "+V+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>$(c,t,x(k(c,t,j),e,((a,t,e)=>{e!=H(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))))),((a,t)=>$(c,t))),async(t,e)=>((a,t)=>!r(H(H(c,a),t)))(t,e)?I(N(f(await a(K+p(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!r(a)&&!M(t)))):{},async(t,s,o,w,l,y=!1)=>{const u=G();P(o??{},(a=>f(g(a??{}),(a=>J(u,a)))));const E=L(u);if(!y&&l&&h(E)&&T(c,t))return await a("DROP "+U+p(t)),void $(c,t);if(h(E)||T(c,t)){const n=H(c,t),i=G(B(n));await d([...f(E,(async s=>{R(i,s)||(await a(W+p(t)+"ADD"+p(s)),$(n,s,e))})),...!y&&w?f(L(i),(async e=>{e!=s&&(await a(W+p(t)+"DROP"+p(e)),$(n,e))})):[]])}else await a("CREATE "+U+p(t)+"("+p(s)+` PRIMARY KEY ON CONFLICT REPLACE${A(f(E,(a=>n+p(a))))});`),$(c,t,j([[s,e],...f(E,(a=>[a,e]))]));if(y)r(o)?await a(z+p(t)+q+" 1"):await d(P(o,(async(e,n)=>{r(e)?await a(z+p(t)+q+p(s)+"=?",[n]):h(E)||await X(a,t,s,g(e),[n,..._(e)],i)})));else if(h(E))T(c,t)&&await a(z+p(t)+q+" 1");else{const e=N(B(H(c,t)),(a=>a!=s)),n=[],r=[];P(o??{},((a,t)=>{O(n,t,...f(e,(t=>a?.[t]))),O(r,t)})),await X(a,t,s,e,n,i),await a(z+p(t)+q+p(s)+"NOT IN("+Z(r)+")",r)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},X=async(a,t,s,c,o,r=!0)=>await a("INSERT "+(r?e:"OR REPLACE ")+"INTO"+p(t)+"("+p(s)+A(f(c,(a=>n+p(a))))+")VALUES"+y(i(`,(?${i(",?",u(c))})`,u(o)/(u(c)+1)),1)+(r?"ON CONFLICT("+p(s)+")DO UPDATE SET"+A(f(c,(a=>p(a)+"=excluded."+p(a))),n):e),f(o,(a=>a??null))),Z=a=>A(f(a,(()=>"?")),n),aa=JSON.parse,ta=j(),ea=j(),na=(a,t,e,n,s,i,[c,o]=[],l=[])=>{let y,u,d,E=0,v=0;k(ta,l,(()=>0)),k(ea,l,(()=>[]));const p=async a=>(2!=E&&(E=1,await m.schedule((async()=>{await a(),E=0}))),m),m={load:async(e,n)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,n])}})),startAutoLoad:async(e={},s={})=>(m.stopAutoLoad(),await m.load(e,s),v=1,d=n((async(e,n)=>{if(n){const t=n();await p((async()=>a.setTransactionChanges(t)))}else await p((async()=>{try{a.setContent(e?.()??await t())}catch(a){i?.(a)}}))})),m),stopAutoLoad:()=>(v&&(s(d),d=void 0,v=0),m),save:async t=>(1!=E&&(E=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch(a){i?.(a)}E=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),y=a.addDidFinishTransactionListener(((a,t)=>{const[e,n]=t();M(e)&&M(n)||m.save((()=>[e,n]))})),m),stopAutoSave:()=>(w(y,a.delListener),y=void 0,m),schedule:async(...a)=>(O(H(ea,l),...a),await(async()=>{if(!H(ta,l)){for($(ta,l,1);!r((a=H(ea,l),u=a.shift()));)try{await u()}catch(a){i?.(a)}$(ta,l,0)}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(m[c]=()=>o),D(m)},sa="store",ia=(a,t,e,n,s,[i],c,o,r,w)=>{const[l,y,u,d]=Q(t,c,s,w);return na(a,(async()=>await d((async()=>(await l(),aa((await y(i,v))[E]?.[sa]??"null"))))),(async a=>await d((async()=>{var t;await l(),await u(i,v,{[E]:{[sa]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?C.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,[r,o],o)},ca=(a,t,e,n,s,[i,c,[o,w,l]],y,u,p,m)=>{const[A,f,h,O]=Q(t,y,s,m),T=async(a,t)=>await d(Y(c,(async([e,n,s,i],c)=>{const o=a[c];t&&void 0===o||await h(e,n,o,s,i,t)}))),L=async(a,t)=>w?await h(l,v,{[E]:a},!0,!0,t):null;return na(a,(async()=>await O((async()=>{await A();const a=await(async()=>I(N(await d(Y(i,(async([a,t],e)=>[a,await f(e,t)]))),(a=>!M(a[1])))))(),t=await(async()=>o?(await f(l,v))[E]:{})();return M(a)&&r(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await A(),r(t)){const[t,e]=a();await T(t),await L(e)}else{const[a,e]=t();await T(a,!0),await L(e,!0)}}))),e,n,s,[p,u],u)},oa="json",ra="autoLoadIntervalSeconds",wa="rowIdColumnName",la="tableId",ya="tableName",ua={mode:oa,[ra]:1},da={load:0,save:0,[ya]:t+"_values"},Ea=(a,t,e,n)=>{const s=j();return P(a,((a,i)=>{const c=y(_(b(t,l(a)?{[e]:a}:a)),0,F(t));r(c[0])||n(i,c[0])||$(s,i,c)})),s},va="pragma ",pa="data_version",ma="schema_version",Aa=(a,e,n,s,i,c,r,w,u="getDb",d)=>{let E,p,A;const[f,h,N,O]=(a=>{const e=(a=>b(ua,l(a)?{storeTableName:a}:a??{}))(a),n=e[ra];if(e.mode==oa){const{storeTableName:a=t}=e;return[1,n,[a],G(a)]}const{tables:{load:s={},save:i={}}={},values:c={}}=e,o=y(_(b(da,c)),0,F(da)),r=o[2],w=G(r);return[0,n,[Ea(s,{[la]:null,[wa]:v},la,(a=>J(w,a)&&a==r)),Ea(i,{[ya]:null,[wa]:v,deleteEmptyColumns:0,deleteEmptyTable:0},ya,((a,t)=>J(w,t)&&t==r)),o],w]})(e);return(f?ia:ca)(a,c?async(a,t)=>(c(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+pa))[0][pa],e=(await n(va+ma))[0][ma],s=(await n(m+" TOTAL_CHANGES() c"))[0].c;t==(E??=t)&&e==(p??=e)&&s==(A??=s)||(a(),E=t,p=e)}catch{}},e=h,t(),setInterval(t,1e3*e)),s((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),E=p=null,i(t)}),r,N,L(O),w,u,d)},fa="change",ha=(a,t,e,n,s)=>Aa(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new c(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(fa,e),e}),(a=>t.off(fa,a)),n,s,t);export{ha as createSqlite3Persister};