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.
Files changed (43) hide show
  1. package/@types/synchronizers/synchronizer-ws-server/index.d.cts +4 -1
  2. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +4 -1
  3. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +6 -1
  4. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +6 -1
  5. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  6. package/cjs/es6/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  7. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  8. package/cjs/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  9. package/cjs/es6/synchronizers/synchronizer-ws-server/index.cjs +35 -29
  10. package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +35 -29
  11. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs +1 -1
  12. package/cjs/min/synchronizers/synchronizer-ws-server/index.cjs.gz +0 -0
  13. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +1 -1
  14. package/cjs/min/synchronizers/synchronizer-ws-server/with-schemas/index.cjs.gz +0 -0
  15. package/cjs/synchronizers/synchronizer-ws-server/index.cjs +30 -27
  16. package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +30 -27
  17. package/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  18. package/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  19. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  20. package/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  21. package/es6/synchronizers/synchronizer-ws-server/index.js +35 -29
  22. package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +35 -29
  23. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  24. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  25. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  26. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  27. package/package.json +3 -3
  28. package/readme.md +3 -3
  29. package/releases.md +4 -4
  30. package/synchronizers/synchronizer-ws-server/index.js +30 -27
  31. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +30 -27
  32. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  33. package/umd/es6/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  34. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  35. package/umd/es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  36. package/umd/es6/synchronizers/synchronizer-ws-server/index.js +35 -33
  37. package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +35 -33
  38. package/umd/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  39. package/umd/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  40. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  41. package/umd/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  42. package/umd/synchronizers/synchronizer-ws-server/index.js +32 -27
  43. 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($)};
@@ -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($)};
@@ -804,34 +804,40 @@ const createWsServer = (webSocketServer, createPersisterForPath) => {
804
804
  () => wsServer,
805
805
  );
806
806
  const configureServerClient = (serverClient, pathId, clients) =>
