tinybase 6.1.0-beta.4 → 6.1.0-beta.5
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/@types/persisters/index.d.ts +82 -40
- package/@types/persisters/persister-automerge/index.d.ts +4 -4
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-browser/index.d.ts +4 -4
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +3 -3
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-electric-sql/index.d.ts +3 -3
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-expo-sqlite/index.d.ts +3 -3
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-file/index.d.ts +2 -2
- package/@types/persisters/persister-file/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-indexed-db/index.d.ts +2 -2
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-libsql/index.d.ts +3 -3
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-partykit-client/index.d.ts +2 -2
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-pglite/index.d.ts +3 -3
- package/@types/persisters/persister-pglite/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-postgres/index.d.ts +3 -3
- package/@types/persisters/persister-postgres/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-powersync/index.d.ts +3 -3
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-remote/index.d.ts +2 -2
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +2 -2
- package/@types/persisters/persister-sqlite-bun/index.d.ts +3 -3
- package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +3 -3
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-sqlite3/index.d.ts +3 -3
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +3 -3
- package/@types/persisters/persister-yjs/index.d.ts +4 -4
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +4 -4
- package/@types/persisters/with-schemas/index.d.ts +86 -42
- package/@types/synchronizers/index.d.ts +18 -16
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +3 -3
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -3
- package/@types/synchronizers/synchronizer-local/index.d.ts +2 -2
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +2 -2
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +5 -5
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +5 -5
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +37 -37
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +37 -37
- package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +7 -7
- package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +7 -7
- package/@types/synchronizers/with-schemas/index.d.ts +18 -16
- package/@types/ui-react/index.d.ts +2 -2
- package/@types/ui-react/with-schemas/index.d.ts +2 -2
- package/index.js +23 -17
- package/mergeable-store/index.js +23 -17
- package/mergeable-store/with-schemas/index.js +23 -17
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/package.json +8 -4
- package/persisters/index.js +293 -161
- package/persisters/persister-automerge/index.js +55 -50
- package/persisters/persister-automerge/with-schemas/index.js +55 -50
- package/persisters/persister-browser/index.js +56 -55
- package/persisters/persister-browser/with-schemas/index.js +56 -55
- package/persisters/persister-cr-sqlite-wasm/index.js +181 -134
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +181 -134
- package/persisters/persister-durable-object-storage/index.js +58 -53
- package/persisters/persister-durable-object-storage/with-schemas/index.js +58 -53
- package/persisters/persister-electric-sql/index.js +181 -134
- package/persisters/persister-electric-sql/with-schemas/index.js +181 -134
- package/persisters/persister-expo-sqlite/index.js +181 -134
- package/persisters/persister-expo-sqlite/with-schemas/index.js +181 -134
- package/persisters/persister-file/index.js +55 -50
- package/persisters/persister-file/with-schemas/index.js +55 -50
- package/persisters/persister-indexed-db/index.js +82 -78
- package/persisters/persister-indexed-db/with-schemas/index.js +82 -78
- package/persisters/persister-libsql/index.js +182 -135
- package/persisters/persister-libsql/with-schemas/index.js +182 -135
- package/persisters/persister-partykit-client/index.js +56 -51
- package/persisters/persister-partykit-client/with-schemas/index.js +56 -51
- package/persisters/persister-pglite/index.js +299 -173
- package/persisters/persister-pglite/with-schemas/index.js +299 -173
- package/persisters/persister-postgres/index.js +296 -171
- package/persisters/persister-postgres/with-schemas/index.js +296 -171
- package/persisters/persister-powersync/index.js +189 -138
- package/persisters/persister-powersync/with-schemas/index.js +189 -138
- package/persisters/persister-remote/index.js +55 -50
- package/persisters/persister-remote/with-schemas/index.js +55 -50
- package/persisters/persister-sqlite-bun/index.js +182 -135
- package/persisters/persister-sqlite-bun/with-schemas/index.js +182 -135
- package/persisters/persister-sqlite-wasm/index.js +182 -135
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +182 -135
- package/persisters/persister-sqlite3/index.js +181 -134
- package/persisters/persister-sqlite3/with-schemas/index.js +181 -134
- package/persisters/persister-yjs/index.js +55 -50
- package/persisters/persister-yjs/with-schemas/index.js +55 -50
- package/persisters/with-schemas/index.js +293 -161
- package/readme.md +2 -2
- package/releases.md +29 -1
- package/store/index.js +20 -15
- package/store/with-schemas/index.js +20 -15
- package/synchronizers/index.js +68 -63
- package/synchronizers/synchronizer-broadcast-channel/index.js +68 -63
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +68 -63
- package/synchronizers/synchronizer-local/index.js +68 -63
- package/synchronizers/synchronizer-local/with-schemas/index.js +68 -63
- package/synchronizers/synchronizer-ws-client/index.js +68 -63
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +68 -63
- package/synchronizers/synchronizer-ws-server/index.js +79 -70
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +79 -70
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +69 -51
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +69 -51
- package/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/synchronizers/with-schemas/index.js +68 -63
- package/ui-react-inspector/index.js +68 -60
- package/ui-react-inspector/with-schemas/index.js +68 -60
- package/with-schemas/index.js +23 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),o=
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),o="true",i=(a,t,e)=>a.replace(t,e),r=Promise,c=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),u=t=>a(t)==s,y=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),v=a=>a.length,E=()=>{},g=async a=>r.all(a),p=a=>{throw Error(a)},A=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},N=(a,t)=>a.forEach(t),m=(a,t="")=>a.join(t),$=(a,t)=>a.map(t),f=a=>0==v(a),C=(a,t)=>a.filter(t),S=(a,...t)=>a.push(...t),T=a=>a.shift(),b=(a,t)=>a?.has(t)??!1,h=a=>l(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],O=(a,t)=>a?.forEach(t),I=(a,t)=>a?.delete(t),D=Object,R=a=>D.getPrototypeOf(a),M=D.entries,_=D.keys,P=D.freeze,F=(a=[])=>D.fromEntries(a),U=(...a)=>D.assign({},...a),j=(a,t)=>(delete a[t],a),x=(a,t)=>$(M(a),(([a,e])=>t(e,a))),B=(a,t)=>F(x(a,((a,e)=>[e,t(a,e)]))),J=a=>D.values(a),Y=a=>v(_(a)),k=a=>(a=>!l(a)&&w(R(a),(a=>a==D.prototype||l(R(a))),(()=>!0)))(a)&&0==Y(a),z=a=>new Set(y(a)||l(a)?a:[a]),G=(a,t)=>a?.add(t),H="_",V="_id",K="SELECT",Q="WHERE",W="TABLE",X="INSERT",q="ALTER "+W,Z="FROM",aa="DELETE "+Z,ta=K+"*"+Z,ea="pragma_",na="data_version",sa="schema_version",oa="pragma_table_",ia="CREATE "+W,ra=a=>`"${i(a,/"/g,'""')}"`,ca=(...a)=>m($(a,ra),n),la=(a,t=[1])=>m($(a,(()=>"$"+t[0]++)),n),wa=(a,t=o)=>Q+`(${i(t,"$tableName",ra(a))})`,ua=a=>new Map(a),ya=(a,t)=>a?.get(t),da=(a,t)=>$([...a?.entries()??[]],(([a,e])=>t(e,a))),va=(a,t,e)=>l(e)?(I(a,t),a):a?.set(t,e),Ea=(a,t,e,n)=>(b(a,t)?n?.(ya(a,t)):va(a,t,e()),ya(a,t)),ga=(a,t,e,n,s=0)=>w((e?Ea:ya)(a,t[s],s>v(t)-2?e:ua),(o=>{if(s>v(t)-2)return n?.(o)&&va(a,t[s]),o;const i=ga(o,t,e,n,s+1);return h(o)&&va(a,t[s]),i})),pa="ColumnName",Aa="store",Na="json",ma=Aa+"TableName",$a=Aa+"Id"+pa,fa=Aa+pa,Ca="autoLoadIntervalSeconds",Sa="rowId"+pa,Ta="tableId",ba="tableName",ha="deleteEmptyColumns",La="deleteEmptyTable",Oa="condition",Ia={mode:Na,[Ca]:1},Da={load:0,save:0,[ba]:t+"_values"},Ra=(a,t,e,n,s)=>{const o=ua();return B(a,((a,i)=>{const r=d(J(U(t,u(a)?{[e]:a}:a)),0,Y(t));l(r[0])||n(i,r[0])||(s(i,r[0]),va(o,i,r))})),o},Ma=JSON.stringify,_a=JSON.parse,Pa=/^\d+$/,Fa=ua(),Ua=ua(),ja=(a,t,n,s,o,i,r,c={},u=0,d=[])=>{let E,g,m,$=0,f=0,C=0;Ea(Fa,d,(()=>0)),Ea(Ua,d,(()=>[]));const b=ua(),[L,D,R,M,_]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!k(a)||!k(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!k(a)||!k(t),t.setContent]:p("Store type not supported by this Persister"))(r,a,u),[F,U,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?T(a):null)??e+t++,t=>{Pa.test(t)&&v(a)<1e3&&S(a,t)}]})(),s=ua();return[(n,o,i,r=[],c=()=>[])=>{a??=Q;const l=t(1);return va(s,l,[n,o,i,r,c]),G(ga(o,i??[e],z),l),l},(t,n,...o)=>N(((a,t=[e])=>{const n=[],s=(a,e)=>e==v(t)?S(n,a):null===t[e]?O(a,(a=>s(a,e+1))):N([t[e],null],(t=>s(ya(a,t),e+1)));return s(a,0),n})(t,n),(t=>O(t,(t=>ya(s,t)[0](a,...n??[],...o))))),a=>w(ya(s,a),(([,t,o])=>(ga(t,o??[e],void 0,(t=>(I(t,a),h(t)?1:0))),va(s,a),n(a),o))),t=>w(ya(s,t),(([t,,e=[],n,s])=>{const o=(...i)=>{const r=v(i);r==v(e)?t(a,...i,...s(i)):l(e[r])?N(n[r]?.(...i)??[],(a=>o(...i,a))):o(...i,e[r])};o()}))]})(),x=a=>{a!=$&&($=a,U(b,void 0,$))},B=t=>{(L&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async a=>(2!=$&&(x(1),f++,await K((async()=>{await A((async()=>{const e=await t();y(e)?B(e):a?_(a):p("Content is not an array: "+e)}),(()=>{a&&_(a)})),x(0)}))),Q),Y=async()=>(g&&(await A((()=>o(g)),i),g=void 0),Q),H=async a=>(1!=$&&(x(2),C++,await K((async()=>{await A((()=>n(D,a)),i),x(0)}))),Q),V=async()=>(m&&(a.delListener(m),m=void 0),Q),K=async(...a)=>(S(ya(Ua,d),...a),await(async()=>{if(!ya(Fa,d)){for(va(Fa,d,1);!l(E=T(ya(Ua,d)));)await A(E,i);va(Fa,d,0)}})(),Q),Q={load:J,startAutoLoad:async a=>(Y(),await J(a),await A((async()=>g=await s((async(a,t)=>{t||a?2!=$&&(x(1),f++,B(t??a),x(0)):await J()}))),i),Q),stopAutoLoad:Y,isAutoLoading:()=>!l(g),save:H,startAutoSave:async()=>(V(),await H(),m=a.addDidFinishTransactionListener((()=>{const a=R();M(a)&&H(a)})),Q),stopAutoSave:V,isAutoSaving:()=>!l(m),getStatus:()=>$,addStatusListener:a=>F(a,b),delListener:t=>(j(t),a),schedule:K,getStore:()=>a,destroy:async()=>(ya(Ua,d).splice(0,void 0),await Q.stopAutoLoad(),await Q.stopAutoSave()),getStats:()=>({loads:f,saves:C}),...c};return P(Q)},xa=(a,t,e,s,i,r=Ba,c,w)=>{const u=ua();return[async()=>{u.clear(),$(await e(a,t),(({tn:a,cn:t})=>G(Ea(u,a,z),t)))},async(t,e,n)=>((a,t)=>b(ya(u,a),t))(t,e)?F(C($(await a(ta+ra(t)+wa(t,n)),(a=>[a[e],w?B(j(a,e),w):j(a,e)])),(([a,t])=>!l(a)&&!k(t)))):{},async(t,e,s,w,y,d=!1,v=o)=>{const E=z();B(s??{},(a=>$(_(a??{}),(a=>G(E,a)))));const p=L(E);if(!d&&y&&v==o&&f(p)&&b(u,t))return await a("DROP "+W+ra(t)),void va(u,t);const A=ya(u,t),N=z(L(A));if(f(p)||(b(u,t)?await g($([e,...p],(async(n,s)=>{I(N,n)||(await a(q+ra(t)+"ADD"+ra(n)+i),0==s&&await a("CREATE UNIQUE INDEX pk ON "+ra(t)+`(${ra(e)})`),G(A,n))}))):(await a(ia+ra(t)+`(${ra(e)}${i} PRIMARY KEY${m($(p,(a=>n+ra(a)+i)))});`),va(u,t,z([e,...p])))),await g([...!d&&w?$(L(N),(async n=>{n!=e&&(await a(q+ra(t)+"DROP"+ra(n)),I(A,n))})):[]]),d)l(s)?await a(aa+ra(t)+wa(t,v)):await g(x(s,(async(n,s)=>{l(n)?await a(aa+ra(t)+wa(t,v)+`AND(${ra(e)}=$1)`,[s]):f(p)||await r(a,t,e,_(n),{[s]:c?$(J(n),c):J(n)},A)})));else if(f(p))b(u,t)&&await a(aa+ra(t)+wa(t,v));else{const n=C(L(ya(u,t)),(a=>a!=e)),o={},i=[];B(s??{},((a,t)=>{o[t]=$(n,(t=>c?c(a?.[t]):a?.[t])),S(i,t)})),await r(a,t,e,n,o),await a(aa+ra(t)+wa(t,v)+`AND${ra(e)}NOT IN(${la(i)})`,i)}},async t=>{let e;return await a("BEGIN"),await A((async()=>e=await t()),s),await a("END"),e}]},Ba=async(a,t,e,s,o)=>{const i=[1];await a(X+" INTO"+ra(t)+"("+ca(e,...s)+")VALUES"+m(x(o,(a=>"($"+i[0]+++","+la(a,i)+")")),n)+"ON CONFLICT("+ra(e)+")DO UPDATE SET"+m($(s,(a=>ra(a)+"=excluded."+ra(a))),n),x(o,((a,t)=>[t,...$(a,(a=>a??null))])).flat())},Ja=(a,t,e,n,s,o,i,[r,c,l],w,u,y,d,v,E)=>{const[g,p,A,N]=xa(t,w,u,s,v,E),m=ja(a,(()=>N((async()=>{return await g(),a=(await p(r,c))[H]?.[l]??"null",_a(a,((a,t)=>""===t?void 0:t));var a}))),(a=>N((async()=>{var t;await g(),await A(r,c,{[H]:{[l]:(t=a()??null,Ma(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[d]:()=>y,destroy:async()=>(await m.stopAutoLoad(),await m.stopAutoSave(),o(),m)},0,y);return m},Ya=(a,t,e,n,s,o,i,[r,c,[w,u,y]],d,v,E,p,A,N,m,$)=>{const[f,S,T,b]=xa(t,d,v,s,A,N,m,$),h=(a,t)=>g(da(c,(async([e,n,s,o,i],r)=>{t&&!(r in a)||await T(e,n,a[r],s,o,t,i)}))),L=async(a,t)=>u?await T(y,V,{[H]:a},!0,!0,t):null,O=ja(a,(()=>b((async()=>{await f();const a=await(async()=>F(C(await g(da(r,(async([a,t,e],n)=>[a,await S(n,t,e)]))),(a=>!k(a[1])))))(),t=await(async()=>w?(await S(y,V))[H]:{})();return k(a)&&l(t)?void 0:[a,t]}))),((a,t)=>b((async()=>{if(await f(),l(t)){const[t,e]=a();await h(t),await L(e)}else await h(t[0],!0),await L(t[1],!0)}))),e,n,s,i,{[p]:()=>E,destroy:async()=>(await O.stopAutoLoad(),await O.stopAutoSave(),o(),O)},0,E);return O},ka=(a,n,s,i,r,l,w,y,v,E,g="getDb",p)=>{let N,m,$;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[C,S,T,h]=(a=>{const e=(a=>U(Ia,u(a)?{[ma]:a}:a??{}))(a),n=e[Ca];if(e.mode==Na){const a=e[ma]??t;return[1,n,[a,e[$a]??V,e[fa]??Aa],z(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=e,c=d(J(U(Da,r)),0,Y(Da)),l=c[2],w=z(l),y=z(l),v=Ra(s,{[Ta]:null,[Sa]:V,[Oa]:o},Ta,(a=>b(y,a)),(a=>G(w,a))),E=Ra(i,{[ba]:null,[Sa]:V,[ha]:0,[La]:0,[Oa]:null},ba,((a,t)=>b(y,t)),((a,t)=>G(w,t)));var g;return g=(a,t)=>t[4]??=ya(v,t[0])?.[2]??o,O(E,((a,t)=>g(0,a))),[0,n,[v,E,c],w]})(n);return(C?Ja:Ya)(a,f,(a=>{let t;const e=()=>t=setInterval((()=>A((async()=>{const[{d:t,s:e,c:n}]=await f(K+` ${na} d,${sa} s,TOTAL_CHANGES() c FROM ${ea}${na} JOIN ${ea}${sa}`);t==N&&e==m&&n==$||(null!=N&&a(),N=t,m=e,$=n)}))),1e3*S),n=()=>{N=m=$=null,c(t)},s=i((t=>{h.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(s)}}),(a=>a()),w,y,v,T,L(h),(async(a,t)=>await a(K+` t.name tn,c.name cn FROM ${oa}list()t,${oa}info(t.name)c ${Q} t.schema='main'AND t.type IN('table','view')AND t.name IN(${la(t)})ORDER BY t.name,c.name`,t)),E,g,e,p,(a=>!0===a?1:!1===a?0:a),void 0)},za=(a,t,e,n,s)=>{let o;return ka(a,e,(async(a,e=[])=>t.execute(a,e).then((a=>a.rows?._array??[]))),(a=>{const e=new AbortController,n=t.onChange({rawTableNames:!0,signal:e.signal});return(async()=>{for await(const a of n)o&&$(a.changedTables,o)})(),o=a,e}),(a=>{o=void 0,a.abort()}),n,s,E,1,t,"getPowerSync",Ga)},Ga=async(a,t,e,s,o,i)=>{const r=[1],c=z(s),l=i?C([...i],(a=>a!=e&&!b(c,a))):[];if(!f(l)){const n=_(o),s=F($(await a(K+ca(e,...l)+Z+ra(t)+Q+ra(e)+"IN("+la(n)+")",n),(a=>[a[e],a])));N(n,(a=>S(o[a],...$(l,(t=>s?.[a]?.[t]??null)))))}await a(X+" OR REPLACE INTO"+ra(t)+"("+ca(e,...s,...l)+")VALUES"+m(x(o,(a=>"($"+r[0]+++","+la(a,r)+")")),n),x(o,((a,t)=>[t,...$(a,(a=>a??null))])).flat())};export{za as createPowerSyncPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=t=>t.length,r=t=>{throw Error(t)},o=(t,e)=>t.forEach(e),
|
|
1
|
+
const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=t=>t.length,r=t=>{throw Error(t)},o=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},i=(t,e)=>t.forEach(e),c=(t,...e)=>t.push(...e),l=t=>t.shift(),y=Object,d=t=>y.getPrototypeOf(t),u=y.keys,g=y.freeze,p=t=>(t=>!e(t)&&a(d(t),(t=>t==y.prototype||e(d(t))),(()=>!0)))(t)&&0==(t=>s(u(t)))(t),w=JSON.stringify,h=JSON.parse,v=t=>e(t)||0==(t=>t?.size??0)(t),f=(t,e)=>t?.forEach(e),S=(t,e)=>t?.delete(e),C=t=>new Map(t),A=(t,e)=>t?.get(e),b=(t,a,n)=>e(n)?(S(t,a),t):t?.set(a,n),L=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)?n?.(A(t,e)):b(t,e,a()),A(t,e)},M=(t,e,n,r,o=0)=>a((n?L:A)(t,e[o],o>s(e)-2?n:C),(a=>{if(o>s(e)-2)return r?.(a)&&b(t,e[o]),a;const i=M(a,e,n,r,o+1);return v(a)&&b(t,e[o]),i})),E=/^\d+$/,T=t=>new Set(n(t)||e(t)?t:[t]),O=C(),m=C(),D=(t,y,d,u,w,h,D,P={},j=0,x=[])=>{let z,I,J,N=0,k=0,F=0;L(O,x,(()=>0)),L(m,x,(()=>[]));const H=C(),[U,$,q,B,G]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!p(t)||!p(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!p(t)||!p(e),e.setContent]:r("Store type not supported by this Persister"))(D,t,j),[K,Q,R]=(()=>{let t;const[n,r]=(()=>{const t=[];let e=0;return[a=>(a?l(t):null)??""+e++,e=>{E.test(e)&&s(t)<1e3&&c(t,e)}]})(),o=C();return[(e,a,s,r=[],i=()=>[])=>{t??=et;const c=n(1);var l,y;return b(o,c,[e,a,s,r,i]),l=M(a,s??[""],T),y=c,l?.add(y),c},(e,a,...n)=>i(((t,e=[""])=>{const a=[],n=(t,r)=>r==s(e)?c(a,t):null===e[r]?f(t,(t=>n(t,r+1))):i([e[r],null],(e=>n(A(t,e),r+1)));return n(t,0),a})(e,a),(e=>f(e,(e=>A(o,e)[0](t,...a??[],...n))))),t=>a(A(o,t),(([,e,a])=>(M(e,a??[""],void 0,(e=>(S(e,t),v(e)?1:0))),b(o,t),r(t),a))),n=>a(A(o,n),(([a,,n=[],r,o])=>{const c=(...l)=>{const y=s(l);y==s(n)?a(t,...l,...o(l)):e(n[y])?i(r[y]?.(...l)??[],(t=>c(...l,t))):c(...l,n[y])};c()}))]})(),V=t=>{t!=N&&(N=t,Q(H,void 0,N))},W=e=>{(U&&n(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async t=>(2!=N&&(V(1),k++,await tt((async()=>{await o((async()=>{const e=await y();n(e)?W(e):t?G(t):r("Content is not an array: "+e)}),(()=>{t&&G(t)})),V(0)}))),et),Y=async()=>(I&&(await o((()=>w(I)),h),I=void 0),et),Z=async t=>(1!=N&&(V(2),F++,await tt((async()=>{await o((()=>d($,t)),h),V(0)}))),et),_=async()=>(J&&(t.delListener(J),J=void 0),et),tt=async(...t)=>(c(A(m,x),...t),await(async()=>{if(!A(O,x)){for(b(O,x,1);!e(z=l(A(m,x)));)await o(z,h);b(O,x,0)}})(),et),et={load:X,startAutoLoad:async t=>(Y(),await X(t),await o((async()=>I=await u((async(t,e)=>{e||t?2!=N&&(V(1),k++,W(e??t),V(0)):await X()}))),h),et),stopAutoLoad:Y,isAutoLoading:()=>!e(I),save:Z,startAutoSave:async()=>(_(),await Z(),J=t.addDidFinishTransactionListener((()=>{const t=q();B(t)&&Z(t)})),et),stopAutoSave:_,isAutoSaving:()=>!e(J),getStatus:()=>N,addStatusListener:t=>K(t,H),delListener:e=>(R(e),t),schedule:tt,getStore:()=>t,destroy:async()=>(A(m,x).splice(0,void 0),await et.stopAutoLoad(),await et.stopAutoSave()),getStats:()=>({loads:k,saves:F}),...P};return g(et)},P=t=>t.headers.get("ETag"),j=(a,n,s,r=5,o)=>{let i;return D(a,(async()=>{const t=await fetch(n);return i=P(t),h(await t.text())}),(async t=>{return await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),w(e,((t,e)=>e instanceof Map?y.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(n,{method:"HEAD"}),s=P(a);e(i)||e(s)||s==i||(i=s,t())}),1e3*r)),(e=>t(e)),o,1,{getUrls:()=>[n,s]})};export{j as createRemotePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=t=>t.length,r=t=>{throw Error(t)},o=(t,e)=>t.forEach(e),
|
|
1
|
+
const t=clearInterval,e=t=>null==t,a=(t,a,n)=>e(t)?n?.():a(t),n=t=>Array.isArray(t),s=t=>t.length,r=t=>{throw Error(t)},o=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},i=(t,e)=>t.forEach(e),c=(t,...e)=>t.push(...e),l=t=>t.shift(),y=Object,d=t=>y.getPrototypeOf(t),u=y.keys,g=y.freeze,p=t=>(t=>!e(t)&&a(d(t),(t=>t==y.prototype||e(d(t))),(()=>!0)))(t)&&0==(t=>s(u(t)))(t),w=JSON.stringify,h=JSON.parse,v=t=>e(t)||0==(t=>t?.size??0)(t),f=(t,e)=>t?.forEach(e),S=(t,e)=>t?.delete(e),C=t=>new Map(t),A=(t,e)=>t?.get(e),b=(t,a,n)=>e(n)?(S(t,a),t):t?.set(a,n),L=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)?n?.(A(t,e)):b(t,e,a()),A(t,e)},M=(t,e,n,r,o=0)=>a((n?L:A)(t,e[o],o>s(e)-2?n:C),(a=>{if(o>s(e)-2)return r?.(a)&&b(t,e[o]),a;const i=M(a,e,n,r,o+1);return v(a)&&b(t,e[o]),i})),E=/^\d+$/,T=t=>new Set(n(t)||e(t)?t:[t]),O=C(),m=C(),D=(t,y,d,u,w,h,D,P={},j=0,x=[])=>{let z,I,J,N=0,k=0,F=0;L(O,x,(()=>0)),L(m,x,(()=>[]));const H=C(),[U,$,q,B,G]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!p(t)||!p(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!p(t)||!p(e),e.setContent]:r("Store type not supported by this Persister"))(D,t,j),[K,Q,R]=(()=>{let t;const[n,r]=(()=>{const t=[];let e=0;return[a=>(a?l(t):null)??""+e++,e=>{E.test(e)&&s(t)<1e3&&c(t,e)}]})(),o=C();return[(e,a,s,r=[],i=()=>[])=>{t??=et;const c=n(1);var l,y;return b(o,c,[e,a,s,r,i]),l=M(a,s??[""],T),y=c,l?.add(y),c},(e,a,...n)=>i(((t,e=[""])=>{const a=[],n=(t,r)=>r==s(e)?c(a,t):null===e[r]?f(t,(t=>n(t,r+1))):i([e[r],null],(e=>n(A(t,e),r+1)));return n(t,0),a})(e,a),(e=>f(e,(e=>A(o,e)[0](t,...a??[],...n))))),t=>a(A(o,t),(([,e,a])=>(M(e,a??[""],void 0,(e=>(S(e,t),v(e)?1:0))),b(o,t),r(t),a))),n=>a(A(o,n),(([a,,n=[],r,o])=>{const c=(...l)=>{const y=s(l);y==s(n)?a(t,...l,...o(l)):e(n[y])?i(r[y]?.(...l)??[],(t=>c(...l,t))):c(...l,n[y])};c()}))]})(),V=t=>{t!=N&&(N=t,Q(H,void 0,N))},W=e=>{(U&&n(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async t=>(2!=N&&(V(1),k++,await tt((async()=>{await o((async()=>{const e=await y();n(e)?W(e):t?G(t):r("Content is not an array: "+e)}),(()=>{t&&G(t)})),V(0)}))),et),Y=async()=>(I&&(await o((()=>w(I)),h),I=void 0),et),Z=async t=>(1!=N&&(V(2),F++,await tt((async()=>{await o((()=>d($,t)),h),V(0)}))),et),_=async()=>(J&&(t.delListener(J),J=void 0),et),tt=async(...t)=>(c(A(m,x),...t),await(async()=>{if(!A(O,x)){for(b(O,x,1);!e(z=l(A(m,x)));)await o(z,h);b(O,x,0)}})(),et),et={load:X,startAutoLoad:async t=>(Y(),await X(t),await o((async()=>I=await u((async(t,e)=>{e||t?2!=N&&(V(1),k++,W(e??t),V(0)):await X()}))),h),et),stopAutoLoad:Y,isAutoLoading:()=>!e(I),save:Z,startAutoSave:async()=>(_(),await Z(),J=t.addDidFinishTransactionListener((()=>{const t=q();B(t)&&Z(t)})),et),stopAutoSave:_,isAutoSaving:()=>!e(J),getStatus:()=>N,addStatusListener:t=>K(t,H),delListener:e=>(R(e),t),schedule:tt,getStore:()=>t,destroy:async()=>(A(m,x).splice(0,void 0),await et.stopAutoLoad(),await et.stopAutoSave()),getStats:()=>({loads:k,saves:F}),...P};return g(et)},P=t=>t.headers.get("ETag"),j=(a,n,s,r=5,o)=>{let i;return D(a,(async()=>{const t=await fetch(n);return i=P(t),h(await t.text())}),(async t=>{return await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:(e=t(),w(e,((t,e)=>e instanceof Map?y.fromEntries([...e]):e)))});var e}),(t=>setInterval((async()=>{const a=await fetch(n,{method:"HEAD"}),s=P(a);e(i)||e(s)||s==i||(i=s,t())}),1e3*r)),(e=>t(e)),o,1,{getUrls:()=>[n,s]})};export{j as createRemotePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),u=t=>a(t)==s,y=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),v=a=>a.length,p=()=>{},E=async a=>r.all(a),A=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},N=(a,t)=>a.forEach(t),m=(a,t="")=>a.join(t),$=(a,t)=>a.map(t),f=a=>0==v(a),S=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),T=a=>a.shift(),h=(a,t)=>a?.has(t)??!1,L=a=>l(a)||0==(a=>a?.size??0)(a),O=a=>[...a?.values()??[]],b=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),I="_",R="_id",M="SELECT",_="WHERE",P="TABLE",F="ALTER "+P,U="FROM",j="DELETE "+U,B=M+"*"+U,J="pragma_",Y="data_version",k="schema_version",x="pragma_table_",z="CREATE "+P,G=a=>`"${o(a,/"/g,'""')}"`,H=(a,t=[1])=>m($(a,(()=>"$"+t[0]++)),n),q=(a,t=i)=>_+`(${o(t,"$tableName",G(a))})`,K=Object,Q=a=>K.getPrototypeOf(a),V=K.entries,W=K.keys,X=K.freeze,Z=(a=[])=>K.fromEntries(a),aa=(...a)=>K.assign({},...a),ta=(a,t)=>(delete a[t],a),ea=(a,t)=>$(V(a),(([a,e])=>t(e,a))),na=(a,t)=>Z(ea(a,((a,e)=>[e,t(a,e)]))),sa=a=>K.values(a),ia=a=>v(W(a)),oa=a=>(a=>!l(a)&&w(Q(a),(a=>a==K.prototype||l(Q(a))),(()=>!0)))(a)&&0==ia(a),ra=a=>new Map(a),ca=(a,t)=>a?.get(t),la=(a,t)=>$([...a?.entries()??[]],(([a,e])=>t(e,a))),wa=(a,t,e)=>l(e)?(D(a,t),a):a?.set(t,e),ua=(a,t,e,n)=>(h(a,t)?n?.(ca(a,t)):wa(a,t,e()),ca(a,t)),ya=(a,t,e,n,s=0)=>w((e?ua:ca)(a,t[s],s>v(t)-2?e:ra),(i=>{if(s>v(t)-2)return n?.(i)&&wa(a,t[s]),i;const o=ya(i,t,e,n,s+1);return L(i)&&wa(a,t[s]),o})),da=a=>new Set(y(a)||l(a)?a:[a]),va=(a,t)=>a?.add(t),pa="ColumnName",Ea="store",Aa="json",ga=Ea+"TableName",Na=Ea+"Id"+pa,ma=Ea+pa,$a="autoLoadIntervalSeconds",fa="rowId"+pa,Sa="tableId",Ca="tableName",Ta="deleteEmptyColumns",ha="deleteEmptyTable",La="condition",Oa={mode:Aa,[$a]:1},ba={load:0,save:0,[Ca]:t+"_values"},Da=(a,t,e,n,s)=>{const i=ra();return na(a,((a,o)=>{const r=d(sa(aa(t,u(a)?{[e]:a}:a)),0,ia(t));l(r[0])||n(o,r[0])||(s(o,r[0]),wa(i,o,r))})),i},Ia=JSON.stringify,Ra=JSON.parse,Ma=/^\d+$/,_a=ra(),Pa=ra(),Fa=(a,t,n,s,i,o,r,c={},u=0,d=[])=>{let p,E,m,$=0,f=0,S=0;ua(_a,d,(()=>0)),ua(Pa,d,(()=>[]));const h=ra(),[O,I,R,M,_]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!oa(a)||!oa(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!oa(a)||!oa(t),t.setContent]:A("Store type not supported by this Persister"))(r,a,u),[P,F,U]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?T(a):null)??e+t++,t=>{Ma.test(t)&&v(a)<1e3&&C(a,t)}]})(),s=ra();return[(n,i,o,r=[],c=()=>[])=>{a??=G;const l=t(1);return wa(s,l,[n,i,o,r,c]),va(ya(i,o??[e],da),l),l},(t,n,...i)=>N(((a,t=[e])=>{const n=[],s=(a,e)=>e==v(t)?C(n,a):null===t[e]?b(a,(a=>s(a,e+1))):N([t[e],null],(t=>s(ca(a,t),e+1)));return s(a,0),n})(t,n),(t=>b(t,(t=>ca(s,t)[0](a,...n??[],...i))))),a=>w(ca(s,a),(([,t,i])=>(ya(t,i??[e],void 0,(t=>(D(t,a),L(t)?1:0))),wa(s,a),n(a),i))),t=>w(ca(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=v(o);r==v(e)?t(a,...o,...s(o)):l(e[r])?N(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=$&&($=a,F(h,void 0,$))},B=t=>{(O&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async a=>(2!=$&&(j(1),f++,await z((async()=>{await g((async()=>{const e=await t();y(e)?B(e):a?_(a):A("Content is not an array: "+e)}),(()=>{a&&_(a)})),j(0)}))),G),Y=async()=>(E&&(await g((()=>i(E)),o),E=void 0),G),k=async a=>(1!=$&&(j(2),S++,await z((async()=>{await g((()=>n(I,a)),o),j(0)}))),G),x=async()=>(m&&(a.delListener(m),m=void 0),G),z=async(...a)=>(C(ca(Pa,d),...a),await(async()=>{if(!ca(_a,d)){for(wa(_a,d,1);!l(p=T(ca(Pa,d)));)await g(p,o);wa(_a,d,0)}})(),G),G={load:J,startAutoLoad:async a=>(Y(),await J(a),await g((async()=>E=await s((async(a,t)=>{t||a?2!=$&&(j(1),f++,B(t??a),j(0)):await J()}))),o),G),stopAutoLoad:Y,isAutoLoading:()=>!l(E),save:k,startAutoSave:async()=>(x(),await k(),m=a.addDidFinishTransactionListener((()=>{const a=R();M(a)&&k(a)})),G),stopAutoSave:x,isAutoSaving:()=>!l(m),getStatus:()=>$,addStatusListener:a=>P(a,h),delListener:t=>(U(t),a),schedule:z,getStore:()=>a,destroy:async()=>(ca(Pa,d).splice(0,void 0),await G.stopAutoLoad(),await G.stopAutoSave()),getStats:()=>({loads:f,saves:S}),...c};return X(G)},Ua=(a,t,e,s,o,r=ja,c,w)=>{const u=ra();return[async()=>{u.clear(),$(await e(a,t),(({tn:a,cn:t})=>va(ua(u,a,da),t)))},async(t,e,n)=>((a,t)=>h(ca(u,a),t))(t,e)?Z(S($(await a(B+G(t)+q(t,n)),(a=>[a[e],w?na(ta(a,e),w):ta(a,e)])),(([a,t])=>!l(a)&&!oa(t)))):{},async(t,e,s,w,y,d=!1,v=i)=>{const p=da();na(s??{},(a=>$(W(a??{}),(a=>va(p,a)))));const A=O(p);if(!d&&y&&v==i&&f(A)&&h(u,t))return await a("DROP "+P+G(t)),void wa(u,t);const g=ca(u,t),N=da(O(g));if(f(A)||(h(u,t)?await E($([e,...A],(async(n,s)=>{D(N,n)||(await a(F+G(t)+"ADD"+G(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+G(t)+`(${G(e)})`),va(g,n))}))):(await a(z+G(t)+`(${G(e)}${o} PRIMARY KEY${m($(A,(a=>n+G(a)+o)))});`),wa(u,t,da([e,...A])))),await E([...!d&&w?$(O(N),(async n=>{n!=e&&(await a(F+G(t)+"DROP"+G(n)),D(g,n))})):[]]),d)l(s)?await a(j+G(t)+q(t,v)):await E(ea(s,(async(n,s)=>{l(n)?await a(j+G(t)+q(t,v)+`AND(${G(e)}=$1)`,[s]):f(A)||await r(a,t,e,W(n),{[s]:c?$(sa(n),c):sa(n)},g)})));else if(f(A))h(u,t)&&await a(j+G(t)+q(t,v));else{const n=S(O(ca(u,t)),(a=>a!=e)),i={},o=[];na(s??{},((a,t)=>{i[t]=$(n,(t=>c?c(a?.[t]):a?.[t])),C(o,t)})),await r(a,t,e,n,i),await a(j+G(t)+q(t,v)+`AND${G(e)}NOT IN(${H(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await g((async()=>e=await t()),s),await a("END"),e}]},ja=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+G(t)+"("+((...a)=>m($(a,G),n))(e,...s)+")VALUES"+m(ea(i,(a=>"($"+o[0]+++","+H(a,o)+")")),n)+"ON CONFLICT("+G(e)+")DO UPDATE SET"+m($(s,(a=>G(a)+"=excluded."+G(a))),n),ea(i,((a,t)=>[t,...$(a,(a=>a??null))])).flat())},Ba=(a,t,e,n,s,i,o,[r,c,l],w,u,y,d,v,p)=>{const[E,A,g,N]=Ua(t,w,u,s,v,p),m=Fa(a,(()=>N((async()=>{return await E(),a=(await A(r,c))[I]?.[l]??"null",Ra(a,((a,t)=>""===t?void 0:t));var a}))),(a=>N((async()=>{var t;await E(),await g(r,c,{[I]:{[l]:(t=a()??null,Ia(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:async()=>(await m.stopAutoLoad(),await m.stopAutoSave(),i(),m)},0,y);return m},Ja=(a,t,e,n,s,i,o,[r,c,[w,u,y]],d,v,p,A,g,N,m,$)=>{const[f,C,T,h]=Ua(t,d,v,s,g,N,m,$),L=(a,t)=>E(la(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t,o)}))),O=async(a,t)=>u?await T(y,R,{[I]:a},!0,!0,t):null,b=Fa(a,(()=>h((async()=>{await f();const a=await(async()=>Z(S(await E(la(r,(async([a,t,e],n)=>[a,await C(n,t,e)]))),(a=>!oa(a[1])))))(),t=await(async()=>w?(await C(y,R))[I]:{})();return oa(a)&&l(t)?void 0:[a,t]}))),((a,t)=>h((async()=>{if(await f(),l(t)){const[t,e]=a();await L(t),await O(e)}else await L(t[0],!0),await O(t[1],!0)}))),e,n,s,o,{[A]:()=>p,destroy:async()=>(await b.stopAutoLoad(),await b.stopAutoSave(),i(),b)},0,p);return b},Ya=(a,n,s,o,r,l,w,y,v,p,E="getDb",A)=>{let N,m,$;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[S,C,T,L]=(a=>{const e=(a=>aa(Oa,u(a)?{[ga]:a}:a??{}))(a),n=e[$a];if(e.mode==Aa){const a=e[ga]??t;return[1,n,[a,e[Na]??R,e[ma]??Ea],da(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=d(sa(aa(ba,r)),0,ia(ba)),l=c[2],w=da(l),y=da(l),v=Da(s,{[Sa]:null,[fa]:R,[La]:i},Sa,(a=>h(y,a)),(a=>va(w,a))),p=Da(o,{[Ca]:null,[fa]:R,[Ta]:0,[ha]:0,[La]:null},Ca,((a,t)=>h(y,t)),((a,t)=>va(w,t)));var E;return E=(a,t)=>t[4]??=ca(v,t[0])?.[2]??i,b(p,((a,t)=>E(0,a))),[0,n,[v,p,c],w]})(n);return(S?Ba:Ja)(a,f,(a=>{let t;const e=()=>t=setInterval((()=>g((async()=>{const[{d:t,s:e,c:n}]=await f(M+` ${Y} d,${k} s,TOTAL_CHANGES() c FROM ${J}${Y} JOIN ${J}${k}`);t==N&&e==m&&n==$||(null!=N&&a(),N=t,m=e,$=n)}))),1e3*C),n=()=>{N=m=$=null,c(t)},s=o((t=>{L.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(s)}}),(a=>a()),w,y,v,T,O(L),(async(a,t)=>await a(M+` t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${_} t.schema='main'AND t.type IN('table','view')AND t.name IN(${H(t)})ORDER BY t.name,c.name`,t)),p,E,e,A,(a=>!0===a?1:!1===a?0:a),void 0)},ka=(a,t,e,n,s)=>Ya(a,e,(async(a,e=[])=>t.query(a).all(...e)),(()=>p),(a=>a()),n,s,p,3,t);export{ka as createSqliteBunPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),u=t=>a(t)==s,y=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),v=a=>a.length,p=()=>{},E=async a=>r.all(a),A=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},N=(a,t)=>a.forEach(t),m=(a,t="")=>a.join(t),$=(a,t)=>a.map(t),f=a=>0==v(a),S=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),T=a=>a.shift(),h=(a,t)=>a?.has(t)??!1,L=a=>l(a)||0==(a=>a?.size??0)(a),O=a=>[...a?.values()??[]],b=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),I="_",R="_id",M="SELECT",_="WHERE",P="TABLE",F="ALTER "+P,U="FROM",j="DELETE "+U,B=M+"*"+U,J="pragma_",Y="data_version",k="schema_version",x="pragma_table_",z="CREATE "+P,G=a=>`"${o(a,/"/g,'""')}"`,H=(a,t=[1])=>m($(a,(()=>"$"+t[0]++)),n),q=(a,t=i)=>_+`(${o(t,"$tableName",G(a))})`,K=Object,Q=a=>K.getPrototypeOf(a),V=K.entries,W=K.keys,X=K.freeze,Z=(a=[])=>K.fromEntries(a),aa=(...a)=>K.assign({},...a),ta=(a,t)=>(delete a[t],a),ea=(a,t)=>$(V(a),(([a,e])=>t(e,a))),na=(a,t)=>Z(ea(a,((a,e)=>[e,t(a,e)]))),sa=a=>K.values(a),ia=a=>v(W(a)),oa=a=>(a=>!l(a)&&w(Q(a),(a=>a==K.prototype||l(Q(a))),(()=>!0)))(a)&&0==ia(a),ra=a=>new Map(a),ca=(a,t)=>a?.get(t),la=(a,t)=>$([...a?.entries()??[]],(([a,e])=>t(e,a))),wa=(a,t,e)=>l(e)?(D(a,t),a):a?.set(t,e),ua=(a,t,e,n)=>(h(a,t)?n?.(ca(a,t)):wa(a,t,e()),ca(a,t)),ya=(a,t,e,n,s=0)=>w((e?ua:ca)(a,t[s],s>v(t)-2?e:ra),(i=>{if(s>v(t)-2)return n?.(i)&&wa(a,t[s]),i;const o=ya(i,t,e,n,s+1);return L(i)&&wa(a,t[s]),o})),da=a=>new Set(y(a)||l(a)?a:[a]),va=(a,t)=>a?.add(t),pa="ColumnName",Ea="store",Aa="json",ga=Ea+"TableName",Na=Ea+"Id"+pa,ma=Ea+pa,$a="autoLoadIntervalSeconds",fa="rowId"+pa,Sa="tableId",Ca="tableName",Ta="deleteEmptyColumns",ha="deleteEmptyTable",La="condition",Oa={mode:Aa,[$a]:1},ba={load:0,save:0,[Ca]:t+"_values"},Da=(a,t,e,n,s)=>{const i=ra();return na(a,((a,o)=>{const r=d(sa(aa(t,u(a)?{[e]:a}:a)),0,ia(t));l(r[0])||n(o,r[0])||(s(o,r[0]),wa(i,o,r))})),i},Ia=JSON.stringify,Ra=JSON.parse,Ma=/^\d+$/,_a=ra(),Pa=ra(),Fa=(a,t,n,s,i,o,r,c={},u=0,d=[])=>{let p,E,m,$=0,f=0,S=0;ua(_a,d,(()=>0)),ua(Pa,d,(()=>[]));const h=ra(),[O,I,R,M,_]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!oa(a)||!oa(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!oa(a)||!oa(t),t.setContent]:A("Store type not supported by this Persister"))(r,a,u),[P,F,U]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?T(a):null)??e+t++,t=>{Ma.test(t)&&v(a)<1e3&&C(a,t)}]})(),s=ra();return[(n,i,o,r=[],c=()=>[])=>{a??=G;const l=t(1);return wa(s,l,[n,i,o,r,c]),va(ya(i,o??[e],da),l),l},(t,n,...i)=>N(((a,t=[e])=>{const n=[],s=(a,e)=>e==v(t)?C(n,a):null===t[e]?b(a,(a=>s(a,e+1))):N([t[e],null],(t=>s(ca(a,t),e+1)));return s(a,0),n})(t,n),(t=>b(t,(t=>ca(s,t)[0](a,...n??[],...i))))),a=>w(ca(s,a),(([,t,i])=>(ya(t,i??[e],void 0,(t=>(D(t,a),L(t)?1:0))),wa(s,a),n(a),i))),t=>w(ca(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=v(o);r==v(e)?t(a,...o,...s(o)):l(e[r])?N(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=$&&($=a,F(h,void 0,$))},B=t=>{(O&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async a=>(2!=$&&(j(1),f++,await z((async()=>{await g((async()=>{const e=await t();y(e)?B(e):a?_(a):A("Content is not an array: "+e)}),(()=>{a&&_(a)})),j(0)}))),G),Y=async()=>(E&&(await g((()=>i(E)),o),E=void 0),G),k=async a=>(1!=$&&(j(2),S++,await z((async()=>{await g((()=>n(I,a)),o),j(0)}))),G),x=async()=>(m&&(a.delListener(m),m=void 0),G),z=async(...a)=>(C(ca(Pa,d),...a),await(async()=>{if(!ca(_a,d)){for(wa(_a,d,1);!l(p=T(ca(Pa,d)));)await g(p,o);wa(_a,d,0)}})(),G),G={load:J,startAutoLoad:async a=>(Y(),await J(a),await g((async()=>E=await s((async(a,t)=>{t||a?2!=$&&(j(1),f++,B(t??a),j(0)):await J()}))),o),G),stopAutoLoad:Y,isAutoLoading:()=>!l(E),save:k,startAutoSave:async()=>(x(),await k(),m=a.addDidFinishTransactionListener((()=>{const a=R();M(a)&&k(a)})),G),stopAutoSave:x,isAutoSaving:()=>!l(m),getStatus:()=>$,addStatusListener:a=>P(a,h),delListener:t=>(U(t),a),schedule:z,getStore:()=>a,destroy:async()=>(ca(Pa,d).splice(0,void 0),await G.stopAutoLoad(),await G.stopAutoSave()),getStats:()=>({loads:f,saves:S}),...c};return X(G)},Ua=(a,t,e,s,o,r=ja,c,w)=>{const u=ra();return[async()=>{u.clear(),$(await e(a,t),(({tn:a,cn:t})=>va(ua(u,a,da),t)))},async(t,e,n)=>((a,t)=>h(ca(u,a),t))(t,e)?Z(S($(await a(B+G(t)+q(t,n)),(a=>[a[e],w?na(ta(a,e),w):ta(a,e)])),(([a,t])=>!l(a)&&!oa(t)))):{},async(t,e,s,w,y,d=!1,v=i)=>{const p=da();na(s??{},(a=>$(W(a??{}),(a=>va(p,a)))));const A=O(p);if(!d&&y&&v==i&&f(A)&&h(u,t))return await a("DROP "+P+G(t)),void wa(u,t);const g=ca(u,t),N=da(O(g));if(f(A)||(h(u,t)?await E($([e,...A],(async(n,s)=>{D(N,n)||(await a(F+G(t)+"ADD"+G(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+G(t)+`(${G(e)})`),va(g,n))}))):(await a(z+G(t)+`(${G(e)}${o} PRIMARY KEY${m($(A,(a=>n+G(a)+o)))});`),wa(u,t,da([e,...A])))),await E([...!d&&w?$(O(N),(async n=>{n!=e&&(await a(F+G(t)+"DROP"+G(n)),D(g,n))})):[]]),d)l(s)?await a(j+G(t)+q(t,v)):await E(ea(s,(async(n,s)=>{l(n)?await a(j+G(t)+q(t,v)+`AND(${G(e)}=$1)`,[s]):f(A)||await r(a,t,e,W(n),{[s]:c?$(sa(n),c):sa(n)},g)})));else if(f(A))h(u,t)&&await a(j+G(t)+q(t,v));else{const n=S(O(ca(u,t)),(a=>a!=e)),i={},o=[];na(s??{},((a,t)=>{i[t]=$(n,(t=>c?c(a?.[t]):a?.[t])),C(o,t)})),await r(a,t,e,n,i),await a(j+G(t)+q(t,v)+`AND${G(e)}NOT IN(${H(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await g((async()=>e=await t()),s),await a("END"),e}]},ja=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+G(t)+"("+((...a)=>m($(a,G),n))(e,...s)+")VALUES"+m(ea(i,(a=>"($"+o[0]+++","+H(a,o)+")")),n)+"ON CONFLICT("+G(e)+")DO UPDATE SET"+m($(s,(a=>G(a)+"=excluded."+G(a))),n),ea(i,((a,t)=>[t,...$(a,(a=>a??null))])).flat())},Ba=(a,t,e,n,s,i,o,[r,c,l],w,u,y,d,v,p)=>{const[E,A,g,N]=Ua(t,w,u,s,v,p),m=Fa(a,(()=>N((async()=>{return await E(),a=(await A(r,c))[I]?.[l]??"null",Ra(a,((a,t)=>""===t?void 0:t));var a}))),(a=>N((async()=>{var t;await E(),await g(r,c,{[I]:{[l]:(t=a()??null,Ia(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:async()=>(await m.stopAutoLoad(),await m.stopAutoSave(),i(),m)},0,y);return m},Ja=(a,t,e,n,s,i,o,[r,c,[w,u,y]],d,v,p,A,g,N,m,$)=>{const[f,C,T,h]=Ua(t,d,v,s,g,N,m,$),L=(a,t)=>E(la(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await T(e,n,a[r],s,i,t,o)}))),O=async(a,t)=>u?await T(y,R,{[I]:a},!0,!0,t):null,b=Fa(a,(()=>h((async()=>{await f();const a=await(async()=>Z(S(await E(la(r,(async([a,t,e],n)=>[a,await C(n,t,e)]))),(a=>!oa(a[1])))))(),t=await(async()=>w?(await C(y,R))[I]:{})();return oa(a)&&l(t)?void 0:[a,t]}))),((a,t)=>h((async()=>{if(await f(),l(t)){const[t,e]=a();await L(t),await O(e)}else await L(t[0],!0),await O(t[1],!0)}))),e,n,s,o,{[A]:()=>p,destroy:async()=>(await b.stopAutoLoad(),await b.stopAutoSave(),i(),b)},0,p);return b},Ya=(a,n,s,o,r,l,w,y,v,p,E="getDb",A)=>{let N,m,$;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[S,C,T,L]=(a=>{const e=(a=>aa(Oa,u(a)?{[ga]:a}:a??{}))(a),n=e[$a];if(e.mode==Aa){const a=e[ga]??t;return[1,n,[a,e[Na]??R,e[ma]??Ea],da(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=d(sa(aa(ba,r)),0,ia(ba)),l=c[2],w=da(l),y=da(l),v=Da(s,{[Sa]:null,[fa]:R,[La]:i},Sa,(a=>h(y,a)),(a=>va(w,a))),p=Da(o,{[Ca]:null,[fa]:R,[Ta]:0,[ha]:0,[La]:null},Ca,((a,t)=>h(y,t)),((a,t)=>va(w,t)));var E;return E=(a,t)=>t[4]??=ca(v,t[0])?.[2]??i,b(p,((a,t)=>E(0,a))),[0,n,[v,p,c],w]})(n);return(S?Ba:Ja)(a,f,(a=>{let t;const e=()=>t=setInterval((()=>g((async()=>{const[{d:t,s:e,c:n}]=await f(M+` ${Y} d,${k} s,TOTAL_CHANGES() c FROM ${J}${Y} JOIN ${J}${k}`);t==N&&e==m&&n==$||(null!=N&&a(),N=t,m=e,$=n)}))),1e3*C),n=()=>{N=m=$=null,c(t)},s=o((t=>{L.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(s)}}),(a=>a()),w,y,v,T,O(L),(async(a,t)=>await a(M+` t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${_} t.schema='main'AND t.type IN('table','view')AND t.name IN(${H(t)})ORDER BY t.name,c.name`,t)),p,E,e,A,(a=>!0===a?1:!1===a?0:a),void 0)},ka=(a,t,e,n,s)=>Ya(a,e,(async(a,e=[])=>t.query(a).all(...e)),(()=>p),(a=>a()),n,s,p,3,t);export{ka as createSqliteBunPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),o=Promise,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),u=t=>a(t)==s,y=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),p=a=>a.length,v=()=>{},E=async a=>r.all(a),A=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},m=(a,t)=>a.forEach(t),N=(a,t="")=>a.join(t),$=(a,t)=>a.map(t),f=a=>0==p(a),h=(a,t)=>a.filter(t),S=(a,...t)=>a.push(...t),b=a=>a.shift(),C=(a,t)=>a?.has(t)??!1,T=a=>l(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],O=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),I="_",R="_id",_="SELECT",M="WHERE",P="TABLE",F="ALTER "+P,j="FROM",k="DELETE "+j,U=_+"*"+j,x="pragma_",B="data_version",J="schema_version",Y="pragma_table_",q="CREATE "+P,z=a=>`"${o(a,/"/g,'""')}"`,G=(a,t=[1])=>N($(a,(()=>"$"+t[0]++)),n),H=(a,t=i)=>M+`(${o(t,"$tableName",z(a))})`,V=Object,K=a=>V.getPrototypeOf(a),Q=V.entries,W=V.keys,X=V.freeze,Z=(a=[])=>V.fromEntries(a),aa=(...a)=>V.assign({},...a),ta=(a,t)=>(delete a[t],a),ea=(a,t)=>$(Q(a),(([a,e])=>t(e,a))),na=(a,t)=>Z(ea(a,((a,e)=>[e,t(a,e)]))),sa=a=>V.values(a),ia=a=>p(W(a)),oa=a=>(a=>!l(a)&&w(K(a),(a=>a==V.prototype||l(K(a))),(()=>!0)))(a)&&0==ia(a),ra=a=>new Map(a),ca=(a,t)=>a?.get(t),la=(a,t)=>$([...a?.entries()??[]],(([a,e])=>t(e,a))),wa=(a,t,e)=>l(e)?(D(a,t),a):a?.set(t,e),ua=(a,t,e,n)=>(C(a,t)?n?.(ca(a,t)):wa(a,t,e()),ca(a,t)),ya=(a,t,e,n,s=0)=>w((e?ua:ca)(a,t[s],s>p(t)-2?e:ra),(i=>{if(s>p(t)-2)return n?.(i)&&wa(a,t[s]),i;const o=ya(i,t,e,n,s+1);return T(i)&&wa(a,t[s]),o})),da=a=>new Set(y(a)||l(a)?a:[a]),pa=(a,t)=>a?.add(t),va="ColumnName",Ea="store",Aa="json",ga=Ea+"TableName",ma=Ea+"Id"+va,Na=Ea+va,$a="autoLoadIntervalSeconds",fa="rowId"+va,ha="tableId",Sa="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",Ta="condition",La={mode:Aa,[$a]:1},Oa={load:0,save:0,[Sa]:t+"_values"},Da=(a,t,e,n,s)=>{const i=ra();return na(a,((a,o)=>{const r=d(sa(aa(t,u(a)?{[e]:a}:a)),0,ia(t));l(r[0])||n(o,r[0])||(s(o,r[0]),wa(i,o,r))})),i},Ia=JSON.stringify,Ra=JSON.parse,_a=/^\d+$/,Ma=ra(),Pa=ra(),Fa=(a,t,n,s,i,o,r,c={},u=0,d=[])=>{let v,E,N,$=0,f=0,h=0;ua(Ma,d,(()=>0)),ua(Pa,d,(()=>[]));const C=ra(),[L,I,R,_,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!oa(a)||!oa(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!oa(a)||!oa(t),t.setContent]:A("Store type not supported by this Persister"))(r,a,u),[P,F,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{_a.test(t)&&p(a)<1e3&&S(a,t)}]})(),s=ra();return[(n,i,o,r=[],c=()=>[])=>{a??=z;const l=t(1);return wa(s,l,[n,i,o,r,c]),pa(ya(i,o??[e],da),l),l},(t,n,...i)=>m(((a,t=[e])=>{const n=[],s=(a,e)=>e==p(t)?S(n,a):null===t[e]?O(a,(a=>s(a,e+1))):m([t[e],null],(t=>s(ca(a,t),e+1)));return s(a,0),n})(t,n),(t=>O(t,(t=>ca(s,t)[0](a,...n??[],...i))))),a=>w(ca(s,a),(([,t,i])=>(ya(t,i??[e],void 0,(t=>(D(t,a),T(t)?1:0))),wa(s,a),n(a),i))),t=>w(ca(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=p(o);r==p(e)?t(a,...o,...s(o)):l(e[r])?m(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),k=a=>{a!=$&&($=a,F(C,void 0,$))},U=t=>{(L&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},x=async a=>(2!=$&&(k(1),f++,await q((async()=>{await g((async()=>{const e=await t();y(e)?U(e):a?M(a):A("Content is not an array: "+e)}),(()=>{a&&M(a)})),k(0)}))),z),B=async()=>(E&&(await g((()=>i(E)),o),E=void 0),z),J=async a=>(1!=$&&(k(2),h++,await q((async()=>{await g((()=>n(I,a)),o),k(0)}))),z),Y=async()=>(N&&(a.delListener(N),N=void 0),z),q=async(...a)=>(S(ca(Pa,d),...a),await(async()=>{if(!ca(Ma,d)){for(wa(Ma,d,1);!l(v=b(ca(Pa,d)));)await g(v,o);wa(Ma,d,0)}})(),z),z={load:x,startAutoLoad:async a=>(B(),await x(a),await g((async()=>E=await s((async(a,t)=>{t||a?2!=$&&(k(1),f++,U(t??a),k(0)):await x()}))),o),z),stopAutoLoad:B,isAutoLoading:()=>!l(E),save:J,startAutoSave:async()=>(Y(),await J(),N=a.addDidFinishTransactionListener((()=>{const a=R();_(a)&&J(a)})),z),stopAutoSave:Y,isAutoSaving:()=>!l(N),getStatus:()=>$,addStatusListener:a=>P(a,C),delListener:t=>(j(t),a),schedule:q,getStore:()=>a,destroy:async()=>(ca(Pa,d).splice(0,void 0),await z.stopAutoLoad(),await z.stopAutoSave()),getStats:()=>({loads:f,saves:h}),...c};return X(z)},ja=(a,t,e,s,o,r=ka,c,w)=>{const u=ra();return[async()=>{u.clear(),$(await e(a,t),(({tn:a,cn:t})=>pa(ua(u,a,da),t)))},async(t,e,n)=>((a,t)=>C(ca(u,a),t))(t,e)?Z(h($(await a(U+z(t)+H(t,n)),(a=>[a[e],w?na(ta(a,e),w):ta(a,e)])),(([a,t])=>!l(a)&&!oa(t)))):{},async(t,e,s,w,y,d=!1,p=i)=>{const v=da();na(s??{},(a=>$(W(a??{}),(a=>pa(v,a)))));const A=L(v);if(!d&&y&&p==i&&f(A)&&C(u,t))return await a("DROP "+P+z(t)),void wa(u,t);const g=ca(u,t),m=da(L(g));if(f(A)||(C(u,t)?await E($([e,...A],(async(n,s)=>{D(m,n)||(await a(F+z(t)+"ADD"+z(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+z(t)+`(${z(e)})`),pa(g,n))}))):(await a(q+z(t)+`(${z(e)}${o} PRIMARY KEY${N($(A,(a=>n+z(a)+o)))});`),wa(u,t,da([e,...A])))),await E([...!d&&w?$(L(m),(async n=>{n!=e&&(await a(F+z(t)+"DROP"+z(n)),D(g,n))})):[]]),d)l(s)?await a(k+z(t)+H(t,p)):await E(ea(s,(async(n,s)=>{l(n)?await a(k+z(t)+H(t,p)+`AND(${z(e)}=$1)`,[s]):f(A)||await r(a,t,e,W(n),{[s]:c?$(sa(n),c):sa(n)},g)})));else if(f(A))C(u,t)&&await a(k+z(t)+H(t,p));else{const n=h(L(ca(u,t)),(a=>a!=e)),i={},o=[];na(s??{},((a,t)=>{i[t]=$(n,(t=>c?c(a?.[t]):a?.[t])),S(o,t)})),await r(a,t,e,n,i),await a(k+z(t)+H(t,p)+`AND${z(e)}NOT IN(${G(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await g((async()=>e=await t()),s),await a("END"),e}]},ka=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+z(t)+"("+((...a)=>N($(a,z),n))(e,...s)+")VALUES"+N(ea(i,(a=>"($"+o[0]+++","+G(a,o)+")")),n)+"ON CONFLICT("+z(e)+")DO UPDATE SET"+N($(s,(a=>z(a)+"=excluded."+z(a))),n),ea(i,((a,t)=>[t,...$(a,(a=>a??null))])).flat())},Ua=(a,t,e,n,s,i,o,[r,c,l],w,u,y,d,p,v)=>{const[E,A,g,m]=ja(t,w,u,s,p,v),N=Fa(a,(()=>m((async()=>{return await E(),a=(await A(r,c))[I]?.[l]??"null",Ra(a,((a,t)=>""===t?void 0:t));var a}))),(a=>m((async()=>{var t;await E(),await g(r,c,{[I]:{[l]:(t=a()??null,Ia(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:async()=>(await N.stopAutoLoad(),await N.stopAutoSave(),i(),N)},0,y);return N},xa=(a,t,e,n,s,i,o,[r,c,[w,u,y]],d,p,v,A,g,m,N,$)=>{const[f,S,b,C]=ja(t,d,p,s,g,m,N,$),T=(a,t)=>E(la(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await b(e,n,a[r],s,i,t,o)}))),L=async(a,t)=>u?await b(y,R,{[I]:a},!0,!0,t):null,O=Fa(a,(()=>C((async()=>{await f();const a=await(async()=>Z(h(await E(la(r,(async([a,t,e],n)=>[a,await S(n,t,e)]))),(a=>!oa(a[1])))))(),t=await(async()=>w?(await S(y,R))[I]:{})();return oa(a)&&l(t)?void 0:[a,t]}))),((a,t)=>C((async()=>{if(await f(),l(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}))),e,n,s,o,{[A]:()=>v,destroy:async()=>(await O.stopAutoLoad(),await O.stopAutoSave(),i(),O)},0,v);return O},Ba=(a,n,s,o,r,l,w,y,p,v,E="getDb",A)=>{let m,N,$;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[h,S,b,T]=(a=>{const e=(a=>aa(La,u(a)?{[ga]:a}:a??{}))(a),n=e[$a];if(e.mode==Aa){const a=e[ga]??t;return[1,n,[a,e[ma]??R,e[Na]??Ea],da(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=d(sa(aa(Oa,r)),0,ia(Oa)),l=c[2],w=da(l),y=da(l),p=Da(s,{[ha]:null,[fa]:R,[Ta]:i},ha,(a=>C(y,a)),(a=>pa(w,a))),v=Da(o,{[Sa]:null,[fa]:R,[ba]:0,[Ca]:0,[Ta]:null},Sa,((a,t)=>C(y,t)),((a,t)=>pa(w,t)));var E;return E=(a,t)=>t[4]??=ca(p,t[0])?.[2]??i,O(v,((a,t)=>E(0,a))),[0,n,[p,v,c],w]})(n);return(h?Ua:xa)(a,f,(a=>{let t;const e=()=>t=setInterval((()=>g((async()=>{const[{d:t,s:e,c:n}]=await f(_+` ${B} d,${J} s,TOTAL_CHANGES() c FROM ${x}${B} JOIN ${x}${J}`);t==m&&e==N&&n==$||(null!=m&&a(),m=t,N=e,$=n)}))),1e3*S),n=()=>{m=N=$=null,c(t)},s=o((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(s)}}),(a=>a()),w,y,p,b,L(T),(async(a,t)=>await a(_+` t.name tn,c.name cn FROM ${Y}list()t,${Y}info(t.name)c ${M} t.schema='main'AND t.type IN('table','view')AND t.name IN(${G(t)})ORDER BY t.name,c.name`,t)),v,E,e,A,(a=>!0===a?1:!1===a?0:a),void 0)},Ja=(a,t,e,n,s,i)=>Ba(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,v,0)),s,i,v,3,e);export{Ja as createSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),o=Promise,
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),u=t=>a(t)==s,y=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),p=a=>a.length,v=()=>{},E=async a=>r.all(a),A=a=>{throw Error(a)},g=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},m=(a,t)=>a.forEach(t),N=(a,t="")=>a.join(t),$=(a,t)=>a.map(t),f=a=>0==p(a),h=(a,t)=>a.filter(t),S=(a,...t)=>a.push(...t),b=a=>a.shift(),C=(a,t)=>a?.has(t)??!1,T=a=>l(a)||0==(a=>a?.size??0)(a),L=a=>[...a?.values()??[]],O=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),I="_",R="_id",_="SELECT",M="WHERE",P="TABLE",F="ALTER "+P,j="FROM",k="DELETE "+j,U=_+"*"+j,x="pragma_",B="data_version",J="schema_version",Y="pragma_table_",q="CREATE "+P,z=a=>`"${o(a,/"/g,'""')}"`,G=(a,t=[1])=>N($(a,(()=>"$"+t[0]++)),n),H=(a,t=i)=>M+`(${o(t,"$tableName",z(a))})`,V=Object,K=a=>V.getPrototypeOf(a),Q=V.entries,W=V.keys,X=V.freeze,Z=(a=[])=>V.fromEntries(a),aa=(...a)=>V.assign({},...a),ta=(a,t)=>(delete a[t],a),ea=(a,t)=>$(Q(a),(([a,e])=>t(e,a))),na=(a,t)=>Z(ea(a,((a,e)=>[e,t(a,e)]))),sa=a=>V.values(a),ia=a=>p(W(a)),oa=a=>(a=>!l(a)&&w(K(a),(a=>a==V.prototype||l(K(a))),(()=>!0)))(a)&&0==ia(a),ra=a=>new Map(a),ca=(a,t)=>a?.get(t),la=(a,t)=>$([...a?.entries()??[]],(([a,e])=>t(e,a))),wa=(a,t,e)=>l(e)?(D(a,t),a):a?.set(t,e),ua=(a,t,e,n)=>(C(a,t)?n?.(ca(a,t)):wa(a,t,e()),ca(a,t)),ya=(a,t,e,n,s=0)=>w((e?ua:ca)(a,t[s],s>p(t)-2?e:ra),(i=>{if(s>p(t)-2)return n?.(i)&&wa(a,t[s]),i;const o=ya(i,t,e,n,s+1);return T(i)&&wa(a,t[s]),o})),da=a=>new Set(y(a)||l(a)?a:[a]),pa=(a,t)=>a?.add(t),va="ColumnName",Ea="store",Aa="json",ga=Ea+"TableName",ma=Ea+"Id"+va,Na=Ea+va,$a="autoLoadIntervalSeconds",fa="rowId"+va,ha="tableId",Sa="tableName",ba="deleteEmptyColumns",Ca="deleteEmptyTable",Ta="condition",La={mode:Aa,[$a]:1},Oa={load:0,save:0,[Sa]:t+"_values"},Da=(a,t,e,n,s)=>{const i=ra();return na(a,((a,o)=>{const r=d(sa(aa(t,u(a)?{[e]:a}:a)),0,ia(t));l(r[0])||n(o,r[0])||(s(o,r[0]),wa(i,o,r))})),i},Ia=JSON.stringify,Ra=JSON.parse,_a=/^\d+$/,Ma=ra(),Pa=ra(),Fa=(a,t,n,s,i,o,r,c={},u=0,d=[])=>{let v,E,N,$=0,f=0,h=0;ua(Ma,d,(()=>0)),ua(Pa,d,(()=>[]));const C=ra(),[L,I,R,_,M]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!oa(a)||!oa(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!oa(a)||!oa(t),t.setContent]:A("Store type not supported by this Persister"))(r,a,u),[P,F,j]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?b(a):null)??e+t++,t=>{_a.test(t)&&p(a)<1e3&&S(a,t)}]})(),s=ra();return[(n,i,o,r=[],c=()=>[])=>{a??=z;const l=t(1);return wa(s,l,[n,i,o,r,c]),pa(ya(i,o??[e],da),l),l},(t,n,...i)=>m(((a,t=[e])=>{const n=[],s=(a,e)=>e==p(t)?S(n,a):null===t[e]?O(a,(a=>s(a,e+1))):m([t[e],null],(t=>s(ca(a,t),e+1)));return s(a,0),n})(t,n),(t=>O(t,(t=>ca(s,t)[0](a,...n??[],...i))))),a=>w(ca(s,a),(([,t,i])=>(ya(t,i??[e],void 0,(t=>(D(t,a),T(t)?1:0))),wa(s,a),n(a),i))),t=>w(ca(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=p(o);r==p(e)?t(a,...o,...s(o)):l(e[r])?m(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),k=a=>{a!=$&&($=a,F(C,void 0,$))},U=t=>{(L&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},x=async a=>(2!=$&&(k(1),f++,await q((async()=>{await g((async()=>{const e=await t();y(e)?U(e):a?M(a):A("Content is not an array: "+e)}),(()=>{a&&M(a)})),k(0)}))),z),B=async()=>(E&&(await g((()=>i(E)),o),E=void 0),z),J=async a=>(1!=$&&(k(2),h++,await q((async()=>{await g((()=>n(I,a)),o),k(0)}))),z),Y=async()=>(N&&(a.delListener(N),N=void 0),z),q=async(...a)=>(S(ca(Pa,d),...a),await(async()=>{if(!ca(Ma,d)){for(wa(Ma,d,1);!l(v=b(ca(Pa,d)));)await g(v,o);wa(Ma,d,0)}})(),z),z={load:x,startAutoLoad:async a=>(B(),await x(a),await g((async()=>E=await s((async(a,t)=>{t||a?2!=$&&(k(1),f++,U(t??a),k(0)):await x()}))),o),z),stopAutoLoad:B,isAutoLoading:()=>!l(E),save:J,startAutoSave:async()=>(Y(),await J(),N=a.addDidFinishTransactionListener((()=>{const a=R();_(a)&&J(a)})),z),stopAutoSave:Y,isAutoSaving:()=>!l(N),getStatus:()=>$,addStatusListener:a=>P(a,C),delListener:t=>(j(t),a),schedule:q,getStore:()=>a,destroy:async()=>(ca(Pa,d).splice(0,void 0),await z.stopAutoLoad(),await z.stopAutoSave()),getStats:()=>({loads:f,saves:h}),...c};return X(z)},ja=(a,t,e,s,o,r=ka,c,w)=>{const u=ra();return[async()=>{u.clear(),$(await e(a,t),(({tn:a,cn:t})=>pa(ua(u,a,da),t)))},async(t,e,n)=>((a,t)=>C(ca(u,a),t))(t,e)?Z(h($(await a(U+z(t)+H(t,n)),(a=>[a[e],w?na(ta(a,e),w):ta(a,e)])),(([a,t])=>!l(a)&&!oa(t)))):{},async(t,e,s,w,y,d=!1,p=i)=>{const v=da();na(s??{},(a=>$(W(a??{}),(a=>pa(v,a)))));const A=L(v);if(!d&&y&&p==i&&f(A)&&C(u,t))return await a("DROP "+P+z(t)),void wa(u,t);const g=ca(u,t),m=da(L(g));if(f(A)||(C(u,t)?await E($([e,...A],(async(n,s)=>{D(m,n)||(await a(F+z(t)+"ADD"+z(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+z(t)+`(${z(e)})`),pa(g,n))}))):(await a(q+z(t)+`(${z(e)}${o} PRIMARY KEY${N($(A,(a=>n+z(a)+o)))});`),wa(u,t,da([e,...A])))),await E([...!d&&w?$(L(m),(async n=>{n!=e&&(await a(F+z(t)+"DROP"+z(n)),D(g,n))})):[]]),d)l(s)?await a(k+z(t)+H(t,p)):await E(ea(s,(async(n,s)=>{l(n)?await a(k+z(t)+H(t,p)+`AND(${z(e)}=$1)`,[s]):f(A)||await r(a,t,e,W(n),{[s]:c?$(sa(n),c):sa(n)},g)})));else if(f(A))C(u,t)&&await a(k+z(t)+H(t,p));else{const n=h(L(ca(u,t)),(a=>a!=e)),i={},o=[];na(s??{},((a,t)=>{i[t]=$(n,(t=>c?c(a?.[t]):a?.[t])),S(o,t)})),await r(a,t,e,n,i),await a(k+z(t)+H(t,p)+`AND${z(e)}NOT IN(${G(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await g((async()=>e=await t()),s),await a("END"),e}]},ka=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+z(t)+"("+((...a)=>N($(a,z),n))(e,...s)+")VALUES"+N(ea(i,(a=>"($"+o[0]+++","+G(a,o)+")")),n)+"ON CONFLICT("+z(e)+")DO UPDATE SET"+N($(s,(a=>z(a)+"=excluded."+z(a))),n),ea(i,((a,t)=>[t,...$(a,(a=>a??null))])).flat())},Ua=(a,t,e,n,s,i,o,[r,c,l],w,u,y,d,p,v)=>{const[E,A,g,m]=ja(t,w,u,s,p,v),N=Fa(a,(()=>m((async()=>{return await E(),a=(await A(r,c))[I]?.[l]??"null",Ra(a,((a,t)=>""===t?void 0:t));var a}))),(a=>m((async()=>{var t;await E(),await g(r,c,{[I]:{[l]:(t=a()??null,Ia(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:async()=>(await N.stopAutoLoad(),await N.stopAutoSave(),i(),N)},0,y);return N},xa=(a,t,e,n,s,i,o,[r,c,[w,u,y]],d,p,v,A,g,m,N,$)=>{const[f,S,b,C]=ja(t,d,p,s,g,m,N,$),T=(a,t)=>E(la(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await b(e,n,a[r],s,i,t,o)}))),L=async(a,t)=>u?await b(y,R,{[I]:a},!0,!0,t):null,O=Fa(a,(()=>C((async()=>{await f();const a=await(async()=>Z(h(await E(la(r,(async([a,t,e],n)=>[a,await S(n,t,e)]))),(a=>!oa(a[1])))))(),t=await(async()=>w?(await S(y,R))[I]:{})();return oa(a)&&l(t)?void 0:[a,t]}))),((a,t)=>C((async()=>{if(await f(),l(t)){const[t,e]=a();await T(t),await L(e)}else await T(t[0],!0),await L(t[1],!0)}))),e,n,s,o,{[A]:()=>v,destroy:async()=>(await O.stopAutoLoad(),await O.stopAutoSave(),i(),O)},0,v);return O},Ba=(a,n,s,o,r,l,w,y,p,v,E="getDb",A)=>{let m,N,$;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[h,S,b,T]=(a=>{const e=(a=>aa(La,u(a)?{[ga]:a}:a??{}))(a),n=e[$a];if(e.mode==Aa){const a=e[ga]??t;return[1,n,[a,e[ma]??R,e[Na]??Ea],da(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=d(sa(aa(Oa,r)),0,ia(Oa)),l=c[2],w=da(l),y=da(l),p=Da(s,{[ha]:null,[fa]:R,[Ta]:i},ha,(a=>C(y,a)),(a=>pa(w,a))),v=Da(o,{[Sa]:null,[fa]:R,[ba]:0,[Ca]:0,[Ta]:null},Sa,((a,t)=>C(y,t)),((a,t)=>pa(w,t)));var E;return E=(a,t)=>t[4]??=ca(p,t[0])?.[2]??i,O(v,((a,t)=>E(0,a))),[0,n,[p,v,c],w]})(n);return(h?Ua:xa)(a,f,(a=>{let t;const e=()=>t=setInterval((()=>g((async()=>{const[{d:t,s:e,c:n}]=await f(_+` ${B} d,${J} s,TOTAL_CHANGES() c FROM ${x}${B} JOIN ${x}${J}`);t==m&&e==N&&n==$||(null!=m&&a(),m=t,N=e,$=n)}))),1e3*S),n=()=>{m=N=$=null,c(t)},s=o((t=>{T.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(s)}}),(a=>a()),w,y,p,b,L(T),(async(a,t)=>await a(_+` t.name tn,c.name cn FROM ${Y}list()t,${Y}info(t.name)c ${M} t.schema='main'AND t.type IN('table','view')AND t.name IN(${G(t)})ORDER BY t.name,c.name`,t)),v,E,e,A,(a=>!0===a?1:!1===a?0:a),void 0)},Ja=(a,t,e,n,s,i)=>Ba(a,n,(async(a,t=[])=>e.exec(a,{bind:t,rowMode:"object",returnValue:"resultRows"}).map((a=>({...a})))),(a=>t.capi.sqlite3_update_hook(e,((t,e,n,s)=>a(s)),0)),(()=>t.capi.sqlite3_update_hook(e,v,0)),s,i,v,3,e);export{Ja as createSqliteWasmPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i=
|
|
1
|
+
const a=a=>typeof a,t="tinybase",e="",n=",",s=a(e),i="true",o=(a,t,e)=>a.replace(t,e),r=Promise,c=clearInterval,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),u=t=>a(t)==s,y=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),v=a=>a.length,p=()=>{},E=async a=>r.all(a),g=a=>{throw Error(a)},A=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},N=(a,t)=>a.forEach(t),m=(a,t="")=>a.join(t),$=(a,t)=>a.map(t),f=a=>0==v(a),S=(a,t)=>a.filter(t),h=(a,...t)=>a.push(...t),C=a=>a.shift(),T=(a,t)=>a?.has(t)??!1,L=a=>l(a)||0==(a=>a?.size??0)(a),O=a=>[...a?.values()??[]],b=(a,t)=>a?.forEach(t),D=(a,t)=>a?.delete(t),I="_",R="_id",M="SELECT",_="WHERE",P="TABLE",F="ALTER "+P,U="FROM",j="DELETE "+U,B=M+"*"+U,J="pragma_",Y="data_version",k="schema_version",x="pragma_table_",z="CREATE "+P,G=a=>`"${o(a,/"/g,'""')}"`,H=(a,t=[1])=>m($(a,(()=>"$"+t[0]++)),n),K=(a,t=i)=>_+`(${o(t,"$tableName",G(a))})`,Q=Object,V=a=>Q.getPrototypeOf(a),W=Q.entries,X=Q.keys,q=Q.freeze,Z=(a=[])=>Q.fromEntries(a),aa=(...a)=>Q.assign({},...a),ta=(a,t)=>(delete a[t],a),ea=(a,t)=>$(W(a),(([a,e])=>t(e,a))),na=(a,t)=>Z(ea(a,((a,e)=>[e,t(a,e)]))),sa=a=>Q.values(a),ia=a=>v(X(a)),oa=a=>(a=>!l(a)&&w(V(a),(a=>a==Q.prototype||l(V(a))),(()=>!0)))(a)&&0==ia(a),ra=a=>new Map(a),ca=(a,t)=>a?.get(t),la=(a,t)=>$([...a?.entries()??[]],(([a,e])=>t(e,a))),wa=(a,t,e)=>l(e)?(D(a,t),a):a?.set(t,e),ua=(a,t,e,n)=>(T(a,t)?n?.(ca(a,t)):wa(a,t,e()),ca(a,t)),ya=(a,t,e,n,s=0)=>w((e?ua:ca)(a,t[s],s>v(t)-2?e:ra),(i=>{if(s>v(t)-2)return n?.(i)&&wa(a,t[s]),i;const o=ya(i,t,e,n,s+1);return L(i)&&wa(a,t[s]),o})),da=a=>new Set(y(a)||l(a)?a:[a]),va=(a,t)=>a?.add(t),pa="ColumnName",Ea="store",ga="json",Aa=Ea+"TableName",Na=Ea+"Id"+pa,ma=Ea+pa,$a="autoLoadIntervalSeconds",fa="rowId"+pa,Sa="tableId",ha="tableName",Ca="deleteEmptyColumns",Ta="deleteEmptyTable",La="condition",Oa={mode:ga,[$a]:1},ba={load:0,save:0,[ha]:t+"_values"},Da=(a,t,e,n,s)=>{const i=ra();return na(a,((a,o)=>{const r=d(sa(aa(t,u(a)?{[e]:a}:a)),0,ia(t));l(r[0])||n(o,r[0])||(s(o,r[0]),wa(i,o,r))})),i},Ia=JSON.stringify,Ra=JSON.parse,Ma=/^\d+$/,_a=ra(),Pa=ra(),Fa=(a,t,n,s,i,o,r,c={},u=0,d=[])=>{let p,E,m,$=0,f=0,S=0;ua(_a,d,(()=>0)),ua(Pa,d,(()=>[]));const T=ra(),[O,I,R,M,_]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!oa(a)||!oa(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!oa(a)||!oa(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,u),[P,F,U]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?C(a):null)??e+t++,t=>{Ma.test(t)&&v(a)<1e3&&h(a,t)}]})(),s=ra();return[(n,i,o,r=[],c=()=>[])=>{a??=G;const l=t(1);return wa(s,l,[n,i,o,r,c]),va(ya(i,o??[e],da),l),l},(t,n,...i)=>N(((a,t=[e])=>{const n=[],s=(a,e)=>e==v(t)?h(n,a):null===t[e]?b(a,(a=>s(a,e+1))):N([t[e],null],(t=>s(ca(a,t),e+1)));return s(a,0),n})(t,n),(t=>b(t,(t=>ca(s,t)[0](a,...n??[],...i))))),a=>w(ca(s,a),(([,t,i])=>(ya(t,i??[e],void 0,(t=>(D(t,a),L(t)?1:0))),wa(s,a),n(a),i))),t=>w(ca(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=v(o);r==v(e)?t(a,...o,...s(o)):l(e[r])?N(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=$&&($=a,F(T,void 0,$))},B=t=>{(O&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},J=async a=>(2!=$&&(j(1),f++,await z((async()=>{await A((async()=>{const e=await t();y(e)?B(e):a?_(a):g("Content is not an array: "+e)}),(()=>{a&&_(a)})),j(0)}))),G),Y=async()=>(E&&(await A((()=>i(E)),o),E=void 0),G),k=async a=>(1!=$&&(j(2),S++,await z((async()=>{await A((()=>n(I,a)),o),j(0)}))),G),x=async()=>(m&&(a.delListener(m),m=void 0),G),z=async(...a)=>(h(ca(Pa,d),...a),await(async()=>{if(!ca(_a,d)){for(wa(_a,d,1);!l(p=C(ca(Pa,d)));)await A(p,o);wa(_a,d,0)}})(),G),G={load:J,startAutoLoad:async a=>(Y(),await J(a),await A((async()=>E=await s((async(a,t)=>{t||a?2!=$&&(j(1),f++,B(t??a),j(0)):await J()}))),o),G),stopAutoLoad:Y,isAutoLoading:()=>!l(E),save:k,startAutoSave:async()=>(x(),await k(),m=a.addDidFinishTransactionListener((()=>{const a=R();M(a)&&k(a)})),G),stopAutoSave:x,isAutoSaving:()=>!l(m),getStatus:()=>$,addStatusListener:a=>P(a,T),delListener:t=>(U(t),a),schedule:z,getStore:()=>a,destroy:async()=>(ca(Pa,d).splice(0,void 0),await G.stopAutoLoad(),await G.stopAutoSave()),getStats:()=>({loads:f,saves:S}),...c};return q(G)},Ua=(a,t,e,s,o,r=ja,c,w)=>{const u=ra();return[async()=>{u.clear(),$(await e(a,t),(({tn:a,cn:t})=>va(ua(u,a,da),t)))},async(t,e,n)=>((a,t)=>T(ca(u,a),t))(t,e)?Z(S($(await a(B+G(t)+K(t,n)),(a=>[a[e],w?na(ta(a,e),w):ta(a,e)])),(([a,t])=>!l(a)&&!oa(t)))):{},async(t,e,s,w,y,d=!1,v=i)=>{const p=da();na(s??{},(a=>$(X(a??{}),(a=>va(p,a)))));const g=O(p);if(!d&&y&&v==i&&f(g)&&T(u,t))return await a("DROP "+P+G(t)),void wa(u,t);const A=ca(u,t),N=da(O(A));if(f(g)||(T(u,t)?await E($([e,...g],(async(n,s)=>{D(N,n)||(await a(F+G(t)+"ADD"+G(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+G(t)+`(${G(e)})`),va(A,n))}))):(await a(z+G(t)+`(${G(e)}${o} PRIMARY KEY${m($(g,(a=>n+G(a)+o)))});`),wa(u,t,da([e,...g])))),await E([...!d&&w?$(O(N),(async n=>{n!=e&&(await a(F+G(t)+"DROP"+G(n)),D(A,n))})):[]]),d)l(s)?await a(j+G(t)+K(t,v)):await E(ea(s,(async(n,s)=>{l(n)?await a(j+G(t)+K(t,v)+`AND(${G(e)}=$1)`,[s]):f(g)||await r(a,t,e,X(n),{[s]:c?$(sa(n),c):sa(n)},A)})));else if(f(g))T(u,t)&&await a(j+G(t)+K(t,v));else{const n=S(O(ca(u,t)),(a=>a!=e)),i={},o=[];na(s??{},((a,t)=>{i[t]=$(n,(t=>c?c(a?.[t]):a?.[t])),h(o,t)})),await r(a,t,e,n,i),await a(j+G(t)+K(t,v)+`AND${G(e)}NOT IN(${H(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await A((async()=>e=await t()),s),await a("END"),e}]},ja=async(a,t,e,s,i)=>{const o=[1];await a("INSERT INTO"+G(t)+"("+((...a)=>m($(a,G),n))(e,...s)+")VALUES"+m(ea(i,(a=>"($"+o[0]+++","+H(a,o)+")")),n)+"ON CONFLICT("+G(e)+")DO UPDATE SET"+m($(s,(a=>G(a)+"=excluded."+G(a))),n),ea(i,((a,t)=>[t,...$(a,(a=>a??null))])).flat())},Ba=(a,t,e,n,s,i,o,[r,c,l],w,u,y,d,v,p)=>{const[E,g,A,N]=Ua(t,w,u,s,v,p),m=Fa(a,(()=>N((async()=>{return await E(),a=(await g(r,c))[I]?.[l]??"null",Ra(a,((a,t)=>""===t?void 0:t));var a}))),(a=>N((async()=>{var t;await E(),await A(r,c,{[I]:{[l]:(t=a()??null,Ia(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,o,{[d]:()=>y,destroy:async()=>(await m.stopAutoLoad(),await m.stopAutoSave(),i(),m)},0,y);return m},Ja=(a,t,e,n,s,i,o,[r,c,[w,u,y]],d,v,p,g,A,N,m,$)=>{const[f,h,C,T]=Ua(t,d,v,s,A,N,m,$),L=(a,t)=>E(la(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await C(e,n,a[r],s,i,t,o)}))),O=async(a,t)=>u?await C(y,R,{[I]:a},!0,!0,t):null,b=Fa(a,(()=>T((async()=>{await f();const a=await(async()=>Z(S(await E(la(r,(async([a,t,e],n)=>[a,await h(n,t,e)]))),(a=>!oa(a[1])))))(),t=await(async()=>w?(await h(y,R))[I]:{})();return oa(a)&&l(t)?void 0:[a,t]}))),((a,t)=>T((async()=>{if(await f(),l(t)){const[t,e]=a();await L(t),await O(e)}else await L(t[0],!0),await O(t[1],!0)}))),e,n,s,o,{[g]:()=>p,destroy:async()=>(await b.stopAutoLoad(),await b.stopAutoSave(),i(),b)},0,p);return b},Ya=(a,n,s,o,r,l,w,y,v,p,E="getDb",g)=>{let N,m,$;const f=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[S,h,C,L]=(a=>{const e=(a=>aa(Oa,u(a)?{[Aa]:a}:a??{}))(a),n=e[$a];if(e.mode==ga){const a=e[Aa]??t;return[1,n,[a,e[Na]??R,e[ma]??Ea],da(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=d(sa(aa(ba,r)),0,ia(ba)),l=c[2],w=da(l),y=da(l),v=Da(s,{[Sa]:null,[fa]:R,[La]:i},Sa,(a=>T(y,a)),(a=>va(w,a))),p=Da(o,{[ha]:null,[fa]:R,[Ca]:0,[Ta]:0,[La]:null},ha,((a,t)=>T(y,t)),((a,t)=>va(w,t)));var E;return E=(a,t)=>t[4]??=ca(v,t[0])?.[2]??i,b(p,((a,t)=>E(0,a))),[0,n,[v,p,c],w]})(n);return(S?Ba:Ja)(a,f,(a=>{let t;const e=()=>t=setInterval((()=>A((async()=>{const[{d:t,s:e,c:n}]=await f(M+` ${Y} d,${k} s,TOTAL_CHANGES() c FROM ${J}${Y} JOIN ${J}${k}`);t==N&&e==m&&n==$||(null!=N&&a(),N=t,m=e,$=n)}))),1e3*h),n=()=>{N=m=$=null,c(t)},s=o((t=>{L.has(t)&&(n(),a(),e())}));return e(),()=>{n(),r(s)}}),(a=>a()),w,y,v,C,O(L),(async(a,t)=>await a(M+` t.name tn,c.name cn FROM ${x}list()t,${x}info(t.name)c ${_} t.schema='main'AND t.type IN('table','view')AND t.name IN(${H(t)})ORDER BY t.name,c.name`,t)),p,E,e,g,(a=>!0===a?1:!1===a?0:a),void 0)},ka="change",xa=(a,t,e,n,s)=>Ya(a,e,(async(a,e=[])=>{return await(n=(n,s)=>t.all(a,e,((a,t)=>a?s(a):n(t))),new r(n));var n}),(a=>{const e=(t,e,n)=>a(n);return t.on(ka,e),e}),(a=>t.off(ka,a)),n,s,p,3,t);export{xa as createSqlite3Persister};
|
|
Binary file
|