tinybase 4.0.1 → 4.0.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 +177 -117
- package/lib/debug/persisters/persister-sqlite-wasm.js +172 -116
- package/lib/debug/persisters/persister-sqlite3.js +172 -117
- 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/types/persisters.d.ts +7 -0
- package/lib/types/with-schemas/persisters.d.ts +7 -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 +19 -19
- package/readme.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),
|
|
1
|
+
const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=(e,n="")=>e.join(n),i=(e,n)=>e.map(n),u=e=>e.length,a=e=>0==u(e),d=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),v=Promise,y=(e,n)=>e instanceof n,f=e=>null==e,p=(e,n,t)=>f(e)?null==t?void 0:t():n(e),E=n=>e(n)==l,h=e=>{return n=function*(){return v.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},O=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),T=Object,A=T.keys,L=T.freeze,P=(e=[])=>T.fromEntries(e),w=(...e)=>T.assign({},...e),R=(e,n)=>i(T.entries(e),(([e,t])=>n(t,e))),S=e=>T.values(e),g=e=>u(A(e)),N=e=>(e=>y(e,T)&&e.constructor==T)(e)&&0==g(e),C=e=>new Map(e),x=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),D=(e,n)=>{var t;return i([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},j=(e,n,t)=>f(t)?(b(e,n),e):null==e?void 0:e.set(n,t),F=(e,n,t,l=j)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>p(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M=e=>new Set(Array.isArray(e)||f(e)?e:[e]),$=(e,n)=>null==e?void 0:e.add(n),_="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var W=Object.defineProperty,k=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?W(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,z=(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},K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="FROM pragma_table_",q="WHERE",G=(e,n)=>{const l=C();return[()=>K(void 0,null,(function*(){return F(l,P(yield h(i(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+X(n)+")",n),(n=>K(void 0,[n],(function*({name:n}){return[n,P(i(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>{return j(l,n,F((i=C,m(o=l,r=n)||j(o,r,i()),I(o,r)),t,((e,n,t)=>{t!=I(e,n)&&j(e,n,t)}),((e,n)=>j(e,n))));var o,r,i}),((e,n)=>j(l,n)))})),(n,t)=>K(void 0,null,(function*(){return((e,n)=>!f(I(I(l,e),n)))(n,t)?P(d(i(yield e("SELECT*FROM"+H(n)),(e=>{return[e[t],(n=z({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!f(e)&&!N(n)))):{}})),(n,o,u,c,v,y=!1)=>K(void 0,null,(function*(){const p=M();R(null!=u?u:{},(e=>i(A(null!=e?e:{}),(e=>$(p,e)))));const E=O(p);if(!y&&v&&a(E)&&m(l,n))return yield e("DROP TABLE"+H(n)),void j(l,n);if(a(E)||m(l,n)){const t=I(l,n),r=M(x(t));yield h([...i(E,(l=>K(void 0,null,(function*(){b(r,l)||(yield e(`ALTER TABLE${H(n)}ADD${H(l)}`),j(t,l,""))})))),...!y&&c?i(O(r),(l=>K(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(l)}`),j(t,l))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${r(i(E,(e=>t+H(e))))});`),j(l,n,C([[o,""],...i(E,(e=>[e,""]))]));if(y)f(u)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield h(R(u,((t,l)=>K(void 0,null,(function*(){f(t)?yield e("DELETE FROM"+H(n)+q+H(o)+"=?",[l]):a(E)||(yield Q(e,n,o,A(t),[l,...S(t)]))})))));else if(a(E))m(l,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const t=d(x(I(l,n)),(e=>e!=o)),r=[],a=[];R(null!=u?u:{},((e,n)=>{s(r,n,...i(t,(n=>null==e?void 0:e[n]))),s(a,n)})),yield Q(e,n,o,t,r),yield e("DELETE FROM"+H(n)+q+H(o)+"NOT IN("+X(a)+")",a)}}))]},Q=(e,n,l,a,d)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(l)+r(i(a,(e=>t+H(e))))+")VALUES"+o(`,(?${o(",?",u(a))})`,u(d)/(u(a)+1)).substring(1)+"ON CONFLICT("+H(l)+")DO UPDATE SET"+r(i(a,(e=>H(e)+"=excluded."+H(e))),t),d)})),X=e=>r(i(e,(()=>"?")),t),Z=JSON.parse;var ee=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ne=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,c=0;const v=[],y=e=>ee(void 0,null,(function*(){return 2!=a&&(a=1,yield E.schedule((()=>ee(void 0,null,(function*(){yield e(),a=0}))))),E})),E={load:(t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ee(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),c=1,u=l(((t,l)=>ee(void 0,null,(function*(){return yield y((()=>ee(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),E})),stopAutoLoad:()=>(c&&(o(u),u=void 0,c=0),E),save:n=>ee(void 0,null,(function*(){return 1!=a&&(a=2,yield E.schedule((()=>ee(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),E})),startAutoSave:()=>ee(void 0,null,(function*(){return yield E.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(p(r,e.delListener),E),schedule:(...e)=>ee(void 0,null,(function*(){return s(v,...e),yield ee(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(E)};var te=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const le="store",oe=(e,n,t,l,[o],r)=>{const[i,u,a]=G(n,r),d=ne(e,(()=>te(void 0,null,(function*(){var e;return yield i(),Z(null==(e=(yield u(o,B))[_])?void 0:e[le])}))),(e=>te(void 0,null,(function*(){return d.schedule(i,(()=>te(void 0,null,(function*(){var n;yield a(o,B,{[_]:{[le]:(n=e(),JSON.stringify(n,((e,n)=>y(n,Map)?T.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=(e,n,t,l,[o,r,[i,u,a]],c)=>{const[s,v,y]=G(n,c),p=(e,n)=>re(void 0,null,(function*(){return yield h(D(r,((t,l)=>re(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),E=(e,n)=>re(void 0,null,(function*(){return u?yield y(a,B,{[_]:e},!0,!0,n):null}));return ne(e,(()=>re(void 0,null,(function*(){yield s();const e=yield re(void 0,null,(function*(){return P(d(yield h(D(o,((e,n)=>re(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!N(e[1]))))})),n=yield re(void 0,null,(function*(){return i?(yield v(a,B))[_]:{}}));return N(e)&&f(n)?void 0:[e,n]}))),((e,n)=>re(void 0,null,(function*(){if(yield s(),f(n)){const[n,t]=e();yield p(n),yield E(t)}else{const[e,t]=n();yield p(e,!0),yield E(t,!0)}}))),t,l)},ue="json",ae="autoLoadIntervalSeconds",de="rowIdColumnName",ce="tableId",se="tableName",ve={mode:ue,[ae]:1},ye={load:0,save:0,[se]:n+"_values"},fe=(e,n,t,l)=>{const o=C();return R(e,((e,r)=>{const i=c(S(w(n,E(e)?{[t]:e}:e)),0,g(n));f(i[0])||l(r,i[0])||j(o,r,i)})),o};var pe=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",he="data_version",me="schema_version",Oe=(e,t,l,o,r,i)=>{let u,a;const[d,s,v,y]=(e=>{const t=(e=>w(ve,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[ae];if(t.mode==ue){const{storeTableName:e=n}=t;return[1,l,[e],M(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=c(S(w(ye,i)),0,g(ye)),a=u[2],d=M(a);return[0,l,[fe(o,{[ce]:null,[de]:B},ce,(e=>$(d,e)&&e==a)),fe(r,{[se]:null,[de]:B,deleteEmptyColumns:0,deleteEmptyTable:0},se,((e,n)=>$(d,n)&&n==a)),u],d]})(t);return(d?oe:ie)(e,i?(e,n)=>pe(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>pe(void 0,null,(function*(){try{const n=(yield l(Ee+he))[0][he],t=(yield l(Ee+me))[0][me];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,O(y))};var be=Object.defineProperty,Te=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Pe=(e,n,t)=>n in e?be(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const we="change",Re=(e,n,t,l)=>Oe(e,t,((e,t=[])=>new v(((l,o)=>n.all(e,t,((e,n)=>e?o(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))Ae.call(n,t)&&Pe(e,t,n[t]);if(Te)for(var t of Te(n))Le.call(n,t)&&Pe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=(n,t,l)=>e(l);return n.on(we,t),t}),(e=>n.off(we,e)),l);export{Re 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),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,O=f.freeze,R=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),D=a=>o(h(a)),g=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==D(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,x="FROM pragma_table_",U="WHERE",k=(a,t)=>{const s=I();return[async()=>_(s,R(await m(c(await a("SELECT name "+x+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,R(c(await a("SELECT name,type "+x+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?R(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!g(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+U+j(n)+"=?",[s]):r(T)||await J(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+j(t)+U+j(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();g(e)&&g(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=k(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=k(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>R(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!g(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return g(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,D(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,D(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la=(a,t,e,s)=>ra(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s);export{la 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,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),o=(a,t)=>a.map(t),c=a=>a.length,r=a=>0==c(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,p=(a,t,e)=>d(a)?e?.():t(a),v=t=>a(t)==s,T=async a=>E.all(a),m=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,f=h.freeze,O=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>o(h.entries(a),(([a,e])=>t(e,a))),S=a=>h.values(a),b=a=>c(R(a)),D=a=>(a=>u(a,h)&&a.constructor==h)(a)&&0==b(a),g=a=>new Map(a),I=a=>[...a?.keys()??[]],_=(a,t)=>a?.get(t),M=(a,t)=>o([...a?.entries()??[]],(([a,e])=>t(e,a))),F=(a,t,e)=>d(e)?(L(a,t),a):a?.set(t,e),$=(a,t,e,s=F)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),j=(a,t)=>a?.add(t),k="_",B="_id",H=a=>`"${a.replace(/"/g,'""')}"`,W="FROM pragma_table_",x="WHERE",q=(a,t)=>{const s=g();return[async()=>$(s,O(await T(o(await a("SELECT name "+W+"list WHERE schema='main'AND type='table'AND name IN("+U(t)+")",t),(async({name:t})=>[t,O(o(await a("SELECT name,type "+W+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return F(s,t,$((o=g,m(n=s,i=t)||F(n,i,o()),_(n,i)),e,((a,t,e)=>{e!=_(a,t)&&F(a,t,e)}),((a,t)=>F(a,t))));var n,i,o}),((a,t)=>F(s,t))),async(t,e)=>((a,t)=>!d(_(_(s,a),t)))(t,e)?O(l(o(await a("SELECT*FROM"+H(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,c,w,E,u=!1)=>{const p=P();C(c??{},(a=>o(R(a??{}),(a=>j(p,a)))));const v=A(p);if(!u&&E&&r(v)&&m(s,t))return await a("DROP TABLE"+H(t)),void F(s,t);if(r(v)||m(s,t)){const e=_(s,t),i=P(I(e));await T([...o(v,(async s=>{L(i,s)||(await a(`ALTER TABLE${H(t)}ADD${H(s)}`),F(e,s,""))})),...!u&&w?o(A(i),(async s=>{s!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(s)}`),F(e,s))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${i(o(v,(a=>e+H(a))))});`),F(s,t,g([[n,""],...o(v,(a=>[a,""]))]));if(u)d(c)?await a("DELETE FROM"+H(t)+"WHERE 1"):await T(C(c,(async(e,s)=>{d(e)?await a("DELETE FROM"+H(t)+x+H(n)+"=?",[s]):r(v)||await J(a,t,n,R(e),[s,...S(e)])})));else if(r(v))m(s,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const e=l(I(_(s,t)),(a=>a!=n)),i=[],r=[];C(c??{},((a,t)=>{y(i,t,...o(e,(t=>a?.[t]))),y(r,t)})),await J(a,t,n,e,i),await a("DELETE FROM"+H(t)+x+H(n)+"NOT IN("+U(r)+")",r)}}]},J=async(a,t,s,r,l)=>await a("INSERT INTO"+H(t)+"("+H(s)+i(o(r,(a=>e+H(a))))+")VALUES"+n(`,(?${n(",?",c(r))})`,c(l)/(c(r)+1)).substring(1)+"ON CONFLICT("+H(s)+")DO UPDATE SET"+i(o(r,(a=>H(a)+"=excluded."+H(a))),e),l),U=a=>i(o(a,(()=>"?")),e),V=JSON.parse,Y=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await v.schedule((async()=>{await a(),r=0}))),v),v={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(v.stopAutoLoad(),await v.load(e,n),w=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),v),stopAutoLoad:()=>(w&&(n(c),c=void 0,w=0),v),save:async t=>(1!=r&&(r=2,await v.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),v),startAutoSave:async()=>(await v.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||v.save((()=>[e,s]))})),v),stopAutoSave:()=>(p(i,a.delListener),v),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,o=a.shift()));)try{await o()}catch{}l=0}var a})(),v),getStore:()=>a,destroy:()=>v.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return f(v)},z="store",K=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=Y(a,(async()=>(await o(),V((await c(n,B))[k]?.[z]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[k]:{[z]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[o,c,r]],w)=>{const[y,E,u]=q(t,w),p=async(a,t)=>await T(M(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),v=async(a,t)=>c?await u(r,B,{[k]:a},!0,!0,t):null;return Y(a,(async()=>{await y();const a=await(async()=>O(l(await T(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await E(r,B))[k]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await p(t),await v(e)}else{const[a,e]=t();await p(a,!0),await v(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=g();return C(a,((a,i)=>{const o=w(S(N(t,v(a)?{[e]:a}:a)),0,b(t));d(o[0])||s(i,o[0])||F(n,i,o)})),n},ia="pragma ",oa="data_version",ca="schema_version",ra=(a,e,s,n,i,o)=>{let c,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,v(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=e,c=w(S(N(sa,o)),0,b(sa)),r=c[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:B},aa,(a=>j(l,a)&&a==r)),na(i,{[ta]:null,[Z]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>j(l,t)&&t==r)),c],l]})(e);return(l?K:G)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+oa))[0][oa],e=(await s(ia+ca))[0][ca];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),E,A(u))},la=(a,t,e,s,n)=>ra(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n);export{la as createSqliteWasmPersister};
|
|
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),o=a=>a.length,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e=",",s=a(""),n=(a,t)=>a.repeat(t),i=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),o=a=>a.length,r=a=>0==o(a),l=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),y=(a,...t)=>a.push(...t),E=Promise,u=(a,t)=>a instanceof t,d=a=>null==a,v=(a,t,e)=>d(a)?e?.():t(a),T=t=>a(t)==s,m=async a=>E.all(a),A=(a,t)=>a?.has(t)??!1,L=a=>[...a?.values()??[]],p=(a,t)=>a?.delete(t),f=Object,h=f.keys,R=f.freeze,O=(a=[])=>f.fromEntries(a),N=(...a)=>f.assign({},...a),C=(a,t)=>c(f.entries(a),(([a,e])=>t(e,a))),S=a=>f.values(a),g=a=>o(h(a)),D=a=>(a=>u(a,f)&&a.constructor==f)(a)&&0==g(a),I=a=>new Map(a),b=a=>[...a?.keys()??[]],F=(a,t)=>a?.get(t),M=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>d(e)?(p(a,t),a):a?.set(t,e),_=(a,t,e,s=$)=>(C(t,((t,s)=>e(a,s,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>((a,t)=>!d(((a,t)=>v(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),P=a=>new Set(Array.isArray(a)||d(a)?a:[a]),B=(a,t)=>a?.add(t),H="_",W="_id",j=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",x="WHERE",J=(a,t)=>{const s=I();return[async()=>_(s,O(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,O(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>{return $(s,t,_((c=I,A(n=s,i=t)||$(n,i,c()),F(n,i)),e,((a,t,e)=>{e!=F(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,c}),((a,t)=>$(s,t))),async(t,e)=>((a,t)=>!d(F(F(s,a),t)))(t,e)?O(l(c(await a("SELECT*FROM"+j(t)),(a=>{return[a[e],(t={...a},s=e,delete t[s],t)];var t,s})),(([a,t])=>!d(a)&&!D(t)))):{},async(t,n,o,w,E,u=!1)=>{const v=P();C(o??{},(a=>c(h(a??{}),(a=>B(v,a)))));const T=L(v);if(!u&&E&&r(T)&&A(s,t))return await a("DROP TABLE"+j(t)),void $(s,t);if(r(T)||A(s,t)){const e=F(s,t),i=P(b(e));await m([...c(T,(async s=>{p(i,s)||(await a(`ALTER TABLE${j(t)}ADD${j(s)}`),$(e,s,""))})),...!u&&w?c(L(i),(async s=>{s!=n&&(await a(`ALTER TABLE${j(t)}DROP${j(s)}`),$(e,s))})):[]])}else await a(`CREATE TABLE${j(t)}(${j(n)} PRIMARY KEY ON CONFLICT REPLACE${i(c(T,(a=>e+j(a))))});`),$(s,t,I([[n,""],...c(T,(a=>[a,""]))]));if(u)d(o)?await a("DELETE FROM"+j(t)+"WHERE 1"):await m(C(o,(async(e,s)=>{d(e)?await a("DELETE FROM"+j(t)+x+j(n)+"=?",[s]):r(T)||await U(a,t,n,h(e),[s,...S(e)])})));else if(r(T))A(s,t)&&await a("DELETE FROM"+j(t)+"WHERE 1");else{const e=l(b(F(s,t)),(a=>a!=n)),i=[],r=[];C(o??{},((a,t)=>{y(i,t,...c(e,(t=>a?.[t]))),y(r,t)})),await U(a,t,n,e,i),await a("DELETE FROM"+j(t)+x+j(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,s,r,l)=>await a("INSERT INTO"+j(t)+"("+j(s)+i(c(r,(a=>e+j(a))))+")VALUES"+n(`,(?${n(",?",o(r))})`,o(l)/(o(r)+1)).substring(1)+"ON CONFLICT("+j(s)+")DO UPDATE SET"+i(c(r,(a=>j(a)+"=excluded."+j(a))),e),l),Y=a=>i(c(a,(()=>"?")),e),z=JSON.parse,K=(a,t,e,s,n)=>{let i,c,o,r=0,l=0,w=0;const E=[],u=async a=>(2!=r&&(r=1,await T.schedule((async()=>{await a(),r=0}))),T),T={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(T.stopAutoLoad(),await T.load(e,n),w=1,o=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),T),stopAutoLoad:()=>(w&&(n(o),o=void 0,w=0),T),save:async t=>(1!=r&&(r=2,await T.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),T),startAutoSave:async()=>(await T.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||T.save((()=>[e,s]))})),T),stopAutoSave:()=>(v(i,a.delListener),T),schedule:async(...a)=>(y(E,...a),await(async()=>{if(!l){for(l=1;!d((a=E,c=a.shift()));)try{await c()}catch{}l=0}var a})(),T),getStore:()=>a,destroy:()=>T.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(T)},V="store",q=(a,t,e,s,[n],i)=>{const[c,o,r]=J(t,i),l=K(a,(async()=>(await c(),z((await o(n,W))[H]?.[V]))),(async a=>l.schedule(c,(async()=>{var t;await r(n,W,{[H]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>u(t,Map)?f.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},G=(a,t,e,s,[n,i,[c,o,r]],w)=>{const[y,E,u]=J(t,w),v=async(a,t)=>await m(M(i,(async([e,s,n,i],c)=>{const o=a[c];t&&void 0===o||await u(e,s,o,n,i,t)}))),T=async(a,t)=>o?await u(r,W,{[H]:a},!0,!0,t):null;return K(a,(async()=>{await y();const a=await(async()=>O(l(await m(M(n,(async([a,t],e)=>[a,await E(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>c?(await E(r,W))[H]:{})();return D(a)&&d(t)?void 0:[a,t]}),(async(a,t)=>{if(await y(),d(t)){const[t,e]=a();await v(t),await T(e)}else{const[a,e]=t();await v(a,!0),await T(e,!0)}}),e,s)},Q="json",X="autoLoadIntervalSeconds",Z="rowIdColumnName",aa="tableId",ta="tableName",ea={mode:Q,[X]:1},sa={load:0,save:0,[ta]:t+"_values"},na=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const c=w(S(N(t,T(a)?{[e]:a}:a)),0,g(t));d(c[0])||s(i,c[0])||$(n,i,c)})),n},ia="pragma ",ca="data_version",oa="schema_version",ra=(a,e,s,n,i,c)=>{let o,r;const[l,y,E,u]=(a=>{const e=(a=>N(ea,T(a)?{storeTableName:a}:a??{}))(a),s=e[X];if(e.mode==Q){const{storeTableName:a=t}=e;return[1,s,[a],P(a)]}const{tables:{load:n={},save:i={}}={},values:c={}}=e,o=w(S(N(sa,c)),0,g(sa)),r=o[2],l=P(r);return[0,s,[na(n,{[aa]:null,[Z]:W},aa,(a=>B(l,a)&&a==r)),na(i,{[ta]:null,[Z]:W,deleteEmptyColumns:0,deleteEmptyTable:0},ta,((a,t)=>B(l,t)&&t==r)),o],l]})(e);return(l?q:G)(a,c?async(a,t)=>(c(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(ia+ca))[0][ca],e=(await s(ia+oa))[0][oa];t==(o??=t)&&e==(r??=e)||(a(),o=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),o=r=null,i(t)}),E,L(u))},la="change",wa=(a,t,e,s)=>ra(a,e,((a,e=[])=>new E(((s,n)=>t.all(a,e,((a,t)=>a?n(a):s(t.map((a=>({...a}))))))))),(a=>{const e=(t,e,s)=>a(s);return t.on(la,e),e}),(a=>t.off(la,a)),s);export{wa as createSqlite3Persister};
|
|
Binary file
|
|
@@ -392,6 +392,13 @@ export type DpcTabularLoad = {
|
|
|
392
392
|
* enable the `deleteEmptyColumns` or `deleteEmptyTable` settings, you can
|
|
393
393
|
* simply provide the name of the database table instead of the whole object.
|
|
394
394
|
*
|
|
395
|
+
* `deleteEmptyColumns` and `deleteEmptyTable` only have a guaranteed effect
|
|
396
|
+
* when an explicit call is made to the Persister's save method. Columns and
|
|
397
|
+
* tables will not necessarily be removed when the Persister is incrementally
|
|
398
|
+
* 'autoSaving', due to performance reasons. If you want to be sure that your
|
|
399
|
+
* database table matches a TinyBase Table without any extraneous columns,
|
|
400
|
+
* simply call the save method at an idle moment.
|
|
401
|
+
*
|
|
395
402
|
* The 'Dpc' prefix indicates that this type is used within the
|
|
396
403
|
* DatabasePersisterConfig type.
|
|
397
404
|
* @example
|
|
@@ -416,6 +416,13 @@ export type DpcTabularLoad<Schema extends OptionalTablesSchema> = {
|
|
|
416
416
|
* enable the `deleteEmptyColumns` or `deleteEmptyTable` settings, you can
|
|
417
417
|
* simply provide the name of the database table instead of the whole object.
|
|
418
418
|
*
|
|
419
|
+
* `deleteEmptyColumns` and `deleteEmptyTable` only have a guaranteed effect
|
|
420
|
+
* when an explicit call is made to the Persister's save method. Columns and
|
|
421
|
+
* tables will not necessarily be removed when the Persister is incrementally
|
|
422
|
+
* 'autoSaving', due to performance reasons. If you want to be sure that your
|
|
423
|
+
* database table matches a TinyBase Table without any extraneous columns,
|
|
424
|
+
* simply call the save method at an idle moment.
|
|
425
|
+
*
|
|
419
426
|
* The 'Dpc' prefix indicates that this type is used within the
|
|
420
427
|
* DatabasePersisterConfig type.
|
|
421
428
|
* @example
|
|
@@ -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),
|
|
1
|
+
var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),d=(a,...t)=>a.push(...t),u=Promise,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),T=a=>t(a)==n,m=async a=>u.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,O=h.keys,R=h.freeze,C=(a=[])=>h.fromEntries(a),S=(...a)=>h.assign({},...a),N=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),b=a=>h.values(a),g=a=>r(O(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==g(a),I=a=>new Map(a),F=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(L(a,t),a):a?.set(t,e),_=(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)=>!f(((a,t)=>p(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||f(a)?a:[a]),x=(a,t)=>a?.add(t),B="_",j="_id",H=a=>`"${a.replace(/"/g,'""')}"`,U="FROM pragma_table_",k="WHERE",q=(a,t)=>{const e=I();return[async()=>_(e,C(await m(c(await a("SELECT name "+U+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,C(c(await a("SELECT name,type "+U+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,_((o=I,v(n=e,i=t)||P(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,s)=>((a,t)=>!f(M(M(e,a),t)))(t,s)?C(y(c(await a("SELECT*FROM"+H(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!f(a)&&!D(t)))):{},async(t,n,i,r,w,u=!1)=>{const E=W();N(i??{},(a=>c(O(a??{}),(a=>x(E,a)))));const p=A(E);if(!u&&w&&l(p)&&v(e,t))return await a("DROP TABLE"+H(t)),void P(e,t);if(l(p)||v(e,t)){const s=M(e,t),i=W(F(s));await m([...c(p,(async e=>{L(i,e)||(await a(`ALTER TABLE${H(t)}ADD${H(e)}`),P(s,e,""))})),...!u&&r?c(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${H(t)}DROP${H(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${H(t)}(${H(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(p,(a=>s+H(a))))});`),P(e,t,I([[n,""],...c(p,(a=>[a,""]))]));if(u)f(i)?await a("DELETE FROM"+H(t)+"WHERE 1"):await m(N(i,(async(e,s)=>{f(e)?await a("DELETE FROM"+H(t)+k+H(n)+"=?",[s]):l(p)||await J(a,t,n,O(e),[s,...b(e)])})));else if(l(p))v(e,t)&&await a("DELETE FROM"+H(t)+"WHERE 1");else{const s=y(F(M(e,t)),(a=>a!=n)),o=[],r=[];N(i??{},((a,t)=>{d(o,t,...c(s,(t=>a?.[t]))),d(r,t)})),await J(a,t,n,s,o),await a("DELETE FROM"+H(t)+k+H(n)+"NOT IN("+Y(r)+")",r)}}]},J=async(a,t,e,n,l)=>await a("INSERT INTO"+H(t)+"("+H(e)+o(c(n,(a=>s+H(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+H(e)+")DO UPDATE SET"+o(c(n,(a=>H(a)+"=excluded."+H(a))),s),l),Y=a=>o(c(a,(()=>"?")),s),z=JSON.parse,K=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],u=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await u((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await u((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(d(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return R(E)},V="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=q(t,i),l=K(a,(async()=>(await o(),z((await c(n,j))[B]?.[V]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,j,{[B]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,d,u]=q(t,l),E=async(a,t)=>await m($(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await u(e,s,c,n,i,t)}))),p=async(a,t)=>c?await u(r,j,{[B]:a},!0,!0,t):null;return K(a,(async()=>{await w();const a=await(async()=>C(y(await m($(n,(async([a,t],e)=>[a,await d(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await d(r,j))[B]:{})();return D(a)&&f(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),f(t)){const[t,e]=a();await E(t),await p(e)}else{const[a,e]=t();await E(a,!0),await p(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return N(a,((a,i)=>{const o=w(b(S(t,T(a)?{[e]:a}:a)),0,g(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,d,u]=(a=>{const t=(a=>S(sa,T(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(b(S(na,o)),0,g(na)),r=c[2],l=W(r);return[0,s,[ia(n,{[ta]:null,[aa]:j},ta,(a=>x(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:j,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>x(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>u.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),d,A(u))};a.createCrSqliteWasmPersister=(a,t,e,s)=>la(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,s)=>a(s)))),(a=>a()),s)},"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),
|
|
1
|
+
var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,E=(a,t)=>a instanceof t,p=a=>null==a,f=(a,t,e)=>p(a)?e?.():t(a),m=a=>t(a)==n,T=async a=>d.all(a),v=(a,t)=>a?.has(t)??!1,h=a=>[...a?.values()??[]],A=(a,t)=>a?.delete(t),L=Object,R=L.keys,O=L.freeze,S=(a=[])=>L.fromEntries(a),N=(...a)=>L.assign({},...a),b=(a,t)=>c(L.entries(a),(([a,e])=>t(e,a))),C=a=>L.values(a),g=a=>r(R(a)),D=a=>(a=>E(a,L)&&a.constructor==L)(a)&&0==g(a),I=a=>new Map(a),_=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),F=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),$=(a,t,e)=>p(e)?(A(a,t),a):a?.set(t,e),P=(a,t,e,s=$)=>(b(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)=>f(a,(a=>a[t])))(a,t)))(t,e)?0:s(a,e))),a),W=a=>new Set(Array.isArray(a)||p(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",B="_id",k=a=>`"${a.replace(/"/g,'""')}"`,q="FROM pragma_table_",H="WHERE",J=(a,t)=>{const e=I();return[async()=>P(e,S(await T(c(await a("SELECT name "+q+"list WHERE schema='main'AND type='table'AND name IN("+V(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+q+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return $(e,t,P((o=I,v(n=e,i=t)||$(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&$(a,t,e)}),((a,t)=>$(a,t))));var n,i,o}),((a,t)=>$(e,t))),async(t,s)=>((a,t)=>!p(M(M(e,a),t)))(t,s)?S(y(c(await a("SELECT*FROM"+k(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!p(a)&&!D(t)))):{},async(t,n,i,r,w,d=!1)=>{const E=W();b(i??{},(a=>c(R(a??{}),(a=>j(E,a)))));const f=h(E);if(!d&&w&&l(f)&&v(e,t))return await a("DROP TABLE"+k(t)),void $(e,t);if(l(f)||v(e,t)){const s=M(e,t),i=W(_(s));await T([...c(f,(async e=>{A(i,e)||(await a(`ALTER TABLE${k(t)}ADD${k(e)}`),$(s,e,""))})),...!d&&r?c(h(i),(async e=>{e!=n&&(await a(`ALTER TABLE${k(t)}DROP${k(e)}`),$(s,e))})):[]])}else await a(`CREATE TABLE${k(t)}(${k(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(f,(a=>s+k(a))))});`),$(e,t,I([[n,""],...c(f,(a=>[a,""]))]));if(d)p(i)?await a("DELETE FROM"+k(t)+"WHERE 1"):await T(b(i,(async(e,s)=>{p(e)?await a("DELETE FROM"+k(t)+H+k(n)+"=?",[s]):l(f)||await U(a,t,n,R(e),[s,...C(e)])})));else if(l(f))v(e,t)&&await a("DELETE FROM"+k(t)+"WHERE 1");else{const s=y(_(M(e,t)),(a=>a!=n)),o=[],r=[];b(i??{},((a,t)=>{u(o,t,...c(s,(t=>a?.[t]))),u(r,t)})),await U(a,t,n,s,o),await a("DELETE FROM"+k(t)+H+k(n)+"NOT IN("+V(r)+")",r)}}]},U=async(a,t,e,n,l)=>await a("INSERT INTO"+k(t)+"("+k(e)+o(c(n,(a=>s+k(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+k(e)+")DO UPDATE SET"+o(c(n,(a=>k(a)+"=excluded."+k(a))),s),l),V=a=>o(c(a,(()=>"?")),s),Y=JSON.parse,z=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(f(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!p((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(E)},K="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=z(a,(async()=>(await o(),Y((await c(n,B))[x]?.[K]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,B,{[x]:{[K]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?L.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,u,d]=J(t,l),E=async(a,t)=>await T(F(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await d(e,s,c,n,i,t)}))),f=async(a,t)=>c?await d(r,B,{[x]:a},!0,!0,t):null;return z(a,(async()=>{await w();const a=await(async()=>S(y(await T(F(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await u(r,B))[x]:{})();return D(a)&&p(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),p(t)){const[t,e]=a();await E(t),await f(e)}else{const[a,e]=t();await E(a,!0),await f(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return b(a,((a,i)=>{const o=w(C(N(t,m(a)?{[e]:a}:a)),0,g(t));p(o[0])||s(i,o[0])||$(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,u,d]=(a=>{const t=(a=>N(sa,m(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],W(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(C(N(na,o)),0,g(na)),r=c[2],l=W(r);return[0,s,[ia(n,{[ta]:null,[aa]:B},ta,(a=>j(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>j(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),u,h(d))};a.createSqliteWasmPersister=(a,t,e,s,n)=>la(a,s,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,s,n)=>a(n)),0)),(()=>t.capi.sqlite3_update_hook(e,(()=>0),0)),n)},"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),
|
|
1
|
+
var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",s=",",n=t(""),i=(a,t)=>a.repeat(t),o=(a,t="")=>a.join(t),c=(a,t)=>a.map(t),r=a=>a.length,l=a=>0==r(a),y=(a,t)=>a.filter(t),w=(a,t,e)=>a.slice(t,e),u=(a,...t)=>a.push(...t),d=Promise,E=(a,t)=>a instanceof t,f=a=>null==a,p=(a,t,e)=>f(a)?e?.():t(a),T=a=>t(a)==n,m=async a=>d.all(a),v=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],L=(a,t)=>a?.delete(t),h=Object,R=h.keys,O=h.freeze,S=(a=[])=>h.fromEntries(a),N=(...a)=>h.assign({},...a),C=(a,t)=>c(h.entries(a),(([a,e])=>t(e,a))),g=a=>h.values(a),b=a=>r(R(a)),D=a=>(a=>E(a,h)&&a.constructor==h)(a)&&0==b(a),I=a=>new Map(a),F=a=>[...a?.keys()??[]],M=(a,t)=>a?.get(t),$=(a,t)=>c([...a?.entries()??[]],(([a,e])=>t(e,a))),P=(a,t,e)=>f(e)?(L(a,t),a):a?.set(t,e),_=(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=a=>new Set(Array.isArray(a)||f(a)?a:[a]),j=(a,t)=>a?.add(t),x="_",H="_id",W=a=>`"${a.replace(/"/g,'""')}"`,k="FROM pragma_table_",q="WHERE",J=(a,t)=>{const e=I();return[async()=>_(e,S(await m(c(await a("SELECT name "+k+"list WHERE schema='main'AND type='table'AND name IN("+Y(t)+")",t),(async({name:t})=>[t,S(c(await a("SELECT name,type "+k+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,s)=>{return P(e,t,_((o=I,v(n=e,i=t)||P(n,i,o()),M(n,i)),s,((a,t,e)=>{e!=M(a,t)&&P(a,t,e)}),((a,t)=>P(a,t))));var n,i,o}),((a,t)=>P(e,t))),async(t,s)=>((a,t)=>!f(M(M(e,a),t)))(t,s)?S(y(c(await a("SELECT*FROM"+W(t)),(a=>{return[a[s],(t={...a},e=s,delete t[e],t)];var t,e})),(([a,t])=>!f(a)&&!D(t)))):{},async(t,n,i,r,w,d=!1)=>{const E=B();C(i??{},(a=>c(R(a??{}),(a=>j(E,a)))));const p=A(E);if(!d&&w&&l(p)&&v(e,t))return await a("DROP TABLE"+W(t)),void P(e,t);if(l(p)||v(e,t)){const s=M(e,t),i=B(F(s));await m([...c(p,(async e=>{L(i,e)||(await a(`ALTER TABLE${W(t)}ADD${W(e)}`),P(s,e,""))})),...!d&&r?c(A(i),(async e=>{e!=n&&(await a(`ALTER TABLE${W(t)}DROP${W(e)}`),P(s,e))})):[]])}else await a(`CREATE TABLE${W(t)}(${W(n)} PRIMARY KEY ON CONFLICT REPLACE${o(c(p,(a=>s+W(a))))});`),P(e,t,I([[n,""],...c(p,(a=>[a,""]))]));if(d)f(i)?await a("DELETE FROM"+W(t)+"WHERE 1"):await m(C(i,(async(e,s)=>{f(e)?await a("DELETE FROM"+W(t)+q+W(n)+"=?",[s]):l(p)||await U(a,t,n,R(e),[s,...g(e)])})));else if(l(p))v(e,t)&&await a("DELETE FROM"+W(t)+"WHERE 1");else{const s=y(F(M(e,t)),(a=>a!=n)),o=[],r=[];C(i??{},((a,t)=>{u(o,t,...c(s,(t=>a?.[t]))),u(r,t)})),await U(a,t,n,s,o),await a("DELETE FROM"+W(t)+q+W(n)+"NOT IN("+Y(r)+")",r)}}]},U=async(a,t,e,n,l)=>await a("INSERT INTO"+W(t)+"("+W(e)+o(c(n,(a=>s+W(a))))+")VALUES"+i(`,(?${i(",?",r(n))})`,r(l)/(r(n)+1)).substring(1)+"ON CONFLICT("+W(e)+")DO UPDATE SET"+o(c(n,(a=>W(a)+"=excluded."+W(a))),s),l),Y=a=>o(c(a,(()=>"?")),s),z=JSON.parse,K=(a,t,e,s,n)=>{let i,o,c,r=0,l=0,y=0;const w=[],d=async a=>(2!=r&&(r=1,await E.schedule((async()=>{await a(),r=0}))),E),E={load:async(e,s)=>await d((async()=>{try{a.setContent(await t())}catch{a.setContent([e,s])}})),startAutoLoad:async(e={},n={})=>(E.stopAutoLoad(),await E.load(e,n),y=1,c=s((async(e,s)=>await d((async()=>{if(s)a.setTransactionChanges(s());else try{a.setContent(e?.()??await t())}catch{}})))),E),stopAutoLoad:()=>(y&&(n(c),c=void 0,y=0),E),save:async t=>(1!=r&&(r=2,await E.schedule((async()=>{try{await e(a.getContent,t)}catch{}r=0}))),E),startAutoSave:async()=>(await E.stopAutoSave().save(),i=a.addDidFinishTransactionListener(((a,t)=>{const[e,s]=t();D(e)&&D(s)||E.save((()=>[e,s]))})),E),stopAutoSave:()=>(p(i,a.delListener),E),schedule:async(...a)=>(u(w,...a),await(async()=>{if(!l){for(l=1;!f((a=w,o=a.shift()));)try{await o()}catch{}l=0}var a})(),E),getStore:()=>a,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return O(E)},V="store",G=(a,t,e,s,[n],i)=>{const[o,c,r]=J(t,i),l=K(a,(async()=>(await o(),z((await c(n,H))[x]?.[V]))),(async a=>l.schedule(o,(async()=>{var t;await r(n,H,{[x]:{[V]:(t=a(),JSON.stringify(t,((a,t)=>E(t,Map)?h.fromEntries([...t]):t)))}},!0,!0)}))),e,s);return l},Q=(a,t,e,s,[n,i,[o,c,r]],l)=>{const[w,u,d]=J(t,l),E=async(a,t)=>await m($(i,(async([e,s,n,i],o)=>{const c=a[o];t&&void 0===c||await d(e,s,c,n,i,t)}))),p=async(a,t)=>c?await d(r,H,{[x]:a},!0,!0,t):null;return K(a,(async()=>{await w();const a=await(async()=>S(y(await m($(n,(async([a,t],e)=>[a,await u(e,t)]))),(a=>!D(a[1])))))(),t=await(async()=>o?(await u(r,H))[x]:{})();return D(a)&&f(t)?void 0:[a,t]}),(async(a,t)=>{if(await w(),f(t)){const[t,e]=a();await E(t),await p(e)}else{const[a,e]=t();await E(a,!0),await p(e,!0)}}),e,s)},X="json",Z="autoLoadIntervalSeconds",aa="rowIdColumnName",ta="tableId",ea="tableName",sa={mode:X,[Z]:1},na={load:0,save:0,[ea]:e+"_values"},ia=(a,t,e,s)=>{const n=I();return C(a,((a,i)=>{const o=w(g(N(t,T(a)?{[e]:a}:a)),0,b(t));f(o[0])||s(i,o[0])||P(n,i,o)})),n},oa="pragma ",ca="data_version",ra="schema_version",la=(a,t,s,n,i,o)=>{let c,r;const[l,y,u,d]=(a=>{const t=(a=>N(sa,T(a)?{storeTableName:a}:a??{}))(a),s=t[Z];if(t.mode==X){const{storeTableName:a=e}=t;return[1,s,[a],B(a)]}const{tables:{load:n={},save:i={}}={},values:o={}}=t,c=w(g(N(na,o)),0,b(na)),r=c[2],l=B(r);return[0,s,[ia(n,{[ta]:null,[aa]:H},ta,(a=>j(l,a)&&a==r)),ia(i,{[ea]:null,[aa]:H,deleteEmptyColumns:0,deleteEmptyTable:0},ea,((a,t)=>j(l,t)&&t==r)),c],l]})(t);return(l?G:Q)(a,o?async(a,t)=>(o(a,t),await s(a,t)):s,(a=>[setInterval((async()=>{try{const t=(await s(oa+ca))[0][ca],e=(await s(oa+ra))[0][ra];t==(c??=t)&&e==(r??=e)||(a(),c=t,r=e)}catch{}}),1e3*y),n((t=>d.has(t)?a():0))]),(([a,t])=>{clearInterval(a),c=r=null,i(t)}),u,A(d))},ya="change";a.createSqlite3Persister=(a,t,e,s)=>la(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=(t,e,s)=>a(s);return t.on(ya,e),e}),(a=>t.off(ya,a)),s)},"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=",",o=n(""),r=(e,n)=>e.repeat(n),i=(e,n="")=>e.join(n),u=(e,n)=>e.map(n),a=e=>e.length,d=e=>0==a(e),s=(e,n)=>e.filter(n),c=(e,n,t)=>e.slice(n,t),v=(e,...n)=>e.push(...n),y=Promise,f=(e,n)=>e instanceof n,p=e=>null==e,h=(e,n,t)=>p(e)?null==t?void 0:t():n(e),E=e=>n(e)==o,m=e=>{return n=function*(){return y.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},O=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},P=(e,n)=>null==e?void 0:e.delete(n),A=Object,L=A.keys,b=A.freeze,w=(e=[])=>A.fromEntries(e),x=(...e)=>A.assign({},...e),R=(e,n)=>u(A.entries(e),(([e,t])=>n(t,e))),S=e=>A.values(e),C=e=>a(L(e)),N=e=>(e=>f(e,A)&&e.constructor==A)(e)&&0==C(e),g=e=>new Map(e),D=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},I=(e,n)=>null==e?void 0:e.get(n),F=(e,n)=>{var t;return u([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},M=(e,n,t)=>p(t)?(P(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=M)=>(R(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!p(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),j=e=>new Set(Array.isArray(e)||p(e)?e:[e]),_=(e,n)=>null==e?void 0:e.add(n),W="_",B="_id",H=e=>`"${e.replace(/"/g,'""')}"`;var U=Object.defineProperty,k=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,Y=(e,n,t)=>n in e?U(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},K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="FROM pragma_table_",G="WHERE",Q=(e,n)=>{const t=g();return[()=>K(void 0,null,(function*(){return $(t,w(yield m(u(yield e("SELECT name "+V+"list WHERE schema='main'AND type='table'AND name IN("+Z(n)+")",n),(n=>K(void 0,[n],(function*({name:n}){return[n,w(u(yield e("SELECT name,type "+V+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>{return M(t,n,$((i=g,T(o=t,r=n)||M(o,r,i()),I(o,r)),l,((e,n,t)=>{t!=I(e,n)&&M(e,n,t)}),((e,n)=>M(e,n))));var o,r,i}),((e,n)=>M(t,n)))})),(n,l)=>K(void 0,null,(function*(){return((e,n)=>!p(I(I(t,e),n)))(n,l)?w(s(u(yield e("SELECT*FROM"+H(n)),(e=>{return[e[l],(n=z({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!p(e)&&!N(n)))):{}})),(n,o,r,a,c,y=!1)=>K(void 0,null,(function*(){const f=j();R(null!=r?r:{},(e=>u(L(null!=e?e:{}),(e=>_(f,e)))));const h=O(f);if(!y&&c&&d(h)&&T(t,n))return yield e("DROP TABLE"+H(n)),void M(t,n);if(d(h)||T(t,n)){const l=I(t,n),r=j(D(l));yield m([...u(h,(t=>K(void 0,null,(function*(){P(r,t)||(yield e(`ALTER TABLE${H(n)}ADD${H(t)}`),M(l,t,""))})))),...!y&&a?u(O(r),(t=>K(void 0,null,(function*(){t!=o&&(yield e(`ALTER TABLE${H(n)}DROP${H(t)}`),M(l,t))})))):[]])}else yield e(`CREATE TABLE${H(n)}(${H(o)} PRIMARY KEY ON CONFLICT REPLACE${i(u(h,(e=>l+H(e))))});`),M(t,n,g([[o,""],...u(h,(e=>[e,""]))]));if(y)p(r)?yield e("DELETE FROM"+H(n)+"WHERE 1"):yield m(R(r,((t,l)=>K(void 0,null,(function*(){p(t)?yield e("DELETE FROM"+H(n)+G+H(o)+"=?",[l]):d(h)||(yield X(e,n,o,L(t),[l,...S(t)]))})))));else if(d(h))T(t,n)&&(yield e("DELETE FROM"+H(n)+"WHERE 1"));else{const l=s(D(I(t,n)),(e=>e!=o)),i=[],a=[];R(null!=r?r:{},((e,n)=>{v(i,n,...u(l,(n=>null==e?void 0:e[n]))),v(a,n)})),yield X(e,n,o,l,i),yield e("DELETE FROM"+H(n)+G+H(o)+"NOT IN("+Z(a)+")",a)}}))]},X=(e,n,t,o,d)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+H(n)+"("+H(t)+i(u(o,(e=>l+H(e))))+")VALUES"+r(`,(?${r(",?",a(o))})`,a(d)/(a(o)+1)).substring(1)+"ON CONFLICT("+H(t)+")DO UPDATE SET"+i(u(o,(e=>H(e)+"=excluded."+H(e))),l),d)})),Z=e=>i(u(e,(()=>"?")),l),ee=JSON.parse;var ne=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const c=[],y=e=>ne(void 0,null,(function*(){return 2!=a&&(a=1,yield f.schedule((()=>ne(void 0,null,(function*(){yield e(),a=0}))))),f})),f={load:(t,l)=>ne(void 0,null,(function*(){return yield y((()=>ne(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ne(void 0,[...t],(function*(t={},o={}){return f.stopAutoLoad(),yield f.load(t,o),s=1,u=l(((t,l)=>ne(void 0,null,(function*(){return yield y((()=>ne(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),f})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),f),save:n=>ne(void 0,null,(function*(){return 1!=a&&(a=2,yield f.schedule((()=>ne(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){}a=0}))))),f})),startAutoSave:()=>ne(void 0,null,(function*(){return yield f.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();N(t)&&N(l)||f.save((()=>[t,l]))})),f})),stopAutoSave:()=>(h(r,e.delListener),f),schedule:(...e)=>ne(void 0,null,(function*(){return v(c,...e),yield ne(void 0,null,(function*(){if(!d){for(d=1;!p((e=c,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),f})),getStore:()=>e,destroy:()=>f.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return b(f)};var le=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const oe="store",re=(e,n,t,l,[o],r)=>{const[i,u,a]=Q(n,r),d=te(e,(()=>le(void 0,null,(function*(){var e;return yield i(),ee(null==(e=(yield u(o,B))[W])?void 0:e[oe])}))),(e=>le(void 0,null,(function*(){return d.schedule(i,(()=>le(void 0,null,(function*(){var n;yield a(o,B,{[W]:{[oe]:(n=e(),JSON.stringify(n,((e,n)=>f(n,Map)?A.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l);return d};var ie=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ue=(e,n,t,l,[o,r,[i,u,a]],d)=>{const[c,v,y]=Q(n,d),f=(e,n)=>ie(void 0,null,(function*(){return yield m(F(r,((t,l)=>ie(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield y(t,l,u,o,r,n))})))))})),h=(e,n)=>ie(void 0,null,(function*(){return u?yield y(a,B,{[W]:e},!0,!0,n):null}));return te(e,(()=>ie(void 0,null,(function*(){yield c();const e=yield ie(void 0,null,(function*(){return w(s(yield m(F(o,((e,n)=>ie(void 0,[e,n],(function*([e,n],t){return[e,yield v(t,n)]}))))),(e=>!N(e[1]))))})),n=yield ie(void 0,null,(function*(){return i?(yield v(a,B))[W]:{}}));return N(e)&&p(n)?void 0:[e,n]}))),((e,n)=>ie(void 0,null,(function*(){if(yield c(),p(n)){const[n,t]=e();yield f(n),yield h(t)}else{const[e,t]=n();yield f(e,!0),yield h(t,!0)}}))),t,l)},ae="json",de="autoLoadIntervalSeconds",se="rowIdColumnName",ce="tableId",ve="tableName",ye={mode:ae,[de]:1},fe={load:0,save:0,[ve]:t+"_values"},pe=(e,n,t,l)=>{const o=g();return R(e,((e,r)=>{const i=c(S(x(n,E(e)?{[t]:e}:e)),0,C(n));p(i[0])||l(r,i[0])||M(o,r,i)})),o};var he=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Ee="pragma ",me="data_version",Te="schema_version",Oe=(e,n,l,o,r,i)=>{let u,a;const[d,s,v,y]=(e=>{const n=(e=>x(ye,E(e)?{storeTableName:e}:null!=e?e:{}))(e),l=n[de];if(n.mode==ae){const{storeTableName:e=t}=n;return[1,l,[e],j(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=n,u=c(S(x(fe,i)),0,C(fe)),a=u[2],d=j(a);return[0,l,[pe(o,{[ce]:null,[se]:B},ce,(e=>_(d,e)&&e==a)),pe(r,{[ve]:null,[se]:B,deleteEmptyColumns:0,deleteEmptyTable:0},ve,((e,n)=>_(d,n)&&n==a)),u],d]})(n);return(d?re:ue)(e,i?(e,n)=>he(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>[setInterval((()=>he(void 0,null,(function*(){try{const n=(yield l(Ee+me))[0][me],t=(yield l(Ee+Te))[0][Te];n==(null!=u?u:u=n)&&t==(null!=a?a:a=t)||(e(),u=n,a=t)}catch(e){}}))),1e3*s),o((n=>y.has(n)?e():0))]),(([e,n])=>{clearInterval(e),u=a=null,r(n)}),v,O(y))};e.createCrSqliteWasmPersister=(e,n,t,l)=>Oe(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.onUpdate(((n,t,l)=>e(l)))),(e=>e()),l)},"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
|