tinybase 5.0.2 → 5.0.4
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 +32 -27
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +32 -27
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +32 -27
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +32 -27
- 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 +4 -6
- package/cjs/es6/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +4 -6
- 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 +4 -4
- package/cjs/synchronizers/synchronizer-ws-server/with-schemas/index.cjs +4 -4
- 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 +4 -6
- package/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +4 -6
- 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 +4 -1
- package/readme.md +2 -2
- package/releases.md +1 -1
- package/synchronizers/synchronizer-ws-server/index.js +4 -4
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +4 -4
- 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 +4 -6
- package/umd/es6/synchronizers/synchronizer-ws-server/with-schemas/index.js +4 -6
- 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 +4 -6
- package/umd/synchronizers/synchronizer-ws-server/with-schemas/index.js +4 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,n=(e,n,s)=>t(e)?s?.():n(e),s=(e,t,n)=>e.slice(t,n),r=e=>e.length,o=(e,t)=>e.forEach(t),c=(e,...t)=>e.push(...t),i=Object.freeze,d=e=>e?.size??0,a=(l=d,e=>{return t=(e,t)=>e+l(t),f(e).reduce(t,0);var t});var l;const u=e=>t(e)||0==d(e),f=e=>[...e?.values()??[]],h=(e,t)=>e?.forEach(t),v=(e,t)=>e?.delete(t),y=e=>new Map(e),g=e=>[...e?.keys()??[]],p=(e,t)=>e?.get(t),S=(e,n,s)=>t(s)?(v(e,n),e):e?.set(n,s),b=(e,t,n,s)=>{var r,o;return r=e,o=t,r?.has(o)?s?.(p(e,t)):S(e,t,n()),p(e,t)},k=(e,t,s,o,c=0)=>n((s?b:p)(e,t[c],c>r(t)-2?s:y),(n=>{if(c>r(t)-2)return o?.(n)&&S(e,t[c]),n;const i=k(n,t,s,o,c+1);return u(n)&&S(e,t[c]),i})),m=e=>new Set(Array.isArray(e)||t(e)?e:[e]),x=/^\d+$/,z=/\/([^?]*)/;e.createWsServer=e=>{const l=y(),f=y(),I=y(),[w,L,T]=(e=>{let s;const[i,d]=(()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??""+t++,t=>{x.test(t)&&r(e)<1e3&&c(e,t)}]})(),a=y();return[(e,t,n,r=[],o=(()=>[]))=>{s??=W;const c=i(1);var d,l;return S(a,c,[e,t,n,r,o]),d=k(t,n??[""],m),l=c,d?.add(l),c},(e,t,...n)=>o(((e,t=[""])=>{const n=[],s=(e,i)=>i==r(t)?c(n,e):null===t[i]?h(e,(e=>s(e,i+1))):o([t[i],null],(t=>s(p(e,t),i+1)));return s(e,0),n})(e,t),(e=>h(e,(e=>p(a,e)[0](s,...t??[],...n))))),e=>n(p(a,e),(([,t,n])=>(k(t,n??[""],void 0,(t=>(v(t,e),u(t)?1:0))),S(a,e),d(e),n))),e=>n(p(a,e),(([e,,n=[],c,i])=>{const d=(...a)=>{const l=r(a);l==r(n)?e(s,...a,...i(a)):t(n[l])?o(c[l]?.(...a)??[],(e=>d(...a,e))):d(...a,n[l])};d()}))]})();e.on("connection",((e,t)=>n(t.url?.match(z),(([,r])=>n(t.headers["sec-websocket-key"],(t=>{const n=b(I,r,y);S(n,t,e),1==n.size&&L(l,void 0,
|
|
1
|
+
var e,t;e=this,t=function(e){"use strict";const t=e=>null==e,n=(e,n,s)=>t(e)?s?.():n(e),s=(e,t,n)=>e.slice(t,n),r=e=>e.length,o=(e,t)=>e.forEach(t),c=(e,...t)=>e.push(...t),i=Object.freeze,d=e=>e?.size??0,a=(l=d,e=>{return t=(e,t)=>e+l(t),f(e).reduce(t,0);var t});var l;const u=e=>t(e)||0==d(e),f=e=>[...e?.values()??[]],h=(e,t)=>e?.forEach(t),v=(e,t)=>e?.delete(t),y=e=>new Map(e),g=e=>[...e?.keys()??[]],p=(e,t)=>e?.get(t),S=(e,n,s)=>t(s)?(v(e,n),e):e?.set(n,s),b=(e,t,n,s)=>{var r,o;return r=e,o=t,r?.has(o)?s?.(p(e,t)):S(e,t,n()),p(e,t)},k=(e,t,s,o,c=0)=>n((s?b:p)(e,t[c],c>r(t)-2?s:y),(n=>{if(c>r(t)-2)return o?.(n)&&S(e,t[c]),n;const i=k(n,t,s,o,c+1);return u(n)&&S(e,t[c]),i})),m=e=>new Set(Array.isArray(e)||t(e)?e:[e]),x=/^\d+$/,z=/\/([^?]*)/;e.createWsServer=e=>{const l=y(),f=y(),I=y(),[w,L,T]=(e=>{let s;const[i,d]=(()=>{const e=[];let t=0;return[n=>(n?e.shift():null)??""+t++,t=>{x.test(t)&&r(e)<1e3&&c(e,t)}]})(),a=y();return[(e,t,n,r=[],o=(()=>[]))=>{s??=W;const c=i(1);var d,l;return S(a,c,[e,t,n,r,o]),d=k(t,n??[""],m),l=c,d?.add(l),c},(e,t,...n)=>o(((e,t=[""])=>{const n=[],s=(e,i)=>i==r(t)?c(n,e):null===t[i]?h(e,(e=>s(e,i+1))):o([t[i],null],(t=>s(p(e,t),i+1)));return s(e,0),n})(e,t),(e=>h(e,(e=>p(a,e)[0](s,...t??[],...n))))),e=>n(p(a,e),(([,t,n])=>(k(t,n??[""],void 0,(t=>(v(t,e),u(t)?1:0))),S(a,e),d(e),n))),e=>n(p(a,e),(([e,,n=[],c,i])=>{const d=(...a)=>{const l=r(a);l==r(n)?e(s,...a,...i(a)):t(n[l])?o(c[l]?.(...a)??[],(e=>d(...a,e))):d(...a,n[l])};d()}))]})();e.on("connection",((e,t)=>n(t.url?.match(z),(([,r])=>n(t.headers["sec-websocket-key"],(t=>{const n=b(I,r,y);S(n,t,e),1==n.size&&L(l,void 0,r,1),L(f,[r],t,1),e.on("message",(e=>{const r=e.toString("utf8"),o=r.indexOf("\n");if(-1!==o){const e=s(r,0,o),i=s(r,o+1);""===e?(c=(e,n)=>e!=t?n.send(t+"\n"+i):0,h(n,((e,t)=>c(t,e)))):p(n,e)?.send(t+"\n"+i)}var c})),e.on("close",(()=>{v(n,t),L(f,[r],t,-1),u(n)&&(v(I,r),L(l,void 0,r,-1))}))}))))));const W={getWebSocketServer:()=>e,getPathIds:()=>g(I),getClientIds:e=>g(p(I,e)),addPathIdsListener:e=>w(e,l),addClientIdsListener:(e,t)=>w(t,f,[e]),delListener:e=>(T(e),W),getStats:()=>({paths:d(I),clients:a(I)}),destroy:()=>{e.close(),I.clear()}};return i(W)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseSynchronizerWsServer={});
|
|
Binary file
|
|
@@ -190,9 +190,9 @@
|
|
|
190
190
|
const clients = mapEnsure(clientsByPath, pathId, mapNew);
|
|
191
191
|
mapSet(clients, clientId, webSocket);
|
|
192
192
|
if (clients.size == 1) {
|
|
193
|
-
callListeners(pathIdListeners, void 0,
|
|
193
|
+
callListeners(pathIdListeners, void 0, pathId, 1);
|
|
194
194
|
}
|
|
195
|
-
callListeners(clientIdListeners, [pathId],
|
|
195
|
+
callListeners(clientIdListeners, [pathId], clientId, 1);
|
|
196
196
|
webSocket.on('message', (data) => {
|
|
197
197
|
const payload = data.toString(UTF8);
|
|
198
198
|
const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
|
|
@@ -214,12 +214,10 @@
|
|
|
214
214
|
});
|
|
215
215
|
webSocket.on('close', () => {
|
|
216
216
|
collDel(clients, clientId);
|
|
217
|
-
callListeners(clientIdListeners, [pathId],
|
|
218
|
-
[clientId]: -1,
|
|
219
|
-
}));
|
|
217
|
+
callListeners(clientIdListeners, [pathId], clientId, -1);
|
|
220
218
|
if (collIsEmpty(clients)) {
|
|
221
219
|
collDel(clientsByPath, pathId);
|
|
222
|
-
callListeners(pathIdListeners, void 0,
|
|
220
|
+
callListeners(pathIdListeners, void 0, pathId, -1);
|
|
223
221
|
}
|
|
224
222
|
});
|
|
225
223
|
}),
|
|
@@ -190,9 +190,9 @@
|
|
|
190
190
|
const clients = mapEnsure(clientsByPath, pathId, mapNew);
|
|
191
191
|
mapSet(clients, clientId, webSocket);
|
|
192
192
|
if (clients.size == 1) {
|
|
193
|
-
callListeners(pathIdListeners, void 0,
|
|
193
|
+
callListeners(pathIdListeners, void 0, pathId, 1);
|
|
194
194
|
}
|
|
195
|
-
callListeners(clientIdListeners, [pathId],
|
|
195
|
+
callListeners(clientIdListeners, [pathId], clientId, 1);
|
|
196
196
|
webSocket.on('message', (data) => {
|
|
197
197
|
const payload = data.toString(UTF8);
|
|
198
198
|
const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
|
|
@@ -214,12 +214,10 @@
|
|
|
214
214
|
});
|
|
215
215
|
webSocket.on('close', () => {
|
|
216
216
|
collDel(clients, clientId);
|
|
217
|
-
callListeners(clientIdListeners, [pathId],
|
|
218
|
-
[clientId]: -1,
|
|
219
|
-
}));
|
|
217
|
+
callListeners(clientIdListeners, [pathId], clientId, -1);
|
|
220
218
|
if (collIsEmpty(clients)) {
|
|
221
219
|
collDel(clientsByPath, pathId);
|
|
222
|
-
callListeners(pathIdListeners, void 0,
|
|
220
|
+
callListeners(pathIdListeners, void 0, pathId, -1);
|
|
223
221
|
}
|
|
224
222
|
});
|
|
225
223
|
}),
|