tinybase 5.0.0-beta.14 → 5.0.0-beta.15
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-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/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/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/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 +1 -1
- 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 +1 -1
- 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-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/package.json +24 -24
- package/readme.md +2 -2
|
@@ -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;
|
package/lib/types/ui-react.d.ts
CHANGED
|
@@ -467,7 +467,7 @@ export function useStoreOrStoreById(
|
|
|
467
467
|
* Note that other components that consume a Store registered like this should
|
|
468
468
|
* defend against it being undefined at first. On the first render, the other
|
|
469
469
|
* component will likely not yet have completed the registration. In the example
|
|
470
|
-
* below, we use the null-safe `useStore('petStore')
|
|
470
|
+
* below, we use the null-safe `useStore('petStore')?` to do this.
|
|
471
471
|
* @param storeId The Id of the Store object to be registered with the Provider.
|
|
472
472
|
* @param store The Store object to be registered.
|
|
473
473
|
* @example
|
|
@@ -37,7 +37,7 @@ import {SQLiteDatabase} from 'expo-sqlite/next';
|
|
|
37
37
|
* @since v4.5.0
|
|
38
38
|
*/
|
|
39
39
|
export interface ExpoSqliteNextPersister<Schemas extends OptionalSchemas>
|
|
40
|
-
extends Persister<Schemas> {
|
|
40
|
+
extends Persister<Schemas, 3> {
|
|
41
41
|
/**
|
|
42
42
|
* The getDb method returns a reference to the database instance the Store is
|
|
43
43
|
* being persisted to.
|
|
@@ -36,7 +36,7 @@ import {SQLiteDatabase} from 'expo-sqlite';
|
|
|
36
36
|
* @since v4.3.14
|
|
37
37
|
*/
|
|
38
38
|
export interface ExpoSqlitePersister<Schemas extends OptionalSchemas>
|
|
39
|
-
extends Persister<Schemas> {
|
|
39
|
+
extends Persister<Schemas, 3> {
|
|
40
40
|
/**
|
|
41
41
|
* The getDb method returns a reference to the database instance the Store is
|
|
42
42
|
* being persisted to.
|
|
@@ -24,7 +24,7 @@ import {OptionalSchemas, Store} from '../store.d.ts';
|
|
|
24
24
|
* @since v4.3.14
|
|
25
25
|
*/
|
|
26
26
|
export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
|
|
27
|
-
extends Persister<Schemas> {
|
|
27
|
+
extends Persister<Schemas, 3> {
|
|
28
28
|
/**
|
|
29
29
|
* The getDb method returns a reference to the database instance the Store is
|
|
30
30
|
* being persisted to.
|
|
@@ -25,7 +25,7 @@ import {Database} from 'sqlite3';
|
|
|
25
25
|
* @since v4.3.14
|
|
26
26
|
*/
|
|
27
27
|
export interface Sqlite3Persister<Schemas extends OptionalSchemas>
|
|
28
|
-
extends Persister<Schemas> {
|
|
28
|
+
extends Persister<Schemas, 3> {
|
|
29
29
|
/**
|
|
30
30
|
* The getDb method returns a reference to the database instance the Store is
|
|
31
31
|
* being persisted to.
|
|
@@ -221,14 +221,15 @@ export type DatabasePersisterConfig<Schemas extends OptionalSchemas> =
|
|
|
221
221
|
* The DpcJson type describes the configuration of a database-oriented Persister
|
|
222
222
|
* operating in serialized JSON mode.
|
|
223
223
|
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
224
|
+
* One setting is the `storeTableName` property, which indicates the name of a
|
|
225
|
+
* table in the database which will be used to serialize the Store content into.
|
|
226
|
+
* It defaults to `tinybase`.
|
|
227
227
|
*
|
|
228
228
|
* That table in the database will be given two columns: a primary key column
|
|
229
|
-
* called `_id`, and one called `store`.
|
|
230
|
-
*
|
|
231
|
-
* `
|
|
229
|
+
* called `_id`, and one called `store`. (These column names can be changed
|
|
230
|
+
* using the `rowIdColumnName` and `storeColumnName` settings). The Persister
|
|
231
|
+
* will place a single row in this table with `_` in the `_id` column, and the
|
|
232
|
+
* JSON serialization in the `store` column, something like:
|
|
232
233
|
*
|
|
233
234
|
* ```
|
|
234
235
|
* > SELECT * FROM tinybase;
|
|
@@ -267,6 +268,16 @@ export type DpcJson = {
|
|
|
267
268
|
* `tinybase`.
|
|
268
269
|
*/
|
|
269
270
|
storeTableName?: string;
|
|
271
|
+
/**
|
|
272
|
+
* The optional name of the column in the database table that will be used as
|
|
273
|
+
* the Id for the Store, defaulting to '_id', since v5.0.
|
|
274
|
+
*/
|
|
275
|
+
storeIdColumnName?: string;
|
|
276
|
+
/**
|
|
277
|
+
* The optional name of the column in the database table that will be used for
|
|
278
|
+
* the JSON of the Store, defaulting to 'store', since v5.0.
|
|
279
|
+
*/
|
|
280
|
+
storeColumnName?: string;
|
|
270
281
|
/**
|
|
271
282
|
* How often the Persister should poll the database for any changes made to it
|
|
272
283
|
* by other clients, defaulting to 1 second.
|
|
@@ -609,7 +620,7 @@ export type DpcTabularValues = {
|
|
|
609
620
|
*/
|
|
610
621
|
save?: boolean;
|
|
611
622
|
/**
|
|
612
|
-
* The optional name of the database table from and to which the Store
|
|
623
|
+
* The optional name of the database table from and to which the Store Values
|
|
613
624
|
* should be loaded or saved, defaulting to `tinybase_values`.
|
|
614
625
|
*/
|
|
615
626
|
tableName?: string;
|
|
@@ -566,7 +566,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
|
|
|
566
566
|
* Note that other components that consume a Store registered like this should
|
|
567
567
|
* defend against it being undefined at first. On the first render, the other
|
|
568
568
|
* component will likely not yet have completed the registration. In the example
|
|
569
|
-
* below, we use the null-safe `useStore('petStore')
|
|
569
|
+
* below, we use the null-safe `useStore('petStore')?` to do this.
|
|
570
570
|
* @param storeId The Id of the Store object to be registered with the Provider.
|
|
571
571
|
* @param store The Store object to be registered.
|
|
572
572
|
* @example
|