tinybase 4.0.0-beta.5.1 → 4.0.0-beta.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  2. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  4. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  6. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  7. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  12. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  13. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +4 -1
  14. package/lib/debug/persisters/persister-sqlite-wasm.js +4 -1
  15. package/lib/debug/persisters/persister-sqlite3.js +4 -1
  16. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  17. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  18. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  19. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  20. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  21. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  22. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  23. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  24. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  25. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  26. package/lib/persisters/persister-sqlite3.js +1 -1
  27. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  28. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  29. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  30. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  31. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  32. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  33. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  34. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  35. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  36. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  37. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  38. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  39. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  40. package/package.json +2 -2
  41. 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),r=(a,t)=>a.map(t),c=a=>a.length,i=a=>0==c(a),o=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>u.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),O=a=>c(L(a)),R=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==O(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",q="FROM pragma_table_",x="WHERE",J=x+" schema='main'AND type='table'AND name!='sqlite_schema'",U=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,o,l,u,w)=>{const d=j();C(w??{},(a=>r(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(i(E)&&g(t,s)&&u)return await a("DROP TABLE"+B(s)),void M(t,s);if(i(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...r(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=o&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(o)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+B(a))))});`),M(t,s,_([[o,""],...r(E,(a=>[a,""]))]));var v;if(i(E))await a("DELETE FROM"+B(s));else{const t=[],i=[],l=[];C(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(i,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(o)+n(r(E,(a=>e+B(a))))+")VALUES"+n(t,e),i),await a("DELETE FROM"+B(s)+x+B(o)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(r(await a("SELECT name "+q+"list "+J),(async({name:t})=>[t,h(r(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=_,g(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+x+B(e)+"=?",["_"]):[];return i(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(o(r(await a(k+B(t)),(a=>[a[e],S(a,e)])),(([a,t])=>!E(a)&&!R(t)))):{},l]},W=(a,t,e,s,n)=>{let r,c,i,o=0,l=0,u=0;const w=[],d=async a=>{2!=o&&(o=1,await a(),o=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),u=1,i=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),m),stopAutoLoad:()=>(u&&(n(i),i=void 0,u=0),m),save:async t=>(await m.schedule((async()=>{if(1!=o){o=2;try{await e(a.getContent,t)}catch{}o=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(r,a.delListener),m),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},Y="store",z=(a,e,s,n,{storeTableName:r=t})=>{const[c,i,o]=U(e),l=W(a,(async()=>(await c(),w((await i(r,P)??{})[Y]))),(async a=>l.schedule(c,(async()=>{var t;await o(r,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},H="rowIdColumnName",K="tableId",V="tableName",G={load:0,save:0,[V]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,r)=>{const c=l(N(f(t,m(a)?{[e]:a}:a)),0,O(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[i,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,O(G)),n=s[2];return[Q(a,{[K]:null,[H]:P},K,(a=>a==n)),Q(t,{[V]:null,[H]:P,deleteEmptyColumns:0,deleteEmptyTable:0},V,((a,t)=>t==n)),s]})(n),[w,d,v,m,A]=U(t),L=W(a,(async()=>{await w();const a=await(async()=>h(o(await p($(r,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!R(a[1])))))(),t=await(async()=>i?await d(u,P):{})();return R(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,m(t)?{storeTableName:t}:t??{});let c,i;return(r.mode==Z?z:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(i??=s)||(a(),c=t,i=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=i=null,n(t)}),r)};exports.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(a=>a()));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),c=a=>a.length,i=a=>0==c(a),o=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>u.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),O=a=>c(L(a)),R=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==O(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",q="FROM pragma_table_",x="WHERE",J=x+" schema='main'AND type='table'AND name!='sqlite_schema'",U=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,o,l,u,w)=>{const d=j();C(w??{},(a=>r(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(i(E)&&g(t,s)&&u)return await a("DROP TABLE"+B(s)),void M(t,s);if(i(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...r(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=o&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(o)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+B(a))))});`),M(t,s,_([[o,""],...r(E,(a=>[a,""]))]));var v;if(i(E))await a("DELETE FROM"+B(s));else{const t=[],i=[],l=[];C(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(i,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(o)+n(r(E,(a=>e+B(a))))+")VALUES"+n(t,e),i),await a("DELETE FROM"+B(s)+x+B(o)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(r(await a("SELECT name "+q+"list "+J),(async({name:t})=>[t,h(r(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=_,g(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+x+B(e)+"=?",["_"]):[];return i(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(o(r(await a(k+B(t)),(a=>[a[e],S({...a},e)])),(([a,t])=>!E(a)&&!R(t)))):{},l]},W=(a,t,e,s,n)=>{let r,c,i,o=0,l=0,u=0;const w=[],d=async a=>{2!=o&&(o=1,await a(),o=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),u=1,i=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),m),stopAutoLoad:()=>(u&&(n(i),i=void 0,u=0),m),save:async t=>(await m.schedule((async()=>{if(1!=o){o=2;try{await e(a.getContent,t)}catch{}o=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(r,a.delListener),m),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},Y="store",z=(a,e,s,n,{storeTableName:r=t})=>{const[c,i,o]=U(e),l=W(a,(async()=>(await c(),w((await i(r,P)??{})[Y]))),(async a=>l.schedule(c,(async()=>{var t;await o(r,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},H="rowIdColumnName",K="tableId",V="tableName",G={load:0,save:0,[V]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,r)=>{const c=l(N(f(t,m(a)?{[e]:a}:a)),0,O(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[i,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,O(G)),n=s[2];return[Q(a,{[K]:null,[H]:P},K,(a=>a==n)),Q(t,{[V]:null,[H]:P,deleteEmptyColumns:0,deleteEmptyTable:0},V,((a,t)=>t==n)),s]})(n),[w,d,v,m,A]=U(t),L=W(a,(async()=>{await w();const a=await(async()=>h(o(await p($(r,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!R(a[1])))))(),t=await(async()=>i?await d(u,P):{})();return R(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,m(t)?{storeTableName:t}:t??{});let c,i;return(r.mode==Z?z:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(i??=s)||(a(),c=t,i=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=i=null,n(t)}),r)};exports.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(a=>a()));
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),c=a=>a.length,o=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>u.all(a),A=Object,h=A.keys,L=A.freeze,T=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),R=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),C=a=>A.values(a),N=a=>c(h(a)),_=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==N(a),O=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],g=(a,t)=>a?.delete(t),I=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(g(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),q="SELECT*FROM",B="FROM pragma_table_",x="WHERE",J=x+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=I(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=k();R(w??{},(a=>r(h(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&O(t,s)&&u)return await a("DROP TABLE"+j(s)),void M(t,s);if(o(E)||O(t,s)){const e=D(t,s),n=k((v=e,[...v?.keys()??[]]));await m([...r(E,(async t=>{g(n,t)||(await a(`ALTER TABLE${j(s)}ADD${j(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${j(s)}DROP${j(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${j(s)}(${j(i)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+j(a))))});`),M(t,s,I([[i,""],...r(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+j(s));else{const t=[],o=[],l=[];R(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(o,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+j(s)+"("+j(i)+n(r(E,(a=>e+j(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+j(s)+x+j(i)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,T(await m(r(await a("SELECT name "+B+"list "+J),(async({name:t})=>[t,T(r(await a("SELECT name,type "+B+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=I,O(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(q+j(t)+x+j(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?T(i(r(await a(q+j(t)),(a=>[a[e],S(a,e)])),(([a,t])=>!E(a)&&!_(t)))):{},l]},W=(a,t,e,s,n)=>{let r,c,o,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},p={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,o=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),p),save:async t=>(await p.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(v(r,a.delListener),p),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)},Y="store",z=(a,e,s,n,{storeTableName:r=t})=>{const[c,o,i]=V(e),l=W(a,(async()=>(await c(),w((await o(r,P)??{})[Y]))),(async a=>l.schedule(c,(async()=>{var t;await i(r,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},H="rowIdColumnName",K="tableId",U="tableName",G={load:0,save:0,[U]:t+"_values"},Q=(a,t,e,s)=>{const n=I();return R(a,((a,r)=>{const c=l(C(f(t,p(a)?{[e]:a}:a)),0,N(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[o,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(C(f(G,e)),0,N(G)),n=s[2];return[Q(a,{[K]:null,[H]:P},K,(a=>a==n)),Q(t,{[U]:null,[H]:P,deleteEmptyColumns:0,deleteEmptyTable:0},U,((a,t)=>t==n)),s]})(n),[w,d,v,p,A]=V(t),h=W(a,(async()=>{await w();const a=await(async()=>T(i(await m($(r,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?await d(u,P):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return h},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,p(t)?{storeTableName:t}:t??{});let c,o;return(r.mode==Z?z:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(o??=s)||(a(),c=t,o=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=o=null,n(t)}),r)};exports.createSqliteWasmPersister=(a,t,e,s)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,(()=>a()),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.join(t),r=(a,t)=>a.map(t),c=a=>a.length,o=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>u.all(a),A=Object,h=A.keys,L=A.freeze,T=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),R=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),C=a=>A.values(a),N=a=>c(h(a)),_=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==N(a),O=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],g=(a,t)=>a?.delete(t),I=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(g(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),q="SELECT*FROM",B="FROM pragma_table_",x="WHERE",J=x+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=I(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=k();R(w??{},(a=>r(h(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&O(t,s)&&u)return await a("DROP TABLE"+j(s)),void M(t,s);if(o(E)||O(t,s)){const e=D(t,s),n=k((v=e,[...v?.keys()??[]]));await m([...r(E,(async t=>{g(n,t)||(await a(`ALTER TABLE${j(s)}ADD${j(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${j(s)}DROP${j(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${j(s)}(${j(i)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+j(a))))});`),M(t,s,I([[i,""],...r(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+j(s));else{const t=[],o=[],l=[];R(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(o,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+j(s)+"("+j(i)+n(r(E,(a=>e+j(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+j(s)+x+j(i)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,T(await m(r(await a("SELECT name "+B+"list "+J),(async({name:t})=>[t,T(r(await a("SELECT name,type "+B+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=I,O(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(q+j(t)+x+j(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?T(i(r(await a(q+j(t)),(a=>[a[e],S({...a},e)])),(([a,t])=>!E(a)&&!_(t)))):{},l]},W=(a,t,e,s,n)=>{let r,c,o,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},p={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,o=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),p),save:async t=>(await p.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(v(r,a.delListener),p),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)},Y="store",z=(a,e,s,n,{storeTableName:r=t})=>{const[c,o,i]=V(e),l=W(a,(async()=>(await c(),w((await o(r,P)??{})[Y]))),(async a=>l.schedule(c,(async()=>{var t;await i(r,P,"_",{[Y]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},H="rowIdColumnName",K="tableId",U="tableName",G={load:0,save:0,[U]:t+"_values"},Q=(a,t,e,s)=>{const n=I();return R(a,((a,r)=>{const c=l(C(f(t,p(a)?{[e]:a}:a)),0,N(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[o,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(C(f(G,e)),0,N(G)),n=s[2];return[Q(a,{[K]:null,[H]:P},K,(a=>a==n)),Q(t,{[U]:null,[H]:P,deleteEmptyColumns:0,deleteEmptyTable:0},U,((a,t)=>t==n)),s]})(n),[w,d,v,p,A]=V(t),h=W(a,(async()=>{await w();const a=await(async()=>T(i(await m($(r,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>o?await d(u,P):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return h},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,p(t)?{storeTableName:t}:t??{});let c,o;return(r.mode==Z?z:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(o??=s)||(a(),c=t,o=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=o=null,n(t)}),r)};exports.createSqliteWasmPersister=(a,t,e,s)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,(()=>a()),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)));
@@ -1 +1 @@
1
- "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),c=a=>a.length,o=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>u.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),R=a=>c(L(a)),O=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",q="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",x=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=j();C(w??{},(a=>r(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&g(t,s)&&u)return await a("DROP TABLE"+B(s)),void M(t,s);if(o(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...r(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(i)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+B(a))))});`),M(t,s,_([[i,""],...r(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+B(s));else{const t=[],o=[],l=[];C(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(o,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(i)+n(r(E,(a=>e+B(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+B(s)+J+B(i)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(r(await a("SELECT name "+q+"list "+Y),(async({name:t})=>[t,h(r(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=_,g(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+J+B(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(i(r(await a(k+B(t)),(a=>[a[e],S(a,e)])),(([a,t])=>!E(a)&&!O(t)))):{},l]},z=(a,t,e,s,n)=>{let r,c,o,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),u=1,o=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),m),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),m),save:async t=>(await m.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(r,a.delListener),m),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},H="store",K=(a,e,s,n,{storeTableName:r=t})=>{const[c,o,i]=x(e),l=z(a,(async()=>(await c(),w((await o(r,P)??{})[H]))),(async a=>l.schedule(c,(async()=>{var t;await i(r,P,"_",{[H]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},U="rowIdColumnName",V="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,r)=>{const c=l(N(f(t,m(a)?{[e]:a}:a)),0,R(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[o,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,R(G)),n=s[2];return[Q(a,{[V]:null,[U]:P},V,(a=>a==n)),Q(t,{[W]:null,[U]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[w,d,v,m,A]=x(t),L=z(a,(async()=>{await w();const a=await(async()=>h(i(await p($(r,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!O(a[1])))))(),t=await(async()=>o?await d(u,P):{})();return O(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,m(t)?{storeTableName:t}:t??{});let c,o;return(r.mode==Z?K:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(o??=s)||(a(),c=t,o=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=o=null,n(t)}),r)},ca="change";exports.createSqlite3Persister=(a,t,e)=>ra(a,e,((a,e=[])=>new u(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=()=>a();return t.on(ca,e),e}),(a=>t.off(ca,a)));
1
+ "use strict";const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),c=a=>a.length,o=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>u.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),R=a=>c(L(a)),O=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",q="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",x=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=j();C(w??{},(a=>r(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&g(t,s)&&u)return await a("DROP TABLE"+B(s)),void M(t,s);if(o(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...r(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(i)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+B(a))))});`),M(t,s,_([[i,""],...r(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+B(s));else{const t=[],o=[],l=[];C(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(o,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(i)+n(r(E,(a=>e+B(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+B(s)+J+B(i)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(r(await a("SELECT name "+q+"list "+Y),(async({name:t})=>[t,h(r(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=_,g(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+J+B(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(i(r(await a(k+B(t)),(a=>[a[e],S({...a},e)])),(([a,t])=>!E(a)&&!O(t)))):{},l]},z=(a,t,e,s,n)=>{let r,c,o,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),u=1,o=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),m),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),m),save:async t=>(await m.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(r,a.delListener),m),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},H="store",K=(a,e,s,n,{storeTableName:r=t})=>{const[c,o,i]=x(e),l=z(a,(async()=>(await c(),w((await o(r,P)??{})[H]))),(async a=>l.schedule(c,(async()=>{var t;await i(r,P,"_",{[H]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},U="rowIdColumnName",V="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,r)=>{const c=l(N(f(t,m(a)?{[e]:a}:a)),0,R(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[o,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,R(G)),n=s[2];return[Q(a,{[V]:null,[U]:P},V,(a=>a==n)),Q(t,{[W]:null,[U]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[w,d,v,m,A]=x(t),L=z(a,(async()=>{await w();const a=await(async()=>h(i(await p($(r,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!O(a[1])))))(),t=await(async()=>o?await d(u,P):{})();return O(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,m(t)?{storeTableName:t}:t??{});let c,o;return(r.mode==Z?K:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(o??=s)||(a(),c=t,o=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=o=null,n(t)}),r)},ca="change";exports.createSqlite3Persister=(a,t,e)=>ra(a,e,((a,e=[])=>new u(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=()=>a();return t.on(ca,e),e}),(a=>t.off(ca,a)));
@@ -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),s=(e,...n)=>e.push(...n),c=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),m=n=>e(n)==l,p=e=>{return n=function*(){return c.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},E=Object,A=E.keys,L=E.freeze,T=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),x=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),S=e=>E.values(e),C=e=>i(A(e)),N=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==C(e),O=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},R=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},g=(e,n)=>null==e?void 0:e.delete(n),b=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(g(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(x(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),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var j=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const k="SELECT*FROM",q="FROM pragma_table_",J="WHERE",U=J+" schema='main'AND type='table'AND name!='sqlite_schema'",W=e=>{const n=b(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,c,v)=>j(void 0,null,(function*(){const y=B();x(null!=v?v:{},(e=>o(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=R(y);if(u(f)&&O(n,l)&&c)return yield e("DROP TABLE"+F(l)),void D(n,l);if(u(f)||O(n,l)){const t=I(n,l),r=B([...null!=(m=null==(h=t)?void 0:h.keys())?m:[]]);yield p([...o(f,(n=>j(void 0,null,(function*(){g(r,n)||(yield e(`ALTER TABLE${F(l)}ADD${F(n)}`),D(t,n,""))})))),...d?o(R(r),(n=>j(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${F(l)}DROP${F(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${F(l)}(${F(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+F(e))))});`),D(n,l,b([[a,""],...o(f,(e=>[e,""]))]));var h,m;if(u(f))yield e("DELETE FROM"+F(l));else{const n=[],u=[],d=[];x(v,((e,t)=>{var l;s(n,`(?${l=i(f),",?".repeat(l)})`),s(u,t,...o(f,(n=>e[n]))),s(d,t)})),yield e("INSERT INTO"+F(l)+"("+F(a)+r(o(f,(e=>t+F(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+F(l)+J+F(a)+"NOT IN("+r(o(d,(()=>"?")),t)+")",d)}}));return[()=>j(void 0,null,(function*(){return $(n,T(yield p(o(yield e("SELECT name "+q+"list "+U),(n=>j(void 0,[n],(function*({name:n}){return[n,T(o(yield e("SELECT name,type "+q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=b,O(r=n,o=t)||D(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,t)=>j(void 0,null,(function*(){const r=l(n,t)?yield e(k+F(n)+J+F(t)+"=?",["_"]):[];return u(r)?null:w(r[0],t)})),(e,n,t,l)=>j(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>j(void 0,null,(function*(){return l(n,t)?T(a(o(yield e(k+F(n)),(e=>[e[t],w(e,t)])),(([e,n])=>!f(e)&&!N(n)))):{}})),d]};var 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=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,c=0;const v=[],y=e=>Y(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),m={load:(t,l)=>Y(void 0,null,(function*(){return yield y((()=>Y(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),m})),startAutoLoad:(...t)=>Y(void 0,[...t],(function*(t={},r={}){return m.stopAutoLoad(),yield m.load(t,r),c=1,u=l(((t,l)=>Y(void 0,null,(function*(){yield y((()=>Y(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){}}))))})))),m})),stopAutoLoad:()=>(c&&(r(u),u=void 0,c=0),m),save:n=>Y(void 0,null,(function*(){return yield m.schedule((()=>Y(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),m})),startAutoSave:()=>Y(void 0,null,(function*(){return yield m.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();m.save((()=>t))})),m})),stopAutoSave:()=>(h(o,e.delListener),m),schedule:(...e)=>Y(void 0,null,(function*(){return s(v,...e),yield Y(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(m)};var H=(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="store",V=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=W(t),d=z(e,(()=>H(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,M))?e:{})[K])}))),(e=>H(void 0,null,(function*(){return d.schedule(i,(()=>H(void 0,null,(function*(){var n;yield a(o,M,"_",{[K]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const r=b();return x(e,((e,o)=>{const i=d(S(P(n,m(e)?{[t]:e}:e)),0,C(n));f(i[0])||l(o,i[0])||D(r,o,i)})),r};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=(e,n,t,l,r)=>{const[o,i,[u,s,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(S(P(Z,t)),0,C(Z)),r=l[2];return[ee(e,{[Q]:null,[G]:M},Q,(e=>e==r)),ee(n,{[X]:null,[G]:M,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==r)),l]})(r),[v,y,h,m,E]=W(n),A=z(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return T(a(yield p(_(o,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield m(t,n)]}))))),(e=>!N(e[1]))))})),n=yield ne(void 0,null,(function*(){return u?yield y(c,M):{}}));return N(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,r],o)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>s?()=>ne(void 0,null,(function*(){return yield h(c,M,"_",e)})):null)(t))}))),t,l);return A},le="json",re="autoLoadIntervalSeconds",oe={mode:le,[re]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,r)=>{const o=P(oe,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==le?V:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[re]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};exports.createCrSqliteWasmPersister=(e,n,t)=>de(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((()=>e()))),(e=>e()));
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),s=(e,...n)=>e.push(...n),c=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=e=>{return n=function*(){return c.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},E=Object,A=E.keys,P=E.freeze,L=(e=[])=>E.fromEntries(e),T=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),O=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),b=e=>E.values(e),S=e=>i(A(e)),x=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),g=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(O(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),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=Object.defineProperty,k=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,W=(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},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="SELECT*FROM",H="FROM pragma_table_",K="WHERE",V=K+" schema='main'AND type='table'AND name!='sqlite_schema'",G=e=>{const n=g(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,c,v)=>Y(void 0,null,(function*(){const y=F();O(null!=v?v:{},(e=>o(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&c)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||C(n,l)){const t=I(n,l),r=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...o(f,(n=>Y(void 0,null,(function*(){R(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?o(N(r),(n=>Y(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),D(n,l,g([[a,""],...o(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];O(v,((e,t)=>{var l;s(n,`(?${l=i(f),",?".repeat(l)})`),s(u,t,...o(f,(n=>e[n]))),s(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+K+M(a)+"NOT IN("+r(o(d,(()=>"?")),t)+")",d)}}));return[()=>Y(void 0,null,(function*(){return $(n,L(yield m(o(yield e("SELECT name "+H+"list "+V),(n=>Y(void 0,[n],(function*({name:n}){return[n,L(o(yield e("SELECT name,type "+H+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=g,C(r=n,o=t)||D(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,t)=>Y(void 0,null,(function*(){const r=l(n,t)?yield e(z+M(n)+K+M(t)+"=?",["_"]):[];return u(r)?null:w(r[0],t)})),(e,n,t,l)=>Y(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>Y(void 0,null,(function*(){return l(n,t)?L(a(o(yield e(z+M(n)),(e=>[e[t],w(W({},e),t)])),(([e,n])=>!f(e)&&!x(n)))):{}})),d]};var 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 X=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,c=0;const v=[],y=e=>Q(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(t,l)=>Q(void 0,null,(function*(){return yield y((()=>Q(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),startAutoLoad:(...t)=>Q(void 0,[...t],(function*(t={},r={}){return p.stopAutoLoad(),yield p.load(t,r),c=1,u=l(((t,l)=>Q(void 0,null,(function*(){yield y((()=>Q(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:()=>(c&&(r(u),u=void 0,c=0),p),save:n=>Q(void 0,null,(function*(){return yield p.schedule((()=>Q(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),p})),startAutoSave:()=>Q(void 0,null,(function*(){return yield p.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(o,e.delListener),p),schedule:(...e)=>Q(void 0,null,(function*(){return s(v,...e),yield Q(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(p)};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="store",ne=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=G(t),d=X(e,(()=>Z(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,j))?e:{})[ee])}))),(e=>Z(void 0,null,(function*(){return d.schedule(i,(()=>Z(void 0,null,(function*(){var n;yield a(o,j,"_",{[ee]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},te="rowIdColumnName",le="tableId",re="tableName",oe={load:0,save:0,[re]:n+"_values"},ie=(e,n,t,l)=>{const r=g();return O(e,((e,o)=>{const i=d(b(T(n,p(e)?{[t]:e}:e)),0,S(n));f(i[0])||l(o,i[0])||D(r,o,i)})),r};var ue=(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 ae=(e,n,t,l,r)=>{const[o,i,[u,s,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(b(T(oe,t)),0,S(oe)),r=l[2];return[ie(e,{[le]:null,[te]:j},le,(e=>e==r)),ie(n,{[re]:null,[te]:j,deleteEmptyColumns:0,deleteEmptyTable:0},re,((e,n)=>n==r)),l]})(r),[v,y,h,p,E]=G(n),A=X(e,(()=>ue(void 0,null,(function*(){yield v();const e=yield ue(void 0,null,(function*(){return L(a(yield m(_(o,((e,n)=>ue(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!x(e[1]))))})),n=yield ue(void 0,null,(function*(){return u?yield y(c,j):{}}));return x(e)&&f(n)?void 0:[e,n]}))),(e=>ue(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,r],o)=>()=>ue(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>s?()=>ue(void 0,null,(function*(){return yield h(c,j,"_",e)})):null)(t))}))),t,l);return A},de="json",se="autoLoadIntervalSeconds",ce={mode:de,[se]:1},ve="pragma ",ye="data_version",fe="schema_version",he=(e,n,t,l,r)=>{const o=T(ce,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==de?ne:ae)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ve+ye))[0][ye],l=(yield t(ve+fe))[0][fe];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[se]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};exports.createCrSqliteWasmPersister=(e,n,t)=>he(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((()=>e()))),(e=>e()));
@@ -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),s=(e,...t)=>e.push(...t),c=Promise,v=JSON.parse,y=(e,t)=>e instanceof t,f=e=>null==e,h=(e,t,n)=>f(e)?null==n?void 0:n():t(e),p=t=>e(t)==l,m=e=>{return t=function*(){return c.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},E=Object,A=E.keys,P=E.freeze,w=(e=[])=>E.fromEntries(e),b=(...e)=>E.assign({},...e),L=(e,t)=>(delete e[t],e),T=(e,t)=>o(E.entries(e),(([e,n])=>t(n,e))),O=e=>E.values(e),S=e=>i(A(e)),x=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),R=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},C=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},N=(e,t)=>null==e?void 0:e.delete(t),_=e=>new Map(e),g=(e,t)=>null==e?void 0:e.get(t),I=(e,t)=>{var n;return o([...null!=(n=null==e?void 0:e.entries())?n:[]],(([e,n])=>t(n,e)))},D=(e,t,n)=>f(n)?(N(e,t),e):null==e?void 0:e.set(t,n),$=(e,t,n,l=D)=>(T(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)=>!f(((e,t)=>h(e,(e=>e[t])))(e,t)))(t,n)?0:l(e,n))),e),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var k=(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 q="SELECT*FROM",B="FROM pragma_table_",J="WHERE",V=J+" schema='main'AND type='table'AND name!='sqlite_schema'",W=e=>{const t=_(),l=(e,n)=>!f(g(g(t,e),n)),d=(l,a,d,c,v)=>k(void 0,null,(function*(){const y=F();T(null!=v?v:{},(e=>o(A(e),(e=>{return n=e,null==(t=y)?void 0:t.add(n);var t,n}))));const f=C(y);if(u(f)&&R(t,l)&&c)return yield e("DROP TABLE"+M(l)),void D(t,l);if(u(f)||R(t,l)){const n=g(t,l),r=F([...null!=(p=null==(h=n)?void 0:h.keys())?p:[]]);yield m([...o(f,(t=>k(void 0,null,(function*(){N(r,t)||(yield e(`ALTER TABLE${M(l)}ADD${M(t)}`),D(n,t,""))})))),...d?o(C(r),(t=>k(void 0,null,(function*(){t!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(t)}`),D(n,t))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>n+M(e))))});`),D(t,l,_([[a,""],...o(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const t=[],u=[],d=[];T(v,((e,n)=>{var l;s(t,`(?${l=i(f),",?".repeat(l)})`),s(u,n,...o(f,(t=>e[t]))),s(d,n)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>n+M(e))))+")VALUES"+r(t,n),u),yield e("DELETE FROM"+M(l)+J+M(a)+"NOT IN("+r(o(d,(()=>"?")),n)+")",d)}}));return[()=>k(void 0,null,(function*(){return $(t,w(yield m(o(yield e("SELECT name "+B+"list "+V),(t=>k(void 0,[t],(function*({name:t}){return[t,w(o(yield e("SELECT name,type "+B+"info(?)",[t]),(({name:e,type:t})=>[e,t])))]})))))),((e,n,l)=>{return D(t,n,$((i=_,R(r=t,o=n)||D(r,o,i()),g(r,o)),l,((e,t,n)=>{n!=g(e,t)&&D(e,t,n)}),((e,t)=>D(e,t))));var r,o,i}),((e,n)=>D(t,n)))})),(t,n)=>k(void 0,null,(function*(){const r=l(t,n)?yield e(q+M(t)+J+M(n)+"=?",["_"]):[];return u(r)?null:L(r[0],n)})),(e,t,n,l)=>k(void 0,null,(function*(){return yield d(e,t,!0,!0,{[n]:l})})),(t,n)=>k(void 0,null,(function*(){return l(t,n)?w(a(o(yield e(q+M(t)),(e=>[e[n],L(e,n)])),(([e,t])=>!f(e)&&!x(t)))):{}})),d]};var Y=(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 z=(e,t,n,l,r)=>{let o,i,u,a=0,d=0,c=0;const v=[],y=e=>Y(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(n,l)=>Y(void 0,null,(function*(){return yield y((()=>Y(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}})))),p})),startAutoLoad:(...n)=>Y(void 0,[...n],(function*(n={},r={}){return p.stopAutoLoad(),yield p.load(n,r),c=1,u=l(((n,l)=>Y(void 0,null,(function*(){yield y((()=>Y(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){}}))))})))),p})),stopAutoLoad:()=>(c&&(r(u),u=void 0,c=0),p),save:t=>Y(void 0,null,(function*(){return yield p.schedule((()=>Y(void 0,null,(function*(){if(1!=a){a=2;try{yield n(e.getContent,t)}catch(e){}a=0}})))),p})),startAutoSave:()=>Y(void 0,null,(function*(){return yield p.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const n=t();p.save((()=>n))})),p})),stopAutoSave:()=>(h(o,e.delListener),p),schedule:(...e)=>Y(void 0,null,(function*(){return s(v,...e),yield Y(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(p)};var H=(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 K="store",U=(e,n,l,r,{storeTableName:o=t})=>{const[i,u,a]=W(n),d=z(e,(()=>H(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,j))?e:{})[K])}))),(e=>H(void 0,null,(function*(){return d.schedule(i,(()=>H(void 0,null,(function*(){var t;yield a(o,j,"_",{[K]:(t=e(),JSON.stringify(t,((e,t)=>{return y(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})))})}))))}))),l,r);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:t+"_values"},ee=(e,t,n,l)=>{const r=_();return T(e,((e,o)=>{const i=d(O(b(t,p(e)?{[n]:e}:e)),0,S(t));f(i[0])||l(o,i[0])||D(r,o,i)})),r};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=(e,t,n,l,r)=>{const[o,i,[u,s,c]]=(({tables:{load:e={},save:t={}}={},values:n={}})=>{const l=d(O(b(Z,n)),0,S(Z)),r=l[2];return[ee(e,{[Q]:null,[G]:j},Q,(e=>e==r)),ee(t,{[X]:null,[G]:j,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,t)=>t==r)),l]})(r),[v,y,h,p,E]=W(t),A=z(e,(()=>te(void 0,null,(function*(){yield v();const e=yield te(void 0,null,(function*(){return w(a(yield m(I(o,((e,t)=>te(void 0,[e,t],(function*([e,t],n){return[e,yield p(n,t)]}))))),(e=>!x(e[1]))))})),t=yield te(void 0,null,(function*(){return u?yield y(c,j):{}}));return x(e)&&f(t)?void 0:[e,t]}))),(e=>te(void 0,null,(function*(){const[t,n]=e();A.schedule(v,...(e=>I(i,(([t,n,l,r],o)=>()=>te(void 0,null,(function*(){return yield E(t,n,l,r,e[o])})))))(t),(e=>s?()=>te(void 0,null,(function*(){return yield h(c,j,"_",e)})):null)(n))}))),n,l);return A},le="json",re="autoLoadIntervalSeconds",oe={mode:le,[re]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,t,n,l,r)=>{const o=b(oe,p(t)?{storeTableName:t}:null!=t?t:{});let i,u;return(o.mode==le?U:ne)(e,n,(e=>[setInterval((()=>{return t=function*(){try{const t=(yield n(ie+ue))[0][ue],l=(yield n(ie+ae))[0][ae];t==(null!=i?i:i=t)&&l==(null!=u?u:u=l)||(e(),i=t,u=l)}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*o[re]),l(e)]),(([e,t])=>{clearInterval(e),i=u=null,r(t)}),o)};var se=Object.defineProperty,ce=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,fe=(e,t,n)=>t in e?se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;exports.createSqliteWasmPersister=(e,t,n,l)=>de(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={}))ve.call(t,n)&&fe(e,n,t[n]);if(ce)for(var n of ce(t))ye.call(t,n)&&fe(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,(()=>e()),0)),(()=>t.capi.sqlite3_update_hook(n,(()=>0),0)));
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),c=(e,t,n)=>e.slice(t,n),s=(e,...t)=>e.push(...t),d=Promise,v=JSON.parse,y=(e,t)=>e instanceof t,f=e=>null==e,p=(e,t,n)=>f(e)?null==n?void 0:n():t(e),h=t=>e(t)==l,m=e=>{return t=function*(){return d.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},E=Object,b=E.keys,P=E.freeze,w=(e=[])=>E.fromEntries(e),O=(...e)=>E.assign({},...e),A=(e,t)=>(delete e[t],e),L=(e,t)=>o(E.entries(e),(([e,n])=>t(n,e))),T=e=>E.values(e),S=e=>i(b(e)),x=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),g=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},R=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},C=(e,t)=>null==e?void 0:e.delete(t),N=e=>new Map(e),_=(e,t)=>null==e?void 0:e.get(t),j=(e,t)=>{var n;return o([...null!=(n=null==e?void 0:e.entries())?n:[]],(([e,n])=>t(n,e)))},I=(e,t,n)=>f(n)?(C(e,t),e):null==e?void 0:e.set(t,n),D=(e,t,n,l=I)=>(L(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)=>!f(((e,t)=>p(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)||f(e)?e:[e]);var k=Object.defineProperty,q=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,V=(e,t,n)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,W=(e,t)=>{for(var n in t||(t={}))B.call(t,n)&&V(e,n,t[n]);if(q)for(var n of q(t))J.call(t,n)&&V(e,n,t[n]);return e},Y=(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 z="SELECT*FROM",H="FROM pragma_table_",K="WHERE",U=K+" schema='main'AND type='table'AND name!='sqlite_schema'",G=e=>{const t=N(),l=(e,n)=>!f(_(_(t,e),n)),c=(l,a,c,d,v)=>Y(void 0,null,(function*(){const y=F();L(null!=v?v:{},(e=>o(b(e),(e=>{return n=e,null==(t=y)?void 0:t.add(n);var t,n}))));const f=R(y);if(u(f)&&g(t,l)&&d)return yield e("DROP TABLE"+M(l)),void I(t,l);if(u(f)||g(t,l)){const n=_(t,l),r=F([...null!=(h=null==(p=n)?void 0:p.keys())?h:[]]);yield m([...o(f,(t=>Y(void 0,null,(function*(){C(r,t)||(yield e(`ALTER TABLE${M(l)}ADD${M(t)}`),I(n,t,""))})))),...c?o(R(r),(t=>Y(void 0,null,(function*(){t!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(t)}`),I(n,t))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>n+M(e))))});`),I(t,l,N([[a,""],...o(f,(e=>[e,""]))]));var p,h;if(u(f))yield e("DELETE FROM"+M(l));else{const t=[],u=[],c=[];L(v,((e,n)=>{var l;s(t,`(?${l=i(f),",?".repeat(l)})`),s(u,n,...o(f,(t=>e[t]))),s(c,n)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>n+M(e))))+")VALUES"+r(t,n),u),yield e("DELETE FROM"+M(l)+K+M(a)+"NOT IN("+r(o(c,(()=>"?")),n)+")",c)}}));return[()=>Y(void 0,null,(function*(){return D(t,w(yield m(o(yield e("SELECT name "+H+"list "+U),(t=>Y(void 0,[t],(function*({name:t}){return[t,w(o(yield e("SELECT name,type "+H+"info(?)",[t]),(({name:e,type:t})=>[e,t])))]})))))),((e,n,l)=>{return I(t,n,D((i=N,g(r=t,o=n)||I(r,o,i()),_(r,o)),l,((e,t,n)=>{n!=_(e,t)&&I(e,t,n)}),((e,t)=>I(e,t))));var r,o,i}),((e,n)=>I(t,n)))})),(t,n)=>Y(void 0,null,(function*(){const r=l(t,n)?yield e(z+M(t)+K+M(n)+"=?",["_"]):[];return u(r)?null:A(r[0],n)})),(e,t,n,l)=>Y(void 0,null,(function*(){return yield c(e,t,!0,!0,{[n]:l})})),(t,n)=>Y(void 0,null,(function*(){return l(t,n)?w(a(o(yield e(z+M(t)),(e=>[e[n],A(W({},e),n)])),(([e,t])=>!f(e)&&!x(t)))):{}})),c]};var Q=(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 X=(e,t,n,l,r)=>{let o,i,u,a=0,c=0,d=0;const v=[],y=e=>Q(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),h={load:(n,l)=>Q(void 0,null,(function*(){return yield y((()=>Q(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}})))),h})),startAutoLoad:(...n)=>Q(void 0,[...n],(function*(n={},r={}){return h.stopAutoLoad(),yield h.load(n,r),d=1,u=l(((n,l)=>Q(void 0,null,(function*(){yield y((()=>Q(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:()=>(d&&(r(u),u=void 0,d=0),h),save:t=>Q(void 0,null,(function*(){return yield h.schedule((()=>Q(void 0,null,(function*(){if(1!=a){a=2;try{yield n(e.getContent,t)}catch(e){}a=0}})))),h})),startAutoSave:()=>Q(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const n=t();h.save((()=>n))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>Q(void 0,null,(function*(){return s(v,...e),yield Q(void 0,null,(function*(){if(!c){for(c=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}c=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(h)};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="store",te=(e,n,l,r,{storeTableName:o=t})=>{const[i,u,a]=G(n),c=X(e,(()=>Z(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,$))?e:{})[ee])}))),(e=>Z(void 0,null,(function*(){return c.schedule(i,(()=>Z(void 0,null,(function*(){var t;yield a(o,$,"_",{[ee]:(t=e(),JSON.stringify(t,((e,t)=>{return y(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})))})}))))}))),l,r);return c},ne="rowIdColumnName",le="tableId",re="tableName",oe={load:0,save:0,[re]:t+"_values"},ie=(e,t,n,l)=>{const r=N();return L(e,((e,o)=>{const i=c(T(O(t,h(e)?{[n]:e}:e)),0,S(t));f(i[0])||l(o,i[0])||I(r,o,i)})),r};var ue=(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 ae=(e,t,n,l,r)=>{const[o,i,[u,s,d]]=(({tables:{load:e={},save:t={}}={},values:n={}})=>{const l=c(T(O(oe,n)),0,S(oe)),r=l[2];return[ie(e,{[le]:null,[ne]:$},le,(e=>e==r)),ie(t,{[re]:null,[ne]:$,deleteEmptyColumns:0,deleteEmptyTable:0},re,((e,t)=>t==r)),l]})(r),[v,y,p,h,E]=G(t),b=X(e,(()=>ue(void 0,null,(function*(){yield v();const e=yield ue(void 0,null,(function*(){return w(a(yield m(j(o,((e,t)=>ue(void 0,[e,t],(function*([e,t],n){return[e,yield h(n,t)]}))))),(e=>!x(e[1]))))})),t=yield ue(void 0,null,(function*(){return u?yield y(d,$):{}}));return x(e)&&f(t)?void 0:[e,t]}))),(e=>ue(void 0,null,(function*(){const[t,n]=e();b.schedule(v,...(e=>j(i,(([t,n,l,r],o)=>()=>ue(void 0,null,(function*(){return yield E(t,n,l,r,e[o])})))))(t),(e=>s?()=>ue(void 0,null,(function*(){return yield p(d,$,"_",e)})):null)(n))}))),n,l);return b},ce="json",se="autoLoadIntervalSeconds",de={mode:ce,[se]:1},ve="pragma ",ye="data_version",fe="schema_version",pe=(e,t,n,l,r)=>{const o=O(de,h(t)?{storeTableName:t}:null!=t?t:{});let i,u;return(o.mode==ce?te:ae)(e,n,(e=>[setInterval((()=>{return t=function*(){try{const t=(yield n(ve+ye))[0][ye],l=(yield n(ve+fe))[0][fe];t==(null!=i?i:i=t)&&l==(null!=u?u:u=l)||(e(),i=t,u=l)}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*o[se]),l(e)]),(([e,t])=>{clearInterval(e),i=u=null,r(t)}),o)};var he=Object.defineProperty,me=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,Pe=(e,t,n)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;exports.createSqliteWasmPersister=(e,t,n,l)=>pe(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={}))Ee.call(t,n)&&Pe(e,n,t[n]);if(me)for(var n of me(t))be.call(t,n)&&Pe(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,(()=>e()),0)),(()=>t.capi.sqlite3_update_hook(n,(()=>0),0)));
@@ -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),s=(e,...n)=>e.push(...n),c=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=e=>{return n=function*(){return c.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},E=Object,A=E.keys,L=E.freeze,P=(e=[])=>E.fromEntries(e),T=(...e)=>E.assign({},...e),b=(e,n)=>(delete e[n],e),w=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),O=e=>E.values(e),S=e=>i(A(e)),g=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(w(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),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const k="SELECT*FROM",q="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",z=e=>{const n=x(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,c,v)=>B(void 0,null,(function*(){const y=F();w(null!=v?v:{},(e=>o(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&c)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||C(n,l)){const t=I(n,l),r=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...o(f,(n=>B(void 0,null,(function*(){R(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?o(N(r),(n=>B(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),D(n,l,x([[a,""],...o(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];w(v,((e,t)=>{var l;s(n,`(?${l=i(f),",?".repeat(l)})`),s(u,t,...o(f,(n=>e[n]))),s(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+J+M(a)+"NOT IN("+r(o(d,(()=>"?")),t)+")",d)}}));return[()=>B(void 0,null,(function*(){return $(n,P(yield m(o(yield e("SELECT name "+q+"list "+Y),(n=>B(void 0,[n],(function*({name:n}){return[n,P(o(yield e("SELECT name,type "+q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=x,C(r=n,o=t)||D(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,t)=>B(void 0,null,(function*(){const r=l(n,t)?yield e(k+M(n)+J+M(t)+"=?",["_"]):[];return u(r)?null:b(r[0],t)})),(e,n,t,l)=>B(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>B(void 0,null,(function*(){return l(n,t)?P(a(o(yield e(k+M(n)),(e=>[e[t],b(e,t)])),(([e,n])=>!f(e)&&!g(n)))):{}})),d]};var H=(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=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,c=0;const v=[],y=e=>H(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(t,l)=>H(void 0,null,(function*(){return yield y((()=>H(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),startAutoLoad:(...t)=>H(void 0,[...t],(function*(t={},r={}){return p.stopAutoLoad(),yield p.load(t,r),c=1,u=l(((t,l)=>H(void 0,null,(function*(){yield y((()=>H(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:()=>(c&&(r(u),u=void 0,c=0),p),save:n=>H(void 0,null,(function*(){return yield p.schedule((()=>H(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),p})),startAutoSave:()=>H(void 0,null,(function*(){return yield p.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(o,e.delListener),p),schedule:(...e)=>H(void 0,null,(function*(){return s(v,...e),yield H(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)};var U=(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 V="store",W=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=z(t),d=K(e,(()=>U(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,j))?e:{})[V])}))),(e=>U(void 0,null,(function*(){return d.schedule(i,(()=>U(void 0,null,(function*(){var n;yield a(o,j,"_",{[V]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const r=x();return w(e,((e,o)=>{const i=d(O(T(n,p(e)?{[t]:e}:e)),0,S(n));f(i[0])||l(o,i[0])||D(r,o,i)})),r};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=(e,n,t,l,r)=>{const[o,i,[u,s,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(O(T(Z,t)),0,S(Z)),r=l[2];return[ee(e,{[Q]:null,[G]:j},Q,(e=>e==r)),ee(n,{[X]:null,[G]:j,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==r)),l]})(r),[v,y,h,p,E]=z(n),A=K(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return P(a(yield m(_(o,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!g(e[1]))))})),n=yield ne(void 0,null,(function*(){return u?yield y(c,j):{}}));return g(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,r],o)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>s?()=>ne(void 0,null,(function*(){return yield h(c,j,"_",e)})):null)(t))}))),t,l);return A},le="json",re="autoLoadIntervalSeconds",oe={mode:le,[re]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,r)=>{const o=T(oe,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[re]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};var se=Object.defineProperty,ce=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,fe=(e,n,t)=>n in e?se(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const he="change";exports.createSqlite3Persister=(e,n,t)=>de(e,t,((e,t=[])=>new c(((l,r)=>n.all(e,t,((e,n)=>e?r(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))ve.call(n,t)&&fe(e,t,n[t]);if(ce)for(var t of ce(n))ye.call(n,t)&&fe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(he,t),t}),(e=>n.off(he,e)));
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),c=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),d=Promise,v=JSON.parse,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,m=e=>{return n=function*(){return d.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},E=Object,b=E.keys,O=E.freeze,P=(e=[])=>E.fromEntries(e),A=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),L=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),T=e=>E.values(e),S=e=>i(b(e)),g=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),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)))},_=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),D=(e,n,t,l=_)=>(L(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),$="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=Object.defineProperty,k=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?B(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,z=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&Y(e,t,n[t]);if(k)for(var t of k(n))J.call(n,t)&&Y(e,t,n[t]);return e},H=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const K="SELECT*FROM",U="FROM pragma_table_",V="WHERE",W=V+" schema='main'AND type='table'AND name!='sqlite_schema'",G=e=>{const n=x(),l=(e,t)=>!f(I(I(n,e),t)),c=(l,a,c,d,v)=>H(void 0,null,(function*(){const y=F();L(null!=v?v:{},(e=>o(b(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&d)return yield e("DROP TABLE"+M(l)),void _(n,l);if(u(f)||C(n,l)){const t=I(n,l),r=F([...null!=(h=null==(p=t)?void 0:p.keys())?h:[]]);yield m([...o(f,(n=>H(void 0,null,(function*(){R(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),_(t,n,""))})))),...c?o(N(r),(n=>H(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),_(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),_(n,l,x([[a,""],...o(f,(e=>[e,""]))]));var p,h;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],c=[];L(v,((e,t)=>{var l;s(n,`(?${l=i(f),",?".repeat(l)})`),s(u,t,...o(f,(n=>e[n]))),s(c,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+V+M(a)+"NOT IN("+r(o(c,(()=>"?")),t)+")",c)}}));return[()=>H(void 0,null,(function*(){return D(n,P(yield m(o(yield e("SELECT name "+U+"list "+W),(n=>H(void 0,[n],(function*({name:n}){return[n,P(o(yield e("SELECT name,type "+U+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return _(n,t,D((i=x,C(r=n,o=t)||_(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&_(e,n,t)}),((e,n)=>_(e,n))));var r,o,i}),((e,t)=>_(n,t)))})),(n,t)=>H(void 0,null,(function*(){const r=l(n,t)?yield e(K+M(n)+V+M(t)+"=?",["_"]):[];return u(r)?null:w(r[0],t)})),(e,n,t,l)=>H(void 0,null,(function*(){return yield c(e,n,!0,!0,{[t]:l})})),(n,t)=>H(void 0,null,(function*(){return l(n,t)?P(a(o(yield e(K+M(n)),(e=>[e[t],w(z({},e),t)])),(([e,n])=>!f(e)&&!g(n)))):{}})),c]};var 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 X=(e,n,t,l,r)=>{let o,i,u,a=0,c=0,d=0;const v=[],y=e=>Q(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),h={load:(t,l)=>Q(void 0,null,(function*(){return yield y((()=>Q(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),h})),startAutoLoad:(...t)=>Q(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),d=1,u=l(((t,l)=>Q(void 0,null,(function*(){yield y((()=>Q(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:()=>(d&&(r(u),u=void 0,d=0),h),save:n=>Q(void 0,null,(function*(){return yield h.schedule((()=>Q(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),h})),startAutoSave:()=>Q(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();h.save((()=>t))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>Q(void 0,null,(function*(){return s(v,...e),yield Q(void 0,null,(function*(){if(!c){for(c=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}c=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(h)};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="store",ne=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=G(t),c=X(e,(()=>Z(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,$))?e:{})[ee])}))),(e=>Z(void 0,null,(function*(){return c.schedule(i,(()=>Z(void 0,null,(function*(){var n;yield a(o,$,"_",{[ee]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return c},te="rowIdColumnName",le="tableId",re="tableName",oe={load:0,save:0,[re]:n+"_values"},ie=(e,n,t,l)=>{const r=x();return L(e,((e,o)=>{const i=c(T(A(n,h(e)?{[t]:e}:e)),0,S(n));f(i[0])||l(o,i[0])||_(r,o,i)})),r};var ue=(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 ae=(e,n,t,l,r)=>{const[o,i,[u,s,d]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=c(T(A(oe,t)),0,S(oe)),r=l[2];return[ie(e,{[le]:null,[te]:$},le,(e=>e==r)),ie(n,{[re]:null,[te]:$,deleteEmptyColumns:0,deleteEmptyTable:0},re,((e,n)=>n==r)),l]})(r),[v,y,p,h,E]=G(n),b=X(e,(()=>ue(void 0,null,(function*(){yield v();const e=yield ue(void 0,null,(function*(){return P(a(yield m(j(o,((e,n)=>ue(void 0,[e,n],(function*([e,n],t){return[e,yield h(t,n)]}))))),(e=>!g(e[1]))))})),n=yield ue(void 0,null,(function*(){return u?yield y(d,$):{}}));return g(e)&&f(n)?void 0:[e,n]}))),(e=>ue(void 0,null,(function*(){const[n,t]=e();b.schedule(v,...(e=>j(i,(([n,t,l,r],o)=>()=>ue(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>s?()=>ue(void 0,null,(function*(){return yield p(d,$,"_",e)})):null)(t))}))),t,l);return b},ce="json",se="autoLoadIntervalSeconds",de={mode:ce,[se]:1},ve="pragma ",ye="data_version",fe="schema_version",pe=(e,n,t,l,r)=>{const o=A(de,h(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==ce?ne:ae)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ve+ye))[0][ye],l=(yield t(ve+fe))[0][fe];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[se]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};var he=Object.defineProperty,me=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,Oe=(e,n,t)=>n in e?he(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Pe="change";exports.createSqlite3Persister=(e,n,t)=>pe(e,t,((e,t=[])=>new d(((l,r)=>n.all(e,t,((e,n)=>e?r(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))Ee.call(n,t)&&Oe(e,t,n[t]);if(me)for(var t of me(n))be.call(n,t)&&Oe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(Pe,t),t}),(e=>n.off(Pe,e)));
@@ -166,7 +166,10 @@ const getCommandFunctions = (cmd) => {
166
166
  arrayFilter(
167
167
  arrayMap(
168
168
  await cmd(SELECT_STAR_FROM + escapeId(tableName)),
169
- (row) => [row[rowIdColumnName], objDel(row, rowIdColumnName)],
169
+ (row) => [
170
+ row[rowIdColumnName],
171
+ objDel({...row}, rowIdColumnName),
172
+ ],
170
173
  ),
171
174
  ([rowId, row]) => !isUndefined(rowId) && !objIsEmpty(row),
172
175
  ),
@@ -166,7 +166,10 @@ const getCommandFunctions = (cmd) => {
166
166
  arrayFilter(
167
167
  arrayMap(
168
168
  await cmd(SELECT_STAR_FROM + escapeId(tableName)),
169
- (row) => [row[rowIdColumnName], objDel(row, rowIdColumnName)],
169
+ (row) => [
170
+ row[rowIdColumnName],
171
+ objDel({...row}, rowIdColumnName),
172
+ ],
170
173
  ),
171
174
  ([rowId, row]) => !isUndefined(rowId) && !objIsEmpty(row),
172
175
  ),
@@ -167,7 +167,10 @@ const getCommandFunctions = (cmd) => {
167
167
  arrayFilter(
168
168
  arrayMap(
169
169
  await cmd(SELECT_STAR_FROM + escapeId(tableName)),
170
- (row) => [row[rowIdColumnName], objDel(row, rowIdColumnName)],
170
+ (row) => [
171
+ row[rowIdColumnName],
172
+ objDel({...row}, rowIdColumnName),
173
+ ],
171
174
  ),
172
175
  ([rowId, row]) => !isUndefined(rowId) && !objIsEmpty(row),
173
176
  ),
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n="")=>e.join(n),r=(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),s=(e,...n)=>e.push(...n),c=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),m=n=>e(n)==l,p=e=>{return n=function*(){return c.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},E=Object,A=E.keys,L=E.freeze,T=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),x=(e,n)=>r(E.entries(e),(([e,t])=>n(t,e))),S=e=>E.values(e),C=e=>i(A(e)),N=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==C(e),O=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},R=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},g=(e,n)=>null==e?void 0:e.delete(n),b=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return r([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(g(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(x(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),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var j=(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="SELECT*FROM",J="FROM pragma_table_",U="WHERE",Y=U+" schema='main'AND type='table'AND name!='sqlite_schema'",q=e=>{const n=b(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,c,v)=>j(void 0,null,(function*(){const y=B();x(null!=v?v:{},(e=>r(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=R(y);if(u(f)&&O(n,l)&&c)return yield e("DROP TABLE"+F(l)),void D(n,l);if(u(f)||O(n,l)){const t=I(n,l),o=B([...null!=(m=null==(h=t)?void 0:h.keys())?m:[]]);yield p([...r(f,(n=>j(void 0,null,(function*(){g(o,n)||(yield e(`ALTER TABLE${F(l)}ADD${F(n)}`),D(t,n,""))})))),...d?r(R(o),(n=>j(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${F(l)}DROP${F(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${F(l)}(${F(a)} PRIMARY KEY ON CONFLICT REPLACE${o(r(f,(e=>t+F(e))))});`),D(n,l,b([[a,""],...r(f,(e=>[e,""]))]));var h,m;if(u(f))yield e("DELETE FROM"+F(l));else{const n=[],u=[],d=[];x(v,((e,t)=>{var l;s(n,`(?${l=i(f),",?".repeat(l)})`),s(u,t,...r(f,(n=>e[n]))),s(d,t)})),yield e("INSERT INTO"+F(l)+"("+F(a)+o(r(f,(e=>t+F(e))))+")VALUES"+o(n,t),u),yield e("DELETE FROM"+F(l)+U+F(a)+"NOT IN("+o(r(d,(()=>"?")),t)+")",d)}}));return[()=>j(void 0,null,(function*(){return $(n,T(yield p(r(yield e("SELECT name "+J+"list "+Y),(n=>j(void 0,[n],(function*({name:n}){return[n,T(r(yield e("SELECT name,type "+J+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=b,O(o=n,r=t)||D(o,r,i()),I(o,r)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var o,r,i}),((e,t)=>D(n,t)))})),(n,t)=>j(void 0,null,(function*(){const o=l(n,t)?yield e(k+F(n)+U+F(t)+"=?",["_"]):[];return u(o)?null:w(o[0],t)})),(e,n,t,l)=>j(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>j(void 0,null,(function*(){return l(n,t)?T(a(r(yield e(k+F(n)),(e=>[e[t],w(e,t)])),(([e,n])=>!f(e)&&!N(n)))):{}})),d]};var 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 H=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,c=0;const v=[],y=e=>z(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),m={load:(t,l)=>z(void 0,null,(function*(){return yield y((()=>z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),m})),startAutoLoad:(...t)=>z(void 0,[...t],(function*(t={},o={}){return m.stopAutoLoad(),yield m.load(t,o),c=1,u=l(((t,l)=>z(void 0,null,(function*(){yield y((()=>z(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){}}))))})))),m})),stopAutoLoad:()=>(c&&(o(u),u=void 0,c=0),m),save:n=>z(void 0,null,(function*(){return yield m.schedule((()=>z(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),m})),startAutoSave:()=>z(void 0,null,(function*(){return yield m.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const t=n();m.save((()=>t))})),m})),stopAutoSave:()=>(h(r,e.delListener),m),schedule:(...e)=>z(void 0,null,(function*(){return s(v,...e),yield z(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(m)};var K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="store",W=(e,t,l,o,{storeTableName:r=n})=>{const[i,u,a]=q(t),d=H(e,(()=>K(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(r,M))?e:{})[V])}))),(e=>K(void 0,null,(function*(){return d.schedule(i,(()=>K(void 0,null,(function*(){var n;yield a(r,M,"_",{[V]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,o);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const o=b();return x(e,((e,r)=>{const i=d(S(P(n,m(e)?{[t]:e}:e)),0,C(n));f(i[0])||l(r,i[0])||D(o,r,i)})),o};var ne=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,o)=>{const[r,i,[u,s,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(S(P(Z,t)),0,C(Z)),o=l[2];return[ee(e,{[Q]:null,[G]:M},Q,(e=>e==o)),ee(n,{[X]:null,[G]:M,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==o)),l]})(o),[v,y,h,m,E]=q(n),A=H(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return T(a(yield p(_(r,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield m(t,n)]}))))),(e=>!N(e[1]))))})),n=yield ne(void 0,null,(function*(){return u?yield y(c,M):{}}));return N(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,o],r)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,o,e[r])})))))(n),(e=>s?()=>ne(void 0,null,(function*(){return yield h(c,M,"_",e)})):null)(t))}))),t,l);return A},le="json",oe="autoLoadIntervalSeconds",re={mode:le,[oe]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,o)=>{const r=P(re,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(r.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(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}),1e3*r[oe]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),r)},se=(e,n,t)=>de(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((()=>e()))),(e=>e()));export{se as createCrSqliteWasmPersister};
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=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},E=Object,A=E.keys,P=E.freeze,L=(e=[])=>E.fromEntries(e),T=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),O=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),b=e=>E.values(e),x=e=>i(A(e)),S=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==x(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),g=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(O(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),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?B(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 H="SELECT*FROM",K="FROM pragma_table_",V="WHERE",W=V+" schema='main'AND type='table'AND name!='sqlite_schema'",G=e=>{const n=g(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,s,v)=>z(void 0,null,(function*(){const y=F();O(null!=v?v:{},(e=>o(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&s)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||C(n,l)){const t=I(n,l),r=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...o(f,(n=>z(void 0,null,(function*(){R(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?o(N(r),(n=>z(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),D(n,l,g([[a,""],...o(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];O(v,((e,t)=>{var l;c(n,`(?${l=i(f),",?".repeat(l)})`),c(u,t,...o(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+V+M(a)+"NOT IN("+r(o(d,(()=>"?")),t)+")",d)}}));return[()=>z(void 0,null,(function*(){return $(n,L(yield m(o(yield e("SELECT name "+K+"list "+W),(n=>z(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,t,l)=>{return D(n,t,$((i=g,C(r=n,o=t)||D(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,t)=>z(void 0,null,(function*(){const r=l(n,t)?yield e(H+M(n)+V+M(t)+"=?",["_"]):[];return u(r)?null:w(r[0],t)})),(e,n,t,l)=>z(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>z(void 0,null,(function*(){return l(n,t)?L(a(o(yield e(H+M(n)),(e=>[e[t],w(q({},e),t)])),(([e,n])=>!f(e)&&!S(n)))):{}})),d]};var 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 X=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],y=e=>Q(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(t,l)=>Q(void 0,null,(function*(){return yield y((()=>Q(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),startAutoLoad:(...t)=>Q(void 0,[...t],(function*(t={},r={}){return p.stopAutoLoad(),yield p.load(t,r),s=1,u=l(((t,l)=>Q(void 0,null,(function*(){yield y((()=>Q(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=>Q(void 0,null,(function*(){return yield p.schedule((()=>Q(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),p})),startAutoSave:()=>Q(void 0,null,(function*(){return yield p.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(o,e.delListener),p),schedule:(...e)=>Q(void 0,null,(function*(){return c(v,...e),yield Q(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(p)};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="store",ne=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=G(t),d=X(e,(()=>Z(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,j))?e:{})[ee])}))),(e=>Z(void 0,null,(function*(){return d.schedule(i,(()=>Z(void 0,null,(function*(){var n;yield a(o,j,"_",{[ee]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},te="rowIdColumnName",le="tableId",re="tableName",oe={load:0,save:0,[re]:n+"_values"},ie=(e,n,t,l)=>{const r=g();return O(e,((e,o)=>{const i=d(b(T(n,p(e)?{[t]:e}:e)),0,x(n));f(i[0])||l(o,i[0])||D(r,o,i)})),r};var ue=(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 ae=(e,n,t,l,r)=>{const[o,i,[u,c,s]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(b(T(oe,t)),0,x(oe)),r=l[2];return[ie(e,{[le]:null,[te]:j},le,(e=>e==r)),ie(n,{[re]:null,[te]:j,deleteEmptyColumns:0,deleteEmptyTable:0},re,((e,n)=>n==r)),l]})(r),[v,y,h,p,E]=G(n),A=X(e,(()=>ue(void 0,null,(function*(){yield v();const e=yield ue(void 0,null,(function*(){return L(a(yield m(_(o,((e,n)=>ue(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!S(e[1]))))})),n=yield ue(void 0,null,(function*(){return u?yield y(s,j):{}}));return S(e)&&f(n)?void 0:[e,n]}))),(e=>ue(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,r],o)=>()=>ue(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>c?()=>ue(void 0,null,(function*(){return yield h(s,j,"_",e)})):null)(t))}))),t,l);return A},de="json",ce="autoLoadIntervalSeconds",se={mode:de,[ce]:1},ve="pragma ",ye="data_version",fe="schema_version",he=(e,n,t,l,r)=>{const o=T(se,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==de?ne:ae)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ve+ye))[0][ye],l=(yield t(ve+fe))[0][fe];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[ce]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)},pe=(e,n,t)=>he(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((()=>e()))),(e=>e()));export{pe as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=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},E=Object,A=E.keys,w=E.freeze,P=(e=[])=>E.fromEntries(e),b=(...e)=>E.assign({},...e),L=(e,n)=>(delete e[n],e),T=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),O=e=>E.values(e),x=e=>i(A(e)),S=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==x(e),R=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},C=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},N=(e,n)=>null==e?void 0:e.delete(n),_=e=>new Map(e),g=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(N(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(T(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),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var k=(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 B="SELECT*FROM",q="FROM pragma_table_",J="WHERE",V=J+" schema='main'AND type='table'AND name!='sqlite_schema'",Y=e=>{const n=_(),l=(e,t)=>!f(g(g(n,e),t)),d=(l,a,d,s,v)=>k(void 0,null,(function*(){const y=F();T(null!=v?v:{},(e=>o(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=C(y);if(u(f)&&R(n,l)&&s)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||R(n,l)){const t=g(n,l),r=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...o(f,(n=>k(void 0,null,(function*(){N(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?o(C(r),(n=>k(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),D(n,l,_([[a,""],...o(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];T(v,((e,t)=>{var l;c(n,`(?${l=i(f),",?".repeat(l)})`),c(u,t,...o(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+J+M(a)+"NOT IN("+r(o(d,(()=>"?")),t)+")",d)}}));return[()=>k(void 0,null,(function*(){return $(n,P(yield m(o(yield e("SELECT name "+q+"list "+V),(n=>k(void 0,[n],(function*({name:n}){return[n,P(o(yield e("SELECT name,type "+q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=_,R(r=n,o=t)||D(r,o,i()),g(r,o)),l,((e,n,t)=>{t!=g(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,t)=>k(void 0,null,(function*(){const r=l(n,t)?yield e(B+M(n)+J+M(t)+"=?",["_"]):[];return u(r)?null:L(r[0],t)})),(e,n,t,l)=>k(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>k(void 0,null,(function*(){return l(n,t)?P(a(o(yield e(B+M(n)),(e=>[e[t],L(e,t)])),(([e,n])=>!f(e)&&!S(n)))):{}})),d]};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 H=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],y=e=>z(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(t,l)=>z(void 0,null,(function*(){return yield y((()=>z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),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*(){yield y((()=>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 yield p.schedule((()=>z(void 0,null,(function*(){if(1!=a){a=2;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=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(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;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(p)};var K=(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 U="store",W=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=Y(t),d=H(e,(()=>K(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,j))?e:{})[U])}))),(e=>K(void 0,null,(function*(){return d.schedule(i,(()=>K(void 0,null,(function*(){var n;yield a(o,j,"_",{[U]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const r=_();return T(e,((e,o)=>{const i=d(O(b(n,p(e)?{[t]:e}:e)),0,x(n));f(i[0])||l(o,i[0])||D(r,o,i)})),r};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=(e,n,t,l,r)=>{const[o,i,[u,c,s]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(O(b(Z,t)),0,x(Z)),r=l[2];return[ee(e,{[Q]:null,[G]:j},Q,(e=>e==r)),ee(n,{[X]:null,[G]:j,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==r)),l]})(r),[v,y,h,p,E]=Y(n),A=H(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return P(a(yield m(I(o,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!S(e[1]))))})),n=yield ne(void 0,null,(function*(){return u?yield y(s,j):{}}));return S(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>I(i,(([n,t,l,r],o)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>c?()=>ne(void 0,null,(function*(){return yield h(s,j,"_",e)})):null)(t))}))),t,l);return A},le="json",re="autoLoadIntervalSeconds",oe={mode:le,[re]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,r)=>{const o=b(oe,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[re]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};var ce=Object.defineProperty,se=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,fe=(e,n,t)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const he=(e,n,t,l)=>de(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={}))ve.call(n,t)&&fe(e,t,n[t]);if(se)for(var t of se(n))ye.call(n,t)&&fe(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,(()=>e()),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)));export{he as createSqliteWasmPersister};
1
+ 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),c=(e,t,n)=>e.slice(t,n),d=(e,...t)=>e.push(...t),s=Promise,v=JSON.parse,y=(e,t)=>e instanceof t,f=e=>null==e,p=(e,t,n)=>f(e)?null==n?void 0:n():t(e),h=t=>e(t)==l,m=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},E=Object,b=E.keys,w=E.freeze,O=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),A=(e,t)=>(delete e[t],e),L=(e,t)=>o(E.entries(e),(([e,n])=>t(n,e))),T=e=>E.values(e),S=e=>i(b(e)),x=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),g=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},R=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},C=(e,t)=>null==e?void 0:e.delete(t),N=e=>new Map(e),_=(e,t)=>null==e?void 0:e.get(t),j=(e,t)=>{var n;return o([...null!=(n=null==e?void 0:e.entries())?n:[]],(([e,n])=>t(n,e)))},I=(e,t,n)=>f(n)?(C(e,t),e):null==e?void 0:e.set(t,n),D=(e,t,n,l=I)=>(L(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)=>!f(((e,t)=>p(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)||f(e)?e:[e]);var k=Object.defineProperty,B=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,V=(e,t,n)=>t in e?k(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t)=>{for(var n in t||(t={}))q.call(t,n)&&V(e,n,t[n]);if(B)for(var n of B(t))J.call(t,n)&&V(e,n,t[n]);return e},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 H="SELECT*FROM",K="FROM pragma_table_",U="WHERE",W=U+" schema='main'AND type='table'AND name!='sqlite_schema'",G=e=>{const t=N(),l=(e,n)=>!f(_(_(t,e),n)),c=(l,a,c,s,v)=>z(void 0,null,(function*(){const y=F();L(null!=v?v:{},(e=>o(b(e),(e=>{return n=e,null==(t=y)?void 0:t.add(n);var t,n}))));const f=R(y);if(u(f)&&g(t,l)&&s)return yield e("DROP TABLE"+M(l)),void I(t,l);if(u(f)||g(t,l)){const n=_(t,l),r=F([...null!=(h=null==(p=n)?void 0:p.keys())?h:[]]);yield m([...o(f,(t=>z(void 0,null,(function*(){C(r,t)||(yield e(`ALTER TABLE${M(l)}ADD${M(t)}`),I(n,t,""))})))),...c?o(R(r),(t=>z(void 0,null,(function*(){t!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(t)}`),I(n,t))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>n+M(e))))});`),I(t,l,N([[a,""],...o(f,(e=>[e,""]))]));var p,h;if(u(f))yield e("DELETE FROM"+M(l));else{const t=[],u=[],c=[];L(v,((e,n)=>{var l;d(t,`(?${l=i(f),",?".repeat(l)})`),d(u,n,...o(f,(t=>e[t]))),d(c,n)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>n+M(e))))+")VALUES"+r(t,n),u),yield e("DELETE FROM"+M(l)+U+M(a)+"NOT IN("+r(o(c,(()=>"?")),n)+")",c)}}));return[()=>z(void 0,null,(function*(){return D(t,O(yield m(o(yield e("SELECT name "+K+"list "+W),(t=>z(void 0,[t],(function*({name:t}){return[t,O(o(yield e("SELECT name,type "+K+"info(?)",[t]),(({name:e,type:t})=>[e,t])))]})))))),((e,n,l)=>{return I(t,n,D((i=N,g(r=t,o=n)||I(r,o,i()),_(r,o)),l,((e,t,n)=>{n!=_(e,t)&&I(e,t,n)}),((e,t)=>I(e,t))));var r,o,i}),((e,n)=>I(t,n)))})),(t,n)=>z(void 0,null,(function*(){const r=l(t,n)?yield e(H+M(t)+U+M(n)+"=?",["_"]):[];return u(r)?null:A(r[0],n)})),(e,t,n,l)=>z(void 0,null,(function*(){return yield c(e,t,!0,!0,{[n]:l})})),(t,n)=>z(void 0,null,(function*(){return l(t,n)?O(a(o(yield e(H+M(t)),(e=>[e[n],A(Y({},e),n)])),(([e,t])=>!f(e)&&!x(t)))):{}})),c]};var Q=(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 X=(e,t,n,l,r)=>{let o,i,u,a=0,c=0,s=0;const v=[],y=e=>Q(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),h={load:(n,l)=>Q(void 0,null,(function*(){return yield y((()=>Q(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}})))),h})),startAutoLoad:(...n)=>Q(void 0,[...n],(function*(n={},r={}){return h.stopAutoLoad(),yield h.load(n,r),s=1,u=l(((n,l)=>Q(void 0,null,(function*(){yield y((()=>Q(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=>Q(void 0,null,(function*(){return yield h.schedule((()=>Q(void 0,null,(function*(){if(1!=a){a=2;try{yield n(e.getContent,t)}catch(e){}a=0}})))),h})),startAutoSave:()=>Q(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const n=t();h.save((()=>n))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>Q(void 0,null,(function*(){return d(v,...e),yield Q(void 0,null,(function*(){if(!c){for(c=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}c=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(h)};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="store",te=(e,n,l,r,{storeTableName:o=t})=>{const[i,u,a]=G(n),c=X(e,(()=>Z(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,$))?e:{})[ee])}))),(e=>Z(void 0,null,(function*(){return c.schedule(i,(()=>Z(void 0,null,(function*(){var t;yield a(o,$,"_",{[ee]:(t=e(),JSON.stringify(t,((e,t)=>{return y(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})))})}))))}))),l,r);return c},ne="rowIdColumnName",le="tableId",re="tableName",oe={load:0,save:0,[re]:t+"_values"},ie=(e,t,n,l)=>{const r=N();return L(e,((e,o)=>{const i=c(T(P(t,h(e)?{[n]:e}:e)),0,S(t));f(i[0])||l(o,i[0])||I(r,o,i)})),r};var ue=(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 ae=(e,t,n,l,r)=>{const[o,i,[u,d,s]]=(({tables:{load:e={},save:t={}}={},values:n={}})=>{const l=c(T(P(oe,n)),0,S(oe)),r=l[2];return[ie(e,{[le]:null,[ne]:$},le,(e=>e==r)),ie(t,{[re]:null,[ne]:$,deleteEmptyColumns:0,deleteEmptyTable:0},re,((e,t)=>t==r)),l]})(r),[v,y,p,h,E]=G(t),b=X(e,(()=>ue(void 0,null,(function*(){yield v();const e=yield ue(void 0,null,(function*(){return O(a(yield m(j(o,((e,t)=>ue(void 0,[e,t],(function*([e,t],n){return[e,yield h(n,t)]}))))),(e=>!x(e[1]))))})),t=yield ue(void 0,null,(function*(){return u?yield y(s,$):{}}));return x(e)&&f(t)?void 0:[e,t]}))),(e=>ue(void 0,null,(function*(){const[t,n]=e();b.schedule(v,...(e=>j(i,(([t,n,l,r],o)=>()=>ue(void 0,null,(function*(){return yield E(t,n,l,r,e[o])})))))(t),(e=>d?()=>ue(void 0,null,(function*(){return yield p(s,$,"_",e)})):null)(n))}))),n,l);return b},ce="json",de="autoLoadIntervalSeconds",se={mode:ce,[de]:1},ve="pragma ",ye="data_version",fe="schema_version",pe=(e,t,n,l,r)=>{const o=P(se,h(t)?{storeTableName:t}:null!=t?t:{});let i,u;return(o.mode==ce?te:ae)(e,n,(e=>[setInterval((()=>{return t=function*(){try{const t=(yield n(ve+ye))[0][ye],l=(yield n(ve+fe))[0][fe];t==(null!=i?i:i=t)&&l==(null!=u?u:u=l)||(e(),i=t,u=l)}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*o[de]),l(e)]),(([e,t])=>{clearInterval(e),i=u=null,r(t)}),o)};var he=Object.defineProperty,me=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,we=(e,t,n)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const Oe=(e,t,n,l)=>pe(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={}))Ee.call(t,n)&&we(e,n,t[n]);if(me)for(var n of me(t))be.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,(()=>e()),0)),(()=>t.capi.sqlite3_update_hook(n,(()=>0),0)));export{Oe as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n="")=>e.join(n),r=(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=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=e=>{return n=function*(){return s.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},E=Object,A=E.keys,L=E.freeze,T=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),b=(e,n)=>(delete e[n],e),w=(e,n)=>r(E.entries(e),(([e,t])=>n(t,e))),O=e=>E.values(e),S=e=>i(A(e)),g=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return r([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(w(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),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=(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="SELECT*FROM",J="FROM pragma_table_",Y="WHERE",q=Y+" schema='main'AND type='table'AND name!='sqlite_schema'",z=e=>{const n=x(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,s,v)=>B(void 0,null,(function*(){const y=F();w(null!=v?v:{},(e=>r(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&s)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||C(n,l)){const t=I(n,l),o=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...r(f,(n=>B(void 0,null,(function*(){R(o,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?r(N(o),(n=>B(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${o(r(f,(e=>t+M(e))))});`),D(n,l,x([[a,""],...r(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];w(v,((e,t)=>{var l;c(n,`(?${l=i(f),",?".repeat(l)})`),c(u,t,...r(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+o(r(f,(e=>t+M(e))))+")VALUES"+o(n,t),u),yield e("DELETE FROM"+M(l)+Y+M(a)+"NOT IN("+o(r(d,(()=>"?")),t)+")",d)}}));return[()=>B(void 0,null,(function*(){return $(n,T(yield m(r(yield e("SELECT name "+J+"list "+q),(n=>B(void 0,[n],(function*({name:n}){return[n,T(r(yield e("SELECT name,type "+J+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=x,C(o=n,r=t)||D(o,r,i()),I(o,r)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var o,r,i}),((e,t)=>D(n,t)))})),(n,t)=>B(void 0,null,(function*(){const o=l(n,t)?yield e(k+M(n)+Y+M(t)+"=?",["_"]):[];return u(o)?null:b(o[0],t)})),(e,n,t,l)=>B(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>B(void 0,null,(function*(){return l(n,t)?T(a(r(yield e(k+M(n)),(e=>[e[t],b(e,t)])),(([e,n])=>!f(e)&&!g(n)))):{}})),d]};var H=(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=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>H(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(t,l)=>H(void 0,null,(function*(){return yield y((()=>H(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),startAutoLoad:(...t)=>H(void 0,[...t],(function*(t={},o={}){return p.stopAutoLoad(),yield p.load(t,o),s=1,u=l(((t,l)=>H(void 0,null,(function*(){yield y((()=>H(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){}}))))})))),p})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),p),save:n=>H(void 0,null,(function*(){return yield p.schedule((()=>H(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),p})),startAutoSave:()=>H(void 0,null,(function*(){return yield p.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const t=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(r,e.delListener),p),schedule:(...e)=>H(void 0,null,(function*(){return c(v,...e),yield H(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)};var U=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="store",W=(e,t,l,o,{storeTableName:r=n})=>{const[i,u,a]=z(t),d=K(e,(()=>U(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(r,j))?e:{})[V])}))),(e=>U(void 0,null,(function*(){return d.schedule(i,(()=>U(void 0,null,(function*(){var n;yield a(r,j,"_",{[V]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,o);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const o=x();return w(e,((e,r)=>{const i=d(O(P(n,p(e)?{[t]:e}:e)),0,S(n));f(i[0])||l(r,i[0])||D(o,r,i)})),o};var ne=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,o)=>{const[r,i,[u,c,s]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(O(P(Z,t)),0,S(Z)),o=l[2];return[ee(e,{[Q]:null,[G]:j},Q,(e=>e==o)),ee(n,{[X]:null,[G]:j,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==o)),l]})(o),[v,y,h,p,E]=z(n),A=K(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return T(a(yield m(_(r,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!g(e[1]))))})),n=yield ne(void 0,null,(function*(){return u?yield y(s,j):{}}));return g(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,o],r)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,o,e[r])})))))(n),(e=>c?()=>ne(void 0,null,(function*(){return yield h(s,j,"_",e)})):null)(t))}))),t,l);return A},le="json",oe="autoLoadIntervalSeconds",re={mode:le,[oe]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,o)=>{const r=P(re,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(r.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(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}),1e3*r[oe]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),r)};var ce=Object.defineProperty,se=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,fe=(e,n,t)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const he="change",pe=(e,n,t)=>de(e,t,((e,t=[])=>new s(((l,o)=>n.all(e,t,((e,n)=>e?o(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))ve.call(n,t)&&fe(e,t,n[t]);if(se)for(var t of se(n))ye.call(n,t)&&fe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(he,t),t}),(e=>n.off(he,e)));export{pe as createSqlite3Persister};
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),d=(e,...n)=>e.push(...n),s=Promise,v=JSON.parse,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,m=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},E=Object,b=E.keys,O=E.freeze,A=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),L=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),T=e=>E.values(e),S=e=>i(b(e)),g=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),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)))},_=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),D=(e,n,t,l=_)=>(L(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),$="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,q=(e,n,t)=>n in e?B(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,z=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&q(e,t,n[t]);if(k)for(var t of k(n))Y.call(n,t)&&q(e,t,n[t]);return e},H=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const K="SELECT*FROM",U="FROM pragma_table_",V="WHERE",W=V+" schema='main'AND type='table'AND name!='sqlite_schema'",G=e=>{const n=x(),l=(e,t)=>!f(I(I(n,e),t)),c=(l,a,c,s,v)=>H(void 0,null,(function*(){const y=F();L(null!=v?v:{},(e=>o(b(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&s)return yield e("DROP TABLE"+M(l)),void _(n,l);if(u(f)||C(n,l)){const t=I(n,l),r=F([...null!=(h=null==(p=t)?void 0:p.keys())?h:[]]);yield m([...o(f,(n=>H(void 0,null,(function*(){R(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),_(t,n,""))})))),...c?o(N(r),(n=>H(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),_(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),_(n,l,x([[a,""],...o(f,(e=>[e,""]))]));var p,h;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],c=[];L(v,((e,t)=>{var l;d(n,`(?${l=i(f),",?".repeat(l)})`),d(u,t,...o(f,(n=>e[n]))),d(c,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+V+M(a)+"NOT IN("+r(o(c,(()=>"?")),t)+")",c)}}));return[()=>H(void 0,null,(function*(){return D(n,A(yield m(o(yield e("SELECT name "+U+"list "+W),(n=>H(void 0,[n],(function*({name:n}){return[n,A(o(yield e("SELECT name,type "+U+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return _(n,t,D((i=x,C(r=n,o=t)||_(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&_(e,n,t)}),((e,n)=>_(e,n))));var r,o,i}),((e,t)=>_(n,t)))})),(n,t)=>H(void 0,null,(function*(){const r=l(n,t)?yield e(K+M(n)+V+M(t)+"=?",["_"]):[];return u(r)?null:w(r[0],t)})),(e,n,t,l)=>H(void 0,null,(function*(){return yield c(e,n,!0,!0,{[t]:l})})),(n,t)=>H(void 0,null,(function*(){return l(n,t)?A(a(o(yield e(K+M(n)),(e=>[e[t],w(z({},e),t)])),(([e,n])=>!f(e)&&!g(n)))):{}})),c]};var 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 X=(e,n,t,l,r)=>{let o,i,u,a=0,c=0,s=0;const v=[],y=e=>Q(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),h={load:(t,l)=>Q(void 0,null,(function*(){return yield y((()=>Q(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),h})),startAutoLoad:(...t)=>Q(void 0,[...t],(function*(t={},r={}){return h.stopAutoLoad(),yield h.load(t,r),s=1,u=l(((t,l)=>Q(void 0,null,(function*(){yield y((()=>Q(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=>Q(void 0,null,(function*(){return yield h.schedule((()=>Q(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),h})),startAutoSave:()=>Q(void 0,null,(function*(){return yield h.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();h.save((()=>t))})),h})),stopAutoSave:()=>(p(o,e.delListener),h),schedule:(...e)=>Q(void 0,null,(function*(){return d(v,...e),yield Q(void 0,null,(function*(){if(!c){for(c=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}c=0}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(h)};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="store",ne=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=G(t),c=X(e,(()=>Z(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,$))?e:{})[ee])}))),(e=>Z(void 0,null,(function*(){return c.schedule(i,(()=>Z(void 0,null,(function*(){var n;yield a(o,$,"_",{[ee]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return c},te="rowIdColumnName",le="tableId",re="tableName",oe={load:0,save:0,[re]:n+"_values"},ie=(e,n,t,l)=>{const r=x();return L(e,((e,o)=>{const i=c(T(P(n,h(e)?{[t]:e}:e)),0,S(n));f(i[0])||l(o,i[0])||_(r,o,i)})),r};var ue=(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 ae=(e,n,t,l,r)=>{const[o,i,[u,d,s]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=c(T(P(oe,t)),0,S(oe)),r=l[2];return[ie(e,{[le]:null,[te]:$},le,(e=>e==r)),ie(n,{[re]:null,[te]:$,deleteEmptyColumns:0,deleteEmptyTable:0},re,((e,n)=>n==r)),l]})(r),[v,y,p,h,E]=G(n),b=X(e,(()=>ue(void 0,null,(function*(){yield v();const e=yield ue(void 0,null,(function*(){return A(a(yield m(j(o,((e,n)=>ue(void 0,[e,n],(function*([e,n],t){return[e,yield h(t,n)]}))))),(e=>!g(e[1]))))})),n=yield ue(void 0,null,(function*(){return u?yield y(s,$):{}}));return g(e)&&f(n)?void 0:[e,n]}))),(e=>ue(void 0,null,(function*(){const[n,t]=e();b.schedule(v,...(e=>j(i,(([n,t,l,r],o)=>()=>ue(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>d?()=>ue(void 0,null,(function*(){return yield p(s,$,"_",e)})):null)(t))}))),t,l);return b},ce="json",de="autoLoadIntervalSeconds",se={mode:ce,[de]:1},ve="pragma ",ye="data_version",fe="schema_version",pe=(e,n,t,l,r)=>{const o=P(se,h(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==ce?ne:ae)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ve+ye))[0][ye],l=(yield t(ve+fe))[0][fe];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[de]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};var he=Object.defineProperty,me=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,Oe=(e,n,t)=>n in e?he(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Ae="change",Pe=(e,n,t)=>pe(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={}))Ee.call(n,t)&&Oe(e,t,n[t]);if(me)for(var t of me(n))be.call(n,t)&&Oe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(Ae,t),t}),(e=>n.off(Ae,e)));export{Pe as createSqlite3Persister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,o=a=>0==r(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>w.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>c(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),O=a=>r(L(a)),R=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==O(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",x="FROM pragma_table_",J="WHERE",U=J+" schema='main'AND type='table'AND name!='sqlite_schema'",Y=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,w,u)=>{const d=j();C(u??{},(a=>c(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&g(t,s)&&w)return await a("DROP TABLE"+B(s)),void M(t,s);if(o(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...c(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?c(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(i)} PRIMARY KEY ON CONFLICT REPLACE${n(c(E,(a=>e+B(a))))});`),M(t,s,_([[i,""],...c(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+B(s));else{const t=[],o=[],l=[];C(u,((a,e)=>{var s;y(t,`(?${s=r(E),",?".repeat(s)})`),y(o,e,...c(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(i)+n(c(E,(a=>e+B(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+B(s)+J+B(i)+"NOT IN("+n(c(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(c(await a("SELECT name "+x+"list "+U),(async({name:t})=>[t,h(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((r=_,g(n=t,c=e)||M(n,c,r()),D(n,c)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,r}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+J+B(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(i(c(await a(k+B(t)),(a=>[a[e],S(a,e)])),(([a,t])=>!E(a)&&!R(t)))):{},l]},q=(a,t,e,s,n)=>{let c,r,o,i=0,l=0,w=0;const u=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>{await d((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=>(await m.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!E((a=u,r=a.shift()));)try{await r()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},z="store",H=(a,e,s,n,{storeTableName:c=t})=>{const[r,o,i]=Y(e),l=q(a,(async()=>(await r(),u((await o(c,P)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await i(c,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",V="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,c)=>{const r=l(N(f(t,m(a)?{[e]:a}:a)),0,O(t));E(r[0])||s(c,r[0])||M(n,c,r)})),n},X=(a,t,e,s,n)=>{const[c,r,[o,y,w]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,O(G)),n=s[2];return[Q(a,{[V]:null,[K]:P},V,(a=>a==n)),Q(t,{[W]:null,[K]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[u,d,v,m,A]=Y(t),L=q(a,(async()=>{await u();const a=await(async()=>h(i(await p($(c,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!R(a[1])))))(),t=await(async()=>o?await d(w,P):{})();return R(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(u,...(a=>$(r,(([t,e,s,n],c)=>async()=>await A(t,e,s,n,a[c]))))(t),(a=>y?async()=>await v(w,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ca=(a,t,e,s,n)=>{const c=f(ta,m(t)?{storeTableName:t}:t??{});let r,o;return(c.mode==Z?H:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(r??=t)&&s==(o??=s)||(a(),r=t,o=s)}catch{}}),1e3*c[aa]),s(a)]),(([a,t])=>{clearInterval(a),r=o=null,n(t)}),c)},ra=(a,t,e)=>ca(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(a=>a()));export{ra as createCrSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,o=a=>0==r(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),w=Promise,u=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>w.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>c(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),O=a=>r(L(a)),R=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==O(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",x="FROM pragma_table_",J="WHERE",U=J+" schema='main'AND type='table'AND name!='sqlite_schema'",Y=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,w,u)=>{const d=j();C(u??{},(a=>c(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&g(t,s)&&w)return await a("DROP TABLE"+B(s)),void M(t,s);if(o(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...c(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?c(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(i)} PRIMARY KEY ON CONFLICT REPLACE${n(c(E,(a=>e+B(a))))});`),M(t,s,_([[i,""],...c(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+B(s));else{const t=[],o=[],l=[];C(u,((a,e)=>{var s;y(t,`(?${s=r(E),",?".repeat(s)})`),y(o,e,...c(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(i)+n(c(E,(a=>e+B(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+B(s)+J+B(i)+"NOT IN("+n(c(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(c(await a("SELECT name "+x+"list "+U),(async({name:t})=>[t,h(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((r=_,g(n=t,c=e)||M(n,c,r()),D(n,c)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,c,r}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+J+B(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(i(c(await a(k+B(t)),(a=>[a[e],S({...a},e)])),(([a,t])=>!E(a)&&!R(t)))):{},l]},q=(a,t,e,s,n)=>{let c,r,o,i=0,l=0,w=0;const u=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),w=1,o=s((async(e,s)=>{await d((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=>(await m.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),c=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(c,a.delListener),m),schedule:async(...a)=>(y(u,...a),await(async()=>{if(!l){for(l=1;!E((a=u,r=a.shift()));)try{await r()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},z="store",H=(a,e,s,n,{storeTableName:c=t})=>{const[r,o,i]=Y(e),l=q(a,(async()=>(await r(),u((await o(c,P)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await i(c,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",V="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,c)=>{const r=l(N(f(t,m(a)?{[e]:a}:a)),0,O(t));E(r[0])||s(c,r[0])||M(n,c,r)})),n},X=(a,t,e,s,n)=>{const[c,r,[o,y,w]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,O(G)),n=s[2];return[Q(a,{[V]:null,[K]:P},V,(a=>a==n)),Q(t,{[W]:null,[K]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[u,d,v,m,A]=Y(t),L=q(a,(async()=>{await u();const a=await(async()=>h(i(await p($(c,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!R(a[1])))))(),t=await(async()=>o?await d(w,P):{})();return R(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(u,...(a=>$(r,(([t,e,s,n],c)=>async()=>await A(t,e,s,n,a[c]))))(t),(a=>y?async()=>await v(w,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ca=(a,t,e,s,n)=>{const c=f(ta,m(t)?{storeTableName:t}:t??{});let r,o;return(c.mode==Z?H:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(r??=t)&&s==(o??=s)||(a(),r=t,o=s)}catch{}}),1e3*c[aa]),s(a)]),(([a,t])=>{clearInterval(a),r=o=null,n(t)}),c)},ra=(a,t,e)=>ca(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(a=>a()));export{ra as createCrSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>u.all(a),A=Object,h=A.keys,L=A.freeze,T=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),R=(a,t)=>(delete a[t],a),S=(a,t)=>o(A.entries(a),(([a,e])=>t(e,a))),C=a=>A.values(a),N=a=>c(h(a)),_=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==N(a),O=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],g=(a,t)=>a?.delete(t),I=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(g(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),B="SELECT*FROM",q="FROM pragma_table_",x="WHERE",J=x+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=I(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=k();S(w??{},(a=>o(h(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(r(E)&&O(t,s)&&u)return await a("DROP TABLE"+j(s)),void M(t,s);if(r(E)||O(t,s)){const e=D(t,s),n=k((v=e,[...v?.keys()??[]]));await m([...o(E,(async t=>{g(n,t)||(await a(`ALTER TABLE${j(s)}ADD${j(t)}`),M(e,t,""))})),...l?o(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${j(s)}DROP${j(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${j(s)}(${j(i)} PRIMARY KEY ON CONFLICT REPLACE${n(o(E,(a=>e+j(a))))});`),M(t,s,I([[i,""],...o(E,(a=>[a,""]))]));var v;if(r(E))await a("DELETE FROM"+j(s));else{const t=[],r=[],l=[];S(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(r,e,...o(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+j(s)+"("+j(i)+n(o(E,(a=>e+j(a))))+")VALUES"+n(t,e),r),await a("DELETE FROM"+j(s)+x+j(i)+"NOT IN("+n(o(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,T(await m(o(await a("SELECT name "+q+"list "+J),(async({name:t})=>[t,T(o(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=I,O(n=t,o=e)||M(n,o,c()),D(n,o)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,o,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(B+j(t)+x+j(e)+"=?",["_"]):[];return r(n)?null:R(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?T(i(o(await a(B+j(t)),(a=>[a[e],R(a,e)])),(([a,t])=>!E(a)&&!_(t)))):{},l]},Y=(a,t,e,s,n)=>{let o,c,r,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},p={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,r=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(u&&(n(r),r=void 0,u=0),p),save:async t=>(await p.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(v(o,a.delListener),p),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)},z="store",H=(a,e,s,n,{storeTableName:o=t})=>{const[c,r,i]=V(e),l=Y(a,(async()=>(await c(),w((await r(o,P)??{})[z]))),(async a=>l.schedule(c,(async()=>{var t;await i(o,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",U="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=I();return S(a,((a,o)=>{const c=l(C(f(t,p(a)?{[e]:a}:a)),0,N(t));E(c[0])||s(o,c[0])||M(n,o,c)})),n},X=(a,t,e,s,n)=>{const[o,c,[r,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(C(f(G,e)),0,N(G)),n=s[2];return[Q(a,{[U]:null,[K]:P},U,(a=>a==n)),Q(t,{[W]:null,[K]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[w,d,v,p,A]=V(t),h=Y(a,(async()=>{await w();const a=await(async()=>T(i(await m($(o,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?await d(u,P):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(w,...(a=>$(c,(([t,e,s,n],o)=>async()=>await A(t,e,s,n,a[o]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return h},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",oa=(a,t,e,s,n)=>{const o=f(ta,p(t)?{storeTableName:t}:t??{});let c,r;return(o.mode==Z?H:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(r??=s)||(a(),c=t,r=s)}catch{}}),1e3*o[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=r=null,n(t)}),o)},ca=(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,(()=>a()),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)));export{ca as createSqliteWasmPersister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),p=t=>a(t)==s,m=async a=>u.all(a),A=Object,h=A.keys,L=A.freeze,T=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),R=(a,t)=>(delete a[t],a),S=(a,t)=>o(A.entries(a),(([a,e])=>t(e,a))),C=a=>A.values(a),N=a=>c(h(a)),_=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==N(a),O=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],g=(a,t)=>a?.delete(t),I=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(g(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(S(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),B="SELECT*FROM",q="FROM pragma_table_",x="WHERE",J=x+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=I(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=k();S(w??{},(a=>o(h(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(r(E)&&O(t,s)&&u)return await a("DROP TABLE"+j(s)),void M(t,s);if(r(E)||O(t,s)){const e=D(t,s),n=k((v=e,[...v?.keys()??[]]));await m([...o(E,(async t=>{g(n,t)||(await a(`ALTER TABLE${j(s)}ADD${j(t)}`),M(e,t,""))})),...l?o(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${j(s)}DROP${j(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${j(s)}(${j(i)} PRIMARY KEY ON CONFLICT REPLACE${n(o(E,(a=>e+j(a))))});`),M(t,s,I([[i,""],...o(E,(a=>[a,""]))]));var v;if(r(E))await a("DELETE FROM"+j(s));else{const t=[],r=[],l=[];S(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(r,e,...o(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+j(s)+"("+j(i)+n(o(E,(a=>e+j(a))))+")VALUES"+n(t,e),r),await a("DELETE FROM"+j(s)+x+j(i)+"NOT IN("+n(o(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,T(await m(o(await a("SELECT name "+q+"list "+J),(async({name:t})=>[t,T(o(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=I,O(n=t,o=e)||M(n,o,c()),D(n,o)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,o,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(B+j(t)+x+j(e)+"=?",["_"]):[];return r(n)?null:R(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?T(i(o(await a(B+j(t)),(a=>[a[e],R({...a},e)])),(([a,t])=>!E(a)&&!_(t)))):{},l]},Y=(a,t,e,s,n)=>{let o,c,r,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},p={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),u=1,r=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(u&&(n(r),r=void 0,u=0),p),save:async t=>(await p.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),o=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(v(o,a.delListener),p),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)},z="store",H=(a,e,s,n,{storeTableName:o=t})=>{const[c,r,i]=V(e),l=Y(a,(async()=>(await c(),w((await r(o,P)??{})[z]))),(async a=>l.schedule(c,(async()=>{var t;await i(o,P,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",U="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=I();return S(a,((a,o)=>{const c=l(C(f(t,p(a)?{[e]:a}:a)),0,N(t));E(c[0])||s(o,c[0])||M(n,o,c)})),n},X=(a,t,e,s,n)=>{const[o,c,[r,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(C(f(G,e)),0,N(G)),n=s[2];return[Q(a,{[U]:null,[K]:P},U,(a=>a==n)),Q(t,{[W]:null,[K]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[w,d,v,p,A]=V(t),h=Y(a,(async()=>{await w();const a=await(async()=>T(i(await m($(o,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?await d(u,P):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(w,...(a=>$(c,(([t,e,s,n],o)=>async()=>await A(t,e,s,n,a[o]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return h},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",oa=(a,t,e,s,n)=>{const o=f(ta,p(t)?{storeTableName:t}:t??{});let c,r;return(o.mode==Z?H:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(r??=s)||(a(),c=t,r=s)}catch{}}),1e3*o[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=r=null,n(t)}),o)},ca=(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,(()=>a()),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)));export{ca as createSqliteWasmPersister};
@@ -1 +1 @@
1
- const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),c=a=>a.length,o=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>u.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),R=a=>c(L(a)),O=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",J="FROM pragma_table_",Y="WHERE",q=Y+" schema='main'AND type='table'AND name!='sqlite_schema'",x=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=j();C(w??{},(a=>r(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&g(t,s)&&u)return await a("DROP TABLE"+B(s)),void M(t,s);if(o(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...r(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(i)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+B(a))))});`),M(t,s,_([[i,""],...r(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+B(s));else{const t=[],o=[],l=[];C(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(o,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(i)+n(r(E,(a=>e+B(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+B(s)+Y+B(i)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(r(await a("SELECT name "+J+"list "+q),(async({name:t})=>[t,h(r(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=_,g(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+Y+B(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(i(r(await a(k+B(t)),(a=>[a[e],S(a,e)])),(([a,t])=>!E(a)&&!O(t)))):{},l]},z=(a,t,e,s,n)=>{let r,c,o,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),u=1,o=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),m),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),m),save:async t=>(await m.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(r,a.delListener),m),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},H="store",K=(a,e,s,n,{storeTableName:r=t})=>{const[c,o,i]=x(e),l=z(a,(async()=>(await c(),w((await o(r,P)??{})[H]))),(async a=>l.schedule(c,(async()=>{var t;await i(r,P,"_",{[H]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},U="rowIdColumnName",V="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,r)=>{const c=l(N(f(t,m(a)?{[e]:a}:a)),0,R(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[o,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,R(G)),n=s[2];return[Q(a,{[V]:null,[U]:P},V,(a=>a==n)),Q(t,{[W]:null,[U]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[w,d,v,m,A]=x(t),L=z(a,(async()=>{await w();const a=await(async()=>h(i(await p($(r,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!O(a[1])))))(),t=await(async()=>o?await d(u,P):{})();return O(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,m(t)?{storeTableName:t}:t??{});let c,o;return(r.mode==Z?K:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(o??=s)||(a(),c=t,o=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=o=null,n(t)}),r)},ca="change",oa=(a,t,e)=>ra(a,e,((a,e=[])=>new u(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=()=>a();return t.on(ca,e),e}),(a=>t.off(ca,a)));export{oa as createSqlite3Persister};
1
+ const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),c=a=>a.length,o=a=>0==c(a),i=(a,t)=>a.filter(t),l=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),u=Promise,w=JSON.parse,d=(a,t)=>a instanceof t,E=a=>null==a,v=(a,t,e)=>E(a)?e?.():t(a),m=t=>a(t)==s,p=async a=>u.all(a),A=Object,L=A.keys,T=A.freeze,h=(a=[])=>A.fromEntries(a),f=(...a)=>A.assign({},...a),S=(a,t)=>(delete a[t],a),C=(a,t)=>r(A.entries(a),(([a,e])=>t(e,a))),N=a=>A.values(a),R=a=>c(L(a)),O=a=>(a=>d(a,A)&&a.constructor==A)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),_=a=>new Map(a),D=(a,t)=>a?.get(t),$=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),M=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=M)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>v(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)||E(a)?a:[a]),k="SELECT*FROM",J="FROM pragma_table_",Y="WHERE",q=Y+" schema='main'AND type='table'AND name!='sqlite_schema'",x=a=>{const t=_(),s=(a,e)=>!E(D(D(t,a),e)),l=async(s,i,l,u,w)=>{const d=j();C(w??{},(a=>r(L(a),(a=>{return t=d,e=a,t?.add(e);var t,e}))));const E=b(d);if(o(E)&&g(t,s)&&u)return await a("DROP TABLE"+B(s)),void M(t,s);if(o(E)||g(t,s)){const e=D(t,s),n=j((v=e,[...v?.keys()??[]]));await p([...r(E,(async t=>{I(n,t)||(await a(`ALTER TABLE${B(s)}ADD${B(t)}`),M(e,t,""))})),...l?r(b(n),(async t=>{t!=i&&(await a(`ALTER TABLE${B(s)}DROP${B(t)}`),M(e,t))})):[]])}else await a(`CREATE TABLE${B(s)}(${B(i)} PRIMARY KEY ON CONFLICT REPLACE${n(r(E,(a=>e+B(a))))});`),M(t,s,_([[i,""],...r(E,(a=>[a,""]))]));var v;if(o(E))await a("DELETE FROM"+B(s));else{const t=[],o=[],l=[];C(w,((a,e)=>{var s;y(t,`(?${s=c(E),",?".repeat(s)})`),y(o,e,...r(E,(t=>a[t]))),y(l,e)})),await a("INSERT INTO"+B(s)+"("+B(i)+n(r(E,(a=>e+B(a))))+")VALUES"+n(t,e),o),await a("DELETE FROM"+B(s)+Y+B(i)+"NOT IN("+n(r(l,(()=>"?")),e)+")",l)}};return[async()=>F(t,h(await p(r(await a("SELECT name "+J+"list "+q),(async({name:t})=>[t,h(r(await a("SELECT name,type "+J+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return M(t,e,F((c=_,g(n=t,r=e)||M(n,r,c()),D(n,r)),s,((a,t,e)=>{e!=D(a,t)&&M(a,t,e)}),((a,t)=>M(a,t))));var n,r,c}),((a,e)=>M(t,e))),async(t,e)=>{const n=s(t,e)?await a(k+B(t)+Y+B(e)+"=?",["_"]):[];return o(n)?null:S(n[0],e)},async(a,t,e,s)=>await l(a,t,!0,!0,{[e]:s}),async(t,e)=>s(t,e)?h(i(r(await a(k+B(t)),(a=>[a[e],S({...a},e)])),(([a,t])=>!E(a)&&!O(t)))):{},l]},z=(a,t,e,s,n)=>{let r,c,o,i=0,l=0,u=0;const w=[],d=async a=>{2!=i&&(i=1,await a(),i=0)},m={load:async(e,s)=>(await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),m),startAutoLoad:async(e={},n={})=>(m.stopAutoLoad(),await m.load(e,n),u=1,o=s((async(e,s)=>{await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),m),stopAutoLoad:()=>(u&&(n(o),o=void 0,u=0),m),save:async t=>(await m.schedule((async()=>{if(1!=i){i=2;try{await e(a.getContent,t)}catch{}i=0}})),m),startAutoSave:async()=>(await m.stopAutoSave().save(),r=a.addDidFinishTransactionListener(((a,t)=>{const e=t();m.save((()=>e))})),m),stopAutoSave:()=>(v(r,a.delListener),m),schedule:async(...a)=>(y(w,...a),await(async()=>{if(!l){for(l=1;!E((a=w,c=a.shift()));)try{await c()}catch{}l=0}var a})(),m),getStore:()=>a,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(m)},H="store",K=(a,e,s,n,{storeTableName:r=t})=>{const[c,o,i]=x(e),l=z(a,(async()=>(await c(),w((await o(r,P)??{})[H]))),(async a=>l.schedule(c,(async()=>{var t;await i(r,P,"_",{[H]:(t=a(),JSON.stringify(t,((a,t)=>{return d(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},U="rowIdColumnName",V="tableId",W="tableName",G={load:0,save:0,[W]:t+"_values"},Q=(a,t,e,s)=>{const n=_();return C(a,((a,r)=>{const c=l(N(f(t,m(a)?{[e]:a}:a)),0,R(t));E(c[0])||s(r,c[0])||M(n,r,c)})),n},X=(a,t,e,s,n)=>{const[r,c,[o,y,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=l(N(f(G,e)),0,R(G)),n=s[2];return[Q(a,{[V]:null,[U]:P},V,(a=>a==n)),Q(t,{[W]:null,[U]:P,deleteEmptyColumns:0,deleteEmptyTable:0},W,((a,t)=>t==n)),s]})(n),[w,d,v,m,A]=x(t),L=z(a,(async()=>{await w();const a=await(async()=>h(i(await p($(r,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!O(a[1])))))(),t=await(async()=>o?await d(u,P):{})();return O(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();L.schedule(w,...(a=>$(c,(([t,e,s,n],r)=>async()=>await A(t,e,s,n,a[r]))))(t),(a=>y?async()=>await v(u,P,"_",a):null)(e))}),e,s);return L},Z="json",aa="autoLoadIntervalSeconds",ta={mode:Z,[aa]:1},ea="pragma ",sa="data_version",na="schema_version",ra=(a,t,e,s,n)=>{const r=f(ta,m(t)?{storeTableName:t}:t??{});let c,o;return(r.mode==Z?K:X)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(ea+sa))[0][sa],s=(await e(ea+na))[0][na];t==(c??=t)&&s==(o??=s)||(a(),c=t,o=s)}catch{}}),1e3*r[aa]),s(a)]),(([a,t])=>{clearInterval(a),c=o=null,n(t)}),r)},ca="change",oa=(a,t,e)=>ra(a,e,((a,e=[])=>new u(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=()=>a();return t.on(ca,e),e}),(a=>t.off(ca,a)));export{oa as createSqlite3Persister};
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),o=a=>a.length,c=a=>0==o(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,E=(a,t)=>a instanceof t,p=a=>null==a,v=(a,t,e)=>p(a)?e?.():t(a),f=a=>t(a)==n,m=async a=>d.all(a),T=Object,A=T.keys,h=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),C=(a,t)=>(delete a[t],a),N=(a,t)=>r(T.entries(a),(([a,e])=>t(e,a))),O=a=>T.values(a),R=a=>o(A(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>p(e)?(_(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(N(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!p(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x=a=>new Set(Array.isArray(a)||p(a)?a:[a]),q="SELECT*FROM",W="FROM pragma_table_",k="WHERE",J=k+" schema='main'AND type='table'AND name!='sqlite_schema'",U=a=>{const t=D(),e=(a,e)=>!p($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=x();N(d??{},(a=>r(A(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&g(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||g(t,e)){const s=$(t,e),i=x((p=s,[...p?.keys()??[]]));await m([...r(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?r(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(r(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...r(E,(a=>[a,""]))]));var p;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];N(d,((a,e)=>{var s;u(t,`(?${s=o(E),",?".repeat(s)})`),u(c,e,...r(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(r(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+k+j(n)+"NOT IN("+i(r(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(r(await a("SELECT name "+W+"list "+J),(async({name:t})=>[t,L(r(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((r=D,g(n=t,i=e)||P(n,i,r()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,r}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(q+j(t)+k+j(s)+"=?",["_"]):[];return c(n)?null:C(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(r(await a(q+j(t)),(a=>[a[s],C(a,s)])),(([a,t])=>!p(a)&&!b(t)))):{},n]},Y=(a,t,e,s,n)=>{let i,r,o,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,o=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(o),o=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(v(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!p((a=d,r=a.shift()));)try{await r()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h(E)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[r,o,c]=U(t),l=Y(a,(async()=>(await r(),w((await o(i,B)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await c(i,B,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",V="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return N(a,((a,i)=>{const r=y(O(S(t,f(a)?{[e]:a}:a)),0,R(t));p(r[0])||s(i,r[0])||P(n,i,r)})),n},Z=(a,t,e,s,n)=>{const[i,r,[o,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(O(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[V]:null,[K]:B},V,(a=>a==n)),X(t,{[G]:null,[K]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,v,f]=U(t),T=Y(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?await w(u,B):{})();return b(a)&&p(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(r,(([t,e,s,n],i)=>async()=>await f(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",ra=(a,t,e,s,n)=>{const i=S(ea,f(t)?{storeTableName:t}:t??{});let r,o;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(r??=t)&&s==(o??=s)||(a(),r=t,o=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),r=o=null,n(t)}),i)};a.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(a=>a()))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),r=(a,t)=>a.map(t),o=a=>a.length,c=a=>0==o(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,E=(a,t)=>a instanceof t,p=a=>null==a,v=(a,t,e)=>p(a)?e?.():t(a),f=a=>t(a)==n,m=async a=>d.all(a),T=Object,A=T.keys,h=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),C=(a,t)=>(delete a[t],a),N=(a,t)=>r(T.entries(a),(([a,e])=>t(e,a))),O=a=>T.values(a),R=a=>o(A(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),g=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>r([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>p(e)?(_(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(N(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!p(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x=a=>new Set(Array.isArray(a)||p(a)?a:[a]),q="SELECT*FROM",W="FROM pragma_table_",k="WHERE",J=k+" schema='main'AND type='table'AND name!='sqlite_schema'",U=a=>{const t=D(),e=(a,e)=>!p($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=x();N(d??{},(a=>r(A(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&g(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||g(t,e)){const s=$(t,e),i=x((p=s,[...p?.keys()??[]]));await m([...r(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?r(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(r(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...r(E,(a=>[a,""]))]));var p;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];N(d,((a,e)=>{var s;u(t,`(?${s=o(E),",?".repeat(s)})`),u(c,e,...r(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(r(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+k+j(n)+"NOT IN("+i(r(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(r(await a("SELECT name "+W+"list "+J),(async({name:t})=>[t,L(r(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((r=D,g(n=t,i=e)||P(n,i,r()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,r}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(q+j(t)+k+j(s)+"=?",["_"]):[];return c(n)?null:C(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(r(await a(q+j(t)),(a=>[a[s],C({...a},s)])),(([a,t])=>!p(a)&&!b(t)))):{},n]},Y=(a,t,e,s,n)=>{let i,r,o,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,o=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(o),o=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(v(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!p((a=d,r=a.shift()));)try{await r()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h(E)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[r,o,c]=U(t),l=Y(a,(async()=>(await r(),w((await o(i,B)??{})[z]))),(async a=>l.schedule(r,(async()=>{var t;await c(i,B,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",V="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return N(a,((a,i)=>{const r=y(O(S(t,f(a)?{[e]:a}:a)),0,R(t));p(r[0])||s(i,r[0])||P(n,i,r)})),n},Z=(a,t,e,s,n)=>{const[i,r,[o,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(O(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[V]:null,[K]:B},V,(a=>a==n)),X(t,{[G]:null,[K]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,v,f]=U(t),T=Y(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>o?await w(u,B):{})();return b(a)&&p(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(r,(([t,e,s,n],i)=>async()=>await f(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",ra=(a,t,e,s,n)=>{const i=S(ea,f(t)?{storeTableName:t}:t??{});let r,o;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(r??=t)&&s==(o??=s)||(a(),r=t,o=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),r=o=null,n(t)}),i)};a.createCrSqliteWasmPersister=(a,t,e)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate((()=>a()))),(a=>a()))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),r=a=>a.length,c=a=>0==r(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,p=(a,t)=>a instanceof t,E=a=>null==a,m=(a,t,e)=>E(a)?e?.():t(a),v=a=>t(a)==n,f=async a=>d.all(a),h=Object,T=h.keys,A=h.freeze,L=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),b=(a,t)=>(delete a[t],a),R=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),C=a=>h.values(a),N=a=>r(T(a)),_=a=>(a=>p(a,h)&&a.constructor==h)(a)&&0==N(a),g=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>m(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",q=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),k="SELECT*FROM",x="FROM pragma_table_",W="WHERE",J=W+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=D(),e=(a,e)=>!E($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=B();R(d??{},(a=>o(T(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const p=O(w);if(c(p)&&g(t,e)&&y)return await a("DROP TABLE"+q(e)),void P(t,e);if(c(p)||g(t,e)){const s=$(t,e),i=B((E=s,[...E?.keys()??[]]));await f([...o(p,(async t=>{I(i,t)||(await a(`ALTER TABLE${q(e)}ADD${q(t)}`),P(s,t,""))})),...l?o(O(i),(async t=>{t!=n&&(await a(`ALTER TABLE${q(e)}DROP${q(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${q(e)}(${q(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+q(a))))});`),P(t,e,D([[n,""],...o(p,(a=>[a,""]))]));var E;if(c(p))await a("DELETE FROM"+q(e));else{const t=[],c=[],l=[];R(d,((a,e)=>{var s;u(t,`(?${s=r(p),",?".repeat(s)})`),u(c,e,...o(p,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+q(e)+"("+q(n)+i(o(p,(a=>s+q(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+q(e)+W+q(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await f(o(await a("SELECT name "+x+"list "+J),(async({name:t})=>[t,L(o(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,g(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(k+q(t)+W+q(s)+"=?",["_"]):[];return c(n)?null:b(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(k+q(t)),(a=>[a[s],b(a,s)])),(([a,t])=>!E(a)&&!_(t)))):{},n]},Y=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},p={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),p),save:async t=>(await p.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(m(i,a.delListener),p),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!E((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(p)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=V(t),l=Y(a,(async()=>(await o(),w((await r(i,j)??{})[z]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,j,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return p(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",U="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return R(a,((a,i)=>{const o=y(C(S(t,v(a)?{[e]:a}:a)),0,N(t));E(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(C(S(Q,e)),0,N(Q)),n=s[2];return[X(a,{[U]:null,[K]:j},U,(a=>a==n)),X(t,{[G]:null,[K]:j,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,p,m,v]=V(t),h=Y(a,(async()=>{await d();const a=await(async()=>L(l(await f(M(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?await w(u,j):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await p(u,j,"_",a):null)(e))}),e,s);return h},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)};a.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,(()=>a()),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),r=a=>a.length,c=a=>0==r(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,p=(a,t)=>a instanceof t,E=a=>null==a,m=(a,t,e)=>E(a)?e?.():t(a),v=a=>t(a)==n,f=async a=>d.all(a),h=Object,T=h.keys,A=h.freeze,L=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),b=(a,t)=>(delete a[t],a),R=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),C=a=>h.values(a),N=a=>r(T(a)),_=a=>(a=>p(a,h)&&a.constructor==h)(a)&&0==N(a),g=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],I=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>E(e)?(I(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(R(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!E(((a,t)=>m(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),j="_id",q=a=>`"${a.replace(/"/g,'""')}"`,B=a=>new Set(Array.isArray(a)||E(a)?a:[a]),k="SELECT*FROM",x="FROM pragma_table_",W="WHERE",J=W+" schema='main'AND type='table'AND name!='sqlite_schema'",V=a=>{const t=D(),e=(a,e)=>!E($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=B();R(d??{},(a=>o(T(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const p=O(w);if(c(p)&&g(t,e)&&y)return await a("DROP TABLE"+q(e)),void P(t,e);if(c(p)||g(t,e)){const s=$(t,e),i=B((E=s,[...E?.keys()??[]]));await f([...o(p,(async t=>{I(i,t)||(await a(`ALTER TABLE${q(e)}ADD${q(t)}`),P(s,t,""))})),...l?o(O(i),(async t=>{t!=n&&(await a(`ALTER TABLE${q(e)}DROP${q(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${q(e)}(${q(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(p,(a=>s+q(a))))});`),P(t,e,D([[n,""],...o(p,(a=>[a,""]))]));var E;if(c(p))await a("DELETE FROM"+q(e));else{const t=[],c=[],l=[];R(d,((a,e)=>{var s;u(t,`(?${s=r(p),",?".repeat(s)})`),u(c,e,...o(p,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+q(e)+"("+q(n)+i(o(p,(a=>s+q(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+q(e)+W+q(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await f(o(await a("SELECT name "+x+"list "+J),(async({name:t})=>[t,L(o(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,g(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(k+q(t)+W+q(s)+"=?",["_"]):[];return c(n)?null:b(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(k+q(t)),(a=>[a[s],b({...a},s)])),(([a,t])=>!E(a)&&!_(t)))):{},n]},Y=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},p={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),p),startAutoLoad:async(e={},n={})=>(p.stopAutoLoad(),await p.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),p),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),p),save:async t=>(await p.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),p),startAutoSave:async()=>(await p.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();p.save((()=>e))})),p),stopAutoSave:()=>(m(i,a.delListener),p),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!E((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),p),getStore:()=>a,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(p)},z="store",H=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=V(t),l=Y(a,(async()=>(await o(),w((await r(i,j)??{})[z]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,j,"_",{[z]:(t=a(),JSON.stringify(t,((a,t)=>{return p(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},K="rowIdColumnName",U="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return R(a,((a,i)=>{const o=y(C(S(t,v(a)?{[e]:a}:a)),0,N(t));E(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(C(S(Q,e)),0,N(Q)),n=s[2];return[X(a,{[U]:null,[K]:j},U,(a=>a==n)),X(t,{[G]:null,[K]:j,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,p,m,v]=V(t),h=Y(a,(async()=>{await d();const a=await(async()=>L(l(await f(M(i,(async([a,t],e)=>[a,await m(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>r?await w(u,j):{})();return _(a)&&E(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();h.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await p(u,j,"_",a):null)(e))}),e,s);return h},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?H:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)};a.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,(()=>a()),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),r=a=>a.length,c=a=>0==r(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),v=a=>t(a)==n,m=async a=>d.all(a),T=Object,h=T.keys,A=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),g=(a,t)=>(delete a[t],a),C=(a,t)=>o(T.entries(a),(([a,e])=>t(e,a))),N=a=>T.values(a),R=a=>r(h(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),O=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(_(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,q=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x="SELECT*FROM",k="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",z=a=>{const t=D(),e=(a,e)=>!f($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=q();C(d??{},(a=>o(h(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&O(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||O(t,e)){const s=$(t,e),i=q((f=s,[...f?.keys()??[]]));await m([...o(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?o(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...o(E,(a=>[a,""]))]));var f;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];C(d,((a,e)=>{var s;u(t,`(?${s=r(E),",?".repeat(s)})`),u(c,e,...o(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(o(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+J+j(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(o(await a("SELECT name "+k+"list "+Y),(async({name:t})=>[t,L(o(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,O(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(x+j(t)+J+j(s)+"=?",["_"]):[];return c(n)?null:g(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(x+j(t)),(a=>[a[s],g(a,s)])),(([a,t])=>!f(a)&&!b(t)))):{},n]},H=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!f((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(E)},K="store",U=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=z(t),l=H(a,(async()=>(await o(),w((await r(i,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,B,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},V="rowIdColumnName",W="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return C(a,((a,i)=>{const o=y(N(S(t,v(a)?{[e]:a}:a)),0,R(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(N(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[W]:null,[V]:B},W,(a=>a==n)),X(t,{[G]:null,[V]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,p,v]=z(t),T=H(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>r?await w(u,B):{})();return b(a)&&f(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?U:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)},ra="change";a.createSqlite3Persister=(a,t,e)=>oa(a,e,((a,e=[])=>new d(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=()=>a();return t.on(ra,e),e}),(a=>t.off(ra,a)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),r=a=>a.length,c=a=>0==r(a),l=(a,t)=>a.filter(t),y=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,w=JSON.parse,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),v=a=>t(a)==n,m=async a=>d.all(a),T=Object,h=T.keys,A=T.freeze,L=(a=[])=>T.fromEntries(a),S=(...a)=>T.assign({},...a),g=(a,t)=>(delete a[t],a),C=(a,t)=>o(T.entries(a),(([a,e])=>t(e,a))),N=a=>T.values(a),R=a=>r(h(a)),b=a=>(a=>E(a,T)&&a.constructor==T)(a)&&0==R(a),O=(a,t)=>a?.has(t)??!1,I=a=>[...a?.values()??[]],_=(a,t)=>a?.delete(t),D=a=>new Map(a),$=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(_(a,t),a):a?.set(t,e),F=(a,t,e,s=P)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),B="_id",j=a=>`"${a.replace(/"/g,'""')}"`,q=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x="SELECT*FROM",k="FROM pragma_table_",J="WHERE",Y=J+" schema='main'AND type='table'AND name!='sqlite_schema'",z=a=>{const t=D(),e=(a,e)=>!f($($(t,a),e)),n=async(e,n,l,y,d)=>{const w=q();C(d??{},(a=>o(h(a),(a=>{return t=w,e=a,t?.add(e);var t,e}))));const E=I(w);if(c(E)&&O(t,e)&&y)return await a("DROP TABLE"+j(e)),void P(t,e);if(c(E)||O(t,e)){const s=$(t,e),i=q((f=s,[...f?.keys()??[]]));await m([...o(E,(async t=>{_(i,t)||(await a(`ALTER TABLE${j(e)}ADD${j(t)}`),P(s,t,""))})),...l?o(I(i),(async t=>{t!=n&&(await a(`ALTER TABLE${j(e)}DROP${j(t)}`),P(s,t))})):[]])}else await a(`CREATE TABLE${j(e)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(E,(a=>s+j(a))))});`),P(t,e,D([[n,""],...o(E,(a=>[a,""]))]));var f;if(c(E))await a("DELETE FROM"+j(e));else{const t=[],c=[],l=[];C(d,((a,e)=>{var s;u(t,`(?${s=r(E),",?".repeat(s)})`),u(c,e,...o(E,(t=>a[t]))),u(l,e)})),await a("INSERT INTO"+j(e)+"("+j(n)+i(o(E,(a=>s+j(a))))+")VALUES"+i(t,s),c),await a("DELETE FROM"+j(e)+J+j(n)+"NOT IN("+i(o(l,(()=>"?")),s)+")",l)}};return[async()=>F(t,L(await m(o(await a("SELECT name "+k+"list "+Y),(async({name:t})=>[t,L(o(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,e,s)=>{return P(t,e,F((o=D,O(n=t,i=e)||P(n,i,o()),$(n,i)),s,((a,t,e)=>{e!=$(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,e)=>P(t,e))),async(t,s)=>{const n=e(t,s)?await a(x+j(t)+J+j(s)+"=?",["_"]):[];return c(n)?null:g(n[0],s)},async(a,t,e,s)=>await n(a,t,!0,!0,{[e]:s}),async(t,s)=>e(t,s)?L(l(o(await a(x+j(t)),(a=>[a[s],g({...a},s)])),(([a,t])=>!f(a)&&!b(t)))):{},n]},H=(a,t,e,s,n)=>{let i,o,r,c=0,l=0,y=0;const d=[],w=async a=>{2!=c&&(c=1,await a(),c=0)},E={load:async(e,s)=>(await w((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),E),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,r=s((async(e,s)=>{await w((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}}))})),E),stopAutoLoad:()=>(y&&(n(r),r=void 0,y=0),E),save:async t=>(await E.schedule((async()=>{if(1!=c){c=2;try{await e(a.getContent,t)}catch{}c=0}})),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const e=t();E.save((()=>e))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(d,...a),await(async()=>{if(!l){for(l=1;!f((a=d,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(E)},K="store",U=(a,t,s,n,{storeTableName:i=e})=>{const[o,r,c]=z(t),l=H(a,(async()=>(await o(),w((await r(i,B)??{})[K]))),(async a=>l.schedule(o,(async()=>{var t;await c(i,B,"_",{[K]:(t=a(),JSON.stringify(t,((a,t)=>{return E(t,Map)?(e=(a,[t,e])=>(a[t]=e,a),s={},[...t].reduce(e,s)):t;var e,s})))})}))),s,n);return l},V="rowIdColumnName",W="tableId",G="tableName",Q={load:0,save:0,[G]:e+"_values"},X=(a,t,e,s)=>{const n=D();return C(a,((a,i)=>{const o=y(N(S(t,v(a)?{[e]:a}:a)),0,R(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},Z=(a,t,e,s,n)=>{const[i,o,[r,c,u]]=(({tables:{load:a={},save:t={}}={},values:e={}})=>{const s=y(N(S(Q,e)),0,R(Q)),n=s[2];return[X(a,{[W]:null,[V]:B},W,(a=>a==n)),X(t,{[G]:null,[V]:B,deleteEmptyColumns:0,deleteEmptyTable:0},G,((a,t)=>t==n)),s]})(n),[d,w,E,p,v]=z(t),T=H(a,(async()=>{await d();const a=await(async()=>L(l(await m(M(i,(async([a,t],e)=>[a,await p(e,t)]))),(a=>!b(a[1])))))(),t=await(async()=>r?await w(u,B):{})();return b(a)&&f(t)?void 0:[a,t]}),(async a=>{const[t,e]=a();T.schedule(d,...(a=>M(o,(([t,e,s,n],i)=>async()=>await v(t,e,s,n,a[i]))))(t),(a=>c?async()=>await E(u,B,"_",a):null)(e))}),e,s);return T},aa="json",ta="autoLoadIntervalSeconds",ea={mode:aa,[ta]:1},sa="pragma ",na="data_version",ia="schema_version",oa=(a,t,e,s,n)=>{const i=S(ea,v(t)?{storeTableName:t}:t??{});let o,r;return(i.mode==aa?U:Z)(a,e,(a=>[setInterval((async()=>{try{const t=(await e(sa+na))[0][na],s=(await e(sa+ia))[0][ia];t==(o??=t)&&s==(r??=s)||(a(),o=t,r=s)}catch{}}),1e3*i[ta]),s(a)]),(([a,t])=>{clearInterval(a),o=r=null,n(t)}),i)},ra="change";a.createSqlite3Persister=(a,t,e)=>oa(a,e,((a,e=[])=>new d(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=()=>a();return t.on(ra,e),e}),(a=>t.off(ra,a)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterSqlite3={});
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",o=n(""),r=(e,n="")=>e.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=JSON.parse,f=(e,n)=>e instanceof n,h=e=>null==e,p=(e,n,t)=>h(e)?null==t?void 0:t():n(e),m=e=>n(e)==o,E=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},T=Object,A=T.keys,L=T.freeze,P=(e=[])=>T.fromEntries(e),x=(...e)=>T.assign({},...e),w=(e,n)=>(delete e[n],e),S=(e,n)=>i(T.entries(e),(([e,t])=>n(t,e))),C=e=>T.values(e),N=e=>u(A(e)),O=e=>(e=>f(e,T)&&e.constructor==T)(e)&&0==N(e),R=(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:[]]},g=(e,n)=>null==e?void 0:e.delete(n),I=e=>new Map(e),_=(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)))},$=(e,n,t)=>h(t)?(g(e,n),e):null==e?void 0:e.set(n,t),M=(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)=>!h(((e,n)=>p(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),F="_id",B=e=>`"${e.replace(/"/g,'""')}"`,j=e=>new Set(Array.isArray(e)||h(e)?e:[e]);var q=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const W="SELECT*FROM",k="FROM pragma_table_",J="WHERE",U=J+" schema='main'AND type='table'AND name!='sqlite_schema'",Y=e=>{const n=I(),t=(e,t)=>!h(_(_(n,e),t)),o=(t,o,d,s,v)=>q(void 0,null,(function*(){const y=j();S(null!=v?v:{},(e=>i(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=b(y);if(a(f)&&R(n,t)&&s)return yield e("DROP TABLE"+B(t)),void $(n,t);if(a(f)||R(n,t)){const l=_(n,t),r=j([...null!=(p=null==(h=l)?void 0:h.keys())?p:[]]);yield E([...i(f,(n=>q(void 0,null,(function*(){g(r,n)||(yield e(`ALTER TABLE${B(t)}ADD${B(n)}`),$(l,n,""))})))),...d?i(b(r),(n=>q(void 0,null,(function*(){n!=o&&(yield e(`ALTER TABLE${B(t)}DROP${B(n)}`),$(l,n))})))):[]])}else yield e(`CREATE TABLE${B(t)}(${B(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(f,(e=>l+B(e))))});`),$(n,t,I([[o,""],...i(f,(e=>[e,""]))]));var h,p;if(a(f))yield e("DELETE FROM"+B(t));else{const n=[],a=[],d=[];S(v,((e,t)=>{var l;c(n,`(?${l=u(f),",?".repeat(l)})`),c(a,t,...i(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+B(t)+"("+B(o)+r(i(f,(e=>l+B(e))))+")VALUES"+r(n,l),a),yield e("DELETE FROM"+B(t)+J+B(o)+"NOT IN("+r(i(d,(()=>"?")),l)+")",d)}}));return[()=>q(void 0,null,(function*(){return M(n,P(yield E(i(yield e("SELECT name "+k+"list "+U),(n=>q(void 0,[n],(function*({name:n}){return[n,P(i(yield e("SELECT name,type "+k+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return $(n,t,M((i=I,R(o=n,r=t)||$(o,r,i()),_(o,r)),l,((e,n,t)=>{t!=_(e,n)&&$(e,n,t)}),((e,n)=>$(e,n))));var o,r,i}),((e,t)=>$(n,t)))})),(n,l)=>q(void 0,null,(function*(){const o=t(n,l)?yield e(W+B(n)+J+B(l)+"=?",["_"]):[];return a(o)?null:w(o[0],l)})),(e,n,t,l)=>q(void 0,null,(function*(){return yield o(e,n,!0,!0,{[t]:l})})),(n,l)=>q(void 0,null,(function*(){return t(n,l)?P(d(i(yield e(W+B(n)),(e=>[e[l],w(e,l)])),(([e,n])=>!h(e)&&!O(n)))):{}})),o]};var 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 H=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>z(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),f={load:(t,l)=>z(void 0,null,(function*(){return yield y((()=>z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),f})),startAutoLoad:(...t)=>z(void 0,[...t],(function*(t={},o={}){return f.stopAutoLoad(),yield f.load(t,o),s=1,u=l(((t,l)=>z(void 0,null,(function*(){yield y((()=>z(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),f})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),f),save:n=>z(void 0,null,(function*(){return yield f.schedule((()=>z(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),f})),startAutoSave:()=>z(void 0,null,(function*(){return yield f.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const t=n();f.save((()=>t))})),f})),stopAutoSave:()=>(p(r,e.delListener),f),schedule:(...e)=>z(void 0,null,(function*(){return c(v,...e),yield z(void 0,null,(function*(){if(!d){for(d=1;!h((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(f)};var K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="store",G=(e,n,l,o,{storeTableName:r=t})=>{const[i,u,a]=Y(n),d=H(e,(()=>K(void 0,null,(function*(){var e;return yield i(),y((null!=(e=yield u(r,F))?e:{})[V])}))),(e=>K(void 0,null,(function*(){return d.schedule(i,(()=>K(void 0,null,(function*(){var n;yield a(r,F,"_",{[V]:(n=e(),JSON.stringify(n,((e,n)=>{return f(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,o);return d},Q="rowIdColumnName",X="tableId",Z="tableName",ee={load:0,save:0,[Z]:t+"_values"},ne=(e,n,t,l)=>{const o=I();return S(e,((e,r)=>{const i=s(C(x(n,m(e)?{[t]:e}:e)),0,N(n));h(i[0])||l(r,i[0])||$(o,r,i)})),o};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le=(e,n,t,l,o)=>{const[r,i,[u,a,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=s(C(x(ee,t)),0,N(ee)),o=l[2];return[ne(e,{[X]:null,[Q]:F},X,(e=>e==o)),ne(n,{[Z]:null,[Q]:F,deleteEmptyColumns:0,deleteEmptyTable:0},Z,((e,n)=>n==o)),l]})(o),[v,y,f,p,m]=Y(n),T=H(e,(()=>te(void 0,null,(function*(){yield v();const e=yield te(void 0,null,(function*(){return P(d(yield E(D(r,((e,n)=>te(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>!O(e[1]))))})),n=yield te(void 0,null,(function*(){return u?yield y(c,F):{}}));return O(e)&&h(n)?void 0:[e,n]}))),(e=>te(void 0,null,(function*(){const[n,t]=e();T.schedule(v,...(e=>D(i,(([n,t,l,o],r)=>()=>te(void 0,null,(function*(){return yield m(n,t,l,o,e[r])})))))(n),(e=>a?()=>te(void 0,null,(function*(){return yield f(c,F,"_",e)})):null)(t))}))),t,l);return T},oe="json",re="autoLoadIntervalSeconds",ie={mode:oe,[re]:1},ue="pragma ",ae="data_version",de="schema_version",se=(e,n,t,l,o)=>{const r=x(ie,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(r.mode==oe?G:le)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ue+ae))[0][ae],l=(yield t(ue+de))[0][de];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(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}),1e3*r[re]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),r)};e.createCrSqliteWasmPersister=(e,n,t)=>se(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((()=>e()))),(e=>e()))},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterCrSqliteWasm={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",r=n(""),o=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),s=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),v=Promise,y=JSON.parse,f=(e,n)=>e instanceof n,p=e=>null==e,h=(e,n,t)=>p(e)?null==t?void 0:t():n(e),m=e=>n(e)==r,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},P=Object,T=P.keys,A=P.freeze,b=(e=[])=>P.fromEntries(e),L=(...e)=>P.assign({},...e),w=(e,n)=>(delete e[n],e),O=(e,n)=>i(P.entries(e),(([e,t])=>n(t,e))),x=e=>P.values(e),S=e=>u(T(e)),C=e=>(e=>f(e,P)&&e.constructor==P)(e)&&0==S(e),g=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),I=e=>new Map(e),_=(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)))},$=(e,n,t)=>p(t)?(R(e,n),e):null==e?void 0:e.set(n,t),j=(e,n,t,l=$)=>(O(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!p(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||p(e)?e:[e]);var q=Object.defineProperty,W=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,U=(e,n,t)=>n in e?q(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)&&U(e,t,n[t]);if(W)for(var t of W(n))J.call(n,t)&&U(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 H="SELECT*FROM",K="FROM pragma_table_",V="WHERE",G=V+" schema='main'AND type='table'AND name!='sqlite_schema'",Q=e=>{const n=I(),t=(e,t)=>!p(_(_(n,e),t)),r=(t,r,d,s,v)=>z(void 0,null,(function*(){const y=B();O(null!=v?v:{},(e=>i(T(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(a(f)&&g(n,t)&&s)return yield e("DROP TABLE"+F(t)),void $(n,t);if(a(f)||g(n,t)){const l=_(n,t),o=B([...null!=(h=null==(p=l)?void 0:p.keys())?h:[]]);yield E([...i(f,(n=>z(void 0,null,(function*(){R(o,n)||(yield e(`ALTER TABLE${F(t)}ADD${F(n)}`),$(l,n,""))})))),...d?i(N(o),(n=>z(void 0,null,(function*(){n!=r&&(yield e(`ALTER TABLE${F(t)}DROP${F(n)}`),$(l,n))})))):[]])}else yield e(`CREATE TABLE${F(t)}(${F(r)} PRIMARY KEY ON CONFLICT REPLACE${o(i(f,(e=>l+F(e))))});`),$(n,t,I([[r,""],...i(f,(e=>[e,""]))]));var p,h;if(a(f))yield e("DELETE FROM"+F(t));else{const n=[],a=[],d=[];O(v,((e,t)=>{var l;c(n,`(?${l=u(f),",?".repeat(l)})`),c(a,t,...i(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+F(t)+"("+F(r)+o(i(f,(e=>l+F(e))))+")VALUES"+o(n,l),a),yield e("DELETE FROM"+F(t)+V+F(r)+"NOT IN("+o(i(d,(()=>"?")),l)+")",d)}}));return[()=>z(void 0,null,(function*(){return j(n,b(yield E(i(yield e("SELECT name "+K+"list "+G),(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,t,l)=>{return $(n,t,j((i=I,g(r=n,o=t)||$(r,o,i()),_(r,o)),l,((e,n,t)=>{t!=_(e,n)&&$(e,n,t)}),((e,n)=>$(e,n))));var r,o,i}),((e,t)=>$(n,t)))})),(n,l)=>z(void 0,null,(function*(){const r=t(n,l)?yield e(H+F(n)+V+F(l)+"=?",["_"]):[];return a(r)?null:w(r[0],l)})),(e,n,t,l)=>z(void 0,null,(function*(){return yield r(e,n,!0,!0,{[t]:l})})),(n,l)=>z(void 0,null,(function*(){return t(n,l)?b(d(i(yield e(H+F(n)),(e=>[e[l],w(Y({},e),l)])),(([e,n])=>!p(e)&&!C(n)))):{}})),r]};var X=(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=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],y=e=>X(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),f={load:(t,l)=>X(void 0,null,(function*(){return yield y((()=>X(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),f})),startAutoLoad:(...t)=>X(void 0,[...t],(function*(t={},r={}){return f.stopAutoLoad(),yield f.load(t,r),s=1,u=l(((t,l)=>X(void 0,null,(function*(){yield y((()=>X(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){}}))))})))),f})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),f),save:n=>X(void 0,null,(function*(){return yield f.schedule((()=>X(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),f})),startAutoSave:()=>X(void 0,null,(function*(){return yield f.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();f.save((()=>t))})),f})),stopAutoSave:()=>(h(o,e.delListener),f),schedule:(...e)=>X(void 0,null,(function*(){return c(v,...e),yield X(void 0,null,(function*(){if(!d){for(d=1;!p((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return A(f)};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="store",te=(e,n,l,r,{storeTableName:o=t})=>{const[i,u,a]=Q(n),d=Z(e,(()=>ee(void 0,null,(function*(){var e;return yield i(),y((null!=(e=yield u(o,M))?e:{})[ne])}))),(e=>ee(void 0,null,(function*(){return d.schedule(i,(()=>ee(void 0,null,(function*(){var n;yield a(o,M,"_",{[ne]:(n=e(),JSON.stringify(n,((e,n)=>{return f(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},le="rowIdColumnName",re="tableId",oe="tableName",ie={load:0,save:0,[oe]:t+"_values"},ue=(e,n,t,l)=>{const r=I();return O(e,((e,o)=>{const i=s(x(L(n,m(e)?{[t]:e}:e)),0,S(n));p(i[0])||l(o,i[0])||$(r,o,i)})),r};var ae=(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 de=(e,n,t,l,r)=>{const[o,i,[u,a,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=s(x(L(ie,t)),0,S(ie)),r=l[2];return[ue(e,{[re]:null,[le]:M},re,(e=>e==r)),ue(n,{[oe]:null,[le]:M,deleteEmptyColumns:0,deleteEmptyTable:0},oe,((e,n)=>n==r)),l]})(r),[v,y,f,h,m]=Q(n),P=Z(e,(()=>ae(void 0,null,(function*(){yield v();const e=yield ae(void 0,null,(function*(){return b(d(yield E(D(o,((e,n)=>ae(void 0,[e,n],(function*([e,n],t){return[e,yield h(t,n)]}))))),(e=>!C(e[1]))))})),n=yield ae(void 0,null,(function*(){return u?yield y(c,M):{}}));return C(e)&&p(n)?void 0:[e,n]}))),(e=>ae(void 0,null,(function*(){const[n,t]=e();P.schedule(v,...(e=>D(i,(([n,t,l,r],o)=>()=>ae(void 0,null,(function*(){return yield m(n,t,l,r,e[o])})))))(n),(e=>a?()=>ae(void 0,null,(function*(){return yield f(c,M,"_",e)})):null)(t))}))),t,l);return P},se="json",ce="autoLoadIntervalSeconds",ve={mode:se,[ce]:1},ye="pragma ",fe="data_version",pe="schema_version",he=(e,n,t,l,r)=>{const o=L(ve,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==se?te:de)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ye+fe))[0][fe],l=(yield t(ye+pe))[0][pe];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[ce]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};e.createCrSqliteWasmPersister=(e,n,t)=>he(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((()=>e()))),(e=>e()))},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterCrSqliteWasm={});
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="tinybase",l=",",o=t(""),r=(e,t="")=>e.join(t),i=(e,t)=>e.map(t),u=e=>e.length,a=e=>0==u(e),d=(e,t)=>e.filter(t),s=(e,t,n)=>e.slice(t,n),c=(e,...t)=>e.push(...t),v=Promise,y=JSON.parse,f=(e,t)=>e instanceof t,p=e=>null==e,h=(e,t,n)=>p(e)?null==n?void 0:n():t(e),m=e=>t(e)==o,E=e=>{return t=function*(){return v.all(e)},new Promise(((e,n)=>{var l=e=>{try{r(t.next(e))}catch(e){n(e)}},o=e=>{try{r(t.throw(e))}catch(e){n(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(l,o);r((t=t.apply(void 0,null)).next())}));var t},b=Object,P=b.keys,T=b.freeze,A=(e=[])=>b.fromEntries(e),w=(...e)=>b.assign({},...e),L=(e,t)=>(delete e[t],e),O=(e,t)=>i(b.entries(e),(([e,n])=>t(n,e))),x=e=>b.values(e),S=e=>u(P(e)),g=e=>(e=>f(e,b)&&e.constructor==b)(e)&&0==S(e),R=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},C=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},N=(e,t)=>null==e?void 0:e.delete(t),_=e=>new Map(e),I=(e,t)=>null==e?void 0:e.get(t),j=(e,t)=>{var n;return i([...null!=(n=null==e?void 0:e.entries())?n:[]],(([e,n])=>t(n,e)))},D=(e,t,n)=>p(n)?(N(e,t),e):null==e?void 0:e.set(t,n),$=(e,t,n,l=D)=>(O(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)=>!p(((e,t)=>h(e,(e=>e[t])))(e,t)))(t,n)?0:l(e,n))),e),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,q=e=>new Set(Array.isArray(e)||p(e)?e:[e]);var B=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{u(n.next(e))}catch(e){o(e)}},i=e=>{try{u(n.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((n=n.apply(e,t)).next())}));const k="SELECT*FROM",W="FROM pragma_table_",J="WHERE",V=J+" schema='main'AND type='table'AND name!='sqlite_schema'",Y=e=>{const t=_(),n=(e,n)=>!p(I(I(t,e),n)),o=(n,o,d,s,v)=>B(void 0,null,(function*(){const y=q();O(null!=v?v:{},(e=>i(P(e),(e=>{return n=e,null==(t=y)?void 0:t.add(n);var t,n}))));const f=C(y);if(a(f)&&R(t,n)&&s)return yield e("DROP TABLE"+F(n)),void D(t,n);if(a(f)||R(t,n)){const l=I(t,n),r=q([...null!=(h=null==(p=l)?void 0:p.keys())?h:[]]);yield E([...i(f,(t=>B(void 0,null,(function*(){N(r,t)||(yield e(`ALTER TABLE${F(n)}ADD${F(t)}`),D(l,t,""))})))),...d?i(C(r),(t=>B(void 0,null,(function*(){t!=o&&(yield e(`ALTER TABLE${F(n)}DROP${F(t)}`),D(l,t))})))):[]])}else yield e(`CREATE TABLE${F(n)}(${F(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(f,(e=>l+F(e))))});`),D(t,n,_([[o,""],...i(f,(e=>[e,""]))]));var p,h;if(a(f))yield e("DELETE FROM"+F(n));else{const t=[],a=[],d=[];O(v,((e,n)=>{var l;c(t,`(?${l=u(f),",?".repeat(l)})`),c(a,n,...i(f,(t=>e[t]))),c(d,n)})),yield e("INSERT INTO"+F(n)+"("+F(o)+r(i(f,(e=>l+F(e))))+")VALUES"+r(t,l),a),yield e("DELETE FROM"+F(n)+J+F(o)+"NOT IN("+r(i(d,(()=>"?")),l)+")",d)}}));return[()=>B(void 0,null,(function*(){return $(t,A(yield E(i(yield e("SELECT name "+W+"list "+V),(t=>B(void 0,[t],(function*({name:t}){return[t,A(i(yield e("SELECT name,type "+W+"info(?)",[t]),(({name:e,type:t})=>[e,t])))]})))))),((e,n,l)=>{return D(t,n,$((i=_,R(o=t,r=n)||D(o,r,i()),I(o,r)),l,((e,t,n)=>{n!=I(e,t)&&D(e,t,n)}),((e,t)=>D(e,t))));var o,r,i}),((e,n)=>D(t,n)))})),(t,l)=>B(void 0,null,(function*(){const o=n(t,l)?yield e(k+F(t)+J+F(l)+"=?",["_"]):[];return a(o)?null:L(o[0],l)})),(e,t,n,l)=>B(void 0,null,(function*(){return yield o(e,t,!0,!0,{[n]:l})})),(t,l)=>B(void 0,null,(function*(){return n(t,l)?A(d(i(yield e(k+F(t)),(e=>[e[l],L(e,l)])),(([e,t])=>!p(e)&&!g(t)))):{}})),o]};var z=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{u(n.next(e))}catch(e){o(e)}},i=e=>{try{u(n.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((n=n.apply(e,t)).next())}));const H=(e,t,n,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>z(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),f={load:(n,l)=>z(void 0,null,(function*(){return yield y((()=>z(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}})))),f})),startAutoLoad:(...n)=>z(void 0,[...n],(function*(n={},o={}){return f.stopAutoLoad(),yield f.load(n,o),s=1,u=l(((n,l)=>z(void 0,null,(function*(){yield y((()=>z(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==n?void 0:n())?o:yield t())}catch(e){}}))))})))),f})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),f),save:t=>z(void 0,null,(function*(){return yield f.schedule((()=>z(void 0,null,(function*(){if(1!=a){a=2;try{yield n(e.getContent,t)}catch(e){}a=0}})))),f})),startAutoSave:()=>z(void 0,null,(function*(){return yield f.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,t)=>{const n=t();f.save((()=>n))})),f})),stopAutoSave:()=>(h(r,e.delListener),f),schedule:(...e)=>z(void 0,null,(function*(){return c(v,...e),yield z(void 0,null,(function*(){if(!d){for(d=1;!p((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return T(f)};var K=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{u(n.next(e))}catch(e){o(e)}},i=e=>{try{u(n.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((n=n.apply(e,t)).next())}));const U="store",G=(e,t,l,o,{storeTableName:r=n})=>{const[i,u,a]=Y(t),d=H(e,(()=>K(void 0,null,(function*(){var e;return yield i(),y((null!=(e=yield u(r,M))?e:{})[U])}))),(e=>K(void 0,null,(function*(){return d.schedule(i,(()=>K(void 0,null,(function*(){var t;yield a(r,M,"_",{[U]:(t=e(),JSON.stringify(t,((e,t)=>{return f(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})))})}))))}))),l,o);return d},Q="rowIdColumnName",X="tableId",Z="tableName",ee={load:0,save:0,[Z]:n+"_values"},te=(e,t,n,l)=>{const o=_();return O(e,((e,r)=>{const i=s(x(w(t,m(e)?{[n]:e}:e)),0,S(t));p(i[0])||l(r,i[0])||D(o,r,i)})),o};var ne=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{u(n.next(e))}catch(e){o(e)}},i=e=>{try{u(n.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((n=n.apply(e,t)).next())}));const le=(e,t,n,l,o)=>{const[r,i,[u,a,c]]=(({tables:{load:e={},save:t={}}={},values:n={}})=>{const l=s(x(w(ee,n)),0,S(ee)),o=l[2];return[te(e,{[X]:null,[Q]:M},X,(e=>e==o)),te(t,{[Z]:null,[Q]:M,deleteEmptyColumns:0,deleteEmptyTable:0},Z,((e,t)=>t==o)),l]})(o),[v,y,f,h,m]=Y(t),b=H(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return A(d(yield E(j(r,((e,t)=>ne(void 0,[e,t],(function*([e,t],n){return[e,yield h(n,t)]}))))),(e=>!g(e[1]))))})),t=yield ne(void 0,null,(function*(){return u?yield y(c,M):{}}));return g(e)&&p(t)?void 0:[e,t]}))),(e=>ne(void 0,null,(function*(){const[t,n]=e();b.schedule(v,...(e=>j(i,(([t,n,l,o],r)=>()=>ne(void 0,null,(function*(){return yield m(t,n,l,o,e[r])})))))(t),(e=>a?()=>ne(void 0,null,(function*(){return yield f(c,M,"_",e)})):null)(n))}))),n,l);return b},oe="json",re="autoLoadIntervalSeconds",ie={mode:oe,[re]:1},ue="pragma ",ae="data_version",de="schema_version",se=(e,t,n,l,o)=>{const r=w(ie,m(t)?{storeTableName:t}:null!=t?t:{});let i,u;return(r.mode==oe?G:le)(e,n,(e=>[setInterval((()=>{return t=function*(){try{const t=(yield n(ue+ae))[0][ae],l=(yield n(ue+de))[0][de];t==(null!=i?i:i=t)&&l==(null!=u?u:u=l)||(e(),i=t,u=l)}catch(e){}},new Promise(((e,n)=>{var l=e=>{try{r(t.next(e))}catch(e){n(e)}},o=e=>{try{r(t.throw(e))}catch(e){n(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(l,o);r((t=t.apply(void 0,null)).next())}));var t}),1e3*r[re]),l(e)]),(([e,t])=>{clearInterval(e),i=u=null,o(t)}),r)};var ce=Object.defineProperty,ve=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable,pe=(e,t,n)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;e.createSqliteWasmPersister=(e,t,n,l)=>se(e,l,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return n.exec(e,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,t)=>{for(var n in t||(t={}))ye.call(t,n)&&pe(e,n,t[n]);if(ve)for(var n of ve(t))fe.call(t,n)&&pe(e,n,t[n]);return e})({},e)))},new Promise(((e,t)=>{var n=e=>{try{i(o.next(e))}catch(e){t(e)}},r=e=>{try{i(o.throw(e))}catch(e){t(e)}},i=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>t.capi.sqlite3_update_hook(n,(()=>e()),0)),(()=>t.capi.sqlite3_update_hook(n,(()=>0),0)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterSqliteWasm={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="tinybase",l=",",r=t(""),o=(e,t="")=>e.join(t),i=(e,t)=>e.map(t),u=e=>e.length,a=e=>0==u(e),s=(e,t)=>e.filter(t),d=(e,t,n)=>e.slice(t,n),c=(e,...t)=>e.push(...t),v=Promise,y=JSON.parse,f=(e,t)=>e instanceof t,p=e=>null==e,h=(e,t,n)=>p(e)?null==n?void 0:n():t(e),m=e=>t(e)==r,b=e=>{return t=function*(){return v.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},E=Object,P=E.keys,w=E.freeze,O=(e=[])=>E.fromEntries(e),T=(...e)=>E.assign({},...e),A=(e,t)=>(delete e[t],e),L=(e,t)=>i(E.entries(e),(([e,n])=>t(n,e))),S=e=>E.values(e),x=e=>u(P(e)),g=e=>(e=>f(e,E)&&e.constructor==E)(e)&&0==x(e),R=(e,t)=>{var n;return null!=(n=null==e?void 0:e.has(t))&&n},C=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},N=(e,t)=>null==e?void 0:e.delete(t),_=e=>new Map(e),j=(e,t)=>null==e?void 0:e.get(t),I=(e,t)=>{var n;return i([...null!=(n=null==e?void 0:e.entries())?n:[]],(([e,n])=>t(n,e)))},D=(e,t,n)=>p(n)?(N(e,t),e):null==e?void 0:e.set(t,n),$=(e,t,n,l=D)=>(L(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)=>!p(((e,t)=>h(e,(e=>e[t])))(e,t)))(t,n)?0:l(e,n))),e),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,q=e=>new Set(Array.isArray(e)||p(e)?e:[e]);var B=Object.defineProperty,k=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,V=(e,t,n)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t)=>{for(var n in t||(t={}))W.call(t,n)&&V(e,n,t[n]);if(k)for(var n of k(t))J.call(t,n)&&V(e,n,t[n]);return e},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 H="SELECT*FROM",K="FROM pragma_table_",U="WHERE",G=U+" schema='main'AND type='table'AND name!='sqlite_schema'",Q=e=>{const t=_(),n=(e,n)=>!p(j(j(t,e),n)),r=(n,r,s,d,v)=>z(void 0,null,(function*(){const y=q();L(null!=v?v:{},(e=>i(P(e),(e=>{return n=e,null==(t=y)?void 0:t.add(n);var t,n}))));const f=C(y);if(a(f)&&R(t,n)&&d)return yield e("DROP TABLE"+F(n)),void D(t,n);if(a(f)||R(t,n)){const l=j(t,n),o=q([...null!=(h=null==(p=l)?void 0:p.keys())?h:[]]);yield b([...i(f,(t=>z(void 0,null,(function*(){N(o,t)||(yield e(`ALTER TABLE${F(n)}ADD${F(t)}`),D(l,t,""))})))),...s?i(C(o),(t=>z(void 0,null,(function*(){t!=r&&(yield e(`ALTER TABLE${F(n)}DROP${F(t)}`),D(l,t))})))):[]])}else yield e(`CREATE TABLE${F(n)}(${F(r)} PRIMARY KEY ON CONFLICT REPLACE${o(i(f,(e=>l+F(e))))});`),D(t,n,_([[r,""],...i(f,(e=>[e,""]))]));var p,h;if(a(f))yield e("DELETE FROM"+F(n));else{const t=[],a=[],s=[];L(v,((e,n)=>{var l;c(t,`(?${l=u(f),",?".repeat(l)})`),c(a,n,...i(f,(t=>e[t]))),c(s,n)})),yield e("INSERT INTO"+F(n)+"("+F(r)+o(i(f,(e=>l+F(e))))+")VALUES"+o(t,l),a),yield e("DELETE FROM"+F(n)+U+F(r)+"NOT IN("+o(i(s,(()=>"?")),l)+")",s)}}));return[()=>z(void 0,null,(function*(){return $(t,O(yield b(i(yield e("SELECT name "+K+"list "+G),(t=>z(void 0,[t],(function*({name:t}){return[t,O(i(yield e("SELECT name,type "+K+"info(?)",[t]),(({name:e,type:t})=>[e,t])))]})))))),((e,n,l)=>{return D(t,n,$((i=_,R(r=t,o=n)||D(r,o,i()),j(r,o)),l,((e,t,n)=>{n!=j(e,t)&&D(e,t,n)}),((e,t)=>D(e,t))));var r,o,i}),((e,n)=>D(t,n)))})),(t,l)=>z(void 0,null,(function*(){const r=n(t,l)?yield e(H+F(t)+U+F(l)+"=?",["_"]):[];return a(r)?null:A(r[0],l)})),(e,t,n,l)=>z(void 0,null,(function*(){return yield r(e,t,!0,!0,{[n]:l})})),(t,l)=>z(void 0,null,(function*(){return n(t,l)?O(s(i(yield e(H+F(t)),(e=>[e[l],A(Y({},e),l)])),(([e,t])=>!p(e)&&!g(t)))):{}})),r]};var X=(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 Z=(e,t,n,l,r)=>{let o,i,u,a=0,s=0,d=0;const v=[],y=e=>X(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),f={load:(n,l)=>X(void 0,null,(function*(){return yield y((()=>X(void 0,null,(function*(){try{e.setContent(yield t())}catch(t){e.setContent([n,l])}})))),f})),startAutoLoad:(...n)=>X(void 0,[...n],(function*(n={},r={}){return f.stopAutoLoad(),yield f.load(n,r),d=1,u=l(((n,l)=>X(void 0,null,(function*(){yield y((()=>X(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){}}))))})))),f})),stopAutoLoad:()=>(d&&(r(u),u=void 0,d=0),f),save:t=>X(void 0,null,(function*(){return yield f.schedule((()=>X(void 0,null,(function*(){if(1!=a){a=2;try{yield n(e.getContent,t)}catch(e){}a=0}})))),f})),startAutoSave:()=>X(void 0,null,(function*(){return yield f.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,t)=>{const n=t();f.save((()=>n))})),f})),stopAutoSave:()=>(h(o,e.delListener),f),schedule:(...e)=>X(void 0,null,(function*(){return c(v,...e),yield X(void 0,null,(function*(){if(!s){for(s=1;!p((e=v,i=e.shift()));)try{yield i()}catch(e){}s=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(f)};var ee=(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 te="store",ne=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=Q(t),s=Z(e,(()=>ee(void 0,null,(function*(){var e;return yield i(),y((null!=(e=yield u(o,M))?e:{})[te])}))),(e=>ee(void 0,null,(function*(){return s.schedule(i,(()=>ee(void 0,null,(function*(){var t;yield a(o,M,"_",{[te]:(t=e(),JSON.stringify(t,((e,t)=>{return f(t,Map)?(n=(e,[t,n])=>(e[t]=n,e),l={},[...t].reduce(n,l)):t;var n,l})))})}))))}))),l,r);return s},le="rowIdColumnName",re="tableId",oe="tableName",ie={load:0,save:0,[oe]:n+"_values"},ue=(e,t,n,l)=>{const r=_();return L(e,((e,o)=>{const i=d(S(T(t,m(e)?{[n]:e}:e)),0,x(t));p(i[0])||l(o,i[0])||D(r,o,i)})),r};var ae=(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 se=(e,t,n,l,r)=>{const[o,i,[u,a,c]]=(({tables:{load:e={},save:t={}}={},values:n={}})=>{const l=d(S(T(ie,n)),0,x(ie)),r=l[2];return[ue(e,{[re]:null,[le]:M},re,(e=>e==r)),ue(t,{[oe]:null,[le]:M,deleteEmptyColumns:0,deleteEmptyTable:0},oe,((e,t)=>t==r)),l]})(r),[v,y,f,h,m]=Q(t),E=Z(e,(()=>ae(void 0,null,(function*(){yield v();const e=yield ae(void 0,null,(function*(){return O(s(yield b(I(o,((e,t)=>ae(void 0,[e,t],(function*([e,t],n){return[e,yield h(n,t)]}))))),(e=>!g(e[1]))))})),t=yield ae(void 0,null,(function*(){return u?yield y(c,M):{}}));return g(e)&&p(t)?void 0:[e,t]}))),(e=>ae(void 0,null,(function*(){const[t,n]=e();E.schedule(v,...(e=>I(i,(([t,n,l,r],o)=>()=>ae(void 0,null,(function*(){return yield m(t,n,l,r,e[o])})))))(t),(e=>a?()=>ae(void 0,null,(function*(){return yield f(c,M,"_",e)})):null)(n))}))),n,l);return E},de="json",ce="autoLoadIntervalSeconds",ve={mode:de,[ce]:1},ye="pragma ",fe="data_version",pe="schema_version",he=(e,t,n,l,r)=>{const o=T(ve,m(t)?{storeTableName:t}:null!=t?t:{});let i,u;return(o.mode==de?ne:se)(e,n,(e=>[setInterval((()=>{return t=function*(){try{const t=(yield n(ye+fe))[0][fe],l=(yield n(ye+pe))[0][pe];t==(null!=i?i:i=t)&&l==(null!=u?u:u=l)||(e(),i=t,u=l)}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*o[ce]),l(e)]),(([e,t])=>{clearInterval(e),i=u=null,r(t)}),o)};var me=Object.defineProperty,be=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,we=(e,t,n)=>t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;e.createSqliteWasmPersister=(e,t,n,l)=>he(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={}))Ee.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,(()=>e()),0)),(()=>t.capi.sqlite3_update_hook(n,(()=>0),0)))},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterSqliteWasm={});
@@ -1 +1 @@
1
- var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",o=n(""),r=(e,n="")=>e.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=JSON.parse,f=(e,n)=>e instanceof n,p=e=>null==e,h=(e,n,t)=>p(e)?null==t?void 0:t():n(e),m=e=>n(e)==o,E=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},T=Object,A=T.keys,b=T.freeze,P=(e=[])=>T.fromEntries(e),L=(...e)=>T.assign({},...e),w=(e,n)=>(delete e[n],e),O=(e,n)=>i(T.entries(e),(([e,t])=>n(t,e))),S=e=>T.values(e),g=e=>u(A(e)),x=e=>(e=>f(e,T)&&e.constructor==T)(e)&&0==g(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),I=e=>new Map(e),_=(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)))},$=(e,n,t)=>p(t)?(R(e,n),e):null==e?void 0:e.set(n,t),j=(e,n,t,l=$)=>(O(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!p(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||p(e)?e:[e]);var q=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const k="SELECT*FROM",J="FROM pragma_table_",Y="WHERE",z=Y+" schema='main'AND type='table'AND name!='sqlite_schema'",H=e=>{const n=I(),t=(e,t)=>!p(_(_(n,e),t)),o=(t,o,d,s,v)=>q(void 0,null,(function*(){const y=B();O(null!=v?v:{},(e=>i(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(a(f)&&C(n,t)&&s)return yield e("DROP TABLE"+F(t)),void $(n,t);if(a(f)||C(n,t)){const l=_(n,t),r=B([...null!=(h=null==(p=l)?void 0:p.keys())?h:[]]);yield E([...i(f,(n=>q(void 0,null,(function*(){R(r,n)||(yield e(`ALTER TABLE${F(t)}ADD${F(n)}`),$(l,n,""))})))),...d?i(N(r),(n=>q(void 0,null,(function*(){n!=o&&(yield e(`ALTER TABLE${F(t)}DROP${F(n)}`),$(l,n))})))):[]])}else yield e(`CREATE TABLE${F(t)}(${F(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(f,(e=>l+F(e))))});`),$(n,t,I([[o,""],...i(f,(e=>[e,""]))]));var p,h;if(a(f))yield e("DELETE FROM"+F(t));else{const n=[],a=[],d=[];O(v,((e,t)=>{var l;c(n,`(?${l=u(f),",?".repeat(l)})`),c(a,t,...i(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+F(t)+"("+F(o)+r(i(f,(e=>l+F(e))))+")VALUES"+r(n,l),a),yield e("DELETE FROM"+F(t)+Y+F(o)+"NOT IN("+r(i(d,(()=>"?")),l)+")",d)}}));return[()=>q(void 0,null,(function*(){return j(n,P(yield E(i(yield e("SELECT name "+J+"list "+z),(n=>q(void 0,[n],(function*({name:n}){return[n,P(i(yield e("SELECT name,type "+J+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return $(n,t,j((i=I,C(o=n,r=t)||$(o,r,i()),_(o,r)),l,((e,n,t)=>{t!=_(e,n)&&$(e,n,t)}),((e,n)=>$(e,n))));var o,r,i}),((e,t)=>$(n,t)))})),(n,l)=>q(void 0,null,(function*(){const o=t(n,l)?yield e(k+F(n)+Y+F(l)+"=?",["_"]):[];return a(o)?null:w(o[0],l)})),(e,n,t,l)=>q(void 0,null,(function*(){return yield o(e,n,!0,!0,{[t]:l})})),(n,l)=>q(void 0,null,(function*(){return t(n,l)?P(d(i(yield e(k+F(n)),(e=>[e[l],w(e,l)])),(([e,n])=>!p(e)&&!x(n)))):{}})),o]};var K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const U=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>K(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),f={load:(t,l)=>K(void 0,null,(function*(){return yield y((()=>K(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),f})),startAutoLoad:(...t)=>K(void 0,[...t],(function*(t={},o={}){return f.stopAutoLoad(),yield f.load(t,o),s=1,u=l(((t,l)=>K(void 0,null,(function*(){yield y((()=>K(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),f})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),f),save:n=>K(void 0,null,(function*(){return yield f.schedule((()=>K(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),f})),startAutoSave:()=>K(void 0,null,(function*(){return yield f.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const t=n();f.save((()=>t))})),f})),stopAutoSave:()=>(h(r,e.delListener),f),schedule:(...e)=>K(void 0,null,(function*(){return c(v,...e),yield K(void 0,null,(function*(){if(!d){for(d=1;!p((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return b(f)};var V=(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 W="store",G=(e,n,l,o,{storeTableName:r=t})=>{const[i,u,a]=H(n),d=U(e,(()=>V(void 0,null,(function*(){var e;return yield i(),y((null!=(e=yield u(r,M))?e:{})[W])}))),(e=>V(void 0,null,(function*(){return d.schedule(i,(()=>V(void 0,null,(function*(){var n;yield a(r,M,"_",{[W]:(n=e(),JSON.stringify(n,((e,n)=>{return f(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,o);return d},Q="rowIdColumnName",X="tableId",Z="tableName",ee={load:0,save:0,[Z]:t+"_values"},ne=(e,n,t,l)=>{const o=I();return O(e,((e,r)=>{const i=s(S(L(n,m(e)?{[t]:e}:e)),0,g(n));p(i[0])||l(r,i[0])||$(o,r,i)})),o};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le=(e,n,t,l,o)=>{const[r,i,[u,a,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=s(S(L(ee,t)),0,g(ee)),o=l[2];return[ne(e,{[X]:null,[Q]:M},X,(e=>e==o)),ne(n,{[Z]:null,[Q]:M,deleteEmptyColumns:0,deleteEmptyTable:0},Z,((e,n)=>n==o)),l]})(o),[v,y,f,h,m]=H(n),T=U(e,(()=>te(void 0,null,(function*(){yield v();const e=yield te(void 0,null,(function*(){return P(d(yield E(D(r,((e,n)=>te(void 0,[e,n],(function*([e,n],t){return[e,yield h(t,n)]}))))),(e=>!x(e[1]))))})),n=yield te(void 0,null,(function*(){return u?yield y(c,M):{}}));return x(e)&&p(n)?void 0:[e,n]}))),(e=>te(void 0,null,(function*(){const[n,t]=e();T.schedule(v,...(e=>D(i,(([n,t,l,o],r)=>()=>te(void 0,null,(function*(){return yield m(n,t,l,o,e[r])})))))(n),(e=>a?()=>te(void 0,null,(function*(){return yield f(c,M,"_",e)})):null)(t))}))),t,l);return T},oe="json",re="autoLoadIntervalSeconds",ie={mode:oe,[re]:1},ue="pragma ",ae="data_version",de="schema_version",se=(e,n,t,l,o)=>{const r=L(ie,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(r.mode==oe?G:le)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ue+ae))[0][ae],l=(yield t(ue+de))[0][de];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(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}),1e3*r[re]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),r)};var ce=Object.defineProperty,ve=Object.getOwnPropertySymbols,ye=Object.prototype.hasOwnProperty,fe=Object.prototype.propertyIsEnumerable,pe=(e,n,t)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const he="change";e.createSqlite3Persister=(e,n,t)=>se(e,t,((e,t=[])=>new v(((l,o)=>n.all(e,t,((e,n)=>e?o(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))ye.call(n,t)&&pe(e,t,n[t]);if(ve)for(var t of ve(n))fe.call(n,t)&&pe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(he,t),t}),(e=>n.off(he,e)))},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterSqlite3={});
1
+ var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",r=n(""),o=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),s=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),v=Promise,y=JSON.parse,f=(e,n)=>e instanceof n,p=e=>null==e,h=(e,n,t)=>p(e)?null==t?void 0:t():n(e),m=e=>n(e)==r,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},b=Object,O=b.keys,P=b.freeze,T=(e=[])=>b.fromEntries(e),A=(...e)=>b.assign({},...e),w=(e,n)=>(delete e[n],e),L=(e,n)=>i(b.entries(e),(([e,t])=>n(t,e))),S=e=>b.values(e),g=e=>u(O(e)),x=e=>(e=>f(e,b)&&e.constructor==b)(e)&&0==g(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),j=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>p(t)?(R(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(L(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!p(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||p(e)?e:[e]);var q=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,z=(e,n,t)=>n in e?q(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,H=(e,n)=>{for(var t in n||(n={}))J.call(n,t)&&z(e,t,n[t]);if(k)for(var t of k(n))Y.call(n,t)&&z(e,t,n[t]);return e},K=(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 U="SELECT*FROM",V="FROM pragma_table_",W="WHERE",G=W+" schema='main'AND type='table'AND name!='sqlite_schema'",Q=e=>{const n=j(),t=(e,t)=>!p(I(I(n,e),t)),r=(t,r,s,d,v)=>K(void 0,null,(function*(){const y=B();L(null!=v?v:{},(e=>i(O(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(a(f)&&C(n,t)&&d)return yield e("DROP TABLE"+F(t)),void D(n,t);if(a(f)||C(n,t)){const l=I(n,t),o=B([...null!=(h=null==(p=l)?void 0:p.keys())?h:[]]);yield E([...i(f,(n=>K(void 0,null,(function*(){R(o,n)||(yield e(`ALTER TABLE${F(t)}ADD${F(n)}`),D(l,n,""))})))),...s?i(N(o),(n=>K(void 0,null,(function*(){n!=r&&(yield e(`ALTER TABLE${F(t)}DROP${F(n)}`),D(l,n))})))):[]])}else yield e(`CREATE TABLE${F(t)}(${F(r)} PRIMARY KEY ON CONFLICT REPLACE${o(i(f,(e=>l+F(e))))});`),D(n,t,j([[r,""],...i(f,(e=>[e,""]))]));var p,h;if(a(f))yield e("DELETE FROM"+F(t));else{const n=[],a=[],s=[];L(v,((e,t)=>{var l;c(n,`(?${l=u(f),",?".repeat(l)})`),c(a,t,...i(f,(n=>e[n]))),c(s,t)})),yield e("INSERT INTO"+F(t)+"("+F(r)+o(i(f,(e=>l+F(e))))+")VALUES"+o(n,l),a),yield e("DELETE FROM"+F(t)+W+F(r)+"NOT IN("+o(i(s,(()=>"?")),l)+")",s)}}));return[()=>K(void 0,null,(function*(){return $(n,T(yield E(i(yield e("SELECT name "+V+"list "+G),(n=>K(void 0,[n],(function*({name:n}){return[n,T(i(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=j,C(r=n,o=t)||D(r,o,i()),I(r,o)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,l)=>K(void 0,null,(function*(){const r=t(n,l)?yield e(U+F(n)+W+F(l)+"=?",["_"]):[];return a(r)?null:w(r[0],l)})),(e,n,t,l)=>K(void 0,null,(function*(){return yield r(e,n,!0,!0,{[t]:l})})),(n,l)=>K(void 0,null,(function*(){return t(n,l)?T(s(i(yield e(U+F(n)),(e=>[e[l],w(H({},e),l)])),(([e,n])=>!p(e)&&!x(n)))):{}})),r]};var X=(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=(e,n,t,l,r)=>{let o,i,u,a=0,s=0,d=0;const v=[],y=e=>X(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),f={load:(t,l)=>X(void 0,null,(function*(){return yield y((()=>X(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),f})),startAutoLoad:(...t)=>X(void 0,[...t],(function*(t={},r={}){return f.stopAutoLoad(),yield f.load(t,r),d=1,u=l(((t,l)=>X(void 0,null,(function*(){yield y((()=>X(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){}}))))})))),f})),stopAutoLoad:()=>(d&&(r(u),u=void 0,d=0),f),save:n=>X(void 0,null,(function*(){return yield f.schedule((()=>X(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),f})),startAutoSave:()=>X(void 0,null,(function*(){return yield f.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();f.save((()=>t))})),f})),stopAutoSave:()=>(h(o,e.delListener),f),schedule:(...e)=>X(void 0,null,(function*(){return c(v,...e),yield X(void 0,null,(function*(){if(!s){for(s=1;!p((e=v,i=e.shift()));)try{yield i()}catch(e){}s=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return P(f)};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="store",te=(e,n,l,r,{storeTableName:o=t})=>{const[i,u,a]=Q(n),s=Z(e,(()=>ee(void 0,null,(function*(){var e;return yield i(),y((null!=(e=yield u(o,M))?e:{})[ne])}))),(e=>ee(void 0,null,(function*(){return s.schedule(i,(()=>ee(void 0,null,(function*(){var n;yield a(o,M,"_",{[ne]:(n=e(),JSON.stringify(n,((e,n)=>{return f(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return s},le="rowIdColumnName",re="tableId",oe="tableName",ie={load:0,save:0,[oe]:t+"_values"},ue=(e,n,t,l)=>{const r=j();return L(e,((e,o)=>{const i=d(S(A(n,m(e)?{[t]:e}:e)),0,g(n));p(i[0])||l(o,i[0])||D(r,o,i)})),r};var ae=(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 se=(e,n,t,l,r)=>{const[o,i,[u,a,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(S(A(ie,t)),0,g(ie)),r=l[2];return[ue(e,{[re]:null,[le]:M},re,(e=>e==r)),ue(n,{[oe]:null,[le]:M,deleteEmptyColumns:0,deleteEmptyTable:0},oe,((e,n)=>n==r)),l]})(r),[v,y,f,h,m]=Q(n),b=Z(e,(()=>ae(void 0,null,(function*(){yield v();const e=yield ae(void 0,null,(function*(){return T(s(yield E(_(o,((e,n)=>ae(void 0,[e,n],(function*([e,n],t){return[e,yield h(t,n)]}))))),(e=>!x(e[1]))))})),n=yield ae(void 0,null,(function*(){return u?yield y(c,M):{}}));return x(e)&&p(n)?void 0:[e,n]}))),(e=>ae(void 0,null,(function*(){const[n,t]=e();b.schedule(v,...(e=>_(i,(([n,t,l,r],o)=>()=>ae(void 0,null,(function*(){return yield m(n,t,l,r,e[o])})))))(n),(e=>a?()=>ae(void 0,null,(function*(){return yield f(c,M,"_",e)})):null)(t))}))),t,l);return b},de="json",ce="autoLoadIntervalSeconds",ve={mode:de,[ce]:1},ye="pragma ",fe="data_version",pe="schema_version",he=(e,n,t,l,r)=>{const o=A(ve,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==de?te:se)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ye+fe))[0][fe],l=(yield t(ye+pe))[0][pe];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}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*o[ce]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};var me=Object.defineProperty,Ee=Object.getOwnPropertySymbols,be=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable,Pe=(e,n,t)=>n in e?me(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const Te="change";e.createSqlite3Persister=(e,n,t)=>he(e,t,((e,t=[])=>new v(((l,r)=>n.all(e,t,((e,n)=>e?r(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))be.call(n,t)&&Pe(e,t,n[t]);if(Ee)for(var t of Ee(n))Oe.call(n,t)&&Pe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(Te,t),t}),(e=>n.off(Te,e)))},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBasePersisterSqlite3={});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tinybase",
3
- "version": "4.0.0-beta.5.1",
3
+ "version": "4.0.0-beta.5.2",
4
4
  "author": "jamesgpearce",
5
5
  "repository": "github:tinyplex/tinybase",
6
6
  "license": "MIT",
@@ -264,7 +264,7 @@
264
264
  "react": "^18.2.0",
265
265
  "react-dom": "^18.2.0",
266
266
  "react-test-renderer": "^18.2.0",
267
- "rollup": "^3.25.1",
267
+ "rollup": "^3.25.2",
268
268
  "rollup-plugin-esbuild": "^5.0.0",
269
269
  "rollup-plugin-gzip": "^3.1.0",
270
270
  "rollup-plugin-preserve-shebang": "^1.0.1",
package/readme.md CHANGED
@@ -266,4 +266,4 @@ export const createShop: typeof createShopDecl = () => {
266
266
  };
267
267
  ```
268
268
 
269
- <section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://beta.tinybase.org/api/store/"><code>store</code></a> module alone, you&#x27;ll only add a gzipped <em>4.7kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>8.9kB</em>.</p><p>The optional <a href="https://beta.tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just another <em>3.4kB</em>, the auxiliary <a href="https://beta.tinybase.org/api/tools/"><code>tools</code></a> module is <em>10.3kB</em>, and everything is super fast. Life&#x27;s easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>.js.gz</th><th>.js</th><th>debug.js</th><th>.d.ts</th></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/store/">store</a></th><td>4.7kB</td><td>11.1kB</td><td>47.8kB</td><td>212.9kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/metrics/">metrics</a></th><td>1.8kB</td><td>3.6kB</td><td>14.9kB</td><td>29.2kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/indexes/">indexes</a></th><td>1.9kB</td><td>3.7kB</td><td>16.7kB</td><td>33.8kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/relationships/">relationships</a></th><td>1.8kB</td><td>3.7kB</td><td>16.8kB</td><td>42.1kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/queries/">queries</a></th><td>2.7kB</td><td>5.5kB</td><td>25.0kB</td><td>112.7kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/checkpoints/">checkpoints</a></th><td>1.5kB</td><td>3.1kB</td><td>12.5kB</td><td>33.3kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/persisters/">persisters</a></th><td>0.5kB</td><td>1.0kB</td><td>3.4kB</td><td>41.9kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/common/">common</a></th><td>0.1kB</td><td>0.1kB</td><td>0.1kB</td><td>3.5kB</td></tr><tr><th class="right">tinybase (all)</th><td>8.9kB</td><td>21.9kB</td><td>94.8kB</td><td>0.3kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible to get up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>1,815</td><td>1,815</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>1,957</td><td>1,957</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>776</td><td>776</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>665</td><td>665</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">3,090</td></tr><tr><th class="right">Assertions</th><td colspan="3">14,334</td></tr></tbody></table></div><hr><p><a class="start" href="https://beta.tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://beta.tinybase.org/demos/">Try the demos</a></p><p><a href="https://beta.tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section><h2 id="follow">Follow</h2><ul><li>News and updates on <a href="https://twitter.com/tinybasejs">Twitter</a>, <a href="https://discord.com/invite/mGz3mevwP8">Discord</a>, and <a href="https://facebook.com/tinybasejs">Facebook</a>.</li><li><a href="https://github.com/tinyplex/tinybase/discussions">Discussions</a> and <a href="https://github.com/tinyplex/tinybase/issues">issues</a> on <a href="https://github.com/tinyplex/tinybase">GitHub</a>.</li><li><a href="https://beta.tinybase.org/guides/releases/">Release notes</a> for each version.</li><li>Packages on <a href="https://www.npmjs.com/package/tinybase/v/4.0.0-beta.5.1">NPM</a>.</li></ul></section><section><h2 id="about">About</h2><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://hachyderm.io/@jamesgpearce">me</a> in API design, minification, and documentation. It could not have been built without these great <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it!</p></section>
269
+ <section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://beta.tinybase.org/api/store/"><code>store</code></a> module alone, you&#x27;ll only add a gzipped <em>4.7kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>8.9kB</em>.</p><p>The optional <a href="https://beta.tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just another <em>3.4kB</em>, the auxiliary <a href="https://beta.tinybase.org/api/tools/"><code>tools</code></a> module is <em>10.3kB</em>, and everything is super fast. Life&#x27;s easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>.js.gz</th><th>.js</th><th>debug.js</th><th>.d.ts</th></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/store/">store</a></th><td>4.7kB</td><td>11.1kB</td><td>47.8kB</td><td>212.9kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/metrics/">metrics</a></th><td>1.8kB</td><td>3.6kB</td><td>14.9kB</td><td>29.2kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/indexes/">indexes</a></th><td>1.9kB</td><td>3.7kB</td><td>16.7kB</td><td>33.8kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/relationships/">relationships</a></th><td>1.8kB</td><td>3.7kB</td><td>16.8kB</td><td>42.1kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/queries/">queries</a></th><td>2.7kB</td><td>5.5kB</td><td>25.0kB</td><td>112.7kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/checkpoints/">checkpoints</a></th><td>1.5kB</td><td>3.1kB</td><td>12.5kB</td><td>33.3kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/persisters/">persisters</a></th><td>0.5kB</td><td>1.0kB</td><td>3.4kB</td><td>41.9kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/common/">common</a></th><td>0.1kB</td><td>0.1kB</td><td>0.1kB</td><td>3.5kB</td></tr><tr><th class="right">tinybase (all)</th><td>8.9kB</td><td>21.9kB</td><td>94.8kB</td><td>0.3kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible to get up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>1,815</td><td>1,815</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>1,957</td><td>1,957</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>776</td><td>776</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>665</td><td>665</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">3,090</td></tr><tr><th class="right">Assertions</th><td colspan="3">14,334</td></tr></tbody></table></div><hr><p><a class="start" href="https://beta.tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://beta.tinybase.org/demos/">Try the demos</a></p><p><a href="https://beta.tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section><h2 id="follow">Follow</h2><ul><li>News and updates on <a href="https://twitter.com/tinybasejs">Twitter</a>, <a href="https://discord.com/invite/mGz3mevwP8">Discord</a>, and <a href="https://facebook.com/tinybasejs">Facebook</a>.</li><li><a href="https://github.com/tinyplex/tinybase/discussions">Discussions</a> and <a href="https://github.com/tinyplex/tinybase/issues">issues</a> on <a href="https://github.com/tinyplex/tinybase">GitHub</a>.</li><li><a href="https://beta.tinybase.org/guides/releases/">Release notes</a> for each version.</li><li>Packages on <a href="https://www.npmjs.com/package/tinybase/v/4.0.0-beta.5.2">NPM</a>.</li></ul></section><section><h2 id="about">About</h2><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://hachyderm.io/@jamesgpearce">me</a> in API design, minification, and documentation. It could not have been built without these great <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it!</p></section>