@liveblocks/client 0.15.11-test.1 → 0.15.11

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/lib/index.js CHANGED
@@ -192,48 +192,6 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
192
192
  return it.next.bind(it);
193
193
  }
194
194
 
195
- function _classPrivateFieldGet(receiver, privateMap) {
196
- var descriptor = privateMap.get(receiver);
197
-
198
- if (!descriptor) {
199
- throw new TypeError("attempted to get private field on non-instance");
200
- }
201
-
202
- if (descriptor.get) {
203
- return descriptor.get.call(receiver);
204
- }
205
-
206
- return descriptor.value;
207
- }
208
-
209
- function _classPrivateFieldSet(receiver, privateMap, value) {
210
- var descriptor = privateMap.get(receiver);
211
-
212
- if (!descriptor) {
213
- throw new TypeError("attempted to set private field on non-instance");
214
- }
215
-
216
- if (descriptor.set) {
217
- descriptor.set.call(receiver, value);
218
- } else {
219
- if (!descriptor.writable) {
220
- throw new TypeError("attempted to set read only private field");
221
- }
222
-
223
- descriptor.value = value;
224
- }
225
-
226
- return value;
227
- }
228
-
229
- function _classPrivateMethodGet(receiver, privateSet, fn) {
230
- if (!privateSet.has(receiver)) {
231
- throw new TypeError("attempted to get private field on non-instance");
232
- }
233
-
234
- return fn;
235
- }
236
-
237
195
  var ServerMessageType;
238
196
 
239
197
  (function (ServerMessageType) {
@@ -291,36 +249,8 @@ var WebsocketCloseCodes;
291
249
  WebsocketCloseCodes[WebsocketCloseCodes["CLOSE_WITHOUT_RETRY"] = 4999] = "CLOSE_WITHOUT_RETRY";
292
250
  })(WebsocketCloseCodes || (WebsocketCloseCodes = {}));
293
251
 