807
- ifNotUndefined(
808
- createPersisterForPath == null ? void 0 : createPersisterForPath(pathId),
809
- (persisterMaybeThen) => {
810
- serverClient[0 /* State */] = 1;
811
- serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
812
- ? persisterMaybeThen[0]
813
- : persisterMaybeThen;
814
- const messageHandler = getMessageHandler(
815
- SERVER_CLIENT_ID,
816
- clients,
817
- serverClient,
818
- );
819
- serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
820
- serverClient[1 /* Persister */].getStore(),
821
- (toClientId, requestId, message, body) =>
822
- messageHandler(createPayload(toClientId, requestId, message, body)),
823
- (receive) =>
824
- (serverClient[3 /* Send */] = (payload) =>
825
- receivePayload(payload, receive)),
826
- () => {},
827
- 1,
828
- );
829
- serverClient[4 /* Buffer */] = [];
830
- serverClient[5 /* Then */] = isArray(persisterMaybeThen)
831
- ? persisterMaybeThen[1]
832
- : (_) => 0;
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
- ifNotUndefined(
808
- createPersisterForPath == null ? void 0 : createPersisterForPath(pathId),
809
- (persisterMaybeThen) => {
810
- serverClient[0 /* State */] = 1;
811
- serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
812
- ? persisterMaybeThen[0]
813
- : persisterMaybeThen;
814
- const messageHandler = getMessageHandler(
815
- SERVER_CLIENT_ID,
816
- clients,
817
- serverClient,
818
- );
819
- serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
820
- serverClient[1 /* Persister */].getStore(),
821
- (toClientId, requestId, message, body) =>
822
- messageHandler(createPayload(toClientId, requestId, message, body)),
823
- (receive) =>
824
- (serverClient[3 /* Send */] = (payload) =>
825
- receivePayload(payload, receive)),
826
- () => {},
827
- 1,
828
- );
829
- serverClient[4 /* Buffer */] = [];
830
- serverClient[5 /* Then */] = isArray(persisterMaybeThen)
831
- ? persisterMaybeThen[1]
832
- : (_) => 0;
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 e="",t=Promise,a=globalThis,s=Math,n=s.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=e=>Array.isArray(e),c=(e,t,a)=>e.slice(t,a),l=e=>e.length,d=e=>{throw Error(e)},g=(e,t)=>e.forEach(t),u=(e,t)=>e.map(t),y=(e,t,a)=>e.reduce(t,a),h=(e,...t)=>e.push(...t),v=e=>e.shift(),S=Object,w=e=>S.getPrototypeOf(e),p=S.entries,f=S.keys,b=S.freeze,A=(e,t)=>g(p(e),(([e,a])=>t(a,e))),C=e=>(e=>!o(e)&&r(w(e),(e=>e==S.prototype||o(w(e))),(()=>!0)))(e)&&0==(e=>l(f(e)))(e),M=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),L=e=>e?.size??0,m=(T=L,e=>y(D(e),((e,t)=>e+T(t)),0));var T;const H=e=>o(e)||0==L(e),D=e=>[...e?.values()??[]],k=(e,t)=>e?.forEach(t),E=(e,t)=>e?.delete(t),O=e=>new Map(e),P=e=>[...e?.keys()??[]],I=(e,t)=>e?.get(t),x=(e,t,a)=>o(a)?(E(e,t),e):e?.set(t,a),z=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(I(e,t)):x(e,t,a()),I(e,t)},N=(e,t,a,s,n=0)=>r((a?z:I)(e,t[n],n>l(t)-2?a:O),(o=>{if(n>l(t)-2)return s?.(o)&&x(e,t[n]),o;const r=N(o,t,a,s,n+1);return H(o)&&x(e,t[n]),r})),R=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(c(e,0,a),c(e,a+1))},V=(e,t)=>e+"\n"+t;new a.TextEncoder;const J=(e,t)=>t?[e,t]:[e],W=(e,t)=>((e??"")>(t??"")?e:t)??"",$=(e="")=>J(((e=[])=>S.fromEntries(e))(),e),j=O(),F=O(),U="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e);O(u(U,((e,t)=>[e,t])));const q=a.crypto?e=>a.crypto.getRandomValues(e):e=>u(e,(()=>n(256*s.random()))),B=e=>new Set(i(e)||o(e)?e:[e]),G=/^\d+$/,K=/\/([^?]*)/;exports.createWsServer=(a,s)=>{const n=O(),c=O(),u=O(),S=O(),[w,p,f]=(()=>{let t;const[a,s]=(()=>{const t=[];let a=0;return[s=>(s?v(t):null)??e+a++,e=>{G.test(e)&&l(t)<1e3&&h(t,e)}]})(),n=O();return[(s,o,r,i=[],c=()=>[])=>{t??=Q;const l=a(1);var d,g;return x(n,l,[s,o,r,i,c]),d=N(o,r??[e],B),g=l,d?.add(g),l},(a,s,...o)=>g(((t,a=[e])=>{const s=[],n=(e,t)=>t==l(a)?h(s,e):null===a[t]?k(e,(e=>n(e,t+1))):g([a[t],null],(a=>n(I(e,a),t+1)));return n(t,0),s})(a,s),(e=>k(e,(e=>I(n,e)[0](t,...s??[],...o))))),t=>r(I(n,t),(([,a,o])=>(N(a,o??[e],void 0,(e=>(E(e,t),H(e)?1:0))),x(n,t),s(t),o))),e=>r(I(n,e),(([e,,a=[],s,n])=>{const r=(...i)=>{const c=l(i);c==l(a)?e(t,...i,...n(i)):o(a[c])?g(s[c]?.(...i)??[],(e=>r(...i,e))):r(...i,a[c])};r()}))]})(),T=e=>{e[1]?.destroy(),e[2]?.destroy()},D=(t,a,s)=>n=>R(n,((n,o)=>{const r=V(t,o);var i;n===e?("S"!==t&&s[3]?.(r),i=(e,a)=>e!==t?a.send(r):0,k(a,((e,t)=>i(t,e)))):"S"===n?s[3]?.(r):I(a,n)?.send(r)}));a.on("connection",((a,l)=>r(l.url?.match(K),(([,w])=>r(l.headers["sec-websocket-key"],(async l=>{const f=z(u,w,O),L=z(S,w,(()=>[0])),m=D(l,f,L);H(f)&&(p(n,void 0,w,1),((a,n,c)=>{r(s?.(n),(s=>{a[0]=1,a[1]=i(s)?s[0]:s;const n=D("S",c,a);a[2]=((e,a,s,n,c,l,g,u,S={})=>{let w,p=0,f=0;const L=O(),m=(e,t,s,n)=>{p++,a(e,t,s,n)},T=async(e,a,s="")=>new t(((t,n)=>{const o=((e=16)=>y(q(new Uint8Array(e)),((e,t)=>e+U[63&t]),""))(),r=setTimeout((()=>{E(L,o),n(`No response from ${e??"anyone"} to ${o}, `+a)}),1e3*c);x(L,o,[e,(e,a)=>{clearTimeout(r),E(L,o),t([e,a])}]),m(e,o,a,s)})),H=(e,[t,a])=>{A(t,(([t,a],s)=>{const n=M(e[0],s,$);A(t,(([e,t],a)=>{const s=M(n[0],a,$);A(e,(([e,t],a)=>s[0][a]=J(e,t))),s[1]=W(s[1],t)})),n[1]=W(n[1],a)})),e[1]=W(e[1],a)},D=async(t=null,a)=>{o(a)&&([a,t]=await T(t,1));const[s,n]=a,[r,i]=e.getMergeableContentHashes();let c=$();if(r!=s){const[a,s]=(await T(t,4,e.getMergeableTableHashes()))[0];if(c=a,!C(s)){const[a,n]=(await T(t,5,e.getMergeableRowHashes(s)))[0];if(H(c,a),!C(n)){const a=(await T(t,6,e.getMergeableCellHashes(n)))[0];H(c,a)}}}return[c,i==n?$():(await T(t,7,e.getMergeableValueHashes()))[0],1]},k=((e,t,a,s,n,c,l,g={},u=[])=>{let y,S,w,p=0,f=0,A=0;z(j,u,(()=>0)),z(F,u,(()=>[]));const[M,L,m,T,H]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!C(e)||!C(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!C(e)||!C(t),t.setContent]:d("Store type not supported by this Persister"))(l,e),D=t=>{(M&&i(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},k=async e=>(2!=p&&(p=1,f++,await N((async()=>{try{const e=await t();i(e)?D(e):d("Content is not an array "+e)}catch(t){e&&H(e)}p=0}))),R),E=()=>(S&&(n(S),S=void 0),R),O=async e=>(1!=p&&(p=2,A++,await N((async()=>{try{await a(L,e)}catch(e){}p=0}))),R),P=()=>(r(w,e.delListener),w=void 0,R),N=async(...e)=>(h(I(F,u),...e),await(async()=>{if(!I(j,u)){for(x(j,u,1);!o(y=v(I(F,u)));)try{await y()}catch(e){}x(j,u,0)}})(),R),R={load:k,startAutoLoad:async e=>{await E().load(e);try{S=await s((async(e,t)=>{t||e?2!=p&&(p=1,f++,D(t??e),p=0):await k()}))}catch(e){}return R},stopAutoLoad:E,isAutoLoading:()=>!o(S),save:O,startAutoSave:async()=>(await P().save(),w=e.addDidFinishTransactionListener((()=>{const e=m();T(e)&&O(e)})),R),stopAutoSave:P,isAutoSaving:()=>!o(w),schedule:N,getStore:()=>e,destroy:()=>(I(F,u).splice(0,void 0),E().stopAutoSave()),getStats:()=>({loads:f,saves:A}),...g};return b(R)})(e,(async()=>{const e=await D();return C(e[0][0])&&C(e[1][0])?void 0:e}),(async(t,a)=>a?m(null,null,3,a):m(null,null,2,e.getMergeableContentHashes())),(e=>w=e),(()=>w=void 0),0,2,{startSync:async e=>await(await k.startAutoLoad(e)).startAutoSave(),stopSync:()=>k.stopAutoLoad().stopAutoSave(),destroy:()=>k.stopSync(),getSynchronizerStats:()=>({sends:p,receives:f}),...S});return s(((t,a,s,n)=>{f++,0==s?r(I(L,a),(([e,a])=>o(e)||e==t?a(n,t):0)):2==s&&k.isAutoLoading()?D(t,n).then((e=>{w?.(void 0,e)})):3==s&&k.isAutoLoading()?w?.(void 0,n):r(1==s&&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=>{m(t,a,0,e)}))})),k})(a[1].getStore(),((t,a,s,o)=>n(((t,...a)=>V(t??e,JSON.stringify(a,((e,t)=>void 0===t?"":t))))(t,a,s,o))),(e=>a[3]=t=>((e,t)=>R(e,((e,a)=>{return t(e,...(s=a,JSON.parse(s,((e,t)=>""===t?void 0:t))));var s})))(t,e)),0,1),a[4]=[],a[5]=i(s)?s[1]:e=>0}))})(L,w,f)),x(f,l,a),p(c,[w],l,1),a.on("message",(e=>{const t=e.toString("utf8");0==L[0]?m(t):h(L[4],t)})),1==L[0]&&(await(async e=>{e[0]=2,await e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})(L),g(L[4],m),L[4]=[]),a.on("close",(()=>{E(f,l),p(c,[w],l,-1),H(f)&&(T(L),E(S,w),E(u,w),p(n,void 0,w,-1))}))}))))));const Q={getWebSocketServer:()=>a,getPathIds:()=>P(u),getClientIds:e=>P(I(u,e)),addPathIdsListener:e=>w(e,n),addClientIdsListener:(e,t)=>w(t,c,[e]),delListener:e=>(f(e),Q),getStats:()=>({paths:L(u),clients:m(u)}),destroy:()=>{u.clear(),k(S,T),a.close()}};return b(Q)};
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)};
@@ -1 +1 @@
1
- "use strict";const e="",t=Promise,a=globalThis,s=Math,n=s.floor,o=e=>null==e,r=(e,t,a)=>o(e)?a?.():t(e),i=e=>Array.isArray(e),c=(e,t,a)=>e.slice(t,a),l=e=>e.length,d=e=>{throw Error(e)},g=(e,t)=>e.forEach(t),u=(e,t)=>e.map(t),y=(e,t,a)=>e.reduce(t,a),h=(e,...t)=>e.push(...t),v=e=>e.shift(),S=Object,w=e=>S.getPrototypeOf(e),p=S.entries,f=S.keys,b=S.freeze,A=(e,t)=>g(p(e),(([e,a])=>t(a,e))),C=e=>(e=>!o(e)&&r(w(e),(e=>e==S.prototype||o(w(e))),(()=>!0)))(e)&&0==(e=>l(f(e)))(e),M=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),L=e=>e?.size??0,m=(T=L,e=>y(D(e),((e,t)=>e+T(t)),0));var T;const H=e=>o(e)||0==L(e),D=e=>[...e?.values()??[]],k=(e,t)=>e?.forEach(t),E=(e,t)=>e?.delete(t),O=e=>new Map(e),P=e=>[...e?.keys()??[]],I=(e,t)=>e?.get(t),x=(e,t,a)=>o(a)?(E(e,t),e):e?.set(t,a),z=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)?s?.(I(e,t)):x(e,t,a()),I(e,t)},N=(e,t,a,s,n=0)=>r((a?z:I)(e,t[n],n>l(t)-2?a:O),(o=>{if(n>l(t)-2)return s?.(o)&&x(e,t[n]),o;const r=N(o,t,a,s,n+1);return H(o)&&x(e,t[n]),r})),R=(e,t)=>{const a=e.indexOf("\n");-1!==a&&t(c(e,0,a),c(e,a+1))},V=(e,t)=>e+"\n"+t;new a.TextEncoder;const J=(e,t)=>t?[e,t]:[e],W=(e,t)=>((e??"")>(t??"")?e:t)??"",$=(e="")=>J(((e=[])=>S.fromEntries(e))(),e),j=O(),F=O(),U="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(e);O(u(U,((e,t)=>[e,t])));const q=a.crypto?e=>a.crypto.getRandomValues(e):e=>u(e,(()=>n(256*s.random()))),B=e=>new Set(i(e)||o(e)?e:[e]),G=/^\d+$/,K=/\/([^?]*)/;exports.createWsServer=(a,s)=>{const n=O(),c=O(),u=O(),S=O(),[w,p,f]=(()=>{let t;const[a,s]=(()=>{const t=[];let a=0;return[s=>(s?v(t):null)??e+a++,e=>{G.test(e)&&l(t)<1e3&&h(t,e)}]})(),n=O();return[(s,o,r,i=[],c=()=>[])=>{t??=Q;const l=a(1);var d,g;return x(n,l,[s,o,r,i,c]),d=N(o,r??[e],B),g=l,d?.add(g),l},(a,s,...o)=>g(((t,a=[e])=>{const s=[],n=(e,t)=>t==l(a)?h(s,e):null===a[t]?k(e,(e=>n(e,t+1))):g([a[t],null],(a=>n(I(e,a),t+1)));return n(t,0),s})(a,s),(e=>k(e,(e=>I(n,e)[0](t,...s??[],...o))))),t=>r(I(n,t),(([,a,o])=>(N(a,o??[e],void 0,(e=>(E(e,t),H(e)?1:0))),x(n,t),s(t),o))),e=>r(I(n,e),(([e,,a=[],s,n])=>{const r=(...i)=>{const c=l(i);c==l(a)?e(t,...i,...n(i)):o(a[c])?g(s[c]?.(...i)??[],(e=>r(...i,e))):r(...i,a[c])};r()}))]})(),T=e=>{e[1]?.destroy(),e[2]?.destroy()},D=(t,a,s)=>n=>R(n,((n,o)=>{const r=V(t,o);var i;n===e?("S"!==t&&s[3]?.(r),i=(e,a)=>e!==t?a.send(r):0,k(a,((e,t)=>i(t,e)))):"S"===n?s[3]?.(r):I(a,n)?.send(r)}));a.on("connection",((a,l)=>r(l.url?.match(K),(([,w])=>r(l.headers["sec-websocket-key"],(async l=>{const f=z(u,w,O),L=z(S,w,(()=>[0])),m=D(l,f,L);H(f)&&(p(n,void 0,w,1),((a,n,c)=>{r(s?.(n),(s=>{a[0]=1,a[1]=i(s)?s[0]:s;const n=D("S",c,a);a[2]=((e,a,s,n,c,l,g,u,S={})=>{let w,p=0,f=0;const L=O(),m=(e,t,s,n)=>{p++,a(e,t,s,n)},T=async(e,a,s="")=>new t(((t,n)=>{const o=((e=16)=>y(q(new Uint8Array(e)),((e,t)=>e+U[63&t]),""))(),r=setTimeout((()=>{E(L,o),n(`No response from ${e??"anyone"} to ${o}, `+a)}),1e3*c);x(L,o,[e,(e,a)=>{clearTimeout(r),E(L,o),t([e,a])}]),m(e,o,a,s)})),H=(e,[t,a])=>{A(t,(([t,a],s)=>{const n=M(e[0],s,$);A(t,(([e,t],a)=>{const s=M(n[0],a,$);A(e,(([e,t],a)=>s[0][a]=J(e,t))),s[1]=W(s[1],t)})),n[1]=W(n[1],a)})),e[1]=W(e[1],a)},D=async(t=null,a)=>{o(a)&&([a,t]=await T(t,1));const[s,n]=a,[r,i]=e.getMergeableContentHashes();let c=$();if(r!=s){const[a,s]=(await T(t,4,e.getMergeableTableHashes()))[0];if(c=a,!C(s)){const[a,n]=(await T(t,5,e.getMergeableRowHashes(s)))[0];if(H(c,a),!C(n)){const a=(await T(t,6,e.getMergeableCellHashes(n)))[0];H(c,a)}}}return[c,i==n?$():(await T(t,7,e.getMergeableValueHashes()))[0],1]},k=((e,t,a,s,n,c,l,g={},u=[])=>{let y,S,w,p=0,f=0,A=0;z(j,u,(()=>0)),z(F,u,(()=>[]));const[M,L,m,T,H]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!C(e)||!C(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!C(e)||!C(t),t.setContent]:d("Store type not supported by this Persister"))(l,e),D=t=>{(M&&i(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},k=async e=>(2!=p&&(p=1,f++,await N((async()=>{try{const e=await t();i(e)?D(e):d("Content is not an array "+e)}catch(t){e&&H(e)}p=0}))),R),E=()=>(S&&(n(S),S=void 0),R),O=async e=>(1!=p&&(p=2,A++,await N((async()=>{try{await a(L,e)}catch(e){}p=0}))),R),P=()=>(r(w,e.delListener),w=void 0,R),N=async(...e)=>(h(I(F,u),...e),await(async()=>{if(!I(j,u)){for(x(j,u,1);!o(y=v(I(F,u)));)try{await y()}catch(e){}x(j,u,0)}})(),R),R={load:k,startAutoLoad:async e=>{await E().load(e);try{S=await s((async(e,t)=>{t||e?2!=p&&(p=1,f++,D(t??e),p=0):await k()}))}catch(e){}return R},stopAutoLoad:E,isAutoLoading:()=>!o(S),save:O,startAutoSave:async()=>(await P().save(),w=e.addDidFinishTransactionListener((()=>{const e=m();T(e)&&O(e)})),R),stopAutoSave:P,isAutoSaving:()=>!o(w),schedule:N,getStore:()=>e,destroy:()=>(I(F,u).splice(0,void 0),E().stopAutoSave()),getStats:()=>({loads:f,saves:A}),...g};return b(R)})(e,(async()=>{const e=await D();return C(e[0][0])&&C(e[1][0])?void 0:e}),(async(t,a)=>a?m(null,null,3,a):m(null,null,2,e.getMergeableContentHashes())),(e=>w=e),(()=>w=void 0),0,2,{startSync:async e=>await(await k.startAutoLoad(e)).startAutoSave(),stopSync:()=>k.stopAutoLoad().stopAutoSave(),destroy:()=>k.stopSync(),getSynchronizerStats:()=>({sends:p,receives:f}),...S});return s(((t,a,s,n)=>{f++,0==s?r(I(L,a),(([e,a])=>o(e)||e==t?a(n,t):0)):2==s&&k.isAutoLoading()?D(t,n).then((e=>{w?.(void 0,e)})):3==s&&k.isAutoLoading()?w?.(void 0,n):r(1==s&&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=>{m(t,a,0,e)}))})),k})(a[1].getStore(),((t,a,s,o)=>n(((t,...a)=>V(t??e,JSON.stringify(a,((e,t)=>void 0===t?"":t))))(t,a,s,o))),(e=>a[3]=t=>((e,t)=>R(e,((e,a)=>{return t(e,...(s=a,JSON.parse(s,((e,t)=>""===t?void 0:t))));var s})))(t,e)),0,1),a[4]=[],a[5]=i(s)?s[1]:e=>0}))})(L,w,f)),x(f,l,a),p(c,[w],l,1),a.on("message",(e=>{const t=e.toString("utf8");0==L[0]?m(t):h(L[4],t)})),1==L[0]&&(await(async e=>{e[0]=2,await e[1].schedule(e[1].startAutoLoad,e[1].startAutoSave,e[2].startSync),e[5](e[1].getStore()),e[0]=0})(L),g(L[4],m),L[4]=[]),a.on("close",(()=>{E(f,l),p(c,[w],l,-1),H(f)&&(T(L),E(S,w),E(u,w),p(n,void 0,w,-1))}))}))))));const Q={getWebSocketServer:()=>a,getPathIds:()=>P(u),getClientIds:e=>P(I(u,e)),addPathIdsListener:e=>w(e,n),addClientIdsListener:(e,t)=>w(t,c,[e]),delListener:e=>(f(e),Q),getStats:()=>({paths:L(u),clients:m(u)}),destroy:()=>{u.clear(),k(S,T),a.close()}};return b(Q)};
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)};
@@ -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(createPersisterForPath?.(pathId), (persisterMaybeThen) => {
622
- serverClient[0 /* State */] = 1;
623
- serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
624
- ? persisterMaybeThen[0]
625
- : persisterMaybeThen;
626
- const messageHandler = getMessageHandler(
627
- SERVER_CLIENT_ID,
628
- clients,
629
- serverClient,
630
- );
631
- serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
632
- serverClient[1 /* Persister */].getStore(),
633
- (toClientId, requestId, message, body) =>
634
- messageHandler(createPayload(toClientId, requestId, message, body)),
635
- (receive) =>
636
- (serverClient[3 /* Send */] = (payload) =>
637
- receivePayload(payload, receive)),
638
- () => {},
639
- 1,
640
- );
641
- serverClient[4 /* Buffer */] = [];
642
- serverClient[5 /* Then */] = isArray(persisterMaybeThen)
643
- ? persisterMaybeThen[1]
644
- : (_) => 0;
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(createPersisterForPath?.(pathId), (persisterMaybeThen) => {
622
- serverClient[0 /* State */] = 1;
623
- serverClient[1 /* Persister */] = isArray(persisterMaybeThen)
624
- ? persisterMaybeThen[0]
625
- : persisterMaybeThen;
626
- const messageHandler = getMessageHandler(
627
- SERVER_CLIENT_ID,
628
- clients,
629
- serverClient,
630
- );
631
- serverClient[2 /* Synchronizer */] = createCustomSynchronizer(
632
- serverClient[1 /* Persister */].getStore(),
633
- (toClientId, requestId, message, body) =>
634
- messageHandler(createPayload(toClientId, requestId, message, body)),
635
- (receive) =>
636
- (serverClient[3 /* Send */] = (payload) =>
637
- receivePayload(payload, receive)),
638
- () => {},
639
- 1,
640
- );
641
- serverClient[4 /* Buffer */] = [];
642
- serverClient[5 /* Then */] = isArray(persisterMaybeThen)
643
- ? persisterMaybeThen[1]
644
- : (_) => 0;
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);