tinybase 5.2.0-beta.1 → 5.2.0-beta.2
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/synchronizers/synchronizer-ws-server/index.d.cts +4 -1
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +4 -1
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +6 -1
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +6 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +35 -29
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +35 -29
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
- package/cjs/synchronizers/synchronizer-ws-server/index.cjs +30 -27
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +30 -27
- package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/es6/synchronizers/synchronizer-ws-server/index.js +35 -29
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +35 -29
- 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/package.json +3 -3
- package/readme.md +3 -3
- package/releases.md +4 -4
- package/synchronizers/synchronizer-ws-server/index.js +30 -27
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +30 -27
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/es6/synchronizers/synchronizer-ws-server/index.js +35 -33
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +35 -33
- package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/umd/synchronizers/synchronizer-ws-server/index.js +32 -27
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +32 -27
|
@@ -503,7 +503,8 @@ export interface WsServer {
|
|
|
503
503
|
* If you want your server to persist data itself, you can use the optional
|
|
504
504
|
* second parameter of this function, which allows you to create a Persister for
|
|
505
505
|
* a new path - whenever a new path is accessed by a client. This Persister will
|
|
506
|
-
* only exist when there are active clients on that particular path.
|
|
506
|
+
* only exist when there are active clients on that particular path. The
|
|
507
|
+
* creation callback can be asynchronous.
|
|
507
508
|
*
|
|
508
509
|
* You are responsible for creating a MergeableStore to pass to this Persister,
|
|
509
510
|
* but starting and stopping its automatic saving and loading is taken care of
|
|
@@ -723,5 +724,7 @@ export function createWsServer<
|
|
|
723
724
|
) =>
|
|
724
725
|
| PathPersister
|
|
725
726
|
| [PathPersister, (store: MergeableStore) => void]
|
|
727
|
+
| Promise<PathPersister>
|
|
728
|
+
| Promise<[PathPersister, (store: MergeableStore) => void]>
|
|
726
729
|
| undefined,
|
|
727
730
|
): WsServer;
|
|
@@ -503,7 +503,8 @@ export interface WsServer {
|
|
|
503
503
|
* If you want your server to persist data itself, you can use the optional
|
|
504
504
|
* second parameter of this function, which allows you to create a Persister for
|
|
505
505
|
* a new path - whenever a new path is accessed by a client. This Persister will
|
|
506
|
-
* only exist when there are active clients on that particular path.
|
|
506
|
+
* only exist when there are active clients on that particular path. The
|
|
507
|
+
* creation callback can be asynchronous.
|
|
507
508
|
*
|
|
508
509
|
* You are responsible for creating a MergeableStore to pass to this Persister,
|
|
509
510
|
* but starting and stopping its automatic saving and loading is taken care of
|
|
@@ -723,5 +724,7 @@ export function createWsServer<
|
|
|
723
724
|
) =>
|
|
724
725
|
| PathPersister
|
|
725
726
|
| [PathPersister, (store: MergeableStore) => void]
|
|
727
|
+
| Promise<PathPersister>
|
|
728
|
+
| Promise<[PathPersister, (store: MergeableStore) => void]>
|
|
726
729
|
| undefined,
|
|
727
730
|
): WsServer;
|
|
@@ -517,6 +517,8 @@ export interface WsServer {
|
|
|
517
517
|
* ) =>
|
|
518
518
|
* | PathPersister
|
|
519
519
|
* | [PathPersister, (store: MergeableStore) => void]
|
|
520
|
+
* | Promise<PathPersister>
|
|
521
|
+
* | Promise<[PathPersister, (store: MergeableStore) => void]>
|
|
520
522
|
* | undefined,
|
|
521
523
|
* ): WsServer;
|
|
522
524
|
* ```
|
|
@@ -527,7 +529,8 @@ export interface WsServer {
|
|
|
527
529
|
* If you want your server to persist data itself, you can use the optional
|
|
528
530
|
* second parameter of this function, which allows you to create a Persister for
|
|
529
531
|
* a new path - whenever a new path is accessed by a client. This Persister will
|
|
530
|
-
* only exist when there are active clients on that particular path.
|
|
532
|
+
* only exist when there are active clients on that particular path. The
|
|
533
|
+
* creation callback can be asynchronous.
|
|
531
534
|
*
|
|
532
535
|
* You are responsible for creating a MergeableStore to pass to this Persister,
|
|
533
536
|
* but starting and stopping its automatic saving and loading is taken care of
|
|
@@ -749,5 +752,7 @@ export function createWsServer<
|
|
|
749
752
|
) =>
|
|
750
753
|
| PathPersister
|
|
751
754
|
| [PathPersister, (store: MergeableStore<Schemas>) => void]
|
|
755
|
+
| Promise<PathPersister>
|
|
756
|
+
| Promise<[PathPersister, (store: MergeableStore<Schemas>) => void]>
|
|
752
757
|
| undefined,
|
|
753
758
|
): WsServer;
|
|
@@ -517,6 +517,8 @@ export interface WsServer {
|
|
|
517
517
|
* ) =>
|
|
518
518
|
* | PathPersister
|
|
519
519
|
* | [PathPersister, (store: MergeableStore) => void]
|
|
520
|
+
* | Promise<PathPersister>
|
|
521
|
+
* | Promise<[PathPersister, (store: MergeableStore) => void]>
|
|
520
522
|
* | undefined,
|
|
521
523
|
* ): WsServer;
|
|
522
524
|
* ```
|
|
@@ -527,7 +529,8 @@ export interface WsServer {
|
|
|
527
529
|
* If you want your server to persist data itself, you can use the optional
|
|
528
530
|
* second parameter of this function, which allows you to create a Persister for
|
|
529
531
|
* a new path - whenever a new path is accessed by a client. This Persister will
|
|
530
|
-
* only exist when there are active clients on that particular path.
|
|
532
|
+
* only exist when there are active clients on that particular path. The
|
|
533
|
+
* creation callback can be asynchronous.
|
|
531
534
|
*
|
|
532
535
|
* You are responsible for creating a MergeableStore to pass to this Persister,
|
|
533
536
|
* but starting and stopping its automatic saving and loading is taken care of
|
|
@@ -749,5 +752,7 @@ export function createWsServer<
|
|
|
749
752
|
) =>
|
|
750
753
|
| PathPersister
|
|
751
754
|
| [PathPersister, (store: MergeableStore<Schemas>) => void]
|
|
755
|
+
| Promise<PathPersister>
|
|
756
|
+
| Promise<[PathPersister, (store: MergeableStore<Schemas>) => void]>
|
|
752
757
|
| undefined,
|
|
753
758
|
): WsServer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e="",t=Promise,n=globalThis,l=Math,o=l.floor,r=e=>null==e,a=(e,t,n)=>r(e)?null==n?void 0:n():t(e),s=e=>Array.isArray(e),i=(e,t,n)=>e.slice(t,n),u=e=>e.length,c=e=>{throw Error(e)},d=(e,t)=>e.forEach(t),v=(e,t)=>e.map(t),y=(e,t,n)=>e.reduce(t,n),g=(e,...t)=>e.push(...t),f=e=>e.shift(),p=Object,h=e=>p.getPrototypeOf(e),b=p.entries,S=p.keys,m=p.freeze,w=(e,t)=>d(b(e),(([e,n])=>t(n,e))),A=e=>(e=>!r(e)&&a(h(e),(e=>e==p.prototype||r(h(e))),(()=>!0)))(e)&&0==(e=>u(S(e)))(e),C=(e,t,n)=>(((e,t)=>t in e)(e,t)||(e[t]=n()),e[t]),M=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},O=(P=M,e=>y(j(e),((e,t)=>e+P(t)),0));var P;const L=e=>r(e)||0==M(e),j=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},x=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},D=(e,t)=>null==e?void 0:e.get(t),I=(e,t,n)=>r(n)?(T(e,t),e):null==e?void 0:e.set(t,n),k=(e,t,n,l)=>{var o,r,a;return r=t,null!=(a=null==(o=e)?void 0:o.has(r))&&a?null==l||l(D(e,t)):I(e,t,n()),D(e,t)},z=(e,t,n,l,o=0)=>a((n?k:D)(e,t[o],o>u(t)-2?n:E),(r=>{if(o>u(t)-2)return(null==l?void 0:l(r))&&I(e,t[o]),r;const a=z(r,t,n,l,o+1);return L(r)&&I(e,t[o]),a})),N=(e,t)=>{const n=e.indexOf("\n");-1!==n&&t(i(e,0,n),i(e,n+1))},R=(e,t)=>e+"\n"+t;new n.TextEncoder;const V=(e,t)=>t?[e,t]:[e],J=(e,t)=>{var n;return null!=(n=(null!=e?e:"")>(null!=t?t:"")?e:t)?n:""},W=(e="")=>V(((e=[])=>p.fromEntries(e))(),e);var $=Object.defineProperty,F=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,B=(e,t,n)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const K=E(),Q=E(),X="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e);E(v(X,((e,t)=>[e,t])));const Y=n.crypto?e=>n.crypto.getRandomValues(e):e=>v(e,(()=>o(256*l.random())));var Z=Object.defineProperty,_=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,ne=(e,t,n)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,le=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const oe=e=>new Set(s(e)||r(e)?e:[e]),re=/^\d+$/;var ae=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const se=/\/([^?]*)/;exports.createWsServer=(n,l)=>{const o=E(),i=E(),v=E(),p=E(),[h,b,S]=(()=>{let t;const[n,l]=(()=>{const t=[];let n=0;return[l=>{var o;return null!=(o=l?f(t):null)?o:e+n++},e=>{re.test(e)&&u(t)<1e3&&g(t,e)}]})(),o=E();return[(l,r,a,s=[],i=()=>[])=>{null!=t||(t=$);const u=n(1);var c,d;return I(o,u,[l,r,a,s,i]),d=u,null==(c=z(r,null!=a?a:[e],oe))||c.add(d),u},(n,l,...r)=>d(((t,n=[e])=>{const l=[],o=(e,t)=>t==u(n)?g(l,e):null===n[t]?x(e,(e=>o(e,t+1))):d([n[t],null],(n=>o(D(e,n),t+1)));return o(t,0),l})(n,l),(e=>x(e,(e=>D(o,e)[0](t,...null!=l?l:[],...r))))),t=>a(D(o,t),(([,n,r])=>(z(n,null!=r?r:[e],void 0,(e=>(T(e,t),L(e)?1:0))),I(o,t),l(t),r))),e=>a(D(o,e),(([e,,n=[],l,o])=>{const a=(...s)=>{var i,c;const v=u(s);v==u(n)?e(t,...s,...o(s)):r(n[v])?d(null!=(c=null==(i=l[v])?void 0:i.call(l,...s))?c:[],(e=>a(...s,e))):a(...s,n[v])};a()}))]})(),P=e=>{var t,n;null==(t=e[1])||t.destroy(),null==(n=e[2])||n.destroy()},j=(t,n,l)=>o=>N(o,((o,r)=>{var a,s,i;const u=R(t,r);var c;o===e?("S"!==t&&(null==(a=l[3])||a.call(l,u)),c=(e,n)=>e!==t?n.send(u):0,x(n,((e,t)=>c(t,e)))):"S"===o?null==(s=l[3])||s.call(l,u):null==(i=D(n,o))||i.send(u)}));n.on("connection",((n,u)=>{var h;return a(null==(h=u.url)?void 0:h.match(se),(([,h])=>a(u.headers["sec-websocket-key"],(u=>ae(void 0,null,(function*(){const S=k(v,h,E),M=k(p,h,(()=>[0])),O=j(u,S,M);L(S)&&(b(o,void 0,h,1),((n,o,i)=>{a(null==l?void 0:l(o),(l=>{n[0]=1,n[1]=s(l)?l[0]:l;const o=j("S",i,n);n[2]=((e,n,l,o,i,u,d,v,p={})=>{let h,b=0,S=0;const M=E(),O=(e,t,l,o)=>{b++,n(e,t,l,o)},P=(e,n,...l)=>le(void 0,[e,n,...l],(function*(e,n,l=""){return new t(((t,o)=>{const r=((e=16)=>y(Y(new Uint8Array(e)),((e,t)=>e+X[63&t]),""))(),a=setTimeout((()=>{T(M,r),o(`No response from ${null!=e?e:"anyone"} to ${r}, `+n)}),1e3*i);I(M,r,[e,(e,n)=>{clearTimeout(a),T(M,r),t([e,n])}]),O(e,r,n,l)}))})),L=(e,[t,n])=>{w(t,(([t,n],l)=>{const o=C(e[0],l,W);w(t,(([e,t],n)=>{const l=C(o[0],n,W);w(e,(([e,t],n)=>l[0][n]=V(e,t))),l[1]=J(l[1],t)})),o[1]=J(o[1],n)})),e[1]=J(e[1],n)},j=(t=null,n)=>le(void 0,null,(function*(){r(n)&&([n,t]=yield P(t,1));const[l,o]=n,[a,s]=e.getMergeableContentHashes();let i=W();if(a!=l){const[n,l]=(yield P(t,4,e.getMergeableTableHashes()))[0];if(i=n,!A(l)){const[n,o]=(yield P(t,5,e.getMergeableRowHashes(l)))[0];if(L(i,n),!A(o)){const n=(yield P(t,6,e.getMergeableCellHashes(o)))[0];L(i,n)}}}return[i,s==o?W():(yield P(t,7,e.getMergeableValueHashes()))[0],1]})),x=((e,t,n,l,o,i,u,d={},v=[])=>{let y,p,h,b=0,S=0,w=0;k(K,v,(()=>0)),k(Q,v,(()=>[]));const[C,M,O,P,L]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!A(e)||!A(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!A(e)||!A(t),t.setContent]:c("Store type not supported by this Persister"))(u,e),j=t=>{(C&&s(null==t?void 0:t[0])?1===(null==t?void 0:t[2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},x=e=>G(void 0,null,(function*(){return 2!=b&&(b=1,S++,yield z((()=>G(void 0,null,(function*(){try{const e=yield t();s(e)?j(e):c("Content is not an array "+e)}catch(t){e&&L(e)}b=0}))))),N})),T=()=>(p&&(o(p),p=void 0),N),E=e=>G(void 0,null,(function*(){return 1!=b&&(b=2,w++,yield z((()=>G(void 0,null,(function*(){try{yield n(M,e)}catch(e){}b=0}))))),N})),H=()=>(a(h,e.delListener),h=void 0,N),z=(...e)=>G(void 0,null,(function*(){return g(D(Q,v),...e),yield G(void 0,null,(function*(){if(!D(K,v)){for(I(K,v,1);!r(y=f(D(Q,v)));)try{yield y()}catch(e){}I(K,v,0)}})),N})),N=((e,t)=>{for(var n in t||(t={}))U.call(t,n)&&B(e,n,t[n]);if(F)for(var n of F(t))q.call(t,n)&&B(e,n,t[n]);return e})({load:x,startAutoLoad:e=>G(void 0,null,(function*(){yield T().load(e);try{p=yield l(((e,t)=>G(void 0,null,(function*(){t||e?2!=b&&(b=1,S++,j(null!=t?t:e),b=0):yield x()}))))}catch(e){}return N})),stopAutoLoad:T,isAutoLoading:()=>!r(p),save:E,startAutoSave:()=>G(void 0,null,(function*(){return yield H().save(),h=e.addDidFinishTransactionListener((()=>{const e=O();P(e)&&E(e)})),N})),stopAutoSave:H,isAutoSaving:()=>!r(h),schedule:z,getStore:()=>e,destroy:()=>(D(Q,v).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:S,saves:w})},d);return m(N)})(e,(()=>le(void 0,null,(function*(){const e=yield j();return A(e[0][0])&&A(e[1][0])?void 0:e}))),((t,n)=>le(void 0,null,(function*(){return n?O(null,null,3,n):O(null,null,2,e.getMergeableContentHashes())}))),(e=>h=e),(()=>h=void 0),0,2,((e,t)=>{for(var n in t||(t={}))ee.call(t,n)&&ne(e,n,t[n]);if(_)for(var n of _(t))te.call(t,n)&&ne(e,n,t[n]);return e})({startSync:e=>le(void 0,null,(function*(){return yield(yield x.startAutoLoad(e)).startAutoSave()})),stopSync:()=>x.stopAutoLoad().stopAutoSave(),destroy:()=>x.stopSync(),getSynchronizerStats:()=>({sends:b,receives:S})},p));return l(((t,n,l,o)=>{S++,0==l?a(D(M,n),(([e,n])=>r(e)||e==t?n(o,t):0)):2==l&&x.isAutoLoading()?j(t,o).then((e=>{null==h||h(void 0,e)})):3==l&&x.isAutoLoading()?null==h||h(void 0,o):a(1==l&&x.isAutoSaving()?e.getMergeableContentHashes():4==l?e.getMergeableTableDiff(o):5==l?e.getMergeableRowDiff(o):6==l?e.getMergeableCellDiff(o):7==l?e.getMergeableValueDiff(o):void 0,(e=>{O(t,n,0,e)}))})),x})(n[1].getStore(),((t,n,l,r)=>o(((t,...n)=>R(null!=t?t:e,JSON.stringify(n,((e,t)=>void 0===t?"":t))))(t,n,l,r))),(e=>n[3]=t=>((e,t)=>N(e,((e,n)=>{return t(e,...(l=n,JSON.parse(l,((e,t)=>""===t?void 0:t))));var l})))(t,e)),0,1),n[4]=[],n[5]=s(l)?l[1]:e=>0}))})(M,h,S)),I(S,u,n),b(i,[h],u,1),n.on("message",(e=>{const t=e.toString("utf8");0==M[0]?O(t):g(M[4],t)})),1==M[0]&&(yield(e=>ae(void 0,null,(function*(){e[0]=2,yield e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})))(M),d(M[4],O),M[4]=[]),n.on("close",(()=>{T(S,u),b(i,[h],u,-1),L(S)&&(P(M),T(p,h),T(v,h),b(o,void 0,h,-1))}))}))))))}));const $={getWebSocketServer:()=>n,getPathIds:()=>H(v),getClientIds:e=>H(D(v,e)),addPathIdsListener:e=>h(e,o),addClientIdsListener:(e,t)=>h(t,i,[e]),delListener:e=>(S(e),$),getStats:()=>({paths:M(v),clients:O(v)}),destroy:()=>{v.clear(),x(p,P),n.close()}};return m($)};
|
|
1
|
+
"use strict";const e="",t=Promise,n=globalThis,l=Math,o=l.floor,r=e=>null==e,a=(e,t,n)=>r(e)?null==n?void 0:n():t(e),s=e=>Array.isArray(e),i=(e,t,n)=>e.slice(t,n),u=e=>e.length,c=e=>{throw Error(e)},d=(e,t)=>e.forEach(t),v=(e,t)=>e.map(t),y=(e,t,n)=>e.reduce(t,n),g=(e,...t)=>e.push(...t),f=e=>e.shift(),p=Object,h=e=>p.getPrototypeOf(e),b=p.entries,S=p.keys,m=p.freeze,w=(e,t)=>d(b(e),(([e,n])=>t(n,e))),A=e=>(e=>!r(e)&&a(h(e),(e=>e==p.prototype||r(h(e))),(()=>!0)))(e)&&0==(e=>u(S(e)))(e),C=(e,t,n)=>(((e,t)=>t in e)(e,t)||(e[t]=n()),e[t]),M=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},O=(P=M,e=>y(j(e),((e,t)=>e+P(t)),0));var P;const L=e=>r(e)||0==M(e),j=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},x=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},D=(e,t)=>null==e?void 0:e.get(t),I=(e,t,n)=>r(n)?(T(e,t),e):null==e?void 0:e.set(t,n),k=(e,t,n,l)=>{var o,r,a;return r=t,null!=(a=null==(o=e)?void 0:o.has(r))&&a?null==l||l(D(e,t)):I(e,t,n()),D(e,t)},z=(e,t,n,l,o=0)=>a((n?k:D)(e,t[o],o>u(t)-2?n:E),(r=>{if(o>u(t)-2)return(null==l?void 0:l(r))&&I(e,t[o]),r;const a=z(r,t,n,l,o+1);return L(r)&&I(e,t[o]),a})),N=(e,t)=>{const n=e.indexOf("\n");-1!==n&&t(i(e,0,n),i(e,n+1))},R=(e,t)=>e+"\n"+t;new n.TextEncoder;const V=(e,t)=>t?[e,t]:[e],J=(e,t)=>{var n;return null!=(n=(null!=e?e:"")>(null!=t?t:"")?e:t)?n:""},W=(e="")=>V(((e=[])=>p.fromEntries(e))(),e);var $=Object.defineProperty,F=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,B=(e,t,n)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const K=E(),Q=E(),X="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e);E(v(X,((e,t)=>[e,t])));const Y=n.crypto?e=>n.crypto.getRandomValues(e):e=>v(e,(()=>o(256*l.random())));var Z=Object.defineProperty,_=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,ne=(e,t,n)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,le=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const oe=e=>new Set(s(e)||r(e)?e:[e]),re=/^\d+$/;var ae=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const se=/\/([^?]*)/;exports.createWsServer=(n,l)=>{const o=E(),i=E(),v=E(),p=E(),[h,b,S]=(()=>{let t;const[n,l]=(()=>{const t=[];let n=0;return[l=>{var o;return null!=(o=l?f(t):null)?o:e+n++},e=>{re.test(e)&&u(t)<1e3&&g(t,e)}]})(),o=E();return[(l,r,a,s=[],i=()=>[])=>{null!=t||(t=$);const u=n(1);var c,d;return I(o,u,[l,r,a,s,i]),d=u,null==(c=z(r,null!=a?a:[e],oe))||c.add(d),u},(n,l,...r)=>d(((t,n=[e])=>{const l=[],o=(e,t)=>t==u(n)?g(l,e):null===n[t]?x(e,(e=>o(e,t+1))):d([n[t],null],(n=>o(D(e,n),t+1)));return o(t,0),l})(n,l),(e=>x(e,(e=>D(o,e)[0](t,...null!=l?l:[],...r))))),t=>a(D(o,t),(([,n,r])=>(z(n,null!=r?r:[e],void 0,(e=>(T(e,t),L(e)?1:0))),I(o,t),l(t),r))),e=>a(D(o,e),(([e,,n=[],l,o])=>{const a=(...s)=>{var i,c;const v=u(s);v==u(n)?e(t,...s,...o(s)):r(n[v])?d(null!=(c=null==(i=l[v])?void 0:i.call(l,...s))?c:[],(e=>a(...s,e))):a(...s,n[v])};a()}))]})(),P=e=>{var t,n;null==(t=e[1])||t.destroy(),null==(n=e[2])||n.destroy()},j=(t,n,l)=>o=>N(o,((o,r)=>{var a,s,i;const u=R(t,r);var c;o===e?("S"!==t&&(null==(a=l[3])||a.call(l,u)),c=(e,n)=>e!==t?n.send(u):0,x(n,((e,t)=>c(t,e)))):"S"===o?null==(s=l[3])||s.call(l,u):null==(i=D(n,o))||i.send(u)}));n.on("connection",((n,u)=>{var h;return a(null==(h=u.url)?void 0:h.match(se),(([,h])=>a(u.headers["sec-websocket-key"],(u=>ae(void 0,null,(function*(){const S=k(v,h,E),M=k(p,h,(()=>[0])),O=j(u,S,M);L(S)&&(b(o,void 0,h,1),yield((n,o,i)=>ae(void 0,null,(function*(){return a(yield null==l?void 0:l(o),(l=>{n[0]=1,n[1]=s(l)?l[0]:l;const o=j("S",i,n);n[2]=((e,n,l,o,i,u,d,v,p={})=>{let h,b=0,S=0;const M=E(),O=(e,t,l,o)=>{b++,n(e,t,l,o)},P=(e,n,...l)=>le(void 0,[e,n,...l],(function*(e,n,l=""){return new t(((t,o)=>{const r=((e=16)=>y(Y(new Uint8Array(e)),((e,t)=>e+X[63&t]),""))(),a=setTimeout((()=>{T(M,r),o(`No response from ${null!=e?e:"anyone"} to ${r}, `+n)}),1e3*i);I(M,r,[e,(e,n)=>{clearTimeout(a),T(M,r),t([e,n])}]),O(e,r,n,l)}))})),L=(e,[t,n])=>{w(t,(([t,n],l)=>{const o=C(e[0],l,W);w(t,(([e,t],n)=>{const l=C(o[0],n,W);w(e,(([e,t],n)=>l[0][n]=V(e,t))),l[1]=J(l[1],t)})),o[1]=J(o[1],n)})),e[1]=J(e[1],n)},j=(t=null,n)=>le(void 0,null,(function*(){r(n)&&([n,t]=yield P(t,1));const[l,o]=n,[a,s]=e.getMergeableContentHashes();let i=W();if(a!=l){const[n,l]=(yield P(t,4,e.getMergeableTableHashes()))[0];if(i=n,!A(l)){const[n,o]=(yield P(t,5,e.getMergeableRowHashes(l)))[0];if(L(i,n),!A(o)){const n=(yield P(t,6,e.getMergeableCellHashes(o)))[0];L(i,n)}}}return[i,s==o?W():(yield P(t,7,e.getMergeableValueHashes()))[0],1]})),x=((e,t,n,l,o,i,u,d={},v=[])=>{let y,p,h,b=0,S=0,w=0;k(K,v,(()=>0)),k(Q,v,(()=>[]));const[C,M,O,P,L]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!A(e)||!A(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!A(e)||!A(t),t.setContent]:c("Store type not supported by this Persister"))(u,e),j=t=>{(C&&s(null==t?void 0:t[0])?1===(null==t?void 0:t[2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},x=e=>G(void 0,null,(function*(){return 2!=b&&(b=1,S++,yield z((()=>G(void 0,null,(function*(){try{const e=yield t();s(e)?j(e):c("Content is not an array "+e)}catch(t){e&&L(e)}b=0}))))),N})),T=()=>(p&&(o(p),p=void 0),N),E=e=>G(void 0,null,(function*(){return 1!=b&&(b=2,w++,yield z((()=>G(void 0,null,(function*(){try{yield n(M,e)}catch(e){}b=0}))))),N})),H=()=>(a(h,e.delListener),h=void 0,N),z=(...e)=>G(void 0,null,(function*(){return g(D(Q,v),...e),yield G(void 0,null,(function*(){if(!D(K,v)){for(I(K,v,1);!r(y=f(D(Q,v)));)try{yield y()}catch(e){}I(K,v,0)}})),N})),N=((e,t)=>{for(var n in t||(t={}))U.call(t,n)&&B(e,n,t[n]);if(F)for(var n of F(t))q.call(t,n)&&B(e,n,t[n]);return e})({load:x,startAutoLoad:e=>G(void 0,null,(function*(){yield T().load(e);try{p=yield l(((e,t)=>G(void 0,null,(function*(){t||e?2!=b&&(b=1,S++,j(null!=t?t:e),b=0):yield x()}))))}catch(e){}return N})),stopAutoLoad:T,isAutoLoading:()=>!r(p),save:E,startAutoSave:()=>G(void 0,null,(function*(){return yield H().save(),h=e.addDidFinishTransactionListener((()=>{const e=O();P(e)&&E(e)})),N})),stopAutoSave:H,isAutoSaving:()=>!r(h),schedule:z,getStore:()=>e,destroy:()=>(D(Q,v).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:S,saves:w})},d);return m(N)})(e,(()=>le(void 0,null,(function*(){const e=yield j();return A(e[0][0])&&A(e[1][0])?void 0:e}))),((t,n)=>le(void 0,null,(function*(){return n?O(null,null,3,n):O(null,null,2,e.getMergeableContentHashes())}))),(e=>h=e),(()=>h=void 0),0,2,((e,t)=>{for(var n in t||(t={}))ee.call(t,n)&&ne(e,n,t[n]);if(_)for(var n of _(t))te.call(t,n)&&ne(e,n,t[n]);return e})({startSync:e=>le(void 0,null,(function*(){return yield(yield x.startAutoLoad(e)).startAutoSave()})),stopSync:()=>x.stopAutoLoad().stopAutoSave(),destroy:()=>x.stopSync(),getSynchronizerStats:()=>({sends:b,receives:S})},p));return l(((t,n,l,o)=>{S++,0==l?a(D(M,n),(([e,n])=>r(e)||e==t?n(o,t):0)):2==l&&x.isAutoLoading()?j(t,o).then((e=>{null==h||h(void 0,e)})):3==l&&x.isAutoLoading()?null==h||h(void 0,o):a(1==l&&x.isAutoSaving()?e.getMergeableContentHashes():4==l?e.getMergeableTableDiff(o):5==l?e.getMergeableRowDiff(o):6==l?e.getMergeableCellDiff(o):7==l?e.getMergeableValueDiff(o):void 0,(e=>{O(t,n,0,e)}))})),x})(n[1].getStore(),((t,n,l,r)=>o(((t,...n)=>R(null!=t?t:e,JSON.stringify(n,((e,t)=>void 0===t?"":t))))(t,n,l,r))),(e=>n[3]=t=>((e,t)=>N(e,((e,n)=>{return t(e,...(l=n,JSON.parse(l,((e,t)=>""===t?void 0:t))));var l})))(t,e)),0,1),n[4]=[],n[5]=s(l)?l[1]:e=>0}))})))(M,h,S)),I(S,u,n),b(i,[h],u,1),n.on("message",(e=>{const t=e.toString("utf8");0==M[0]?O(t):g(M[4],t)})),1==M[0]&&(yield(e=>ae(void 0,null,(function*(){e[0]=2,yield e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})))(M),d(M[4],O),M[4]=[]),n.on("close",(()=>{T(S,u),b(i,[h],u,-1),L(S)&&(P(M),T(p,h),T(v,h),b(o,void 0,h,-1))}))}))))))}));const $={getWebSocketServer:()=>n,getPathIds:()=>H(v),getClientIds:e=>H(D(v,e)),addPathIdsListener:e=>h(e,o),addClientIdsListener:(e,t)=>h(t,i,[e]),delListener:e=>(S(e),$),getStats:()=>({paths:M(v),clients:O(v)}),destroy:()=>{v.clear(),x(p,P),n.close()}};return m($)};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e="",t=Promise,n=globalThis,l=Math,o=l.floor,r=e=>null==e,a=(e,t,n)=>r(e)?null==n?void 0:n():t(e),s=e=>Array.isArray(e),i=(e,t,n)=>e.slice(t,n),u=e=>e.length,c=e=>{throw Error(e)},d=(e,t)=>e.forEach(t),v=(e,t)=>e.map(t),y=(e,t,n)=>e.reduce(t,n),g=(e,...t)=>e.push(...t),f=e=>e.shift(),p=Object,h=e=>p.getPrototypeOf(e),b=p.entries,S=p.keys,m=p.freeze,w=(e,t)=>d(b(e),(([e,n])=>t(n,e))),A=e=>(e=>!r(e)&&a(h(e),(e=>e==p.prototype||r(h(e))),(()=>!0)))(e)&&0==(e=>u(S(e)))(e),C=(e,t,n)=>(((e,t)=>t in e)(e,t)||(e[t]=n()),e[t]),M=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},O=(P=M,e=>y(j(e),((e,t)=>e+P(t)),0));var P;const L=e=>r(e)||0==M(e),j=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},x=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},D=(e,t)=>null==e?void 0:e.get(t),I=(e,t,n)=>r(n)?(T(e,t),e):null==e?void 0:e.set(t,n),k=(e,t,n,l)=>{var o,r,a;return r=t,null!=(a=null==(o=e)?void 0:o.has(r))&&a?null==l||l(D(e,t)):I(e,t,n()),D(e,t)},z=(e,t,n,l,o=0)=>a((n?k:D)(e,t[o],o>u(t)-2?n:E),(r=>{if(o>u(t)-2)return(null==l?void 0:l(r))&&I(e,t[o]),r;const a=z(r,t,n,l,o+1);return L(r)&&I(e,t[o]),a})),N=(e,t)=>{const n=e.indexOf("\n");-1!==n&&t(i(e,0,n),i(e,n+1))},R=(e,t)=>e+"\n"+t;new n.TextEncoder;const V=(e,t)=>t?[e,t]:[e],J=(e,t)=>{var n;return null!=(n=(null!=e?e:"")>(null!=t?t:"")?e:t)?n:""},W=(e="")=>V(((e=[])=>p.fromEntries(e))(),e);var $=Object.defineProperty,F=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,B=(e,t,n)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const K=E(),Q=E(),X="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e);E(v(X,((e,t)=>[e,t])));const Y=n.crypto?e=>n.crypto.getRandomValues(e):e=>v(e,(()=>o(256*l.random())));var Z=Object.defineProperty,_=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,ne=(e,t,n)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,le=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const oe=e=>new Set(s(e)||r(e)?e:[e]),re=/^\d+$/;var ae=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const se=/\/([^?]*)/;exports.createWsServer=(n,l)=>{const o=E(),i=E(),v=E(),p=E(),[h,b,S]=(()=>{let t;const[n,l]=(()=>{const t=[];let n=0;return[l=>{var o;return null!=(o=l?f(t):null)?o:e+n++},e=>{re.test(e)&&u(t)<1e3&&g(t,e)}]})(),o=E();return[(l,r,a,s=[],i=()=>[])=>{null!=t||(t=$);const u=n(1);var c,d;return I(o,u,[l,r,a,s,i]),d=u,null==(c=z(r,null!=a?a:[e],oe))||c.add(d),u},(n,l,...r)=>d(((t,n=[e])=>{const l=[],o=(e,t)=>t==u(n)?g(l,e):null===n[t]?x(e,(e=>o(e,t+1))):d([n[t],null],(n=>o(D(e,n),t+1)));return o(t,0),l})(n,l),(e=>x(e,(e=>D(o,e)[0](t,...null!=l?l:[],...r))))),t=>a(D(o,t),(([,n,r])=>(z(n,null!=r?r:[e],void 0,(e=>(T(e,t),L(e)?1:0))),I(o,t),l(t),r))),e=>a(D(o,e),(([e,,n=[],l,o])=>{const a=(...s)=>{var i,c;const v=u(s);v==u(n)?e(t,...s,...o(s)):r(n[v])?d(null!=(c=null==(i=l[v])?void 0:i.call(l,...s))?c:[],(e=>a(...s,e))):a(...s,n[v])};a()}))]})(),P=e=>{var t,n;null==(t=e[1])||t.destroy(),null==(n=e[2])||n.destroy()},j=(t,n,l)=>o=>N(o,((o,r)=>{var a,s,i;const u=R(t,r);var c;o===e?("S"!==t&&(null==(a=l[3])||a.call(l,u)),c=(e,n)=>e!==t?n.send(u):0,x(n,((e,t)=>c(t,e)))):"S"===o?null==(s=l[3])||s.call(l,u):null==(i=D(n,o))||i.send(u)}));n.on("connection",((n,u)=>{var h;return a(null==(h=u.url)?void 0:h.match(se),(([,h])=>a(u.headers["sec-websocket-key"],(u=>ae(void 0,null,(function*(){const S=k(v,h,E),M=k(p,h,(()=>[0])),O=j(u,S,M);L(S)&&(b(o,void 0,h,1),((n,o,i)=>{a(null==l?void 0:l(o),(l=>{n[0]=1,n[1]=s(l)?l[0]:l;const o=j("S",i,n);n[2]=((e,n,l,o,i,u,d,v,p={})=>{let h,b=0,S=0;const M=E(),O=(e,t,l,o)=>{b++,n(e,t,l,o)},P=(e,n,...l)=>le(void 0,[e,n,...l],(function*(e,n,l=""){return new t(((t,o)=>{const r=((e=16)=>y(Y(new Uint8Array(e)),((e,t)=>e+X[63&t]),""))(),a=setTimeout((()=>{T(M,r),o(`No response from ${null!=e?e:"anyone"} to ${r}, `+n)}),1e3*i);I(M,r,[e,(e,n)=>{clearTimeout(a),T(M,r),t([e,n])}]),O(e,r,n,l)}))})),L=(e,[t,n])=>{w(t,(([t,n],l)=>{const o=C(e[0],l,W);w(t,(([e,t],n)=>{const l=C(o[0],n,W);w(e,(([e,t],n)=>l[0][n]=V(e,t))),l[1]=J(l[1],t)})),o[1]=J(o[1],n)})),e[1]=J(e[1],n)},j=(t=null,n)=>le(void 0,null,(function*(){r(n)&&([n,t]=yield P(t,1));const[l,o]=n,[a,s]=e.getMergeableContentHashes();let i=W();if(a!=l){const[n,l]=(yield P(t,4,e.getMergeableTableHashes()))[0];if(i=n,!A(l)){const[n,o]=(yield P(t,5,e.getMergeableRowHashes(l)))[0];if(L(i,n),!A(o)){const n=(yield P(t,6,e.getMergeableCellHashes(o)))[0];L(i,n)}}}return[i,s==o?W():(yield P(t,7,e.getMergeableValueHashes()))[0],1]})),x=((e,t,n,l,o,i,u,d={},v=[])=>{let y,p,h,b=0,S=0,w=0;k(K,v,(()=>0)),k(Q,v,(()=>[]));const[C,M,O,P,L]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!A(e)||!A(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!A(e)||!A(t),t.setContent]:c("Store type not supported by this Persister"))(u,e),j=t=>{(C&&s(null==t?void 0:t[0])?1===(null==t?void 0:t[2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},x=e=>G(void 0,null,(function*(){return 2!=b&&(b=1,S++,yield z((()=>G(void 0,null,(function*(){try{const e=yield t();s(e)?j(e):c("Content is not an array "+e)}catch(t){e&&L(e)}b=0}))))),N})),T=()=>(p&&(o(p),p=void 0),N),E=e=>G(void 0,null,(function*(){return 1!=b&&(b=2,w++,yield z((()=>G(void 0,null,(function*(){try{yield n(M,e)}catch(e){}b=0}))))),N})),H=()=>(a(h,e.delListener),h=void 0,N),z=(...e)=>G(void 0,null,(function*(){return g(D(Q,v),...e),yield G(void 0,null,(function*(){if(!D(K,v)){for(I(K,v,1);!r(y=f(D(Q,v)));)try{yield y()}catch(e){}I(K,v,0)}})),N})),N=((e,t)=>{for(var n in t||(t={}))U.call(t,n)&&B(e,n,t[n]);if(F)for(var n of F(t))q.call(t,n)&&B(e,n,t[n]);return e})({load:x,startAutoLoad:e=>G(void 0,null,(function*(){yield T().load(e);try{p=yield l(((e,t)=>G(void 0,null,(function*(){t||e?2!=b&&(b=1,S++,j(null!=t?t:e),b=0):yield x()}))))}catch(e){}return N})),stopAutoLoad:T,isAutoLoading:()=>!r(p),save:E,startAutoSave:()=>G(void 0,null,(function*(){return yield H().save(),h=e.addDidFinishTransactionListener((()=>{const e=O();P(e)&&E(e)})),N})),stopAutoSave:H,isAutoSaving:()=>!r(h),schedule:z,getStore:()=>e,destroy:()=>(D(Q,v).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:S,saves:w})},d);return m(N)})(e,(()=>le(void 0,null,(function*(){const e=yield j();return A(e[0][0])&&A(e[1][0])?void 0:e}))),((t,n)=>le(void 0,null,(function*(){return n?O(null,null,3,n):O(null,null,2,e.getMergeableContentHashes())}))),(e=>h=e),(()=>h=void 0),0,2,((e,t)=>{for(var n in t||(t={}))ee.call(t,n)&&ne(e,n,t[n]);if(_)for(var n of _(t))te.call(t,n)&&ne(e,n,t[n]);return e})({startSync:e=>le(void 0,null,(function*(){return yield(yield x.startAutoLoad(e)).startAutoSave()})),stopSync:()=>x.stopAutoLoad().stopAutoSave(),destroy:()=>x.stopSync(),getSynchronizerStats:()=>({sends:b,receives:S})},p));return l(((t,n,l,o)=>{S++,0==l?a(D(M,n),(([e,n])=>r(e)||e==t?n(o,t):0)):2==l&&x.isAutoLoading()?j(t,o).then((e=>{null==h||h(void 0,e)})):3==l&&x.isAutoLoading()?null==h||h(void 0,o):a(1==l&&x.isAutoSaving()?e.getMergeableContentHashes():4==l?e.getMergeableTableDiff(o):5==l?e.getMergeableRowDiff(o):6==l?e.getMergeableCellDiff(o):7==l?e.getMergeableValueDiff(o):void 0,(e=>{O(t,n,0,e)}))})),x})(n[1].getStore(),((t,n,l,r)=>o(((t,...n)=>R(null!=t?t:e,JSON.stringify(n,((e,t)=>void 0===t?"":t))))(t,n,l,r))),(e=>n[3]=t=>((e,t)=>N(e,((e,n)=>{return t(e,...(l=n,JSON.parse(l,((e,t)=>""===t?void 0:t))));var l})))(t,e)),0,1),n[4]=[],n[5]=s(l)?l[1]:e=>0}))})(M,h,S)),I(S,u,n),b(i,[h],u,1),n.on("message",(e=>{const t=e.toString("utf8");0==M[0]?O(t):g(M[4],t)})),1==M[0]&&(yield(e=>ae(void 0,null,(function*(){e[0]=2,yield e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})))(M),d(M[4],O),M[4]=[]),n.on("close",(()=>{T(S,u),b(i,[h],u,-1),L(S)&&(P(M),T(p,h),T(v,h),b(o,void 0,h,-1))}))}))))))}));const $={getWebSocketServer:()=>n,getPathIds:()=>H(v),getClientIds:e=>H(D(v,e)),addPathIdsListener:e=>h(e,o),addClientIdsListener:(e,t)=>h(t,i,[e]),delListener:e=>(S(e),$),getStats:()=>({paths:M(v),clients:O(v)}),destroy:()=>{v.clear(),x(p,P),n.close()}};return m($)};
|
|
1
|
+
"use strict";const e="",t=Promise,n=globalThis,l=Math,o=l.floor,r=e=>null==e,a=(e,t,n)=>r(e)?null==n?void 0:n():t(e),s=e=>Array.isArray(e),i=(e,t,n)=>e.slice(t,n),u=e=>e.length,c=e=>{throw Error(e)},d=(e,t)=>e.forEach(t),v=(e,t)=>e.map(t),y=(e,t,n)=>e.reduce(t,n),g=(e,...t)=>e.push(...t),f=e=>e.shift(),p=Object,h=e=>p.getPrototypeOf(e),b=p.entries,S=p.keys,m=p.freeze,w=(e,t)=>d(b(e),(([e,n])=>t(n,e))),A=e=>(e=>!r(e)&&a(h(e),(e=>e==p.prototype||r(h(e))),(()=>!0)))(e)&&0==(e=>u(S(e)))(e),C=(e,t,n)=>(((e,t)=>t in e)(e,t)||(e[t]=n()),e[t]),M=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},O=(P=M,e=>y(j(e),((e,t)=>e+P(t)),0));var P;const L=e=>r(e)||0==M(e),j=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},x=(e,t)=>null==e?void 0:e.forEach(t),T=(e,t)=>null==e?void 0:e.delete(t),E=e=>new Map(e),H=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},D=(e,t)=>null==e?void 0:e.get(t),I=(e,t,n)=>r(n)?(T(e,t),e):null==e?void 0:e.set(t,n),k=(e,t,n,l)=>{var o,r,a;return r=t,null!=(a=null==(o=e)?void 0:o.has(r))&&a?null==l||l(D(e,t)):I(e,t,n()),D(e,t)},z=(e,t,n,l,o=0)=>a((n?k:D)(e,t[o],o>u(t)-2?n:E),(r=>{if(o>u(t)-2)return(null==l?void 0:l(r))&&I(e,t[o]),r;const a=z(r,t,n,l,o+1);return L(r)&&I(e,t[o]),a})),N=(e,t)=>{const n=e.indexOf("\n");-1!==n&&t(i(e,0,n),i(e,n+1))},R=(e,t)=>e+"\n"+t;new n.TextEncoder;const V=(e,t)=>t?[e,t]:[e],J=(e,t)=>{var n;return null!=(n=(null!=e?e:"")>(null!=t?t:"")?e:t)?n:""},W=(e="")=>V(((e=[])=>p.fromEntries(e))(),e);var $=Object.defineProperty,F=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,B=(e,t,n)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const K=E(),Q=E(),X="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e);E(v(X,((e,t)=>[e,t])));const Y=n.crypto?e=>n.crypto.getRandomValues(e):e=>v(e,(()=>o(256*l.random())));var Z=Object.defineProperty,_=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,ne=(e,t,n)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,le=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const oe=e=>new Set(s(e)||r(e)?e:[e]),re=/^\d+$/;var ae=(e,t,n)=>new Promise(((l,o)=>{var r=e=>{try{s(n.next(e))}catch(e){o(e)}},a=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,a);s((n=n.apply(e,t)).next())}));const se=/\/([^?]*)/;exports.createWsServer=(n,l)=>{const o=E(),i=E(),v=E(),p=E(),[h,b,S]=(()=>{let t;const[n,l]=(()=>{const t=[];let n=0;return[l=>{var o;return null!=(o=l?f(t):null)?o:e+n++},e=>{re.test(e)&&u(t)<1e3&&g(t,e)}]})(),o=E();return[(l,r,a,s=[],i=()=>[])=>{null!=t||(t=$);const u=n(1);var c,d;return I(o,u,[l,r,a,s,i]),d=u,null==(c=z(r,null!=a?a:[e],oe))||c.add(d),u},(n,l,...r)=>d(((t,n=[e])=>{const l=[],o=(e,t)=>t==u(n)?g(l,e):null===n[t]?x(e,(e=>o(e,t+1))):d([n[t],null],(n=>o(D(e,n),t+1)));return o(t,0),l})(n,l),(e=>x(e,(e=>D(o,e)[0](t,...null!=l?l:[],...r))))),t=>a(D(o,t),(([,n,r])=>(z(n,null!=r?r:[e],void 0,(e=>(T(e,t),L(e)?1:0))),I(o,t),l(t),r))),e=>a(D(o,e),(([e,,n=[],l,o])=>{const a=(...s)=>{var i,c;const v=u(s);v==u(n)?e(t,...s,...o(s)):r(n[v])?d(null!=(c=null==(i=l[v])?void 0:i.call(l,...s))?c:[],(e=>a(...s,e))):a(...s,n[v])};a()}))]})(),P=e=>{var t,n;null==(t=e[1])||t.destroy(),null==(n=e[2])||n.destroy()},j=(t,n,l)=>o=>N(o,((o,r)=>{var a,s,i;const u=R(t,r);var c;o===e?("S"!==t&&(null==(a=l[3])||a.call(l,u)),c=(e,n)=>e!==t?n.send(u):0,x(n,((e,t)=>c(t,e)))):"S"===o?null==(s=l[3])||s.call(l,u):null==(i=D(n,o))||i.send(u)}));n.on("connection",((n,u)=>{var h;return a(null==(h=u.url)?void 0:h.match(se),(([,h])=>a(u.headers["sec-websocket-key"],(u=>ae(void 0,null,(function*(){const S=k(v,h,E),M=k(p,h,(()=>[0])),O=j(u,S,M);L(S)&&(b(o,void 0,h,1),yield((n,o,i)=>ae(void 0,null,(function*(){return a(yield null==l?void 0:l(o),(l=>{n[0]=1,n[1]=s(l)?l[0]:l;const o=j("S",i,n);n[2]=((e,n,l,o,i,u,d,v,p={})=>{let h,b=0,S=0;const M=E(),O=(e,t,l,o)=>{b++,n(e,t,l,o)},P=(e,n,...l)=>le(void 0,[e,n,...l],(function*(e,n,l=""){return new t(((t,o)=>{const r=((e=16)=>y(Y(new Uint8Array(e)),((e,t)=>e+X[63&t]),""))(),a=setTimeout((()=>{T(M,r),o(`No response from ${null!=e?e:"anyone"} to ${r}, `+n)}),1e3*i);I(M,r,[e,(e,n)=>{clearTimeout(a),T(M,r),t([e,n])}]),O(e,r,n,l)}))})),L=(e,[t,n])=>{w(t,(([t,n],l)=>{const o=C(e[0],l,W);w(t,(([e,t],n)=>{const l=C(o[0],n,W);w(e,(([e,t],n)=>l[0][n]=V(e,t))),l[1]=J(l[1],t)})),o[1]=J(o[1],n)})),e[1]=J(e[1],n)},j=(t=null,n)=>le(void 0,null,(function*(){r(n)&&([n,t]=yield P(t,1));const[l,o]=n,[a,s]=e.getMergeableContentHashes();let i=W();if(a!=l){const[n,l]=(yield P(t,4,e.getMergeableTableHashes()))[0];if(i=n,!A(l)){const[n,o]=(yield P(t,5,e.getMergeableRowHashes(l)))[0];if(L(i,n),!A(o)){const n=(yield P(t,6,e.getMergeableCellHashes(o)))[0];L(i,n)}}}return[i,s==o?W():(yield P(t,7,e.getMergeableValueHashes()))[0],1]})),x=((e,t,n,l,o,i,u,d={},v=[])=>{let y,p,h,b=0,S=0,w=0;k(K,v,(()=>0)),k(Q,v,(()=>[]));const[C,M,O,P,L]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!A(e)||!A(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!A(e)||!A(t),t.setContent]:c("Store type not supported by this Persister"))(u,e),j=t=>{(C&&s(null==t?void 0:t[0])?1===(null==t?void 0:t[2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},x=e=>G(void 0,null,(function*(){return 2!=b&&(b=1,S++,yield z((()=>G(void 0,null,(function*(){try{const e=yield t();s(e)?j(e):c("Content is not an array "+e)}catch(t){e&&L(e)}b=0}))))),N})),T=()=>(p&&(o(p),p=void 0),N),E=e=>G(void 0,null,(function*(){return 1!=b&&(b=2,w++,yield z((()=>G(void 0,null,(function*(){try{yield n(M,e)}catch(e){}b=0}))))),N})),H=()=>(a(h,e.delListener),h=void 0,N),z=(...e)=>G(void 0,null,(function*(){return g(D(Q,v),...e),yield G(void 0,null,(function*(){if(!D(K,v)){for(I(K,v,1);!r(y=f(D(Q,v)));)try{yield y()}catch(e){}I(K,v,0)}})),N})),N=((e,t)=>{for(var n in t||(t={}))U.call(t,n)&&B(e,n,t[n]);if(F)for(var n of F(t))q.call(t,n)&&B(e,n,t[n]);return e})({load:x,startAutoLoad:e=>G(void 0,null,(function*(){yield T().load(e);try{p=yield l(((e,t)=>G(void 0,null,(function*(){t||e?2!=b&&(b=1,S++,j(null!=t?t:e),b=0):yield x()}))))}catch(e){}return N})),stopAutoLoad:T,isAutoLoading:()=>!r(p),save:E,startAutoSave:()=>G(void 0,null,(function*(){return yield H().save(),h=e.addDidFinishTransactionListener((()=>{const e=O();P(e)&&E(e)})),N})),stopAutoSave:H,isAutoSaving:()=>!r(h),schedule:z,getStore:()=>e,destroy:()=>(D(Q,v).splice(0,void 0),T().stopAutoSave()),getStats:()=>({loads:S,saves:w})},d);return m(N)})(e,(()=>le(void 0,null,(function*(){const e=yield j();return A(e[0][0])&&A(e[1][0])?void 0:e}))),((t,n)=>le(void 0,null,(function*(){return n?O(null,null,3,n):O(null,null,2,e.getMergeableContentHashes())}))),(e=>h=e),(()=>h=void 0),0,2,((e,t)=>{for(var n in t||(t={}))ee.call(t,n)&&ne(e,n,t[n]);if(_)for(var n of _(t))te.call(t,n)&&ne(e,n,t[n]);return e})({startSync:e=>le(void 0,null,(function*(){return yield(yield x.startAutoLoad(e)).startAutoSave()})),stopSync:()=>x.stopAutoLoad().stopAutoSave(),destroy:()=>x.stopSync(),getSynchronizerStats:()=>({sends:b,receives:S})},p));return l(((t,n,l,o)=>{S++,0==l?a(D(M,n),(([e,n])=>r(e)||e==t?n(o,t):0)):2==l&&x.isAutoLoading()?j(t,o).then((e=>{null==h||h(void 0,e)})):3==l&&x.isAutoLoading()?null==h||h(void 0,o):a(1==l&&x.isAutoSaving()?e.getMergeableContentHashes():4==l?e.getMergeableTableDiff(o):5==l?e.getMergeableRowDiff(o):6==l?e.getMergeableCellDiff(o):7==l?e.getMergeableValueDiff(o):void 0,(e=>{O(t,n,0,e)}))})),x})(n[1].getStore(),((t,n,l,r)=>o(((t,...n)=>R(null!=t?t:e,JSON.stringify(n,((e,t)=>void 0===t?"":t))))(t,n,l,r))),(e=>n[3]=t=>((e,t)=>N(e,((e,n)=>{return t(e,...(l=n,JSON.parse(l,((e,t)=>""===t?void 0:t))));var l})))(t,e)),0,1),n[4]=[],n[5]=s(l)?l[1]:e=>0}))})))(M,h,S)),I(S,u,n),b(i,[h],u,1),n.on("message",(e=>{const t=e.toString("utf8");0==M[0]?O(t):g(M[4],t)})),1==M[0]&&(yield(e=>ae(void 0,null,(function*(){e[0]=2,yield e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})))(M),d(M[4],O),M[4]=[]),n.on("close",(()=>{T(S,u),b(i,[h],u,-1),L(S)&&(P(M),T(p,h),T(v,h),b(o,void 0,h,-1))}))}))))))}));const $={getWebSocketServer:()=>n,getPathIds:()=>H(v),getClientIds:e=>H(D(v,e)),addPathIdsListener:e=>h(e,o),addClientIdsListener:(e,t)=>h(t,i,[e]),delListener:e=>(S(e),$),getStats:()=>({paths:M(v),clients:O(v)}),destroy:()=>{v.clear(),x(p,P),n.close()}};return m($)};
|
|
Binary file
|
|
@@ -804,34 +804,40 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
804
804
|
() => wsServer,
|
|
805
805
|
);
|
|
806
806
|
const configureServerClient = (serverClient, pathId, clients) =>
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
(
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
807
|
+
__async(void 0, null, function* () {
|
|
808
|
+
return ifNotUndefined(
|
|
809
|
+
yield createPersisterForPath == null
|
|
810
|
+
? void 0
|
|
811
|
+
: createPersisterForPath(pathId),
|
|
812
|
+
(persisterMaybeThen) => {
|
|
813
|
+
serverClient[0 /* State */] = 1;
|
|
814
|
+
serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
|
|
815
|
+
? persisterMaybeThen[0]
|
|
816
|
+
: persisterMaybeThen;
|
|
817
|
+
const messageHandler = getMessageHandler(
|
|
818
|
+
SERVER_CLIENT_ID,
|
|
819
|
+
clients,
|
|
820
|
+
serverClient,
|
|
821
|
+
);
|
|
822
|
+
serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
|
|
823
|
+
serverClient[1 /* Persister */].getStore(),
|
|
824
|
+
(toClientId, requestId, message, body) =>
|
|
825
|
+
messageHandler(
|
|
826
|
+
createPayload(toClientId, requestId, message, body),
|
|
827
|
+
),
|
|
828
|
+
(receive) =>
|
|
829
|
+
(serverClient[3 /* Send */] = (payload) =>
|
|
830
|
+
receivePayload(payload, receive)),
|
|
831
|
+
() => {},
|
|
832
|
+
1,
|
|
833
|
+
);
|
|
834
|
+
serverClient[4 /* Buffer */] = [];
|
|
835
|
+
serverClient[5 /* Then */] = isArray(persisterMaybeThen)
|
|
836
|
+
? persisterMaybeThen[1]
|
|
837
|
+
: (_) => 0;
|
|
838
|
+
},
|
|
839
|
+
);
|
|
840
|
+
});
|
|
835
841
|
const startServerClient = (serverClient) =>
|
|
836
842
|
__async(void 0, null, function* () {
|
|
837
843
|
serverClient[0 /* State */] = 2 /* Starting */;
|
|
@@ -891,7 +897,7 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
891
897
|
);
|
|
892
898
|
if (collIsEmpty(clients)) {
|
|
893
899
|
callListeners(pathIdListeners, void 0, pathId, 1);
|
|
894
|
-
configureServerClient(serverClient, pathId, clients);
|
|
900
|
+
yield configureServerClient(serverClient, pathId, clients);
|
|
895
901
|
}
|
|
896
902
|
mapSet(clients, clientId, webSocket);
|
|
897
903
|
callListeners(clientIdListeners, [pathId], clientId, 1);
|
|
@@ -804,34 +804,40 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
804
804
|
() => wsServer,
|
|
805
805
|
);
|
|
806
806
|
const configureServerClient = (serverClient, pathId, clients) =>
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
(
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
807
|
+
__async(void 0, null, function* () {
|
|
808
|
+
return ifNotUndefined(
|
|
809
|
+
yield createPersisterForPath == null
|
|
810
|
+
? void 0
|
|
811
|
+
: createPersisterForPath(pathId),
|
|
812
|
+
(persisterMaybeThen) => {
|
|
813
|
+
serverClient[0 /* State */] = 1;
|
|
814
|
+
serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
|
|
815
|
+
? persisterMaybeThen[0]
|
|
816
|
+
: persisterMaybeThen;
|
|
817
|
+
const messageHandler = getMessageHandler(
|
|
818
|
+
SERVER_CLIENT_ID,
|
|
819
|
+
clients,
|
|
820
|
+
serverClient,
|
|
821
|
+
);
|
|
822
|
+
serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
|
|
823
|
+
serverClient[1 /* Persister */].getStore(),
|
|
824
|
+
(toClientId, requestId, message, body) =>
|
|
825
|
+
messageHandler(
|
|
826
|
+
createPayload(toClientId, requestId, message, body),
|
|
827
|
+
),
|
|
828
|
+
(receive) =>
|
|
829
|
+
(serverClient[3 /* Send */] = (payload) =>
|
|
830
|
+
receivePayload(payload, receive)),
|
|
831
|
+
() => {},
|
|
832
|
+
1,
|
|
833
|
+
);
|
|
834
|
+
serverClient[4 /* Buffer */] = [];
|
|
835
|
+
serverClient[5 /* Then */] = isArray(persisterMaybeThen)
|
|
836
|
+
? persisterMaybeThen[1]
|
|
837
|
+
: (_) => 0;
|
|
838
|
+
},
|
|
839
|
+
);
|
|
840
|
+
});
|
|
835
841
|
const startServerClient = (serverClient) =>
|
|
836
842
|
__async(void 0, null, function* () {
|
|
837
843
|
serverClient[0 /* State */] = 2 /* Starting */;
|
|
@@ -891,7 +897,7 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
891
897
|
);
|
|
892
898
|
if (collIsEmpty(clients)) {
|
|
893
899
|
callListeners(pathIdListeners, void 0, pathId, 1);
|
|
894
|
-
configureServerClient(serverClient, pathId, clients);
|
|
900
|
+
yield configureServerClient(serverClient, pathId, clients);
|
|
895
901
|
}
|
|
896
902
|
mapSet(clients, clientId, webSocket);
|
|
897
903
|
callListeners(clientIdListeners, [pathId], clientId, 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t="",e=Promise,a=globalThis,s=Math,n=s.floor,o=t=>null==t,r=(t,e,a)=>o(t)?a?.():e(t),i=t=>Array.isArray(t),c=(t,e,a)=>t.slice(e,a),l=t=>t.length,d=t=>{throw Error(t)},g=(t,e)=>t.forEach(e),u=(t,e)=>t.map(e),y=(t,e,a)=>t.reduce(e,a),h=(t,...e)=>t.push(...e),v=t=>t.shift(),w=Object,S=t=>w.getPrototypeOf(t),p=w.entries,f=w.keys,b=w.freeze,A=(t,e)=>g(p(t),(([t,a])=>e(a,t))),C=t=>(t=>!o(t)&&r(S(t),(t=>t==w.prototype||o(S(t))),(()=>!0)))(t)&&0==(t=>l(f(t)))(t),M=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),L=t=>t?.size??0,m=(T=L,t=>y(D(t),((t,e)=>t+T(e)),0));var T;const H=t=>o(t)||0==L(t),D=t=>[...t?.values()??[]],k=(t,e)=>t?.forEach(e),E=(t,e)=>t?.delete(e),O=t=>new Map(t),P=t=>[...t?.keys()??[]],I=(t,e)=>t?.get(e),x=(t,e,a)=>o(a)?(E(t,e),t):t?.set(e,a),z=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(I(t,e)):x(t,e,a()),I(t,e)},N=(t,e,a,s,n=0)=>r((a?z:I)(t,e[n],n>l(e)-2?a:O),(o=>{if(n>l(e)-2)return s?.(o)&&x(t,e[n]),o;const r=N(o,e,a,s,n+1);return H(o)&&x(t,e[n]),r})),R=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(c(t,0,a),c(t,a+1))},V=(t,e)=>t+"\n"+e;new a.TextEncoder;const J=(t,e)=>e?[t,e]:[t],W=(t,e)=>((t??"")>(e??"")?t:e)??"",$=(t="")=>J(((t=[])=>w.fromEntries(t))(),t),j=O(),F=O(),U="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(t);O(u(U,((t,e)=>[t,e])));const q=a.crypto?t=>a.crypto.getRandomValues(t):t=>u(t,(()=>n(256*s.random()))),B=t=>new Set(i(t)||o(t)?t:[t]),G=/^\d+$/,K=/\/([^?]*)/;exports.createWsServer=(a,s)=>{const n=O(),c=O(),u=O(),w=O(),[S,p,f]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?v(e):null)??t+a++,t=>{G.test(t)&&l(e)<1e3&&h(e,t)}]})(),n=O();return[(s,o,r,i=[],c=()=>[])=>{e??=Q;const l=a(1);var d,g;return x(n,l,[s,o,r,i,c]),d=N(o,r??[t],B),g=l,d?.add(g),l},(a,s,...o)=>g(((e,a=[t])=>{const s=[],n=(t,e)=>e==l(a)?h(s,t):null===a[e]?k(t,(t=>n(t,e+1))):g([a[e],null],(a=>n(I(t,a),e+1)));return n(e,0),s})(a,s),(t=>k(t,(t=>I(n,t)[0](e,...s??[],...o))))),e=>r(I(n,e),(([,a,o])=>(N(a,o??[t],void 0,(t=>(E(t,e),H(t)?1:0))),x(n,e),s(e),o))),t=>r(I(n,t),(([t,,a=[],s,n])=>{const r=(...i)=>{const c=l(i);c==l(a)?t(e,...i,...n(i)):o(a[c])?g(s[c]?.(...i)??[],(t=>r(...i,t))):r(...i,a[c])};r()}))]})(),T=t=>{t[1]?.destroy(),t[2]?.destroy()},D=(e,a,s)=>n=>R(n,((n,o)=>{const r=V(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,k(a,((t,e)=>i(e,t)))):"S"===n?s[3]?.(r):I(a,n)?.send(r)}));a.on("connection",((a,l)=>r(l.url?.match(K),(([,S])=>r(l.headers["sec-websocket-key"],(async l=>{const f=z(u,S,O),L=z(w,S,(()=>[0])),m=D(l,f,L);H(f)&&(p(n,void 0,S,1),await(async(a,n,c)=>r(await(s?.(n)),(s=>{a[0]=1,a[1]=i(s)?s[0]:s;const n=D("S",c,a);a[2]=((t,a,s,n,c,l,g,u,w={})=>{let S,p=0,f=0;const L=O(),m=(t,e,s,n)=>{p++,a(t,e,s,n)},T=async(t,a,s="")=>new e(((e,n)=>{const o=((t=16)=>y(q(new Uint8Array(t)),((t,e)=>t+U[63&e]),""))(),r=setTimeout((()=>{E(L,o),n(`No response from ${t??"anyone"} to ${o}, `+a)}),1e3*c);x(L,o,[t,(t,a)=>{clearTimeout(r),E(L,o),e([t,a])}]),m(t,o,a,s)})),H=(t,[e,a])=>{A(e,(([e,a],s)=>{const n=M(t[0],s,$);A(e,(([t,e],a)=>{const s=M(n[0],a,$);A(t,(([t,e],a)=>s[0][a]=J(t,e))),s[1]=W(s[1],e)})),n[1]=W(n[1],a)})),t[1]=W(t[1],a)},D=async(e=null,a)=>{o(a)&&([a,e]=await T(e,1));const[s,n]=a,[r,i]=t.getMergeableContentHashes();let c=$();if(r!=s){const[a,s]=(await T(e,4,t.getMergeableTableHashes()))[0];if(c=a,!C(s)){const[a,n]=(await T(e,5,t.getMergeableRowHashes(s)))[0];if(H(c,a),!C(n)){const a=(await T(e,6,t.getMergeableCellHashes(n)))[0];H(c,a)}}}return[c,i==n?$():(await T(e,7,t.getMergeableValueHashes()))[0],1]},k=((t,e,a,s,n,c,l,g={},u=[])=>{let y,w,S,p=0,f=0,A=0;z(j,u,(()=>0)),z(F,u,(()=>[]));const[M,L,m,T,H]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[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"))(l,t),D=e=>{(M&&i(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},k=async t=>(2!=p&&(p=1,f++,await N((async()=>{try{const t=await e();i(t)?D(t):d("Content is not an array "+t)}catch(e){t&&H(t)}p=0}))),R),E=()=>(w&&(n(w),w=void 0),R),O=async t=>(1!=p&&(p=2,A++,await N((async()=>{try{await a(L,t)}catch(t){}p=0}))),R),P=()=>(r(S,t.delListener),S=void 0,R),N=async(...t)=>(h(I(F,u),...t),await(async()=>{if(!I(j,u)){for(x(j,u,1);!o(y=v(I(F,u)));)try{await y()}catch(t){}x(j,u,0)}})(),R),R={load:k,startAutoLoad:async t=>{await E().load(t);try{w=await s((async(t,e)=>{e||t?2!=p&&(p=1,f++,D(e??t),p=0):await k()}))}catch(t){}return R},stopAutoLoad:E,isAutoLoading:()=>!o(w),save:O,startAutoSave:async()=>(await P().save(),S=t.addDidFinishTransactionListener((()=>{const t=m();T(t)&&O(t)})),R),stopAutoSave:P,isAutoSaving:()=>!o(S),schedule:N,getStore:()=>t,destroy:()=>(I(F,u).splice(0,void 0),E().stopAutoSave()),getStats:()=>({loads:f,saves:A}),...g};return b(R)})(t,(async()=>{const t=await D();return C(t[0][0])&&C(t[1][0])?void 0:t}),(async(e,a)=>a?m(null,null,3,a):m(null,null,2,t.getMergeableContentHashes())),(t=>S=t),(()=>S=void 0),0,2,{startSync:async t=>await(await k.startAutoLoad(t)).startAutoSave(),stopSync:()=>k.stopAutoLoad().stopAutoSave(),destroy:()=>k.stopSync(),getSynchronizerStats:()=>({sends:p,receives:f}),...w});return s(((e,a,s,n)=>{f++,0==s?r(I(L,a),(([t,a])=>o(t)||t==e?a(n,e):0)):2==s&&k.isAutoLoading()?D(e,n).then((t=>{S?.(void 0,t)})):3==s&&k.isAutoLoading()?S?.(void 0,n):r(1==s&&k.isAutoSaving()?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,(t=>{m(e,a,0,t)}))})),k})(a[1].getStore(),((e,a,s,o)=>n(((e,...a)=>V(e??t,JSON.stringify(a,((t,e)=>void 0===e?"":e))))(e,a,s,o))),(t=>a[3]=e=>((t,e)=>R(t,((t,a)=>{return e(t,...(s=a,JSON.parse(s,((t,e)=>""===e?void 0:e))));var s})))(e,t)),0,1),a[4]=[],a[5]=i(s)?s[1]:t=>0})))(L,S,f)),x(f,l,a),p(c,[S],l,1),a.on("message",(t=>{const e=t.toString("utf8");0==L[0]?m(e):h(L[4],e)})),1==L[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})(L),g(L[4],m),L[4]=[]),a.on("close",(()=>{E(f,l),p(c,[S],l,-1),H(f)&&(T(L),E(w,S),E(u,S),p(n,void 0,S,-1))}))}))))));const Q={getWebSocketServer:()=>a,getPathIds:()=>P(u),getClientIds:t=>P(I(u,t)),addPathIdsListener:t=>S(t,n),addClientIdsListener:(t,e)=>S(e,c,[t]),delListener:t=>(f(t),Q),getStats:()=>({paths:L(u),clients:m(u)}),destroy:()=>{u.clear(),k(w,T),a.close()}};return b(Q)};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t="",e=Promise,a=globalThis,s=Math,n=s.floor,o=t=>null==t,r=(t,e,a)=>o(t)?a?.():e(t),i=t=>Array.isArray(t),c=(t,e,a)=>t.slice(e,a),l=t=>t.length,d=t=>{throw Error(t)},g=(t,e)=>t.forEach(e),u=(t,e)=>t.map(e),y=(t,e,a)=>t.reduce(e,a),h=(t,...e)=>t.push(...e),v=t=>t.shift(),w=Object,S=t=>w.getPrototypeOf(t),p=w.entries,f=w.keys,b=w.freeze,A=(t,e)=>g(p(t),(([t,a])=>e(a,t))),C=t=>(t=>!o(t)&&r(S(t),(t=>t==w.prototype||o(S(t))),(()=>!0)))(t)&&0==(t=>l(f(t)))(t),M=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),L=t=>t?.size??0,m=(T=L,t=>y(D(t),((t,e)=>t+T(e)),0));var T;const H=t=>o(t)||0==L(t),D=t=>[...t?.values()??[]],k=(t,e)=>t?.forEach(e),E=(t,e)=>t?.delete(e),O=t=>new Map(t),P=t=>[...t?.keys()??[]],I=(t,e)=>t?.get(e),x=(t,e,a)=>o(a)?(E(t,e),t):t?.set(e,a),z=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.(I(t,e)):x(t,e,a()),I(t,e)},N=(t,e,a,s,n=0)=>r((a?z:I)(t,e[n],n>l(e)-2?a:O),(o=>{if(n>l(e)-2)return s?.(o)&&x(t,e[n]),o;const r=N(o,e,a,s,n+1);return H(o)&&x(t,e[n]),r})),R=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(c(t,0,a),c(t,a+1))},V=(t,e)=>t+"\n"+e;new a.TextEncoder;const J=(t,e)=>e?[t,e]:[t],W=(t,e)=>((t??"")>(e??"")?t:e)??"",$=(t="")=>J(((t=[])=>w.fromEntries(t))(),t),j=O(),F=O(),U="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(t);O(u(U,((t,e)=>[t,e])));const q=a.crypto?t=>a.crypto.getRandomValues(t):t=>u(t,(()=>n(256*s.random()))),B=t=>new Set(i(t)||o(t)?t:[t]),G=/^\d+$/,K=/\/([^?]*)/;exports.createWsServer=(a,s)=>{const n=O(),c=O(),u=O(),w=O(),[S,p,f]=(()=>{let e;const[a,s]=(()=>{const e=[];let a=0;return[s=>(s?v(e):null)??t+a++,t=>{G.test(t)&&l(e)<1e3&&h(e,t)}]})(),n=O();return[(s,o,r,i=[],c=()=>[])=>{e??=Q;const l=a(1);var d,g;return x(n,l,[s,o,r,i,c]),d=N(o,r??[t],B),g=l,d?.add(g),l},(a,s,...o)=>g(((e,a=[t])=>{const s=[],n=(t,e)=>e==l(a)?h(s,t):null===a[e]?k(t,(t=>n(t,e+1))):g([a[e],null],(a=>n(I(t,a),e+1)));return n(e,0),s})(a,s),(t=>k(t,(t=>I(n,t)[0](e,...s??[],...o))))),e=>r(I(n,e),(([,a,o])=>(N(a,o??[t],void 0,(t=>(E(t,e),H(t)?1:0))),x(n,e),s(e),o))),t=>r(I(n,t),(([t,,a=[],s,n])=>{const r=(...i)=>{const c=l(i);c==l(a)?t(e,...i,...n(i)):o(a[c])?g(s[c]?.(...i)??[],(t=>r(...i,t))):r(...i,a[c])};r()}))]})(),T=t=>{t[1]?.destroy(),t[2]?.destroy()},D=(e,a,s)=>n=>R(n,((n,o)=>{const r=V(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,k(a,((t,e)=>i(e,t)))):"S"===n?s[3]?.(r):I(a,n)?.send(r)}));a.on("connection",((a,l)=>r(l.url?.match(K),(([,S])=>r(l.headers["sec-websocket-key"],(async l=>{const f=z(u,S,O),L=z(w,S,(()=>[0])),m=D(l,f,L);H(f)&&(p(n,void 0,S,1),await(async(a,n,c)=>r(await(s?.(n)),(s=>{a[0]=1,a[1]=i(s)?s[0]:s;const n=D("S",c,a);a[2]=((t,a,s,n,c,l,g,u,w={})=>{let S,p=0,f=0;const L=O(),m=(t,e,s,n)=>{p++,a(t,e,s,n)},T=async(t,a,s="")=>new e(((e,n)=>{const o=((t=16)=>y(q(new Uint8Array(t)),((t,e)=>t+U[63&e]),""))(),r=setTimeout((()=>{E(L,o),n(`No response from ${t??"anyone"} to ${o}, `+a)}),1e3*c);x(L,o,[t,(t,a)=>{clearTimeout(r),E(L,o),e([t,a])}]),m(t,o,a,s)})),H=(t,[e,a])=>{A(e,(([e,a],s)=>{const n=M(t[0],s,$);A(e,(([t,e],a)=>{const s=M(n[0],a,$);A(t,(([t,e],a)=>s[0][a]=J(t,e))),s[1]=W(s[1],e)})),n[1]=W(n[1],a)})),t[1]=W(t[1],a)},D=async(e=null,a)=>{o(a)&&([a,e]=await T(e,1));const[s,n]=a,[r,i]=t.getMergeableContentHashes();let c=$();if(r!=s){const[a,s]=(await T(e,4,t.getMergeableTableHashes()))[0];if(c=a,!C(s)){const[a,n]=(await T(e,5,t.getMergeableRowHashes(s)))[0];if(H(c,a),!C(n)){const a=(await T(e,6,t.getMergeableCellHashes(n)))[0];H(c,a)}}}return[c,i==n?$():(await T(e,7,t.getMergeableValueHashes()))[0],1]},k=((t,e,a,s,n,c,l,g={},u=[])=>{let y,w,S,p=0,f=0,A=0;z(j,u,(()=>0)),z(F,u,(()=>[]));const[M,L,m,T,H]=((t=1,e)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,e.getTransactionMergeableChanges,([[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"))(l,t),D=e=>{(M&&i(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},k=async t=>(2!=p&&(p=1,f++,await N((async()=>{try{const t=await e();i(t)?D(t):d("Content is not an array "+t)}catch(e){t&&H(t)}p=0}))),R),E=()=>(w&&(n(w),w=void 0),R),O=async t=>(1!=p&&(p=2,A++,await N((async()=>{try{await a(L,t)}catch(t){}p=0}))),R),P=()=>(r(S,t.delListener),S=void 0,R),N=async(...t)=>(h(I(F,u),...t),await(async()=>{if(!I(j,u)){for(x(j,u,1);!o(y=v(I(F,u)));)try{await y()}catch(t){}x(j,u,0)}})(),R),R={load:k,startAutoLoad:async t=>{await E().load(t);try{w=await s((async(t,e)=>{e||t?2!=p&&(p=1,f++,D(e??t),p=0):await k()}))}catch(t){}return R},stopAutoLoad:E,isAutoLoading:()=>!o(w),save:O,startAutoSave:async()=>(await P().save(),S=t.addDidFinishTransactionListener((()=>{const t=m();T(t)&&O(t)})),R),stopAutoSave:P,isAutoSaving:()=>!o(S),schedule:N,getStore:()=>t,destroy:()=>(I(F,u).splice(0,void 0),E().stopAutoSave()),getStats:()=>({loads:f,saves:A}),...g};return b(R)})(t,(async()=>{const t=await D();return C(t[0][0])&&C(t[1][0])?void 0:t}),(async(e,a)=>a?m(null,null,3,a):m(null,null,2,t.getMergeableContentHashes())),(t=>S=t),(()=>S=void 0),0,2,{startSync:async t=>await(await k.startAutoLoad(t)).startAutoSave(),stopSync:()=>k.stopAutoLoad().stopAutoSave(),destroy:()=>k.stopSync(),getSynchronizerStats:()=>({sends:p,receives:f}),...w});return s(((e,a,s,n)=>{f++,0==s?r(I(L,a),(([t,a])=>o(t)||t==e?a(n,e):0)):2==s&&k.isAutoLoading()?D(e,n).then((t=>{S?.(void 0,t)})):3==s&&k.isAutoLoading()?S?.(void 0,n):r(1==s&&k.isAutoSaving()?t.getMergeableContentHashes():4==s?t.getMergeableTableDiff(n):5==s?t.getMergeableRowDiff(n):6==s?t.getMergeableCellDiff(n):7==s?t.getMergeableValueDiff(n):void 0,(t=>{m(e,a,0,t)}))})),k})(a[1].getStore(),((e,a,s,o)=>n(((e,...a)=>V(e??t,JSON.stringify(a,((t,e)=>void 0===e?"":e))))(e,a,s,o))),(t=>a[3]=e=>((t,e)=>R(t,((t,a)=>{return e(t,...(s=a,JSON.parse(s,((t,e)=>""===e?void 0:e))));var s})))(e,t)),0,1),a[4]=[],a[5]=i(s)?s[1]:t=>0})))(L,S,f)),x(f,l,a),p(c,[S],l,1),a.on("message",(t=>{const e=t.toString("utf8");0==L[0]?m(e):h(L[4],e)})),1==L[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})(L),g(L[4],m),L[4]=[]),a.on("close",(()=>{E(f,l),p(c,[S],l,-1),H(f)&&(T(L),E(w,S),E(u,S),p(n,void 0,S,-1))}))}))))));const Q={getWebSocketServer:()=>a,getPathIds:()=>P(u),getClientIds:t=>P(I(u,t)),addPathIdsListener:t=>S(t,n),addClientIdsListener:(t,e)=>S(e,c,[t]),delListener:t=>(f(t),Q),getStats:()=>({paths:L(u),clients:m(u)}),destroy:()=>{u.clear(),k(w,T),a.close()}};return b(Q)};
|
|
Binary file
|
|
@@ -617,32 +617,35 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
617
617
|
const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
|
|
618
618
|
() => wsServer,
|
|
619
619
|
);
|
|
620
|
-
const configureServerClient = (serverClient, pathId, clients) =>
|
|
621
|
-
ifNotUndefined(
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
620
|
+
const configureServerClient = async (serverClient, pathId, clients) =>
|
|
621
|
+
ifNotUndefined(
|
|
622
|
+
await createPersisterForPath?.(pathId),
|
|
623
|
+
(persisterMaybeThen) => {
|
|
624
|
+
serverClient[0 /* State */] = 1;
|
|
625
|
+
serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
|
|
626
|
+
? persisterMaybeThen[0]
|
|
627
|
+
: persisterMaybeThen;
|
|
628
|
+
const messageHandler = getMessageHandler(
|
|
629
|
+
SERVER_CLIENT_ID,
|
|
630
|
+
clients,
|
|
631
|
+
serverClient,
|
|
632
|
+
);
|
|
633
|
+
serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
|
|
634
|
+
serverClient[1 /* Persister */].getStore(),
|
|
635
|
+
(toClientId, requestId, message, body) =>
|
|
636
|
+
messageHandler(createPayload(toClientId, requestId, message, body)),
|
|
637
|
+
(receive) =>
|
|
638
|
+
(serverClient[3 /* Send */] = (payload) =>
|
|
639
|
+
receivePayload(payload, receive)),
|
|
640
|
+
() => {},
|
|
641
|
+
1,
|
|
642
|
+
);
|
|
643
|
+
serverClient[4 /* Buffer */] = [];
|
|
644
|
+
serverClient[5 /* Then */] = isArray(persisterMaybeThen)
|
|
645
|
+
? persisterMaybeThen[1]
|
|
646
|
+
: (_) => 0;
|
|
647
|
+
},
|
|
648
|
+
);
|
|
646
649
|
const startServerClient = async (serverClient) => {
|
|
647
650
|
serverClient[0 /* State */] = 2 /* Starting */;
|
|
648
651
|
await serverClient[1 /* Persister */].schedule(
|
|
@@ -689,7 +692,7 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
689
692
|
);
|
|
690
693
|
if (collIsEmpty(clients)) {
|
|
691
694
|
callListeners(pathIdListeners, void 0, pathId, 1);
|
|
692
|
-
configureServerClient(serverClient, pathId, clients);
|
|
695
|
+
await configureServerClient(serverClient, pathId, clients);
|
|
693
696
|
}
|
|
694
697
|
mapSet(clients, clientId, webSocket);
|
|
695
698
|
callListeners(clientIdListeners, [pathId], clientId, 1);
|
|
@@ -617,32 +617,35 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
617
617
|
const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
|
|
618
618
|
() => wsServer,
|
|
619
619
|
);
|
|
620
|
-
const configureServerClient = (serverClient, pathId, clients) =>
|
|
621
|
-
ifNotUndefined(
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
620
|
+
const configureServerClient = async (serverClient, pathId, clients) =>
|
|
621
|
+
ifNotUndefined(
|
|
622
|
+
await createPersisterForPath?.(pathId),
|
|
623
|
+
(persisterMaybeThen) => {
|
|
624
|
+
serverClient[0 /* State */] = 1;
|
|
625
|
+
serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
|
|
626
|
+
? persisterMaybeThen[0]
|
|
627
|
+
: persisterMaybeThen;
|
|
628
|
+
const messageHandler = getMessageHandler(
|
|
629
|
+
SERVER_CLIENT_ID,
|
|
630
|
+
clients,
|
|
631
|
+
serverClient,
|
|
632
|
+
);
|
|
633
|
+
serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
|
|
634
|
+
serverClient[1 /* Persister */].getStore(),
|
|
635
|
+
(toClientId, requestId, message, body) =>
|
|
636
|
+
messageHandler(createPayload(toClientId, requestId, message, body)),
|
|
637
|
+
(receive) =>
|
|
638
|
+
(serverClient[3 /* Send */] = (payload) =>
|
|
639
|
+
receivePayload(payload, receive)),
|
|
640
|
+
() => {},
|
|
641
|
+
1,
|
|
642
|
+
);
|
|
643
|
+
serverClient[4 /* Buffer */] = [];
|
|
644
|
+
serverClient[5 /* Then */] = isArray(persisterMaybeThen)
|
|
645
|
+
? persisterMaybeThen[1]
|
|
646
|
+
: (_) => 0;
|
|
647
|
+
},
|
|
648
|
+
);
|
|
646
649
|
const startServerClient = async (serverClient) => {
|
|
647
650
|
serverClient[0 /* State */] = 2 /* Starting */;
|
|
648
651
|
await serverClient[1 /* Persister */].schedule(
|
|
@@ -689,7 +692,7 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
|
|
|
689
692
|
);
|
|
690
693
|
if (collIsEmpty(clients)) {
|
|
691
694
|
callListeners(pathIdListeners, void 0, pathId, 1);
|
|
692
|
-
configureServerClient(serverClient, pathId, clients);
|
|
695
|
+
await configureServerClient(serverClient, pathId, clients);
|
|
693
696
|
}
|
|
694
697
|
mapSet(clients, clientId, webSocket);
|
|
695
698
|
callListeners(clientIdListeners, [pathId], clientId, 1);
|