@hocuspocus/provider 4.0.0-rc.0 → 4.0.0-rc.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/dist/hocuspocus-provider.cjs +30 -4
- package/dist/hocuspocus-provider.cjs.map +1 -1
- package/dist/hocuspocus-provider.esm.js +30 -4
- package/dist/hocuspocus-provider.esm.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/package.json +3 -3
- package/src/HocuspocusProvider.ts +1 -1
- package/src/HocuspocusProviderWebsocket.ts +44 -4
|
@@ -1109,7 +1109,10 @@ var CloseMessage = class extends OutgoingMessage {
|
|
|
1109
1109
|
|
|
1110
1110
|
//#endregion
|
|
1111
1111
|
//#region packages/provider/src/HocuspocusProviderWebsocket.ts
|
|
1112
|
-
var HocuspocusProviderWebsocket = class extends EventEmitter {
|
|
1112
|
+
var HocuspocusProviderWebsocket = class HocuspocusProviderWebsocket extends EventEmitter {
|
|
1113
|
+
static {
|
|
1114
|
+
this.DEDUPLICATABLE_TYPES = new Set([MessageType.Awareness, MessageType.QueryAwareness]);
|
|
1115
|
+
}
|
|
1113
1116
|
constructor(configuration) {
|
|
1114
1117
|
super();
|
|
1115
1118
|
this.messageQueue = [];
|
|
@@ -1358,9 +1361,32 @@ var HocuspocusProviderWebsocket = class extends EventEmitter {
|
|
|
1358
1361
|
console.error(e);
|
|
1359
1362
|
}
|
|
1360
1363
|
}
|
|
1364
|
+
parseQueuedMessage(message) {
|
|
1365
|
+
try {
|
|
1366
|
+
const decoder = createDecoder(message);
|
|
1367
|
+
return {
|
|
1368
|
+
documentName: readVarString(decoder),
|
|
1369
|
+
messageType: readVarUint(decoder)
|
|
1370
|
+
};
|
|
1371
|
+
} catch {
|
|
1372
|
+
return null;
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
addToQueue(message) {
|
|
1376
|
+
if (message instanceof Uint8Array) {
|
|
1377
|
+
const parsed = this.parseQueuedMessage(message);
|
|
1378
|
+
if (parsed && HocuspocusProviderWebsocket.DEDUPLICATABLE_TYPES.has(parsed.messageType)) this.messageQueue = this.messageQueue.filter((queued) => {
|
|
1379
|
+
if (!(queued instanceof Uint8Array)) return true;
|
|
1380
|
+
const queuedParsed = this.parseQueuedMessage(queued);
|
|
1381
|
+
if (!queuedParsed) return true;
|
|
1382
|
+
return !(queuedParsed.documentName === parsed.documentName && queuedParsed.messageType === parsed.messageType);
|
|
1383
|
+
});
|
|
1384
|
+
}
|
|
1385
|
+
this.messageQueue.push(message);
|
|
1386
|
+
}
|
|
1361
1387
|
send(message) {
|
|
1362
1388
|
if (this.webSocket?.readyState === WsReadyStates.Open) this.webSocket.send(message);
|
|
1363
|
-
else this.
|
|
1389
|
+
else this.addToQueue(message);
|
|
1364
1390
|
}
|
|
1365
1391
|
onClose({ event }) {
|
|
1366
1392
|
this.closeTries = 0;
|
|
@@ -1588,7 +1614,7 @@ var MessageSender = class {
|
|
|
1588
1614
|
|
|
1589
1615
|
//#endregion
|
|
1590
1616
|
//#region packages/provider/src/version.ts
|
|
1591
|
-
const version = "4.0.0-rc.
|
|
1617
|
+
const version = "4.0.0-rc.2";
|
|
1592
1618
|
|
|
1593
1619
|
//#endregion
|
|
1594
1620
|
//#region packages/provider/src/OutgoingMessages/AuthenticationMessage.ts
|
|
@@ -1702,7 +1728,7 @@ var HocuspocusProvider = class extends EventEmitter {
|
|
|
1702
1728
|
document: void 0,
|
|
1703
1729
|
awareness: void 0,
|
|
1704
1730
|
token: null,
|
|
1705
|
-
sessionAwareness:
|
|
1731
|
+
sessionAwareness: false,
|
|
1706
1732
|
forceSyncInterval: false,
|
|
1707
1733
|
onAuthenticated: () => null,
|
|
1708
1734
|
onAuthenticationFailed: () => null,
|