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.
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +4 -1
- package/lib/debug/persisters/persister-sqlite-wasm.js +4 -1
- package/lib/debug/persisters/persister-sqlite3.js +4 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/package.json +2 -2
- 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()));
|
|
Binary file
|
|
@@ -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)));
|
|
Binary file
|
|
@@ -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)));
|
|
Binary file
|
|
@@ -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),
|
|
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()));
|
|
Binary file
|
|
@@ -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),
|
|
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)));
|
|
Binary file
|
|
@@ -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),
|
|
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)));
|
|
Binary file
|
|
@@ -166,7 +166,10 @@ const getCommandFunctions = (cmd) => {
|
|
|
166
166
|
arrayFilter(
|
|
167
167
|
arrayMap(
|
|
168
168
|
await cmd(SELECT_STAR_FROM + escapeId(tableName)),
|
|
169
|
-
(row) => [
|
|
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) => [
|
|
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) => [
|
|
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(""),
|
|
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};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,
|
|
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};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,n="tinybase",t=",",l=e(""),
|
|
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};
|
|
Binary file
|
|
@@ -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};
|
|
Binary file
|
|
@@ -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};
|
|
Binary file
|
|
@@ -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};
|
|
Binary file
|
|
@@ -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={});
|
|
Binary file
|
|
@@ -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={});
|
|
Binary file
|
|
@@ -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={});
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",
|
|
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={});
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,n="tinybase",l=",",
|
|
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={});
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,n;e=this,n=function(e){"use strict";const n=e=>typeof e,t="tinybase",l=",",
|
|
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={});
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tinybase",
|
|
3
|
-
"version": "4.0.0-beta.5.
|
|
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.
|
|
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'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'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.
|
|
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'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'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>
|