@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
|
@@ -1138,7 +1138,10 @@ var CloseMessage = class extends OutgoingMessage {
|
|
|
1138
1138
|
|
|
1139
1139
|
//#endregion
|
|
1140
1140
|
//#region packages/provider/src/HocuspocusProviderWebsocket.ts
|
|
1141
|
-
var HocuspocusProviderWebsocket = class extends EventEmitter {
|
|
1141
|
+
var HocuspocusProviderWebsocket = class HocuspocusProviderWebsocket extends EventEmitter {
|
|
1142
|
+
static {
|
|
1143
|
+
this.DEDUPLICATABLE_TYPES = new Set([MessageType.Awareness, MessageType.QueryAwareness]);
|
|
1144
|
+
}
|
|
1142
1145
|
constructor(configuration) {
|
|
1143
1146
|
super();
|
|
1144
1147
|
this.messageQueue = [];
|
|
@@ -1387,9 +1390,32 @@ var HocuspocusProviderWebsocket = class extends EventEmitter {
|
|
|
1387
1390
|
console.error(e);
|
|
1388
1391
|
}
|
|
1389
1392
|
}
|
|
1393
|
+
parseQueuedMessage(message) {
|
|
1394
|
+
try {
|
|
1395
|
+
const decoder = createDecoder(message);
|
|
1396
|
+
return {
|
|
1397
|
+
documentName: readVarString(decoder),
|
|
1398
|
+
messageType: readVarUint(decoder)
|
|
1399
|
+
};
|
|
1400
|
+
} catch {
|
|
1401
|
+
return null;
|
|
1402
|
+
}
|
|
1403
|
+
}
|
|
1404
|
+
addToQueue(message) {
|
|
1405
|
+
if (message instanceof Uint8Array) {
|
|
1406
|
+
const parsed = this.parseQueuedMessage(message);
|
|
1407
|
+
if (parsed && HocuspocusProviderWebsocket.DEDUPLICATABLE_TYPES.has(parsed.messageType)) this.messageQueue = this.messageQueue.filter((queued) => {
|
|
1408
|
+
if (!(queued instanceof Uint8Array)) return true;
|
|
1409
|
+
const queuedParsed = this.parseQueuedMessage(queued);
|
|
1410
|
+
if (!queuedParsed) return true;
|
|
1411
|
+
return !(queuedParsed.documentName === parsed.documentName && queuedParsed.messageType === parsed.messageType);
|
|
1412
|
+
});
|
|
1413
|
+
}
|
|
1414
|
+
this.messageQueue.push(message);
|
|
1415
|
+
}
|
|
1390
1416
|
send(message) {
|
|
1391
1417
|
if (this.webSocket?.readyState === _hocuspocus_common.WsReadyStates.Open) this.webSocket.send(message);
|
|
1392
|
-
else this.
|
|
1418
|
+
else this.addToQueue(message);
|
|
1393
1419
|
}
|
|
1394
1420
|
onClose({ event }) {
|
|
1395
1421
|
this.closeTries = 0;
|
|
@@ -1617,7 +1643,7 @@ var MessageSender = class {
|
|
|
1617
1643
|
|
|
1618
1644
|
//#endregion
|
|
1619
1645
|
//#region packages/provider/src/version.ts
|
|
1620
|
-
const version = "4.0.0-rc.
|
|
1646
|
+
const version = "4.0.0-rc.2";
|
|
1621
1647
|
|
|
1622
1648
|
//#endregion
|
|
1623
1649
|
//#region packages/provider/src/OutgoingMessages/AuthenticationMessage.ts
|
|
@@ -1731,7 +1757,7 @@ var HocuspocusProvider = class extends EventEmitter {
|
|
|
1731
1757
|
document: void 0,
|
|
1732
1758
|
awareness: void 0,
|
|
1733
1759
|
token: null,
|
|
1734
|
-
sessionAwareness:
|
|
1760
|
+
sessionAwareness: false,
|
|
1735
1761
|
forceSyncInterval: false,
|
|
1736
1762
|
onAuthenticated: () => null,
|
|
1737
1763
|
onAuthenticationFailed: () => null,
|