@hocuspocus/provider 1.0.2 → 1.1.0
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 +26 -0
- package/dist/hocuspocus-provider.cjs.map +1 -1
- package/dist/hocuspocus-provider.esm.js +26 -0
- package/dist/hocuspocus-provider.esm.js.map +1 -1
- package/dist/packages/extension-redis/src/Redis.d.ts +19 -5
- package/dist/packages/provider/src/HocuspocusProvider.d.ts +4 -1
- package/dist/packages/provider/src/OutgoingMessages/StatelessMessage.d.ts +7 -0
- package/dist/packages/provider/src/types.d.ts +6 -1
- package/dist/packages/server/src/Connection.d.ts +9 -0
- package/dist/packages/server/src/Document.d.ts +9 -0
- package/dist/packages/server/src/IncomingMessage.d.ts +1 -0
- package/dist/packages/server/src/OutgoingMessage.d.ts +2 -0
- package/dist/packages/server/src/types.d.ts +19 -3
- package/dist/packages/transformer/src/Prosemirror.d.ts +1 -1
- package/dist/tests/extension-redis/onStateless.d.ts +1 -0
- package/dist/tests/provider/onStateless.d.ts +1 -0
- package/dist/tests/server/beforeBroadcastStateless.d.ts +1 -0
- package/dist/tests/server/onStateless.d.ts +1 -0
- package/package.json +2 -2
- package/src/HocuspocusProvider.ts +14 -1
- package/src/MessageReceiver.ts +5 -0
- package/src/OutgoingMessages/StatelessMessage.ts +16 -0
- package/src/types.ts +6 -0
|
@@ -1552,6 +1552,7 @@ exports.MessageType = void 0;
|
|
|
1552
1552
|
MessageType[MessageType["Awareness"] = 1] = "Awareness";
|
|
1553
1553
|
MessageType[MessageType["Auth"] = 2] = "Auth";
|
|
1554
1554
|
MessageType[MessageType["QueryAwareness"] = 3] = "QueryAwareness";
|
|
1555
|
+
MessageType[MessageType["Stateless"] = 5] = "Stateless";
|
|
1555
1556
|
})(exports.MessageType || (exports.MessageType = {}));
|
|
1556
1557
|
exports.WebSocketStatus = void 0;
|
|
1557
1558
|
(function (WebSocketStatus) {
|
|
@@ -1597,6 +1598,9 @@ class MessageReceiver {
|
|
|
1597
1598
|
case exports.MessageType.QueryAwareness:
|
|
1598
1599
|
this.applyQueryAwarenessMessage(provider);
|
|
1599
1600
|
break;
|
|
1601
|
+
case exports.MessageType.Stateless:
|
|
1602
|
+
provider.receiveStateless(readVarString(message.decoder));
|
|
1603
|
+
break;
|
|
1600
1604
|
default:
|
|
1601
1605
|
throw new Error(`Can’t apply message of unknown type: ${type}`);
|
|
1602
1606
|
}
|
|
@@ -1759,6 +1763,20 @@ class UpdateMessage extends OutgoingMessage {
|
|
|
1759
1763
|
}
|
|
1760
1764
|
}
|
|
1761
1765
|
|
|
1766
|
+
class StatelessMessage extends OutgoingMessage {
|
|
1767
|
+
constructor() {
|
|
1768
|
+
super(...arguments);
|
|
1769
|
+
this.type = exports.MessageType.Stateless;
|
|
1770
|
+
this.description = 'A stateless message';
|
|
1771
|
+
}
|
|
1772
|
+
get(args) {
|
|
1773
|
+
var _a;
|
|
1774
|
+
writeVarUint(this.encoder, this.type);
|
|
1775
|
+
writeVarString(this.encoder, (_a = args.payload) !== null && _a !== void 0 ? _a : '');
|
|
1776
|
+
return this.encoder;
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1762
1780
|
class HocuspocusProvider extends EventEmitter {
|
|
1763
1781
|
constructor(configuration) {
|
|
1764
1782
|
super();
|
|
@@ -1806,6 +1824,7 @@ class HocuspocusProvider extends EventEmitter {
|
|
|
1806
1824
|
onDestroy: () => null,
|
|
1807
1825
|
onAwarenessUpdate: () => null,
|
|
1808
1826
|
onAwarenessChange: () => null,
|
|
1827
|
+
onStateless: () => null,
|
|
1809
1828
|
quiet: false,
|
|
1810
1829
|
};
|
|
1811
1830
|
this.subscribedToBroadcastChannel = false;
|
|
@@ -1842,6 +1861,7 @@ class HocuspocusProvider extends EventEmitter {
|
|
|
1842
1861
|
this.on('destroy', this.configuration.onDestroy);
|
|
1843
1862
|
this.on('awarenessUpdate', this.configuration.onAwarenessUpdate);
|
|
1844
1863
|
this.on('awarenessChange', this.configuration.onAwarenessChange);
|
|
1864
|
+
this.on('stateless', this.configuration.onStateless);
|
|
1845
1865
|
this.awareness.on('update', () => {
|
|
1846
1866
|
this.emit('awarenessUpdate', { states: common.awarenessStatesToArray(this.awareness.getStates()) });
|
|
1847
1867
|
});
|
|
@@ -1998,6 +2018,9 @@ class HocuspocusProvider extends EventEmitter {
|
|
|
1998
2018
|
window.addEventListener('online', this.boundConnect);
|
|
1999
2019
|
window.addEventListener('beforeunload', this.boundBeforeUnload);
|
|
2000
2020
|
}
|
|
2021
|
+
sendStateless(payload) {
|
|
2022
|
+
this.send(StatelessMessage, { payload });
|
|
2023
|
+
}
|
|
2001
2024
|
documentUpdateHandler(update, origin) {
|
|
2002
2025
|
if (origin === this) {
|
|
2003
2026
|
return;
|
|
@@ -2044,6 +2067,9 @@ class HocuspocusProvider extends EventEmitter {
|
|
|
2044
2067
|
this.emit('synced', { state });
|
|
2045
2068
|
this.emit('sync', { state });
|
|
2046
2069
|
}
|
|
2070
|
+
receiveStateless(payload) {
|
|
2071
|
+
this.emit('stateless', { payload });
|
|
2072
|
+
}
|
|
2047
2073
|
get isAuthenticationRequired() {
|
|
2048
2074
|
return !!this.configuration.token && !this.isAuthenticated;
|
|
2049
2075
|
}
|