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 t=t=>typeof t,e="",a=t(e),s="message",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=e=>t(e)==a,i=t=>Array.isArray(t),c=t=>t.length,d=t=>{throw Error(t)},y=(t,e)=>t.forEach(e),
|
|
1
|
+
const t=t=>typeof t,e="",a=t(e),s="message",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=e=>t(e)==a,i=t=>Array.isArray(t),c=t=>t.length,d=t=>{throw Error(t)},y=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},l=(t,e)=>t.forEach(e),u=(t,...e)=>t.push(...e),g=t=>t.shift(),p=Object,h=t=>p.getPrototypeOf(t),w=p.keys,v=p.freeze,f=t=>(t=>!n(t)&&o(h(t),(t=>t==p.prototype||n(h(t))),(()=>!0)))(t)&&0==(t=>c(w(t)))(t),S=JSON.stringify,C=JSON.parse,A=t=>S(t,((t,e)=>e instanceof Map?p.fromEntries([...e]):e)),L=t=>n(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),m=(t,e)=>t?.delete(e),M=t=>new Map(t),P=(t,e)=>t?.get(e),E=(t,e,a)=>n(a)?(m(t,e),t):t?.set(e,a),O=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(P(t,e)):E(t,e,a()),P(t,e)},T=(t,e,a,s,n=0)=>o((a?O:P)(t,e[n],n>c(e)-2?a:M),(o=>{if(n>c(e)-2)return s?.(o)&&E(t,e[n]),o;const r=T(o,e,a,s,n+1);return L(o)&&E(t,e[n]),r})),j=/^\d+$/,k=t=>new Set(i(t)||n(t)?t:[t]),x=M(),z=M(),D=(t,a,s,r,p,h,w,S={},C=0,A=[])=>{let D,J,N,F=0,U=0,W=0;O(x,A,(()=>0)),O(z,A,(()=>[]));const $=M(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!f(t)||!f(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!f(t)||!f(e),e.setContent]:d("Store type not supported by this Persister"))(w,t,C),[K,Q,R]=(()=>{let t;const[a,s]=(()=>{const t=[];let a=0;return[s=>(s?g(t):null)??e+a++,e=>{j.test(e)&&c(t)<1e3&&u(t,e)}]})(),r=M();return[(s,n,o,i=[],c=()=>[])=>{t??=at;const d=a(1);var y,l;return E(r,d,[s,n,o,i,c]),y=T(n,o??[e],k),l=d,y?.add(l),d},(a,s,...n)=>l(((t,a=[e])=>{const s=[],n=(t,e)=>e==c(a)?u(s,t):null===a[e]?b(t,(t=>n(t,e+1))):l([a[e],null],(a=>n(P(t,a),e+1)));return n(t,0),s})(a,s),(e=>b(e,(e=>P(r,e)[0](t,...s??[],...n))))),t=>o(P(r,t),(([,a,n])=>(T(a,n??[e],void 0,(e=>(m(e,t),L(e)?1:0))),E(r,t),s(t),n))),e=>o(P(r,e),(([e,,a=[],s,o])=>{const r=(...i)=>{const d=c(i);d==c(a)?e(t,...i,...o(i)):n(a[d])?l(s[d]?.(...i)??[],(t=>r(...i,t))):r(...i,a[d])};r()}))]})(),V=t=>{t!=F&&(F=t,Q($,void 0,F))},X=e=>{(q&&i(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},Y=async t=>(2!=F&&(V(1),U++,await et((async()=>{await y((async()=>{const e=await a();i(e)?X(e):t?I(t):d("Content is not an array: "+e)}),(()=>{t&&I(t)})),V(0)}))),at),Z=async()=>(J&&(await y((()=>p(J)),h),J=void 0),at),_=async t=>(1!=F&&(V(2),W++,await et((async()=>{await y((()=>s(B,t)),h),V(0)}))),at),tt=async()=>(N&&(t.delListener(N),N=void 0),at),et=async(...t)=>(u(P(z,A),...t),await(async()=>{if(!P(x,A)){for(E(x,A,1);!n(D=g(P(z,A)));)await y(D,h);E(x,A,0)}})(),at),at={load:Y,startAutoLoad:async t=>(Z(),await Y(t),await y((async()=>J=await r((async(t,e)=>{e||t?2!=F&&(V(1),U++,X(e??t),V(0)):await Y()}))),h),at),stopAutoLoad:Z,isAutoLoading:()=>!n(J),save:_,startAutoSave:async()=>(tt(),await _(),N=t.addDidFinishTransactionListener((()=>{const t=G();H(t)&&_(t)})),at),stopAutoSave:tt,isAutoSaving:()=>!n(N),getStatus:()=>F,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:et,getStore:()=>t,destroy:async()=>(P(z,A).splice(0,void 0),await at.stopAutoLoad(),await at.stopAutoSave()),getStats:()=>({loads:U,saves:W}),...S};return v(at)},J="/store",N=(t,a,n,i)=>{const{host:d,room:y}=a.partySocketOptions,{storeProtocol:l="https",storePath:u=J,messagePrefix:g=e}={...r(n)?{storeProtocol:n}:n},p=l+"://"+d+"/parties/"+a.name+"/"+y+u,h=async t=>await(await fetch(p,{...t?{method:"PUT",body:A(t)}:{},mode:"cors",cache:"no-store"})).json();return D(t,h,(async(t,e)=>{var s;e?a.send(g+"s"+(r(s=e)?s:A(s))):await h(t())}),(t=>{const e=e=>o(((t,e)=>{const a=c(t);return((t,e)=>t.startsWith(e))(e,t)?[e[a],C((s=e,n=a+1,s.slice(n,void 0)))]:void 0;var s,n})(g,e.data),(([e,a])=>{"s"==e&&t(void 0,a)}));return a.addEventListener(s,e),e}),(t=>{a.removeEventListener(s,t)}),i,1,{getConnection:()=>a})};export{N as createPartyKitPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=t=>typeof t,e="",a=t(e),s="message",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=e=>t(e)==a,i=t=>Array.isArray(t),c=t=>t.length,d=t=>{throw Error(t)},y=(t,e)=>t.forEach(e),
|
|
1
|
+
const t=t=>typeof t,e="",a=t(e),s="message",n=t=>null==t,o=(t,e,a)=>n(t)?a?.():e(t),r=e=>t(e)==a,i=t=>Array.isArray(t),c=t=>t.length,d=t=>{throw Error(t)},y=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},l=(t,e)=>t.forEach(e),u=(t,...e)=>t.push(...e),g=t=>t.shift(),p=Object,h=t=>p.getPrototypeOf(t),w=p.keys,v=p.freeze,f=t=>(t=>!n(t)&&o(h(t),(t=>t==p.prototype||n(h(t))),(()=>!0)))(t)&&0==(t=>c(w(t)))(t),S=JSON.stringify,C=JSON.parse,A=t=>S(t,((t,e)=>e instanceof Map?p.fromEntries([...e]):e)),L=t=>n(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),m=(t,e)=>t?.delete(e),M=t=>new Map(t),P=(t,e)=>t?.get(e),E=(t,e,a)=>n(a)?(m(t,e),t):t?.set(e,a),O=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(P(t,e)):E(t,e,a()),P(t,e)},T=(t,e,a,s,n=0)=>o((a?O:P)(t,e[n],n>c(e)-2?a:M),(o=>{if(n>c(e)-2)return s?.(o)&&E(t,e[n]),o;const r=T(o,e,a,s,n+1);return L(o)&&E(t,e[n]),r})),j=/^\d+$/,k=t=>new Set(i(t)||n(t)?t:[t]),x=M(),z=M(),D=(t,a,s,r,p,h,w,S={},C=0,A=[])=>{let D,J,N,F=0,U=0,W=0;O(x,A,(()=>0)),O(z,A,(()=>[]));const $=M(),[q,B,G,H,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!f(t)||!f(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!f(t)||!f(e),e.setContent]:d("Store type not supported by this Persister"))(w,t,C),[K,Q,R]=(()=>{let t;const[a,s]=(()=>{const t=[];let a=0;return[s=>(s?g(t):null)??e+a++,e=>{j.test(e)&&c(t)<1e3&&u(t,e)}]})(),r=M();return[(s,n,o,i=[],c=()=>[])=>{t??=at;const d=a(1);var y,l;return E(r,d,[s,n,o,i,c]),y=T(n,o??[e],k),l=d,y?.add(l),d},(a,s,...n)=>l(((t,a=[e])=>{const s=[],n=(t,e)=>e==c(a)?u(s,t):null===a[e]?b(t,(t=>n(t,e+1))):l([a[e],null],(a=>n(P(t,a),e+1)));return n(t,0),s})(a,s),(e=>b(e,(e=>P(r,e)[0](t,...s??[],...n))))),t=>o(P(r,t),(([,a,n])=>(T(a,n??[e],void 0,(e=>(m(e,t),L(e)?1:0))),E(r,t),s(t),n))),e=>o(P(r,e),(([e,,a=[],s,o])=>{const r=(...i)=>{const d=c(i);d==c(a)?e(t,...i,...o(i)):n(a[d])?l(s[d]?.(...i)??[],(t=>r(...i,t))):r(...i,a[d])};r()}))]})(),V=t=>{t!=F&&(F=t,Q($,void 0,F))},X=e=>{(q&&i(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},Y=async t=>(2!=F&&(V(1),U++,await et((async()=>{await y((async()=>{const e=await a();i(e)?X(e):t?I(t):d("Content is not an array: "+e)}),(()=>{t&&I(t)})),V(0)}))),at),Z=async()=>(J&&(await y((()=>p(J)),h),J=void 0),at),_=async t=>(1!=F&&(V(2),W++,await et((async()=>{await y((()=>s(B,t)),h),V(0)}))),at),tt=async()=>(N&&(t.delListener(N),N=void 0),at),et=async(...t)=>(u(P(z,A),...t),await(async()=>{if(!P(x,A)){for(E(x,A,1);!n(D=g(P(z,A)));)await y(D,h);E(x,A,0)}})(),at),at={load:Y,startAutoLoad:async t=>(Z(),await Y(t),await y((async()=>J=await r((async(t,e)=>{e||t?2!=F&&(V(1),U++,X(e??t),V(0)):await Y()}))),h),at),stopAutoLoad:Z,isAutoLoading:()=>!n(J),save:_,startAutoSave:async()=>(tt(),await _(),N=t.addDidFinishTransactionListener((()=>{const t=G();H(t)&&_(t)})),at),stopAutoSave:tt,isAutoSaving:()=>!n(N),getStatus:()=>F,addStatusListener:t=>K(t,$),delListener:e=>(R(e),t),schedule:et,getStore:()=>t,destroy:async()=>(P(z,A).splice(0,void 0),await at.stopAutoLoad(),await at.stopAutoSave()),getStats:()=>({loads:U,saves:W}),...S};return v(at)},J="/store",N=(t,a,n,i)=>{const{host:d,room:y}=a.partySocketOptions,{storeProtocol:l="https",storePath:u=J,messagePrefix:g=e}={...r(n)?{storeProtocol:n}:n},p=l+"://"+d+"/parties/"+a.name+"/"+y+u,h=async t=>await(await fetch(p,{...t?{method:"PUT",body:A(t)}:{},mode:"cors",cache:"no-store"})).json();return D(t,h,(async(t,e)=>{var s;e?a.send(g+"s"+(r(s=e)?s:A(s))):await h(t())}),(t=>{const e=e=>o(((t,e)=>{const a=c(t);return((t,e)=>t.startsWith(e))(e,t)?[e[a],C((s=e,n=a+1,s.slice(n,void 0)))]:void 0;var s,n})(g,e.data),(([e,a])=>{"s"==e&&t(void 0,a)}));return a.addEventListener(s,e),e}),(t=>{a.removeEventListener(s,t)}),i,1,{getConnection:()=>a})};export{N as createPartyKitPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="
|
|
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=globalThis,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,d=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),E=a=>a.length,N=()=>{},A=async a=>r.all(a),g=a=>{throw Error(a)},T=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),R=a=>0==E(a),v=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),L=a=>a.shift(),S=(a,t)=>a?.has(t)??!1,C=a=>l(a)||0==(a=>a?.size??0)(a),I=a=>[...a?.values()??[]],_=(a,t)=>a?.forEach(t),b=(a,t)=>a?.delete(t),f=new c.TextEncoder,D=Object,h=a=>D.getPrototypeOf(a),P=D.entries,F=D.keys,M=D.freeze,U=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>(delete a[t],a),x=(a,t)=>O(P(a),(([a,e])=>t(e,a))),W=(a,t)=>U(x(a,((a,e)=>[e,t(a,e)]))),B=a=>D.values(a),H=a=>E(F(a)),X=a=>(a=>!l(a)&&w(h(a),(a=>a==D.prototype||l(h(a))),(()=>!0)))(a)&&0==H(a),Y=JSON.stringify,k=JSON.parse,q=a=>Y(a,((a,t)=>void 0===t?"":t)),z=a=>new Map(a),J=(a,t)=>a?.get(t),K=(a,t)=>O([...a?.entries()??[]],(([a,e])=>t(e,a))),V=(a,t,e)=>l(e)?(b(a,t),a):a?.set(t,e),Q=(a,t,e,n)=>(S(a,t)?n?.(J(a,t)):V(a,t,e()),J(a,t)),Z=(a,t,e,n,s=0)=>w((e?Q:J)(a,t[s],s>E(t)-2?e:z),(i=>{if(s>E(t)-2)return n?.(i)&&V(a,t[s]),i;const o=Z(i,t,e,n,s+1);return C(i)&&V(a,t[s]),o})),aa="_",ta="_id",ea="SELECT",na="WHERE",sa="TABLE",ia="INSERT",oa="DELETE",ra="UPDATE",ca="ALTER "+sa,la="FROM",wa=oa+" "+la,ya=ea+"*"+la,da="CREATE ",ua=da+sa,Ea="OR REPLACE ",Na="FUNCTION",Aa="$tableName",ga=a=>`"${o(a,/"/g,'""')}"`,Ta=(...a)=>ga(p(a,"_")),$a=(a,t=[1])=>p(O(a,(()=>"$"+t[0]++)),n),pa=(a,t=i)=>na+`(${o(t,Aa,ga(a))})`,Oa=a=>new Set(d(a)||l(a)?a:[a]),Ra=(a,t)=>a?.add(t),va="ColumnName",ma="store",La="json",Sa=ma+"TableName",Ca=ma+"Id"+va,Ia=ma+va,_a="autoLoadIntervalSeconds",ba="rowId"+va,fa="tableId",Da="tableName",ha="deleteEmptyColumns",Pa="deleteEmptyTable",Fa="condition",Ma={mode:La,[_a]:1},Ua={load:0,save:0,[Da]:t+"_values"},Ga=(a,t,e,n,s)=>{const i=z();return W(a,((a,o)=>{const r=u(B(G(t,y(a)?{[e]:a}:a)),0,H(t));l(r[0])||n(o,r[0])||(s(o,r[0]),V(i,o,r))})),i},ja=/^\d+$/,xa=z(),Wa=z(),Ba=(a,t,n,s,i,o,r,c={},y=0,u=[])=>{let N,A,p,O=0,R=0,v=0;Q(xa,u,(()=>0)),Q(Wa,u,(()=>[]));const S=z(),[I,f,D,h,P]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!X(a)||!X(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!X(a)||!X(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,y),[F,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?L(a):null)??e+t++,t=>{ja.test(t)&&E(a)<1e3&&m(a,t)}]})(),s=z();return[(n,i,o,r=[],c=()=>[])=>{a??=q;const l=t(1);return V(s,l,[n,i,o,r,c]),Ra(Z(i,o??[e],Oa),l),l},(t,n,...i)=>$(((a,t=[e])=>{const n=[],s=(a,e)=>e==E(t)?m(n,a):null===t[e]?_(a,(a=>s(a,e+1))):$([t[e],null],(t=>s(J(a,t),e+1)));return s(a,0),n})(t,n),(t=>_(t,(t=>J(s,t)[0](a,...n??[],...i))))),a=>w(J(s,a),(([,t,i])=>(Z(t,i??[e],void 0,(t=>(b(t,a),C(t)?1:0))),V(s,a),n(a),i))),t=>w(J(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=E(o);r==E(e)?t(a,...o,...s(o)):l(e[r])?$(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=O&&(O=a,U(S,void 0,O))},x=t=>{(I&&d(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},W=async a=>(2!=O&&(j(1),R++,await k((async()=>{await T((async()=>{const e=await t();d(e)?x(e):a?P(a):g("Content is not an array: "+e)}),(()=>{a&&P(a)})),j(0)}))),q),B=async()=>(A&&(await T((()=>i(A)),o),A=void 0),q),H=async a=>(1!=O&&(j(2),v++,await k((async()=>{await T((()=>n(f,a)),o),j(0)}))),q),Y=async()=>(p&&(a.delListener(p),p=void 0),q),k=async(...a)=>(m(J(Wa,u),...a),await(async()=>{if(!J(xa,u)){for(V(xa,u,1);!l(N=L(J(Wa,u)));)await T(N,o);V(xa,u,0)}})(),q),q={load:W,startAutoLoad:async a=>(B(),await W(a),await T((async()=>A=await s((async(a,t)=>{t||a?2!=O&&(j(1),R++,x(t??a),j(0)):await W()}))),o),q),stopAutoLoad:B,isAutoLoading:()=>!l(A),save:H,startAutoSave:async()=>(Y(),await H(),p=a.addDidFinishTransactionListener((()=>{const a=D();h(a)&&H(a)})),q),stopAutoSave:Y,isAutoSaving:()=>!l(p),getStatus:()=>O,addStatusListener:a=>F(a,S),delListener:t=>(G(t),a),schedule:k,getStore:()=>a,destroy:async()=>(J(Wa,u).splice(0,void 0),await q.stopAutoLoad(),await q.stopAutoSave()),getStats:()=>({loads:R,saves:v}),...c};return M(q)},Ha=(a,t,e,s,o,r=Xa,c,w)=>{const y=z();return[async()=>{y.clear(),O(await e(a,t),(({tn:a,cn:t})=>Ra(Q(y,a,Oa),t)))},async(t,e,n)=>((a,t)=>S(J(y,a),t))(t,e)?U(v(O(await a(ya+ga(t)+pa(t,n)),(a=>[a[e],w?W(j(a,e),w):j(a,e)])),(([a,t])=>!l(a)&&!X(t)))):{},async(t,e,s,w,d,u=!1,E=i)=>{const N=Oa();W(s??{},(a=>O(F(a??{}),(a=>Ra(N,a)))));const g=I(N);if(!u&&d&&E==i&&R(g)&&S(y,t))return await a("DROP "+sa+ga(t)),void V(y,t);const T=J(y,t),$=Oa(I(T));if(R(g)||(S(y,t)?await A(O([e,...g],(async(n,s)=>{b($,n)||(await a(ca+ga(t)+"ADD"+ga(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+ga(t)+`(${ga(e)})`),Ra(T,n))}))):(await a(ua+ga(t)+`(${ga(e)}${o} PRIMARY KEY${p(O(g,(a=>n+ga(a)+o)))});`),V(y,t,Oa([e,...g])))),await A([...!u&&w?O(I($),(async n=>{n!=e&&(await a(ca+ga(t)+"DROP"+ga(n)),b(T,n))})):[]]),u)l(s)?await a(wa+ga(t)+pa(t,E)):await A(x(s,(async(n,s)=>{l(n)?await a(wa+ga(t)+pa(t,E)+`AND(${ga(e)}=$1)`,[s]):R(g)||await r(a,t,e,F(n),{[s]:c?O(B(n),c):B(n)},T)})));else if(R(g))S(y,t)&&await a(wa+ga(t)+pa(t,E));else{const n=v(I(J(y,t)),(a=>a!=e)),i={},o=[];W(s??{},((a,t)=>{i[t]=O(n,(t=>c?c(a?.[t]):a?.[t])),m(o,t)})),await r(a,t,e,n,i),await a(wa+ga(t)+pa(t,E)+`AND${ga(e)}NOT IN(${$a(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await T((async()=>e=await t()),s),await a("END"),e}]},Xa=async(a,t,e,s,i)=>{const o=[1];await a(ia+" INTO"+ga(t)+"("+((...a)=>p(O(a,ga),n))(e,...s)+")VALUES"+p(x(i,(a=>"($"+o[0]+++","+$a(a,o)+")")),n)+"ON CONFLICT("+ga(e)+`)DO ${ra} SET`+p(O(s,(a=>ga(a)+"=excluded."+ga(a))),n),x(i,((a,t)=>[t,...O(a,(a=>a??null))])).flat())},Ya=(a,t,e,n,s,i,o,[r,c,l],w,y,d,u,E,N)=>{const[A,g,T,$]=Ha(t,w,y,s,E,N),p=Ba(a,(()=>$((async()=>{return await A(),a=(await g(r,c))[aa]?.[l]??"null",k(a,((a,t)=>""===t?void 0:t));var a}))),(a=>$((async()=>{await A(),await T(r,c,{[aa]:{[l]:q(a()??null)}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:async()=>(await p.stopAutoLoad(),await p.stopAutoSave(),i(),p)},0,d);return p},ka=(a,t,e,n,s,i,o,[r,c,[w,y,d]],u,E,N,g,T,$,p,O)=>{const[R,m,L,S]=Ha(t,u,E,s,T,$,p,O),C=(a,t)=>A(K(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await L(e,n,a[r],s,i,t,o)}))),I=async(a,t)=>y?await L(d,ta,{[aa]:a},!0,!0,t):null,_=Ba(a,(()=>S((async()=>{await R();const a=await(async()=>U(v(await A(K(r,(async([a,t,e],n)=>[a,await m(n,t,e)]))),(a=>!X(a[1])))))(),t=await(async()=>w?(await m(d,ta))[aa]:{})();return X(a)&&l(t)?void 0:[a,t]}))),((a,t)=>S((async()=>{if(await R(),l(t)){const[t,e]=a();await C(t),await I(e)}else await C(t[0],!0),await I(t[1],!0)}))),e,n,s,o,{[g]:()=>N,destroy:async()=>(await _.stopAutoLoad(),await _.stopAutoSave(),i(),_)},0,N);return _},qa=/^([cd]:)(.+)/,za=(a,n,s,r,c,l,d,E,N,g,T="getDb")=>{const R=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[v,,m,L]=(a=>{const e=(a=>G(Ma,y(a)?{[Sa]:a}:a??{}))(a),n=e[_a];if(e.mode==La){const a=e[Sa]??t;return[1,n,[a,e[Ca]??ta,e[Ia]??ma],Oa(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=u(B(G(Ua,r)),0,H(Ua)),l=c[2],w=Oa(l),d=Oa(l),E=Ga(s,{[fa]:null,[ba]:ta,[Fa]:i},fa,(a=>S(d,a)),(a=>Ra(w,a))),N=Ga(o,{[Da]:null,[ba]:ta,[ha]:0,[Pa]:0,[Fa]:null},Da,((a,t)=>S(d,t)),((a,t)=>Ra(w,t)));var A;return A=(a,t)=>t[4]??=J(E,t[0])?.[2]??i,_(N,((a,t)=>A(0,a))),[0,n,[E,N,c],w]})(n),C=e+(a=>{let t=2166136261;return $(f.encode(a),(a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(q(m)),b=t+"_"+C,D=async(a,e,n="",s="")=>{const i=Ta(t,a,C);return await R(da+Ea+Na+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},h=async(a,t,e,n)=>(await R(da+a+"TRIGGER"+t+e+"EXECUTE "+Na+n+"()"),t),P=a=>`PERFORM pg_notify('${b}',${a});`,F=(a,t)=>v?i:2===t?F(a,0)+" OR "+F(a,1):o(J(m[0],a)?.[2]??i,Aa,0==t?"NEW":"OLD"),M=(a,e)=>A(O([ia,oa,ra],((n,s)=>h(Ea,Ta(t,"d",C,a,n),`AFTER ${n} ON${ga(a)}FOR EACH ROW WHEN(${F(a,s)})`,e))));return(v?Ya:ka)(a,R,(async a=>{const e=await D("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${na} command_tag='${ua}' LOOP ${P("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await h("EVENT ",Ta(t,"c",C),`ON ddl_command_end WHEN TAG IN('${ua}')`,e);const n=await D("d",P("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await A(O(I(L),(async a=>(await R(ua+` IF NOT EXISTS${ga(a)}("_id"text PRIMARY KEY)`),await M(a,n))))),[await r(b,(t=>{return w((e=t,s=qa,e?.match(s)),(async([,t,e])=>{S(L,e)&&("c:"==t&&await M(e,n),a())}));var e,s})),[e,n]]}),(async([a,t])=>{c(a),await R(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)}),d,E,N,m,I(L),(async(a,t)=>await a(ea+` table_name tn,column_name cn FROM information_schema.columns ${na} table_schema='public'AND table_name IN(${$a(t)})`,t)),g,T,"text",void 0,(a=>Y(a)),(a=>k(a)))},Ja=async(a,t,e,n,s)=>za(a,e,(async(a,e=[])=>(await t.query(a,e)).rows),((a,e)=>t.listen(a,e)),(a=>T(a,s)),n,s,N,3,t,"getPglite");export{Ja as createPglitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="
|
|
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=globalThis,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),y=t=>a(t)==s,d=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),E=a=>a.length,N=()=>{},A=async a=>r.all(a),g=a=>{throw Error(a)},T=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},$=(a,t)=>a.forEach(t),p=(a,t="")=>a.join(t),O=(a,t)=>a.map(t),R=a=>0==E(a),v=(a,t)=>a.filter(t),m=(a,...t)=>a.push(...t),L=a=>a.shift(),S=(a,t)=>a?.has(t)??!1,C=a=>l(a)||0==(a=>a?.size??0)(a),I=a=>[...a?.values()??[]],_=(a,t)=>a?.forEach(t),b=(a,t)=>a?.delete(t),f=new c.TextEncoder,D=Object,h=a=>D.getPrototypeOf(a),P=D.entries,F=D.keys,M=D.freeze,U=(a=[])=>D.fromEntries(a),G=(...a)=>D.assign({},...a),j=(a,t)=>(delete a[t],a),x=(a,t)=>O(P(a),(([a,e])=>t(e,a))),W=(a,t)=>U(x(a,((a,e)=>[e,t(a,e)]))),B=a=>D.values(a),H=a=>E(F(a)),X=a=>(a=>!l(a)&&w(h(a),(a=>a==D.prototype||l(h(a))),(()=>!0)))(a)&&0==H(a),Y=JSON.stringify,k=JSON.parse,q=a=>Y(a,((a,t)=>void 0===t?"":t)),z=a=>new Map(a),J=(a,t)=>a?.get(t),K=(a,t)=>O([...a?.entries()??[]],(([a,e])=>t(e,a))),V=(a,t,e)=>l(e)?(b(a,t),a):a?.set(t,e),Q=(a,t,e,n)=>(S(a,t)?n?.(J(a,t)):V(a,t,e()),J(a,t)),Z=(a,t,e,n,s=0)=>w((e?Q:J)(a,t[s],s>E(t)-2?e:z),(i=>{if(s>E(t)-2)return n?.(i)&&V(a,t[s]),i;const o=Z(i,t,e,n,s+1);return C(i)&&V(a,t[s]),o})),aa="_",ta="_id",ea="SELECT",na="WHERE",sa="TABLE",ia="INSERT",oa="DELETE",ra="UPDATE",ca="ALTER "+sa,la="FROM",wa=oa+" "+la,ya=ea+"*"+la,da="CREATE ",ua=da+sa,Ea="OR REPLACE ",Na="FUNCTION",Aa="$tableName",ga=a=>`"${o(a,/"/g,'""')}"`,Ta=(...a)=>ga(p(a,"_")),$a=(a,t=[1])=>p(O(a,(()=>"$"+t[0]++)),n),pa=(a,t=i)=>na+`(${o(t,Aa,ga(a))})`,Oa=a=>new Set(d(a)||l(a)?a:[a]),Ra=(a,t)=>a?.add(t),va="ColumnName",ma="store",La="json",Sa=ma+"TableName",Ca=ma+"Id"+va,Ia=ma+va,_a="autoLoadIntervalSeconds",ba="rowId"+va,fa="tableId",Da="tableName",ha="deleteEmptyColumns",Pa="deleteEmptyTable",Fa="condition",Ma={mode:La,[_a]:1},Ua={load:0,save:0,[Da]:t+"_values"},Ga=(a,t,e,n,s)=>{const i=z();return W(a,((a,o)=>{const r=u(B(G(t,y(a)?{[e]:a}:a)),0,H(t));l(r[0])||n(o,r[0])||(s(o,r[0]),V(i,o,r))})),i},ja=/^\d+$/,xa=z(),Wa=z(),Ba=(a,t,n,s,i,o,r,c={},y=0,u=[])=>{let N,A,p,O=0,R=0,v=0;Q(xa,u,(()=>0)),Q(Wa,u,(()=>[]));const S=z(),[I,f,D,h,P]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!X(a)||!X(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!X(a)||!X(t),t.setContent]:g("Store type not supported by this Persister"))(r,a,y),[F,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?L(a):null)??e+t++,t=>{ja.test(t)&&E(a)<1e3&&m(a,t)}]})(),s=z();return[(n,i,o,r=[],c=()=>[])=>{a??=q;const l=t(1);return V(s,l,[n,i,o,r,c]),Ra(Z(i,o??[e],Oa),l),l},(t,n,...i)=>$(((a,t=[e])=>{const n=[],s=(a,e)=>e==E(t)?m(n,a):null===t[e]?_(a,(a=>s(a,e+1))):$([t[e],null],(t=>s(J(a,t),e+1)));return s(a,0),n})(t,n),(t=>_(t,(t=>J(s,t)[0](a,...n??[],...i))))),a=>w(J(s,a),(([,t,i])=>(Z(t,i??[e],void 0,(t=>(b(t,a),C(t)?1:0))),V(s,a),n(a),i))),t=>w(J(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=E(o);r==E(e)?t(a,...o,...s(o)):l(e[r])?$(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=O&&(O=a,U(S,void 0,O))},x=t=>{(I&&d(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},W=async a=>(2!=O&&(j(1),R++,await k((async()=>{await T((async()=>{const e=await t();d(e)?x(e):a?P(a):g("Content is not an array: "+e)}),(()=>{a&&P(a)})),j(0)}))),q),B=async()=>(A&&(await T((()=>i(A)),o),A=void 0),q),H=async a=>(1!=O&&(j(2),v++,await k((async()=>{await T((()=>n(f,a)),o),j(0)}))),q),Y=async()=>(p&&(a.delListener(p),p=void 0),q),k=async(...a)=>(m(J(Wa,u),...a),await(async()=>{if(!J(xa,u)){for(V(xa,u,1);!l(N=L(J(Wa,u)));)await T(N,o);V(xa,u,0)}})(),q),q={load:W,startAutoLoad:async a=>(B(),await W(a),await T((async()=>A=await s((async(a,t)=>{t||a?2!=O&&(j(1),R++,x(t??a),j(0)):await W()}))),o),q),stopAutoLoad:B,isAutoLoading:()=>!l(A),save:H,startAutoSave:async()=>(Y(),await H(),p=a.addDidFinishTransactionListener((()=>{const a=D();h(a)&&H(a)})),q),stopAutoSave:Y,isAutoSaving:()=>!l(p),getStatus:()=>O,addStatusListener:a=>F(a,S),delListener:t=>(G(t),a),schedule:k,getStore:()=>a,destroy:async()=>(J(Wa,u).splice(0,void 0),await q.stopAutoLoad(),await q.stopAutoSave()),getStats:()=>({loads:R,saves:v}),...c};return M(q)},Ha=(a,t,e,s,o,r=Xa,c,w)=>{const y=z();return[async()=>{y.clear(),O(await e(a,t),(({tn:a,cn:t})=>Ra(Q(y,a,Oa),t)))},async(t,e,n)=>((a,t)=>S(J(y,a),t))(t,e)?U(v(O(await a(ya+ga(t)+pa(t,n)),(a=>[a[e],w?W(j(a,e),w):j(a,e)])),(([a,t])=>!l(a)&&!X(t)))):{},async(t,e,s,w,d,u=!1,E=i)=>{const N=Oa();W(s??{},(a=>O(F(a??{}),(a=>Ra(N,a)))));const g=I(N);if(!u&&d&&E==i&&R(g)&&S(y,t))return await a("DROP "+sa+ga(t)),void V(y,t);const T=J(y,t),$=Oa(I(T));if(R(g)||(S(y,t)?await A(O([e,...g],(async(n,s)=>{b($,n)||(await a(ca+ga(t)+"ADD"+ga(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+ga(t)+`(${ga(e)})`),Ra(T,n))}))):(await a(ua+ga(t)+`(${ga(e)}${o} PRIMARY KEY${p(O(g,(a=>n+ga(a)+o)))});`),V(y,t,Oa([e,...g])))),await A([...!u&&w?O(I($),(async n=>{n!=e&&(await a(ca+ga(t)+"DROP"+ga(n)),b(T,n))})):[]]),u)l(s)?await a(wa+ga(t)+pa(t,E)):await A(x(s,(async(n,s)=>{l(n)?await a(wa+ga(t)+pa(t,E)+`AND(${ga(e)}=$1)`,[s]):R(g)||await r(a,t,e,F(n),{[s]:c?O(B(n),c):B(n)},T)})));else if(R(g))S(y,t)&&await a(wa+ga(t)+pa(t,E));else{const n=v(I(J(y,t)),(a=>a!=e)),i={},o=[];W(s??{},((a,t)=>{i[t]=O(n,(t=>c?c(a?.[t]):a?.[t])),m(o,t)})),await r(a,t,e,n,i),await a(wa+ga(t)+pa(t,E)+`AND${ga(e)}NOT IN(${$a(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await T((async()=>e=await t()),s),await a("END"),e}]},Xa=async(a,t,e,s,i)=>{const o=[1];await a(ia+" INTO"+ga(t)+"("+((...a)=>p(O(a,ga),n))(e,...s)+")VALUES"+p(x(i,(a=>"($"+o[0]+++","+$a(a,o)+")")),n)+"ON CONFLICT("+ga(e)+`)DO ${ra} SET`+p(O(s,(a=>ga(a)+"=excluded."+ga(a))),n),x(i,((a,t)=>[t,...O(a,(a=>a??null))])).flat())},Ya=(a,t,e,n,s,i,o,[r,c,l],w,y,d,u,E,N)=>{const[A,g,T,$]=Ha(t,w,y,s,E,N),p=Ba(a,(()=>$((async()=>{return await A(),a=(await g(r,c))[aa]?.[l]??"null",k(a,((a,t)=>""===t?void 0:t));var a}))),(a=>$((async()=>{await A(),await T(r,c,{[aa]:{[l]:q(a()??null)}},!0,!0)}))),e,n,s,o,{[u]:()=>d,destroy:async()=>(await p.stopAutoLoad(),await p.stopAutoSave(),i(),p)},0,d);return p},ka=(a,t,e,n,s,i,o,[r,c,[w,y,d]],u,E,N,g,T,$,p,O)=>{const[R,m,L,S]=Ha(t,u,E,s,T,$,p,O),C=(a,t)=>A(K(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await L(e,n,a[r],s,i,t,o)}))),I=async(a,t)=>y?await L(d,ta,{[aa]:a},!0,!0,t):null,_=Ba(a,(()=>S((async()=>{await R();const a=await(async()=>U(v(await A(K(r,(async([a,t,e],n)=>[a,await m(n,t,e)]))),(a=>!X(a[1])))))(),t=await(async()=>w?(await m(d,ta))[aa]:{})();return X(a)&&l(t)?void 0:[a,t]}))),((a,t)=>S((async()=>{if(await R(),l(t)){const[t,e]=a();await C(t),await I(e)}else await C(t[0],!0),await I(t[1],!0)}))),e,n,s,o,{[g]:()=>N,destroy:async()=>(await _.stopAutoLoad(),await _.stopAutoSave(),i(),_)},0,N);return _},qa=/^([cd]:)(.+)/,za=(a,n,s,r,c,l,d,E,N,g,T="getDb")=>{const R=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[v,,m,L]=(a=>{const e=(a=>G(Ma,y(a)?{[Sa]:a}:a??{}))(a),n=e[_a];if(e.mode==La){const a=e[Sa]??t;return[1,n,[a,e[Ca]??ta,e[Ia]??ma],Oa(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=u(B(G(Ua,r)),0,H(Ua)),l=c[2],w=Oa(l),d=Oa(l),E=Ga(s,{[fa]:null,[ba]:ta,[Fa]:i},fa,(a=>S(d,a)),(a=>Ra(w,a))),N=Ga(o,{[Da]:null,[ba]:ta,[ha]:0,[Pa]:0,[Fa]:null},Da,((a,t)=>S(d,t)),((a,t)=>Ra(w,t)));var A;return A=(a,t)=>t[4]??=J(E,t[0])?.[2]??i,_(N,((a,t)=>A(0,a))),[0,n,[E,N,c],w]})(n),C=e+(a=>{let t=2166136261;return $(f.encode(a),(a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(q(m)),b=t+"_"+C,D=async(a,e,n="",s="")=>{const i=Ta(t,a,C);return await R(da+Ea+Na+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},h=async(a,t,e,n)=>(await R(da+a+"TRIGGER"+t+e+"EXECUTE "+Na+n+"()"),t),P=a=>`PERFORM pg_notify('${b}',${a});`,F=(a,t)=>v?i:2===t?F(a,0)+" OR "+F(a,1):o(J(m[0],a)?.[2]??i,Aa,0==t?"NEW":"OLD"),M=(a,e)=>A(O([ia,oa,ra],((n,s)=>h(Ea,Ta(t,"d",C,a,n),`AFTER ${n} ON${ga(a)}FOR EACH ROW WHEN(${F(a,s)})`,e))));return(v?Ya:ka)(a,R,(async a=>{const e=await D("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${na} command_tag='${ua}' LOOP ${P("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await h("EVENT ",Ta(t,"c",C),`ON ddl_command_end WHEN TAG IN('${ua}')`,e);const n=await D("d",P("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await A(O(I(L),(async a=>(await R(ua+` IF NOT EXISTS${ga(a)}("_id"text PRIMARY KEY)`),await M(a,n))))),[await r(b,(t=>{return w((e=t,s=qa,e?.match(s)),(async([,t,e])=>{S(L,e)&&("c:"==t&&await M(e,n),a())}));var e,s})),[e,n]]}),(async([a,t])=>{c(a),await R(`DROP FUNCTION IF EXISTS${p(t,",")}CASCADE`)}),d,E,N,m,I(L),(async(a,t)=>await a(ea+` table_name tn,column_name cn FROM information_schema.columns ${na} table_schema='public'AND table_name IN(${$a(t)})`,t)),g,T,"text",void 0,(a=>Y(a)),(a=>k(a)))},Ja=async(a,t,e,n,s)=>za(a,e,(async(a,e=[])=>(await t.query(a,e)).rows),((a,e)=>t.listen(a,e)),(a=>T(a,s)),n,s,N,3,t,"getPglite");export{Ja as createPglitePersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="
|
|
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=globalThis,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),d=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),E=a=>a.length,N=async a=>r.all(a),A=a=>{throw Error(a)},T=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},g=(a,t)=>a.forEach(t),$=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),O=a=>0==E(a),R=(a,t)=>a.filter(t),v=(a,...t)=>a.push(...t),S=a=>a.shift(),m=(a,t)=>a?.has(t)??!1,L=a=>l(a)||0==(a=>a?.size??0)(a),C=a=>[...a?.values()??[]],I=(a,t)=>a?.forEach(t),_=(a,t)=>a?.delete(t),b=new c.TextEncoder,f=Object,D=a=>f.getPrototypeOf(a),h=f.entries,P=f.keys,F=f.freeze,M=(a=[])=>f.fromEntries(a),U=(...a)=>f.assign({},...a),G=(a,t)=>(delete a[t],a),j=(a,t)=>p(h(a),(([a,e])=>t(e,a))),x=(a,t)=>M(j(a,((a,e)=>[e,t(a,e)]))),W=a=>f.values(a),B=a=>E(P(a)),H=a=>(a=>!l(a)&&w(D(a),(a=>a==f.prototype||l(D(a))),(()=>!0)))(a)&&0==B(a),X=JSON.stringify,Y=JSON.parse,k=a=>X(a,((a,t)=>void 0===t?"":t)),q=a=>new Map(a),z=(a,t)=>a?.get(t),J=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>l(e)?(_(a,t),a):a?.set(t,e),V=(a,t,e,n)=>(m(a,t)?n?.(z(a,t)):K(a,t,e()),z(a,t)),Q=(a,t,e,n,s=0)=>w((e?V:z)(a,t[s],s>E(t)-2?e:q),(i=>{if(s>E(t)-2)return n?.(i)&&K(a,t[s]),i;const o=Q(i,t,e,n,s+1);return L(i)&&K(a,t[s]),o})),Z="_",aa="_id",ta="SELECT",ea="WHERE",na="TABLE",sa="INSERT",ia="DELETE",oa="UPDATE",ra="ALTER "+na,ca="FROM",la=ia+" "+ca,wa=ta+"*"+ca,da="CREATE ",ya=da+na,ua="OR REPLACE ",Ea="FUNCTION",Na="$tableName",Aa=a=>`"${o(a,/"/g,'""')}"`,Ta=(...a)=>Aa($(a,"_")),ga=(a,t=[1])=>$(p(a,(()=>"$"+t[0]++)),n),$a=(a,t=i)=>ea+`(${o(t,Na,Aa(a))})`,pa=a=>new Set(y(a)||l(a)?a:[a]),Oa=(a,t)=>a?.add(t),Ra="ColumnName",va="store",Sa="json",ma=va+"TableName",La=va+"Id"+Ra,Ca=va+Ra,Ia="autoLoadIntervalSeconds",_a="rowId"+Ra,ba="tableId",fa="tableName",Da="deleteEmptyColumns",ha="deleteEmptyTable",Pa="condition",Fa={mode:Sa,[Ia]:1},Ma={load:0,save:0,[fa]:t+"_values"},Ua=(a,t,e,n,s)=>{const i=q();return x(a,((a,o)=>{const r=u(W(U(t,d(a)?{[e]:a}:a)),0,B(t));l(r[0])||n(o,r[0])||(s(o,r[0]),K(i,o,r))})),i},Ga=/^\d+$/,ja=q(),xa=q(),Wa=(a,t,n,s,i,o,r,c={},d=0,u=[])=>{let N,$,p,O=0,R=0,m=0;V(ja,u,(()=>0)),V(xa,u,(()=>[]));const C=q(),[b,f,D,h,P]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!H(a)||!H(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t),t.setContent]:A("Store type not supported by this Persister"))(r,a,d),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ga.test(t)&&E(a)<1e3&&v(a,t)}]})(),s=q();return[(n,i,o,r=[],c=()=>[])=>{a??=J;const l=t(1);return K(s,l,[n,i,o,r,c]),Oa(Q(i,o??[e],pa),l),l},(t,n,...i)=>g(((a,t=[e])=>{const n=[],s=(a,e)=>e==E(t)?v(n,a):null===t[e]?I(a,(a=>s(a,e+1))):g([t[e],null],(t=>s(z(a,t),e+1)));return s(a,0),n})(t,n),(t=>I(t,(t=>z(s,t)[0](a,...n??[],...i))))),a=>w(z(s,a),(([,t,i])=>(Q(t,i??[e],void 0,(t=>(_(t,a),L(t)?1:0))),K(s,a),n(a),i))),t=>w(z(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=E(o);r==E(e)?t(a,...o,...s(o)):l(e[r])?g(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=O&&(O=a,U(C,void 0,O))},x=t=>{(b&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},W=async a=>(2!=O&&(j(1),R++,await k((async()=>{await T((async()=>{const e=await t();y(e)?x(e):a?P(a):A("Content is not an array: "+e)}),(()=>{a&&P(a)})),j(0)}))),J),B=async()=>($&&(await T((()=>i($)),o),$=void 0),J),X=async a=>(1!=O&&(j(2),m++,await k((async()=>{await T((()=>n(f,a)),o),j(0)}))),J),Y=async()=>(p&&(a.delListener(p),p=void 0),J),k=async(...a)=>(v(z(xa,u),...a),await(async()=>{if(!z(ja,u)){for(K(ja,u,1);!l(N=S(z(xa,u)));)await T(N,o);K(ja,u,0)}})(),J),J={load:W,startAutoLoad:async a=>(B(),await W(a),await T((async()=>$=await s((async(a,t)=>{t||a?2!=O&&(j(1),R++,x(t??a),j(0)):await W()}))),o),J),stopAutoLoad:B,isAutoLoading:()=>!l($),save:X,startAutoSave:async()=>(Y(),await X(),p=a.addDidFinishTransactionListener((()=>{const a=D();h(a)&&X(a)})),J),stopAutoSave:Y,isAutoSaving:()=>!l(p),getStatus:()=>O,addStatusListener:a=>M(a,C),delListener:t=>(G(t),a),schedule:k,getStore:()=>a,destroy:async()=>(z(xa,u).splice(0,void 0),await J.stopAutoLoad(),await J.stopAutoSave()),getStats:()=>({loads:R,saves:m}),...c};return F(J)},Ba=(a,t,e,s,o,r=Ha,c,w)=>{const d=q();return[async()=>{d.clear(),p(await e(a,t),(({tn:a,cn:t})=>Oa(V(d,a,pa),t)))},async(t,e,n)=>((a,t)=>m(z(d,a),t))(t,e)?M(R(p(await a(wa+Aa(t)+$a(t,n)),(a=>[a[e],w?x(G(a,e),w):G(a,e)])),(([a,t])=>!l(a)&&!H(t)))):{},async(t,e,s,w,y,u=!1,E=i)=>{const A=pa();x(s??{},(a=>p(P(a??{}),(a=>Oa(A,a)))));const T=C(A);if(!u&&y&&E==i&&O(T)&&m(d,t))return await a("DROP "+na+Aa(t)),void K(d,t);const g=z(d,t),S=pa(C(g));if(O(T)||(m(d,t)?await N(p([e,...T],(async(n,s)=>{_(S,n)||(await a(ra+Aa(t)+"ADD"+Aa(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Aa(t)+`(${Aa(e)})`),Oa(g,n))}))):(await a(ya+Aa(t)+`(${Aa(e)}${o} PRIMARY KEY${$(p(T,(a=>n+Aa(a)+o)))});`),K(d,t,pa([e,...T])))),await N([...!u&&w?p(C(S),(async n=>{n!=e&&(await a(ra+Aa(t)+"DROP"+Aa(n)),_(g,n))})):[]]),u)l(s)?await a(la+Aa(t)+$a(t,E)):await N(j(s,(async(n,s)=>{l(n)?await a(la+Aa(t)+$a(t,E)+`AND(${Aa(e)}=$1)`,[s]):O(T)||await r(a,t,e,P(n),{[s]:c?p(W(n),c):W(n)},g)})));else if(O(T))m(d,t)&&await a(la+Aa(t)+$a(t,E));else{const n=R(C(z(d,t)),(a=>a!=e)),i={},o=[];x(s??{},((a,t)=>{i[t]=p(n,(t=>c?c(a?.[t]):a?.[t])),v(o,t)})),await r(a,t,e,n,i),await a(la+Aa(t)+$a(t,E)+`AND${Aa(e)}NOT IN(${ga(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await T((async()=>e=await t()),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const o=[1];await a(sa+" INTO"+Aa(t)+"("+((...a)=>$(p(a,Aa),n))(e,...s)+")VALUES"+$(j(i,(a=>"($"+o[0]+++","+ga(a,o)+")")),n)+"ON CONFLICT("+Aa(e)+`)DO ${oa} SET`+$(p(s,(a=>Aa(a)+"=excluded."+Aa(a))),n),j(i,((a,t)=>[t,...p(a,(a=>a??null))])).flat())},Xa=(a,t,e,n,s,i,o,[r,c,l],w,d,y,u,E,N)=>{const[A,T,g,$]=Ba(t,w,d,s,E,N),p=Wa(a,(()=>$((async()=>{return await A(),a=(await T(r,c))[Z]?.[l]??"null",Y(a,((a,t)=>""===t?void 0:t));var a}))),(a=>$((async()=>{await A(),await g(r,c,{[Z]:{[l]:k(a()??null)}},!0,!0)}))),e,n,s,o,{[u]:()=>y,destroy:async()=>(await p.stopAutoLoad(),await p.stopAutoSave(),i(),p)},0,y);return p},Ya=(a,t,e,n,s,i,o,[r,c,[w,d,y]],u,E,A,T,g,$,p,O)=>{const[v,S,m,L]=Ba(t,u,E,s,g,$,p,O),C=(a,t)=>N(J(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await m(e,n,a[r],s,i,t,o)}))),I=async(a,t)=>d?await m(y,aa,{[Z]:a},!0,!0,t):null,_=Wa(a,(()=>L((async()=>{await v();const a=await(async()=>M(R(await N(J(r,(async([a,t,e],n)=>[a,await S(n,t,e)]))),(a=>!H(a[1])))))(),t=await(async()=>w?(await S(y,aa))[Z]:{})();return H(a)&&l(t)?void 0:[a,t]}))),((a,t)=>L((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await I(e)}else await C(t[0],!0),await I(t[1],!0)}))),e,n,s,o,{[T]:()=>A,destroy:async()=>(await _.stopAutoLoad(),await _.stopAutoSave(),i(),_)},0,A);return _},ka=/^([cd]:)(.+)/,qa=(a,n,s,r,c,l,y,E,A,T,O="getDb")=>{const R=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[v,,S,L]=(a=>{const e=(a=>U(Fa,d(a)?{[ma]:a}:a??{}))(a),n=e[Ia];if(e.mode==Sa){const a=e[ma]??t;return[1,n,[a,e[La]??aa,e[Ca]??va],pa(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=u(W(U(Ma,r)),0,B(Ma)),l=c[2],w=pa(l),y=pa(l),E=Ua(s,{[ba]:null,[_a]:aa,[Pa]:i},ba,(a=>m(y,a)),(a=>Oa(w,a))),N=Ua(o,{[fa]:null,[_a]:aa,[Da]:0,[ha]:0,[Pa]:null},fa,((a,t)=>m(y,t)),((a,t)=>Oa(w,t)));var A;return A=(a,t)=>t[4]??=z(E,t[0])?.[2]??i,I(N,((a,t)=>A(0,a))),[0,n,[E,N,c],w]})(n),_=e+(a=>{let t=2166136261;return g(b.encode(a),(a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(k(S)),f=t+"_"+_,D=async(a,e,n="",s="")=>{const i=Ta(t,a,_);return await R(da+ua+Ea+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},h=async(a,t,e,n)=>(await R(da+a+"TRIGGER"+t+e+"EXECUTE "+Ea+n+"()"),t),P=a=>`PERFORM pg_notify('${f}',${a});`,F=(a,t)=>v?i:2===t?F(a,0)+" OR "+F(a,1):o(z(S[0],a)?.[2]??i,Na,0==t?"NEW":"OLD"),M=(a,e)=>N(p([sa,ia,oa],((n,s)=>h(ua,Ta(t,"d",_,a,n),`AFTER ${n} ON${Aa(a)}FOR EACH ROW WHEN(${F(a,s)})`,e))));return(v?Xa:Ya)(a,R,(async a=>{const e=await D("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ea} command_tag='${ya}' LOOP ${P("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await h("EVENT ",Ta(t,"c",_),`ON ddl_command_end WHEN TAG IN('${ya}')`,e);const n=await D("d",P("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await N(p(C(L),(async a=>(await R(ya+` IF NOT EXISTS${Aa(a)}("_id"text PRIMARY KEY)`),await M(a,n))))),[await r(f,(t=>{return w((e=t,s=ka,e?.match(s)),(async([,t,e])=>{m(L,e)&&("c:"==t&&await M(e,n),a())}));var e,s})),[e,n]]}),(async([a,t])=>{c(a),await R(`DROP FUNCTION IF EXISTS${$(t,",")}CASCADE`)}),y,E,A,S,C(L),(async(a,t)=>await a(ta+` table_name tn,column_name cn FROM information_schema.columns ${ea} table_schema='public'AND table_name IN(${ga(t)})`,t)),T,O,"text",void 0,(a=>X(a)),(a=>Y(a)))},za=async(a,t,e,n,s)=>{const i=await(t.reserve?.());return qa(a,e,i?.unsafe,(async(a,e)=>t.listen(a,e)),(a=>T(a.unlisten,s)),n,s,(()=>i?.release?.()),3,t,"getSql")};export{za as createPostgresPersister};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a=a=>typeof a,t="tinybase",e="
|
|
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=globalThis,l=a=>null==a,w=(a,t,e)=>l(a)?e?.():t(a),d=t=>a(t)==s,y=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),E=a=>a.length,N=async a=>r.all(a),A=a=>{throw Error(a)},T=async(a,t,e)=>{try{return await a()}catch(a){t?.(a)}},g=(a,t)=>a.forEach(t),$=(a,t="")=>a.join(t),p=(a,t)=>a.map(t),O=a=>0==E(a),R=(a,t)=>a.filter(t),v=(a,...t)=>a.push(...t),S=a=>a.shift(),m=(a,t)=>a?.has(t)??!1,L=a=>l(a)||0==(a=>a?.size??0)(a),C=a=>[...a?.values()??[]],I=(a,t)=>a?.forEach(t),_=(a,t)=>a?.delete(t),b=new c.TextEncoder,f=Object,D=a=>f.getPrototypeOf(a),h=f.entries,P=f.keys,F=f.freeze,M=(a=[])=>f.fromEntries(a),U=(...a)=>f.assign({},...a),G=(a,t)=>(delete a[t],a),j=(a,t)=>p(h(a),(([a,e])=>t(e,a))),x=(a,t)=>M(j(a,((a,e)=>[e,t(a,e)]))),W=a=>f.values(a),B=a=>E(P(a)),H=a=>(a=>!l(a)&&w(D(a),(a=>a==f.prototype||l(D(a))),(()=>!0)))(a)&&0==B(a),X=JSON.stringify,Y=JSON.parse,k=a=>X(a,((a,t)=>void 0===t?"":t)),q=a=>new Map(a),z=(a,t)=>a?.get(t),J=(a,t)=>p([...a?.entries()??[]],(([a,e])=>t(e,a))),K=(a,t,e)=>l(e)?(_(a,t),a):a?.set(t,e),V=(a,t,e,n)=>(m(a,t)?n?.(z(a,t)):K(a,t,e()),z(a,t)),Q=(a,t,e,n,s=0)=>w((e?V:z)(a,t[s],s>E(t)-2?e:q),(i=>{if(s>E(t)-2)return n?.(i)&&K(a,t[s]),i;const o=Q(i,t,e,n,s+1);return L(i)&&K(a,t[s]),o})),Z="_",aa="_id",ta="SELECT",ea="WHERE",na="TABLE",sa="INSERT",ia="DELETE",oa="UPDATE",ra="ALTER "+na,ca="FROM",la=ia+" "+ca,wa=ta+"*"+ca,da="CREATE ",ya=da+na,ua="OR REPLACE ",Ea="FUNCTION",Na="$tableName",Aa=a=>`"${o(a,/"/g,'""')}"`,Ta=(...a)=>Aa($(a,"_")),ga=(a,t=[1])=>$(p(a,(()=>"$"+t[0]++)),n),$a=(a,t=i)=>ea+`(${o(t,Na,Aa(a))})`,pa=a=>new Set(y(a)||l(a)?a:[a]),Oa=(a,t)=>a?.add(t),Ra="ColumnName",va="store",Sa="json",ma=va+"TableName",La=va+"Id"+Ra,Ca=va+Ra,Ia="autoLoadIntervalSeconds",_a="rowId"+Ra,ba="tableId",fa="tableName",Da="deleteEmptyColumns",ha="deleteEmptyTable",Pa="condition",Fa={mode:Sa,[Ia]:1},Ma={load:0,save:0,[fa]:t+"_values"},Ua=(a,t,e,n,s)=>{const i=q();return x(a,((a,o)=>{const r=u(W(U(t,d(a)?{[e]:a}:a)),0,B(t));l(r[0])||n(o,r[0])||(s(o,r[0]),K(i,o,r))})),i},Ga=/^\d+$/,ja=q(),xa=q(),Wa=(a,t,n,s,i,o,r,c={},d=0,u=[])=>{let N,$,p,O=0,R=0,m=0;V(ja,u,(()=>0)),V(xa,u,(()=>[]));const C=q(),[b,f,D,h,P]=((a=1,t,e)=>1!=a&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!e),([[a],[t]])=>!H(a)||!H(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!H(a)||!H(t),t.setContent]:A("Store type not supported by this Persister"))(r,a,d),[M,U,G]=(()=>{let a;const[t,n]=(()=>{const a=[];let t=0;return[n=>(n?S(a):null)??e+t++,t=>{Ga.test(t)&&E(a)<1e3&&v(a,t)}]})(),s=q();return[(n,i,o,r=[],c=()=>[])=>{a??=J;const l=t(1);return K(s,l,[n,i,o,r,c]),Oa(Q(i,o??[e],pa),l),l},(t,n,...i)=>g(((a,t=[e])=>{const n=[],s=(a,e)=>e==E(t)?v(n,a):null===t[e]?I(a,(a=>s(a,e+1))):g([t[e],null],(t=>s(z(a,t),e+1)));return s(a,0),n})(t,n),(t=>I(t,(t=>z(s,t)[0](a,...n??[],...i))))),a=>w(z(s,a),(([,t,i])=>(Q(t,i??[e],void 0,(t=>(_(t,a),L(t)?1:0))),K(s,a),n(a),i))),t=>w(z(s,t),(([t,,e=[],n,s])=>{const i=(...o)=>{const r=E(o);r==E(e)?t(a,...o,...s(o)):l(e[r])?g(n[r]?.(...o)??[],(a=>i(...o,a))):i(...o,e[r])};i()}))]})(),j=a=>{a!=O&&(O=a,U(C,void 0,O))},x=t=>{(b&&y(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},W=async a=>(2!=O&&(j(1),R++,await k((async()=>{await T((async()=>{const e=await t();y(e)?x(e):a?P(a):A("Content is not an array: "+e)}),(()=>{a&&P(a)})),j(0)}))),J),B=async()=>($&&(await T((()=>i($)),o),$=void 0),J),X=async a=>(1!=O&&(j(2),m++,await k((async()=>{await T((()=>n(f,a)),o),j(0)}))),J),Y=async()=>(p&&(a.delListener(p),p=void 0),J),k=async(...a)=>(v(z(xa,u),...a),await(async()=>{if(!z(ja,u)){for(K(ja,u,1);!l(N=S(z(xa,u)));)await T(N,o);K(ja,u,0)}})(),J),J={load:W,startAutoLoad:async a=>(B(),await W(a),await T((async()=>$=await s((async(a,t)=>{t||a?2!=O&&(j(1),R++,x(t??a),j(0)):await W()}))),o),J),stopAutoLoad:B,isAutoLoading:()=>!l($),save:X,startAutoSave:async()=>(Y(),await X(),p=a.addDidFinishTransactionListener((()=>{const a=D();h(a)&&X(a)})),J),stopAutoSave:Y,isAutoSaving:()=>!l(p),getStatus:()=>O,addStatusListener:a=>M(a,C),delListener:t=>(G(t),a),schedule:k,getStore:()=>a,destroy:async()=>(z(xa,u).splice(0,void 0),await J.stopAutoLoad(),await J.stopAutoSave()),getStats:()=>({loads:R,saves:m}),...c};return F(J)},Ba=(a,t,e,s,o,r=Ha,c,w)=>{const d=q();return[async()=>{d.clear(),p(await e(a,t),(({tn:a,cn:t})=>Oa(V(d,a,pa),t)))},async(t,e,n)=>((a,t)=>m(z(d,a),t))(t,e)?M(R(p(await a(wa+Aa(t)+$a(t,n)),(a=>[a[e],w?x(G(a,e),w):G(a,e)])),(([a,t])=>!l(a)&&!H(t)))):{},async(t,e,s,w,y,u=!1,E=i)=>{const A=pa();x(s??{},(a=>p(P(a??{}),(a=>Oa(A,a)))));const T=C(A);if(!u&&y&&E==i&&O(T)&&m(d,t))return await a("DROP "+na+Aa(t)),void K(d,t);const g=z(d,t),S=pa(C(g));if(O(T)||(m(d,t)?await N(p([e,...T],(async(n,s)=>{_(S,n)||(await a(ra+Aa(t)+"ADD"+Aa(n)+o),0==s&&await a("CREATE UNIQUE INDEX pk ON "+Aa(t)+`(${Aa(e)})`),Oa(g,n))}))):(await a(ya+Aa(t)+`(${Aa(e)}${o} PRIMARY KEY${$(p(T,(a=>n+Aa(a)+o)))});`),K(d,t,pa([e,...T])))),await N([...!u&&w?p(C(S),(async n=>{n!=e&&(await a(ra+Aa(t)+"DROP"+Aa(n)),_(g,n))})):[]]),u)l(s)?await a(la+Aa(t)+$a(t,E)):await N(j(s,(async(n,s)=>{l(n)?await a(la+Aa(t)+$a(t,E)+`AND(${Aa(e)}=$1)`,[s]):O(T)||await r(a,t,e,P(n),{[s]:c?p(W(n),c):W(n)},g)})));else if(O(T))m(d,t)&&await a(la+Aa(t)+$a(t,E));else{const n=R(C(z(d,t)),(a=>a!=e)),i={},o=[];x(s??{},((a,t)=>{i[t]=p(n,(t=>c?c(a?.[t]):a?.[t])),v(o,t)})),await r(a,t,e,n,i),await a(la+Aa(t)+$a(t,E)+`AND${Aa(e)}NOT IN(${ga(o)})`,o)}},async t=>{let e;return await a("BEGIN"),await T((async()=>e=await t()),s),await a("END"),e}]},Ha=async(a,t,e,s,i)=>{const o=[1];await a(sa+" INTO"+Aa(t)+"("+((...a)=>$(p(a,Aa),n))(e,...s)+")VALUES"+$(j(i,(a=>"($"+o[0]+++","+ga(a,o)+")")),n)+"ON CONFLICT("+Aa(e)+`)DO ${oa} SET`+$(p(s,(a=>Aa(a)+"=excluded."+Aa(a))),n),j(i,((a,t)=>[t,...p(a,(a=>a??null))])).flat())},Xa=(a,t,e,n,s,i,o,[r,c,l],w,d,y,u,E,N)=>{const[A,T,g,$]=Ba(t,w,d,s,E,N),p=Wa(a,(()=>$((async()=>{return await A(),a=(await T(r,c))[Z]?.[l]??"null",Y(a,((a,t)=>""===t?void 0:t));var a}))),(a=>$((async()=>{await A(),await g(r,c,{[Z]:{[l]:k(a()??null)}},!0,!0)}))),e,n,s,o,{[u]:()=>y,destroy:async()=>(await p.stopAutoLoad(),await p.stopAutoSave(),i(),p)},0,y);return p},Ya=(a,t,e,n,s,i,o,[r,c,[w,d,y]],u,E,A,T,g,$,p,O)=>{const[v,S,m,L]=Ba(t,u,E,s,g,$,p,O),C=(a,t)=>N(J(c,(async([e,n,s,i,o],r)=>{t&&!(r in a)||await m(e,n,a[r],s,i,t,o)}))),I=async(a,t)=>d?await m(y,aa,{[Z]:a},!0,!0,t):null,_=Wa(a,(()=>L((async()=>{await v();const a=await(async()=>M(R(await N(J(r,(async([a,t,e],n)=>[a,await S(n,t,e)]))),(a=>!H(a[1])))))(),t=await(async()=>w?(await S(y,aa))[Z]:{})();return H(a)&&l(t)?void 0:[a,t]}))),((a,t)=>L((async()=>{if(await v(),l(t)){const[t,e]=a();await C(t),await I(e)}else await C(t[0],!0),await I(t[1],!0)}))),e,n,s,o,{[T]:()=>A,destroy:async()=>(await _.stopAutoLoad(),await _.stopAutoSave(),i(),_)},0,A);return _},ka=/^([cd]:)(.+)/,qa=(a,n,s,r,c,l,y,E,A,T,O="getDb")=>{const R=((a,t)=>t?async(e,n)=>(t(e,n),await a(e,n)):a)(s,l),[v,,S,L]=(a=>{const e=(a=>U(Fa,d(a)?{[ma]:a}:a??{}))(a),n=e[Ia];if(e.mode==Sa){const a=e[ma]??t;return[1,n,[a,e[La]??aa,e[Ca]??va],pa(a)]}const{tables:{load:s={},save:o={}}={},values:r={}}=e,c=u(W(U(Ma,r)),0,B(Ma)),l=c[2],w=pa(l),y=pa(l),E=Ua(s,{[ba]:null,[_a]:aa,[Pa]:i},ba,(a=>m(y,a)),(a=>Oa(w,a))),N=Ua(o,{[fa]:null,[_a]:aa,[Da]:0,[ha]:0,[Pa]:null},fa,((a,t)=>m(y,t)),((a,t)=>Oa(w,t)));var A;return A=(a,t)=>t[4]??=z(E,t[0])?.[2]??i,I(N,((a,t)=>A(0,a))),[0,n,[E,N,c],w]})(n),_=e+(a=>{let t=2166136261;return g(b.encode(a),(a=>{t^=a,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0})(k(S)),f=t+"_"+_,D=async(a,e,n="",s="")=>{const i=Ta(t,a,_);return await R(da+ua+Ea+i+`()RETURNS ${n}trigger AS $$ ${s}BEGIN ${e}END;$$ LANGUAGE plpgsql;`),i},h=async(a,t,e,n)=>(await R(da+a+"TRIGGER"+t+e+"EXECUTE "+Ea+n+"()"),t),P=a=>`PERFORM pg_notify('${f}',${a});`,F=(a,t)=>v?i:2===t?F(a,0)+" OR "+F(a,1):o(z(S[0],a)?.[2]??i,Na,0==t?"NEW":"OLD"),M=(a,e)=>N(p([sa,ia,oa],((n,s)=>h(ua,Ta(t,"d",_,a,n),`AFTER ${n} ON${Aa(a)}FOR EACH ROW WHEN(${F(a,s)})`,e))));return(v?Xa:Ya)(a,R,(async a=>{const e=await D("c",`FOR row IN SELECT object_identity FROM pg_event_trigger_ddl_commands()${ea} command_tag='${ya}' LOOP ${P("'c:'||SPLIT_PART(row.object_identity,'.',2)")}END LOOP;`,"event_","DECLARE row record;");await h("EVENT ",Ta(t,"c",_),`ON ddl_command_end WHEN TAG IN('${ya}')`,e);const n=await D("d",P("'d:'||TG_TABLE_NAME")+"RETURN NULL;");return await N(p(C(L),(async a=>(await R(ya+` IF NOT EXISTS${Aa(a)}("_id"text PRIMARY KEY)`),await M(a,n))))),[await r(f,(t=>{return w((e=t,s=ka,e?.match(s)),(async([,t,e])=>{m(L,e)&&("c:"==t&&await M(e,n),a())}));var e,s})),[e,n]]}),(async([a,t])=>{c(a),await R(`DROP FUNCTION IF EXISTS${$(t,",")}CASCADE`)}),y,E,A,S,C(L),(async(a,t)=>await a(ta+` table_name tn,column_name cn FROM information_schema.columns ${ea} table_schema='public'AND table_name IN(${ga(t)})`,t)),T,O,"text",void 0,(a=>X(a)),(a=>Y(a)))},za=async(a,t,e,n,s)=>{const i=await(t.reserve?.());return qa(a,e,i?.unsafe,(async(a,e)=>t.listen(a,e)),(a=>T(a.unlisten,s)),n,s,(()=>i?.release?.()),3,t,"getSql")};export{za as createPostgresPersister};
|
|
Binary file
|
|
@@ -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
|