tinybase 5.0.0-beta.14 → 5.0.0-beta.16
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-libsql.cjs +1 -1
- package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-powersync.cjs +1 -1
- package/lib/cjs/persisters/persister-powersync.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/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.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-libsql.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-powersync.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/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/debug/persisters/persister-browser.js +4 -7
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +55 -48
- package/lib/debug/persisters/persister-electric-sql.js +55 -48
- package/lib/debug/persisters/persister-expo-sqlite-next.js +55 -48
- package/lib/debug/persisters/persister-expo-sqlite.js +55 -48
- package/lib/debug/persisters/persister-file.js +3 -7
- package/lib/debug/persisters/persister-libsql.js +55 -48
- package/lib/debug/persisters/persister-powersync.js +55 -48
- package/lib/debug/persisters/persister-sqlite-wasm.js +55 -48
- package/lib/debug/persisters/persister-sqlite3.js +55 -48
- package/lib/debug/synchronizers/synchronizer-ws-client.js +3 -7
- package/lib/debug/ui-react-dom.js +3 -7
- package/lib/debug/ui-react.js +6 -5
- 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-libsql.js +1 -1
- package/lib/es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/es6/persisters/persister-powersync.js +1 -1
- package/lib/es6/persisters/persister-powersync.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/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.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-libsql.js +1 -1
- package/lib/persisters/persister-libsql.js.gz +0 -0
- package/lib/persisters/persister-powersync.js +1 -1
- package/lib/persisters/persister-powersync.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/persister-expo-sqlite-next.d.ts +1 -1
- package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -1
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -1
- package/lib/types/persisters/persister-sqlite3.d.ts +1 -1
- package/lib/types/persisters.d.ts +18 -7
- package/lib/types/ui-react.d.ts +26 -25
- package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -1
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -1
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -1
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -1
- package/lib/types/with-schemas/persisters.d.ts +18 -7
- package/lib/types/with-schemas/ui-react.d.ts +33 -32
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.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-libsql.js +1 -1
- package/lib/umd/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd/persisters/persister-powersync.js +1 -1
- package/lib/umd/persisters/persister-powersync.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/ui-react.js +1 -1
- package/lib/umd/ui-react.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-libsql.js +1 -1
- package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-powersync.js +1 -1
- package/lib/umd-es6/persisters/persister-powersync.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/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +26 -26
- package/readme.md +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),y=t=>a(t)==s,w=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),v=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),g=a=>0==d(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,A=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),N=Object,h=a=>N.getPrototypeOf(a),R=N.entries,f=N.keys,L=N.freeze,S=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),b=(a,t)=>t in a,D=(a,t)=>p(R(a),(([a,e])=>t(e,a))),M=a=>N.values(a),$=a=>d(f(a)),_=a=>(a=>!o(a)&&l(h(a),(a=>a==N.prototype||o(h(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>o(e)?(T(a,t),a):a?.set(t,e),H=(a,t,e,n)=>(O(a,t)||B(a,t,e()),j(a,t)),J=(a,t,e,n=B)=>(D(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>b(t,e)?0:n(a,e))),a),U="_",Y="_id",k=a=>`"${a.replace(/"/g,'""')}"`,G="SELECT",W=a=>new Set(w(a)||o(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=G+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=P();return[async()=>J(r,S(await E(p(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,S(p(await a(G+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(r,t,J(H(r,t,P),e,((a,t,e)=>{e!=j(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(r,t))),async(t,e)=>((a,t)=>!o(j(j(r,a),t)))(t,e)?S(m(p(await a(Q+k(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,s,c,l,y,w=!1)=>{const u=W();D(c??{},(a=>p(f(a??{}),(a=>z(u,a)))));const d=A(u);if(!w&&y&&g(d)&&O(r,t))return await a("DROP "+K+k(t)),void B(r,t);if(g(d)||O(r,t)){const n=j(r,t),i=W(F(n));await E([...p(d,(async s=>{T(i,s)||(await a(V+k(t)+"ADD"+k(s)),B(n,s,e))})),...!w&&l?p(A(i),(async e=>{e!=s&&(await a(V+k(t)+"DROP"+k(e)),B(n,e))})):[]])}else await a("CREATE "+K+k(t)+"("+k(s)+` PRIMARY KEY ON CONFLICT REPLACE${v(p(d,(a=>n+k(a))))});`),B(r,t,P([[s,e],...p(d,(a=>[a,e]))]));if(w)o(c)?await a(q+k(t)+Z+" 1"):await E(D(c,(async(e,n)=>{o(e)?await a(q+k(t)+Z+k(s)+"=?",[n]):g(d)||await ta(a,t,s,f(e),[n,...M(e)],i)})));else if(g(d))O(r,t)&&await a(q+k(t)+Z+" 1");else{const e=m(F(j(r,t)),(a=>a!=s)),n=[],o=[];D(c??{},((a,t)=>{C(n,t,...p(e,(t=>a?.[t]))),C(o,t)})),await ta(a,t,s,e,n,i),await a(q+k(t)+Z+k(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+k(t)+"("+k(s)+v(p(r,(a=>n+k(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+k(s)+")DO UPDATE SET"+v(p(r,(a=>k(a)+"=excluded."+k(a))),n):e),p(c,(a=>a??null))),ea=a=>v(p(a,(()=>"?")),n),na=P(),sa=P(),ia=(a,t,e,n,s,i,r,c={},y=[])=>{let u,d,E,v=0;H(na,y,(()=>0)),H(sa,y,(()=>[]));const[p,g,m,O,A]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!_(a)||!_(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!_(a)||!_(t),t.setContent]:0)(r,a),T=t=>{(p&&w(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},N=async a=>(2!=v&&(v=1,await S((async()=>{try{T(await t())}catch(t){i?.(t),a&&A(a)}v=0}))),I),h=()=>(d&&(s(d),d=void 0),I),R=async a=>(1!=v&&(v=2,await S((async()=>{try{await e(g,a)}catch(a){i?.(a)}v=0}))),I),f=()=>(l(E,a.delListener),E=void 0,I),S=async(...a)=>(C(j(sa,y),...a),await(async()=>{if(!j(na,y)){for(B(na,y,1);!o((a=j(sa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}B(na,y,0)}var a})(),I),I={load:N,startAutoLoad:async a=>(await h().load(a),d=n((async(a,t)=>{t||a?2!=v&&(v=1,T(t??a),v=0):await N()})),I),stopAutoLoad:h,isAutoLoading:()=>!o(d),save:R,startAutoSave:async()=>(await f().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();O(a)&&R(a)})),I),stopAutoSave:f,isAutoSaving:()=>!o(E),schedule:S,getStore:()=>a,destroy:()=>h().stopAutoSave(),getStats:()=>({}),...c};return L(I)},ra=(a,t,e,n,s,i,[r,c,o],l,y,w,u)=>{const[d,E,v,p]=aa(t,l,s,u);return ia(a,(async()=>await p((async()=>{return await d(),a=(await E(r,c))[U]?.[o]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await p((async()=>{var t;await d(),await v(r,c,{[U]:{[o]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[w]:()=>y},y)},ca=(a,t,e,n,s,i,[r,c,[l,y,w]],u,d,v,p)=>{const[g,C,O,A]=aa(t,u,s,p),T=async(a,t)=>await E(x(c,(async([e,n,s,i],r)=>{t&&!b(a,r)||await O(e,n,a[r],s,i,t)}))),N=async(a,t)=>y?await O(w,Y,{[U]:a},!0,!0,t):null;return ia(a,(async()=>await A((async()=>{await g();const a=await(async()=>S(m(await E(x(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>l?(await C(w,Y))[U]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await A((async()=>{if(await g(),o(t)){const[t,e]=a();await T(t),await N(e)}else await T(t[0],!0),await N(t[1],!0)}))),e,n,s,i,{[v]:()=>d},d)},oa="ColumnName",la="store",ya="json",wa=la+"TableName",ua=la+"Id"+oa,da=la+oa,Ea="autoLoadIntervalSeconds",va="rowId"+oa,pa="tableId",ga="tableName",ma={mode:ya,[Ea]:1},Ca={load:0,save:0,[ga]:t+"_values"},Oa=(a,t,e,n,s)=>{const i=P();return D(a,((a,r)=>{const c=u(M(I(t,y(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(r,c[0])||(s(r,c[0]),B(i,r,c))})),i},Aa="pragma_",Ta="data_version",Na="schema_version",ha=(a,e,n,s,i)=>((a,e,n,s,i,r,o,l,w,d="getDb",E)=>{let v,p,g;const[m,C,T,N]=(a=>{const e=(a=>I(ma,y(a)?{[wa]:a}:a??{}))(a),n=e[Ea];if(e.mode==ya){const a=e[wa]??t;return[1,n,[a,e[ua]??Y,e[da]??la],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(M(I(Ca,r)),0,$(Ca)),o=c[2],l=W(o),w=W(o);return[0,n,[Oa(s,{[pa]:null,[va]:Y},pa,(a=>O(w,a)),(a=>z(l,a))),Oa(i,{[ga]:null,[va]:Y,deleteEmptyColumns:0,deleteEmptyTable:0},ga,((a,t)=>O(w,t)),((a,t)=>z(l,t))),c],l]})(e);return(m?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${Ta} d,${Na} s,TOTAL_CHANGES() c FROM ${Aa}${Ta} JOIN ${Aa}${Na}`);t==(v??=t)&&e==(p??=e)&&s==(g??=s)||(a(),v=t,p=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),v=p=g=null,i(t)}),o,l,T,A(N),w,d,E)})(a,n,(async(a,t=[])=>await e.execO(a,t)),(a=>e.onUpdate(((t,e,n)=>a(n)))),(a=>a()),s,i,1,e);export{ha as createCrSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),v=(a,t="")=>a.join(t),g=(a,t)=>a.map(t),p=a=>0==d(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),f=Object,h=a=>f.getPrototypeOf(a),N=f.entries,R=f.keys,b=f.freeze,L=(a=[])=>f.fromEntries(a),S=(...a)=>f.assign({},...a),D=(a,t)=>t in a,I=(a,t)=>g(N(a),(([a,e])=>t(e,a))),M=a=>f.values(a),$=a=>d(R(a)),_=a=>(a=>!o(a)&&l(h(a),(a=>a==f.prototype||o(h(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),B=(a,t)=>g([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>o(e)?(T(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(A(a,t)||H(a,t,e()),j(a,t)),Y=(a,t,e,n=H)=>(I(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>D(t,e)?0:n(a,e))),a),k="_",x="_id",G=a=>`"${a.replace(/"/g,'""')}"`,U="SELECT",W=a=>new Set(y(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=U+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=P();return[async()=>Y(r,L(await E(g(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,L(g(await a(U+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(r,t,Y(J(r,t,P),e,((a,t,e)=>{e!=j(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(r,t))),async(t,e)=>((a,t)=>!o(j(j(r,a),t)))(t,e)?L(m(g(await a(Q+G(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();I(c??{},(a=>g(R(a??{}),(a=>q(u,a)))));const d=O(u);if(!y&&w&&p(d)&&A(r,t))return await a("DROP "+z+G(t)),void H(r,t);if(p(d)||A(r,t)){const n=j(r,t),i=W(F(n));await E([...g(d,(async s=>{T(i,s)||(await a(K+G(t)+"ADD"+G(s)),H(n,s,e))})),...!y&&l?g(O(i),(async e=>{e!=s&&(await a(K+G(t)+"DROP"+G(e)),H(n,e))})):[]])}else await a("CREATE "+z+G(t)+"("+G(s)+` PRIMARY KEY ON CONFLICT REPLACE${v(g(d,(a=>n+G(a))))});`),H(r,t,P([[s,e],...g(d,(a=>[a,e]))]));if(y)o(c)?await a(V+G(t)+Z+" 1"):await E(I(c,(async(e,n)=>{o(e)?await a(V+G(t)+Z+G(s)+"=?",[n]):p(d)||await ta(a,t,s,R(e),[n,...M(e)],i)})));else if(p(d))A(r,t)&&await a(V+G(t)+Z+" 1");else{const e=m(F(j(r,t)),(a=>a!=s)),n=[],o=[];I(c??{},((a,t)=>{C(n,t,...g(e,(t=>a?.[t]))),C(o,t)})),await ta(a,t,s,e,n,i),await a(V+G(t)+Z+G(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+G(t)+"("+G(s)+v(g(r,(a=>n+G(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+G(s)+")DO UPDATE SET"+v(g(r,(a=>G(a)+"=excluded."+G(a))),n):e),g(c,(a=>a??null))),ea=a=>v(g(a,(()=>"?")),n),na=P(),sa=P(),ia=(a,t,e,n,s,i,r,c={},w=[])=>{let u,d,E,v=0;J(na,w,(()=>0)),J(sa,w,(()=>[]));const[g,p,m,A,O]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!_(a)||!_(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!_(a)||!_(t),t.setContent]:0)(r,a),T=t=>{(g&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=v&&(v=1,await L((async()=>{try{T(await t())}catch(t){i?.(t),a&&O(a)}v=0}))),S),h=()=>(d&&(s(d),d=void 0),S),N=async a=>(1!=v&&(v=2,await L((async()=>{try{await e(p,a)}catch(a){i?.(a)}v=0}))),S),R=()=>(l(E,a.delListener),E=void 0,S),L=async(...a)=>(C(j(sa,w),...a),await(async()=>{if(!j(na,w)){for(H(na,w,1);!o((a=j(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}H(na,w,0)}var a})(),S),S={load:f,startAutoLoad:async a=>(await h().load(a),d=n((async(a,t)=>{t||a?2!=v&&(v=1,T(t??a),v=0):await f()})),S),stopAutoLoad:h,isAutoLoading:()=>!o(d),save:N,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&N(a)})),S),stopAutoSave:R,isAutoSaving:()=>!o(E),schedule:L,getStore:()=>a,destroy:()=>h().stopAutoSave(),getStats:()=>({}),...c};return b(S)},ra=(a,t,e,n,s,i,[r,c,o],l,w,y,u)=>{const[d,E,v,g]=aa(t,l,s,u);return ia(a,(async()=>await g((async()=>{return await d(),a=(await E(r,c))[k]?.[o]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await d(),await v(r,c,{[k]:{[o]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[y]:()=>w},w)},ca=(a,t,e,n,s,i,[r,c,[l,w,y]],u,d,v,g)=>{const[p,C,A,O]=aa(t,u,s,g),T=async(a,t)=>await E(B(c,(async([e,n,s,i],r)=>{t&&!D(a,r)||await A(e,n,a[r],s,i,t)}))),f=async(a,t)=>w?await A(y,x,{[k]:a},!0,!0,t):null;return ia(a,(async()=>await O((async()=>{await p();const a=await(async()=>L(m(await E(B(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>l?(await C(y,x))[k]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),o(t)){const[t,e]=a();await T(t),await f(e)}else await T(t[0],!0),await f(t[1],!0)}))),e,n,s,i,{[v]:()=>d},d)},oa="ColumnName",la="store",wa="json",ya=la+"TableName",ua=la+"Id"+oa,da=la+oa,Ea="autoLoadIntervalSeconds",va="rowId"+oa,ga="tableId",pa="tableName",ma={mode:wa,[Ea]:1},Ca={load:0,save:0,[pa]:t+"_values"},Aa=(a,t,e,n,s)=>{const i=P();return I(a,((a,r)=>{const c=u(M(S(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(r,c[0])||(s(r,c[0]),H(i,r,c))})),i},Oa="pragma_",Ta="data_version",fa="schema_version",ha=(a,e,n,s,i)=>((a,e,n,s,i,r,o,l,y,d="getDb",E)=>{let v,g,p;const[m,C,T,f]=(a=>{const e=(a=>S(ma,w(a)?{[ya]:a}:a??{}))(a),n=e[Ea];if(e.mode==wa){const a=e[ya]??t;return[1,n,[a,e[ua]??x,e[da]??la],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(M(S(Ca,r)),0,$(Ca)),o=c[2],l=W(o),y=W(o);return[0,n,[Aa(s,{[ga]:null,[va]:x},ga,(a=>A(y,a)),(a=>q(l,a))),Aa(i,{[pa]:null,[va]:x,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>A(y,t)),((a,t)=>q(l,t))),c],l]})(e);return(m?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${Ta} d,${fa} s,TOTAL_CHANGES() c FROM ${Oa}${Ta} JOIN ${Oa}${fa}`);t==(v??=t)&&e==(g??=e)&&s==(p??=s)||(a(),v=t,g=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),v=g=p=null,i(t)}),o,l,T,O(f),y,d,E)})(a,n,(async(a,t=[])=>await e.db.raw({sql:a,args:t})),(a=>e.notifier.subscribeToDataChanges((t=>{return n=({tablename:t})=>a(t),e.notifier.alias(t).forEach(n);var n}))),(a=>a()),s,i,1,e,"getElectricClient");export{ha as createElectricSqlPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addDatabaseChangeListener as a}from"expo-sqlite/next";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),r=(a,t)=>a.repeat(t),
|
|
1
|
+
import{addDatabaseChangeListener as a}from"expo-sqlite/next";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),r=(a,t)=>a.repeat(t),c=Promise,o=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),E=a=>a.length,v=async a=>c.all(a),m=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),g=a=>0==E(a),A=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),O=(a,t)=>a?.has(t)??!1,N=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),f=Object,h=a=>f.getPrototypeOf(a),R=f.entries,L=f.keys,S=f.freeze,b=(a=[])=>f.fromEntries(a),I=(...a)=>f.assign({},...a),D=(a,t)=>t in a,M=(a,t)=>p(R(a),(([a,e])=>t(e,a))),$=a=>f.values(a),_=a=>E(L(a)),P=a=>(a=>!l(a)&&y(h(a),(a=>a==f.prototype||l(h(a))),(()=>!0)))(a)&&0==_(a),F=a=>new Map(a),x=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),B=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>l(e)?(T(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(O(a,t)||H(a,t,e()),j(a,t)),Y=(a,t,e,n=H)=>(M(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>D(t,e)?0:n(a,e))),a),k="_",G="_id",U=a=>`"${a.replace(/"/g,'""')}"`,W="SELECT",q=a=>new Set(u(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=W+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const r=F();return[async()=>Y(r,b(await v(p(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,b(p(await a(W+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(r,t,Y(J(r,t,F),e,((a,t,e)=>{e!=j(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(r,t))),async(t,e)=>((a,t)=>!l(j(j(r,a),t)))(t,e)?b(A(p(await a(X+U(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!P(t)))):{},async(t,e,c,o,y,w=!1)=>{const u=q();M(c??{},(a=>p(L(a??{}),(a=>z(u,a)))));const d=N(u);if(!w&&y&&g(d)&&O(r,t))return await a("DROP "+K+U(t)),void H(r,t);if(g(d)||O(r,t)){const s=j(r,t),i=q(x(s));await v([...p(d,(async e=>{T(i,e)||(await a(V+U(t)+"ADD"+U(e)),H(s,e,n))})),...!w&&o?p(N(i),(async n=>{n!=e&&(await a(V+U(t)+"DROP"+U(n)),H(s,n))})):[]])}else await a("CREATE "+K+U(t)+"("+U(e)+` PRIMARY KEY ON CONFLICT REPLACE${m(p(d,(a=>s+U(a))))});`),H(r,t,F([[e,n],...p(d,(a=>[a,n]))]));if(w)l(c)?await a(Q+U(t)+aa+" 1"):await v(M(c,(async(n,s)=>{l(n)?await a(Q+U(t)+aa+U(e)+"=?",[s]):g(d)||await ea(a,t,e,L(n),[s,...$(n)],i)})));else if(g(d))O(r,t)&&await a(Q+U(t)+aa+" 1");else{const n=A(x(j(r,t)),(a=>a!=e)),s=[],o=[];M(c??{},((a,t)=>{C(s,t,...p(n,(t=>a?.[t]))),C(o,t)})),await ea(a,t,e,n,s,i),await a(Q+U(t)+aa+U(e)+"NOT IN("+na(o)+")",o)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,c,o=!0)=>await a("INSERT "+(o?n:"OR REPLACE ")+"INTO"+U(t)+"("+U(e)+m(p(i,(a=>s+U(a))))+")VALUES"+d(r(`,(?${r(",?",E(i))})`,E(c)/(E(i)+1)),1)+(o?"ON CONFLICT("+U(e)+")DO UPDATE SET"+m(p(i,(a=>U(a)+"=excluded."+U(a))),s):n),p(c,(a=>a??null))),na=a=>m(p(a,(()=>"?")),s),sa=F(),ia=F(),ra=(a,t,e,n,s,i,r,c={},o=[])=>{let w,d,E,v=0;J(sa,o,(()=>0)),J(ia,o,(()=>[]));const[m,p,g,A,O]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!P(a)||!P(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!P(a)||!P(t),t.setContent]:0)(r,a),N=t=>{(m&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=v&&(v=1,await L((async()=>{try{N(await t())}catch(t){i?.(t),a&&O(a)}v=0}))),b),f=()=>(d&&(s(d),d=void 0),b),h=async a=>(1!=v&&(v=2,await L((async()=>{try{await e(p,a)}catch(a){i?.(a)}v=0}))),b),R=()=>(y(E,a.delListener),E=void 0,b),L=async(...a)=>(C(j(ia,o),...a),await(async()=>{if(!j(sa,o)){for(H(sa,o,1);!l((a=j(ia,o),w=a.shift()));)try{await w()}catch(a){i?.(a)}H(sa,o,0)}var a})(),b),b={load:T,startAutoLoad:async a=>(await f().load(a),d=n((async(a,t)=>{t||a?2!=v&&(v=1,N(t??a),v=0):await T()})),b),stopAutoLoad:f,isAutoLoading:()=>!l(d),save:h,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=g();A(a)&&h(a)})),b),stopAutoSave:R,isAutoSaving:()=>!l(E),schedule:L,getStore:()=>a,destroy:()=>f().stopAutoSave(),getStats:()=>({}),...c};return S(b)},ca=(a,t,e,n,s,i,[r,c,o],l,y,w,u)=>{const[d,E,v,m]=ta(t,l,s,u);return ra(a,(async()=>await m((async()=>{return await d(),a=(await E(r,c))[k]?.[o]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await m((async()=>{var t;await d(),await v(r,c,{[k]:{[o]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[w]:()=>y},y)},oa=(a,t,e,n,s,i,[r,c,[o,y,w]],u,d,E,m)=>{const[p,g,C,O]=ta(t,u,s,m),N=async(a,t)=>await v(B(c,(async([e,n,s,i],r)=>{t&&!D(a,r)||await C(e,n,a[r],s,i,t)}))),T=async(a,t)=>y?await C(w,G,{[k]:a},!0,!0,t):null;return ra(a,(async()=>await O((async()=>{await p();const a=await(async()=>b(A(await v(B(r,(async([a,t],e)=>[a,await g(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>o?(await g(w,G))[k]:{})();return P(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),l(t)){const[t,e]=a();await N(t),await T(e)}else await N(t[0],!0),await T(t[1],!0)}))),e,n,s,i,{[E]:()=>d},d)},la="ColumnName",ya="store",wa="json",ua=ya+"TableName",da=ya+"Id"+la,Ea=ya+la,va="autoLoadIntervalSeconds",ma="rowId"+la,pa="tableId",ga="tableName",Aa={mode:wa,[va]:1},Ca={load:0,save:0,[ga]:e+"_values"},Oa=(a,t,e,n,s)=>{const i=F();return M(a,((a,r)=>{const c=d($(I(t,w(a)?{[e]:a}:a)),0,_(t));l(c[0])||n(r,c[0])||(s(r,c[0]),H(i,r,c))})),i},Na="pragma_",Ta="data_version",fa="schema_version",ha=(t,n,s,i,r)=>((a,t,n,s,i,r,c,l,y,u="getDb",E)=>{let v,m,p;const[g,A,C,T]=(a=>{const t=(a=>I(Aa,w(a)?{[ua]:a}:a??{}))(a),n=t[va];if(t.mode==wa){const a=t[ua]??e;return[1,n,[a,t[da]??G,t[Ea]??ya],q(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,c=d($(I(Ca,r)),0,_(Ca)),o=c[2],l=q(o),y=q(o);return[0,n,[Oa(s,{[pa]:null,[ma]:G},pa,(a=>O(y,a)),(a=>z(l,a))),Oa(i,{[ga]:null,[ma]:G,deleteEmptyColumns:0,deleteEmptyTable:0},ga,((a,t)=>O(y,t)),((a,t)=>z(l,t))),c],l]})(t);return(g?ca:oa)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${Ta} d,${fa} s,TOTAL_CHANGES() c FROM ${Na}${Ta} JOIN ${Na}${fa}`);t==(v??=t)&&e==(m??=e)&&s==(p??=s)||(a(),v=t,m=e)}catch{}},e=A,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),v=m=p=null,i(t)}),c,l,C,N(T),y,u,E)})(t,s,(async(a,t=[])=>await n.getAllAsync(a,t)),(t=>a((({tableName:a})=>t(a)))),(a=>a.remove()),i,r,3,n);export{ha as createExpoSqliteNextPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),y=t=>a(t)==s,w=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),v=(a,t="")=>a.join(t),g=(a,t)=>a.map(t),m=a=>0==d(a),p=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],N=(a,t)=>a?.delete(t),T=Object,h=a=>T.getPrototypeOf(a),R=T.entries,f=T.keys,L=T.freeze,S=(a=[])=>T.fromEntries(a),b=(...a)=>T.assign({},...a),D=(a,t)=>t in a,I=(a,t)=>g(R(a),(([a,e])=>t(e,a))),M=a=>T.values(a),$=a=>d(f(a)),_=a=>(a=>!o(a)&&l(h(a),(a=>a==T.prototype||o(h(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>g([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>o(e)?(N(a,t),a):a?.set(t,e),H=(a,t,e,n)=>(A(a,t)||B(a,t,e()),j(a,t)),J=(a,t,e,n=B)=>(I(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>D(t,e)?0:n(a,e))),a),Y="_",k="_id",G=a=>`"${a.replace(/"/g,'""')}"`,U="SELECT",W=a=>new Set(w(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=U+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=P();return[async()=>J(r,S(await E(g(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,S(g(await a(U+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(r,t,J(H(r,t,P),e,((a,t,e)=>{e!=j(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(r,t))),async(t,e)=>((a,t)=>!o(j(j(r,a),t)))(t,e)?S(p(g(await a(Q+G(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,s,c,l,y,w=!1)=>{const u=W();I(c??{},(a=>g(f(a??{}),(a=>q(u,a)))));const d=O(u);if(!w&&y&&m(d)&&A(r,t))return await a("DROP "+z+G(t)),void B(r,t);if(m(d)||A(r,t)){const n=j(r,t),i=W(F(n));await E([...g(d,(async s=>{N(i,s)||(await a(K+G(t)+"ADD"+G(s)),B(n,s,e))})),...!w&&l?g(O(i),(async e=>{e!=s&&(await a(K+G(t)+"DROP"+G(e)),B(n,e))})):[]])}else await a("CREATE "+z+G(t)+"("+G(s)+` PRIMARY KEY ON CONFLICT REPLACE${v(g(d,(a=>n+G(a))))});`),B(r,t,P([[s,e],...g(d,(a=>[a,e]))]));if(w)o(c)?await a(V+G(t)+Z+" 1"):await E(I(c,(async(e,n)=>{o(e)?await a(V+G(t)+Z+G(s)+"=?",[n]):m(d)||await ta(a,t,s,f(e),[n,...M(e)],i)})));else if(m(d))A(r,t)&&await a(V+G(t)+Z+" 1");else{const e=p(F(j(r,t)),(a=>a!=s)),n=[],o=[];I(c??{},((a,t)=>{C(n,t,...g(e,(t=>a?.[t]))),C(o,t)})),await ta(a,t,s,e,n,i),await a(V+G(t)+Z+G(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+G(t)+"("+G(s)+v(g(r,(a=>n+G(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+G(s)+")DO UPDATE SET"+v(g(r,(a=>G(a)+"=excluded."+G(a))),n):e),g(c,(a=>a??null))),ea=a=>v(g(a,(()=>"?")),n),na=P(),sa=P(),ia=(a,t,e,n,s,i,r,c={},y=[])=>{let u,d,E,v=0;H(na,y,(()=>0)),H(sa,y,(()=>[]));const[g,m,p,A,O]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!_(a)||!_(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!_(a)||!_(t),t.setContent]:0)(r,a),N=t=>{(g&&w(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=v&&(v=1,await S((async()=>{try{N(await t())}catch(t){i?.(t),a&&O(a)}v=0}))),b),h=()=>(d&&(s(d),d=void 0),b),R=async a=>(1!=v&&(v=2,await S((async()=>{try{await e(m,a)}catch(a){i?.(a)}v=0}))),b),f=()=>(l(E,a.delListener),E=void 0,b),S=async(...a)=>(C(j(sa,y),...a),await(async()=>{if(!j(na,y)){for(B(na,y,1);!o((a=j(sa,y),u=a.shift()));)try{await u()}catch(a){i?.(a)}B(na,y,0)}var a})(),b),b={load:T,startAutoLoad:async a=>(await h().load(a),d=n((async(a,t)=>{t||a?2!=v&&(v=1,N(t??a),v=0):await T()})),b),stopAutoLoad:h,isAutoLoading:()=>!o(d),save:R,startAutoSave:async()=>(await f().save(),E=a.addDidFinishTransactionListener((()=>{const a=p();A(a)&&R(a)})),b),stopAutoSave:f,isAutoSaving:()=>!o(E),schedule:S,getStore:()=>a,destroy:()=>h().stopAutoSave(),getStats:()=>({}),...c};return L(b)},ra=(a,t,e,n,s,i,[r,c,o],l,y,w,u)=>{const[d,E,v,g]=aa(t,l,s,u);return ia(a,(async()=>await g((async()=>{return await d(),a=(await E(r,c))[Y]?.[o]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await d(),await v(r,c,{[Y]:{[o]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[w]:()=>y},y)},ca=(a,t,e,n,s,i,[r,c,[l,y,w]],u,d,v,g)=>{const[m,C,A,O]=aa(t,u,s,g),N=async(a,t)=>await E(x(c,(async([e,n,s,i],r)=>{t&&!D(a,r)||await A(e,n,a[r],s,i,t)}))),T=async(a,t)=>y?await A(w,k,{[Y]:a},!0,!0,t):null;return ia(a,(async()=>await O((async()=>{await m();const a=await(async()=>S(p(await E(x(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>l?(await C(w,k))[Y]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await m(),o(t)){const[t,e]=a();await N(t),await T(e)}else await N(t[0],!0),await T(t[1],!0)}))),e,n,s,i,{[v]:()=>d},d)},oa="ColumnName",la="store",ya="json",wa=la+"TableName",ua=la+"Id"+oa,da=la+oa,Ea="autoLoadIntervalSeconds",va="rowId"+oa,ga="tableId",ma="tableName",pa={mode:ya,[Ea]:1},Ca={load:0,save:0,[ma]:t+"_values"},Aa=(a,t,e,n,s)=>{const i=P();return I(a,((a,r)=>{const c=u(M(b(t,y(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(r,c[0])||(s(r,c[0]),B(i,r,c))})),i},Oa="pragma_",Na="data_version",Ta="schema_version",ha=(a,e,n,s,i)=>((a,e,n,s,i,r,o,l,w,d="getDb",E)=>{let v,g,m;const[p,C,N,T]=(a=>{const e=(a=>b(pa,y(a)?{[wa]:a}:a??{}))(a),n=e[Ea];if(e.mode==ya){const a=e[wa]??t;return[1,n,[a,e[ua]??k,e[da]??la],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(M(b(Ca,r)),0,$(Ca)),o=c[2],l=W(o),w=W(o);return[0,n,[Aa(s,{[ga]:null,[va]:k},ga,(a=>A(w,a)),(a=>q(l,a))),Aa(i,{[ma]:null,[va]:k,deleteEmptyColumns:0,deleteEmptyTable:0},ma,((a,t)=>A(w,t)),((a,t)=>q(l,t))),c],l]})(e);return(p?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${Na} d,${Ta} s,TOTAL_CHANGES() c FROM ${Oa}${Na} JOIN ${Oa}${Ta}`);t==(v??=t)&&e==(g??=e)&&s==(m??=s)||(a(),v=t,g=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),v=g=m=null,i(t)}),o,l,N,O(T),w,d,E)})(a,n,(async(a,t=[])=>(await e.execAsync([{sql:a,args:t}],!1))[0].rows),(a=>e.onDatabaseChange((({tableName:t})=>a(t)))),(a=>a.remove()),s,i,3,e);export{ha as createExpoSqlitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),v=(a,t="")=>a.join(t),g=(a,t)=>a.map(t),p=a=>0==d(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),N=Object,h=a=>N.getPrototypeOf(a),R=N.entries,f=N.keys,L=N.freeze,S=(a=[])=>N.fromEntries(a),I=(...a)=>N.assign({},...a),b=(a,t)=>t in a,D=(a,t)=>g(R(a),(([a,e])=>t(e,a))),M=a=>N.values(a),$=a=>d(f(a)),_=a=>(a=>!o(a)&&l(h(a),(a=>a==N.prototype||o(h(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>g([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>o(e)?(T(a,t),a):a?.set(t,e),H=(a,t,e,n)=>(A(a,t)||B(a,t,e()),j(a,t)),J=(a,t,e,n=B)=>(D(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>b(t,e)?0:n(a,e))),a),Y="_",k="_id",G=a=>`"${a.replace(/"/g,'""')}"`,U="SELECT",W=a=>new Set(y(a)||o(a)?a:[a]),q=(a,t)=>a?.add(t),z="TABLE",K="ALTER "+z,V="DELETE FROM",Q=U+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=P();return[async()=>J(r,S(await E(g(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,S(g(await a(U+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(r,t,J(H(r,t,P),e,((a,t,e)=>{e!=j(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(r,t))),async(t,e)=>((a,t)=>!o(j(j(r,a),t)))(t,e)?S(m(g(await a(Q+G(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();D(c??{},(a=>g(f(a??{}),(a=>q(u,a)))));const d=O(u);if(!y&&w&&p(d)&&A(r,t))return await a("DROP "+z+G(t)),void B(r,t);if(p(d)||A(r,t)){const n=j(r,t),i=W(F(n));await E([...g(d,(async s=>{T(i,s)||(await a(K+G(t)+"ADD"+G(s)),B(n,s,e))})),...!y&&l?g(O(i),(async e=>{e!=s&&(await a(K+G(t)+"DROP"+G(e)),B(n,e))})):[]])}else await a("CREATE "+z+G(t)+"("+G(s)+` PRIMARY KEY ON CONFLICT REPLACE${v(g(d,(a=>n+G(a))))});`),B(r,t,P([[s,e],...g(d,(a=>[a,e]))]));if(y)o(c)?await a(V+G(t)+Z+" 1"):await E(D(c,(async(e,n)=>{o(e)?await a(V+G(t)+Z+G(s)+"=?",[n]):p(d)||await ta(a,t,s,f(e),[n,...M(e)],i)})));else if(p(d))A(r,t)&&await a(V+G(t)+Z+" 1");else{const e=m(F(j(r,t)),(a=>a!=s)),n=[],o=[];D(c??{},((a,t)=>{C(n,t,...g(e,(t=>a?.[t]))),C(o,t)})),await ta(a,t,s,e,n,i),await a(V+G(t)+Z+G(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+G(t)+"("+G(s)+v(g(r,(a=>n+G(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+G(s)+")DO UPDATE SET"+v(g(r,(a=>G(a)+"=excluded."+G(a))),n):e),g(c,(a=>a??null))),ea=a=>v(g(a,(()=>"?")),n),na=P(),sa=P(),ia=(a,t,e,n,s,i,r,c={},w=[])=>{let u,d,E,v=0;H(na,w,(()=>0)),H(sa,w,(()=>[]));const[g,p,m,A,O]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!_(a)||!_(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!_(a)||!_(t),t.setContent]:0)(r,a),T=t=>{(g&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},N=async a=>(2!=v&&(v=1,await S((async()=>{try{T(await t())}catch(t){i?.(t),a&&O(a)}v=0}))),I),h=()=>(d&&(s(d),d=void 0),I),R=async a=>(1!=v&&(v=2,await S((async()=>{try{await e(p,a)}catch(a){i?.(a)}v=0}))),I),f=()=>(l(E,a.delListener),E=void 0,I),S=async(...a)=>(C(j(sa,w),...a),await(async()=>{if(!j(na,w)){for(B(na,w,1);!o((a=j(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}B(na,w,0)}var a})(),I),I={load:N,startAutoLoad:async a=>(await h().load(a),d=n((async(a,t)=>{t||a?2!=v&&(v=1,T(t??a),v=0):await N()})),I),stopAutoLoad:h,isAutoLoading:()=>!o(d),save:R,startAutoSave:async()=>(await f().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&R(a)})),I),stopAutoSave:f,isAutoSaving:()=>!o(E),schedule:S,getStore:()=>a,destroy:()=>h().stopAutoSave(),getStats:()=>({}),...c};return L(I)},ra=(a,t,e,n,s,i,[r,c,o],l,w,y,u)=>{const[d,E,v,g]=aa(t,l,s,u);return ia(a,(async()=>await g((async()=>{return await d(),a=(await E(r,c))[Y]?.[o]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await d(),await v(r,c,{[Y]:{[o]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[y]:()=>w},w)},ca=(a,t,e,n,s,i,[r,c,[l,w,y]],u,d,v,g)=>{const[p,C,A,O]=aa(t,u,s,g),T=async(a,t)=>await E(x(c,(async([e,n,s,i],r)=>{t&&!b(a,r)||await A(e,n,a[r],s,i,t)}))),N=async(a,t)=>w?await A(y,k,{[Y]:a},!0,!0,t):null;return ia(a,(async()=>await O((async()=>{await p();const a=await(async()=>S(m(await E(x(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>l?(await C(y,k))[Y]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),o(t)){const[t,e]=a();await T(t),await N(e)}else await T(t[0],!0),await N(t[1],!0)}))),e,n,s,i,{[v]:()=>d},d)},oa="ColumnName",la="store",wa="json",ya=la+"TableName",ua=la+"Id"+oa,da=la+oa,Ea="autoLoadIntervalSeconds",va="rowId"+oa,ga="tableId",pa="tableName",ma={mode:wa,[Ea]:1},Ca={load:0,save:0,[pa]:t+"_values"},Aa=(a,t,e,n,s)=>{const i=P();return D(a,((a,r)=>{const c=u(M(I(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(r,c[0])||(s(r,c[0]),B(i,r,c))})),i},Oa="pragma_",Ta="data_version",Na="schema_version",ha=(a,e,n,s,i)=>((a,e,n,s,i,r,o,l,y,d="getDb",E)=>{let v,g,p;const[m,C,T,N]=(a=>{const e=(a=>I(ma,w(a)?{[ya]:a}:a??{}))(a),n=e[Ea];if(e.mode==wa){const a=e[ya]??t;return[1,n,[a,e[ua]??k,e[da]??la],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(M(I(Ca,r)),0,$(Ca)),o=c[2],l=W(o),y=W(o);return[0,n,[Aa(s,{[ga]:null,[va]:k},ga,(a=>A(y,a)),(a=>q(l,a))),Aa(i,{[pa]:null,[va]:k,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>A(y,t)),((a,t)=>q(l,t))),c],l]})(e);return(m?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${Ta} d,${Na} s,TOTAL_CHANGES() c FROM ${Oa}${Ta} JOIN ${Oa}${Na}`);t==(v??=t)&&e==(g??=e)&&s==(p??=s)||(a(),v=t,g=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>N.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),v=g=p=null,i(t)}),o,l,T,O(N),y,d,E)})(a,n,(async(a,t=[])=>(await e.execute({sql:a,args:t})).rows),(()=>()=>0),(a=>a()),s,i,1,e,"getClient");export{ha as createLibSqlPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,o=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),g=
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,o=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),g=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),p=a=>0==d(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,T=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),O=Object,N=a=>O.getPrototypeOf(a),f=O.entries,R=O.keys,b=O.freeze,L=(a=[])=>O.fromEntries(a),S=(...a)=>O.assign({},...a),I=(a,t)=>t in a,D=(a,t)=>v(f(a),(([a,e])=>t(e,a))),M=a=>O.values(a),_=a=>d(R(a)),P=a=>(a=>!c(a)&&l(N(a),(a=>a==O.prototype||c(N(a))),(()=>!0)))(a)&&0==_(a),$=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),x=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),B=(a,t,e)=>c(e)?(h(a,t),a):a?.set(t,e),H=(a,t,e,n)=>(A(a,t)||B(a,t,e()),j(a,t)),J=(a,t,e,n=B)=>(D(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>I(t,e)?0:n(a,e))),a),Y="_",k="_id",G=a=>`"${a.replace(/"/g,'""')}"`,U="SELECT",W=a=>new Set(y(a)||c(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=U+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=$();return[async()=>J(r,L(await E(v(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,L(v(await a(U+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>B(r,t,J(H(r,t,$),e,((a,t,e)=>{e!=j(a,t)&&B(a,t,e)}),((a,t)=>B(a,t))))),((a,t)=>B(r,t))),async(t,e)=>((a,t)=>!c(j(j(r,a),t)))(t,e)?L(m(v(await a(Q+G(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!P(t)))):{},async(t,s,o,l,w,y=!1)=>{const u=W();D(o??{},(a=>v(R(a??{}),(a=>z(u,a)))));const d=T(u);if(!y&&w&&p(d)&&A(r,t))return await a("DROP "+K+G(t)),void B(r,t);if(p(d)||A(r,t)){const n=j(r,t),i=W(F(n));await E([...v(d,(async s=>{h(i,s)||(await a(V+G(t)+"ADD"+G(s)),B(n,s,e))})),...!y&&l?v(T(i),(async e=>{e!=s&&(await a(V+G(t)+"DROP"+G(e)),B(n,e))})):[]])}else await a("CREATE "+K+G(t)+"("+G(s)+` PRIMARY KEY ON CONFLICT REPLACE${g(v(d,(a=>n+G(a))))});`),B(r,t,$([[s,e],...v(d,(a=>[a,e]))]));if(y)c(o)?await a(q+G(t)+Z+" 1"):await E(D(o,(async(e,n)=>{c(e)?await a(q+G(t)+Z+G(s)+"=?",[n]):p(d)||await ta(a,t,s,R(e),[n,...M(e)],i)})));else if(p(d))A(r,t)&&await a(q+G(t)+Z+" 1");else{const e=m(F(j(r,t)),(a=>a!=s)),n=[],c=[];D(o??{},((a,t)=>{C(n,t,...v(e,(t=>a?.[t]))),C(c,t)})),await ta(a,t,s,e,n,i),await a(q+G(t)+Z+G(s)+"NOT IN("+ea(c)+")",c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,o,c=!0)=>await a("INSERT "+(c?e:"OR REPLACE ")+"INTO"+G(t)+"("+G(s)+g(v(r,(a=>n+G(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(o)/(d(r)+1)),1)+(c?"ON CONFLICT("+G(s)+")DO UPDATE SET"+g(v(r,(a=>G(a)+"=excluded."+G(a))),n):e),v(o,(a=>a??null))),ea=a=>g(v(a,(()=>"?")),n),na=$(),sa=$(),ia=(a,t,e,n,s,i,r,o={},w=[])=>{let u,d,E,g=0;H(na,w,(()=>0)),H(sa,w,(()=>[]));const[v,p,m,A,T]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!P(a)||!P(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!P(a)||!P(t),t.setContent]:0)(r,a),h=t=>{(v&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},O=async a=>(2!=g&&(g=1,await L((async()=>{try{h(await t())}catch(t){i?.(t),a&&T(a)}g=0}))),S),N=()=>(d&&(s(d),d=void 0),S),f=async a=>(1!=g&&(g=2,await L((async()=>{try{await e(p,a)}catch(a){i?.(a)}g=0}))),S),R=()=>(l(E,a.delListener),E=void 0,S),L=async(...a)=>(C(j(sa,w),...a),await(async()=>{if(!j(na,w)){for(B(na,w,1);!c((a=j(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}B(na,w,0)}var a})(),S),S={load:O,startAutoLoad:async a=>(await N().load(a),d=n((async(a,t)=>{t||a?2!=g&&(g=1,h(t??a),g=0):await O()})),S),stopAutoLoad:N,isAutoLoading:()=>!c(d),save:f,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&f(a)})),S),stopAutoSave:R,isAutoSaving:()=>!c(E),schedule:L,getStore:()=>a,destroy:()=>N().stopAutoSave(),getStats:()=>({}),...o};return b(S)},ra=(a,t,e,n,s,i,[r,o,c],l,w,y,u)=>{const[d,E,g,v]=aa(t,l,s,u);return ia(a,(async()=>await v((async()=>{return await d(),a=(await E(r,o))[Y]?.[c]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await v((async()=>{var t;await d(),await g(r,o,{[Y]:{[c]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[y]:()=>w},w)},oa=(a,t,e,n,s,i,[r,o,[l,w,y]],u,d,g,v)=>{const[p,C,A,T]=aa(t,u,s,v),h=async(a,t)=>await E(x(o,(async([e,n,s,i],r)=>{t&&!I(a,r)||await A(e,n,a[r],s,i,t)}))),O=async(a,t)=>w?await A(y,k,{[Y]:a},!0,!0,t):null;return ia(a,(async()=>await T((async()=>{await p();const a=await(async()=>L(m(await E(x(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!P(a[1])))))(),t=await(async()=>l?(await C(y,k))[Y]:{})();return P(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await p(),c(t)){const[t,e]=a();await h(t),await O(e)}else await h(t[0],!0),await O(t[1],!0)}))),e,n,s,i,{[g]:()=>d},d)},ca="ColumnName",la="store",wa="json",ya=la+"TableName",ua=la+"Id"+ca,da=la+ca,Ea="autoLoadIntervalSeconds",ga="rowId"+ca,va="tableId",pa="tableName",ma={mode:wa,[Ea]:1},Ca={load:0,save:0,[pa]:t+"_values"},Aa=(a,t,e,n,s)=>{const i=$();return D(a,((a,r)=>{const o=u(M(S(t,w(a)?{[e]:a}:a)),0,_(t));c(o[0])||n(r,o[0])||(s(r,o[0]),B(i,r,o))})),i},Ta="pragma_",ha="data_version",Oa="schema_version",Na=(a,e,n,s,i,r=!1)=>((a,e,n,s,i,r,c,l,y,d="getDb",E)=>{let g,v,p;const[m,C,h,O]=(a=>{const e=(a=>S(ma,w(a)?{[ya]:a}:a??{}))(a),n=e[Ea];if(e.mode==wa){const a=e[ya]??t;return[1,n,[a,e[ua]??k,e[da]??la],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=u(M(S(Ca,r)),0,_(Ca)),c=o[2],l=W(c),y=W(c);return[0,n,[Aa(s,{[va]:null,[ga]:k},va,(a=>A(y,a)),(a=>z(l,a))),Aa(i,{[pa]:null,[ga]:k,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>A(y,t)),((a,t)=>z(l,t))),o],l]})(e);return(m?ra:oa)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${ha} d,${Oa} s,TOTAL_CHANGES() c FROM ${Ta}${ha} JOIN ${Ta}${Oa}`);t==(g??=t)&&e==(v??=e)&&s==(p??=s)||(a(),g=t,v=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>O.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),g=v=p=null,i(t)}),c,l,h,T(O),y,d,E)})(a,n,(async(a,t=[])=>e.execute(a,t).then((a=>a.rows?._array??[]))),(a=>{const t=new AbortController,n=e.onChange({rawTableNames:!0,signal:t.signal});return(async()=>{for await(const t of n)v(t.changedTables,a)})(),t}),(a=>a.abort()),s,i,1,e,"getPowerSync",r);export{Na as createPowerSyncPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,o=clearInterval,c=a=>null==a,l=(a,t,e)=>c(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),p=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),g=a=>0==d(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),T=Object,N=a=>T.getPrototypeOf(a),R=T.entries,f=T.keys,L=T.freeze,S=(a=[])=>T.fromEntries(a),b=(...a)=>T.assign({},...a),I=(a,t)=>t in a,D=(a,t)=>v(R(a),(([a,e])=>t(e,a))),_=a=>T.values(a),M=a=>d(f(a)),$=a=>(a=>!c(a)&&l(N(a),(a=>a==T.prototype||c(N(a))),(()=>!0)))(a)&&0==M(a),P=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),k=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),x=(a,t,e)=>c(e)?(h(a,t),a):a?.set(t,e),B=(a,t,e,n)=>(A(a,t)||x(a,t,e()),j(a,t)),H=(a,t,e,n=x)=>(D(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>I(t,e)?0:n(a,e))),a),J="_",Y="_id",q=a=>`"${a.replace(/"/g,'""')}"`,G="SELECT",U=a=>new Set(y(a)||c(a)?a:[a]),V=(a,t)=>a?.add(t),W="TABLE",z="ALTER "+W,K="DELETE FROM",Q=G+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=P();return[async()=>H(r,S(await E(v(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,S(v(await a(G+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>x(r,t,H(B(r,t,P),e,((a,t,e)=>{e!=j(a,t)&&x(a,t,e)}),((a,t)=>x(a,t))))),((a,t)=>x(r,t))),async(t,e)=>((a,t)=>!c(j(j(r,a),t)))(t,e)?S(m(v(await a(Q+q(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!c(a)&&!$(t)))):{},async(t,s,o,l,w,y=!1)=>{const u=U();D(o??{},(a=>v(f(a??{}),(a=>V(u,a)))));const d=O(u);if(!y&&w&&g(d)&&A(r,t))return await a("DROP "+W+q(t)),void x(r,t);if(g(d)||A(r,t)){const n=j(r,t),i=U(F(n));await E([...v(d,(async s=>{h(i,s)||(await a(z+q(t)+"ADD"+q(s)),x(n,s,e))})),...!y&&l?v(O(i),(async e=>{e!=s&&(await a(z+q(t)+"DROP"+q(e)),x(n,e))})):[]])}else await a("CREATE "+W+q(t)+"("+q(s)+` PRIMARY KEY ON CONFLICT REPLACE${p(v(d,(a=>n+q(a))))});`),x(r,t,P([[s,e],...v(d,(a=>[a,e]))]));if(y)c(o)?await a(K+q(t)+Z+" 1"):await E(D(o,(async(e,n)=>{c(e)?await a(K+q(t)+Z+q(s)+"=?",[n]):g(d)||await ta(a,t,s,f(e),[n,..._(e)],i)})));else if(g(d))A(r,t)&&await a(K+q(t)+Z+" 1");else{const e=m(F(j(r,t)),(a=>a!=s)),n=[],c=[];D(o??{},((a,t)=>{C(n,t,...v(e,(t=>a?.[t]))),C(c,t)})),await ta(a,t,s,e,n,i),await a(K+q(t)+Z+q(s)+"NOT IN("+ea(c)+")",c)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,o,c=!0)=>await a("INSERT "+(c?e:"OR REPLACE ")+"INTO"+q(t)+"("+q(s)+p(v(r,(a=>n+q(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(o)/(d(r)+1)),1)+(c?"ON CONFLICT("+q(s)+")DO UPDATE SET"+p(v(r,(a=>q(a)+"=excluded."+q(a))),n):e),v(o,(a=>a??null))),ea=a=>p(v(a,(()=>"?")),n),na=P(),sa=P(),ia=(a,t,e,n,s,i,r,o={},w=[])=>{let u,d,E,p=0;B(na,w,(()=>0)),B(sa,w,(()=>[]));const[v,g,m,A,O]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!$(a)||!$(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!$(a)||!$(t),t.setContent]:0)(r,a),h=t=>{(v&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},T=async a=>(2!=p&&(p=1,await S((async()=>{try{h(await t())}catch(t){i?.(t),a&&O(a)}p=0}))),b),N=()=>(d&&(s(d),d=void 0),b),R=async a=>(1!=p&&(p=2,await S((async()=>{try{await e(g,a)}catch(a){i?.(a)}p=0}))),b),f=()=>(l(E,a.delListener),E=void 0,b),S=async(...a)=>(C(j(sa,w),...a),await(async()=>{if(!j(na,w)){for(x(na,w,1);!c((a=j(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}x(na,w,0)}var a})(),b),b={load:T,startAutoLoad:async a=>(await N().load(a),d=n((async(a,t)=>{t||a?2!=p&&(p=1,h(t??a),p=0):await T()})),b),stopAutoLoad:N,isAutoLoading:()=>!c(d),save:R,startAutoSave:async()=>(await f().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&R(a)})),b),stopAutoSave:f,isAutoSaving:()=>!c(E),schedule:S,getStore:()=>a,destroy:()=>N().stopAutoSave(),getStats:()=>({}),...o};return L(b)},ra=(a,t,e,n,s,i,[r,o,c],l,w,y,u)=>{const[d,E,p,v]=aa(t,l,s,u);return ia(a,(async()=>await v((async()=>{return await d(),a=(await E(r,o))[J]?.[c]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await v((async()=>{var t;await d(),await p(r,o,{[J]:{[c]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[y]:()=>w},w)},oa=(a,t,e,n,s,i,[r,o,[l,w,y]],u,d,p,v)=>{const[g,C,A,O]=aa(t,u,s,v),h=async(a,t)=>await E(k(o,(async([e,n,s,i],r)=>{t&&!I(a,r)||await A(e,n,a[r],s,i,t)}))),T=async(a,t)=>w?await A(y,Y,{[J]:a},!0,!0,t):null;return ia(a,(async()=>await O((async()=>{await g();const a=await(async()=>S(m(await E(k(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!$(a[1])))))(),t=await(async()=>l?(await C(y,Y))[J]:{})();return $(a)&&c(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await g(),c(t)){const[t,e]=a();await h(t),await T(e)}else await h(t[0],!0),await T(t[1],!0)}))),e,n,s,i,{[p]:()=>d},d)},ca="ColumnName",la="store",wa="json",ya=la+"TableName",ua=la+"Id"+ca,da=la+ca,Ea="autoLoadIntervalSeconds",pa="rowId"+ca,va="tableId",ga="tableName",ma={mode:wa,[Ea]:1},Ca={load:0,save:0,[ga]:t+"_values"},Aa=(a,t,e,n,s)=>{const i=P();return D(a,((a,r)=>{const o=u(_(b(t,w(a)?{[e]:a}:a)),0,M(t));c(o[0])||n(r,o[0])||(s(r,o[0]),x(i,r,o))})),i},Oa="pragma_",ha="data_version",Ta="schema_version",Na=(a,e,n,s,i,r)=>((a,e,n,s,i,r,c,l,y,d="getDb",E)=>{let p,v,g;const[m,C,h,T]=(a=>{const e=(a=>b(ma,w(a)?{[ya]:a}:a??{}))(a),n=e[Ea];if(e.mode==wa){const a=e[ya]??t;return[1,n,[a,e[ua]??Y,e[da]??la],U(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,o=u(_(b(Ca,r)),0,M(Ca)),c=o[2],l=U(c),y=U(c);return[0,n,[Aa(s,{[va]:null,[pa]:Y},va,(a=>A(y,a)),(a=>V(l,a))),Aa(i,{[ga]:null,[pa]:Y,deleteEmptyColumns:0,deleteEmptyTable:0},ga,((a,t)=>A(y,t)),((a,t)=>V(l,t))),o],l]})(e);return(m?ra:oa)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${ha} d,${Ta} s,TOTAL_CHANGES() c FROM ${Oa}${ha} JOIN ${Oa}${Ta}`);t==(p??=t)&&e==(v??=e)&&s==(g??=s)||(a(),p=t,v=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>T.has(t)?a():0))];var t,e}),(([a,t])=>{o(a),p=v=g=null,i(t)}),c,l,h,O(T),y,d,E)})(a,s,(async(a,t=[])=>n.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>e.capi.sqlite3_update_hook(n,((t,e,n,s)=>a(s)),0)),(()=>e.capi.sqlite3_update_hook(n,(()=>0),0)),i,r,3,n);export{Na as createSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=(a,t)=>a.repeat(t),r=Promise,c=clearInterval,o=a=>null==a,l=(a,t,e)=>o(a)?e?.():t(a),w=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),d=a=>a.length,E=async a=>r.all(a),v=(a,t="")=>a.join(t),g=(a,t)=>a.map(t),p=a=>0==d(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),A=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],T=(a,t)=>a?.delete(t),f=Object,h=a=>f.getPrototypeOf(a),N=f.entries,R=f.keys,L=f.freeze,S=(a=[])=>f.fromEntries(a),I=(...a)=>f.assign({},...a),b=(a,t)=>t in a,D=(a,t)=>g(N(a),(([a,e])=>t(e,a))),M=a=>f.values(a),$=a=>d(R(a)),_=a=>(a=>!o(a)&&l(h(a),(a=>a==f.prototype||o(h(a))),(()=>!0)))(a)&&0==$(a),P=a=>new Map(a),F=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),B=(a,t)=>g([...a?.entries()??[]],(([a,e])=>t(e,a))),H=(a,t,e)=>o(e)?(T(a,t),a):a?.set(t,e),J=(a,t,e,n)=>(A(a,t)||H(a,t,e()),j(a,t)),Y=(a,t,e,n=H)=>(D(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>b(t,e)?0:n(a,e))),a),k="_",x="_id",G=a=>`"${a.replace(/"/g,'""')}"`,U="SELECT",W=a=>new Set(y(a)||o(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,q="DELETE FROM",Q=U+"*FROM",X="FROM pragma_table_",Z="WHERE",aa=(a,t,s,i)=>{const r=P();return[async()=>Y(r,S(await E(g(await a("SELECT name "+X+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+ea(t)+")ORDER BY name",t),(async({name:t})=>[t,S(g(await a(U+" name,type "+X+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>H(r,t,Y(J(r,t,P),e,((a,t,e)=>{e!=j(a,t)&&H(a,t,e)}),((a,t)=>H(a,t))))),((a,t)=>H(r,t))),async(t,e)=>((a,t)=>!o(j(j(r,a),t)))(t,e)?S(m(g(await a(Q+G(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!o(a)&&!_(t)))):{},async(t,s,c,l,w,y=!1)=>{const u=W();D(c??{},(a=>g(R(a??{}),(a=>z(u,a)))));const d=O(u);if(!y&&w&&p(d)&&A(r,t))return await a("DROP "+K+G(t)),void H(r,t);if(p(d)||A(r,t)){const n=j(r,t),i=W(F(n));await E([...g(d,(async s=>{T(i,s)||(await a(V+G(t)+"ADD"+G(s)),H(n,s,e))})),...!y&&l?g(O(i),(async e=>{e!=s&&(await a(V+G(t)+"DROP"+G(e)),H(n,e))})):[]])}else await a("CREATE "+K+G(t)+"("+G(s)+` PRIMARY KEY ON CONFLICT REPLACE${v(g(d,(a=>n+G(a))))});`),H(r,t,P([[s,e],...g(d,(a=>[a,e]))]));if(y)o(c)?await a(q+G(t)+Z+" 1"):await E(D(c,(async(e,n)=>{o(e)?await a(q+G(t)+Z+G(s)+"=?",[n]):p(d)||await ta(a,t,s,R(e),[n,...M(e)],i)})));else if(p(d))A(r,t)&&await a(q+G(t)+Z+" 1");else{const e=m(F(j(r,t)),(a=>a!=s)),n=[],o=[];D(c??{},((a,t)=>{C(n,t,...g(e,(t=>a?.[t]))),C(o,t)})),await ta(a,t,s,e,n,i),await a(q+G(t)+Z+G(s)+"NOT IN("+ea(o)+")",o)}},async t=>{let e;await a("BEGIN");try{e=await t()}catch(a){s?.(a)}return await a("END"),e}]},ta=async(a,t,s,r,c,o=!0)=>await a("INSERT "+(o?e:"OR REPLACE ")+"INTO"+G(t)+"("+G(s)+v(g(r,(a=>n+G(a))))+")VALUES"+u(i(`,(?${i(",?",d(r))})`,d(c)/(d(r)+1)),1)+(o?"ON CONFLICT("+G(s)+")DO UPDATE SET"+v(g(r,(a=>G(a)+"=excluded."+G(a))),n):e),g(c,(a=>a??null))),ea=a=>v(g(a,(()=>"?")),n),na=P(),sa=P(),ia=(a,t,e,n,s,i,r,c={},w=[])=>{let u,d,E,v=0;J(na,w,(()=>0)),J(sa,w,(()=>[]));const[g,p,m,A,O]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!_(a)||!_(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!_(a)||!_(t),t.setContent]:0)(r,a),T=t=>{(g&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},f=async a=>(2!=v&&(v=1,await S((async()=>{try{T(await t())}catch(t){i?.(t),a&&O(a)}v=0}))),I),h=()=>(d&&(s(d),d=void 0),I),N=async a=>(1!=v&&(v=2,await S((async()=>{try{await e(p,a)}catch(a){i?.(a)}v=0}))),I),R=()=>(l(E,a.delListener),E=void 0,I),S=async(...a)=>(C(j(sa,w),...a),await(async()=>{if(!j(na,w)){for(H(na,w,1);!o((a=j(sa,w),u=a.shift()));)try{await u()}catch(a){i?.(a)}H(na,w,0)}var a})(),I),I={load:f,startAutoLoad:async a=>(await h().load(a),d=n((async(a,t)=>{t||a?2!=v&&(v=1,T(t??a),v=0):await f()})),I),stopAutoLoad:h,isAutoLoading:()=>!o(d),save:N,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=m();A(a)&&N(a)})),I),stopAutoSave:R,isAutoSaving:()=>!o(E),schedule:S,getStore:()=>a,destroy:()=>h().stopAutoSave(),getStats:()=>({}),...c};return L(I)},ra=(a,t,e,n,s,i,[r,c,o],l,w,y,u)=>{const[d,E,v,g]=aa(t,l,s,u);return ia(a,(async()=>await g((async()=>{return await d(),a=(await E(r,c))[k]?.[o]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await g((async()=>{var t;await d(),await v(r,c,{[k]:{[o]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[y]:()=>w},w)},ca=(a,t,e,n,s,i,[r,c,[l,w,y]],u,d,v,g)=>{const[p,C,A,O]=aa(t,u,s,g),T=async(a,t)=>await E(B(c,(async([e,n,s,i],r)=>{t&&!b(a,r)||await A(e,n,a[r],s,i,t)}))),f=async(a,t)=>w?await A(y,x,{[k]:a},!0,!0,t):null;return ia(a,(async()=>await O((async()=>{await p();const a=await(async()=>S(m(await E(B(r,(async([a,t],e)=>[a,await C(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>l?(await C(y,x))[k]:{})();return _(a)&&o(t)?void 0:[a,t]}))),(async(a,t)=>await O((async()=>{if(await p(),o(t)){const[t,e]=a();await T(t),await f(e)}else await T(t[0],!0),await f(t[1],!0)}))),e,n,s,i,{[v]:()=>d},d)},oa="ColumnName",la="store",wa="json",ya=la+"TableName",ua=la+"Id"+oa,da=la+oa,Ea="autoLoadIntervalSeconds",va="rowId"+oa,ga="tableId",pa="tableName",ma={mode:wa,[Ea]:1},Ca={load:0,save:0,[pa]:t+"_values"},Aa=(a,t,e,n,s)=>{const i=P();return D(a,((a,r)=>{const c=u(M(I(t,w(a)?{[e]:a}:a)),0,$(t));o(c[0])||n(r,c[0])||(s(r,c[0]),H(i,r,c))})),i},Oa="pragma_",Ta="data_version",fa="schema_version",ha="change",Na=(a,e,n,s,i)=>((a,e,n,s,i,r,o,l,y,d="getDb",E)=>{let v,g,p;const[m,C,T,f]=(a=>{const e=(a=>I(ma,w(a)?{[ya]:a}:a??{}))(a),n=e[Ea];if(e.mode==wa){const a=e[ya]??t;return[1,n,[a,e[ua]??x,e[da]??la],W(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=u(M(I(Ca,r)),0,$(Ca)),o=c[2],l=W(o),y=W(o);return[0,n,[Aa(s,{[ga]:null,[va]:x},ga,(a=>A(y,a)),(a=>z(l,a))),Aa(i,{[pa]:null,[va]:x,deleteEmptyColumns:0,deleteEmptyTable:0},pa,((a,t)=>A(y,t)),((a,t)=>z(l,t))),c],l]})(e);return(m?ra:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${Ta} d,${fa} s,TOTAL_CHANGES() c FROM ${Oa}${Ta} JOIN ${Oa}${fa}`);t==(v??=t)&&e==(g??=e)&&s==(p??=s)||(a(),v=t,g=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>f.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),v=g=p=null,i(t)}),o,l,T,O(f),y,d,E)})(a,n,(async(a,t=[])=>{return await(n=(n,s)=>e.all(a,t,((a,t)=>a?s(a):n(t))),new r(n));var n}),(a=>{const t=(t,e,n)=>a(n);return e.on(ha,t),t}),(a=>e.off(ha,a)),s,i,3,e);export{Na as createSqlite3Persister};
|
|
Binary file
|
|
@@ -36,7 +36,7 @@ import {Store} from '../store.d.ts';
|
|
|
36
36
|
* @category Persister
|
|
37
37
|
* @since v4.5.0
|
|
38
38
|
*/
|
|
39
|
-
export interface ExpoSqliteNextPersister extends Persister {
|
|
39
|
+
export interface ExpoSqliteNextPersister extends Persister<3> {
|
|
40
40
|
/**
|
|
41
41
|
* The getDb method returns a reference to the database instance the Store is
|
|
42
42
|
* being persisted to.
|
|
@@ -35,7 +35,7 @@ import {Store} from '../store.d.ts';
|
|
|
35
35
|
* @category Persister
|
|
36
36
|
* @since v4.3.14
|
|
37
37
|
*/
|
|
38
|
-
export interface ExpoSqlitePersister extends Persister {
|
|
38
|
+
export interface ExpoSqlitePersister extends Persister<3> {
|
|
39
39
|
/**
|
|
40
40
|
* The getDb method returns a reference to the database instance the Store is
|
|
41
41
|
* being persisted to.
|
|
@@ -23,7 +23,7 @@ import {Store} from '../store.d.ts';
|
|
|
23
23
|
* @category Persister
|
|
24
24
|
* @since v4.3.14
|
|
25
25
|
*/
|
|
26
|
-
export interface SqliteWasmPersister extends Persister {
|
|
26
|
+
export interface SqliteWasmPersister extends Persister<3> {
|
|
27
27
|
/**
|
|
28
28
|
* The getDb method returns a reference to the database instance the Store is
|
|
29
29
|
* being persisted to.
|
|
@@ -24,7 +24,7 @@ import {Store} from '../store.d.ts';
|
|
|
24
24
|
* @category Persister
|
|
25
25
|
* @since v4.3.14
|
|
26
26
|
*/
|
|
27
|
-
export interface Sqlite3Persister extends Persister {
|
|
27
|
+
export interface Sqlite3Persister extends Persister<3> {
|
|
28
28
|
/**
|
|
29
29
|
* The getDb method returns a reference to the database instance the Store is
|
|
30
30
|
* being persisted to.
|
|
@@ -189,14 +189,15 @@ export type DatabasePersisterConfig = DpcJson | DpcTabular;
|
|
|
189
189
|
* The DpcJson type describes the configuration of a database-oriented Persister
|
|
190
190
|
* operating in serialized JSON mode.
|
|
191
191
|
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
192
|
+
* One setting is the `storeTableName` property, which indicates the name of a
|
|
193
|
+
* table in the database which will be used to serialize the Store content into.
|
|
194
|
+
* It defaults to `tinybase`.
|
|
195
195
|
*
|
|
196
196
|
* That table in the database will be given two columns: a primary key column
|
|
197
|
-
* called `_id`, and one called `store`.
|
|
198
|
-
*
|
|
199
|
-
* `
|
|
197
|
+
* called `_id`, and one called `store`. (These column names can be changed
|
|
198
|
+
* using the `rowIdColumnName` and `storeColumnName` settings). The Persister
|
|
199
|
+
* will place a single row in this table with `_` in the `_id` column, and the
|
|
200
|
+
* JSON serialization in the `store` column, something like:
|
|
200
201
|
*
|
|
201
202
|
* ```
|
|
202
203
|
* > SELECT * FROM tinybase;
|
|
@@ -235,6 +236,16 @@ export type DpcJson = {
|
|
|
235
236
|
* `tinybase`.
|
|
236
237
|
*/
|
|
237
238
|
storeTableName?: string;
|
|
239
|
+
/**
|
|
240
|
+
* The optional name of the column in the database table that will be used as
|
|
241
|
+
* the Id for the Store, defaulting to '_id', since v5.0.
|
|
242
|
+
*/
|
|
243
|
+
storeIdColumnName?: string;
|
|
244
|
+
/**
|
|
245
|
+
* The optional name of the column in the database table that will be used for
|
|
246
|
+
* the JSON of the Store, defaulting to 'store', since v5.0.
|
|
247
|
+
*/
|
|
248
|
+
storeColumnName?: string;
|
|
238
249
|
/**
|
|
239
250
|
* How often the Persister should poll the database for any changes made to it
|
|
240
251
|
* by other clients, defaulting to 1 second.
|
|
@@ -577,7 +588,7 @@ export type DpcTabularValues = {
|
|
|
577
588
|
*/
|
|
578
589
|
save?: boolean;
|
|
579
590
|
/**
|
|
580
|
-
* The optional name of the database table from and to which the Store
|
|
591
|
+
* The optional name of the database table from and to which the Store Values
|
|
581
592
|
* should be loaded or saved, defaulting to `tinybase_values`.
|
|
582
593
|
*/
|
|
583
594
|
tableName?: string;
|