@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/README.md +13 -3
- package/lib/esm/index.js +264 -357
- package/lib/esm/index.mjs +264 -357
- package/lib/index.d.ts +10 -4
- package/lib/index.js +326 -416
- package/package.json +1 -1
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 (
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
370
|
-
|
|
296
|
+
if (this.__doc && this.__id) {
|
|
297
|
+
this.__doc.deleteItem(this.__id);
|
|
371
298
|
}
|
|
372
299
|
|
|
373
|
-
|
|
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
|
|
307
|
+
return this.__doc;
|
|
382
308
|
}
|
|
383
309
|
}, {
|
|
384
310
|
key: "roomId",
|
|
385
311
|
get: function get() {
|
|
386
|
-
return
|
|
312
|
+
return this.__doc ? this.__doc.roomId : null;
|
|
387
313
|
}
|
|
388
314
|
}, {
|
|
389
315
|
key: "_id",
|
|
390
316
|
get: function get() {
|
|
391
|
-
return
|
|
317
|
+
return this.__id;
|
|
392
318
|
}
|
|
393
319
|
}, {
|
|
394
320
|
key: "_parent",
|
|
395
321
|
get: function get() {
|
|
396
|
-
return
|
|
322
|
+
return this.__parent;
|
|
397
323
|
}
|
|
398
324
|
}, {
|
|
399
325
|
key: "_parentKey",
|
|
400
326
|
get: function get() {
|
|
401
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
582
|
+
list._items.push([child, entry[1].parentKey]);
|
|
676
583
|
|
|
677
|
-
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
768
|
-
var after =
|
|
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
|
|
680
|
+
var _this$_items;
|
|
774
681
|
|
|
775
|
-
|
|
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
|
-
|
|
686
|
+
this._items.push([child, newKey]);
|
|
780
687
|
|
|
781
|
-
|
|
688
|
+
this._items.sort(function (itemA, itemB) {
|
|
782
689
|
return compare(itemA[1], itemB[1]);
|
|
783
690
|
});
|
|
784
691
|
|
|
785
|
-
var newIndex =
|
|
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 =
|
|
717
|
+
var indexToDelete = this._items.findIndex(function (item) {
|
|
811
718
|
return item[0] === child;
|
|
812
719
|
});
|
|
813
720
|
|
|
814
|
-
|
|
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 =
|
|
747
|
+
var previousIndex = this._items.findIndex(function (entry) {
|
|
841
748
|
return entry[0]._id === child._id;
|
|
842
749
|
});
|
|
843
750
|
|
|
844
|
-
var index =
|
|
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
|
|
756
|
+
var _this$_items2;
|
|
850
757
|
|
|
851
|
-
|
|
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 =
|
|
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
|
-
|
|
769
|
+
this._items.sort(function (itemA, itemB) {
|
|
863
770
|
return compare(itemA[1], itemB[1]);
|
|
864
771
|
});
|
|
865
772
|
|
|
866
|
-
var newIndex =
|
|
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 >
|
|
910
|
-
throw new Error("Cannot insert list item at index \"\x1D" + index + "\". index should be between 0 and " +
|
|
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 =
|
|
914
|
-
var after =
|
|
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
|
-
|
|
827
|
+
this._items.push([value, position]);
|
|
921
828
|
|
|
922
|
-
|
|
829
|
+
this._items.sort(function (itemA, itemB) {
|
|
923
830
|
return compare(itemA[1], itemB[1]);
|
|
924
831
|
});
|
|
925
832
|
|
|
926
|
-
var newIndex =
|
|
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 >=
|
|
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 >=
|
|
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 ===
|
|
975
|
-
beforePosition =
|
|
881
|
+
afterPosition = targetIndex === this._items.length - 1 ? undefined : this._items[targetIndex + 1][1];
|
|
882
|
+
beforePosition = this._items[targetIndex][1];
|
|
976
883
|
} else {
|
|
977
|
-
afterPosition =
|
|
978
|
-
beforePosition = targetIndex === 0 ? undefined :
|
|
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
|
-
|
|
895
|
+
this._items.sort(function (itemA, itemB) {
|
|
991
896
|
return compare(itemA[1], itemB[1]);
|
|
992
897
|
});
|
|
993
898
|
|
|
994
|
-
var newIndex =
|
|
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 >=
|
|
1026
|
-
throw new Error("Cannot delete list item at index \"\x1D" + index + "\". index should be between 0 and " + (
|
|
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 =
|
|
934
|
+
var item = this._items[index];
|
|
1030
935
|
|
|
1031
936
|
item[0]._detach();
|
|
1032
937
|
|
|
1033
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
1008
|
+
this._items = [];
|
|
1105
1009
|
}
|
|
1106
1010
|
};
|
|
1107
1011
|
|
|
1108
1012
|
_proto.toArray = function toArray() {
|
|
1109
|
-
return
|
|
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 >=
|
|
1039
|
+
if (index < 0 || index >= this._items.length) {
|
|
1136
1040
|
return undefined;
|
|
1137
1041
|
}
|
|
1138
1042
|
|
|
1139
|
-
return selfOrRegisterValue(
|
|
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
|
|
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[
|
|
1161
|
-
return new LiveListIterator(
|
|
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
|
|
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.
|
|
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[
|
|
1085
|
+
_proto2[Symbol.iterator] = function () {
|
|
1191
1086
|
return this;
|
|
1192
1087
|
};
|
|
1193
1088
|
|
|
1194
1089
|
_proto2.next = function next() {
|
|
1195
|
-
var result =
|
|
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
|
-
|
|
1128
|
+
_this._map = new Map(mappedEntries);
|
|
1244
1129
|
} else {
|
|
1245
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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 =
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
|
1360
|
+
return this._map.has(key);
|
|
1476
1361
|
};
|
|
1477
1362
|
|
|
1478
1363
|
_proto.delete = function _delete(key) {
|
|
1479
|
-
var item =
|
|
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
|
-
|
|
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 =
|
|
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[
|
|
1420
|
+
_proto[Symbol.iterator] = function () {
|
|
1536
1421
|
return this.entries();
|
|
1537
1422
|
};
|
|
1538
1423
|
|
|
1539
1424
|
_proto.keys = function keys() {
|
|
1540
|
-
return
|
|
1425
|
+
return this._map.keys();
|
|
1541
1426
|
};
|
|
1542
1427
|
|
|
1543
1428
|
_proto.values = function values() {
|
|
1544
1429
|
var _ref3;
|
|
1545
1430
|
|
|
1546
|
-
var innerIterator =
|
|
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
|
|
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
|
-
|
|
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
|
|
1725
|
+
var now = Date.now();
|
|
1827
1726
|
|
|
1828
|
-
|
|
1727
|
+
if (now / 1000 > data.exp - 300) {
|
|
1728
|
+
return false;
|
|
1729
|
+
}
|
|
1829
1730
|
|
|
1830
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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 (
|
|
1967
|
-
|
|
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
|
-
|
|
1977
|
-
} else if (
|
|
1978
|
-
|
|
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 =
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
|
1981
|
+
return this._applyUpdate(op, isLocal);
|
|
2094
1982
|
} else if (op.type === OpType.DeleteObjectKey) {
|
|
2095
|
-
return
|
|
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:
|
|
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(
|
|
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
|
|
2145
|
+
return this._map.get(key);
|
|
2124
2146
|
};
|
|
2125
2147
|
|
|
2126
2148
|
_proto.delete = function _delete(key) {
|
|
2127
|
-
var
|
|
2149
|
+
var _updates4;
|
|
2128
2150
|
|
|
2129
2151
|
var keyAsString = key;
|
|
2130
2152
|
|
|
2131
|
-
var oldValue =
|
|
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
|
-
|
|
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
|
|
2176
|
+
var _data3;
|
|
2155
2177
|
|
|
2156
2178
|
reverse = [{
|
|
2157
2179
|
type: OpType.UpdateObject,
|
|
2158
|
-
data: (
|
|
2180
|
+
data: (_data3 = {}, _data3[keyAsString] = oldValue, _data3),
|
|
2159
2181
|
id: this._id
|
|
2160
2182
|
}];
|
|
2161
2183
|
}
|
|
2162
2184
|
|
|
2163
|
-
|
|
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: (
|
|
2191
|
+
updates: (_updates4 = {}, _updates4[key] = {
|
|
2170
2192
|
type: "delete"
|
|
2171
|
-
},
|
|
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 =
|
|
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
|
-
|
|
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
|
|
2219
|
-
var
|
|
2240
|
+
for (var _key3 in overrides) {
|
|
2241
|
+
var _oldValue2 = this._map.get(_key3);
|
|
2220
2242
|
|
|
2221
|
-
if (
|
|
2222
|
-
reverseOps.push.apply(reverseOps,
|
|
2243
|
+
if (_oldValue2 instanceof AbstractCrdt) {
|
|
2244
|
+
reverseOps.push.apply(reverseOps, _oldValue2._serialize(this._id, _key3));
|
|
2223
2245
|
|
|
2224
|
-
|
|
2225
|
-
} else if (
|
|
2246
|
+
_oldValue2._detach();
|
|
2247
|
+
} else if (_oldValue2 === undefined) {
|
|
2226
2248
|
reverseOps.push({
|
|
2227
2249
|
type: OpType.DeleteObjectKey,
|
|
2228
2250
|
id: this._id,
|
|
2229
|
-
key:
|
|
2251
|
+
key: _key3
|
|
2230
2252
|
});
|
|
2231
2253
|
} else {
|
|
2232
|
-
reverseUpdateOp.data[
|
|
2254
|
+
reverseUpdateOp.data[_key3] = _oldValue2;
|
|
2233
2255
|
}
|
|
2234
2256
|
|
|
2235
|
-
var _newValue = overrides[
|
|
2257
|
+
var _newValue = overrides[_key3];
|
|
2236
2258
|
|
|
2237
2259
|
if (_newValue instanceof AbstractCrdt) {
|
|
2238
|
-
_newValue._setParentLink(this,
|
|
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,
|
|
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
|
-
|
|
2271
|
+
this._propToLastUpdate.set(_key3, createCrdtOp.opId);
|
|
2250
2272
|
}
|
|
2251
2273
|
|
|
2252
2274
|
ops.push.apply(ops, newAttachChildOps);
|
|
2253
2275
|
} else {
|
|
2254
|
-
updatedProps[
|
|
2276
|
+
updatedProps[_key3] = _newValue;
|
|
2255
2277
|
|
|
2256
|
-
|
|
2278
|
+
this._propToLastUpdate.set(_key3, opId);
|
|
2257
2279
|
}
|
|
2258
2280
|
|
|
2259
|
-
|
|
2281
|
+
this._map.set(_key3, _newValue);
|
|
2260
2282
|
|
|
2261
|
-
updateDelta[
|
|
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
|
-
|
|
2457
|
-
var
|
|
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
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2364
|
+
if (state.connection.state !== "authenticating") {
|
|
2365
|
+
return;
|
|
2366
|
+
}
|
|
2462
2367
|
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
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 (
|
|
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(
|
|
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: {
|