tinybase 4.0.1 → 4.0.3

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 (58) 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-expo-sqlite.cjs +1 -0
  4. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  6. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  8. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  9. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -0
  12. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  13. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  16. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  17. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +177 -117
  18. package/lib/debug/persisters/persister-expo-sqlite.js +764 -0
  19. package/lib/debug/persisters/persister-sqlite-wasm.js +172 -116
  20. package/lib/debug/persisters/persister-sqlite3.js +174 -119
  21. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  22. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  23. package/lib/es6/persisters/persister-expo-sqlite.js +1 -0
  24. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  25. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  26. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  27. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  28. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  29. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  30. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  31. package/lib/persisters/persister-expo-sqlite.js +1 -0
  32. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  33. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  34. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  35. package/lib/persisters/persister-sqlite3.js +1 -1
  36. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  37. package/lib/types/persisters/persister-expo-sqlite.d.ts +118 -0
  38. package/lib/types/persisters.d.ts +7 -0
  39. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +128 -0
  40. package/lib/types/with-schemas/persisters.d.ts +7 -0
  41. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  42. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  43. package/lib/umd/persisters/persister-expo-sqlite.js +1 -0
  44. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  45. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  46. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  47. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  48. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  49. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  50. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  51. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -0
  52. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  53. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  54. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  55. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  56. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  57. package/package.json +20 -19
  58. package/readme.md +1 -1
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,C=(a=[])=>L.fromEntries(a),N=(...a)=>L.assign({},...a),O=(a,t)=>(delete a[t],a),S=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),I=a=>i(h(a)),g=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==I(a),D=a=>new Map(a),b=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||d(a)?a:[a]),x=(a,t)=>a?.add(t),U="SELECT*FROM",W="FROM pragma_table_",k="WHERE",H=(a,t)=>{const s=D(),l=(a,t)=>!d($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=j();S(d??{},(a=>c(h(a),(a=>x(E,a)))));const m=T(E);if(o(m)&&A(s,t)&&u)return await a("DROP TABLE"+B(t)),void F(s,t);if(o(m)||A(s,t)){const e=$(s,t),n=j(b(e));await v([...c(m,(async s=>{p(n,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(m,(a=>e+B(a))))});`),F(s,t,D([[l,""],...c(m,(a=>[a,""]))]));if(o(m))A(s,t)&&await a("DELETE FROM"+B(t));else{const o=[],w=[],u=[],E=r(b($(s,t)),(a=>a!=l));S(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+B(t)+"("+B(l)+n(c(E,(a=>e+B(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+n(c(E,(a=>B(a)+"=excluded."+B(a))),e),w),await a("DELETE FROM"+B(t)+k+B(l)+"NOT IN("+J(u)+")",u)}};return[async()=>M(s,C(await v(c(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+J(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,M((i=D,A(n=s,c=t)||F(n,c,i()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,i}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(U+B(t)+k+B(e)+"=?",["_"]):[];return o(s)?null:O(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?C(r(c(await a(U+B(t)),(a=>[a[e],O({...a},e)])),(([a,t])=>!d(a)&&!g(t)))):{},w]},J=a=>n(c(a,(()=>"?")),e),Y=JSON.parse,q=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],m=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,o=s((async(e,s)=>await m((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(E(c,a.delListener),v),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],c)=>{const[i,o,r]=H(t,c),l=q(a,(async()=>(await i(),Y((await o(n,P)??{})[z]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},V=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,m,A]=H(t,y);return q(a,(async()=>{await w();const a=await(async()=>C(r(await v(_(n,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return g(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await v(_(c,(async([t,e,s,n],c)=>await A(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=D();return S(a,((a,c)=>{const i=l(R(N(t,m(a)?{[e]:a}:a)),0,I(t));d(i[0])||s(c,i[0])||F(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>N(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(N(ea,i)),0,I(ea)),r=o[2],y=j(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>x(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>x(y,t)&&t==r)),o],y]})(e);return(r?K:V)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,T(u))};exports.createCrSqliteWasmPersister=(a,t,e)=>oa(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,O=f.freeze,R=(a=[])=>f.fromEntries(a),C=(...a)=>f.assign({},...a),N=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),D=a=>o(h(a)),g=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==D(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),P=(a,t,e,s=$)=>(N(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),_=a=>new Set(Array.isArray(a)||d(a)?a:[a]),W=(a,t)=>a?.add(t),B="_",H="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",U="WHERE",k=(a,t)=>{const s=I();return[async()=>P(s,R(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,R(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,P((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?R(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!g(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=_();N(o??{},(a=>c(h(a??{}),(a=>W(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=_(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(N(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+U+j(n)+"=?",[s]):r(T)||await J(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];N(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+j(t)+U+j(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),q=JSON.parse,z=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(T)},K="store",V=(a,t,e,s,[n],i)=>{const[c,o,r]=k(t,i),l=z(a,(async()=>(await c(),q((await o(n,H))[B]?.[K]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,H,{[B]:{[K]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=k(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,H,{[B]:a},!0,!0,t):null;return z(a,(async()=>{await y();const a=await(async()=>R(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>c?(await E(r,H))[B]:{})();return g(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return N(a,((a,i)=>{const c=w(S(C(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>C(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],_(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(C(sa,c)),0,D(sa)),r=o[2],l=_(r);return[0,s,[na(n,{[aa]:null,[Z]:H},aa,(a=>W(l,a)&&a==r)),na(i,{[ta]:null,[Z]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>W(l,t)&&t==r)),o],l]})(e);return(l?V:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))};exports.createCrSqliteWasmPersister=(a,t,e,s)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s);
@@ -0,0 +1 @@
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,T=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),h=Object,f=h.keys,R=h.freeze,N=(a=[])=>h.fromEntries(a),O=(...a)=>h.assign({},...a),C=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),g=a=>o(f(a)),D=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==g(a),b=a=>new Map(a),I=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),P=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),_=a=>new Set(Array.isArray(a)||d(a)?a:[a]),x=(a,t)=>a?.add(t),B="_",H="_id",W=a=>`"${a.replace(/"/g,'""')}"`,j="FROM pragma_table_",k="WHERE",q=(a,t)=>{const s=b();return[async()=>P(s,N(await T(c(await a("SELECT name "+j+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+j+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,P((c=b,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?N(l(c(await a("SELECT*FROM"+W(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=_();C(o??{},(a=>c(f(a??{}),(a=>x(v,a)))));const m=L(v);if(!u&&E&&r(m)&&A(s,t))return await a("DROP TABLE"+W(t)),void $(s,t);if(r(m)||A(s,t)){const e=F(s,t),i=_(I(e));await T([...c(m,(async s=>{p(i,s)||(await a(`ALTER TABLE${W(t)}ADD${W(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${W(t)}DROP${W(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${W(t)}(${W(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(m,(a=>e+W(a))))});`),$(s,t,b([[n,""],...c(m,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+W(t)+"WHERE 1"):await T(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+W(t)+k+W(n)+"=?",[s]):r(m)||await J(a,t,n,f(e),[s,...S(e)])})));else if(r(m))A(s,t)&&await a("DELETE FROM"+W(t)+"WHERE 1");else{const e=l(I(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+W(t)+k+W(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+W(t)+"("+W(s)+i(c(r,(a=>e+W(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+W(s)+")DO UPDATE SET"+i(c(r,(a=>W(a)+"=excluded."+W(a))),e),l),U=a=>i(c(a,(()=>"?")),e),Y=JSON.parse,z=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(v(i,a.delListener),m),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(m)},K="store",V=(a,t,e,s,[n],i)=>{const[c,o,r]=q(t,i),l=z(a,(async()=>(await c(),Y((await o(n,H))[B]?.[K]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,H,{[B]:{[K]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=q(t,w),v=async(a,t)=>await T(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),m=async(a,t)=>o?await u(r,H,{[B]:a},!0,!0,t):null;return z(a,(async()=>{await y();const a=await(async()=>N(l(await T(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(r,H))[B]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await m(e)}else{const[a,e]=t();await v(a,!0),await m(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=b();return C(a,((a,i)=>{const c=w(S(O(t,m(a)?{[e]:a}:a)),0,g(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>O(ea,m(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],_(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(O(sa,c)),0,g(sa)),r=o[2],l=_(r);return[0,s,[na(n,{[aa]:null,[Z]:H},aa,(a=>x(l,a)&&a==r)),na(i,{[ta]:null,[Z]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>x(l,t)&&t==r)),o],l]})(e);return(l?V:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))};exports.createExpoSqlitePersister=(a,t,e,s)=>ra(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);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>w.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),S=(...a)=>L.assign({},...a),C=(a,t)=>(delete a[t],a),O=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),_=a=>i(h(a)),b=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==_(a),I=a=>new Map(a),g=a=>[...a?.keys()??[]],D=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>d(e)?(T(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(O(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),q="SELECT*FROM",x="FROM pragma_table_",W="WHERE",H=(a,t)=>{const s=I(),l=(a,t)=>!d(D(D(s,a),t)),w=async(t,l,w,u,d)=>{const E=k();O(d??{},(a=>c(h(a),(a=>B(E,a)))));const p=A(E);if(o(p)&&v(s,t)&&u)return await a("DROP TABLE"+j(t)),void M(s,t);if(o(p)||v(s,t)){const e=D(s,t),n=k(g(e));await m([...c(p,(async s=>{T(n,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),M(e,s,""))})),...w?c(A(n),(async s=>{s!=l&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),M(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(p,(a=>e+j(a))))});`),M(s,t,I([[l,""],...c(p,(a=>[a,""]))]));if(o(p))v(s,t)&&await a("DELETE FROM"+j(t));else{const o=[],w=[],u=[],E=r(g(D(s,t)),(a=>a!=l));O(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+j(t)+"("+j(l)+n(c(E,(a=>e+j(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+j(l)+")DO UPDATE SET"+n(c(E,(a=>j(a)+"=excluded."+j(a))),e),w),await a("DELETE FROM"+j(t)+W+j(l)+"NOT IN("+J(u)+")",u)}};return[async()=>F(s,N(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+J(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return M(s,t,F((i=I,v(n=s,c=t)||M(n,c,i()),D(n,c)),e,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,i}),((a,t)=>M(s,t))),async(t,e)=>{const s=l(t,e)?await a(q+j(t)+W+j(e)+"=?",["_"]):[];return o(s)?null:C(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(c(await a(q+j(t)),(a=>[a[e],C({...a},e)])),(([a,t])=>!d(a)&&!b(t)))):{},w]},J=a=>n(c(a,(()=>"?")),e),U=JSON.parse,V=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],p=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await p((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>await p((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();b(e)&&b(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(E(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},Y="store",z=(a,t,e,s,[n],c)=>{const[i,o,r]=H(t,c),l=V(a,(async()=>(await i(),U((await o(n,P)??{})[Y]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},K=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,p,v]=H(t,y);return V(a,(async()=>{await w();const a=await(async()=>N(r(await m($(n,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return b(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await m($(c,(async([t,e,s,n],c)=>await v(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=I();return O(a,((a,c)=>{const i=l(R(S(t,p(a)?{[e]:a}:a)),0,_(t));d(i[0])||s(c,i[0])||M(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>S(ta,p(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],k(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(S(ea,i)),0,_(ea)),r=o[2],y=k(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>B(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>B(y,t)&&t==r)),o],y]})(e);return(r?z:K)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,A(u))};exports.createSqliteWasmPersister=(a,t,e,s)=>oa(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)));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,E=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>u.all(a),T=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,f=h.freeze,O=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),S=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),C=a=>h.values(a),b=a=>o(R(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),I=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e,s=F)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),W=(a,t)=>a?.add(t),j="_",k="_id",B=a=>`"${a.replace(/"/g,'""')}"`,H="FROM pragma_table_",q="WHERE",x=(a,t)=>{const s=g();return[async()=>$(s,O(await v(c(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,$((c=g,T(n=s,i=t)||F(n,i,c()),_(n,i)),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,c}),((a,t)=>F(s,t))),async(t,e)=>((a,t)=>!d(_(_(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+B(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,o,w,u,E=!1)=>{const p=P();S(o??{},(a=>c(R(a??{}),(a=>W(p,a)))));const m=A(p);if(!E&&u&&r(m)&&T(s,t))return await a("DROP TABLE"+B(t)),void F(s,t);if(r(m)||T(s,t)){const e=_(s,t),i=P(I(e));await v([...c(m,(async s=>{L(i,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...!E&&w?c(A(i),(async s=>{s!=n&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(m,(a=>e+B(a))))});`),F(s,t,g([[n,""],...c(m,(a=>[a,""]))]));if(E)d(o)?await a("DELETE FROM"+B(t)+"WHERE 1"):await v(S(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+B(t)+q+B(n)+"=?",[s]):r(m)||await J(a,t,n,R(e),[s,...C(e)])})));else if(r(m))T(s,t)&&await a("DELETE FROM"+B(t)+"WHERE 1");else{const e=l(I(_(s,t)),(a=>a!=n)),i=[],r=[];S(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+B(t)+q+B(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+B(t)+"("+B(s)+i(c(r,(a=>e+B(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+B(s)+")DO UPDATE SET"+i(c(r,(a=>B(a)+"=excluded."+B(a))),e),l),U=a=>i(c(a,(()=>"?")),e),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const u=[],E=async a=>(2!=r&&(r=1,await m.schedule((async()=>{await a(),r=0}))),m),m={load:async(e,s)=>await E((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>await E((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),m),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),m),save:async t=>(1!=r&&(r=2,await m.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),m),startAutoSave:async()=>(await m.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||m.save((()=>[e,s]))})),m),stopAutoSave:()=>(p(i,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(m)},z="store",K=(a,t,e,s,[n],i)=>{const[c,o,r]=x(t,i),l=Y(a,(async()=>(await c(),V((await o(n,k))[j]?.[z]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,k,{[j]:{[z]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,u,E]=x(t,w),p=async(a,t)=>await v(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await E(e,s,o,n,i,t)}))),m=async(a,t)=>o?await E(r,k,{[j]:a},!0,!0,t):null;return Y(a,(async()=>{await y();const a=await(async()=>O(l(await v(M(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await u(r,k))[j]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await p(t),await m(e)}else{const[a,e]=t();await p(a,!0),await m(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=g();return S(a,((a,i)=>{const c=w(C(N(t,m(a)?{[e]:a}:a)),0,b(t));d(c[0])||s(i,c[0])||F(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,u,E]=(a=>{const e=(a=>N(ea,m(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(C(N(sa,c)),0,b(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:k},aa,(a=>W(l,a)&&a==r)),na(i,{[ta]:null,[Z]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>W(l,t)&&t==r)),o],l]})(e);return(l?K:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>E.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),u,A(E))};exports.createSqliteWasmPersister=(a,t,e,s,n)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n);
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),i=a=>a.length,o=a=>0==i(a),r=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,E=(a,t,e)=>d(a)?e?.():t(a),m=t=>a(t)==s,v=async a=>w.all(a),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),L=Object,h=L.keys,f=L.freeze,N=(a=[])=>L.fromEntries(a),S=(...a)=>L.assign({},...a),C=(a,t)=>(delete a[t],a),O=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),R=a=>L.values(a),g=a=>i(h(a)),I=a=>(a=>u(a,L)&&a.constructor==L)(a)&&0==g(a),D=a=>new Map(a),b=a=>[...a?.keys()??[]],$=(a,t)=>a?.get(t),_=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),M=(a,t,e,s=F)=>(O(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>E(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P="_id",B=a=>`"${a.replace(/"/g,'""')}"`,j=a=>new Set(Array.isArray(a)||d(a)?a:[a]),k=(a,t)=>a?.add(t),x="SELECT*FROM",H="FROM pragma_table_",J="WHERE",U=(a,t)=>{const s=D(),l=(a,t)=>!d($($(s,a),t)),w=async(t,l,w,u,d)=>{const E=j();O(d??{},(a=>c(h(a),(a=>k(E,a)))));const m=T(E);if(o(m)&&A(s,t)&&u)return await a("DROP TABLE"+B(t)),void F(s,t);if(o(m)||A(s,t)){const e=$(s,t),n=j(b(e));await v([...c(m,(async s=>{p(n,s)||(await a(`ALTER TABLE${B(t)}ADD${B(s)}`),F(e,s,""))})),...w?c(T(n),(async s=>{s!=l&&(await a(`ALTER TABLE${B(t)}DROP${B(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${B(t)}(${B(l)} PRIMARY KEY ON CONFLICT REPLACE${n(c(m,(a=>e+B(a))))});`),F(s,t,D([[l,""],...c(m,(a=>[a,""]))]));if(o(m))A(s,t)&&await a("DELETE FROM"+B(t));else{const o=[],w=[],u=[],E=r(b($(s,t)),(a=>a!=l));O(d,((a,t)=>{var e;y(o,`(?${e=i(E),",?".repeat(e)})`),y(w,t,...c(E,(t=>a[t]))),y(u,t)})),await a("INSERT INTO"+B(t)+"("+B(l)+n(c(E,(a=>e+B(a))))+")VALUES"+n(o,e)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+n(c(E,(a=>B(a)+"=excluded."+B(a))),e),w),await a("DELETE FROM"+B(t)+J+B(l)+"NOT IN("+W(u)+")",u)}};return[async()=>M(s,N(await v(c(await a("SELECT name "+H+"list WHERE schema='main'AND type='table'AND name IN("+W(t)+")",t),(async({name:t})=>[t,N(c(await a("SELECT name,type "+H+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,M((i=D,A(n=s,c=t)||F(n,c,i()),$(n,c)),e,((a,t,e)=>{e!=$(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,c,i}),((a,t)=>F(s,t))),async(t,e)=>{const s=l(t,e)?await a(x+B(t)+J+B(e)+"=?",["_"]):[];return o(s)?null:C(s[0],e)},async(a,t,e,s)=>await w(a,t,!0,!0,{[e]:s}),async(t,e)=>l(t,e)?N(r(c(await a(x+B(t)),(a=>[a[e],C({...a},e)])),(([a,t])=>!d(a)&&!I(t)))):{},w]},W=a=>n(c(a,(()=>"?")),e),Y=JSON.parse,q=(a,t,e,s,n)=>{let c,i,o,r=0,l=0,w=0;const u=[],m=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await m((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,o=s((async(e,s)=>await m((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();I(e)&&I(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(E(c,a.delListener),v),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!d((a=u,i=a.shift()));)try{await i()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],c)=>{const[i,o,r]=U(t,c),l=q(a,(async()=>(await i(),Y((await o(n,P)??{})[z]))),(async a=>l.schedule(i,(async()=>{var t;await r(n,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?L.fromEntries([...t]):t)))})}))),e,s);return l},V=(a,t,e,s,[n,c,[i,o,l]],y)=>{const[w,u,E,m,A]=U(t,y);return q(a,(async()=>{await w();const a=await(async()=>N(r(await v(_(n,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!I(a[1])))))(),t=await(async()=>i?await u(l,P):{})();return I(a)&&d(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();await w(),await(async a=>await v(_(c,(async([t,e,s,n],c)=>await A(t,e,s,n,a[c])))))(t),await(async a=>o?await E(l,P,"_",a):null)(e)}),e,s)},G="json",Q="autoLoadIntervalSeconds",X="rowIdColumnName",Z="tableId",aa="tableName",ta={mode:G,[Q]:1},ea={load:0,save:0,[aa]:t+"_values"},sa=(a,t,e,s)=>{const n=D();return O(a,((a,c)=>{const i=l(R(S(t,m(a)?{[e]:a}:a)),0,g(t));d(i[0])||s(c,i[0])||F(n,c,i)})),n},na="pragma ",ca="data_version",ia="schema_version",oa=(a,e,s,n,c)=>{let i,o;const[r,y,w,u]=(a=>{const e=(a=>S(ta,m(a)?{storeTableName:a}:a??{}))(a),s=e[Q];if(e.mode==G){const{storeTableName:a=t}=e;return[1,s,[a],j(a)]}const{tables:{load:n={},save:c={}}={},values:i={}}=e,o=l(R(S(ea,i)),0,g(ea)),r=o[2],y=j(r);return[0,s,[sa(n,{[Z]:null,[X]:P},Z,(a=>k(y,a)&&a==r)),sa(c,{[aa]:null,[X]:P,deleteEmptyColumns:0,deleteEmptyTable:0},aa,((a,t)=>k(y,t)&&t==r)),o],y]})(e);return(r?K:V)(a,s,(a=>[setInterval((async()=>{try{const t=(await s(na+ca))[0][ca],e=(await s(na+ia))[0][ia];t==(i??=t)&&e==(o??=e)||(a(),i=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),i=o=null,c(t)}),w,T(u))},ra="change";exports.createSqlite3Persister=(a,t,e)=>oa(a,e,((a,e=[])=>new w(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(ra,e),e}),(a=>t.off(ra,a)));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,o=a=>0==r(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,R=f.freeze,O=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),S=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),C=a=>f.values(a),g=a=>r(h(a)),D=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==g(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),P=(a,t,e,s=$)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),_=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",x="WHERE",J=(a,t)=>{const s=I();return[async()=>P(s,O(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,P((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,r,w,E,u=!1)=>{const v=_();S(r??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&o(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(o(T)||A(s,t)){const e=F(s,t),i=_(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(r)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(S(r,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+x+j(n)+"=?",[s]):o(T)||await U(a,t,n,h(e),[s,...C(e)])})));else if(o(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],o=[];S(r??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(o,t)})),await U(a,t,n,e,i),await a("DELETE FROM"+j(t)+x+j(n)+"NOT IN("+Y(o)+")",o)}}]},U=async(a,t,s,o,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(o,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",r(o))})`,r(l)/(r(o)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(o,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),q=JSON.parse,z=(a,t,e,s,n)=>{let i,c,r,o=0,l=0,w=0;const E=[],u=async a=>(2!=o&&(o=1,await T.schedule((async()=>{await a(),o=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,r=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(r),r=void 0,w=0),T),save:async t=>(1!=o&&(o=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}o=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},K="store",V=(a,t,e,s,[n],i)=>{const[c,r,o]=J(t,i),l=z(a,(async()=>(await c(),q((await r(n,W))[H]?.[K]))),(async a=>l.schedule(c,(async()=>{var t;await o(n,W,{[H]:{[K]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,r,o]],w)=>{const[y,E,u]=J(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const r=a[c];t&&void 0===r||await u(e,s,r,n,i,t)}))),T=async(a,t)=>r?await u(o,W,{[H]:a},!0,!0,t):null;return z(a,(async()=>{await y();const a=await(async()=>O(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(o,W))[H]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return S(a,((a,i)=>{const c=w(C(N(t,T(a)?{[e]:a}:a)),0,g(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",ra="schema_version",oa=(a,e,s,n,i,c)=>{let r,o;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],_(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,r=w(C(N(sa,c)),0,g(sa)),o=r[2],l=_(o);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==o)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==o)),r],l]})(e);return(l?V:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+ra))[0][ra];t==(r??=t)&&e==(o??=e)||(a(),r=t,o=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),r=o=null,i(t)}),E,L(u))},la="change";exports.createSqlite3Persister=(a,t,e,s)=>oa(a,e,(async(a,e=[])=>{return await(s=(s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a})))))),new E(s));var s}),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)),s);
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=(e,n)=>e instanceof n,y=e=>null==e,f=(e,n,t)=>y(e)?null==t?void 0:t():n(e),h=n=>e(n)==l,p=e=>{return n=function*(){return s.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},E=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},A=(e,n)=>null==e?void 0:e.delete(n),P=Object,T=P.keys,O=P.freeze,L=(e=[])=>P.fromEntries(e),w=(...e)=>P.assign({},...e),b=(e,n)=>(delete e[n],e),S=(e,n)=>o(P.entries(e),(([e,t])=>n(t,e))),x=e=>P.values(e),C=e=>i(T(e)),N=e=>(e=>v(e,P)&&e.constructor==P)(e)&&0==C(e),R=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),D=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},$=(e,n,t)=>y(t)?(A(e,n),e):null==e?void 0:e.set(n,t),_=(e,n,t,l=$)=>(S(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!y(((e,n)=>f(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),j="_id",F=e=>`"${e.replace(/"/g,'""')}"`,M=e=>new Set(Array.isArray(e)||y(e)?e:[e]),B=(e,n)=>null==e?void 0:e.add(n);var U=Object.defineProperty,W=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,J=(e,n,t)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Y=(e,n)=>{for(var t in n||(n={}))k.call(n,t)&&J(e,t,n[t]);if(W)for(var t of W(n))H.call(n,t)&&J(e,t,n[t]);return e},q=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const z="SELECT*FROM",K="FROM pragma_table_",V="WHERE",G=(e,n)=>{const l=R(),d=(e,n)=>!y(I(I(l,e),n)),s=(n,d,s,v,y)=>q(void 0,null,(function*(){const f=M();S(null!=y?y:{},(e=>o(T(e),(e=>B(f,e)))));const h=E(f);if(u(h)&&m(l,n)&&v)return yield e("DROP TABLE"+F(n)),void $(l,n);if(u(h)||m(l,n)){const t=I(l,n),r=M(g(t));yield p([...o(h,(l=>q(void 0,null,(function*(){A(r,l)||(yield e(`ALTER TABLE${F(n)}ADD${F(l)}`),$(t,l,""))})))),...s?o(E(r),(l=>q(void 0,null,(function*(){l!=d&&(yield e(`ALTER TABLE${F(n)}DROP${F(l)}`),$(t,l))})))):[]])}else yield e(`CREATE TABLE${F(n)}(${F(d)} PRIMARY KEY ON CONFLICT REPLACE${r(o(h,(e=>t+F(e))))});`),$(l,n,R([[d,""],...o(h,(e=>[e,""]))]));if(u(h))m(l,n)&&(yield e("DELETE FROM"+F(n)));else{const u=[],s=[],v=[],f=a(g(I(l,n)),(e=>e!=d));S(y,((e,n)=>{var t;c(u,`(?${t=i(f),",?".repeat(t)})`),c(s,n,...o(f,(n=>e[n]))),c(v,n)})),yield e("INSERT INTO"+F(n)+"("+F(d)+r(o(f,(e=>t+F(e))))+")VALUES"+r(u,t)+"ON CONFLICT("+F(d)+")DO UPDATE SET"+r(o(f,(e=>F(e)+"=excluded."+F(e))),t),s),yield e("DELETE FROM"+F(n)+V+F(d)+"NOT IN("+Q(v)+")",v)}}));return[()=>q(void 0,null,(function*(){return _(l,L(yield p(o(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+Q(n)+")",n),(n=>q(void 0,[n],(function*({name:n}){return[n,L(o(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return $(l,n,_((i=R,m(r=l,o=n)||$(r,o,i()),I(r,o)),t,((e,n,t)=>{t!=I(e,n)&&$(e,n,t)}),((e,n)=>$(e,n))));var r,o,i}),((e,n)=>$(l,n)))})),(n,t)=>q(void 0,null,(function*(){const l=d(n,t)?yield e(z+F(n)+V+F(t)+"=?",["_"]):[];return u(l)?null:b(l[0],t)})),(e,n,t,l)=>q(void 0,null,(function*(){return yield s(e,n,!0,!0,{[t]:l})})),(n,t)=>q(void 0,null,(function*(){return d(n,t)?L(a(o(yield e(z+F(n)),(e=>[e[t],b(Y({},e),t)])),(([e,n])=>!y(e)&&!N(n)))):{}})),s]},Q=e=>r(o(e,(()=>"?")),t),X=JSON.parse;var Z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ee=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],h=e=>Z(void 0,null,(function*(){return 2!=a&&(a=1,yield p.schedule((()=>Z(void 0,null,(function*(){yield e(),a=0}))))),p})),p={load:(t,l)=>Z(void 0,null,(function*(){return yield h((()=>Z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>Z(void 0,[...t],(function*(t={},r={}){return p.stopAutoLoad(),yield p.load(t,r),s=1,u=l(((t,l)=>Z(void 0,null,(function*(){return yield h((()=>Z(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),p})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),p),save:n=>Z(void 0,null,(function*(){return 1!=a&&(a=2,yield p.schedule((()=>Z(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),p})),startAutoSave:()=>Z(void 0,null,(function*(){return yield p.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||p.save((()=>[t,l]))})),p})),stopAutoSave:()=>(f(o,e.delListener),p),schedule:(...e)=>Z(void 0,null,(function*(){return c(v,...e),yield Z(void 0,null,(function*(){if(!d){for(d=1;!y((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(p)};var ne=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const te="store",le=(e,n,t,l,[r],o)=>{const[i,u,a]=G(n,o),d=ee(e,(()=>ne(void 0,null,(function*(){var e;return yield i(),X((null!=(e=yield u(r,j))?e:{})[te])}))),(e=>ne(void 0,null,(function*(){return d.schedule(i,(()=>ne(void 0,null,(function*(){var n;yield a(r,j,"_",{[te]:(n=e(),JSON.stringify(n,((e,n)=>v(n,Map)?P.fromEntries([...n]):n)))})}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const oe=(e,n,t,l,[r,o,[i,u,d]],c)=>{const[s,v,f,h,m]=G(n,c);return ee(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return L(a(yield p(D(r,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield h(t,n)]}))))),(e=>!N(e[1]))))})),n=yield re(void 0,null,(function*(){return i?yield v(d,j):{}}));return N(e)&&y(n)?void 0:[e,n]}))),(e=>re(void 0,null,(function*(){const[n,t]=e();yield s(),yield(e=>re(void 0,null,(function*(){return yield p(D(o,((n,t)=>re(void 0,[n,t],(function*([n,t,l,r],o){return yield m(n,t,l,r,e[o])})))))})))(n),yield(e=>re(void 0,null,(function*(){return u?yield f(d,j,"_",e):null})))(t)}))),t,l)},ie="json",ue="autoLoadIntervalSeconds",ae="rowIdColumnName",de="tableId",ce="tableName",se={mode:ie,[ue]:1},ve={load:0,save:0,[ce]:n+"_values"},ye=(e,n,t,l)=>{const r=R();return S(e,((e,o)=>{const i=d(x(w(n,h(e)?{[t]:e}:e)),0,C(n));y(i[0])||l(o,i[0])||$(r,o,i)})),r},fe="pragma ",he="data_version",pe="schema_version",me=(e,t,l,r,o)=>{let i,u;const[a,c,s,v]=(e=>{const t=(e=>w(se,h(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ue];if(t.mode==ie){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=t,u=d(x(w(ve,i)),0,C(ve)),a=u[2],c=M(a);return[0,l,[ye(r,{[de]:null,[ae]:j},de,(e=>B(c,e)&&e==a)),ye(o,{[ce]:null,[ae]:j,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>B(c,n)&&n==a)),u],c]})(t);return(a?le:oe)(e,l,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield l(fe+he))[0][he],t=(yield l(fe+pe))[0][pe];n==(null!=i?i:i=n)&&t==(null!=u?u:u=t)||(e(),i=n,u=t)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n}),1e3*c),r((n=>v.has(n)?e():0))]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),s,E(v))};exports.createCrSqliteWasmPersister=(e,n,t)=>me(e,t,((e,...t)=>{return l=[e,...t],r=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=e=>{try{i(r.next(e))}catch(e){n(e)}},o=e=>{try{i(r.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);i((r=r.apply(void 0,l)).next())}));var l,r}),(e=>n.onUpdate(((n,t,l)=>e(l)))),(e=>e()));
1
+ "use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),s=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),E=n=>e(n)==l,p=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},O=(e,n)=>null==e?void 0:e.delete(n),A=Object,L=A.keys,P=A.freeze,b=(e=[])=>A.fromEntries(e),w=(...e)=>A.assign({},...e),R=(e,n)=>i(A.entries(e),(([e,t])=>n(t,e))),S=e=>A.values(e),x=e=>u(L(e)),C=e=>(e=>y(e,A)&&e.constructor==A)(e)&&0==x(e),N=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},F=(e,n,t)=>f(t)?(O(e,n),e):null==e?void 0:e.set(n,t),M=(e,n,t,l=F)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),$=e=>new Set(Array.isArray(e)||f(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),_="_",W="_id",B=e=>`"${e.replace(/"/g,'""')}"`;var H=Object.defineProperty,U=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?H(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,q=(e,n)=>{for(var t in n||(n={}))k.call(n,t)&&Y(e,t,n[t]);if(U)for(var t of U(n))J.call(n,t)&&Y(e,t,n[t]);return e},z=(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 K="FROM pragma_table_",V="WHERE",G=(e,n)=>{const l=N();return[()=>z(void 0,null,(function*(){return M(l,b(yield p(i(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>z(void 0,[n],(function*({name:n}){return[n,b(i(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return F(l,n,M((i=N,m(o=l,r=n)||F(o,r,i()),D(o,r)),t,((e,n,t)=>{t!=D(e,n)&&F(e,n,t)}),((e,n)=>F(e,n))));var o,r,i}),((e,n)=>F(l,n)))})),(n,t)=>z(void 0,null,(function*(){return((e,n)=>!f(D(D(l,e),n)))(n,t)?b(d(i(yield e("SELECT*FROM"+B(n)),(e=>{return[e[t],(n=q({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!C(n)))):{}})),(n,o,u,s,v,y=!1)=>z(void 0,null,(function*(){const h=$();R(null!=u?u:{},(e=>i(L(null!=e?e:{}),(e=>j(h,e)))));const E=T(h);if(!y&&v&&a(E)&&m(l,n))return yield e("DROP TABLE"+B(n)),void F(l,n);if(a(E)||m(l,n)){const t=D(l,n),r=$(g(t));yield p([...i(E,(l=>z(void 0,null,(function*(){O(r,l)||(yield e(`ALTER TABLE${B(n)}ADD${B(l)}`),F(t,l,""))})))),...!y&&s?i(T(r),(l=>z(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${B(n)}DROP${B(l)}`),F(t,l))})))):[]])}else yield e(`CREATE TABLE${B(n)}(${B(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>t+B(e))))});`),F(l,n,N([[o,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+B(n)+"WHERE 1"):yield p(R(u,((t,l)=>z(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+B(n)+V+B(o)+"=?",[l]):a(E)||(yield Q(e,n,o,L(t),[l,...S(t)]))})))));else if(a(E))m(l,n)&&(yield e("DELETE FROM"+B(n)+"WHERE 1"));else{const t=d(g(D(l,n)),(e=>e!=o)),r=[],a=[];R(null!=u?u:{},((e,n)=>{c(r,n,...i(t,(n=>null==e?void 0:e[n]))),c(a,n)})),yield Q(e,n,o,t,r),yield e("DELETE FROM"+B(n)+V+B(o)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>z(void 0,null,(function*(){return yield e("INSERT INTO"+B(n)+"("+B(l)+r(i(a,(e=>t+B(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+B(l)+")DO UPDATE SET"+r(i(a,(e=>B(e)+"=excluded."+B(e))),t),d)})),X=e=>r(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield E.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),E})),E={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),s=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),E})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),E),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield E.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),E})),startAutoSave:()=>ee(void 0,null,(function*(){return yield E.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();C(t)&&C(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(h(r,e.delListener),E),schedule:(...e)=>ee(void 0,null,(function*(){return c(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(E)};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le="store",oe=(e,n,t,l,[o],r)=>{const[i,u,a]=G(n,r),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(o,W))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(o,W,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?A.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[o,r,[i,u,a]],s)=>{const[c,v,y]=G(n,s),h=(e,n)=>re(void 0,null,(function*(){return yield p(I(r,((t,l)=>re(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),E=(e,n)=>re(void 0,null,(function*(){return u?yield y(a,W,{[_]:e},!0,!0,n):null}));return ne(e,(()=>re(void 0,null,(function*(){yield c();const e=yield re(void 0,null,(function*(){return b(d(yield p(I(o,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!C(e[1]))))})),n=yield re(void 0,null,(function*(){return i?(yield v(a,W))[_]:{}}));return C(e)&&f(n)?void 0:[e,n]}))),((e,n)=>re(void 0,null,(function*(){if(yield c(),f(n)){const[n,t]=e();yield h(n),yield E(t)}else{const[e,t]=n();yield h(e,!0),yield E(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",se="tableId",ce="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[ce]:n+"_values"},fe=(e,n,t,l)=>{const o=N();return R(e,((e,r)=>{const i=s(S(w(n,E(e)?{[t]:e}:e)),0,x(n));f(i[0])||l(r,i[0])||F(o,r,i)})),o};var he=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",pe="data_version",me="schema_version",Te=(e,t,l,o,r,i)=>{let u,a;const[d,c,v,y]=(e=>{const t=(e=>w(ve,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],$(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=s(S(w(ye,i)),0,x(ye)),a=u[2],d=$(a);return[0,l,[fe(o,{[se]:null,[de]:W},se,(e=>j(d,e)&&e==a)),fe(r,{[ce]:null,[de]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>j(d,n)&&n==a)),u],d]})(t);return(d?oe:ie)(e,i?(e,n)=>he(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>he(void 0,null,(function*(){try{const n=(yield l(Ee+pe))[0][pe],t=(yield l(Ee+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*c),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,T(y))};exports.createCrSqliteWasmPersister=(e,n,t,l)=>Te(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.onUpdate(((n,t,l)=>e(l)))),(e=>e()),l);
@@ -0,0 +1 @@
1
+ "use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),s=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),E=n=>e(n)==l,p=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},T=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},A=(e,n)=>null==e?void 0:e.delete(n),L=Object,O=L.keys,P=L.freeze,b=(e=[])=>L.fromEntries(e),w=(...e)=>L.assign({},...e),R=(e,n)=>i(L.entries(e),(([e,t])=>n(t,e))),x=e=>L.values(e),N=e=>u(O(e)),S=e=>(e=>y(e,L)&&e.constructor==L)(e)&&0==N(e),C=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},D=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},F=(e,n,t)=>f(t)?(A(e,n),e):null==e?void 0:e.set(n,t),M=(e,n,t,l=F)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),$=e=>new Set(Array.isArray(e)||f(e)?e:[e]),j=(e,n)=>null==e?void 0:e.add(n),_="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var W=Object.defineProperty,k=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,U=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Y=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&U(e,t,n[t]);if(k)for(var t of k(n))J.call(n,t)&&U(e,t,n[t]);return e},z=(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 K="FROM pragma_table_",V="WHERE",G=(e,n)=>{const l=C();return[()=>z(void 0,null,(function*(){return M(l,b(yield p(i(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>z(void 0,[n],(function*({name:n}){return[n,b(i(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return F(l,n,M((i=C,m(o=l,r=n)||F(o,r,i()),D(o,r)),t,((e,n,t)=>{t!=D(e,n)&&F(e,n,t)}),((e,n)=>F(e,n))));var o,r,i}),((e,n)=>F(l,n)))})),(n,t)=>z(void 0,null,(function*(){return((e,n)=>!f(D(D(l,e),n)))(n,t)?b(d(i(yield e("SELECT*FROM"+H(n)),(e=>{return[e[t],(n=Y({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!S(n)))):{}})),(n,o,u,s,v,y=!1)=>z(void 0,null,(function*(){const h=$();R(null!=u?u:{},(e=>i(O(null!=e?e:{}),(e=>j(h,e)))));const E=T(h);if(!y&&v&&a(E)&&m(l,n))return yield e("DROP TABLE"+H(n)),void F(l,n);if(a(E)||m(l,n)){const t=D(l,n),r=$(g(t));yield p([...i(E,(l=>z(void 0,null,(function*(){A(r,l)||(yield e(`ALTER TABLE${H(n)}ADD${H(l)}`),F(t,l,""))})))),...!y&&s?i(T(r),(l=>z(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(l)}`),F(t,l))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>t+H(e))))});`),F(l,n,C([[o,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield p(R(u,((t,l)=>z(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+H(n)+V+H(o)+"=?",[l]):a(E)||(yield Q(e,n,o,O(t),[l,...x(t)]))})))));else if(a(E))m(l,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const t=d(g(D(l,n)),(e=>e!=o)),r=[],a=[];R(null!=u?u:{},((e,n)=>{c(r,n,...i(t,(n=>null==e?void 0:e[n]))),c(a,n)})),yield Q(e,n,o,t,r),yield e("DELETE FROM"+H(n)+V+H(o)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>z(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(l)+r(i(a,(e=>t+H(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+H(l)+")DO UPDATE SET"+r(i(a,(e=>H(e)+"=excluded."+H(e))),t),d)})),X=e=>r(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield E.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),E})),E={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),s=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),E})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),E),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield E.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),E})),startAutoSave:()=>ee(void 0,null,(function*(){return yield E.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();S(t)&&S(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(h(r,e.delListener),E),schedule:(...e)=>ee(void 0,null,(function*(){return c(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(E)};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le="store",oe=(e,n,t,l,[o],r)=>{const[i,u,a]=G(n,r),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(o,B))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(o,B,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[o,r,[i,u,a]],s)=>{const[c,v,y]=G(n,s),h=(e,n)=>re(void 0,null,(function*(){return yield p(I(r,((t,l)=>re(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),E=(e,n)=>re(void 0,null,(function*(){return u?yield y(a,B,{[_]:e},!0,!0,n):null}));return ne(e,(()=>re(void 0,null,(function*(){yield c();const e=yield re(void 0,null,(function*(){return b(d(yield p(I(o,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!S(e[1]))))})),n=yield re(void 0,null,(function*(){return i?(yield v(a,B))[_]:{}}));return S(e)&&f(n)?void 0:[e,n]}))),((e,n)=>re(void 0,null,(function*(){if(yield c(),f(n)){const[n,t]=e();yield h(n),yield E(t)}else{const[e,t]=n();yield h(e,!0),yield E(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",se="tableId",ce="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[ce]:n+"_values"},fe=(e,n,t,l)=>{const o=C();return R(e,((e,r)=>{const i=s(x(w(n,E(e)?{[t]:e}:e)),0,N(n));f(i[0])||l(r,i[0])||F(o,r,i)})),o};var he=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",pe="data_version",me="schema_version",Te=(e,t,l,o,r,i)=>{let u,a;const[d,c,v,y]=(e=>{const t=(e=>w(ve,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],$(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=s(x(w(ye,i)),0,N(ye)),a=u[2],d=$(a);return[0,l,[fe(o,{[se]:null,[de]:B},se,(e=>j(d,e)&&e==a)),fe(r,{[ce]:null,[de]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>j(d,n)&&n==a)),u],d]})(t);return(d?oe:ie)(e,i?(e,n)=>he(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>he(void 0,null,(function*(){try{const n=(yield l(Ee+pe))[0][pe],t=(yield l(Ee+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*c),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,T(y))};exports.createExpoSqlitePersister=(e,n,t,l)=>Te(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return(yield n.execAsync([{sql:e,args:t}],!1))[0].rows},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.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),l);
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,t="tinybase",n=",",l=e(""),r=(e,t="")=>e.join(t),o=(e,t)=>e.map(t),i=e=>e.length,u=e=>0==i(e),a=(e,t)=>e.filter(t),d=(e,t,n)=>e.slice(t,n),c=(e,...t)=>e.push(...t),s=Promise,v=(e,t)=>e instanceof t,y=e=>null==e,f=(e,t,n)=>y(e)?null==n?void 0:n():t(e),p=t=>e(t)==l,h=e=>{return t=function*(){return s.all(e)},new Promise(((e,n)=>{var l=e=>{try{o(t.next(e))}catch(e){n(e)}},r=e=>{try{o(t.throw(e))}catch(e){n(e)}},o=t=>t.done?e(t.value):Promise.resolve(t.value).then(l,r);o((t=t.apply(void 0,null)).next())}));var t},m=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},E=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},b=(e,t)=>null==e?void 0:e.delete(t),O=Object,P=O.keys,w=O.freeze,A=(e=[])=>O.fromEntries(e),T=(...e)=>O.assign({},...e),L=(e,t)=>(delete e[t],e),S=(e,t)=>o(O.entries(e),(([e,n])=>t(n,e))),x=e=>O.values(e),N=e=>i(P(e)),C=e=>(e=>v(e,O)&&e.constructor==O)(e)&&0==N(e),R=e=>new Map(e),g=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},I=(e,t)=>null==e?void 0:e.get(t),_=(e,t)=>{var n;return o([...null!=(n=null==e?void 0:e.entries())?n:[]],(([e,n])=>t(n,e)))},j=(e,t,n)=>y(n)?(b(e,t),e):null==e?void 0:e.set(t,n),D=(e,t,n,l=j)=>(S(t,((t,l)=>n(e,l,t))),((e,t)=>{((e,t)=>{null==e||e.forEach(t)})(e,((e,n)=>t(n)))})(e,(n=>((e,t)=>!y(((e,t)=>f(e,(e=>e[t])))(e,t)))(t,n)?0:l(e,n))),e),$="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||y(e)?e:[e]),k=(e,t)=>null==e?void 0:e.add(t);var B=Object.defineProperty,q=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,J=(e,t,n)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,U=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&J(e,n,t[n]);if(q)for(var n of q(t))H.call(t,n)&&J(e,n,t[n]);return e},V=(e,t,n)=>new Promise(((l,r)=>{var o=e=>{try{u(n.next(e))}catch(e){r(e)}},i=e=>{try{u(n.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((n=n.apply(e,t)).next())}));const Y="SELECT*FROM",z="FROM pragma_table_",K="WHERE",G=(e,t)=>{const l=R(),d=(e,t)=>!y(I(I(l,e),t)),s=(t,d,s,v,y)=>V(void 0,null,(function*(){const f=F();S(null!=y?y:{},(e=>o(P(e),(e=>k(f,e)))));const p=E(f);if(u(p)&&m(l,t)&&v)return yield e("DROP TABLE"+M(t)),void j(l,t);if(u(p)||m(l,t)){const n=I(l,t),r=F(g(n));yield h([...o(p,(l=>V(void 0,null,(function*(){b(r,l)||(yield e(`ALTER TABLE${M(t)}ADD${M(l)}`),j(n,l,""))})))),...s?o(E(r),(l=>V(void 0,null,(function*(){l!=d&&(yield e(`ALTER TABLE${M(t)}DROP${M(l)}`),j(n,l))})))):[]])}else yield e(`CREATE TABLE${M(t)}(${M(d)} PRIMARY KEY ON CONFLICT REPLACE${r(o(p,(e=>n+M(e))))});`),j(l,t,R([[d,""],...o(p,(e=>[e,""]))]));if(u(p))m(l,t)&&(yield e("DELETE FROM"+M(t)));else{const u=[],s=[],v=[],f=a(g(I(l,t)),(e=>e!=d));S(y,((e,t)=>{var n;c(u,`(?${n=i(f),",?".repeat(n)})`),c(s,t,...o(f,(t=>e[t]))),c(v,t)})),yield e("INSERT INTO"+M(t)+"("+M(d)+r(o(f,(e=>n+M(e))))+")VALUES"+r(u,n)+"ON CONFLICT("+M(d)+")DO UPDATE SET"+r(o(f,(e=>M(e)+"=excluded."+M(e))),n),s),yield e("DELETE FROM"+M(t)+K+M(d)+"NOT IN("+Q(v)+")",v)}}));return[()=>V(void 0,null,(function*(){return D(l,A(yield h(o(yield e("SELECT name "+z+"list WHERE schema='main'AND type='table'AND name IN("+Q(t)+")",t),(t=>V(void 0,[t],(function*({name:t}){return[t,A(o(yield e("SELECT name,type "+z+"info(?)",[t]),(({name:e,type:t})=>[e,t])))]})))))),((e,t,n)=>{return j(l,t,D((i=R,m(r=l,o=t)||j(r,o,i()),I(r,o)),n,((e,t,n)=>{n!=I(e,t)&&j(e,t,n)}),((e,t)=>j(e,t))));var r,o,i}),((e,t)=>j(l,t)))})),(t,n)=>V(void 0,null,(function*(){const l=d(t,n)?yield e(Y+M(t)+K+M(n)+"=?",["_"]):[];return u(l)?null:L(l[0],n)})),(e,t,n,l)=>V(void 0,null,(function*(){return yield s(e,t,!0,!0,{[n]:l})})),(t,n)=>V(void 0,null,(function*(){return d(t,n)?A(a(o(yield e(Y+M(t)),(e=>[e[n],L(U({},e),n)])),(([e,t])=>!y(e)&&!C(t)))):{}})),s]},Q=e=>r(o(e,(()=>"?")),n),X=JSON.parse;var Z=(e,t,n)=>new Promise(((l,r)=>{var o=e=>{try{u(n.next(e))}catch(e){r(e)}},i=e=>{try{u(n.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((n=n.apply(e,t)).next())}));const ee=(e,t,n,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],p=e=>Z(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>Z(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(n,l)=>Z(void 0,null,(function*(){return yield p((()=>Z(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}}))))})),startAutoLoad:(...n)=>Z(void 0,[...n],(function*(n={},r={}){return h.stopAutoLoad(),yield h.load(n,r),s=1,u=l(((n,l)=>Z(void 0,null,(function*(){return yield p((()=>Z(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==n?void 0:n())?r:yield t())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),h),save:t=>Z(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>Z(void 0,null,(function*(){try{yield n(e.getContent,t)}catch(e){}a=0}))))),h})),startAutoSave:()=>Z(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const[n,l]=t();C(n)&&C(l)||h.save((()=>[n,l]))})),h})),stopAutoSave:()=>(f(o,e.delListener),h),schedule:(...e)=>Z(void 0,null,(function*(){return c(v,...e),yield Z(void 0,null,(function*(){if(!d){for(d=1;!y((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(h)};var te=(e,t,n)=>new Promise(((l,r)=>{var o=e=>{try{u(n.next(e))}catch(e){r(e)}},i=e=>{try{u(n.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((n=n.apply(e,t)).next())}));const ne="store",le=(e,t,n,l,[r],o)=>{const[i,u,a]=G(t,o),d=ee(e,(()=>te(void 0,null,(function*(){var e;return yield i(),X((null!=(e=yield u(r,$))?e:{})[ne])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var t;yield a(r,$,"_",{[ne]:(t=e(),JSON.stringify(t,((e,t)=>v(t,Map)?O.fromEntries([...t]):t)))})}))))}))),n,l);return d};var re=(e,t,n)=>new Promise(((l,r)=>{var o=e=>{try{u(n.next(e))}catch(e){r(e)}},i=e=>{try{u(n.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((n=n.apply(e,t)).next())}));const oe=(e,t,n,l,[r,o,[i,u,d]],c)=>{const[s,v,f,p,m]=G(t,c);return ee(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return A(a(yield h(_(r,((e,t)=>re(void 0,[e,t],(function*([e,t],n){return[e,yield p(n,t)]}))))),(e=>!C(e[1]))))})),t=yield re(void 0,null,(function*(){return i?yield v(d,$):{}}));return C(e)&&y(t)?void 0:[e,t]}))),(e=>re(void 0,null,(function*(){const[t,n]=e();yield s(),yield(e=>re(void 0,null,(function*(){return yield h(_(o,((t,n)=>re(void 0,[t,n],(function*([t,n,l,r],o){return yield m(t,n,l,r,e[o])})))))})))(t),yield(e=>re(void 0,null,(function*(){return u?yield f(d,$,"_",e):null})))(n)}))),n,l)},ie="json",ue="autoLoadIntervalSeconds",ae="rowIdColumnName",de="tableId",ce="tableName",se={mode:ie,[ue]:1},ve={load:0,save:0,[ce]:t+"_values"},ye=(e,t,n,l)=>{const r=R();return S(e,((e,o)=>{const i=d(x(T(t,p(e)?{[n]:e}:e)),0,N(t));y(i[0])||l(o,i[0])||j(r,o,i)})),r},fe="pragma ",pe="data_version",he="schema_version",me=(e,n,l,r,o)=>{let i,u;const[a,c,s,v]=(e=>{const n=(e=>T(se,p(e)?{storeTableName:e}:null!=e?e:{}))(e),l=n[ue];if(n.mode==ie){const{storeTableName:e=t}=n;return[1,l,[e],F(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=n,u=d(x(T(ve,i)),0,N(ve)),a=u[2],c=F(a);return[0,l,[ye(r,{[de]:null,[ae]:$},de,(e=>k(c,e)&&e==a)),ye(o,{[ce]:null,[ae]:$,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,t)=>k(c,t)&&t==a)),u],c]})(n);return(a?le:oe)(e,l,(e=>[setInterval((()=>{return t=function*(){try{const t=(yield l(fe+pe))[0][pe],n=(yield l(fe+he))[0][he];t==(null!=i?i:i=t)&&n==(null!=u?u:u=n)||(e(),i=t,u=n)}catch(e){}},new Promise(((e,n)=>{var l=e=>{try{o(t.next(e))}catch(e){n(e)}},r=e=>{try{o(t.throw(e))}catch(e){n(e)}},o=t=>t.done?e(t.value):Promise.resolve(t.value).then(l,r);o((t=t.apply(void 0,null)).next())}));var t}),1e3*c),r((t=>v.has(t)?e():0))]),(([e,t])=>{clearInterval(e),i=u=null,o(t)}),s,E(v))};var Ee=Object.defineProperty,be=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,we=(e,t,n)=>t in e?Ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;exports.createSqliteWasmPersister=(e,t,n,l)=>me(e,l,((e,...t)=>{return l=[e,...t],r=function*(e,t=[]){return n.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,t)=>{for(var n in t||(t={}))Oe.call(t,n)&&we(e,n,t[n]);if(be)for(var n of be(t))Pe.call(t,n)&&we(e,n,t[n]);return e})({},e)))},new Promise(((e,t)=>{var n=e=>{try{i(r.next(e))}catch(e){t(e)}},o=e=>{try{i(r.throw(e))}catch(e){t(e)}},i=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,o);i((r=r.apply(void 0,l)).next())}));var l,r}),(e=>t.capi.sqlite3_update_hook(n,((t,n,l,r)=>e(r)),0)),(()=>t.capi.sqlite3_update_hook(n,(()=>0),0)));
1
+ "use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n)=>e.repeat(n),o=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,p=(e,n,t)=>f(e)?null==t?void 0:t():n(e),h=n=>e(n)==l,E=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},b=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},O=(e,n)=>null==e?void 0:e.delete(n),P=Object,T=P.keys,w=P.freeze,A=(e=[])=>P.fromEntries(e),L=(...e)=>P.assign({},...e),R=(e,n)=>i(P.entries(e),(([e,t])=>n(t,e))),S=e=>P.values(e),x=e=>u(T(e)),N=e=>(e=>y(e,P)&&e.constructor==P)(e)&&0==x(e),g=e=>new Map(e),C=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),D=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},j=(e,n,t)=>f(t)?(O(e,n),e):null==e?void 0:e.set(n,t),_=(e,n,t,l=j)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>p(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M=e=>new Set(Array.isArray(e)||f(e)?e:[e]),F=(e,n)=>null==e?void 0:e.add(n),$="_",W="_id",k=e=>`"${e.replace(/"/g,'""')}"`;var B=Object.defineProperty,H=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,U=(e,n,t)=>n in e?B(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,V=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&U(e,t,n[t]);if(H)for(var t of H(n))J.call(n,t)&&U(e,t,n[t]);return e},Y=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const z="FROM pragma_table_",K="WHERE",G=(e,n)=>{const l=g();return[()=>Y(void 0,null,(function*(){return _(l,A(yield E(i(yield e("SELECT name "+z+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>Y(void 0,[n],(function*({name:n}){return[n,A(i(yield e("SELECT name,type "+z+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return j(l,n,_((i=g,m(r=l,o=n)||j(r,o,i()),I(r,o)),t,((e,n,t)=>{t!=I(e,n)&&j(e,n,t)}),((e,n)=>j(e,n))));var r,o,i}),((e,n)=>j(l,n)))})),(n,t)=>Y(void 0,null,(function*(){return((e,n)=>!f(I(I(l,e),n)))(n,t)?A(d(i(yield e("SELECT*FROM"+k(n)),(e=>{return[e[t],(n=V({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!N(n)))):{}})),(n,r,u,c,v,y=!1)=>Y(void 0,null,(function*(){const p=M();R(null!=u?u:{},(e=>i(T(null!=e?e:{}),(e=>F(p,e)))));const h=b(p);if(!y&&v&&a(h)&&m(l,n))return yield e("DROP TABLE"+k(n)),void j(l,n);if(a(h)||m(l,n)){const t=I(l,n),o=M(C(t));yield E([...i(h,(l=>Y(void 0,null,(function*(){O(o,l)||(yield e(`ALTER TABLE${k(n)}ADD${k(l)}`),j(t,l,""))})))),...!y&&c?i(b(o),(l=>Y(void 0,null,(function*(){l!=r&&(yield e(`ALTER TABLE${k(n)}DROP${k(l)}`),j(t,l))})))):[]])}else yield e(`CREATE TABLE${k(n)}(${k(r)} PRIMARY KEY ON CONFLICT REPLACE${o(i(h,(e=>t+k(e))))});`),j(l,n,g([[r,""],...i(h,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+k(n)+"WHERE 1"):yield E(R(u,((t,l)=>Y(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+k(n)+K+k(r)+"=?",[l]):a(h)||(yield Q(e,n,r,T(t),[l,...S(t)]))})))));else if(a(h))m(l,n)&&(yield e("DELETE FROM"+k(n)+"WHERE 1"));else{const t=d(C(I(l,n)),(e=>e!=r)),o=[],a=[];R(null!=u?u:{},((e,n)=>{s(o,n,...i(t,(n=>null==e?void 0:e[n]))),s(a,n)})),yield Q(e,n,r,t,o),yield e("DELETE FROM"+k(n)+K+k(r)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>Y(void 0,null,(function*(){return yield e("INSERT INTO"+k(n)+"("+k(l)+o(i(a,(e=>t+k(e))))+")VALUES"+r(`,(?${r(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+k(l)+")DO UPDATE SET"+o(i(a,(e=>k(e)+"=excluded."+k(e))),t),d)})),X=e=>o(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,c=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),c=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(c&&(r(u),u=void 0,c=0),h),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),h})),startAutoSave:()=>ee(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>ee(void 0,null,(function*(){return s(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(h)};var te=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const le="store",re=(e,n,t,l,[r],o)=>{const[i,u,a]=G(n,o),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(r,W))[$])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(r,W,{[$]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var oe=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[r,o,[i,u,a]],c)=>{const[s,v,y]=G(n,c),p=(e,n)=>oe(void 0,null,(function*(){return yield E(D(o,((t,l)=>oe(void 0,[t,l],(function*([t,l,r,o],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,r,o,n))})))))})),h=(e,n)=>oe(void 0,null,(function*(){return u?yield y(a,W,{[$]:e},!0,!0,n):null}));return ne(e,(()=>oe(void 0,null,(function*(){yield s();const e=yield oe(void 0,null,(function*(){return A(d(yield E(D(r,((e,n)=>oe(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!N(e[1]))))})),n=yield oe(void 0,null,(function*(){return i?(yield v(a,W))[$]:{}}));return N(e)&&f(n)?void 0:[e,n]}))),((e,n)=>oe(void 0,null,(function*(){if(yield s(),f(n)){const[n,t]=e();yield p(n),yield h(t)}else{const[e,t]=n();yield p(e,!0),yield h(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",ce="tableId",se="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[se]:n+"_values"},fe=(e,n,t,l)=>{const r=g();return R(e,((e,o)=>{const i=c(S(L(n,h(e)?{[t]:e}:e)),0,x(n));f(i[0])||l(o,i[0])||j(r,o,i)})),r};var pe=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const he="pragma ",Ee="data_version",me="schema_version",be=(e,t,l,r,o,i)=>{let u,a;const[d,s,v,y]=(e=>{const t=(e=>L(ve,h(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=t,u=c(S(L(ye,i)),0,x(ye)),a=u[2],d=M(a);return[0,l,[fe(r,{[ce]:null,[de]:W},ce,(e=>F(d,e)&&e==a)),fe(o,{[se]:null,[de]:W,deleteEmptyColumns:0,deleteEmptyTable:0},se,((e,n)=>F(d,n)&&n==a)),u],d]})(t);return(d?re:ie)(e,i?(e,n)=>pe(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>pe(void 0,null,(function*(){try{const n=(yield l(he+Ee))[0][Ee],t=(yield l(he+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),r((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,o(n)}),v,b(y))};var Oe=Object.defineProperty,Pe=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,Ae=(e,n,t)=>n in e?Oe(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;exports.createSqliteWasmPersister=(e,n,t,l,r)=>be(e,l,((e,...n)=>{return l=[e,...n],r=function*(e,n=[]){return t.exec(e,{bind:n,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,n)=>{for(var t in n||(n={}))Te.call(n,t)&&Ae(e,t,n[t]);if(Pe)for(var t of Pe(n))we.call(n,t)&&Ae(e,t,n[t]);return e})({},e)))},new Promise(((e,n)=>{var t=e=>{try{i(r.next(e))}catch(e){n(e)}},o=e=>{try{i(r.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);i((r=r.apply(void 0,l)).next())}));var l,r}),(e=>n.capi.sqlite3_update_hook(t,((n,t,l,r)=>e(r)),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)),r);
@@ -1 +1 @@
1
- "use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=(e,n)=>e instanceof n,y=e=>null==e,f=(e,n,t)=>y(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,h=e=>{return n=function*(){return s.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},E=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),O=Object,P=O.keys,A=O.freeze,T=(e=[])=>O.fromEntries(e),w=(...e)=>O.assign({},...e),L=(e,n)=>(delete e[n],e),S=(e,n)=>o(O.entries(e),(([e,t])=>n(t,e))),N=e=>O.values(e),g=e=>i(P(e)),C=e=>(e=>v(e,O)&&e.constructor==O)(e)&&0==g(e),R=e=>new Map(e),x=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),j=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>y(t)?(b(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(S(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!y(((e,n)=>f(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),_="_id",F=e=>`"${e.replace(/"/g,'""')}"`,M=e=>new Set(Array.isArray(e)||y(e)?e:[e]),B=(e,n)=>null==e?void 0:e.add(n);var k=Object.defineProperty,H=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,W=(e,n,t)=>n in e?k(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Y=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&W(e,t,n[t]);if(H)for(var t of H(n))U.call(n,t)&&W(e,t,n[t]);return e},q=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const z="SELECT*FROM",K="FROM pragma_table_",V="WHERE",G=(e,n)=>{const l=R(),d=(e,n)=>!y(I(I(l,e),n)),s=(n,d,s,v,y)=>q(void 0,null,(function*(){const f=M();S(null!=y?y:{},(e=>o(P(e),(e=>B(f,e)))));const p=E(f);if(u(p)&&m(l,n)&&v)return yield e("DROP TABLE"+F(n)),void D(l,n);if(u(p)||m(l,n)){const t=I(l,n),r=M(x(t));yield h([...o(p,(l=>q(void 0,null,(function*(){b(r,l)||(yield e(`ALTER TABLE${F(n)}ADD${F(l)}`),D(t,l,""))})))),...s?o(E(r),(l=>q(void 0,null,(function*(){l!=d&&(yield e(`ALTER TABLE${F(n)}DROP${F(l)}`),D(t,l))})))):[]])}else yield e(`CREATE TABLE${F(n)}(${F(d)} PRIMARY KEY ON CONFLICT REPLACE${r(o(p,(e=>t+F(e))))});`),D(l,n,R([[d,""],...o(p,(e=>[e,""]))]));if(u(p))m(l,n)&&(yield e("DELETE FROM"+F(n)));else{const u=[],s=[],v=[],f=a(x(I(l,n)),(e=>e!=d));S(y,((e,n)=>{var t;c(u,`(?${t=i(f),",?".repeat(t)})`),c(s,n,...o(f,(n=>e[n]))),c(v,n)})),yield e("INSERT INTO"+F(n)+"("+F(d)+r(o(f,(e=>t+F(e))))+")VALUES"+r(u,t)+"ON CONFLICT("+F(d)+")DO UPDATE SET"+r(o(f,(e=>F(e)+"=excluded."+F(e))),t),s),yield e("DELETE FROM"+F(n)+V+F(d)+"NOT IN("+Q(v)+")",v)}}));return[()=>q(void 0,null,(function*(){return $(l,T(yield h(o(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+Q(n)+")",n),(n=>q(void 0,[n],(function*({name:n}){return[n,T(o(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return D(l,n,$((i=R,m(r=l,o=n)||D(r,o,i()),I(r,o)),t,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,n)=>D(l,n)))})),(n,t)=>q(void 0,null,(function*(){const l=d(n,t)?yield e(z+F(n)+V+F(t)+"=?",["_"]):[];return u(l)?null:L(l[0],t)})),(e,n,t,l)=>q(void 0,null,(function*(){return yield s(e,n,!0,!0,{[t]:l})})),(n,t)=>q(void 0,null,(function*(){return d(n,t)?T(a(o(yield e(z+F(n)),(e=>[e[t],L(Y({},e),t)])),(([e,n])=>!y(e)&&!C(n)))):{}})),s]},Q=e=>r(o(e,(()=>"?")),t),X=JSON.parse;var Z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ee=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],p=e=>Z(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>Z(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(t,l)=>Z(void 0,null,(function*(){return yield p((()=>Z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>Z(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),s=1,u=l(((t,l)=>Z(void 0,null,(function*(){return yield p((()=>Z(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),h),save:n=>Z(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>Z(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),h})),startAutoSave:()=>Z(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();C(t)&&C(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(f(o,e.delListener),h),schedule:(...e)=>Z(void 0,null,(function*(){return c(v,...e),yield Z(void 0,null,(function*(){if(!d){for(d=1;!y((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(h)};var ne=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const te="store",le=(e,n,t,l,[r],o)=>{const[i,u,a]=G(n,o),d=ee(e,(()=>ne(void 0,null,(function*(){var e;return yield i(),X((null!=(e=yield u(r,_))?e:{})[te])}))),(e=>ne(void 0,null,(function*(){return d.schedule(i,(()=>ne(void 0,null,(function*(){var n;yield a(r,_,"_",{[te]:(n=e(),JSON.stringify(n,((e,n)=>v(n,Map)?O.fromEntries([...n]):n)))})}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const oe=(e,n,t,l,[r,o,[i,u,d]],c)=>{const[s,v,f,p,m]=G(n,c);return ee(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return T(a(yield h(j(r,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!C(e[1]))))})),n=yield re(void 0,null,(function*(){return i?yield v(d,_):{}}));return C(e)&&y(n)?void 0:[e,n]}))),(e=>re(void 0,null,(function*(){const[n,t]=e();yield s(),yield(e=>re(void 0,null,(function*(){return yield h(j(o,((n,t)=>re(void 0,[n,t],(function*([n,t,l,r],o){return yield m(n,t,l,r,e[o])})))))})))(n),yield(e=>re(void 0,null,(function*(){return u?yield f(d,_,"_",e):null})))(t)}))),t,l)},ie="json",ue="autoLoadIntervalSeconds",ae="rowIdColumnName",de="tableId",ce="tableName",se={mode:ie,[ue]:1},ve={load:0,save:0,[ce]:n+"_values"},ye=(e,n,t,l)=>{const r=R();return S(e,((e,o)=>{const i=d(N(w(n,p(e)?{[t]:e}:e)),0,g(n));y(i[0])||l(o,i[0])||D(r,o,i)})),r},fe="pragma ",pe="data_version",he="schema_version",me=(e,t,l,r,o)=>{let i,u;const[a,c,s,v]=(e=>{const t=(e=>w(se,p(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ue];if(t.mode==ie){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=t,u=d(N(w(ve,i)),0,g(ve)),a=u[2],c=M(a);return[0,l,[ye(r,{[de]:null,[ae]:_},de,(e=>B(c,e)&&e==a)),ye(o,{[ce]:null,[ae]:_,deleteEmptyColumns:0,deleteEmptyTable:0},ce,((e,n)=>B(c,n)&&n==a)),u],c]})(t);return(a?le:oe)(e,l,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield l(fe+pe))[0][pe],t=(yield l(fe+he))[0][he];n==(null!=i?i:i=n)&&t==(null!=u?u:u=t)||(e(),i=n,u=t)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n}),1e3*c),r((n=>v.has(n)?e():0))]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),s,E(v))};var Ee=Object.defineProperty,be=Object.getOwnPropertySymbols,Oe=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,Ae=(e,n,t)=>n in e?Ee(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Te="change";exports.createSqlite3Persister=(e,n,t)=>me(e,t,((e,t=[])=>new s(((l,r)=>n.all(e,t,((e,n)=>e?r(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))Oe.call(n,t)&&Ae(e,t,n[t]);if(be)for(var t of be(n))Pe.call(n,t)&&Ae(e,t,n[t]);return e})({},e))))))))),(e=>{const t=(n,t,l)=>e(l);return n.on(Te,t),t}),(e=>n.off(Te,e)));
1
+ "use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n)=>e.repeat(n),o=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,p=(e,n,t)=>f(e)?null==t?void 0:t():n(e),h=n=>e(n)==l,E=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},O=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),P=Object,T=P.keys,w=P.freeze,A=(e=[])=>P.fromEntries(e),L=(...e)=>P.assign({},...e),R=(e,n)=>i(P.entries(e),(([e,t])=>n(t,e))),S=e=>P.values(e),g=e=>u(T(e)),N=e=>(e=>y(e,P)&&e.constructor==P)(e)&&0==g(e),x=e=>new Map(e),C=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),D=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},j=(e,n,t)=>f(t)?(b(e,n),e):null==e?void 0:e.set(n,t),F=(e,n,t,l=j)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>p(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M=e=>new Set(Array.isArray(e)||f(e)?e:[e]),$=(e,n)=>null==e?void 0:e.add(n),_="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var W=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,q=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&Y(e,t,n[t]);if(k)for(var t of k(n))U.call(n,t)&&Y(e,t,n[t]);return e},z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const K="FROM pragma_table_",V="WHERE",G=(e,n)=>{const l=x();return[()=>z(void 0,null,(function*(){return F(l,A(yield E(i(yield e("SELECT name "+K+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>z(void 0,[n],(function*({name:n}){return[n,A(i(yield e("SELECT name,type "+K+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return j(l,n,F((i=x,m(r=l,o=n)||j(r,o,i()),I(r,o)),t,((e,n,t)=>{t!=I(e,n)&&j(e,n,t)}),((e,n)=>j(e,n))));var r,o,i}),((e,n)=>j(l,n)))})),(n,t)=>z(void 0,null,(function*(){return((e,n)=>!f(I(I(l,e),n)))(n,t)?A(d(i(yield e("SELECT*FROM"+H(n)),(e=>{return[e[t],(n=q({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!N(n)))):{}})),(n,r,u,c,v,y=!1)=>z(void 0,null,(function*(){const p=M();R(null!=u?u:{},(e=>i(T(null!=e?e:{}),(e=>$(p,e)))));const h=O(p);if(!y&&v&&a(h)&&m(l,n))return yield e("DROP TABLE"+H(n)),void j(l,n);if(a(h)||m(l,n)){const t=I(l,n),o=M(C(t));yield E([...i(h,(l=>z(void 0,null,(function*(){b(o,l)||(yield e(`ALTER TABLE${H(n)}ADD${H(l)}`),j(t,l,""))})))),...!y&&c?i(O(o),(l=>z(void 0,null,(function*(){l!=r&&(yield e(`ALTER TABLE${H(n)}DROP${H(l)}`),j(t,l))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(r)} PRIMARY KEY ON CONFLICT REPLACE${o(i(h,(e=>t+H(e))))});`),j(l,n,x([[r,""],...i(h,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield E(R(u,((t,l)=>z(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+H(n)+V+H(r)+"=?",[l]):a(h)||(yield Q(e,n,r,T(t),[l,...S(t)]))})))));else if(a(h))m(l,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const t=d(C(I(l,n)),(e=>e!=r)),o=[],a=[];R(null!=u?u:{},((e,n)=>{s(o,n,...i(t,(n=>null==e?void 0:e[n]))),s(a,n)})),yield Q(e,n,r,t,o),yield e("DELETE FROM"+H(n)+V+H(r)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>z(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(l)+o(i(a,(e=>t+H(e))))+")VALUES"+r(`,(?${r(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+H(l)+")DO UPDATE SET"+o(i(a,(e=>H(e)+"=excluded."+H(e))),t),d)})),X=e=>o(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,c=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield h.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),h})),h={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),c=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),h})),stopAutoLoad:()=>(c&&(r(u),u=void 0,c=0),h),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield h.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),h})),startAutoSave:()=>ee(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>ee(void 0,null,(function*(){return s(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(h)};var te=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const le="store",re=(e,n,t,l,[r],o)=>{const[i,u,a]=G(n,o),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(r,B))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(r,B,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var oe=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[r,o,[i,u,a]],c)=>{const[s,v,y]=G(n,c),p=(e,n)=>oe(void 0,null,(function*(){return yield E(D(o,((t,l)=>oe(void 0,[t,l],(function*([t,l,r,o],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,r,o,n))})))))})),h=(e,n)=>oe(void 0,null,(function*(){return u?yield y(a,B,{[_]:e},!0,!0,n):null}));return ne(e,(()=>oe(void 0,null,(function*(){yield s();const e=yield oe(void 0,null,(function*(){return A(d(yield E(D(r,((e,n)=>oe(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!N(e[1]))))})),n=yield oe(void 0,null,(function*(){return i?(yield v(a,B))[_]:{}}));return N(e)&&f(n)?void 0:[e,n]}))),((e,n)=>oe(void 0,null,(function*(){if(yield s(),f(n)){const[n,t]=e();yield p(n),yield h(t)}else{const[e,t]=n();yield p(e,!0),yield h(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",ce="tableId",se="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[se]:n+"_values"},fe=(e,n,t,l)=>{const r=x();return R(e,((e,o)=>{const i=c(S(L(n,h(e)?{[t]:e}:e)),0,g(n));f(i[0])||l(o,i[0])||j(r,o,i)})),r};var pe=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const he="pragma ",Ee="data_version",me="schema_version",Oe=(e,t,l,r,o,i)=>{let u,a;const[d,s,v,y]=(e=>{const t=(e=>L(ve,h(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:r={},save:o={}}={},values:i={}}=t,u=c(S(L(ye,i)),0,g(ye)),a=u[2],d=M(a);return[0,l,[fe(r,{[ce]:null,[de]:B},ce,(e=>$(d,e)&&e==a)),fe(o,{[se]:null,[de]:B,deleteEmptyColumns:0,deleteEmptyTable:0},se,((e,n)=>$(d,n)&&n==a)),u],d]})(t);return(d?re:ie)(e,i?(e,n)=>pe(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>pe(void 0,null,(function*(){try{const n=(yield l(he+Ee))[0][Ee],t=(yield l(he+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),r((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,o(n)}),v,O(y))};var be=Object.defineProperty,Pe=Object.getOwnPropertySymbols,Te=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,Ae=(e,n,t)=>n in e?be(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Le="change";exports.createSqlite3Persister=(e,n,t,l)=>Oe(e,t,((e,...t)=>{return l=[e,...t],r=function*(e,t=[]){return yield(l=(l,r)=>n.all(e,t,((e,n)=>e?r(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))Te.call(n,t)&&Ae(e,t,n[t]);if(Pe)for(var t of Pe(n))we.call(n,t)&&Ae(e,t,n[t]);return e})({},e)))))),new v(l));var l},new Promise(((e,n)=>{var t=e=>{try{i(r.next(e))}catch(e){n(e)}},o=e=>{try{i(r.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);i((r=r.apply(void 0,l)).next())}));var l,r}),(e=>{const t=(n,t,l)=>e(l);return n.on(Le,t),t}),(e=>n.off(Le,e)),l);