@hocuspocus/provider 1.0.2 → 1.1.1

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.
@@ -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
  }