tinybase 4.6.9 → 4.6.10
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-electric-sql.cjs +1 -1
- package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.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-electric-sql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.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 +36 -19
- package/lib/debug/persisters/persister-electric-sql.js +36 -19
- package/lib/debug/persisters/persister-expo-sqlite-next.js +36 -19
- package/lib/debug/persisters/persister-expo-sqlite.js +36 -19
- package/lib/debug/persisters/persister-sqlite-wasm.js +36 -19
- package/lib/debug/persisters/persister-sqlite3.js +36 -19
- 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-electric-sql.js +1 -1
- package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.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-electric-sql.js +1 -1
- package/lib/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.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-electric-sql.js +1 -1
- package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.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-electric-sql.js +1 -1
- package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.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 +10 -10
- package/readme.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("expo-sqlite/next");const n=e=>typeof e,t="tinybase",l="
|
|
1
|
+
"use strict";var e=require("expo-sqlite/next");const n=e=>typeof e,t="tinybase",l="",o=",",r=n(l),i=(e,n)=>e.repeat(n),u=Promise,a=clearInterval,d=e=>null==e,c=(e,n,t)=>d(e)?null==t?void 0:t():n(e),s=e=>n(e)==r,v=(e,n,t)=>e.slice(n,t),y=e=>e.length,f=e=>{return n=function*(){return u.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},E="_",p="_id",h=e=>`"${e.replace(/"/g,'""')}"`,m="SELECT",A=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),T=e=>0==y(e),L=(e,n)=>e.filter(n),P=(e,...n)=>e.push(...n),R=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},b=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},N=(e,n)=>null==e?void 0:e.delete(n),w=Object,x=e=>w.getPrototypeOf(e),C=w.keys,S=w.freeze,g=(e=[])=>w.fromEntries(e),D=(...e)=>w.assign({},...e),I=(e,n)=>O(w.entries(e),(([e,t])=>n(t,e))),F=e=>w.values(e),M=e=>y(C(e)),$=e=>(e=>!d(e)&&c(x(e),(e=>e==w.prototype||d(x(e))),(()=>!0)))(e)&&0==M(e),_=e=>new Map(e),j=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},B=(e,n)=>null==e?void 0:e.get(n),H=(e,n)=>{var t;return O([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},W=(e,n,t)=>d(t)?(N(e,n),e):null==e?void 0:e.set(n,t),q=(e,n,t)=>(R(e,n)||W(e,n,t()),B(e,n)),Y=(e,n,t,l=W)=>(I(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!d(((e,n)=>c(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),k=e=>new Set(Array.isArray(e)||d(e)?e:[e]),G=(e,n)=>null==e?void 0:e.add(n);var J=Object.defineProperty,U=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,V=(e,n,t)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Q=(e,n)=>{for(var t in n||(n={}))z.call(n,t)&&V(e,t,n[t]);if(U)for(var t of U(n))K.call(n,t)&&V(e,t,n[t]);return e},X=(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 Z=m+"*FROM",ee="FROM pragma_table_",ne="WHERE",te=(e,n,t,r)=>{const i=_();return[()=>X(void 0,null,(function*(){return Y(i,g(yield f(O(yield e("SELECT name "+ee+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+oe(n)+")ORDER BY name",n),(n=>X(void 0,[n],(function*({name:n}){return[n,g(O(yield e(m+" name,type "+ee+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>W(i,n,Y(q(i,n,_),t,((e,n,t)=>{t!=B(e,n)&&W(e,n,t)}),((e,n)=>W(e,n))))),((e,n)=>W(i,n)))})),(n,t)=>X(void 0,null,(function*(){return((e,n)=>!d(B(B(i,e),n)))(n,t)?g(L(O(yield e(Z+h(n)),(e=>{return[e[t],(n=Q({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!d(e)&&!$(n)))):{}})),(n,t,u,a,c,s=!1)=>X(void 0,null,(function*(){const v=k();I(null!=u?u:{},(e=>O(C(null!=e?e:{}),(e=>G(v,e)))));const y=b(v);if(!s&&c&&T(y)&&R(i,n))return yield e("DROP TABLE"+h(n)),void W(i,n);if(T(y)||R(i,n)){const o=B(i,n),r=k(j(o));yield f([...O(y,(t=>X(void 0,null,(function*(){N(r,t)||(yield e(`ALTER TABLE${h(n)}ADD${h(t)}`),W(o,t,l))})))),...!s&&a?O(b(r),(l=>X(void 0,null,(function*(){l!=t&&(yield e(`ALTER TABLE${h(n)}DROP${h(l)}`),W(o,l))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(t)} PRIMARY KEY ON CONFLICT REPLACE${A(O(y,(e=>o+h(e))))});`),W(i,n,_([[t,l],...O(y,(e=>[e,l]))]));if(s)d(u)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield f(I(u,((l,o)=>X(void 0,null,(function*(){d(l)?yield e("DELETE FROM"+h(n)+ne+h(t)+"=?",[o]):T(y)||(yield le(e,n,t,C(l),[o,...F(l)],r))})))));else if(T(y))R(i,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=L(j(B(i,n)),(e=>e!=t)),o=[],r=[];I(null!=u?u:{},((e,n)=>{P(o,n,...O(l,(n=>null==e?void 0:e[n]))),P(r,n)})),yield le(e,n,t,l,o),yield e("DELETE FROM"+h(n)+ne+h(t)+"NOT IN("+oe(r)+")",r)}})),n=>X(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},le=(e,n,t,r,u,a=!0)=>X(void 0,null,(function*(){return yield e("INSERT "+(a?l:"OR REPLACE ")+"INTO"+h(n)+"("+h(t)+A(O(r,(e=>o+h(e))))+")VALUES"+v(i(`,(?${i(",?",y(r))})`,y(u)/(y(r)+1)),1)+(a?"ON CONFLICT("+h(t)+")DO UPDATE SET"+A(O(r,(e=>h(e)+"=excluded."+h(e))),o):l),u)})),oe=e=>A(O(e,(()=>"?")),o),re=JSON.parse;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=_(),ae=_(),de=(e,n,t,l,o,r,[i,u]=[],a=[])=>{let s,v,y,f=0,E=0;q(ue,a,(()=>0)),q(ae,a,(()=>[]));const p=e=>ie(void 0,null,(function*(){return 2!=f&&(f=1,yield h.schedule((()=>ie(void 0,null,(function*(){yield e(),f=0}))))),h})),h={load:(t,l)=>ie(void 0,null,(function*(){return yield p((()=>ie(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>ie(void 0,[...t],(function*(t={},o={}){return h.stopAutoLoad(),yield h.load(t,o),E=1,y=l(((t,l)=>ie(void 0,null,(function*(){if(l){const n=l();yield p((()=>ie(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield p((()=>ie(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==t?void 0:t())?l:yield n())}catch(e){null==r||r(e)}}))))})))),h})),stopAutoLoad:()=>(E&&(o(y),y=void 0,E=0),h),save:n=>ie(void 0,null,(function*(){return 1!=f&&(f=2,yield h.schedule((()=>ie(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),h})),startAutoSave:()=>ie(void 0,null,(function*(){return yield h.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();$(t)&&$(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(c(s,e.delListener),s=void 0,h),schedule:(...e)=>ie(void 0,null,(function*(){return P(B(ae,a),...e),yield ie(void 0,null,(function*(){if(!B(ue,a)){for(W(ue,a,1);!d((e=B(ae,a),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}W(ue,a,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(h[i]=()=>u),S(h)};var ce=(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 se="store",ve=(e,n,t,l,o,[r],i,u,a)=>{const[d,c,s,v]=te(n,i,o);return de(e,(()=>ce(void 0,null,(function*(){return yield v((()=>ce(void 0,null,(function*(){var e,n;return yield d(),re(null!=(n=null==(e=(yield c(r,p))[E])?void 0:e[se])?n:"null")}))))}))),(e=>ce(void 0,null,(function*(){return yield v((()=>ce(void 0,null,(function*(){var n,t;yield d(),yield s(r,p,{[E]:{[se]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?w.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,[a,u],u)};var ye=(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 fe=(e,n,t,l,o,[r,i,[u,a,c]],s,v,y,h)=>{const[m,A,O,T]=te(n,s,o,h),P=(e,n)=>ye(void 0,null,(function*(){return yield f(H(i,((t,l)=>ye(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield O(t,l,u,o,r,n))})))))})),R=(e,n)=>ye(void 0,null,(function*(){return a?yield O(c,p,{[E]:e},!0,!0,n):null}));return de(e,(()=>ye(void 0,null,(function*(){return yield T((()=>ye(void 0,null,(function*(){yield m();const e=yield ye(void 0,null,(function*(){return g(L(yield f(H(r,((e,n)=>ye(void 0,[e,n],(function*([e,n],t){return[e,yield A(t,n)]}))))),(e=>!$(e[1]))))})),n=yield ye(void 0,null,(function*(){return u?(yield A(c,p))[E]:{}}));return $(e)&&d(n)?void 0:[e,n]}))))}))),((e,n)=>ye(void 0,null,(function*(){return yield T((()=>ye(void 0,null,(function*(){if(yield m(),d(n)){const[n,t]=e();yield P(n),yield R(t)}else{const[e,t]=n();yield P(e,!0),yield R(t,!0)}}))))}))),t,l,o,[y,v],v)},Ee="json",pe="autoLoadIntervalSeconds",he="rowIdColumnName",me="tableId",Ae="tableName",Oe={mode:Ee,[pe]:1},Te={load:0,save:0,[Ae]:t+"_values"},Le=(e,n,t,l)=>{const o=_();return I(e,((e,r)=>{const i=v(F(D(n,s(e)?{[t]:e}:e)),0,M(n));d(i[0])||l(r,i[0])||W(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 Re="pragma ",be="data_version",Ne="schema_version",we=(e,n,l,o,r,i,u,d,c="getDb",y)=>{let f,E,h;const[A,O,T,L]=(e=>{const n=(e=>D(Oe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),l=n[pe];if(n.mode==Ee){const{storeTableName:e=t}=n;return[1,l,[e],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=n,u=v(F(D(Te,i)),0,M(Te)),a=u[2],d=k(a);return[0,l,[Le(o,{[me]:null,[he]:p},me,(e=>G(d,e)&&e==a)),Le(r,{[Ae]:null,[he]:p,deleteEmptyColumns:0,deleteEmptyTable:0},Ae,((e,n)=>G(d,n)&&n==a)),u],d]})(n);return(A?ve:fe)(e,i?(e,n)=>Pe(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Pe(void 0,null,(function*(){try{const n=(yield l(Re+be))[0][be],t=(yield l(Re+Ne))[0][Ne],o=(yield l(m+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&t==(null!=E?E:E=t)&&o==(null!=h?h:h=o)||(e(),f=n,E=t)}catch(e){}})),t=O,n(),setInterval(n,1e3*t)),o((n=>L.has(n)?e():0))];var n,t}),(([e,n])=>{a(e),f=E=null,r(n)}),u,T,b(L),d,c,y)};exports.createExpoSqliteNextPersister=(n,t,l,o,r)=>we(n,l,((e,...n)=>{return l=[e,...n],o=function*(e,n=[]){return yield t.getAllAsync(e,n)},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}),(n=>e.addDatabaseChangeListener((({tableName:e})=>n(e)))),(e=>e.remove()),o,r,t);
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=e=>typeof e,n="tinybase",l="
|
|
1
|
+
"use strict";const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,l)=>a(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,s=(e,n,l)=>e.slice(n,l),v=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},f="_",E="_id",p=e=>`"${e.replace(/"/g,'""')}"`,h="SELECT",m=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),A=e=>0==v(e),T=(e,n)=>e.filter(n),P=(e,...n)=>e.push(...n),L=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},R=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},b=(e,n)=>null==e?void 0:e.delete(n),w=Object,N=e=>w.getPrototypeOf(e),x=w.keys,C=w.freeze,S=(e=[])=>w.fromEntries(e),g=(...e)=>w.assign({},...e),D=(e,n)=>O(w.entries(e),(([e,l])=>n(l,e))),I=e=>w.values(e),F=e=>v(x(e)),M=e=>(e=>!a(e)&&d(N(e),(e=>e==w.prototype||a(N(e))),(()=>!0)))(e)&&0==F(e),$=e=>new Map(e),_=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},j=(e,n)=>null==e?void 0:e.get(n),B=(e,n)=>{var l;return O([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},H=(e,n,l)=>a(l)?(b(e,n),e):null==e?void 0:e.set(n,l),W=(e,n,l)=>(L(e,n)||H(e,n,l()),j(e,n)),Y=(e,n,l,t=H)=>(D(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),k=e=>new Set(Array.isArray(e)||a(e)?e:[e]),q=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))U.call(n,l)&&K(e,l,n[l]);if(J)for(var l of J(n))z.call(n,l)&&K(e,l,n[l]);return e},Q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const X=h+"*FROM",Z="FROM pragma_table_",ee="WHERE",ne=(e,n,o,r)=>{const i=$();return[()=>Q(void 0,null,(function*(){return Y(i,S(yield y(O(yield e("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+te(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,S(O(yield e(h+" name,type "+Z+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>H(i,n,Y(W(i,n,$),l,((e,n,l)=>{l!=j(e,n)&&H(e,n,l)}),((e,n)=>H(e,n))))),((e,n)=>H(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!a(j(j(i,e),n)))(n,l)?S(T(O(yield e(X+p(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!M(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=k();D(null!=u?u:{},(e=>O(x(null!=e?e:{}),(e=>q(v,e)))));const f=R(v);if(!s&&c&&A(f)&&L(i,n))return yield e("DROP TABLE"+p(n)),void H(i,n);if(A(f)||L(i,n)){const t=j(i,n),r=k(_(t));yield y([...O(f,(o=>Q(void 0,null,(function*(){b(r,o)||(yield e(`ALTER TABLE${p(n)}ADD${p(o)}`),H(t,o,l))})))),...!s&&d?O(R(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${p(n)}DROP${p(l)}`),H(t,l))})))):[]])}else yield e(`CREATE TABLE${p(n)}(${p(o)} PRIMARY KEY ON CONFLICT REPLACE${m(O(f,(e=>t+p(e))))});`),H(i,n,$([[o,l],...O(f,(e=>[e,l]))]));if(s)a(u)?yield e("DELETE FROM"+p(n)+"WHERE 1"):yield y(D(u,((l,t)=>Q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+p(n)+ee+p(o)+"=?",[t]):A(f)||(yield le(e,n,o,x(l),[t,...I(l)],r))})))));else if(A(f))L(i,n)&&(yield e("DELETE FROM"+p(n)+"WHERE 1"));else{const l=T(_(j(i,n)),(e=>e!=o)),t=[],r=[];D(null!=u?u:{},((e,n)=>{P(t,n,...O(l,(n=>null==e?void 0:e[n]))),P(r,n)})),yield le(e,n,o,l,t),yield e("DELETE FROM"+p(n)+ee+p(o)+"NOT IN("+te(r)+")",r)}})),n=>Q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==o||o(e)}return yield e("END"),l}))]},le=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?l:"OR REPLACE ")+"INTO"+p(n)+"("+p(o)+m(O(i,(e=>t+p(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+p(o)+")DO UPDATE SET"+m(O(i,(e=>p(e)+"=excluded."+p(e))),t):l),u)})),te=e=>m(O(e,(()=>"?")),t),oe=JSON.parse;var re=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ie=$(),ue=$(),ae=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,E=0;W(ie,c,(()=>0)),W(ue,c,(()=>[]));const p=e=>re(void 0,null,(function*(){return 2!=f&&(f=1,yield h.schedule((()=>re(void 0,null,(function*(){yield e(),f=0}))))),h})),h={load:(l,t)=>re(void 0,null,(function*(){return yield p((()=>re(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>re(void 0,[...l],(function*(l={},o={}){return h.stopAutoLoad(),yield h.load(l,o),E=1,y=t(((l,t)=>re(void 0,null,(function*(){if(t){const n=t();yield p((()=>re(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield p((()=>re(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),h})),stopAutoLoad:()=>(E&&(o(y),y=void 0,E=0),h),save:n=>re(void 0,null,(function*(){return 1!=f&&(f=2,yield h.schedule((()=>re(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),h})),startAutoSave:()=>re(void 0,null,(function*(){return yield h.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();M(l)&&M(t)||h.save((()=>[l,t]))})),h})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,h),schedule:(...e)=>re(void 0,null,(function*(){return P(j(ue,c),...e),yield re(void 0,null,(function*(){if(!j(ie,c)){for(H(ie,c,1);!a((e=j(ue,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}H(ie,c,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(h[i]=()=>u),C(h)};var de=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ce="store",se=(e,n,l,t,o,[r],i,u,a)=>{const[d,c,s,v]=ne(n,i,o);return ae(e,(()=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var e,n;return yield d(),oe(null!=(n=null==(e=(yield c(r,E))[f])?void 0:e[ce])?n:"null")}))))}))),(e=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var n,l;yield d(),yield s(r,E,{[f]:{[ce]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?w.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[a,u],u)};var ve=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ye=(e,n,l,t,o,[r,i,[u,d,c]],s,v,p,h)=>{const[m,O,A,P]=ne(n,s,o,h),L=(e,n)=>ve(void 0,null,(function*(){return yield y(B(i,((l,t)=>ve(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield A(l,t,u,o,r,n))})))))})),R=(e,n)=>ve(void 0,null,(function*(){return d?yield A(c,E,{[f]:e},!0,!0,n):null}));return ae(e,(()=>ve(void 0,null,(function*(){return yield P((()=>ve(void 0,null,(function*(){yield m();const e=yield ve(void 0,null,(function*(){return S(T(yield y(B(r,((e,n)=>ve(void 0,[e,n],(function*([e,n],l){return[e,yield O(l,n)]}))))),(e=>!M(e[1]))))})),n=yield ve(void 0,null,(function*(){return u?(yield O(c,E))[f]:{}}));return M(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ve(void 0,null,(function*(){return yield P((()=>ve(void 0,null,(function*(){if(yield m(),a(n)){const[n,l]=e();yield L(n),yield R(l)}else{const[e,l]=n();yield L(e,!0),yield R(l,!0)}}))))}))),l,t,o,[p,v],v)},fe="json",Ee="autoLoadIntervalSeconds",pe="rowIdColumnName",he="tableId",me="tableName",Oe={mode:fe,[Ee]:1},Ae={load:0,save:0,[me]:n+"_values"},Te=(e,n,l,t)=>{const o=$();return D(e,((e,r)=>{const i=s(I(g(n,c(e)?{[l]:e}:e)),0,F(n));a(i[0])||t(r,i[0])||H(o,r,i)})),o};var Pe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma ",Re="data_version",be="schema_version",we=(e,l,t,o,r,i,a,d,v="getDb",y)=>{let f,p,m;const[O,A,T,P]=(e=>{const l=(e=>g(Oe,c(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[Ee];if(l.mode==fe){const{storeTableName:e=n}=l;return[1,t,[e],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=s(I(g(Ae,i)),0,F(Ae)),a=u[2],d=k(a);return[0,t,[Te(o,{[he]:null,[pe]:E},he,(e=>q(d,e)&&e==a)),Te(r,{[me]:null,[pe]:E,deleteEmptyColumns:0,deleteEmptyTable:0},me,((e,n)=>q(d,n)&&n==a)),u],d]})(l);return(O?se:ye)(e,i?(e,n)=>Pe(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Pe(void 0,null,(function*(){try{const n=(yield t(Le+Re))[0][Re],l=(yield t(Le+be))[0][be],o=(yield t(h+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&l==(null!=p?p:p=l)&&o==(null!=m?m:m=o)||(e(),f=n,p=l)}catch(e){}})),l=A,n(),setInterval(n,1e3*l)),o((n=>P.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=p=null,r(n)}),a,T,R(P),d,v,y)};exports.createExpoSqlitePersister=(e,n,l,t,o)=>we(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return(yield n.execAsync([{sql:e,args:l}],!1))[0].rows},new Promise(((e,n)=>{var l=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.onDatabaseChange((({tableName:n})=>e(n)))),(e=>e.remove()),t,o,n);
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=clearInterval,u=e=>null==e,a=(e,n,t)=>u(e)?null==t?void 0:t():n(e),d=n=>e(n)==l,c=(e,n,t)=>e.slice(n,t),s=e=>e.length,v=e=>{return n=function*(){return r.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},y="_",f="_id",p=e=>`"${e.replace(/"/g,'""')}"`,h="SELECT",E=(e,n="")=>e.join(n),m=(e,n)=>e.map(n),O=e=>0==s(e),b=(e,n)=>e.filter(n),P=(e,...n)=>e.push(...n),T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},w=(e,n)=>null==e?void 0:e.delete(n),L=Object,R=e=>L.getPrototypeOf(e),N=L.keys,S=L.freeze,g=(e=[])=>L.fromEntries(e),x=(...e)=>L.assign({},...e),C=(e,n)=>m(L.entries(e),(([e,t])=>n(t,e))),D=e=>L.values(e),I=e=>s(N(e)),j=e=>(e=>!u(e)&&a(R(e),(e=>e==L.prototype||u(R(e))),(()=>!0)))(e)&&0==I(e),_=e=>new Map(e),M=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),$=(e,n)=>{var t;return m([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},B=(e,n,t)=>u(t)?(w(e,n),e):null==e?void 0:e.set(n,t),H=(e,n,t)=>(T(e,n)||B(e,n,t()),F(e,n)),W=(e,n,t,l=B)=>(C(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)=>!u(((e,n)=>a(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),k=e=>new Set(Array.isArray(e)||u(e)?e:[e]),q=(e,n)=>null==e?void 0:e.add(n);var Y=Object.defineProperty,G=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable,V=(e,n,t)=>n in e?Y(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)&&V(e,t,n[t]);if(G)for(var t of G(n))U.call(n,t)&&V(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 Q=h+"*FROM",X="FROM pragma_table_",Z="WHERE",ee=(e,n,l)=>{const o=_();return[()=>K(void 0,null,(function*(){return W(o,g(yield v(m(yield e("SELECT name "+X+"list WHERE schema='main'AND type='table'AND name IN("+te(n)+")ORDER BY name",n),(n=>K(void 0,[n],(function*({name:n}){return[n,g(m(yield e(h+" name,type "+X+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>B(o,n,W(H(o,n,_),t,((e,n,t)=>{t!=F(e,n)&&B(e,n,t)}),((e,n)=>B(e,n))))),((e,n)=>B(o,n)))})),(n,t)=>K(void 0,null,(function*(){return((e,n)=>!u(F(F(o,e),n)))(n,t)?g(b(m(yield e(Q+p(n)),(e=>{return[e[t],(n=z({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!u(e)&&!j(n)))):{}})),(n,l,r,i,a,d=!1)=>K(void 0,null,(function*(){const c=k();C(null!=r?r:{},(e=>m(N(null!=e?e:{}),(e=>q(c,e)))));const s=A(c);if(!d&&a&&O(s)&&T(o,n))return yield e("DROP TABLE"+p(n)),void B(o,n);if(O(s)||T(o,n)){const t=F(o,n),r=k(M(t));yield v([...m(s,(l=>K(void 0,null,(function*(){w(r,l)||(yield e(`ALTER TABLE${p(n)}ADD${p(l)}`),B(t,l,""))})))),...!d&&i?m(A(r),(o=>K(void 0,null,(function*(){o!=l&&(yield e(`ALTER TABLE${p(n)}DROP${p(o)}`),B(t,o))})))):[]])}else yield e(`CREATE TABLE${p(n)}(${p(l)} PRIMARY KEY ON CONFLICT REPLACE${E(m(s,(e=>t+p(e))))});`),B(o,n,_([[l,""],...m(s,(e=>[e,""]))]));if(d)u(r)?yield e("DELETE FROM"+p(n)+"WHERE 1"):yield v(C(r,((t,o)=>K(void 0,null,(function*(){u(t)?yield e("DELETE FROM"+p(n)+Z+p(l)+"=?",[o]):O(s)||(yield ne(e,n,l,N(t),[o,...D(t)]))})))));else if(O(s))T(o,n)&&(yield e("DELETE FROM"+p(n)+"WHERE 1"));else{const t=b(M(F(o,n)),(e=>e!=l)),i=[],u=[];C(null!=r?r:{},((e,n)=>{P(i,n,...m(t,(n=>null==e?void 0:e[n]))),P(u,n)})),yield ne(e,n,l,t,i),yield e("DELETE FROM"+p(n)+Z+p(l)+"NOT IN("+te(u)+")",u)}})),n=>K(void 0,null,(function*(){let t;yield e("BEGIN");try{t=yield n()}catch(e){null==l||l(e)}return yield e("END"),t}))]},ne=(e,n,l,r,i)=>K(void 0,null,(function*(){return yield e("INSERT INTO"+p(n)+"("+p(l)+E(m(r,(e=>t+p(e))))+")VALUES"+c(o(`,(?${o(",?",s(r))})`,s(i)/(s(r)+1)),1)+"ON CONFLICT("+p(l)+")DO UPDATE SET"+E(m(r,(e=>p(e)+"=excluded."+p(e))),t),i)})),te=e=>E(m(e,(()=>"?")),t),le=JSON.parse;var oe=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const re=_(),ie=_(),ue=(e,n,t,l,o,r,[i,d]=[],c=[])=>{let s,v,y,f=0,p=0;H(re,c,(()=>0)),H(ie,c,(()=>[]));const h=e=>oe(void 0,null,(function*(){return 2!=f&&(f=1,yield E.schedule((()=>oe(void 0,null,(function*(){yield e(),f=0}))))),E})),E={load:(t,l)=>oe(void 0,null,(function*(){return yield h((()=>oe(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>oe(void 0,[...t],(function*(t={},o={}){return E.stopAutoLoad(),yield E.load(t,o),p=1,y=l(((t,l)=>oe(void 0,null,(function*(){if(l){const n=l();yield h((()=>oe(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>oe(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==t?void 0:t())?l:yield n())}catch(e){null==r||r(e)}}))))})))),E})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),E),save:n=>oe(void 0,null,(function*(){return 1!=f&&(f=2,yield E.schedule((()=>oe(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),E})),startAutoSave:()=>oe(void 0,null,(function*(){return yield E.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();j(t)&&j(l)||E.save((()=>[t,l]))})),E})),stopAutoSave:()=>(a(s,e.delListener),s=void 0,E),schedule:(...e)=>oe(void 0,null,(function*(){return P(F(ie,c),...e),yield oe(void 0,null,(function*(){if(!F(re,c)){for(B(re,c,1);!u((e=F(ie,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}B(re,c,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(E[i]=()=>d),S(E)};var ae=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const de="store",ce=(e,n,t,l,o,[r],i,u,a)=>{const[d,c,s,v]=ee(n,i,o);return ue(e,(()=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var e,n;return yield d(),le(null!=(n=null==(e=(yield c(r,f))[y])?void 0:e[de])?n:"null")}))))}))),(e=>ae(void 0,null,(function*(){return yield v((()=>ae(void 0,null,(function*(){var n,t;yield d(),yield s(r,f,{[y]:{[de]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?L.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,[a,u],u)};var se=(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 ve=(e,n,t,l,o,[r,i,[a,d,c]],s,p,h)=>{const[E,m,O,P]=ee(n,s,o),T=(e,n)=>se(void 0,null,(function*(){return yield v($(i,((t,l)=>se(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield O(t,l,u,o,r,n))})))))})),A=(e,n)=>se(void 0,null,(function*(){return d?yield O(c,f,{[y]:e},!0,!0,n):null}));return ue(e,(()=>se(void 0,null,(function*(){return yield P((()=>se(void 0,null,(function*(){yield E();const e=yield se(void 0,null,(function*(){return g(b(yield v($(r,((e,n)=>se(void 0,[e,n],(function*([e,n],t){return[e,yield m(t,n)]}))))),(e=>!j(e[1]))))})),n=yield se(void 0,null,(function*(){return a?(yield m(c,f))[y]:{}}));return j(e)&&u(n)?void 0:[e,n]}))))}))),((e,n)=>se(void 0,null,(function*(){return yield P((()=>se(void 0,null,(function*(){if(yield E(),u(n)){const[n,t]=e();yield T(n),yield A(t)}else{const[e,t]=n();yield T(e,!0),yield A(t,!0)}}))))}))),t,l,o,[h,p],p)},ye="json",fe="autoLoadIntervalSeconds",pe="rowIdColumnName",he="tableId",Ee="tableName",me={mode:ye,[fe]:1},Oe={load:0,save:0,[Ee]:n+"_values"},be=(e,n,t,l)=>{const o=_();return C(e,((e,r)=>{const i=c(D(x(n,d(e)?{[t]:e}:e)),0,I(n));u(i[0])||l(r,i[0])||B(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 Te="pragma ",Ae="data_version",we="schema_version",Le=(e,t,l,o,r,u,a,s,v="getDb")=>{let y,p,E;const[m,O,b,P]=(e=>{const t=(e=>x(me,d(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[fe];if(t.mode==ye){const{storeTableName:e=n}=t;return[1,l,[e],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=c(D(x(Oe,i)),0,I(Oe)),a=u[2],s=k(a);return[0,l,[be(o,{[he]:null,[pe]:f},he,(e=>q(s,e)&&e==a)),be(r,{[Ee]:null,[pe]:f,deleteEmptyColumns:0,deleteEmptyTable:0},Ee,((e,n)=>q(s,n)&&n==a)),u],s]})(t);return(m?ce:ve)(e,u?(e,n)=>Pe(void 0,null,(function*(){return u(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Pe(void 0,null,(function*(){try{const n=(yield l(Te+Ae))[0][Ae],t=(yield l(Te+we))[0][we],o=(yield l(h+" TOTAL_CHANGES() c"))[0].c;n==(null!=y?y:y=n)&&t==(null!=p?p:p=t)&&o==(null!=E?E:E=o)||(e(),y=n,p=t)}catch(e){}})),t=O,n(),setInterval(n,1e3*t)),o((n=>P.has(n)?e():0))];var n,t}),(([e,n])=>{i(e),y=p=null,r(n)}),a,b,A(P),s,v)};var Re=Object.defineProperty,Ne=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,xe=(e,n,t)=>n in e?Re(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;exports.createSqliteWasmPersister=(e,n,t,l,o,r)=>Le(e,l,((e,...n)=>{return l=[e,...n],o=function*(e,n=[]){return t.exec(e,{bind:n,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,n)=>{for(var t in n||(n={}))Se.call(n,t)&&xe(e,t,n[t]);if(Ne)for(var t of Ne(n))ge.call(n,t)&&xe(e,t,n[t]);return e})({},e)))},new Promise(((e,n)=>{var t=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.capi.sqlite3_update_hook(t,((n,t,l,o)=>e(o)),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)),o,r,t);
|
|
1
|
+
"use strict";const e=e=>typeof e,n="tinybase",t="",l=",",o=e(t),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,t)=>a(e)?null==t?void 0:t():n(e),c=n=>e(n)==o,s=(e,n,t)=>e.slice(n,t),v=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},f="_",p="_id",E=e=>`"${e.replace(/"/g,'""')}"`,h="SELECT",m=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),b=e=>0==v(e),P=(e,n)=>e.filter(n),A=(e,...n)=>e.push(...n),T=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},w=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=(e,n)=>null==e?void 0:e.delete(n),R=Object,N=e=>R.getPrototypeOf(e),S=R.keys,g=R.freeze,x=(e=[])=>R.fromEntries(e),C=(...e)=>R.assign({},...e),D=(e,n)=>O(R.entries(e),(([e,t])=>n(t,e))),I=e=>R.values(e),j=e=>v(S(e)),_=e=>(e=>!a(e)&&d(N(e),(e=>e==R.prototype||a(N(e))),(()=>!0)))(e)&&0==j(e),M=e=>new Map(e),F=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},$=(e,n)=>null==e?void 0:e.get(n),B=(e,n)=>{var t;return O([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},H=(e,n,t)=>a(t)?(L(e,n),e):null==e?void 0:e.set(n,t),W=(e,n,t)=>(T(e,n)||H(e,n,t()),$(e,n)),k=(e,n,t,l=H)=>(D(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),q=e=>new Set(Array.isArray(e)||a(e)?e:[e]),Y=(e,n)=>null==e?void 0:e.add(n);var G=Object.defineProperty,J=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,z=(e,n,t)=>n in e?G(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,K=(e,n)=>{for(var t in n||(n={}))U.call(n,t)&&z(e,t,n[t]);if(J)for(var t of J(n))V.call(n,t)&&z(e,t,n[t]);return e},Q=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const X=h+"*FROM",Z="FROM pragma_table_",ee="WHERE",ne=(e,n,o,r)=>{const i=M();return[()=>Q(void 0,null,(function*(){return k(i,x(yield y(O(yield e("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+le(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,x(O(yield e(h+" name,type "+Z+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,t)=>H(i,n,k(W(i,n,M),t,((e,n,t)=>{t!=$(e,n)&&H(e,n,t)}),((e,n)=>H(e,n))))),((e,n)=>H(i,n)))})),(n,t)=>Q(void 0,null,(function*(){return((e,n)=>!a($($(i,e),n)))(n,t)?x(P(O(yield e(X+E(n)),(e=>{return[e[t],(n=K({},e),l=t,delete n[l],n)];var n,l})),(([e,n])=>!a(e)&&!_(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=q();D(null!=u?u:{},(e=>O(S(null!=e?e:{}),(e=>Y(v,e)))));const f=w(v);if(!s&&c&&b(f)&&T(i,n))return yield e("DROP TABLE"+E(n)),void H(i,n);if(b(f)||T(i,n)){const l=$(i,n),r=q(F(l));yield y([...O(f,(o=>Q(void 0,null,(function*(){L(r,o)||(yield e(`ALTER TABLE${E(n)}ADD${E(o)}`),H(l,o,t))})))),...!s&&d?O(w(r),(t=>Q(void 0,null,(function*(){t!=o&&(yield e(`ALTER TABLE${E(n)}DROP${E(t)}`),H(l,t))})))):[]])}else yield e(`CREATE TABLE${E(n)}(${E(o)} PRIMARY KEY ON CONFLICT REPLACE${m(O(f,(e=>l+E(e))))});`),H(i,n,M([[o,t],...O(f,(e=>[e,t]))]));if(s)a(u)?yield e("DELETE FROM"+E(n)+"WHERE 1"):yield y(D(u,((t,l)=>Q(void 0,null,(function*(){a(t)?yield e("DELETE FROM"+E(n)+ee+E(o)+"=?",[l]):b(f)||(yield te(e,n,o,S(t),[l,...I(t)],r))})))));else if(b(f))T(i,n)&&(yield e("DELETE FROM"+E(n)+"WHERE 1"));else{const t=P(F($(i,n)),(e=>e!=o)),l=[],r=[];D(null!=u?u:{},((e,n)=>{A(l,n,...O(t,(n=>null==e?void 0:e[n]))),A(r,n)})),yield te(e,n,o,t,l),yield e("DELETE FROM"+E(n)+ee+E(o)+"NOT IN("+le(r)+")",r)}})),n=>Q(void 0,null,(function*(){let t;yield e("BEGIN");try{t=yield n()}catch(e){null==o||o(e)}return yield e("END"),t}))]},te=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?t:"OR REPLACE ")+"INTO"+E(n)+"("+E(o)+m(O(i,(e=>l+E(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+E(o)+")DO UPDATE SET"+m(O(i,(e=>E(e)+"=excluded."+E(e))),l):t),u)})),le=e=>m(O(e,(()=>"?")),l),oe=JSON.parse;var re=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ie=M(),ue=M(),ae=(e,n,t,l,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,p=0;W(ie,c,(()=>0)),W(ue,c,(()=>[]));const E=e=>re(void 0,null,(function*(){return 2!=f&&(f=1,yield h.schedule((()=>re(void 0,null,(function*(){yield e(),f=0}))))),h})),h={load:(t,l)=>re(void 0,null,(function*(){return yield E((()=>re(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}}))))})),startAutoLoad:(...t)=>re(void 0,[...t],(function*(t={},o={}){return h.stopAutoLoad(),yield h.load(t,o),p=1,y=l(((t,l)=>re(void 0,null,(function*(){if(l){const n=l();yield E((()=>re(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield E((()=>re(void 0,null,(function*(){var l;try{e.setContent(null!=(l=null==t?void 0:t())?l:yield n())}catch(e){null==r||r(e)}}))))})))),h})),stopAutoLoad:()=>(p&&(o(y),y=void 0,p=0),h),save:n=>re(void 0,null,(function*(){return 1!=f&&(f=2,yield h.schedule((()=>re(void 0,null,(function*(){try{yield t(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),h})),startAutoSave:()=>re(void 0,null,(function*(){return yield h.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[t,l]=n();_(t)&&_(l)||h.save((()=>[t,l]))})),h})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,h),schedule:(...e)=>re(void 0,null,(function*(){return A($(ue,c),...e),yield re(void 0,null,(function*(){if(!$(ie,c)){for(H(ie,c,1);!a((e=$(ue,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}H(ie,c,0)}var e})),h})),getStore:()=>e,destroy:()=>h.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(h[i]=()=>u),g(h)};var de=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ce="store",se=(e,n,t,l,o,[r],i,u,a)=>{const[d,c,s,v]=ne(n,i,o);return ae(e,(()=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var e,n;return yield d(),oe(null!=(n=null==(e=(yield c(r,p))[f])?void 0:e[ce])?n:"null")}))))}))),(e=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var n,t;yield d(),yield s(r,p,{[f]:{[ce]:(t=null!=(n=e())?n:null,JSON.stringify(t,((e,n)=>n instanceof Map?R.fromEntries([...n]):n)))}},!0,!0)}))))}))),t,l,o,[a,u],u)};var ve=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const ye=(e,n,t,l,o,[r,i,[u,d,c]],s,v,E,h)=>{const[m,O,b,A]=ne(n,s,o,h),T=(e,n)=>ve(void 0,null,(function*(){return yield y(B(i,((t,l)=>ve(void 0,[t,l],(function*([t,l,o,r],i){const u=e[i];n&&void 0===u||(yield b(t,l,u,o,r,n))})))))})),w=(e,n)=>ve(void 0,null,(function*(){return d?yield b(c,p,{[f]:e},!0,!0,n):null}));return ae(e,(()=>ve(void 0,null,(function*(){return yield A((()=>ve(void 0,null,(function*(){yield m();const e=yield ve(void 0,null,(function*(){return x(P(yield y(B(r,((e,n)=>ve(void 0,[e,n],(function*([e,n],t){return[e,yield O(t,n)]}))))),(e=>!_(e[1]))))})),n=yield ve(void 0,null,(function*(){return u?(yield O(c,p))[f]:{}}));return _(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ve(void 0,null,(function*(){return yield A((()=>ve(void 0,null,(function*(){if(yield m(),a(n)){const[n,t]=e();yield T(n),yield w(t)}else{const[e,t]=n();yield T(e,!0),yield w(t,!0)}}))))}))),t,l,o,[E,v],v)},fe="json",pe="autoLoadIntervalSeconds",Ee="rowIdColumnName",he="tableId",me="tableName",Oe={mode:fe,[pe]:1},be={load:0,save:0,[me]:n+"_values"},Pe=(e,n,t,l)=>{const o=M();return D(e,((e,r)=>{const i=s(I(C(n,c(e)?{[t]:e}:e)),0,j(n));a(i[0])||l(r,i[0])||H(o,r,i)})),o};var Ae=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const Te="pragma ",we="data_version",Le="schema_version",Re=(e,t,l,o,r,i,a,d,v="getDb",y)=>{let f,E,m;const[O,b,P,A]=(e=>{const t=(e=>C(Oe,c(e)?{storeTableName:e}:null!=e?e:{}))(e),l=t[pe];if(t.mode==fe){const{storeTableName:e=n}=t;return[1,l,[e],q(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=t,u=s(I(C(be,i)),0,j(be)),a=u[2],d=q(a);return[0,l,[Pe(o,{[he]:null,[Ee]:p},he,(e=>Y(d,e)&&e==a)),Pe(r,{[me]:null,[Ee]:p,deleteEmptyColumns:0,deleteEmptyTable:0},me,((e,n)=>Y(d,n)&&n==a)),u],d]})(t);return(O?se:ye)(e,i?(e,n)=>Ae(void 0,null,(function*(){return i(e,n),yield l(e,n)})):l,(e=>{return[(n=()=>Ae(void 0,null,(function*(){try{const n=(yield l(Te+we))[0][we],t=(yield l(Te+Le))[0][Le],o=(yield l(h+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&t==(null!=E?E:E=t)&&o==(null!=m?m:m=o)||(e(),f=n,E=t)}catch(e){}})),t=b,n(),setInterval(n,1e3*t)),o((n=>A.has(n)?e():0))];var n,t}),(([e,n])=>{u(e),f=E=null,r(n)}),a,P,w(A),d,v,y)};var Ne=Object.defineProperty,Se=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable,Ce=(e,n,t)=>n in e?Ne(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;exports.createSqliteWasmPersister=(e,n,t,l,o,r)=>Re(e,l,((e,...n)=>{return l=[e,...n],o=function*(e,n=[]){return t.exec(e,{bind:n,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,n)=>{for(var t in n||(n={}))ge.call(n,t)&&Ce(e,t,n[t]);if(Se)for(var t of Se(n))xe.call(n,t)&&Ce(e,t,n[t]);return e})({},e)))},new Promise(((e,n)=>{var t=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.capi.sqlite3_update_hook(t,((n,t,l,o)=>e(o)),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)),o,r,t);
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=e=>typeof e,n="tinybase",l="
|
|
1
|
+
"use strict";const e=e=>typeof e,n="tinybase",l="",t=",",o=e(l),r=(e,n)=>e.repeat(n),i=Promise,u=clearInterval,a=e=>null==e,d=(e,n,l)=>a(e)?null==l?void 0:l():n(e),c=n=>e(n)==o,s=(e,n,l)=>e.slice(n,l),v=e=>e.length,y=e=>{return n=function*(){return i.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},f="_",E="_id",h=e=>`"${e.replace(/"/g,'""')}"`,p="SELECT",m=(e,n="")=>e.join(n),O=(e,n)=>e.map(n),A=e=>0==v(e),T=(e,n)=>e.filter(n),P=(e,...n)=>e.push(...n),L=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},R=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},w=(e,n)=>null==e?void 0:e.delete(n),b=Object,N=e=>b.getPrototypeOf(e),S=b.keys,C=b.freeze,g=(e=[])=>b.fromEntries(e),x=(...e)=>b.assign({},...e),D=(e,n)=>O(b.entries(e),(([e,l])=>n(l,e))),I=e=>b.values(e),F=e=>v(S(e)),M=e=>(e=>!a(e)&&d(N(e),(e=>e==b.prototype||a(N(e))),(()=>!0)))(e)&&0==F(e),$=e=>new Map(e),_=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},j=(e,n)=>null==e?void 0:e.get(n),B=(e,n)=>{var l;return O([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},H=(e,n,l)=>a(l)?(w(e,n),e):null==e?void 0:e.set(n,l),W=(e,n,l)=>(L(e,n)||H(e,n,l()),j(e,n)),Y=(e,n,l,t=H)=>(D(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!a(((e,n)=>d(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),k=e=>new Set(Array.isArray(e)||a(e)?e:[e]),G=(e,n)=>null==e?void 0:e.add(n);var J=Object.defineProperty,U=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))q.call(n,l)&&K(e,l,n[l]);if(U)for(var l of U(n))z.call(n,l)&&K(e,l,n[l]);return e},Q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const X=p+"*FROM",Z="FROM pragma_table_",ee="WHERE",ne=(e,n,o,r)=>{const i=$();return[()=>Q(void 0,null,(function*(){return Y(i,g(yield y(O(yield e("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+te(n)+")ORDER BY name",n),(n=>Q(void 0,[n],(function*({name:n}){return[n,g(O(yield e(p+" name,type "+Z+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>H(i,n,Y(W(i,n,$),l,((e,n,l)=>{l!=j(e,n)&&H(e,n,l)}),((e,n)=>H(e,n))))),((e,n)=>H(i,n)))})),(n,l)=>Q(void 0,null,(function*(){return((e,n)=>!a(j(j(i,e),n)))(n,l)?g(T(O(yield e(X+h(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!M(n)))):{}})),(n,o,u,d,c,s=!1)=>Q(void 0,null,(function*(){const v=k();D(null!=u?u:{},(e=>O(S(null!=e?e:{}),(e=>G(v,e)))));const f=R(v);if(!s&&c&&A(f)&&L(i,n))return yield e("DROP TABLE"+h(n)),void H(i,n);if(A(f)||L(i,n)){const t=j(i,n),r=k(_(t));yield y([...O(f,(o=>Q(void 0,null,(function*(){w(r,o)||(yield e(`ALTER TABLE${h(n)}ADD${h(o)}`),H(t,o,l))})))),...!s&&d?O(R(r),(l=>Q(void 0,null,(function*(){l!=o&&(yield e(`ALTER TABLE${h(n)}DROP${h(l)}`),H(t,l))})))):[]])}else yield e(`CREATE TABLE${h(n)}(${h(o)} PRIMARY KEY ON CONFLICT REPLACE${m(O(f,(e=>t+h(e))))});`),H(i,n,$([[o,l],...O(f,(e=>[e,l]))]));if(s)a(u)?yield e("DELETE FROM"+h(n)+"WHERE 1"):yield y(D(u,((l,t)=>Q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+h(n)+ee+h(o)+"=?",[t]):A(f)||(yield le(e,n,o,S(l),[t,...I(l)],r))})))));else if(A(f))L(i,n)&&(yield e("DELETE FROM"+h(n)+"WHERE 1"));else{const l=T(_(j(i,n)),(e=>e!=o)),t=[],r=[];D(null!=u?u:{},((e,n)=>{P(t,n,...O(l,(n=>null==e?void 0:e[n]))),P(r,n)})),yield le(e,n,o,l,t),yield e("DELETE FROM"+h(n)+ee+h(o)+"NOT IN("+te(r)+")",r)}})),n=>Q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==o||o(e)}return yield e("END"),l}))]},le=(e,n,o,i,u,a=!0)=>Q(void 0,null,(function*(){return yield e("INSERT "+(a?l:"OR REPLACE ")+"INTO"+h(n)+"("+h(o)+m(O(i,(e=>t+h(e))))+")VALUES"+s(r(`,(?${r(",?",v(i))})`,v(u)/(v(i)+1)),1)+(a?"ON CONFLICT("+h(o)+")DO UPDATE SET"+m(O(i,(e=>h(e)+"=excluded."+h(e))),t):l),u)})),te=e=>m(O(e,(()=>"?")),t),oe=JSON.parse;var re=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ie=$(),ue=$(),ae=(e,n,l,t,o,r,[i,u]=[],c=[])=>{let s,v,y,f=0,E=0;W(ie,c,(()=>0)),W(ue,c,(()=>[]));const h=e=>re(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>re(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>re(void 0,null,(function*(){return yield h((()=>re(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>re(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),E=1,y=t(((l,t)=>re(void 0,null,(function*(){if(t){const n=t();yield h((()=>re(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>re(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),p})),stopAutoLoad:()=>(E&&(o(y),y=void 0,E=0),p),save:n=>re(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>re(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>re(void 0,null,(function*(){return yield p.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();M(l)&&M(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(d(s,e.delListener),s=void 0,p),schedule:(...e)=>re(void 0,null,(function*(){return P(j(ue,c),...e),yield re(void 0,null,(function*(){if(!j(ie,c)){for(H(ie,c,1);!a((e=j(ue,c),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}H(ie,c,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>u),C(p)};var de=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ce="store",se=(e,n,l,t,o,[r],i,u,a)=>{const[d,c,s,v]=ne(n,i,o);return ae(e,(()=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var e,n;return yield d(),oe(null!=(n=null==(e=(yield c(r,E))[f])?void 0:e[ce])?n:"null")}))))}))),(e=>de(void 0,null,(function*(){return yield v((()=>de(void 0,null,(function*(){var n,l;yield d(),yield s(r,E,{[f]:{[ce]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>n instanceof Map?b.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,[a,u],u)};var ve=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const ye=(e,n,l,t,o,[r,i,[u,d,c]],s,v,h,p)=>{const[m,O,A,P]=ne(n,s,o,p),L=(e,n)=>ve(void 0,null,(function*(){return yield y(B(i,((l,t)=>ve(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield A(l,t,u,o,r,n))})))))})),R=(e,n)=>ve(void 0,null,(function*(){return d?yield A(c,E,{[f]:e},!0,!0,n):null}));return ae(e,(()=>ve(void 0,null,(function*(){return yield P((()=>ve(void 0,null,(function*(){yield m();const e=yield ve(void 0,null,(function*(){return g(T(yield y(B(r,((e,n)=>ve(void 0,[e,n],(function*([e,n],l){return[e,yield O(l,n)]}))))),(e=>!M(e[1]))))})),n=yield ve(void 0,null,(function*(){return u?(yield O(c,E))[f]:{}}));return M(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ve(void 0,null,(function*(){return yield P((()=>ve(void 0,null,(function*(){if(yield m(),a(n)){const[n,l]=e();yield L(n),yield R(l)}else{const[e,l]=n();yield L(e,!0),yield R(l,!0)}}))))}))),l,t,o,[h,v],v)},fe="json",Ee="autoLoadIntervalSeconds",he="rowIdColumnName",pe="tableId",me="tableName",Oe={mode:fe,[Ee]:1},Ae={load:0,save:0,[me]:n+"_values"},Te=(e,n,l,t)=>{const o=$();return D(e,((e,r)=>{const i=s(I(x(n,c(e)?{[l]:e}:e)),0,F(n));a(i[0])||t(r,i[0])||H(o,r,i)})),o};var Pe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Le="pragma ",Re="data_version",we="schema_version",be=(e,l,t,o,r,i,a,d,v="getDb",y)=>{let f,h,m;const[O,A,T,P]=(e=>{const l=(e=>x(Oe,c(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[Ee];if(l.mode==fe){const{storeTableName:e=n}=l;return[1,t,[e],k(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=s(I(x(Ae,i)),0,F(Ae)),a=u[2],d=k(a);return[0,t,[Te(o,{[pe]:null,[he]:E},pe,(e=>G(d,e)&&e==a)),Te(r,{[me]:null,[he]:E,deleteEmptyColumns:0,deleteEmptyTable:0},me,((e,n)=>G(d,n)&&n==a)),u],d]})(l);return(O?se:ye)(e,i?(e,n)=>Pe(void 0,null,(function*(){return i(e,n),yield t(e,n)})):t,(e=>{return[(n=()=>Pe(void 0,null,(function*(){try{const n=(yield t(Le+Re))[0][Re],l=(yield t(Le+we))[0][we],o=(yield t(p+" TOTAL_CHANGES() c"))[0].c;n==(null!=f?f:f=n)&&l==(null!=h?h:h=l)&&o==(null!=m?m:m=o)||(e(),f=n,h=l)}catch(e){}})),l=A,n(),setInterval(n,1e3*l)),o((n=>P.has(n)?e():0))];var n,l}),(([e,n])=>{u(e),f=h=null,r(n)}),a,T,R(P),d,v,y)},Ne="change";exports.createSqlite3Persister=(e,n,l,t,o)=>be(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield(t=(t,o)=>n.all(e,l,((e,n)=>e?o(e):t(n))),new i(t));var t},new Promise(((e,n)=>{var l=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>{const l=(n,l,t)=>e(t);return n.on(Ne,l),l}),(e=>n.off(Ne,e)),t,o,n);
|
|
Binary file
|
|
@@ -97,7 +97,12 @@ const setAdd = (set, value) => set?.add(value);
|
|
|
97
97
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
98
98
|
const FROM_PRAGMA_TABLE = 'FROM pragma_table_';
|
|
99
99
|
const WHERE = 'WHERE';
|
|
100
|
-
const getCommandFunctions = (
|
|
100
|
+
const getCommandFunctions = (
|
|
101
|
+
cmd,
|
|
102
|
+
managedTableNames,
|
|
103
|
+
onIgnoredError,
|
|
104
|
+
useOnConflict,
|
|
105
|
+
) => {
|
|
101
106
|
const schemaMap = mapNew();
|
|
102
107
|
const canSelect = (tableName, rowIdColumnName) =>
|
|
103
108
|
!isUndefined(mapGet(mapGet(schemaMap, tableName), rowIdColumnName));
|
|
@@ -110,7 +115,7 @@ const getCommandFunctions = (cmd, managedTableNames, onIgnoredError) => {
|
|
|
110
115
|
await cmd(
|
|
111
116
|
'SELECT name ' +
|
|
112
117
|
FROM_PRAGMA_TABLE +
|
|
113
|
-
`list WHERE schema='main'AND
|
|
118
|
+
`list WHERE schema='main'AND(type='table'OR type='view')AND name IN(` +
|
|
114
119
|
getPlaceholders(managedTableNames) +
|
|
115
120
|
`)ORDER BY name`,
|
|
116
121
|
managedTableNames,
|
|
@@ -247,10 +252,14 @@ const getCommandFunctions = (cmd, managedTableNames, onIgnoredError) => {
|
|
|
247
252
|
[rowId],
|
|
248
253
|
);
|
|
249
254
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
250
|
-
await upsert(
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
255
|
+
await upsert(
|
|
256
|
+
cmd,
|
|
257
|
+
tableName,
|
|
258
|
+
rowIdColumnName,
|
|
259
|
+
objIds(row),
|
|
260
|
+
[rowId, ...objValues(row)],
|
|
261
|
+
useOnConflict,
|
|
262
|
+
);
|
|
254
263
|
}
|
|
255
264
|
}),
|
|
256
265
|
);
|
|
@@ -312,9 +321,12 @@ const upsert = async (
|
|
|
312
321
|
rowIdColumnName,
|
|
313
322
|
changingColumnNames,
|
|
314
323
|
args,
|
|
324
|
+
useOnConflict = true,
|
|
315
325
|
) =>
|
|
316
326
|
await cmd(
|
|
317
|
-
'INSERT
|
|
327
|
+
'INSERT ' +
|
|
328
|
+
(useOnConflict ? EMPTY_STRING : 'OR REPLACE ') +
|
|
329
|
+
'INTO' +
|
|
318
330
|
escapeId(tableName) +
|
|
319
331
|
'(' +
|
|
320
332
|
escapeId(rowIdColumnName) +
|
|
@@ -332,17 +344,19 @@ const upsert = async (
|
|
|
332
344
|
),
|
|
333
345
|
1,
|
|
334
346
|
) +
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
347
|
+
(useOnConflict
|
|
348
|
+
? 'ON CONFLICT(' +
|
|
349
|
+
escapeId(rowIdColumnName) +
|
|
350
|
+
')DO UPDATE SET' +
|
|
351
|
+
arrayJoin(
|
|
352
|
+
arrayMap(
|
|
353
|
+
changingColumnNames,
|
|
354
|
+
(columnName) =>
|
|
355
|
+
escapeId(columnName) + '=excluded.' + escapeId(columnName),
|
|
356
|
+
),
|
|
357
|
+
COMMA,
|
|
358
|
+
)
|
|
359
|
+
: EMPTY_STRING),
|
|
346
360
|
args,
|
|
347
361
|
);
|
|
348
362
|
const getPlaceholders = (array) =>
|
|
@@ -564,9 +578,10 @@ const createTabularSqlitePersister = (
|
|
|
564
578
|
managedTableNames,
|
|
565
579
|
db,
|
|
566
580
|
getThing,
|
|
581
|
+
useOnConflict,
|
|
567
582
|
) => {
|
|
568
583
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
569
|
-
getCommandFunctions(cmd, managedTableNames, onIgnoredError);
|
|
584
|
+
getCommandFunctions(cmd, managedTableNames, onIgnoredError, useOnConflict);
|
|
570
585
|
const saveTables = async (tables, partial) =>
|
|
571
586
|
await promiseAll(
|
|
572
587
|
mapMap(
|
|
@@ -762,6 +777,7 @@ const createSqlitePersister = (
|
|
|
762
777
|
onIgnoredError,
|
|
763
778
|
db,
|
|
764
779
|
getThing = 'getDb',
|
|
780
|
+
useOnConflict,
|
|
765
781
|
) => {
|
|
766
782
|
let dataVersion;
|
|
767
783
|
let schemaVersion;
|
|
@@ -824,6 +840,7 @@ const createSqlitePersister = (
|
|
|
824
840
|
collValues(managedTableNamesSet),
|
|
825
841
|
db,
|
|
826
842
|
getThing,
|
|
843
|
+
useOnConflict,
|
|
827
844
|
);
|
|
828
845
|
};
|
|
829
846
|
|
|
@@ -98,7 +98,12 @@ const setAdd = (set, value) => set?.add(value);
|
|
|
98
98
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
99
99
|
const FROM_PRAGMA_TABLE = 'FROM pragma_table_';
|
|
100
100
|
const WHERE = 'WHERE';
|
|
101
|
-
const getCommandFunctions = (
|
|
101
|
+
const getCommandFunctions = (
|
|
102
|
+
cmd,
|
|
103
|
+
managedTableNames,
|
|
104
|
+
onIgnoredError,
|
|
105
|
+
useOnConflict,
|
|
106
|
+
) => {
|
|
102
107
|
const schemaMap = mapNew();
|
|
103
108
|
const canSelect = (tableName, rowIdColumnName) =>
|
|
104
109
|
!isUndefined(mapGet(mapGet(schemaMap, tableName), rowIdColumnName));
|
|
@@ -111,7 +116,7 @@ const getCommandFunctions = (cmd, managedTableNames, onIgnoredError) => {
|
|
|
111
116
|
await cmd(
|
|
112
117
|
'SELECT name ' +
|
|
113
118
|
FROM_PRAGMA_TABLE +
|
|
114
|
-
`list WHERE schema='main'AND
|
|
119
|
+
`list WHERE schema='main'AND(type='table'OR type='view')AND name IN(` +
|
|
115
120
|
getPlaceholders(managedTableNames) +
|
|
116
121
|
`)ORDER BY name`,
|
|
117
122
|
managedTableNames,
|
|
@@ -248,10 +253,14 @@ const getCommandFunctions = (cmd, managedTableNames, onIgnoredError) => {
|
|
|
248
253
|
[rowId],
|
|
249
254
|
);
|
|
250
255
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
251
|
-
await upsert(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
256
|
+
await upsert(
|
|
257
|
+
cmd,
|
|
258
|
+
tableName,
|
|
259
|
+
rowIdColumnName,
|
|
260
|
+
objIds(row),
|
|
261
|
+
[rowId, ...objValues(row)],
|
|
262
|
+
useOnConflict,
|
|
263
|
+
);
|
|
255
264
|
}
|
|
256
265
|
}),
|
|
257
266
|
);
|
|
@@ -313,9 +322,12 @@ const upsert = async (
|
|
|
313
322
|
rowIdColumnName,
|
|
314
323
|
changingColumnNames,
|
|
315
324
|
args,
|
|
325
|
+
useOnConflict = true,
|
|
316
326
|
) =>
|
|
317
327
|
await cmd(
|
|
318
|
-
'INSERT
|
|
328
|
+
'INSERT ' +
|
|
329
|
+
(useOnConflict ? EMPTY_STRING : 'OR REPLACE ') +
|
|
330
|
+
'INTO' +
|
|
319
331
|
escapeId(tableName) +
|
|
320
332
|
'(' +
|
|
321
333
|
escapeId(rowIdColumnName) +
|
|
@@ -333,17 +345,19 @@ const upsert = async (
|
|
|
333
345
|
),
|
|
334
346
|
1,
|
|
335
347
|
) +
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
348
|
+
(useOnConflict
|
|
349
|
+
? 'ON CONFLICT(' +
|
|
350
|
+
escapeId(rowIdColumnName) +
|
|
351
|
+
')DO UPDATE SET' +
|
|
352
|
+
arrayJoin(
|
|
353
|
+
arrayMap(
|
|
354
|
+
changingColumnNames,
|
|
355
|
+
(columnName) =>
|
|
356
|
+
escapeId(columnName) + '=excluded.' + escapeId(columnName),
|
|
357
|
+
),
|
|
358
|
+
COMMA,
|
|
359
|
+
)
|
|
360
|
+
: EMPTY_STRING),
|
|
347
361
|
args,
|
|
348
362
|
);
|
|
349
363
|
const getPlaceholders = (array) =>
|
|
@@ -565,9 +579,10 @@ const createTabularSqlitePersister = (
|
|
|
565
579
|
managedTableNames,
|
|
566
580
|
db,
|
|
567
581
|
getThing,
|
|
582
|
+
useOnConflict,
|
|
568
583
|
) => {
|
|
569
584
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
570
|
-
getCommandFunctions(cmd, managedTableNames, onIgnoredError);
|
|
585
|
+
getCommandFunctions(cmd, managedTableNames, onIgnoredError, useOnConflict);
|
|
571
586
|
const saveTables = async (tables, partial) =>
|
|
572
587
|
await promiseAll(
|
|
573
588
|
mapMap(
|
|
@@ -763,6 +778,7 @@ const createSqlitePersister = (
|
|
|
763
778
|
onIgnoredError,
|
|
764
779
|
db,
|
|
765
780
|
getThing = 'getDb',
|
|
781
|
+
useOnConflict,
|
|
766
782
|
) => {
|
|
767
783
|
let dataVersion;
|
|
768
784
|
let schemaVersion;
|
|
@@ -825,6 +841,7 @@ const createSqlitePersister = (
|
|
|
825
841
|
collValues(managedTableNamesSet),
|
|
826
842
|
db,
|
|
827
843
|
getThing,
|
|
844
|
+
useOnConflict,
|
|
828
845
|
);
|
|
829
846
|
};
|
|
830
847
|
|
|
@@ -99,7 +99,12 @@ const setAdd = (set, value) => set?.add(value);
|
|
|
99
99
|
const SELECT_STAR_FROM = SELECT + '*FROM';
|
|
100
100
|
const FROM_PRAGMA_TABLE = 'FROM pragma_table_';
|
|
101
101
|
const WHERE = 'WHERE';
|
|
102
|
-
const getCommandFunctions = (
|
|
102
|
+
const getCommandFunctions = (
|
|
103
|
+
cmd,
|
|
104
|
+
managedTableNames,
|
|
105
|
+
onIgnoredError,
|
|
106
|
+
useOnConflict,
|
|
107
|
+
) => {
|
|
103
108
|
const schemaMap = mapNew();
|
|
104
109
|
const canSelect = (tableName, rowIdColumnName) =>
|
|
105
110
|
!isUndefined(mapGet(mapGet(schemaMap, tableName), rowIdColumnName));
|
|
@@ -112,7 +117,7 @@ const getCommandFunctions = (cmd, managedTableNames, onIgnoredError) => {
|
|
|
112
117
|
await cmd(
|
|
113
118
|
'SELECT name ' +
|
|
114
119
|
FROM_PRAGMA_TABLE +
|
|
115
|
-
`list WHERE schema='main'AND
|
|
120
|
+
`list WHERE schema='main'AND(type='table'OR type='view')AND name IN(` +
|
|
116
121
|
getPlaceholders(managedTableNames) +
|
|
117
122
|
`)ORDER BY name`,
|
|
118
123
|
managedTableNames,
|
|
@@ -249,10 +254,14 @@ const getCommandFunctions = (cmd, managedTableNames, onIgnoredError) => {
|
|
|
249
254
|
[rowId],
|
|
250
255
|
);
|
|
251
256
|
} else if (!arrayIsEmpty(tableColumnNames)) {
|
|
252
|
-
await upsert(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
257
|
+
await upsert(
|
|
258
|
+
cmd,
|
|
259
|
+
tableName,
|
|
260
|
+
rowIdColumnName,
|
|
261
|
+
objIds(row),
|
|
262
|
+
[rowId, ...objValues(row)],
|
|
263
|
+
useOnConflict,
|
|
264
|
+
);
|
|
256
265
|
}
|
|
257
266
|
}),
|
|
258
267
|
);
|
|
@@ -314,9 +323,12 @@ const upsert = async (
|
|
|
314
323
|
rowIdColumnName,
|
|
315
324
|
changingColumnNames,
|
|
316
325
|
args,
|
|
326
|
+
useOnConflict = true,
|
|
317
327
|
) =>
|
|
318
328
|
await cmd(
|
|
319
|
-
'INSERT
|
|
329
|
+
'INSERT ' +
|
|
330
|
+
(useOnConflict ? EMPTY_STRING : 'OR REPLACE ') +
|
|
331
|
+
'INTO' +
|
|
320
332
|
escapeId(tableName) +
|
|
321
333
|
'(' +
|
|
322
334
|
escapeId(rowIdColumnName) +
|
|
@@ -334,17 +346,19 @@ const upsert = async (
|
|
|
334
346
|
),
|
|
335
347
|
1,
|
|
336
348
|
) +
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
349
|
+
(useOnConflict
|
|
350
|
+
? 'ON CONFLICT(' +
|
|
351
|
+
escapeId(rowIdColumnName) +
|
|
352
|
+
')DO UPDATE SET' +
|
|
353
|
+
arrayJoin(
|
|
354
|
+
arrayMap(
|
|
355
|
+
changingColumnNames,
|
|
356
|
+
(columnName) =>
|
|
357
|
+
escapeId(columnName) + '=excluded.' + escapeId(columnName),
|
|
358
|
+
),
|
|
359
|
+
COMMA,
|
|
360
|
+
)
|
|
361
|
+
: EMPTY_STRING),
|
|
348
362
|
args,
|
|
349
363
|
);
|
|
350
364
|
const getPlaceholders = (array) =>
|
|
@@ -566,9 +580,10 @@ const createTabularSqlitePersister = (
|
|
|
566
580
|
managedTableNames,
|
|
567
581
|
db,
|
|
568
582
|
getThing,
|
|
583
|
+
useOnConflict,
|
|
569
584
|
) => {
|
|
570
585
|
const [refreshSchema, loadTable, saveTable, transaction] =
|
|
571
|
-
getCommandFunctions(cmd, managedTableNames, onIgnoredError);
|
|
586
|
+
getCommandFunctions(cmd, managedTableNames, onIgnoredError, useOnConflict);
|
|
572
587
|
const saveTables = async (tables, partial) =>
|
|
573
588
|
await promiseAll(
|
|
574
589
|
mapMap(
|
|
@@ -764,6 +779,7 @@ const createSqlitePersister = (
|
|
|
764
779
|
onIgnoredError,
|
|
765
780
|
db,
|
|
766
781
|
getThing = 'getDb',
|
|
782
|
+
useOnConflict,
|
|
767
783
|
) => {
|
|
768
784
|
let dataVersion;
|
|
769
785
|
let schemaVersion;
|
|
@@ -826,6 +842,7 @@ const createSqlitePersister = (
|
|
|
826
842
|
collValues(managedTableNamesSet),
|
|
827
843
|
db,
|
|
828
844
|
getThing,
|
|
845
|
+
useOnConflict,
|
|
829
846
|
);
|
|
830
847
|
};
|
|
831
848
|
|