tinybase 6.1.0-beta.3 → 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 +83 -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 +159 -0
- package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +178 -0
- 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 +87 -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 -0
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -0
- 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 +46 -6
- 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 +1171 -0
- package/persisters/persister-sqlite-bun/with-schemas/index.js +1171 -0
- 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
|
|
1
|
+
const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,n=globalThis,s=Math,o=s.floor,r=t=>null==t,i=(t,e,a)=>r(t)?a?.():e(t),c=t=>Array.isArray(t),l=(t,e,a)=>t.slice(e,a),g=t=>t.length,u=t=>new a(t),d=t=>{throw Error(t)},y=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},w=(t,e)=>t.forEach(e),v=(t,...e)=>t.push(...e),p=t=>t.shift(),f=Object,h=t=>f.getPrototypeOf(t),S=f.entries,b=f.keys,M=f.freeze,A=(t,e)=>w(S(t),(([t,a])=>e(a,t))),C=t=>(t=>!r(t)&&i(h(t),(t=>t==f.prototype||r(h(t))),(()=>!0)))(t)&&0==(t=>g(b(t)))(t),L=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),m=JSON.stringify,T=JSON.parse,E=t=>r(t)||0==(t=>t?.size??0)(t),H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),O=t=>new Map(t),N=(t,e)=>t?.get(e),P=(t,e,a)=>r(a)?(D(t,e),t):t?.set(e,a),z=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(N(t,e)):P(t,e,a()),N(t,e)},R=(t,e,a,n,s=0)=>i((a?z:N)(t,e[s],s>g(e)-2?a:O),(o=>{if(s>g(e)-2)return n?.(o)&&P(t,e[s]),o;const r=R(o,e,a,n,s+1);return E(o)&&P(t,e[s]),r})),V=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),k=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map((()=>o(256*s.random()))))(t),x=(t=16)=>{return e=(t,e)=>t+V[63&e],k(new Uint8Array(t)).reduce(e,"");var e},J=(t,e)=>e?[t,e]:[t],$=(t,e)=>((t??"")>(e??"")?t:e)??"",j=(t="")=>J(((t=[])=>f.fromEntries(t))(),t),F=/^\d+$/,U=t=>new Set(c(t)||r(t)?t:[t]),W=O(),q=O(),B=(e,a,n,s,o,l,u,f={},h=0,S=[])=>{let b,A,L,m=0,T=0,V=0;z(W,S,(()=>0)),z(q,S,(()=>[]));const k=O(),[x,J,$,j,B]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!C(t)||!C(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!C(t)||!C(e),e.setContent]:d("Store type not supported by this Persister"))(u,e,h),[G,I,K]=(()=>{let e;const[a,n]=(()=>{const e=[];let a=0;return[n=>(n?p(e):null)??t+a++,t=>{F.test(t)&&g(e)<1e3&&v(e,t)}]})(),s=O();return[(n,o,r,i=[],c=()=>[])=>{e??=at;const l=a(1);var g,u;return P(s,l,[n,o,r,i,c]),g=R(o,r??[t],U),u=l,g?.add(u),l},(a,n,...o)=>w(((e,a=[t])=>{const n=[],s=(t,e)=>e==g(a)?v(n,t):null===a[e]?H(t,(t=>s(t,e+1))):w([a[e],null],(a=>s(N(t,a),e+1)));return s(e,0),n})(a,n),(t=>H(t,(t=>N(s,t)[0](e,...n??[],...o))))),e=>i(N(s,e),(([,a,o])=>(R(a,o??[t],void 0,(t=>(D(t,e),E(t)?1:0))),P(s,e),n(e),o))),t=>i(N(s,t),(([t,,a=[],n,s])=>{const o=(...i)=>{const c=g(i);c==g(a)?t(e,...i,...s(i)):r(a[c])?w(n[c]?.(...i)??[],(t=>o(...i,t))):o(...i,a[c])};o()}))]})(),Q=t=>{t!=m&&(m=t,I(k,void 0,m))},X=t=>{(x&&c(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Y=async t=>(2!=m&&(Q(1),T++,await et((async()=>{await y((async()=>{const e=await a();c(e)?X(e):t?B(t):d("Content is not an array: "+e)}),(()=>{t&&B(t)})),Q(0)}))),at),Z=async()=>(A&&(await y((()=>o(A)),l),A=void 0),at),_=async t=>(1!=m&&(Q(2),V++,await et((async()=>{await y((()=>n(J,t)),l),Q(0)}))),at),tt=async()=>(L&&(e.delListener(L),L=void 0),at),et=async(...t)=>(v(N(q,S),...t),await(async()=>{if(!N(W,S)){for(P(W,S,1);!r(b=p(N(q,S)));)await y(b,l);P(W,S,0)}})(),at),at={load:Y,startAutoLoad:async t=>(Z(),await Y(t),await y((async()=>A=await s((async(t,e)=>{e||t?2!=m&&(Q(1),T++,X(e??t),Q(0)):await Y()}))),l),at),stopAutoLoad:Z,isAutoLoading:()=>!r(A),save:_,startAutoSave:async()=>(tt(),await _(),L=e.addDidFinishTransactionListener((()=>{const t=$();j(t)&&_(t)})),at),stopAutoSave:tt,isAutoSaving:()=>!r(L),getStatus:()=>m,addStatusListener:t=>G(t,k),delListener:t=>(K(t),e),schedule:et,getStore:()=>e,destroy:async()=>(N(q,S).splice(0,void 0),await at.stopAutoLoad(),await at.stopAutoSave()),getStats:()=>({loads:T,saves:V}),...f};return M(at)},G=async(e,a,n=1,s,o,c)=>{const g=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),d=((e,a,n,s,o,c,l,g,d={})=>{let w,v=0,p=0,f=0;const h=O(),S=()=>x(11),b=(t,e,n,s)=>{p++,c?.(t,e,n,s),a(t,e,n,s)},M=async(t,e,a,n)=>u(((s,r)=>{const i=n+"."+x(4),c=((t,e=0)=>setTimeout(t,1e3*e))((()=>{D(h,i),r(`No response from ${t??"anyone"} to ${i}, `+e)}),o);P(h,i,[t,(t,e)=>{clearTimeout(c),D(h,i),s([t,e,n])}]),b(t,i,e,a)})),m=(t,[e,a])=>{A(e,(([e,a],n)=>{const s=L(t[0],n,j);A(e,(([t,e],a)=>{const n=L(s[0],a,j);A(t,(([t,e],a)=>n[0][a]=J(t,e))),n[1]=$(n[1],e)})),s[1]=$(s[1],a)})),t[1]=$(t[1],a)},T=(a=null,n,s=S())=>y((async()=>{r(n)&&([n,a,s]=await M(null,1,t,s));const[o,i]=n,[c,l]=e.getMergeableContentHashes();let g=j();if(c!=o){const[t,n]=(await M(a,4,e.getMergeableTableHashes(),s))[0];if(g=t,!C(n)){const[t,o]=(await M(a,5,e.getMergeableRowHashes(n),s))[0];if(m(g,t),!C(o)){const t=(await M(a,6,e.getMergeableCellHashes(o),s))[0];m(g,t)}}}return[g,l==i?j():(await M(a,7,e.getMergeableValueHashes(),s))[0],1]}),g),E=B(e,(async()=>{const t=await T();return!t||C(t[0][0])&&C(t[1][0])?void 0:t}),(async(t,a)=>a?b(null,S(),3,a):b(null,S(),2,e.getMergeableContentHashes())),(t=>w=t),(()=>w=void 0),g,2,{startSync:async t=>(v=1,await(await E.startAutoLoad(t)).startAutoSave()),stopSync:async()=>(v=0,await E.stopAutoLoad(),await E.stopAutoSave(),E),destroy:async()=>(await E.stopSync(),s(),E),getSynchronizerStats:()=>({sends:p,receives:f}),...d},1);return n(((t,a,n,s)=>{const o=v||E.isAutoLoading();f++,l?.(t,a,n,s),0==n?i(N(h,a),(([e,a])=>r(e)||e==t?a(s,t):0)):2==n&&o?T(t,s,a??void 0).then((t=>{w?.(void 0,t)})).catch(g):3==n&&o?w?.(void 0,s):i(1==n&&(v||E.isAutoSaving())?e.getMergeableContentHashes():4==n?e.getMergeableTableDiff(s):5==n?e.getMergeableRowDiff(s):6==n?e.getMergeableCellDiff(s):7==n?e.getMergeableValueDiff(s):void 0,(e=>{b(t,a,0,e)}))})),E})(e,((e,...n)=>a.send(((e,...a)=>{return n=e??t,s=m(a,((t,e)=>void 0===e?"":e)),n+"\n"+s;var n,s})(e,...n))),(t=>g("message",(({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var n,s,o;-1!==a&&(n=l(t,0,a),s=l(t,a+1),e(n,...(o=s,T(o,((t,e)=>""===e?void 0:e)))))})(t))(e.toString("utf8"),t)))),(()=>{a.close()}),n,s,o,c,{getWebSocket:()=>a});return u((t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&c?.(e),a(),n(),t(d)},a=g("open",(()=>e())),n=g("error",e)}else t(d)}))};export{G as createWsSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,n=globalThis,s=Math,o=s.floor,r=t=>null==t,i=(t,e,a)=>r(t)?a?.():e(t),c=t=>Array.isArray(t),l=(t,e,a)=>t.slice(e,a),g=t=>t.length,u=t=>new a(t),d=t=>{throw Error(t)},y=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},w=(t,e)=>t.forEach(e),v=(t,...e)=>t.push(...e),p=t=>t.shift(),f=Object,h=t=>f.getPrototypeOf(t),S=f.entries,b=f.keys,M=f.freeze,A=(t,e)=>w(S(t),(([t,a])=>e(a,t))),C=t=>(t=>!r(t)&&i(h(t),(t=>t==f.prototype||r(h(t))),(()=>!0)))(t)&&0==(t=>g(b(t)))(t),L=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),m=JSON.stringify,T=JSON.parse,E=t=>r(t)||0==(t=>t?.size??0)(t),H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),O=t=>new Map(t),N=(t,e)=>t?.get(e),P=(t,e,a)=>r(a)?(D(t,e),t):t?.set(e,a),z=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(N(t,e)):P(t,e,a()),N(t,e)},R=(t,e,a,n,s=0)=>i((a?z:N)(t,e[s],s>g(e)-2?a:O),(o=>{if(s>g(e)-2)return n?.(o)&&P(t,e[s]),o;const r=R(o,e,a,n,s+1);return E(o)&&P(t,e[s]),r})),V=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),k=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map((()=>o(256*s.random()))))(t),x=(t=16)=>{return e=(t,e)=>t+V[63&e],k(new Uint8Array(t)).reduce(e,"");var e},J=(t,e)=>e?[t,e]:[t],$=(t,e)=>((t??"")>(e??"")?t:e)??"",j=(t="")=>J(((t=[])=>f.fromEntries(t))(),t),F=/^\d+$/,U=t=>new Set(c(t)||r(t)?t:[t]),W=O(),q=O(),B=(e,a,n,s,o,l,u,f={},h=0,S=[])=>{let b,A,L,m=0,T=0,V=0;z(W,S,(()=>0)),z(q,S,(()=>[]));const k=O(),[x,J,$,j,B]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!C(t)||!C(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!C(t)||!C(e),e.setContent]:d("Store type not supported by this Persister"))(u,e,h),[G,I,K]=(()=>{let e;const[a,n]=(()=>{const e=[];let a=0;return[n=>(n?p(e):null)??t+a++,t=>{F.test(t)&&g(e)<1e3&&v(e,t)}]})(),s=O();return[(n,o,r,i=[],c=()=>[])=>{e??=at;const l=a(1);var g,u;return P(s,l,[n,o,r,i,c]),g=R(o,r??[t],U),u=l,g?.add(u),l},(a,n,...o)=>w(((e,a=[t])=>{const n=[],s=(t,e)=>e==g(a)?v(n,t):null===a[e]?H(t,(t=>s(t,e+1))):w([a[e],null],(a=>s(N(t,a),e+1)));return s(e,0),n})(a,n),(t=>H(t,(t=>N(s,t)[0](e,...n??[],...o))))),e=>i(N(s,e),(([,a,o])=>(R(a,o??[t],void 0,(t=>(D(t,e),E(t)?1:0))),P(s,e),n(e),o))),t=>i(N(s,t),(([t,,a=[],n,s])=>{const o=(...i)=>{const c=g(i);c==g(a)?t(e,...i,...s(i)):r(a[c])?w(n[c]?.(...i)??[],(t=>o(...i,t))):o(...i,a[c])};o()}))]})(),Q=t=>{t!=m&&(m=t,I(k,void 0,m))},X=t=>{(x&&c(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Y=async t=>(2!=m&&(Q(1),T++,await et((async()=>{await y((async()=>{const e=await a();c(e)?X(e):t?B(t):d("Content is not an array: "+e)}),(()=>{t&&B(t)})),Q(0)}))),at),Z=async()=>(A&&(await y((()=>o(A)),l),A=void 0),at),_=async t=>(1!=m&&(Q(2),V++,await et((async()=>{await y((()=>n(J,t)),l),Q(0)}))),at),tt=async()=>(L&&(e.delListener(L),L=void 0),at),et=async(...t)=>(v(N(q,S),...t),await(async()=>{if(!N(W,S)){for(P(W,S,1);!r(b=p(N(q,S)));)await y(b,l);P(W,S,0)}})(),at),at={load:Y,startAutoLoad:async t=>(Z(),await Y(t),await y((async()=>A=await s((async(t,e)=>{e||t?2!=m&&(Q(1),T++,X(e??t),Q(0)):await Y()}))),l),at),stopAutoLoad:Z,isAutoLoading:()=>!r(A),save:_,startAutoSave:async()=>(tt(),await _(),L=e.addDidFinishTransactionListener((()=>{const t=$();j(t)&&_(t)})),at),stopAutoSave:tt,isAutoSaving:()=>!r(L),getStatus:()=>m,addStatusListener:t=>G(t,k),delListener:t=>(K(t),e),schedule:et,getStore:()=>e,destroy:async()=>(N(q,S).splice(0,void 0),await at.stopAutoLoad(),await at.stopAutoSave()),getStats:()=>({loads:T,saves:V}),...f};return M(at)},G=async(e,a,n=1,s,o,c)=>{const g=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),d=((e,a,n,s,o,c,l,g,d={})=>{let w,v=0,p=0,f=0;const h=O(),S=()=>x(11),b=(t,e,n,s)=>{p++,c?.(t,e,n,s),a(t,e,n,s)},M=async(t,e,a,n)=>u(((s,r)=>{const i=n+"."+x(4),c=((t,e=0)=>setTimeout(t,1e3*e))((()=>{D(h,i),r(`No response from ${t??"anyone"} to ${i}, `+e)}),o);P(h,i,[t,(t,e)=>{clearTimeout(c),D(h,i),s([t,e,n])}]),b(t,i,e,a)})),m=(t,[e,a])=>{A(e,(([e,a],n)=>{const s=L(t[0],n,j);A(e,(([t,e],a)=>{const n=L(s[0],a,j);A(t,(([t,e],a)=>n[0][a]=J(t,e))),n[1]=$(n[1],e)})),s[1]=$(s[1],a)})),t[1]=$(t[1],a)},T=(a=null,n,s=S())=>y((async()=>{r(n)&&([n,a,s]=await M(null,1,t,s));const[o,i]=n,[c,l]=e.getMergeableContentHashes();let g=j();if(c!=o){const[t,n]=(await M(a,4,e.getMergeableTableHashes(),s))[0];if(g=t,!C(n)){const[t,o]=(await M(a,5,e.getMergeableRowHashes(n),s))[0];if(m(g,t),!C(o)){const t=(await M(a,6,e.getMergeableCellHashes(o),s))[0];m(g,t)}}}return[g,l==i?j():(await M(a,7,e.getMergeableValueHashes(),s))[0],1]}),g),E=B(e,(async()=>{const t=await T();return!t||C(t[0][0])&&C(t[1][0])?void 0:t}),(async(t,a)=>a?b(null,S(),3,a):b(null,S(),2,e.getMergeableContentHashes())),(t=>w=t),(()=>w=void 0),g,2,{startSync:async t=>(v=1,await(await E.startAutoLoad(t)).startAutoSave()),stopSync:async()=>(v=0,await E.stopAutoLoad(),await E.stopAutoSave(),E),destroy:async()=>(await E.stopSync(),s(),E),getSynchronizerStats:()=>({sends:p,receives:f}),...d},1);return n(((t,a,n,s)=>{const o=v||E.isAutoLoading();f++,l?.(t,a,n,s),0==n?i(N(h,a),(([e,a])=>r(e)||e==t?a(s,t):0)):2==n&&o?T(t,s,a??void 0).then((t=>{w?.(void 0,t)})).catch(g):3==n&&o?w?.(void 0,s):i(1==n&&(v||E.isAutoSaving())?e.getMergeableContentHashes():4==n?e.getMergeableTableDiff(s):5==n?e.getMergeableRowDiff(s):6==n?e.getMergeableCellDiff(s):7==n?e.getMergeableValueDiff(s):void 0,(e=>{b(t,a,0,e)}))})),E})(e,((e,...n)=>a.send(((e,...a)=>{return n=e??t,s=m(a,((t,e)=>void 0===e?"":e)),n+"\n"+s;var n,s})(e,...n))),(t=>g("message",(({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var n,s,o;-1!==a&&(n=l(t,0,a),s=l(t,a+1),e(n,...(o=s,T(o,((t,e)=>""===e?void 0:e)))))})(t))(e.toString("utf8"),t)))),(()=>{a.close()}),n,s,o,c,{getWebSocket:()=>a});return u((t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&c?.(e),a(),n(),t(d)},a=g("open",(()=>e())),n=g("error",e)}else t(d)}))};export{G as createWsSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=globalThis,o=Math,r=o.floor,i=t=>null==t,c=(t,e,a)=>i(t)?a?.():e(t),l=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),g=t=>t.length,
|
|
1
|
+
const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=globalThis,o=Math,r=o.floor,i=t=>null==t,c=(t,e,a)=>i(t)?a?.():e(t),l=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),g=t=>t.length,y=t=>{throw Error(t)},u=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},w=(t,e)=>t.forEach(e),v=(t,e)=>t.map(e),h=(t,e,a)=>t.reduce(e,a),S=(t,...e)=>t.push(...e),p=t=>t.shift(),f=t=>t?.size??0,b=(A=f,t=>h(M(t),((t,e)=>t+A(e)),0));var A;const C=t=>i(t)||0==f(t),M=t=>[...t?.values()??[]],L=(t,e)=>t?.forEach(e),m=(t,e)=>t?.delete(e),T=Object,H=t=>T.getPrototypeOf(t),D=T.entries,k=T.keys,O=T.freeze,P=(t,e)=>w(D(t),(([t,a])=>e(a,t))),E=t=>(t=>!i(t)&&c(H(t),(t=>t==T.prototype||i(H(t))),(()=>!0)))(t)&&0==(t=>g(k(t)))(t),I=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),z=t=>new Map(t),N=t=>[...t?.keys()??[]],R=(t,e)=>t?.get(e),V=(t,e,a)=>i(a)?(m(t,e),t):t?.set(e,a),x=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(R(t,e)):V(t,e,a()),R(t,e)},J=(t,e,a,s,n=0)=>c((a?x:R)(t,e[n],n>g(e)-2?a:z),(o=>{if(n>g(e)-2)return s?.(o)&&V(t,e[n]),o;const r=J(o,e,a,s,n+1);return C(o)&&V(t,e[n]),r})),$=/^\d+$/,j=t=>new Set(l(t)||i(t)?t:[t]),F=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?p(e):null)??t+a++,t=>{$.test(t)&&g(e)<1e3&&S(e,t)}]})(),o=z();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const d=s(1);var g,y;return V(o,d,[n,r,i,c,l]),g=J(r,i??[t],j),y=d,g?.add(y),d},(e,s,...n)=>w(((e,a=[t])=>{const s=[],n=(t,e)=>e==g(a)?S(s,t):null===a[e]?L(t,(t=>n(t,e+1))):w([a[e],null],(a=>n(R(t,a),e+1)));return n(e,0),s})(e,s),(t=>L(t,(t=>R(o,t)[0](a,...s??[],...n))))),e=>c(R(o,e),(([,a,s])=>(J(a,s??[t],void 0,(t=>(m(t,e),C(t)?1:0))),V(o,e),n(e),s))),t=>c(R(o,t),(([t,,e=[],s,n])=>{const o=(...r)=>{const c=g(r);c==g(e)?t(a,...r,...n(r)):i(e[c])?w(s[c]?.(...r)??[],(t=>o(...r,t))):o(...r,e[c])};o()}))]},U=JSON.stringify,W=JSON.parse,q=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(d(t,0,a),d(t,a+1))},B=(t,e)=>t+"\n"+e,G=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),K=n.crypto?t=>n.crypto.getRandomValues(t):t=>v(t,(()=>r(256*o.random()))),Q=(t=16)=>h(K(new Uint8Array(t)),((t,e)=>t+G[63&e]),""),X=(t,e)=>e?[t,e]:[t],Y=(t,e)=>((t??"")>(e??"")?t:e)??"",Z=(t="")=>X(((t=[])=>T.fromEntries(t))(),t),_=z(),tt=z(),et=/\/([^?]*)/,at=(a,n,o)=>{const r=z(),d=z(),g=z(),h=z(),[A,M,T]=F((()=>k)),H=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},D=(e,a,s)=>n=>q(n,((n,o)=>{const r=B(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,L(a,((t,e)=>i(e,t)))):"S"===n?s[3]?.(r):R(a,n)?.send(r)}));a.on("connection",((a,v)=>{return c((f=v.url,b=et,f?.match(b)),(([,f])=>c(v.headers["sec-websocket-key"],(async v=>{const b=x(g,f,z),A=x(h,f,(()=>[0])),L=D(v,b,A);C(b)&&(M(r,void 0,f,1),await(async(e,a,r)=>c(await(n?.(a)),(a=>{e[0]=1,e[1]=l(a)?a[0]:a;const n=D("S",r,e);e[2]=((e,a,n,o,r,d,g,w,v={})=>{let h,f=0,b=0,A=0;const C=z(),M=()=>Q(11),L=(t,e,s,n)=>{b++,a(t,e,s,n)},T=async(t,e,a,n)=>new s(((s,o)=>{const i=n+"."+Q(4),c=((t,e=0)=>setTimeout(t,1e3*e))((()=>{m(C,i),o(`No response from ${t??"anyone"} to ${i}, `+e)}),r);V(C,i,[t,(t,e)=>{clearTimeout(c),m(C,i),s([t,e,n])}]),L(t,i,e,a)})),H=(t,[e,a])=>{P(e,(([e,a],s)=>{const n=I(t[0],s,Z);P(e,(([t,e],a)=>{const s=I(n[0],a,Z);P(t,(([t,e],a)=>s[0][a]=X(t,e))),s[1]=Y(s[1],e)})),n[1]=Y(n[1],a)})),t[1]=Y(t[1],a)},D=(a=null,s,n=M())=>u((async()=>{i(s)&&([s,a,n]=await T(null,1,t,n));const[o,r]=s,[c,l]=e.getMergeableContentHashes();let d=Z();if(c!=o){const[t,s]=(await T(a,4,e.getMergeableTableHashes(),n))[0];if(d=t,!E(s)){const[t,o]=(await T(a,5,e.getMergeableRowHashes(s),n))[0];if(H(d,t),!E(o)){const t=(await T(a,6,e.getMergeableCellHashes(o),n))[0];H(d,t)}}}return[d,l==r?Z():(await T(a,7,e.getMergeableValueHashes(),n))[0],1]}),w),k=((t,e,a,s,n,o,r,c={},d=0,g=[])=>{let w,v,h,f=0,b=0,A=0;x(_,g,(()=>0)),x(tt,g,(()=>[]));const C=z(),[M,L,m,T,H]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!E(t)||!E(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!E(t)||!E(e),e.setContent]:y("Store type not supported by this Persister"))(r,t,d),[D,k,P]=F((()=>q)),I=t=>{t!=f&&(f=t,k(C,void 0,f))},N=e=>{(M&&l(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},J=async t=>(2!=f&&(I(1),b++,await W((async()=>{await u((async()=>{const a=await e();l(a)?N(a):t?H(t):y("Content is not an array: "+a)}),(()=>{t&&H(t)})),I(0)}))),q),$=async()=>(v&&(await u((()=>n(v)),o),v=void 0),q),j=async t=>(1!=f&&(I(2),A++,await W((async()=>{await u((()=>a(L,t)),o),I(0)}))),q),U=async()=>(h&&(t.delListener(h),h=void 0),q),W=async(...t)=>(S(R(tt,g),...t),await(async()=>{if(!R(_,g)){for(V(_,g,1);!i(w=p(R(tt,g)));)await u(w,o);V(_,g,0)}})(),q),q={load:J,startAutoLoad:async t=>($(),await J(t),await u((async()=>v=await s((async(t,e)=>{e||t?2!=f&&(I(1),b++,N(e??t),I(0)):await J()}))),o),q),stopAutoLoad:$,isAutoLoading:()=>!i(v),save:j,startAutoSave:async()=>(U(),await j(),h=t.addDidFinishTransactionListener((()=>{const t=m();T(t)&&j(t)})),q),stopAutoSave:U,isAutoSaving:()=>!i(h),getStatus:()=>f,addStatusListener:t=>D(t,C),delListener:e=>(P(e),t),schedule:W,getStore:()=>t,destroy:async()=>(R(tt,g).splice(0,void 0),await q.stopAutoLoad(),await q.stopAutoSave()),getStats:()=>({loads:b,saves:A}),...c};return O(q)})(e,(async()=>{const t=await D();return!t||E(t[0][0])&&E(t[1][0])?void 0:t}),(async(t,a)=>a?L(null,M(),3,a):L(null,M(),2,e.getMergeableContentHashes())),(t=>h=t),(()=>h=void 0),w,2,{startSync:async t=>(f=1,await(await k.startAutoLoad(t)).startAutoSave()),stopSync:async()=>(f=0,await k.stopAutoLoad(),await k.stopAutoSave(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:b,receives:A}),...v},1);return n(((t,a,s,n)=>{const o=f||k.isAutoLoading();A++,0==s?c(R(C,a),(([e,a])=>i(e)||e==t?a(n,t):0)):2==s&&o?D(t,n,a??void 0).then((t=>{h?.(void 0,t)})).catch(w):3==s&&o?h?.(void 0,n):c(1==s&&(f||k.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,(e=>{L(t,a,0,e)}))})),k})(e[1].getStore(),((e,a,s,o)=>n(((e,...a)=>B(e??t,U(a,((t,e)=>void 0===e?"":e))))(e,a,s,o))),(t=>e[3]=e=>((t,e)=>q(t,((t,a)=>{return e(t,...(s=a,W(s,((t,e)=>""===e?void 0:e))));var s})))(e,t)),0,1,0,0,o),e[4]=[],e[5]=l(a)?a[1]:t=>0})))(A,f,b)),V(b,v,a),M(d,[f],v,1),a.on("message",(t=>{const e=t.toString("utf8");0==A[0]?L(e):S(A[4],e)})),1==A[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(A),w(A[4],L),A[4]=[]),a.on("close",(async()=>{m(b,v),M(d,[f],v,-1),C(b)&&(await H(A),m(h,f),m(g,f),M(r,void 0,f,-1))})),o&&a.on(e,o)}))));var f,b})),o&&a.on(e,o);const k={getWebSocketServer:()=>a,getPathIds:()=>N(g),getClientIds:t=>N(R(g,t)),addPathIdsListener:t=>A(t,r),addClientIdsListener:(t,e)=>A(e,d,[t]),delListener:t=>(T(t),k),getStats:()=>({paths:f(g),clients:b(g)}),destroy:async()=>{var t,e;g.clear(),await(async t=>s.all(t))((t=h,e=H,v([...t?.entries()??[]],(([t,a])=>e(a,t))))),a.close()}};return O(k)};export{at as createWsServer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=globalThis,o=Math,r=o.floor,i=t=>null==t,c=(t,e,a)=>i(t)?a?.():e(t),l=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),g=t=>t.length,
|
|
1
|
+
const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=globalThis,o=Math,r=o.floor,i=t=>null==t,c=(t,e,a)=>i(t)?a?.():e(t),l=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),g=t=>t.length,y=t=>{throw Error(t)},u=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},w=(t,e)=>t.forEach(e),v=(t,e)=>t.map(e),h=(t,e,a)=>t.reduce(e,a),S=(t,...e)=>t.push(...e),p=t=>t.shift(),f=t=>t?.size??0,b=(A=f,t=>h(M(t),((t,e)=>t+A(e)),0));var A;const C=t=>i(t)||0==f(t),M=t=>[...t?.values()??[]],L=(t,e)=>t?.forEach(e),m=(t,e)=>t?.delete(e),T=Object,H=t=>T.getPrototypeOf(t),D=T.entries,k=T.keys,O=T.freeze,P=(t,e)=>w(D(t),(([t,a])=>e(a,t))),E=t=>(t=>!i(t)&&c(H(t),(t=>t==T.prototype||i(H(t))),(()=>!0)))(t)&&0==(t=>g(k(t)))(t),I=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),z=t=>new Map(t),N=t=>[...t?.keys()??[]],R=(t,e)=>t?.get(e),V=(t,e,a)=>i(a)?(m(t,e),t):t?.set(e,a),x=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(R(t,e)):V(t,e,a()),R(t,e)},J=(t,e,a,s,n=0)=>c((a?x:R)(t,e[n],n>g(e)-2?a:z),(o=>{if(n>g(e)-2)return s?.(o)&&V(t,e[n]),o;const r=J(o,e,a,s,n+1);return C(o)&&V(t,e[n]),r})),$=/^\d+$/,j=t=>new Set(l(t)||i(t)?t:[t]),F=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?p(e):null)??t+a++,t=>{$.test(t)&&g(e)<1e3&&S(e,t)}]})(),o=z();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const d=s(1);var g,y;return V(o,d,[n,r,i,c,l]),g=J(r,i??[t],j),y=d,g?.add(y),d},(e,s,...n)=>w(((e,a=[t])=>{const s=[],n=(t,e)=>e==g(a)?S(s,t):null===a[e]?L(t,(t=>n(t,e+1))):w([a[e],null],(a=>n(R(t,a),e+1)));return n(e,0),s})(e,s),(t=>L(t,(t=>R(o,t)[0](a,...s??[],...n))))),e=>c(R(o,e),(([,a,s])=>(J(a,s??[t],void 0,(t=>(m(t,e),C(t)?1:0))),V(o,e),n(e),s))),t=>c(R(o,t),(([t,,e=[],s,n])=>{const o=(...r)=>{const c=g(r);c==g(e)?t(a,...r,...n(r)):i(e[c])?w(s[c]?.(...r)??[],(t=>o(...r,t))):o(...r,e[c])};o()}))]},U=JSON.stringify,W=JSON.parse,q=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(d(t,0,a),d(t,a+1))},B=(t,e)=>t+"\n"+e,G=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),K=n.crypto?t=>n.crypto.getRandomValues(t):t=>v(t,(()=>r(256*o.random()))),Q=(t=16)=>h(K(new Uint8Array(t)),((t,e)=>t+G[63&e]),""),X=(t,e)=>e?[t,e]:[t],Y=(t,e)=>((t??"")>(e??"")?t:e)??"",Z=(t="")=>X(((t=[])=>T.fromEntries(t))(),t),_=z(),tt=z(),et=/\/([^?]*)/,at=(a,n,o)=>{const r=z(),d=z(),g=z(),h=z(),[A,M,T]=F((()=>k)),H=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},D=(e,a,s)=>n=>q(n,((n,o)=>{const r=B(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,L(a,((t,e)=>i(e,t)))):"S"===n?s[3]?.(r):R(a,n)?.send(r)}));a.on("connection",((a,v)=>{return c((f=v.url,b=et,f?.match(b)),(([,f])=>c(v.headers["sec-websocket-key"],(async v=>{const b=x(g,f,z),A=x(h,f,(()=>[0])),L=D(v,b,A);C(b)&&(M(r,void 0,f,1),await(async(e,a,r)=>c(await(n?.(a)),(a=>{e[0]=1,e[1]=l(a)?a[0]:a;const n=D("S",r,e);e[2]=((e,a,n,o,r,d,g,w,v={})=>{let h,f=0,b=0,A=0;const C=z(),M=()=>Q(11),L=(t,e,s,n)=>{b++,a(t,e,s,n)},T=async(t,e,a,n)=>new s(((s,o)=>{const i=n+"."+Q(4),c=((t,e=0)=>setTimeout(t,1e3*e))((()=>{m(C,i),o(`No response from ${t??"anyone"} to ${i}, `+e)}),r);V(C,i,[t,(t,e)=>{clearTimeout(c),m(C,i),s([t,e,n])}]),L(t,i,e,a)})),H=(t,[e,a])=>{P(e,(([e,a],s)=>{const n=I(t[0],s,Z);P(e,(([t,e],a)=>{const s=I(n[0],a,Z);P(t,(([t,e],a)=>s[0][a]=X(t,e))),s[1]=Y(s[1],e)})),n[1]=Y(n[1],a)})),t[1]=Y(t[1],a)},D=(a=null,s,n=M())=>u((async()=>{i(s)&&([s,a,n]=await T(null,1,t,n));const[o,r]=s,[c,l]=e.getMergeableContentHashes();let d=Z();if(c!=o){const[t,s]=(await T(a,4,e.getMergeableTableHashes(),n))[0];if(d=t,!E(s)){const[t,o]=(await T(a,5,e.getMergeableRowHashes(s),n))[0];if(H(d,t),!E(o)){const t=(await T(a,6,e.getMergeableCellHashes(o),n))[0];H(d,t)}}}return[d,l==r?Z():(await T(a,7,e.getMergeableValueHashes(),n))[0],1]}),w),k=((t,e,a,s,n,o,r,c={},d=0,g=[])=>{let w,v,h,f=0,b=0,A=0;x(_,g,(()=>0)),x(tt,g,(()=>[]));const C=z(),[M,L,m,T,H]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!E(t)||!E(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!E(t)||!E(e),e.setContent]:y("Store type not supported by this Persister"))(r,t,d),[D,k,P]=F((()=>q)),I=t=>{t!=f&&(f=t,k(C,void 0,f))},N=e=>{(M&&l(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},J=async t=>(2!=f&&(I(1),b++,await W((async()=>{await u((async()=>{const a=await e();l(a)?N(a):t?H(t):y("Content is not an array: "+a)}),(()=>{t&&H(t)})),I(0)}))),q),$=async()=>(v&&(await u((()=>n(v)),o),v=void 0),q),j=async t=>(1!=f&&(I(2),A++,await W((async()=>{await u((()=>a(L,t)),o),I(0)}))),q),U=async()=>(h&&(t.delListener(h),h=void 0),q),W=async(...t)=>(S(R(tt,g),...t),await(async()=>{if(!R(_,g)){for(V(_,g,1);!i(w=p(R(tt,g)));)await u(w,o);V(_,g,0)}})(),q),q={load:J,startAutoLoad:async t=>($(),await J(t),await u((async()=>v=await s((async(t,e)=>{e||t?2!=f&&(I(1),b++,N(e??t),I(0)):await J()}))),o),q),stopAutoLoad:$,isAutoLoading:()=>!i(v),save:j,startAutoSave:async()=>(U(),await j(),h=t.addDidFinishTransactionListener((()=>{const t=m();T(t)&&j(t)})),q),stopAutoSave:U,isAutoSaving:()=>!i(h),getStatus:()=>f,addStatusListener:t=>D(t,C),delListener:e=>(P(e),t),schedule:W,getStore:()=>t,destroy:async()=>(R(tt,g).splice(0,void 0),await q.stopAutoLoad(),await q.stopAutoSave()),getStats:()=>({loads:b,saves:A}),...c};return O(q)})(e,(async()=>{const t=await D();return!t||E(t[0][0])&&E(t[1][0])?void 0:t}),(async(t,a)=>a?L(null,M(),3,a):L(null,M(),2,e.getMergeableContentHashes())),(t=>h=t),(()=>h=void 0),w,2,{startSync:async t=>(f=1,await(await k.startAutoLoad(t)).startAutoSave()),stopSync:async()=>(f=0,await k.stopAutoLoad(),await k.stopAutoSave(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:b,receives:A}),...v},1);return n(((t,a,s,n)=>{const o=f||k.isAutoLoading();A++,0==s?c(R(C,a),(([e,a])=>i(e)||e==t?a(n,t):0)):2==s&&o?D(t,n,a??void 0).then((t=>{h?.(void 0,t)})).catch(w):3==s&&o?h?.(void 0,n):c(1==s&&(f||k.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,(e=>{L(t,a,0,e)}))})),k})(e[1].getStore(),((e,a,s,o)=>n(((e,...a)=>B(e??t,U(a,((t,e)=>void 0===e?"":e))))(e,a,s,o))),(t=>e[3]=e=>((t,e)=>q(t,((t,a)=>{return e(t,...(s=a,W(s,((t,e)=>""===e?void 0:e))));var s})))(e,t)),0,1,0,0,o),e[4]=[],e[5]=l(a)?a[1]:t=>0})))(A,f,b)),V(b,v,a),M(d,[f],v,1),a.on("message",(t=>{const e=t.toString("utf8");0==A[0]?L(e):S(A[4],e)})),1==A[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(A),w(A[4],L),A[4]=[]),a.on("close",(async()=>{m(b,v),M(d,[f],v,-1),C(b)&&(await H(A),m(h,f),m(g,f),M(r,void 0,f,-1))})),o&&a.on(e,o)}))));var f,b})),o&&a.on(e,o);const k={getWebSocketServer:()=>a,getPathIds:()=>N(g),getClientIds:t=>N(R(g,t)),addPathIdsListener:t=>A(t,r),addClientIdsListener:(t,e)=>A(e,d,[t]),delListener:t=>(T(t),k),getStats:()=>({paths:f(g),clients:b(g)}),destroy:async()=>{var t,e;g.clear(),await(async t=>s.all(t))((t=h,e=H,v([...t?.entries()??[]],(([t,a])=>e(a,t))))),a.close()}};return O(k)};export{at as createWsServer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DurableObject as e}from"cloudflare:workers";const t="",
|
|
1
|
+
import{DurableObject as e}from"cloudflare:workers";const t="",a=(e,t="",a)=>e.split(t,a),s=Promise,n=globalThis,r=(e,t=0)=>setTimeout(e,1e3*t),o=Math,i=o.floor,c=e=>null==e,l=(e,t,a)=>c(e)?a?.():t(e),g=e=>Array.isArray(e),d=(e,t,a)=>e.slice(t,a),u=e=>e.length,h=e=>{throw Error(e)},y=async(e,t,a)=>{try{return await e()}catch(e){t?.(e)}},w=(e,t)=>e.forEach(t),S=(e,t)=>e.map(t),p=(e,...t)=>e.push(...t),v=e=>e.shift(),C=Object,b=e=>C.getPrototypeOf(e),f=C.entries,M=C.keys,A=C.freeze,m=(e,t)=>w(f(e),(([e,a])=>t(a,e))),L=e=>(e=>!c(e)&&l(b(e),(e=>e==C.prototype||c(b(e))),(()=>!0)))(e)&&0==(e=>u(M(e)))(e),k=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),T=JSON.stringify,x=JSON.parse,P=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(d(e,0,a),d(e,a+1))},I=(e,...a)=>H(e??t,T(a,((e,t)=>void 0===t?"":t))),H=(e,t)=>e+"\n"+t,D=e=>c(e)||0==(e=>e?.size??0)(e),O=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),E=e=>new Map(e),N=(e,t)=>e?.get(t),W=(e,t,a)=>c(a)?(R(e,t),e):e?.set(t,a),z=(e,t,a,s)=>{var n,r;return n=e,r=t,n?.has(r)?s?.(N(e,t)):W(e,t,a()),N(e,t)},U=(e,t,a,s,n=0)=>l((a?z:N)(e,t[n],n>u(t)-2?a:E),(r=>{if(n>u(t)-2)return s?.(r)&&W(e,t[n]),r;const o=U(r,t,a,s,n+1);return D(r)&&W(e,t[n]),o})),V=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),F=n.crypto?e=>n.crypto.getRandomValues(e):e=>S(e,(()=>i(256*o.random()))),J=(e=16)=>{return t=(e,t)=>e+V[63&t],F(new Uint8Array(e)).reduce(t,"");var t},$=(e,t)=>t?[e,t]:[e],j=(e,t)=>((e??"")>(t??"")?e:t)??"",q=(e="")=>$(((e=[])=>C.fromEntries(e))(),e),B=/^\d+$/,G=e=>new Set(g(e)||c(e)?e:[e]),K=E(),Q=E(),X=(e,a,s,n,r,o,i,d={},S=0,C=[])=>{let b,f,M,m=0,k=0,T=0;z(K,C,(()=>0)),z(Q,C,(()=>[]));const x=E(),[P,I,H,V,F]=((e=1,t,a)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!a),([[e],[t]])=>!L(e)||!L(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!L(e)||!L(t),t.setContent]:h("Store type not supported by this Persister"))(i,e,S),[J,$,j]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?v(e):null)??t+a++,t=>{B.test(t)&&u(e)<1e3&&p(e,t)}]})(),n=E();return[(s,r,o,i=[],c=()=>[])=>{e??=ae;const l=a(1);var g,d;return W(n,l,[s,r,o,i,c]),g=U(r,o??[t],G),d=l,g?.add(d),l},(a,s,...r)=>w(((e,a=[t])=>{const s=[],n=(e,t)=>t==u(a)?p(s,e):null===a[t]?O(e,(e=>n(e,t+1))):w([a[t],null],(a=>n(N(e,a),t+1)));return n(e,0),s})(a,s),(t=>O(t,(t=>N(n,t)[0](e,...s??[],...r))))),e=>l(N(n,e),(([,a,r])=>(U(a,r??[t],void 0,(t=>(R(t,e),D(t)?1:0))),W(n,e),s(e),r))),t=>l(N(n,t),(([t,,a=[],s,n])=>{const r=(...o)=>{const i=u(o);i==u(a)?t(e,...o,...n(o)):c(a[i])?w(s[i]?.(...o)??[],(e=>r(...o,e))):r(...o,a[i])};r()}))]})(),q=e=>{e!=m&&(m=e,$(x,void 0,m))},X=t=>{(P&&g(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Y=async e=>(2!=m&&(q(1),k++,await te((async()=>{await y((async()=>{const t=await a();g(t)?X(t):e?F(e):h("Content is not an array: "+t)}),(()=>{e&&F(e)})),q(0)}))),ae),Z=async()=>(f&&(await y((()=>r(f)),o),f=void 0),ae),_=async e=>(1!=m&&(q(2),T++,await te((async()=>{await y((()=>s(I,e)),o),q(0)}))),ae),ee=async()=>(M&&(e.delListener(M),M=void 0),ae),te=async(...e)=>(p(N(Q,C),...e),await(async()=>{if(!N(K,C)){for(W(K,C,1);!c(b=v(N(Q,C)));)await y(b,o);W(K,C,0)}})(),ae),ae={load:Y,startAutoLoad:async e=>(Z(),await Y(e),await y((async()=>f=await n((async(e,t)=>{t||e?2!=m&&(q(1),k++,X(t??e),q(0)):await Y()}))),o),ae),stopAutoLoad:Z,isAutoLoading:()=>!c(f),save:_,startAutoSave:async()=>(ee(),await _(),M=e.addDidFinishTransactionListener((()=>{const e=H();V(e)&&_(e)})),ae),stopAutoSave:ee,isAutoSaving:()=>!c(M),getStatus:()=>m,addStatusListener:e=>J(e,x),delListener:t=>(j(t),e),schedule:te,getStore:()=>e,destroy:async()=>(N(Q,C).splice(0,void 0),await ae.stopAutoLoad(),await ae.stopAutoSave()),getStats:()=>({loads:k,saves:T}),...d};return A(ae)},Y=/\/([^?]*)/,Z="S",_=e=>{return(a=new URL(e.url).pathname,s=Y,a?.match(s))?.[1]??t;var a,s},ee=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,te=(e,t=null,a=null)=>new Response(a,{status:e,webSocket:t}),ae=()=>te(426,null,"Upgrade required");class se extends e{#e;constructor(e,a){super(e,a),this.ctx.blockConcurrencyWhile((async()=>await l(await this.createPersister(),(async e=>{const a=((e,a,n,o,i,g,d,u,h={})=>{let w,S=0,p=0,v=0;const C=E(),b=()=>J(11),f=(e,t,s,n)=>{p++,a(e,t,s,n)},M=async(e,t,a,n)=>new s(((s,o)=>{const c=n+"."+J(4),l=r((()=>{R(C,c),o(`No response from ${e??"anyone"} to ${c}, `+t)}),i);W(C,c,[e,(e,t)=>{clearTimeout(l),R(C,c),s([e,t,n])}]),f(e,c,t,a)})),A=(e,[t,a])=>{m(t,(([t,a],s)=>{const n=k(e[0],s,q);m(t,(([e,t],a)=>{const s=k(n[0],a,q);m(e,(([e,t],a)=>s[0][a]=$(e,t))),s[1]=j(s[1],t)})),n[1]=j(n[1],a)})),e[1]=j(e[1],a)},T=(a=null,s,n=b())=>y((async()=>{c(s)&&([s,a,n]=await M(null,1,t,n));const[r,o]=s,[i,l]=e.getMergeableContentHashes();let g=q();if(i!=r){const[t,s]=(await M(a,4,e.getMergeableTableHashes(),n))[0];if(g=t,!L(s)){const[t,r]=(await M(a,5,e.getMergeableRowHashes(s),n))[0];if(A(g,t),!L(r)){const t=(await M(a,6,e.getMergeableCellHashes(r),n))[0];A(g,t)}}}return[g,l==o?q():(await M(a,7,e.getMergeableValueHashes(),n))[0],1]}),u),x=X(e,(async()=>{const e=await T();return!e||L(e[0][0])&&L(e[1][0])?void 0:e}),(async(t,a)=>a?f(null,b(),3,a):f(null,b(),2,e.getMergeableContentHashes())),(e=>w=e),(()=>w=void 0),u,2,{startSync:async e=>(S=1,await(await x.startAutoLoad(e)).startAutoSave()),stopSync:async()=>(S=0,await x.stopAutoLoad(),await x.stopAutoSave(),x),destroy:async()=>(await x.stopSync(),x),getSynchronizerStats:()=>({sends:p,receives:v}),...h},1);return n(((t,a,s,n)=>{const r=S||x.isAutoLoading();v++,0==s?l(N(C,a),(([e,a])=>c(e)||e==t?a(n,t):0)):2==s&&r?T(t,n,a??void 0).then((e=>{w?.(void 0,e)})).catch(u):3==s&&r?w?.(void 0,n):l(1==s&&(S||x.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,(e=>{f(t,a,0,e)}))})),x})(e.getStore(),((e,t,a,s)=>this.#t(Z,I(e,t,a,s))),(e=>this.#e=t=>((e,t)=>P(e,((e,a)=>{return t(e,...(s=a,x(s,((e,t)=>""===t?void 0:t))));var s})))(t,e)),0,1);await e.load(),await e.startAutoSave(),r(a.startSync)}))))}fetch(e){const a=_(e);return l(ee(e),(e=>{const[s,n]=(r=new WebSocketPair,C.values(r));var r,o;return o=this.#a(),0==u(o)&&this.onPathId(a,1),this.ctx.acceptWebSocket(n,[e,a]),this.onClientId(a,e,1),n.send(I(Z,null,1,t)),te(101,s)}),ae)}webSocketMessage(e,t){l(this.ctx.getTags(e)[0],(a=>this.#t(a,t.toString(),e)))}webSocketClose(e){const[t,a]=this.ctx.getTags(e);this.onClientId(a,t,-1),1==u(this.#a())&&this.onPathId(a,-1)}#t(e,a,s){P(a.toString(),((a,n)=>{const r=H(e,n);this.onMessage(e,a,n),a==t?(e!=Z&&this.#e?.(r),w(this.#a(),(e=>{e!=s&&e.send(r)}))):a==Z?this.#e?.(r):a!=e&&this.#a(a)[0]?.send(r)}))}#a(e){return this.ctx.getWebSockets(e)}createPersister(){}getPathId(){return this.ctx.getTags(this.#a()[0])?.[1]}getClientIds(){return S(this.#a(),(e=>this.ctx.getTags(e)[0]))}onPathId(e,t){}onClientId(e,t,a){}onMessage(e,t,a){}}const ne=e=>(t,a)=>ee(t)?a[e].get(a[e].idFromName(_(t))).fetch(t):ae();export{se as WsServerDurableObject,ne as getWsServerDurableObjectFetch};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DurableObject as e}from"cloudflare:workers";const t="",
|
|
1
|
+
import{DurableObject as e}from"cloudflare:workers";const t="",a=(e,t="",a)=>e.split(t,a),s=Promise,n=globalThis,r=(e,t=0)=>setTimeout(e,1e3*t),o=Math,i=o.floor,c=e=>null==e,l=(e,t,a)=>c(e)?a?.():t(e),g=e=>Array.isArray(e),d=(e,t,a)=>e.slice(t,a),u=e=>e.length,h=e=>{throw Error(e)},y=async(e,t,a)=>{try{return await e()}catch(e){t?.(e)}},w=(e,t)=>e.forEach(t),S=(e,t)=>e.map(t),p=(e,...t)=>e.push(...t),v=e=>e.shift(),C=Object,b=e=>C.getPrototypeOf(e),f=C.entries,M=C.keys,A=C.freeze,m=(e,t)=>w(f(e),(([e,a])=>t(a,e))),L=e=>(e=>!c(e)&&l(b(e),(e=>e==C.prototype||c(b(e))),(()=>!0)))(e)&&0==(e=>u(M(e)))(e),k=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),T=JSON.stringify,x=JSON.parse,P=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(d(e,0,a),d(e,a+1))},I=(e,...a)=>H(e??t,T(a,((e,t)=>void 0===t?"":t))),H=(e,t)=>e+"\n"+t,D=e=>c(e)||0==(e=>e?.size??0)(e),O=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),E=e=>new Map(e),N=(e,t)=>e?.get(t),W=(e,t,a)=>c(a)?(R(e,t),e):e?.set(t,a),z=(e,t,a,s)=>{var n,r;return n=e,r=t,n?.has(r)?s?.(N(e,t)):W(e,t,a()),N(e,t)},U=(e,t,a,s,n=0)=>l((a?z:N)(e,t[n],n>u(t)-2?a:E),(r=>{if(n>u(t)-2)return s?.(r)&&W(e,t[n]),r;const o=U(r,t,a,s,n+1);return D(r)&&W(e,t[n]),o})),V=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),F=n.crypto?e=>n.crypto.getRandomValues(e):e=>S(e,(()=>i(256*o.random()))),J=(e=16)=>{return t=(e,t)=>e+V[63&t],F(new Uint8Array(e)).reduce(t,"");var t},$=(e,t)=>t?[e,t]:[e],j=(e,t)=>((e??"")>(t??"")?e:t)??"",q=(e="")=>$(((e=[])=>C.fromEntries(e))(),e),B=/^\d+$/,G=e=>new Set(g(e)||c(e)?e:[e]),K=E(),Q=E(),X=(e,a,s,n,r,o,i,d={},S=0,C=[])=>{let b,f,M,m=0,k=0,T=0;z(K,C,(()=>0)),z(Q,C,(()=>[]));const x=E(),[P,I,H,V,F]=((e=1,t,a)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!a),([[e],[t]])=>!L(e)||!L(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!L(e)||!L(t),t.setContent]:h("Store type not supported by this Persister"))(i,e,S),[J,$,j]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?v(e):null)??t+a++,t=>{B.test(t)&&u(e)<1e3&&p(e,t)}]})(),n=E();return[(s,r,o,i=[],c=()=>[])=>{e??=ae;const l=a(1);var g,d;return W(n,l,[s,r,o,i,c]),g=U(r,o??[t],G),d=l,g?.add(d),l},(a,s,...r)=>w(((e,a=[t])=>{const s=[],n=(e,t)=>t==u(a)?p(s,e):null===a[t]?O(e,(e=>n(e,t+1))):w([a[t],null],(a=>n(N(e,a),t+1)));return n(e,0),s})(a,s),(t=>O(t,(t=>N(n,t)[0](e,...s??[],...r))))),e=>l(N(n,e),(([,a,r])=>(U(a,r??[t],void 0,(t=>(R(t,e),D(t)?1:0))),W(n,e),s(e),r))),t=>l(N(n,t),(([t,,a=[],s,n])=>{const r=(...o)=>{const i=u(o);i==u(a)?t(e,...o,...n(o)):c(a[i])?w(s[i]?.(...o)??[],(e=>r(...o,e))):r(...o,a[i])};r()}))]})(),q=e=>{e!=m&&(m=e,$(x,void 0,m))},X=t=>{(P&&g(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Y=async e=>(2!=m&&(q(1),k++,await te((async()=>{await y((async()=>{const t=await a();g(t)?X(t):e?F(e):h("Content is not an array: "+t)}),(()=>{e&&F(e)})),q(0)}))),ae),Z=async()=>(f&&(await y((()=>r(f)),o),f=void 0),ae),_=async e=>(1!=m&&(q(2),T++,await te((async()=>{await y((()=>s(I,e)),o),q(0)}))),ae),ee=async()=>(M&&(e.delListener(M),M=void 0),ae),te=async(...e)=>(p(N(Q,C),...e),await(async()=>{if(!N(K,C)){for(W(K,C,1);!c(b=v(N(Q,C)));)await y(b,o);W(K,C,0)}})(),ae),ae={load:Y,startAutoLoad:async e=>(Z(),await Y(e),await y((async()=>f=await n((async(e,t)=>{t||e?2!=m&&(q(1),k++,X(t??e),q(0)):await Y()}))),o),ae),stopAutoLoad:Z,isAutoLoading:()=>!c(f),save:_,startAutoSave:async()=>(ee(),await _(),M=e.addDidFinishTransactionListener((()=>{const e=H();V(e)&&_(e)})),ae),stopAutoSave:ee,isAutoSaving:()=>!c(M),getStatus:()=>m,addStatusListener:e=>J(e,x),delListener:t=>(j(t),e),schedule:te,getStore:()=>e,destroy:async()=>(N(Q,C).splice(0,void 0),await ae.stopAutoLoad(),await ae.stopAutoSave()),getStats:()=>({loads:k,saves:T}),...d};return A(ae)},Y=/\/([^?]*)/,Z="S",_=e=>{return(a=new URL(e.url).pathname,s=Y,a?.match(s))?.[1]??t;var a,s},ee=e=>"websocket"==e.headers.get("upgrade")?.toLowerCase()?e.headers.get("sec-websocket-key"):null,te=(e,t=null,a=null)=>new Response(a,{status:e,webSocket:t}),ae=()=>te(426,null,"Upgrade required");class se extends e{#e;constructor(e,a){super(e,a),this.ctx.blockConcurrencyWhile((async()=>await l(await this.createPersister(),(async e=>{const a=((e,a,n,o,i,g,d,u,h={})=>{let w,S=0,p=0,v=0;const C=E(),b=()=>J(11),f=(e,t,s,n)=>{p++,a(e,t,s,n)},M=async(e,t,a,n)=>new s(((s,o)=>{const c=n+"."+J(4),l=r((()=>{R(C,c),o(`No response from ${e??"anyone"} to ${c}, `+t)}),i);W(C,c,[e,(e,t)=>{clearTimeout(l),R(C,c),s([e,t,n])}]),f(e,c,t,a)})),A=(e,[t,a])=>{m(t,(([t,a],s)=>{const n=k(e[0],s,q);m(t,(([e,t],a)=>{const s=k(n[0],a,q);m(e,(([e,t],a)=>s[0][a]=$(e,t))),s[1]=j(s[1],t)})),n[1]=j(n[1],a)})),e[1]=j(e[1],a)},T=(a=null,s,n=b())=>y((async()=>{c(s)&&([s,a,n]=await M(null,1,t,n));const[r,o]=s,[i,l]=e.getMergeableContentHashes();let g=q();if(i!=r){const[t,s]=(await M(a,4,e.getMergeableTableHashes(),n))[0];if(g=t,!L(s)){const[t,r]=(await M(a,5,e.getMergeableRowHashes(s),n))[0];if(A(g,t),!L(r)){const t=(await M(a,6,e.getMergeableCellHashes(r),n))[0];A(g,t)}}}return[g,l==o?q():(await M(a,7,e.getMergeableValueHashes(),n))[0],1]}),u),x=X(e,(async()=>{const e=await T();return!e||L(e[0][0])&&L(e[1][0])?void 0:e}),(async(t,a)=>a?f(null,b(),3,a):f(null,b(),2,e.getMergeableContentHashes())),(e=>w=e),(()=>w=void 0),u,2,{startSync:async e=>(S=1,await(await x.startAutoLoad(e)).startAutoSave()),stopSync:async()=>(S=0,await x.stopAutoLoad(),await x.stopAutoSave(),x),destroy:async()=>(await x.stopSync(),x),getSynchronizerStats:()=>({sends:p,receives:v}),...h},1);return n(((t,a,s,n)=>{const r=S||x.isAutoLoading();v++,0==s?l(N(C,a),(([e,a])=>c(e)||e==t?a(n,t):0)):2==s&&r?T(t,n,a??void 0).then((e=>{w?.(void 0,e)})).catch(u):3==s&&r?w?.(void 0,n):l(1==s&&(S||x.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,(e=>{f(t,a,0,e)}))})),x})(e.getStore(),((e,t,a,s)=>this.#t(Z,I(e,t,a,s))),(e=>this.#e=t=>((e,t)=>P(e,((e,a)=>{return t(e,...(s=a,x(s,((e,t)=>""===t?void 0:t))));var s})))(t,e)),0,1);await e.load(),await e.startAutoSave(),r(a.startSync)}))))}fetch(e){const a=_(e);return l(ee(e),(e=>{const[s,n]=(r=new WebSocketPair,C.values(r));var r,o;return o=this.#a(),0==u(o)&&this.onPathId(a,1),this.ctx.acceptWebSocket(n,[e,a]),this.onClientId(a,e,1),n.send(I(Z,null,1,t)),te(101,s)}),ae)}webSocketMessage(e,t){l(this.ctx.getTags(e)[0],(a=>this.#t(a,t.toString(),e)))}webSocketClose(e){const[t,a]=this.ctx.getTags(e);this.onClientId(a,t,-1),1==u(this.#a())&&this.onPathId(a,-1)}#t(e,a,s){P(a.toString(),((a,n)=>{const r=H(e,n);this.onMessage(e,a,n),a==t?(e!=Z&&this.#e?.(r),w(this.#a(),(e=>{e!=s&&e.send(r)}))):a==Z?this.#e?.(r):a!=e&&this.#a(a)[0]?.send(r)}))}#a(e){return this.ctx.getWebSockets(e)}createPersister(){}getPathId(){return this.ctx.getTags(this.#a()[0])?.[1]}getClientIds(){return S(this.#a(),(e=>this.ctx.getTags(e)[0]))}onPathId(e,t){}onClientId(e,t,a){}onMessage(e,t,a){}}const ne=e=>(t,a)=>ee(t)?a[e].get(a[e].idFromName(_(t))).fetch(t):ae();export{se as WsServerDurableObject,ne as getWsServerDurableObjectFetch};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>null==e,n=(n,t,s)=>e(n)?s?.():t(n),t=(e,n,t)=>e.slice(n,t),s=(e,n)=>e?.delete(n),
|
|
1
|
+
const e=e=>null==e,n=(n,t,s)=>e(n)?s?.():t(n),t=(e,n,t)=>e.slice(n,t),s=(e,n)=>e?.delete(n),c=Object.freeze,r=e=>new Map(e),o=(e,n)=>e?.get(n),a=(n,t,c)=>e(c)?(s(n,t),n):n?.set(t,c),l=/\/([^?]*)/,d=d=>{const u=r();return d.on("connection",((c,d)=>{return n((i=d.url,f=l,i?.match(f)),(([,l])=>n(d.headers["sec-websocket-key"],(async n=>{const d=(g=r,h=i=u,v=f=l,h?.has(v)||a(i,f,g()),o(i,f));var i,f,g,h,v;a(d,n,c),c.on("message",(e=>(e=>{const s=e.indexOf("\n");-1!==s&&((e,t)=>{const s=((e,n)=>e+"\n"+n)(n,t);""===e?(e=>{((e,n)=>{e?.forEach(n)})(e,((e,t)=>{return c=e,t!==n?c.send(s):0;var c}))})(d):o(d,e)?.send(s)})(t(e,0,s),t(e,s+1))})(e.toString("utf8")))),c.on("close",(()=>{s(d,n),(n=>e(n)||0==(e=>e?.size??0)(n))(d)&&s(u,l)}))}))));var i,f})),c({getWebSocketServer:()=>d,destroy:async()=>{u.clear(),d.close()}})};export{d as createWsServerSimple};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>null==e,n=(n,t,s)=>e(n)?s?.():t(n),t=(e,n,t)=>e.slice(n,t),s=(e,n)=>e?.delete(n),
|
|
1
|
+
const e=e=>null==e,n=(n,t,s)=>e(n)?s?.():t(n),t=(e,n,t)=>e.slice(n,t),s=(e,n)=>e?.delete(n),c=Object.freeze,r=e=>new Map(e),o=(e,n)=>e?.get(n),a=(n,t,c)=>e(c)?(s(n,t),n):n?.set(t,c),l=/\/([^?]*)/,d=d=>{const u=r();return d.on("connection",((c,d)=>{return n((i=d.url,f=l,i?.match(f)),(([,l])=>n(d.headers["sec-websocket-key"],(async n=>{const d=(g=r,h=i=u,v=f=l,h?.has(v)||a(i,f,g()),o(i,f));var i,f,g,h,v;a(d,n,c),c.on("message",(e=>(e=>{const s=e.indexOf("\n");-1!==s&&((e,t)=>{const s=((e,n)=>e+"\n"+n)(n,t);""===e?(e=>{((e,n)=>{e?.forEach(n)})(e,((e,t)=>{return c=e,t!==n?c.send(s):0;var c}))})(d):o(d,e)?.send(s)})(t(e,0,s),t(e,s+1))})(e.toString("utf8")))),c.on("close",(()=>{s(d,n),(n=>e(n)||0==(e=>e?.size??0)(n))(d)&&s(u,l)}))}))));var i,f})),c({getWebSocketServer:()=>d,destroy:async()=>{u.clear(),d.close()}})};export{d as createWsServerSimple};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=(t,e="",a)=>t.split(e,a),e=Promise,a=globalThis,n=Math,s=n.floor,o=t=>null==t,r=(t,e,a)=>o(t)?a?.():e(t),i=t=>Array.isArray(t),l=t=>t.length,c=t=>{throw Error(t)},g=(t,e)=>t.forEach(e),
|
|
1
|
+
const t=(t,e="",a)=>t.split(e,a),e=Promise,a=globalThis,n=Math,s=n.floor,o=t=>null==t,r=(t,e,a)=>o(t)?a?.():e(t),i=t=>Array.isArray(t),l=t=>t.length,c=t=>{throw Error(t)},g=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},u=(t,e)=>t.forEach(e),y=(t,...e)=>t.push(...e),d=t=>t.shift(),w=t=>o(t)||0==(t=>t?.size??0)(t),f=(t,e)=>t?.forEach(e),h=(t,e)=>t?.delete(e),p=Object,v=t=>p.getPrototypeOf(t),b=p.entries,C=p.keys,M=p.freeze,S=(t,e)=>u(b(t),(([t,a])=>e(a,t))),A=t=>(t=>!o(t)&&r(v(t),(t=>t==p.prototype||o(v(t))),(()=>!0)))(t)&&0==(t=>l(C(t)))(t),D=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),L=t=>new Map(t),H=(t,e)=>t?.get(e),T=(t,e,a)=>o(a)?(h(t,e),t):t?.set(e,a),m=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(H(t,e)):T(t,e,a()),H(t,e)},G=(t,e,a,n,s=0)=>r((a?m:H)(t,e[s],s>l(e)-2?a:L),(o=>{if(s>l(e)-2)return n?.(o)&&T(t,e[s]),o;const r=G(o,e,a,n,s+1);return w(o)&&T(t,e[s]),r})),R=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),E=a.crypto?t=>a.crypto.getRandomValues(t):t=>(t=>t.map((()=>s(256*n.random()))))(t),V=(t=16)=>{return e=(t,e)=>t+R[63&e],E(new Uint8Array(t)).reduce(e,"");var e},z=(t,e)=>e?[t,e]:[t],P=(t,e)=>((t??"")>(e??"")?t:e)??"",O=(t="")=>z(((t=[])=>p.fromEntries(t))(),t),$=/^\d+$/,j=t=>new Set(i(t)||o(t)?t:[t]),k=L(),x=L(),F=(t,e,a,n,s,p,v,b={},C=0,S=[])=>{let D,R,E,V=0,z=0,P=0;m(k,S,(()=>0)),m(x,S,(()=>[]));const O=L(),[F,N,U,q,B]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!A(t)||!A(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!A(t)||!A(e),e.setContent]:c("Store type not supported by this Persister"))(v,t,C),[I,J,K]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?d(t):null)??""+e++,e=>{$.test(e)&&l(t)<1e3&&y(t,e)}]})(),n=L();return[(a,s,o,r=[],i=()=>[])=>{t??=et;const l=e(1);var c,g;return T(n,l,[a,s,o,r,i]),c=G(s,o??[""],j),g=l,c?.add(g),l},(e,a,...s)=>u(((t,e=[""])=>{const a=[],n=(t,s)=>s==l(e)?y(a,t):null===e[s]?f(t,(t=>n(t,s+1))):u([e[s],null],(e=>n(H(t,e),s+1)));return n(t,0),a})(e,a),(e=>f(e,(e=>H(n,e)[0](t,...a??[],...s))))),t=>r(H(n,t),(([,e,s])=>(G(e,s??[""],void 0,(e=>(h(e,t),w(e)?1:0))),T(n,t),a(t),s))),e=>r(H(n,e),(([e,,a=[],n,s])=>{const r=(...i)=>{const c=l(i);c==l(a)?e(t,...i,...s(i)):o(a[c])?u(n[c]?.(...i)??[],(t=>r(...i,t))):r(...i,a[c])};r()}))]})(),Q=t=>{t!=V&&(V=t,J(O,void 0,V))},W=e=>{(F&&i(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},X=async t=>(2!=V&&(Q(1),z++,await tt((async()=>{await g((async()=>{const a=await e();i(a)?W(a):t?B(t):c("Content is not an array: "+a)}),(()=>{t&&B(t)})),Q(0)}))),et),Y=async()=>(R&&(await g((()=>s(R)),p),R=void 0),et),Z=async t=>(1!=V&&(Q(2),P++,await tt((async()=>{await g((()=>a(N,t)),p),Q(0)}))),et),_=async()=>(E&&(t.delListener(E),E=void 0),et),tt=async(...t)=>(y(H(x,S),...t),await(async()=>{if(!H(k,S)){for(T(k,S,1);!o(D=d(H(x,S)));)await g(D,p);T(k,S,0)}})(),et),et={load:X,startAutoLoad:async t=>(Y(),await X(t),await g((async()=>R=await n((async(t,e)=>{e||t?2!=V&&(Q(1),z++,W(e??t),Q(0)):await X()}))),p),et),stopAutoLoad:Y,isAutoLoading:()=>!o(R),save:Z,startAutoSave:async()=>(_(),await Z(),E=t.addDidFinishTransactionListener((()=>{const t=U();q(t)&&Z(t)})),et),stopAutoSave:_,isAutoSaving:()=>!o(E),getStatus:()=>V,addStatusListener:t=>I(t,O),delListener:e=>(K(e),t),schedule:tt,getStore:()=>t,destroy:async()=>(H(x,S).splice(0,void 0),await et.stopAutoLoad(),await et.stopAutoSave()),getStats:()=>({loads:z,saves:P}),...b};return M(et)},N={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},U=(t,a,n,s,i,l,c,u,y={})=>{let d,w=0,f=0,p=0;const v=L(),b=()=>V(11),C=(t,e,n,s)=>{f++,l?.(t,e,n,s),a(t,e,n,s)},M=async(t,a,n,s)=>new e(((e,o)=>{const r=s+"."+V(4),l=((t,e=0)=>setTimeout(t,1e3*e))((()=>{h(v,r),o(`No response from ${t??"anyone"} to ${r}, `+a)}),i);T(v,r,[t,(t,a)=>{clearTimeout(l),h(v,r),e([t,a,s])}]),C(t,r,a,n)})),m=(t,[e,a])=>{S(e,(([e,a],n)=>{const s=D(t[0],n,O);S(e,(([t,e],a)=>{const n=D(s[0],a,O);S(t,(([t,e],a)=>n[0][a]=z(t,e))),n[1]=P(n[1],e)})),s[1]=P(s[1],a)})),t[1]=P(t[1],a)},G=(e=null,a,n=b())=>g((async()=>{o(a)&&([a,e,n]=await M(null,1,"",n));const[s,r]=a,[i,l]=t.getMergeableContentHashes();let c=O();if(i!=s){const[a,s]=(await M(e,4,t.getMergeableTableHashes(),n))[0];if(c=a,!A(s)){const[a,o]=(await M(e,5,t.getMergeableRowHashes(s),n))[0];if(m(c,a),!A(o)){const a=(await M(e,6,t.getMergeableCellHashes(o),n))[0];m(c,a)}}}return[c,l==r?O():(await M(e,7,t.getMergeableValueHashes(),n))[0],1]}),u),R=F(t,(async()=>{const t=await G();return!t||A(t[0][0])&&A(t[1][0])?void 0:t}),(async(e,a)=>a?C(null,b(),3,a):C(null,b(),2,t.getMergeableContentHashes())),(t=>d=t),(()=>d=void 0),u,2,{startSync:async t=>(w=1,await(await R.startAutoLoad(t)).startAutoSave()),stopSync:async()=>(w=0,await R.stopAutoLoad(),await R.stopAutoSave(),R),destroy:async()=>(await R.stopSync(),s(),R),getSynchronizerStats:()=>({sends:f,receives:p}),...y},1);return n(((e,a,n,s)=>{const i=w||R.isAutoLoading();p++,c?.(e,a,n,s),0==n?r(H(v,a),(([t,a])=>o(t)||t==e?a(s,e):0)):2==n&&i?G(e,s,a??void 0).then((t=>{d?.(void 0,t)})).catch(u):3==n&&i?d?.(void 0,s):r(1==n&&(w||R.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,(t=>{C(e,a,0,t)}))})),R};export{N as Message,U as createCustomSynchronizer};
|
|
Binary file
|