294
- var _parent = new WeakMap();
295
-
296
- var _doc = new WeakMap();
297
-
298
- var _id = new WeakMap();
299
-
300
- var _parentKey = new WeakMap();
301
-
302
252
  var AbstractCrdt = function () {
303
- function AbstractCrdt() {
304
- _parent.set(this, {
305
- writable: true,
306
- value: void 0
307
- });
308
-
309
- _doc.set(this, {
310
- writable: true,
311
- value: void 0
312
- });
313
-
314
- _id.set(this, {
315
- writable: true,
316
- value: void 0
317
- });
318
-
319
- _parentKey.set(this, {
320
- writable: true,
321
- value: void 0
322
- });
323
- }
253
+ function AbstractCrdt() {}
324
254
 
325
255
  var _proto = AbstractCrdt.prototype;
326
256
 
@@ -344,61 +274,57 @@ var AbstractCrdt = function () {
344
274
  };
345
275
 
346
276
  _proto._setParentLink = function _setParentLink(parent, key) {
347
- if (_classPrivateFieldGet(this, _parent) != null && _classPrivateFieldGet(this, _parent) !== parent) {
277
+ if (this.__parent != null && this.__parent !== parent) {
348
278
  throw new Error("Cannot attach parent if it already exist");
349
279
  }
350
280
 
351
- _classPrivateFieldSet(this, _parentKey, key);
352
-
353
- _classPrivateFieldSet(this, _parent, parent);
281
+ this.__parentKey = key;
282
+ this.__parent = parent;
354
283
  };
355
284
 
356
285
  _proto._attach = function _attach(id, doc) {
357
- if (_classPrivateFieldGet(this, _id) || _classPrivateFieldGet(this, _doc)) {
286
+ if (this.__id || this.__doc) {
358
287
  throw new Error("Cannot attach if CRDT is already attached");
359
288
  }
360
289
 
361
290
  doc.addItem(id, this);
362
-
363
- _classPrivateFieldSet(this, _id, id);
364
-
365
- _classPrivateFieldSet(this, _doc, doc);
291
+ this.__id = id;
292
+ this.__doc = doc;
366
293
  };
367
294
 
368
295
  _proto._detach = function _detach() {
369
- if (_classPrivateFieldGet(this, _doc) && _classPrivateFieldGet(this, _id)) {
370
- _classPrivateFieldGet(this, _doc).deleteItem(_classPrivateFieldGet(this, _id));
296
+ if (this.__doc && this.__id) {
297
+ this.__doc.deleteItem(this.__id);
371
298
  }
372
299
 
373
- _classPrivateFieldSet(this, _parent, undefined);
374
-
375
- _classPrivateFieldSet(this, _doc, undefined);
300
+ this.__parent = undefined;
301
+ this.__doc = undefined;
376
302
  };
377
303
 
378
304
  _createClass(AbstractCrdt, [{
379
305
  key: "_doc",
380
306
  get: function get() {
381
- return _classPrivateFieldGet(this, _doc);
307
+ return this.__doc;
382
308
  }
383
309
  }, {
384
310
  key: "roomId",
385
311
  get: function get() {
386
- return _classPrivateFieldGet(this, _doc) ? _classPrivateFieldGet(this, _doc).roomId : null;
312
+ return this.__doc ? this.__doc.roomId : null;
387
313
  }
388
314
  }, {
389
315
  key: "_id",
390
316
  get: function get() {
391
- return _classPrivateFieldGet(this, _id);
317
+ return this.__id;
392
318
  }
393
319
  }, {
394
320
  key: "_parent",
395
321
  get: function get() {
396
- return _classPrivateFieldGet(this, _parent);
322
+ return this.__parent;
397
323
  }
398
324
  }, {
399
325
  key: "_parentKey",
400
326
  get: function get() {
401
- return _classPrivateFieldGet(this, _parentKey);
327
+ return this.__parentKey;
402
328
  }
403
329
  }]);
404
330
 
@@ -532,8 +458,6 @@ function compare(posA, posB) {
532
458
  throw new Error("Impossible to compare similar position \"" + posA + "\" and \"" + posB + "\"");
533
459
  }
534
460
 
535
- var _data = new WeakMap();
536
-
537
461
  var LiveRegister = function (_AbstractCrdt) {
538
462
  _inheritsLoose(LiveRegister, _AbstractCrdt);
539
463
 
@@ -541,14 +465,7 @@ var LiveRegister = function (_AbstractCrdt) {
541
465
  var _this;
542
466
 
543
467
  _this = _AbstractCrdt.call(this) || this;
544
-
545
- _data.set(_assertThisInitialized(_this), {
546
- writable: true,
547
- value: void 0
548
- });
549
-
550
- _classPrivateFieldSet(_assertThisInitialized(_this), _data, data);
551
-
468
+ _this._data = data;
552
469
  return _this;
553
470
  }
554
471
 
@@ -610,18 +527,13 @@ var LiveRegister = function (_AbstractCrdt) {
610
527
  _createClass(LiveRegister, [{
611
528
  key: "data",
612
529
  get: function get() {
613
- return _classPrivateFieldGet(this, _data);
530
+ return this._data;
614
531
  }
615
532
  }]);
616
533
 
617
534
  return LiveRegister;
618
535
  }(AbstractCrdt);
619
536
 
620
- var _Symbol$iterator$1, _Symbol$iterator2;
621
-
622
- var _items = new WeakMap();
623
-
624
- _Symbol$iterator$1 = Symbol.iterator;
625
537
  var LiveList = function (_AbstractCrdt) {
626
538
  _inheritsLoose(LiveList, _AbstractCrdt);
627
539
 
@@ -633,12 +545,7 @@ var LiveList = function (_AbstractCrdt) {
633
545
  }
634
546
 
635
547
  _this = _AbstractCrdt.call(this) || this;
636
-
637
- _items.set(_assertThisInitialized(_this), {
638
- writable: true,
639
- value: []
640
- });
641
-
548
+ _this._items = [];
642
549
  var position = undefined;
643
550
 
644
551
  for (var i = 0; i < items.length; i++) {
@@ -646,7 +553,7 @@ var LiveList = function (_AbstractCrdt) {
646
553
 
647
554
  var _item = selfOrRegister(items[i]);
648
555
 
649
- _classPrivateFieldGet(_assertThisInitialized(_this), _items).push([_item, newPosition]);
556
+ _this._items.push([_item, newPosition]);
650
557
 
651
558
  position = newPosition;
652
559
  }
@@ -672,9 +579,9 @@ var LiveList = function (_AbstractCrdt) {
672
579
 
673
580
  child._setParentLink(list, entry[1].parentKey);
674
581
 
675
- _classPrivateFieldGet(list, _items).push([child, entry[1].parentKey]);
582
+ list._items.push([child, entry[1].parentKey]);
676
583
 
677
- _classPrivateFieldGet(list, _items).sort(function (itemA, itemB) {
584
+ list._items.sort(function (itemA, itemB) {
678
585
  return compare(itemA[1], itemB[1]);
679
586
  });
680
587
  }
@@ -703,7 +610,7 @@ var LiveList = function (_AbstractCrdt) {
703
610
  };
704
611
  ops.push(op);
705
612
 
706
- for (var _iterator2 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _items)), _step2; !(_step2 = _iterator2()).done;) {
613
+ for (var _iterator2 = _createForOfIteratorHelperLoose(this._items), _step2; !(_step2 = _iterator2()).done;) {
707
614
  var _step2$value = _step2.value,
708
615
  _value = _step2$value[0],
709
616
  key = _step2$value[1];
@@ -714,7 +621,7 @@ var LiveList = function (_AbstractCrdt) {
714
621
  };
715
622
 
716
623
  _proto._indexOfPosition = function _indexOfPosition(position) {
717
- return _classPrivateFieldGet(this, _items).findIndex(function (item) {
624
+ return this._items.findIndex(function (item) {
718
625
  return item[1] === position;
719
626
  });
720
627
  };
@@ -722,7 +629,7 @@ var LiveList = function (_AbstractCrdt) {
722
629
  _proto._attach = function _attach(id, doc) {
723
630
  _AbstractCrdt.prototype._attach.call(this, id, doc);
724
631
 
725
- for (var _iterator3 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _items)), _step3; !(_step3 = _iterator3()).done;) {
632
+ for (var _iterator3 = _createForOfIteratorHelperLoose(this._items), _step3; !(_step3 = _iterator3()).done;) {
726
633
  var _step3$value = _step3.value,
727
634
  _item2 = _step3$value[0];
728
635
 
@@ -733,7 +640,7 @@ var LiveList = function (_AbstractCrdt) {
733
640
  _proto._detach = function _detach() {
734
641
  _AbstractCrdt.prototype._detach.call(this);
735
642
 
736
- for (var _iterator4 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _items)), _step4; !(_step4 = _iterator4()).done;) {
643
+ for (var _iterator4 = _createForOfIteratorHelperLoose(this._items), _step4; !(_step4 = _iterator4()).done;) {
737
644
  var _step4$value = _step4.value,
738
645
  _value2 = _step4$value[0];
739
646
 
@@ -756,7 +663,7 @@ var LiveList = function (_AbstractCrdt) {
756
663
 
757
664
  child._setParentLink(this, key);
758
665
 
759
- var index = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
666
+ var index = this._items.findIndex(function (entry) {
760
667
  return entry[1] === key;
761
668
  });
762
669
 
@@ -764,25 +671,25 @@ var LiveList = function (_AbstractCrdt) {
764
671
 
765
672
  if (index !== -1) {
766
673
  if (isLocal) {
767
- var before = _classPrivateFieldGet(this, _items)[index] ? _classPrivateFieldGet(this, _items)[index][1] : undefined;
768
- var after = _classPrivateFieldGet(this, _items)[index + 1] ? _classPrivateFieldGet(this, _items)[index + 1][1] : undefined;
674
+ var before = this._items[index] ? this._items[index][1] : undefined;
675
+ var after = this._items[index + 1] ? this._items[index + 1][1] : undefined;
769
676
  newKey = makePosition(before, after);
770
677
 
771
678
  child._setParentLink(this, newKey);
772
679
  } else {
773
- var _classPrivateFieldGet2;
680
+ var _this$_items;
774
681
 
775
- _classPrivateFieldGet(this, _items)[index][1] = makePosition(key, (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _items)[index + 1]) == null ? void 0 : _classPrivateFieldGet2[1]);
682
+ this._items[index][1] = makePosition(key, (_this$_items = this._items[index + 1]) == null ? void 0 : _this$_items[1]);
776
683
  }
777
684
  }
778
685
 
779
- _classPrivateFieldGet(this, _items).push([child, newKey]);
686
+ this._items.push([child, newKey]);
780
687
 
781
- _classPrivateFieldGet(this, _items).sort(function (itemA, itemB) {
688
+ this._items.sort(function (itemA, itemB) {
782
689
  return compare(itemA[1], itemB[1]);
783
690
  });
784
691
 
785
- var newIndex = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
692
+ var newIndex = this._items.findIndex(function (entry) {
786
693
  return entry[1] === newKey;
787
694
  });
788
695
 
@@ -807,11 +714,11 @@ var LiveList = function (_AbstractCrdt) {
807
714
  if (child) {
808
715
  var reverse = child._serialize(this._id, child._parentKey, this._doc);
809
716
 
810
- var indexToDelete = _classPrivateFieldGet(this, _items).findIndex(function (item) {
717
+ var indexToDelete = this._items.findIndex(function (item) {
811
718
  return item[0] === child;
812
719
  });
813
720
 
814
- _classPrivateFieldGet(this, _items).splice(indexToDelete, 1);
721
+ this._items.splice(indexToDelete, 1);
815
722
 
816
723
  child._detach();
817
724
 
@@ -837,21 +744,21 @@ var LiveList = function (_AbstractCrdt) {
837
744
  _proto._setChildKey = function _setChildKey(key, child, previousKey) {
838
745
  child._setParentLink(this, key);
839
746
 
840
- var previousIndex = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
747
+ var previousIndex = this._items.findIndex(function (entry) {
841
748
  return entry[0]._id === child._id;
842
749
  });
843
750
 
844
- var index = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
751
+ var index = this._items.findIndex(function (entry) {
845
752
  return entry[1] === key;
846
753
  });
847
754
 
848
755
  if (index !== -1) {
849
- var _classPrivateFieldGet3;
756
+ var _this$_items2;
850
757
 
851
- _classPrivateFieldGet(this, _items)[index][1] = makePosition(key, (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _items)[index + 1]) == null ? void 0 : _classPrivateFieldGet3[1]);
758
+ this._items[index][1] = makePosition(key, (_this$_items2 = this._items[index + 1]) == null ? void 0 : _this$_items2[1]);
852
759
  }
853
760
 
854
- var item = _classPrivateFieldGet(this, _items).find(function (item) {
761
+ var item = this._items.find(function (item) {
855
762
  return item[0] === child;
856
763
  });
857
764
 
@@ -859,11 +766,11 @@ var LiveList = function (_AbstractCrdt) {
859
766
  item[1] = key;
860
767
  }
861
768
 
862
- _classPrivateFieldGet(this, _items).sort(function (itemA, itemB) {
769
+ this._items.sort(function (itemA, itemB) {
863
770
  return compare(itemA[1], itemB[1]);
864
771
  });
865
772
 
866
- var newIndex = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
773
+ var newIndex = this._items.findIndex(function (entry) {
867
774
  return entry[0]._id === child._id;
868
775
  });
869
776
 
@@ -906,24 +813,24 @@ var LiveList = function (_AbstractCrdt) {
906
813
  };
907
814
 
908
815
  _proto.insert = function insert(element, index) {
909
- if (index < 0 || index > _classPrivateFieldGet(this, _items).length) {
910
- throw new Error("Cannot insert list item at index \"\x1D" + index + "\". index should be between 0 and " + _classPrivateFieldGet(this, _items).length);
816
+ if (index < 0 || index > this._items.length) {
817
+ throw new Error("Cannot insert list item at index \"\x1D" + index + "\". index should be between 0 and " + this._items.length);
911
818
  }
912
819
 
913
- var before = _classPrivateFieldGet(this, _items)[index - 1] ? _classPrivateFieldGet(this, _items)[index - 1][1] : undefined;
914
- var after = _classPrivateFieldGet(this, _items)[index] ? _classPrivateFieldGet(this, _items)[index][1] : undefined;
820
+ var before = this._items[index - 1] ? this._items[index - 1][1] : undefined;
821
+ var after = this._items[index] ? this._items[index][1] : undefined;
915
822
  var position = makePosition(before, after);
916
823
  var value = selfOrRegister(element);
917
824
 
918
825
  value._setParentLink(this, position);
919
826
 
920
- _classPrivateFieldGet(this, _items).push([value, position]);
827
+ this._items.push([value, position]);
921
828
 
922
- _classPrivateFieldGet(this, _items).sort(function (itemA, itemB) {
829
+ this._items.sort(function (itemA, itemB) {
923
830
  return compare(itemA[1], itemB[1]);
924
831
  });
925
832
 
926
- var newIndex = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
833
+ var newIndex = this._items.findIndex(function (entry) {
927
834
  return entry[1] === position;
928
835
  });
929
836
 
@@ -955,7 +862,7 @@ var LiveList = function (_AbstractCrdt) {
955
862
  throw new Error("targetIndex cannot be less than 0");
956
863
  }
957
864
 
958
- if (targetIndex >= _classPrivateFieldGet(this, _items).length) {
865
+ if (targetIndex >= this._items.length) {
959
866
  throw new Error("targetIndex cannot be greater or equal than the list length");
960
867
  }
961
868
 
@@ -963,7 +870,7 @@ var LiveList = function (_AbstractCrdt) {
963
870
  throw new Error("index cannot be less than 0");
964
871
  }
965
872
 
966
- if (index >= _classPrivateFieldGet(this, _items).length) {
873
+ if (index >= this._items.length) {
967
874
  throw new Error("index cannot be greater or equal than the list length");
968
875
  }
969
876
 
@@ -971,27 +878,25 @@ var LiveList = function (_AbstractCrdt) {
971
878
  var afterPosition = null;
972
879
 
973
880
  if (index < targetIndex) {
974
- afterPosition = targetIndex === _classPrivateFieldGet(this, _items).length - 1 ? undefined : _classPrivateFieldGet(this, _items)[targetIndex + 1][1];
975
- beforePosition = _classPrivateFieldGet(this, _items)[targetIndex][1];
881
+ afterPosition = targetIndex === this._items.length - 1 ? undefined : this._items[targetIndex + 1][1];
882
+ beforePosition = this._items[targetIndex][1];
976
883
  } else {
977
- afterPosition = _classPrivateFieldGet(this, _items)[targetIndex][1];
978
- beforePosition = targetIndex === 0 ? undefined : _classPrivateFieldGet(this, _items)[targetIndex - 1][1];
884
+ afterPosition = this._items[targetIndex][1];
885
+ beforePosition = targetIndex === 0 ? undefined : this._items[targetIndex - 1][1];
979
886
  }
980
887
 
981
888
  var position = makePosition(beforePosition, afterPosition);
982
-
983
- var item = _classPrivateFieldGet(this, _items)[index];
984
-
889
+ var item = this._items[index];
985
890
  var previousPosition = item[1];
986
891
  item[1] = position;
987
892
 
988
893
  item[0]._setParentLink(this, position);
989
894
 
990
- _classPrivateFieldGet(this, _items).sort(function (itemA, itemB) {
895
+ this._items.sort(function (itemA, itemB) {
991
896
  return compare(itemA[1], itemB[1]);
992
897
  });
993
898
 
994
- var newIndex = _classPrivateFieldGet(this, _items).findIndex(function (entry) {
899
+ var newIndex = this._items.findIndex(function (entry) {
995
900
  return entry[1] === position;
996
901
  });
997
902
 
@@ -1022,15 +927,15 @@ var LiveList = function (_AbstractCrdt) {
1022
927
  };
1023
928
 
1024
929
  _proto.delete = function _delete(index) {
1025
- if (index < 0 || index >= _classPrivateFieldGet(this, _items).length) {
1026
- throw new Error("Cannot delete list item at index \"\x1D" + index + "\". index should be between 0 and " + (_classPrivateFieldGet(this, _items).length - 1));
930
+ if (index < 0 || index >= this._items.length) {
931
+ throw new Error("Cannot delete list item at index \"\x1D" + index + "\". index should be between 0 and " + (this._items.length - 1));
1027
932
  }
1028
933
 
1029
- var item = _classPrivateFieldGet(this, _items)[index];
934
+ var item = this._items[index];
1030
935
 
1031
936
  item[0]._detach();
1032
937
 
1033
- _classPrivateFieldGet(this, _items).splice(index, 1);
938
+ this._items.splice(index, 1);
1034
939
 
1035
940
  if (this._doc) {
1036
941
  var childRecordId = item[0]._id;
@@ -1062,7 +967,7 @@ var LiveList = function (_AbstractCrdt) {
1062
967
  var updateDelta = [];
1063
968
  var i = 0;
1064
969
 
1065
- for (var _iterator5 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _items)), _step5; !(_step5 = _iterator5()).done;) {
970
+ for (var _iterator5 = _createForOfIteratorHelperLoose(this._items), _step5; !(_step5 = _iterator5()).done;) {
1066
971
  var _item3 = _step5.value;
1067
972
 
1068
973
  _item3[0]._detach();
@@ -1084,8 +989,7 @@ var LiveList = function (_AbstractCrdt) {
1084
989
  i++;
1085
990
  }
1086
991
 
1087
- _classPrivateFieldSet(this, _items, []);
1088
-
992
+ this._items = [];
1089
993
  var storageUpdates = new Map();
1090
994
  storageUpdates.set(this._id, {
1091
995
  node: this,
@@ -1095,18 +999,18 @@ var LiveList = function (_AbstractCrdt) {
1095
999
 
1096
1000
  this._doc.dispatch(ops, reverseOps, storageUpdates);
1097
1001
  } else {
1098
- for (var _iterator6 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _items)), _step6; !(_step6 = _iterator6()).done;) {
1002
+ for (var _iterator6 = _createForOfIteratorHelperLoose(this._items), _step6; !(_step6 = _iterator6()).done;) {
1099
1003
  var _item4 = _step6.value;
1100
1004
 
1101
1005
  _item4[0]._detach();
1102
1006
  }
1103
1007
 
1104
- _classPrivateFieldSet(this, _items, []);
1008
+ this._items = [];
1105
1009
  }
1106
1010
  };
1107
1011
 
1108
1012
  _proto.toArray = function toArray() {
1109
- return _classPrivateFieldGet(this, _items).map(function (entry) {
1013
+ return this._items.map(function (entry) {
1110
1014
  return selfOrRegisterValue(entry[0]);
1111
1015
  });
1112
1016
  };
@@ -1132,11 +1036,11 @@ var LiveList = function (_AbstractCrdt) {
1132
1036
  };
1133
1037
 
1134
1038
  _proto.get = function get(index) {
1135
- if (index < 0 || index >= _classPrivateFieldGet(this, _items).length) {
1039
+ if (index < 0 || index >= this._items.length) {
1136
1040
  return undefined;
1137
1041
  }
1138
1042
 
1139
- return selfOrRegisterValue(_classPrivateFieldGet(this, _items)[index][0]);
1043
+ return selfOrRegisterValue(this._items[index][0]);
1140
1044
  };
1141
1045
 
1142
1046
  _proto.indexOf = function indexOf(searchElement, fromIndex) {
@@ -1148,7 +1052,7 @@ var LiveList = function (_AbstractCrdt) {
1148
1052
  };
1149
1053
 
1150
1054
  _proto.map = function map(callback) {
1151
- return _classPrivateFieldGet(this, _items).map(function (entry, i) {
1055
+ return this._items.map(function (entry, i) {
1152
1056
  return callback(selfOrRegisterValue(entry[0]), i);
1153
1057
  });
1154
1058
  };
@@ -1157,42 +1061,33 @@ var LiveList = function (_AbstractCrdt) {
1157
1061
  return this.toArray().some(predicate);
1158
1062
  };
1159
1063
 
1160
- _proto[_Symbol$iterator$1] = function () {
1161
- return new LiveListIterator(_classPrivateFieldGet(this, _items));
1064
+ _proto[Symbol.iterator] = function () {
1065
+ return new LiveListIterator(this._items);
1162
1066
  };
1163
1067
 
1164
1068
  _createClass(LiveList, [{
1165
1069
  key: "length",
1166
1070
  get: function get() {
1167
- return _classPrivateFieldGet(this, _items).length;
1071
+ return this._items.length;
1168
1072
  }
1169
1073
  }]);
1170
1074
 
1171
1075
  return LiveList;
1172
1076
  }(AbstractCrdt);
1173
1077
 
1174
- var _innerIterator = new WeakMap();
1175
-
1176
- _Symbol$iterator2 = Symbol.iterator;
1177
-
1178
1078
  var LiveListIterator = function () {
1179
1079
  function LiveListIterator(items) {
1180
- _innerIterator.set(this, {
1181
- writable: true,
1182
- value: void 0
1183
- });
1184
-
1185
- _classPrivateFieldSet(this, _innerIterator, items[Symbol.iterator]());
1080
+ this._innerIterator = items[Symbol.iterator]();
1186
1081
  }
1187
1082
 
1188
1083
  var _proto2 = LiveListIterator.prototype;
1189
1084
 
1190
- _proto2[_Symbol$iterator2] = function () {
1085
+ _proto2[Symbol.iterator] = function () {
1191
1086
  return this;
1192
1087
  };
1193
1088
 
1194
1089
  _proto2.next = function next() {
1195
- var result = _classPrivateFieldGet(this, _innerIterator).next();
1090
+ var result = this._innerIterator.next();
1196
1091
 
1197
1092
  if (result.done) {
1198
1093
  return {
@@ -1209,11 +1104,6 @@ var LiveListIterator = function () {
1209
1104
  return LiveListIterator;
1210
1105
  }();
1211
1106
 
1212
- var _Symbol$iterator;
1213
-
1214
- var _map$1 = new WeakMap();
1215
-
1216
- _Symbol$iterator = Symbol.iterator;
1217
1107
  var LiveMap = function (_AbstractCrdt) {
1218
1108
  _inheritsLoose(LiveMap, _AbstractCrdt);
1219
1109
 
@@ -1222,11 +1112,6 @@ var LiveMap = function (_AbstractCrdt) {
1222
1112
 
1223
1113
  _this = _AbstractCrdt.call(this) || this;
1224
1114
 
1225
- _map$1.set(_assertThisInitialized(_this), {
1226
- writable: true,
1227
- value: void 0
1228
- });
1229
-
1230
1115
  if (entries) {
1231
1116
  var mappedEntries = [];
1232
1117
 
@@ -1240,9 +1125,9 @@ var LiveMap = function (_AbstractCrdt) {
1240
1125
  mappedEntries.push([entry[0], _value]);
1241
1126
  }
1242
1127
 
1243
- _classPrivateFieldSet(_assertThisInitialized(_this), _map$1, new Map(mappedEntries));
1128
+ _this._map = new Map(mappedEntries);
1244
1129
  } else {
1245
- _classPrivateFieldSet(_assertThisInitialized(_this), _map$1, new Map());
1130
+ _this._map = new Map();
1246
1131
  }
1247
1132
 
1248
1133
  return _this;
@@ -1269,7 +1154,7 @@ var LiveMap = function (_AbstractCrdt) {
1269
1154
  };
1270
1155
  ops.push(op);
1271
1156
 
1272
- for (var _iterator2 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map$1)), _step2; !(_step2 = _iterator2()).done;) {
1157
+ for (var _iterator2 = _createForOfIteratorHelperLoose(this._map), _step2; !(_step2 = _iterator2()).done;) {
1273
1158
  var _step2$value = _step2.value,
1274
1159
  _key2 = _step2$value[0],
1275
1160
  _value2 = _step2$value[1];
@@ -1309,7 +1194,7 @@ var LiveMap = function (_AbstractCrdt) {
1309
1194
 
1310
1195
  child._setParentLink(map, crdt.parentKey);
1311
1196
 
1312
- _classPrivateFieldGet(map, _map$1).set(crdt.parentKey, child);
1197
+ map._map.set(crdt.parentKey, child);
1313
1198
  }
1314
1199
 
1315
1200
  return map;
@@ -1318,7 +1203,7 @@ var LiveMap = function (_AbstractCrdt) {
1318
1203
  _proto._attach = function _attach(id, doc) {
1319
1204
  _AbstractCrdt.prototype._attach.call(this, id, doc);
1320
1205
 
1321
- for (var _iterator4 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map$1)), _step4; !(_step4 = _iterator4()).done;) {
1206
+ for (var _iterator4 = _createForOfIteratorHelperLoose(this._map), _step4; !(_step4 = _iterator4()).done;) {
1322
1207
  var _step4$value = _step4.value;
1323
1208
  _step4$value[0];
1324
1209
  var _value3 = _step4$value[1];
@@ -1342,7 +1227,7 @@ var LiveMap = function (_AbstractCrdt) {
1342
1227
  };
1343
1228
  }
1344
1229
 
1345
- var previousValue = _classPrivateFieldGet(this, _map$1).get(key);
1230
+ var previousValue = this._map.get(key);
1346
1231
 
1347
1232
  var reverse;
1348
1233
 
@@ -1361,7 +1246,7 @@ var LiveMap = function (_AbstractCrdt) {
1361
1246
 
1362
1247
  child._attach(id, this._doc);
1363
1248
 
1364
- _classPrivateFieldGet(this, _map$1).set(key, child);
1249
+ this._map.set(key, child);
1365
1250
 
1366
1251
  return {
1367
1252
  modified: {
@@ -1378,7 +1263,7 @@ var LiveMap = function (_AbstractCrdt) {
1378
1263
  _proto._detach = function _detach() {
1379
1264
  _AbstractCrdt.prototype._detach.call(this);
1380
1265
 
1381
- for (var _iterator5 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map$1).values()), _step5; !(_step5 = _iterator5()).done;) {
1266
+ for (var _iterator5 = _createForOfIteratorHelperLoose(this._map.values()), _step5; !(_step5 = _iterator5()).done;) {
1382
1267
  var item = _step5.value;
1383
1268
 
1384
1269
  item._detach();
@@ -1390,13 +1275,13 @@ var LiveMap = function (_AbstractCrdt) {
1390
1275
 
1391
1276
  var reverse = child._serialize(this._id, child._parentKey, this._doc);
1392
1277
 
1393
- for (var _iterator6 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map$1)), _step6; !(_step6 = _iterator6()).done;) {
1278
+ for (var _iterator6 = _createForOfIteratorHelperLoose(this._map), _step6; !(_step6 = _iterator6()).done;) {
1394
1279
  var _step6$value = _step6.value,
1395
1280
  _key3 = _step6$value[0],
1396
1281
  _value4 = _step6$value[1];
1397
1282
 
1398
1283
  if (_value4 === child) {
1399
- _classPrivateFieldGet(this, _map$1).delete(_key3);
1284
+ this._map.delete(_key3);
1400
1285
  }
1401
1286
  }
1402
1287
 
@@ -1426,7 +1311,7 @@ var LiveMap = function (_AbstractCrdt) {
1426
1311
  };
1427
1312
 
1428
1313
  _proto.get = function get(key) {
1429
- var value = _classPrivateFieldGet(this, _map$1).get(key);
1314
+ var value = this._map.get(key);
1430
1315
 
1431
1316
  if (value == undefined) {
1432
1317
  return undefined;
@@ -1436,7 +1321,7 @@ var LiveMap = function (_AbstractCrdt) {
1436
1321
  };
1437
1322
 
1438
1323
  _proto.set = function set(key, value) {
1439
- var oldValue = _classPrivateFieldGet(this, _map$1).get(key);
1324
+ var oldValue = this._map.get(key);
1440
1325
 
1441
1326
  if (oldValue) {
1442
1327
  oldValue._detach();
@@ -1446,7 +1331,7 @@ var LiveMap = function (_AbstractCrdt) {
1446
1331
 
1447
1332
  item._setParentLink(this, key);
1448
1333
 
1449
- _classPrivateFieldGet(this, _map$1).set(key, item);
1334
+ this._map.set(key, item);
1450
1335
 
1451
1336
  if (this._doc && this._id) {
1452
1337
  var _updates3;
@@ -1472,11 +1357,11 @@ var LiveMap = function (_AbstractCrdt) {
1472
1357
  };
1473
1358
 
1474
1359
  _proto.has = function has(key) {
1475
- return _classPrivateFieldGet(this, _map$1).has(key);
1360
+ return this._map.has(key);
1476
1361
  };
1477
1362
 
1478
1363
  _proto.delete = function _delete(key) {
1479
- var item = _classPrivateFieldGet(this, _map$1).get(key);
1364
+ var item = this._map.get(key);
1480
1365
 
1481
1366
  if (item == null) {
1482
1367
  return false;
@@ -1484,7 +1369,7 @@ var LiveMap = function (_AbstractCrdt) {
1484
1369
 
1485
1370
  item._detach();
1486
1371
 
1487
- _classPrivateFieldGet(this, _map$1).delete(key);
1372
+ this._map.delete(key);
1488
1373
 
1489
1374
  if (this._doc && item._id) {
1490
1375
  var _updates4;
@@ -1511,7 +1396,7 @@ var LiveMap = function (_AbstractCrdt) {
1511
1396
  _proto.entries = function entries() {
1512
1397
  var _ref2;
1513
1398
 
1514
- var innerIterator = _classPrivateFieldGet(this, _map$1).entries();
1399
+ var innerIterator = this._map.entries();
1515
1400
 
1516
1401
  return _ref2 = {}, _ref2[Symbol.iterator] = function () {
1517
1402
  return this;
@@ -1532,18 +1417,18 @@ var LiveMap = function (_AbstractCrdt) {
1532
1417
  }, _ref2;
1533
1418
  };
1534
1419
 
1535
- _proto[_Symbol$iterator] = function () {
1420
+ _proto[Symbol.iterator] = function () {
1536
1421
  return this.entries();
1537
1422
  };
1538
1423
 
1539
1424
  _proto.keys = function keys() {
1540
- return _classPrivateFieldGet(this, _map$1).keys();
1425
+ return this._map.keys();
1541
1426
  };
1542
1427
 
1543
1428
  _proto.values = function values() {
1544
1429
  var _ref3;
1545
1430
 
1546
- var innerIterator = _classPrivateFieldGet(this, _map$1).values();
1431
+ var innerIterator = this._map.values();
1547
1432
 
1548
1433
  return _ref3 = {}, _ref3[Symbol.iterator] = function () {
1549
1434
  return this;
@@ -1573,7 +1458,7 @@ var LiveMap = function (_AbstractCrdt) {
1573
1458
  _createClass(LiveMap, [{
1574
1459
  key: "size",
1575
1460
  get: function get() {
1576
- return _classPrivateFieldGet(this, _map$1).size;
1461
+ return this._map.size;
1577
1462
  }
1578
1463
  }]);
1579
1464
 
@@ -1820,14 +1705,31 @@ function findNonSerializableValue(value, path) {
1820
1705
 
1821
1706
  return false;
1822
1707
  }
1708
+ function isTokenValid(token) {
1709
+ if (token === null) {
1710
+ return false;
1711
+ }
1712
+
1713
+ var tokenParts = token.split(".");
1823
1714
 
1824
- var _map = new WeakMap();
1715
+ if (tokenParts.length !== 3) {
1716
+ return false;
1717
+ }
1718
+
1719
+ var data = JSON.parse(atob(tokenParts[1]));
1720
+
1721
+ if (typeof data.exp !== "number") {
1722
+ return false;
1723
+ }
1825
1724
 
1826
- var _propToLastUpdate = new WeakMap();
1725
+ var now = Date.now();
1827
1726
 
1828
- var _applyUpdate = new WeakSet();
1727
+ if (now / 1000 > data.exp - 300) {
1728
+ return false;
1729
+ }
1829
1730
 
1830
- var _applyDeleteObjectKey = new WeakSet();
1731
+ return true;
1732
+ }
1831
1733
 
1832
1734
  var LiveObject = function (_AbstractCrdt) {
1833
1735
  _inheritsLoose(LiveObject, _AbstractCrdt);
@@ -1840,20 +1742,7 @@ var LiveObject = function (_AbstractCrdt) {
1840
1742
  }
1841
1743
 
1842
1744
  _this = _AbstractCrdt.call(this) || this;
1843
-
1844
- _applyDeleteObjectKey.add(_assertThisInitialized(_this));
1845
-
1846
- _applyUpdate.add(_assertThisInitialized(_this));
1847
-
1848
- _map.set(_assertThisInitialized(_this), {
1849
- writable: true,
1850
- value: void 0
1851
- });
1852
-
1853
- _propToLastUpdate.set(_assertThisInitialized(_this), {
1854
- writable: true,
1855
- value: new Map()
1856
- });
1745
+ _this._propToLastUpdate = new Map();
1857
1746
 
1858
1747
  for (var key in object) {
1859
1748
  var value = object[key];
@@ -1863,8 +1752,7 @@ var LiveObject = function (_AbstractCrdt) {
1863
1752
  }
1864
1753
  }
1865
1754
 
1866
- _classPrivateFieldSet(_assertThisInitialized(_this), _map, new Map(Object.entries(object)));
1867
-
1755
+ _this._map = new Map(Object.entries(object));
1868
1756
  return _this;
1869
1757
  }
1870
1758
 
@@ -1886,7 +1774,7 @@ var LiveObject = function (_AbstractCrdt) {
1886
1774
  };
1887
1775
  ops.push(op);
1888
1776
 
1889
- for (var _iterator = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map)), _step; !(_step = _iterator()).done;) {
1777
+ for (var _iterator = _createForOfIteratorHelperLoose(this._map), _step; !(_step = _iterator()).done;) {
1890
1778
  var _step$value = _step.value,
1891
1779
  key = _step$value[0],
1892
1780
  value = _step$value[1];
@@ -1935,7 +1823,7 @@ var LiveObject = function (_AbstractCrdt) {
1935
1823
 
1936
1824
  child._setParentLink(object, crdt.parentKey);
1937
1825
 
1938
- _classPrivateFieldGet(object, _map).set(crdt.parentKey, child);
1826
+ object._map.set(crdt.parentKey, child);
1939
1827
  }
1940
1828
 
1941
1829
  return object;
@@ -1944,7 +1832,7 @@ var LiveObject = function (_AbstractCrdt) {
1944
1832
  _proto._attach = function _attach(id, doc) {
1945
1833
  _AbstractCrdt.prototype._attach.call(this, id, doc);
1946
1834
 
1947
- for (var _iterator3 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map)), _step3; !(_step3 = _iterator3()).done;) {
1835
+ for (var _iterator3 = _createForOfIteratorHelperLoose(this._map), _step3; !(_step3 = _iterator3()).done;) {
1948
1836
  var _step3$value = _step3.value;
1949
1837
  _step3$value[0];
1950
1838
  var value = _step3$value[1];
@@ -1963,8 +1851,8 @@ var LiveObject = function (_AbstractCrdt) {
1963
1851
  }
1964
1852
 
1965
1853
  if (this._doc.getItem(id) !== undefined) {
1966
- if (_classPrivateFieldGet(this, _propToLastUpdate).get(key) === opId) {
1967
- _classPrivateFieldGet(this, _propToLastUpdate).delete(key);
1854
+ if (this._propToLastUpdate.get(key) === opId) {
1855
+ this._propToLastUpdate.delete(key);
1968
1856
  }
1969
1857
 
1970
1858
  return {
@@ -1973,9 +1861,9 @@ var LiveObject = function (_AbstractCrdt) {
1973
1861
  }
1974
1862
 
1975
1863
  if (isLocal) {
1976
- _classPrivateFieldGet(this, _propToLastUpdate).set(key, opId);
1977
- } else if (_classPrivateFieldGet(this, _propToLastUpdate).get(key) === undefined) ; else if (_classPrivateFieldGet(this, _propToLastUpdate).get(key) === opId) {
1978
- _classPrivateFieldGet(this, _propToLastUpdate).delete(key);
1864
+ this._propToLastUpdate.set(key, opId);
1865
+ } else if (this._propToLastUpdate.get(key) === undefined) ; else if (this._propToLastUpdate.get(key) === opId) {
1866
+ this._propToLastUpdate.delete(key);
1979
1867
 
1980
1868
  return {
1981
1869
  modified: false
@@ -1986,7 +1874,7 @@ var LiveObject = function (_AbstractCrdt) {
1986
1874
  };
1987
1875
  }
1988
1876
 
1989
- var previousValue = _classPrivateFieldGet(this, _map).get(key);
1877
+ var previousValue = this._map.get(key);
1990
1878
 
1991
1879
  var reverse;
1992
1880
 
@@ -2010,7 +1898,7 @@ var LiveObject = function (_AbstractCrdt) {
2010
1898
  }];
2011
1899
  }
2012
1900
 
2013
- _classPrivateFieldGet(this, _map).set(key, child);
1901
+ this._map.set(key, child);
2014
1902
 
2015
1903
  child._setParentLink(this, key);
2016
1904
 
@@ -2034,13 +1922,13 @@ var LiveObject = function (_AbstractCrdt) {
2034
1922
 
2035
1923
  var reverse = child._serialize(this._id, child._parentKey, this._doc);
2036
1924
 
2037
- for (var _iterator4 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map)), _step4; !(_step4 = _iterator4()).done;) {
1925
+ for (var _iterator4 = _createForOfIteratorHelperLoose(this._map), _step4; !(_step4 = _iterator4()).done;) {
2038
1926
  var _step4$value = _step4.value,
2039
1927
  key = _step4$value[0],
2040
1928
  value = _step4$value[1];
2041
1929
 
2042
1930
  if (value === child) {
2043
- _classPrivateFieldGet(this, _map).delete(key);
1931
+ this._map.delete(key);
2044
1932
  }
2045
1933
  }
2046
1934
 
@@ -2065,12 +1953,12 @@ var LiveObject = function (_AbstractCrdt) {
2065
1953
  };
2066
1954
 
2067
1955
  _proto._detachChildren = function _detachChildren() {
2068
- for (var _iterator5 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map)), _step5; !(_step5 = _iterator5()).done;) {
1956
+ for (var _iterator5 = _createForOfIteratorHelperLoose(this._map), _step5; !(_step5 = _iterator5()).done;) {
2069
1957
  var _step5$value = _step5.value,
2070
1958
  key = _step5$value[0],
2071
1959
  value = _step5$value[1];
2072
1960
 
2073
- _classPrivateFieldGet(this, _map).delete(key);
1961
+ this._map.delete(key);
2074
1962
 
2075
1963
  value._detach();
2076
1964
  }
@@ -2079,7 +1967,7 @@ var LiveObject = function (_AbstractCrdt) {
2079
1967
  _proto._detach = function _detach() {
2080
1968
  _AbstractCrdt.prototype._detach.call(this);
2081
1969
 
2082
- for (var _iterator6 = _createForOfIteratorHelperLoose(_classPrivateFieldGet(this, _map).values()), _step6; !(_step6 = _iterator6()).done;) {
1970
+ for (var _iterator6 = _createForOfIteratorHelperLoose(this._map.values()), _step6; !(_step6 = _iterator6()).done;) {
2083
1971
  var value = _step6.value;
2084
1972
 
2085
1973
  if (isCrdt(value)) {
@@ -2090,9 +1978,9 @@ var LiveObject = function (_AbstractCrdt) {
2090
1978
 
2091
1979
  _proto._apply = function _apply(op, isLocal) {
2092
1980
  if (op.type === OpType.UpdateObject) {
2093
- return _classPrivateMethodGet(this, _applyUpdate, _applyUpdate2).call(this, op, isLocal);
1981
+ return this._applyUpdate(op, isLocal);
2094
1982
  } else if (op.type === OpType.DeleteObjectKey) {
2095
- return _classPrivateMethodGet(this, _applyDeleteObjectKey, _applyDeleteObjectKey2).call(this, op);
1983
+ return this._applyDeleteObjectKey(op);
2096
1984
  }
2097
1985
 
2098
1986
  return _AbstractCrdt.prototype._apply.call(this, op, isLocal);
@@ -2101,16 +1989,150 @@ var LiveObject = function (_AbstractCrdt) {
2101
1989
  _proto._toSerializedCrdt = function _toSerializedCrdt() {
2102
1990
  var _this$_parent;
2103
1991
 
1992
+ var data = {};
1993
+
1994
+ for (var _iterator7 = _createForOfIteratorHelperLoose(this._map), _step7; !(_step7 = _iterator7()).done;) {
1995
+ var _step7$value = _step7.value,
1996
+ key = _step7$value[0],
1997
+ value = _step7$value[1];
1998
+
1999
+ if (value instanceof AbstractCrdt === false) {
2000
+ data[key] = value;
2001
+ }
2002
+ }
2003
+
2104
2004
  return {
2105
2005
  type: CrdtType.Object,
2106
2006
  parentId: (_this$_parent = this._parent) == null ? void 0 : _this$_parent._id,
2107
2007
  parentKey: this._parentKey,
2108
- data: this.toObject()
2008
+ data: data
2009
+ };
2010
+ };
2011
+
2012
+ _proto._applyUpdate = function _applyUpdate(op, isLocal) {
2013
+ var isModified = false;
2014
+ var reverse = [];
2015
+ var reverseUpdate = {
2016
+ type: OpType.UpdateObject,
2017
+ id: this._id,
2018
+ data: {}
2019
+ };
2020
+ reverse.push(reverseUpdate);
2021
+
2022
+ for (var key in op.data) {
2023
+ var oldValue = this._map.get(key);
2024
+
2025
+ if (oldValue instanceof AbstractCrdt) {
2026
+ reverse.push.apply(reverse, oldValue._serialize(this._id, key));
2027
+
2028
+ oldValue._detach();
2029
+ } else if (oldValue !== undefined) {
2030
+ reverseUpdate.data[key] = oldValue;
2031
+ } else if (oldValue === undefined) {
2032
+ reverse.push({
2033
+ type: OpType.DeleteObjectKey,
2034
+ id: this._id,
2035
+ key: key
2036
+ });
2037
+ }
2038
+ }
2039
+
2040
+ var updateDelta = {};
2041
+
2042
+ for (var _key2 in op.data) {
2043
+ if (isLocal) {
2044
+ this._propToLastUpdate.set(_key2, op.opId);
2045
+ } else if (this._propToLastUpdate.get(_key2) == null) {
2046
+ isModified = true;
2047
+ } else if (this._propToLastUpdate.get(_key2) === op.opId) {
2048
+ this._propToLastUpdate.delete(_key2);
2049
+
2050
+ continue;
2051
+ } else {
2052
+ continue;
2053
+ }
2054
+
2055
+ var _oldValue = this._map.get(_key2);
2056
+
2057
+ if (isCrdt(_oldValue)) {
2058
+ _oldValue._detach();
2059
+ }
2060
+
2061
+ isModified = true;
2062
+ updateDelta[_key2] = {
2063
+ type: "update"
2064
+ };
2065
+
2066
+ this._map.set(_key2, op.data[_key2]);
2067
+ }
2068
+
2069
+ if (Object.keys(reverseUpdate.data).length !== 0) {
2070
+ reverse.unshift(reverseUpdate);
2071
+ }
2072
+
2073
+ return isModified ? {
2074
+ modified: {
2075
+ node: this,
2076
+ type: "LiveObject",
2077
+ updates: updateDelta
2078
+ },
2079
+ reverse: reverse
2080
+ } : {
2081
+ modified: false
2082
+ };
2083
+ };
2084
+
2085
+ _proto._applyDeleteObjectKey = function _applyDeleteObjectKey(op) {
2086
+ var _updates3;
2087
+
2088
+ var key = op.key;
2089
+
2090
+ if (this._map.has(key) === false) {
2091
+ return {
2092
+ modified: false
2093
+ };
2094
+ }
2095
+
2096
+ if (this._propToLastUpdate.get(key) !== undefined) {
2097
+ return {
2098
+ modified: false
2099
+ };
2100
+ }
2101
+
2102
+ var oldValue = this._map.get(key);
2103
+
2104
+ var reverse = [];
2105
+
2106
+ if (isCrdt(oldValue)) {
2107
+ reverse = oldValue._serialize(this._id, op.key);
2108
+
2109
+ oldValue._detach();
2110
+ } else if (oldValue !== undefined) {
2111
+ var _data2;
2112
+
2113
+ reverse = [{
2114
+ type: OpType.UpdateObject,
2115
+ id: this._id,
2116
+ data: (_data2 = {}, _data2[key] = oldValue, _data2)
2117
+ }];
2118
+ }
2119
+
2120
+ this._map.delete(key);
2121
+
2122
+ return {
2123
+ modified: {
2124
+ node: this,
2125
+ type: "LiveObject",
2126
+ updates: (_updates3 = {}, _updates3[op.key] = {
2127
+ type: "delete"
2128
+ }, _updates3)
2129
+ },
2130
+ reverse: reverse
2109
2131
  };
2110
2132
  };
2111
2133
 
2112
2134
  _proto.toObject = function toObject() {
2113
- return Object.fromEntries(_classPrivateFieldGet(this, _map));
2135
+ return Object.fromEntries(this._map);
2114
2136
  };
2115
2137
 
2116
2138
  _proto.set = function set(key, value) {
@@ -2120,15 +2142,15 @@ var LiveObject = function (_AbstractCrdt) {
2120
2142
  };
2121
2143
 
2122
2144
  _proto.get = function get(key) {
2123
- return _classPrivateFieldGet(this, _map).get(key);
2145
+ return this._map.get(key);
2124
2146
  };
2125
2147
 
2126
2148
  _proto.delete = function _delete(key) {
2127
- var _updates3;
2149
+ var _updates4;
2128
2150
 
2129
2151
  var keyAsString = key;
2130
2152
 
2131
- var oldValue = _classPrivateFieldGet(this, _map).get(keyAsString);
2153
+ var oldValue = this._map.get(keyAsString);
2132
2154
 
2133
2155
  if (oldValue === undefined) {
2134
2156
  return;
@@ -2139,7 +2161,7 @@ var LiveObject = function (_AbstractCrdt) {
2139
2161
  oldValue._detach();
2140
2162
  }
2141
2163
 
2142
- _classPrivateFieldGet(this, _map).delete(keyAsString);
2164
+ this._map.delete(keyAsString);
2143
2165
 
2144
2166
  return;
2145
2167
  }
@@ -2151,24 +2173,24 @@ var LiveObject = function (_AbstractCrdt) {
2151
2173
 
2152
2174
  reverse = oldValue._serialize(this._id, keyAsString);
2153
2175
  } else {
2154
- var _data2;
2176
+ var _data3;
2155
2177
 
2156
2178
  reverse = [{
2157
2179
  type: OpType.UpdateObject,
2158
- data: (_data2 = {}, _data2[keyAsString] = oldValue, _data2),
2180
+ data: (_data3 = {}, _data3[keyAsString] = oldValue, _data3),
2159
2181
  id: this._id
2160
2182
  }];
2161
2183
  }
2162
2184
 
2163
- _classPrivateFieldGet(this, _map).delete(keyAsString);
2185
+ this._map.delete(keyAsString);
2164
2186
 
2165
2187
  var storageUpdates = new Map();
2166
2188
  storageUpdates.set(this._id, {
2167
2189
  node: this,
2168
2190
  type: "LiveObject",
2169
- updates: (_updates3 = {}, _updates3[key] = {
2191
+ updates: (_updates4 = {}, _updates4[key] = {
2170
2192
  type: "delete"
2171
- }, _updates3)
2193
+ }, _updates4)
2172
2194
  });
2173
2195
 
2174
2196
  this._doc.dispatch([{
@@ -2184,7 +2206,7 @@ var LiveObject = function (_AbstractCrdt) {
2184
2206
 
2185
2207
  if (this._doc == null || this._id == null) {
2186
2208
  for (var key in overrides) {
2187
- var oldValue = _classPrivateFieldGet(this, _map).get(key);
2209
+ var oldValue = this._map.get(key);
2188
2210
 
2189
2211
  if (oldValue instanceof AbstractCrdt) {
2190
2212
  oldValue._detach();
@@ -2196,7 +2218,7 @@ var LiveObject = function (_AbstractCrdt) {
2196
2218
  newValue._setParentLink(this, key);
2197
2219
  }
2198
2220
 
2199
- _classPrivateFieldGet(this, _map).set(key, newValue);
2221
+ this._map.set(key, newValue);
2200
2222
  }
2201
2223
 
2202
2224
  return;
@@ -2215,50 +2237,50 @@ var LiveObject = function (_AbstractCrdt) {
2215
2237
  };
2216
2238
  var updateDelta = {};
2217
2239
 
2218
- for (var _key2 in overrides) {
2219
- var _oldValue = _classPrivateFieldGet(this, _map).get(_key2);
2240
+ for (var _key3 in overrides) {
2241
+ var _oldValue2 = this._map.get(_key3);
2220
2242
 
2221
- if (_oldValue instanceof AbstractCrdt) {
2222
- reverseOps.push.apply(reverseOps, _oldValue._serialize(this._id, _key2));
2243
+ if (_oldValue2 instanceof AbstractCrdt) {
2244
+ reverseOps.push.apply(reverseOps, _oldValue2._serialize(this._id, _key3));
2223
2245
 
2224
- _oldValue._detach();
2225
- } else if (_oldValue === undefined) {
2246
+ _oldValue2._detach();
2247
+ } else if (_oldValue2 === undefined) {
2226
2248
  reverseOps.push({
2227
2249
  type: OpType.DeleteObjectKey,
2228
2250
  id: this._id,
2229
- key: _key2
2251
+ key: _key3
2230
2252
  });
2231
2253
  } else {
2232
- reverseUpdateOp.data[_key2] = _oldValue;
2254
+ reverseUpdateOp.data[_key3] = _oldValue2;
2233
2255
  }
2234
2256
 
2235
- var _newValue = overrides[_key2];
2257
+ var _newValue = overrides[_key3];
2236
2258
 
2237
2259
  if (_newValue instanceof AbstractCrdt) {
2238
- _newValue._setParentLink(this, _key2);
2260
+ _newValue._setParentLink(this, _key3);
2239
2261
 
2240
2262
  _newValue._attach(this._doc.generateId(), this._doc);
2241
2263
 
2242
- var newAttachChildOps = _newValue._serialize(this._id, _key2, this._doc);
2264
+ var newAttachChildOps = _newValue._serialize(this._id, _key3, this._doc);
2243
2265
 
2244
2266
  var createCrdtOp = newAttachChildOps.find(function (op) {
2245
2267
  return op.parentId === _this2._id;
2246
2268
  });
2247
2269
 
2248
2270
  if (createCrdtOp) {
2249
- _classPrivateFieldGet(this, _propToLastUpdate).set(_key2, createCrdtOp.opId);
2271
+ this._propToLastUpdate.set(_key3, createCrdtOp.opId);
2250
2272
  }
2251
2273
 
2252
2274
  ops.push.apply(ops, newAttachChildOps);
2253
2275
  } else {
2254
- updatedProps[_key2] = _newValue;
2276
+ updatedProps[_key3] = _newValue;
2255
2277
 
2256
- _classPrivateFieldGet(this, _propToLastUpdate).set(_key2, opId);
2278
+ this._propToLastUpdate.set(_key3, opId);
2257
2279
  }
2258
2280
 
2259
- _classPrivateFieldGet(this, _map).set(_key2, _newValue);
2281
+ this._map.set(_key3, _newValue);
2260
2282
 
2261
- updateDelta[_key2] = {
2283
+ updateDelta[_key3] = {
2262
2284
  type: "update"
2263
2285
  };
2264
2286
  }
@@ -2289,128 +2311,6 @@ var LiveObject = function (_AbstractCrdt) {
2289
2311
  return LiveObject;
2290
2312
  }(AbstractCrdt);
2291
2313
 
2292
- function _applyUpdate2(op, isLocal) {
2293
- var isModified = false;
2294
- var reverse = [];
2295
- var reverseUpdate = {
2296
- type: OpType.UpdateObject,
2297
- id: this._id,
2298
- data: {}
2299
- };
2300
- reverse.push(reverseUpdate);
2301
-
2302
- for (var key in op.data) {
2303
- var oldValue = _classPrivateFieldGet(this, _map).get(key);
2304
-
2305
- if (oldValue instanceof AbstractCrdt) {
2306
- reverse.push.apply(reverse, oldValue._serialize(this._id, key));
2307
-
2308
- oldValue._detach();
2309
- } else if (oldValue !== undefined) {
2310
- reverseUpdate.data[key] = oldValue;
2311
- } else if (oldValue === undefined) {
2312
- reverse.push({
2313
- type: OpType.DeleteObjectKey,
2314
- id: this._id,
2315
- key: key
2316
- });
2317
- }
2318
- }
2319
-
2320
- var updateDelta = {};
2321
-
2322
- for (var _key3 in op.data) {
2323
- if (isLocal) {
2324
- _classPrivateFieldGet(this, _propToLastUpdate).set(_key3, op.opId);
2325
- } else if (_classPrivateFieldGet(this, _propToLastUpdate).get(_key3) == null) {
2326
- isModified = true;
2327
- } else if (_classPrivateFieldGet(this, _propToLastUpdate).get(_key3) === op.opId) {
2328
- _classPrivateFieldGet(this, _propToLastUpdate).delete(_key3);
2329
-
2330
- continue;
2331
- } else {
2332
- continue;
2333
- }
2334
-
2335
- var _oldValue2 = _classPrivateFieldGet(this, _map).get(_key3);
2336
-
2337
- if (isCrdt(_oldValue2)) {
2338
- _oldValue2._detach();
2339
- }
2340
-
2341
- isModified = true;
2342
- updateDelta[_key3] = {
2343
- type: "update"
2344
- };
2345
-
2346
- _classPrivateFieldGet(this, _map).set(_key3, op.data[_key3]);
2347
- }
2348
-
2349
- if (Object.keys(reverseUpdate.data).length !== 0) {
2350
- reverse.unshift(reverseUpdate);
2351
- }
2352
-
2353
- return isModified ? {
2354
- modified: {
2355
- node: this,
2356
- type: "LiveObject",
2357
- updates: updateDelta
2358
- },
2359
- reverse: reverse
2360
- } : {
2361
- modified: false
2362
- };
2363
- }
2364
-
2365
- function _applyDeleteObjectKey2(op) {
2366
- var _updates4;
2367
-
2368
- var key = op.key;
2369
-
2370
- if (_classPrivateFieldGet(this, _map).has(key) === false) {
2371
- return {
2372
- modified: false
2373
- };
2374
- }
2375
-
2376
- if (_classPrivateFieldGet(this, _propToLastUpdate).get(key) !== undefined) {
2377
- return {
2378
- modified: false
2379
- };
2380
- }
2381
-
2382
- var oldValue = _classPrivateFieldGet(this, _map).get(key);
2383
-
2384
- var reverse = [];
2385
-
2386
- if (isCrdt(oldValue)) {
2387
- reverse = oldValue._serialize(this._id, op.key);
2388
-
2389
- oldValue._detach();
2390
- } else if (oldValue !== undefined) {
2391
- var _data3;
2392
-
2393
- reverse = [{
2394
- type: OpType.UpdateObject,
2395
- id: this._id,
2396
- data: (_data3 = {}, _data3[key] = oldValue, _data3)
2397
- }];
2398
- }
2399
-
2400
- _classPrivateFieldGet(this, _map).delete(key);
2401
-
2402
- return {
2403
- modified: {
2404
- node: this,
2405
- type: "LiveObject",
2406
- updates: (_updates4 = {}, _updates4[op.key] = {
2407
- type: "delete"
2408
- }, _updates4)
2409
- },
2410
- reverse: reverse
2411
- };
2412
- }
2413
-
2414
2314
  var BACKOFF_RETRY_DELAYS = [250, 500, 1000, 2000, 4000, 8000, 10000];
2415
2315
  var BACKOFF_RETRY_DELAYS_SLOW = [2000, 30000, 60000, 300000];
2416
2316
  var HEARTBEAT_INTERVAL = 30000;
@@ -2453,19 +2353,26 @@ function makeOthers(userMap) {
2453
2353
  function makeStateMachine(state, context, mockedEffects) {
2454
2354
  var effects = mockedEffects || {
2455
2355
  authenticate: function authenticate(auth, createWebSocket) {
2456
- return auth(context.room).then(function (_ref2) {
2457
- var token = _ref2.token;
2356
+ if (isTokenValid(state.token)) {
2357
+ var parsedToken = parseToken(state.token);
2358
+ var socket = createWebSocket(state.token);
2359
+ authenticationSuccess(parsedToken, socket);
2360
+ } else {
2361
+ return auth(context.room).then(function (_ref2) {
2362
+ var token = _ref2.token;
2458
2363
 
2459
- if (state.connection.state !== "authenticating") {
2460
- return;
2461
- }
2364
+ if (state.connection.state !== "authenticating") {
2365
+ return;
2366
+ }
2462
2367
 
2463
- var parsedToken = parseToken(token);
2464
- var socket = createWebSocket(token);
2465
- authenticationSuccess(parsedToken, socket);
2466
- }).catch(function (er) {
2467
- return authenticationFailure(er);
2468
- });
2368
+ var parsedToken = parseToken(token);
2369
+ var socket = createWebSocket(token);
2370
+ authenticationSuccess(parsedToken, socket);
2371
+ state.token = token;
2372
+ }).catch(function (er) {
2373
+ return authenticationFailure(er);
2374
+ });
2375
+ }
2469
2376
  },
2470
2377
  send: function send(messageOrMessages) {
2471
2378
  if (state.socket == null) {
@@ -2968,6 +2875,7 @@ function makeStateMachine(state, context, mockedEffects) {
2968
2875
  console.error("Call to authentication endpoint failed", error);
2969
2876
  }
2970
2877
 
2878
+ state.token = null;
2971
2879
  updateConnection({
2972
2880
  state: "unavailable"
2973
2881
  });
@@ -3152,8 +3060,9 @@ function makeStateMachine(state, context, mockedEffects) {
3152
3060
 
3153
3061
  case ServerMessageType.InitialStorageState:
3154
3062
  {
3063
+ var offlineOps = new Map(state.offlineOperations);
3155
3064
  createOrUpdateRootFromMessage(subMessage);
3156
- applyAndSendOfflineOps();
3065
+ applyAndSendOfflineOps(offlineOps);
3157
3066
  _getInitialStateResolver == null ? void 0 : _getInitialStateResolver();
3158
3067
  break;
3159
3068
  }
@@ -3325,13 +3234,13 @@ function makeStateMachine(state, context, mockedEffects) {
3325
3234
  connect();
3326
3235
  }
3327
3236
 
3328
- function applyAndSendOfflineOps() {
3329
- if (state.offlineOperations.size === 0) {
3237
+ function applyAndSendOfflineOps(offlineOps) {
3238
+ if (offlineOps.size === 0) {
3330
3239
  return;
3331
3240
  }
3332
3241
 
3333
3242
  var messages = [];
3334
- var ops = Array.from(state.offlineOperations.values());
3243
+ var ops = Array.from(offlineOps.values());
3335
3244
  var result = apply(ops, true);
3336
3245
  messages.push({
3337
3246
  type: ClientMessageType.UpdateStorage,
@@ -3664,6 +3573,7 @@ function defaultState(me, defaultStorageRoot) {
3664
3573
  connection: {
3665
3574
  state: "closed"
3666
3575
  },
3576
+ token: null,
3667
3577
  lastConnectionId: null,
3668
3578
  socket: null,
3669
3579
  listeners: {