@fluidframework/merge-tree 2.0.0-rc.3.0.3 → 2.0.0-rc.4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/api-report/merge-tree.api.md +4 -8
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -3
- package/dist/client.js.map +1 -1
- package/dist/legacy.d.ts +3 -1
- package/dist/mergeTree.d.ts +0 -1
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +40 -55
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +29 -3
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +12 -7
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +6 -18
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/opBuilder.js +2 -2
- package/dist/opBuilder.js.map +1 -1
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js +1 -1
- package/dist/properties.js.map +1 -1
- package/dist/referencePositions.d.ts +2 -2
- package/dist/referencePositions.js +2 -2
- package/dist/referencePositions.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +4 -1
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +23 -11
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotChunks.d.ts +1 -1
- package/dist/snapshotChunks.d.ts.map +1 -1
- package/dist/snapshotChunks.js.map +1 -1
- package/dist/snapshotLoader.d.ts +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts +1 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js +0 -1
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/dist/textSegment.js +1 -1
- package/dist/textSegment.js.map +1 -1
- package/lib/client.d.ts +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +9 -4
- package/lib/client.js.map +1 -1
- package/lib/legacy.d.ts +3 -1
- package/lib/mergeTree.d.ts +0 -1
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +41 -56
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +29 -3
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +12 -7
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +5 -16
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/opBuilder.js +2 -2
- package/lib/opBuilder.js.map +1 -1
- package/lib/properties.d.ts.map +1 -1
- package/lib/properties.js +1 -1
- package/lib/properties.js.map +1 -1
- package/lib/referencePositions.d.ts +2 -2
- package/lib/referencePositions.js +2 -2
- package/lib/referencePositions.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +4 -1
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +23 -11
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotChunks.d.ts +1 -1
- package/lib/snapshotChunks.d.ts.map +1 -1
- package/lib/snapshotChunks.js.map +1 -1
- package/lib/snapshotLoader.d.ts +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js +1 -1
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts +1 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js +0 -1
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/lib/textSegment.js +1 -1
- package/lib/textSegment.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +20 -24
- package/src/client.ts +13 -6
- package/src/mergeTree.ts +43 -65
- package/src/mergeTreeDeltaCallback.ts +33 -3
- package/src/mergeTreeNodes.ts +18 -22
- package/src/opBuilder.ts +2 -2
- package/src/properties.ts +5 -2
- package/src/referencePositions.ts +2 -2
- package/src/segmentPropertiesManager.ts +27 -14
- package/src/snapshotChunks.ts +1 -1
- package/src/snapshotLoader.ts +5 -2
- package/src/snapshotV1.ts +1 -2
- package/src/snapshotlegacy.ts +1 -2
- package/src/textSegment.ts +1 -1
package/dist/mergeTree.js
CHANGED
|
@@ -66,24 +66,6 @@ const LRUSegmentComparer = {
|
|
|
66
66
|
min: { maxSeq: -2 },
|
|
67
67
|
compare: (a, b) => a.maxSeq - b.maxSeq,
|
|
68
68
|
};
|
|
69
|
-
function addTile(tile, tiles) {
|
|
70
|
-
const tileLabels = (0, referencePositions_js_1.refGetTileLabels)(tile);
|
|
71
|
-
if (tileLabels) {
|
|
72
|
-
for (const tileLabel of tileLabels) {
|
|
73
|
-
tiles[tileLabel] = tile;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function addTileIfNotPresent(tile, tiles) {
|
|
78
|
-
const tileLabels = (0, referencePositions_js_1.refGetTileLabels)(tile);
|
|
79
|
-
if (tileLabels) {
|
|
80
|
-
for (const tileLabel of tileLabels) {
|
|
81
|
-
if (tiles[tileLabel] === undefined) {
|
|
82
|
-
tiles[tileLabel] = tile;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
69
|
function findRootMergeBlock(segmentOrNode) {
|
|
88
70
|
if (segmentOrNode === undefined) {
|
|
89
71
|
return undefined;
|
|
@@ -262,7 +244,7 @@ class MergeTree {
|
|
|
262
244
|
value.mergeTree = this;
|
|
263
245
|
}
|
|
264
246
|
makeBlock(childCount) {
|
|
265
|
-
const block = new mergeTreeNodes_js_1.
|
|
247
|
+
const block = new mergeTreeNodes_js_1.MergeBlock(childCount);
|
|
266
248
|
block.ordinal = "";
|
|
267
249
|
return block;
|
|
268
250
|
}
|
|
@@ -674,7 +656,6 @@ class MergeTree {
|
|
|
674
656
|
}
|
|
675
657
|
}
|
|
676
658
|
else {
|
|
677
|
-
(0, internal_1.assert)(node.hierBlock(), 0x90b /* must be hierBlock */);
|
|
678
659
|
const marker = forwards
|
|
679
660
|
? node.leftmostTiles[markerLabel]
|
|
680
661
|
: node.rightmostTiles[markerLabel];
|
|
@@ -1220,7 +1201,9 @@ class MergeTree {
|
|
|
1220
1201
|
!(mergeTreeNodes_js_1.reservedMarkerIdKey in props) ||
|
|
1221
1202
|
props.markerId === segment.properties?.markerId, 0x5ad /* Cannot change the markerId of an existing marker */);
|
|
1222
1203
|
const propertyDeltas = segment.addProperties(props, seq, this.collabWindow.collaborating, rollback);
|
|
1223
|
-
|
|
1204
|
+
if (!isRemovedOrMoved(segment)) {
|
|
1205
|
+
deltaSegments.push({ segment, propertyDeltas });
|
|
1206
|
+
}
|
|
1224
1207
|
if (this.collabWindow.collaborating) {
|
|
1225
1208
|
if (seq === constants_js_1.UnassignedSequenceNumber) {
|
|
1226
1209
|
segmentGroup = this.addToPendingList(segment, segmentGroup, localSeq, propertyDeltas);
|
|
@@ -1675,49 +1658,51 @@ class MergeTree {
|
|
|
1675
1658
|
});
|
|
1676
1659
|
normalize();
|
|
1677
1660
|
}
|
|
1678
|
-
addNodeReferences(node, rightmostTiles, leftmostTiles) {
|
|
1679
|
-
if (node.isLeaf()) {
|
|
1680
|
-
const segment = node;
|
|
1681
|
-
if ((this.localNetLength(segment) ?? 0) > 0 && mergeTreeNodes_js_1.Marker.is(segment)) {
|
|
1682
|
-
const markerId = segment.getId();
|
|
1683
|
-
// Also in insertMarker but need for reload segs case
|
|
1684
|
-
// can add option for this only from reload segs
|
|
1685
|
-
if (markerId) {
|
|
1686
|
-
this.idToMarker.set(markerId, segment);
|
|
1687
|
-
}
|
|
1688
|
-
if ((0, referencePositions_js_1.refTypeIncludesFlag)(segment, ops_js_1.ReferenceType.Tile)) {
|
|
1689
|
-
addTile(segment, rightmostTiles);
|
|
1690
|
-
addTileIfNotPresent(segment, leftmostTiles);
|
|
1691
|
-
}
|
|
1692
|
-
}
|
|
1693
|
-
}
|
|
1694
|
-
else {
|
|
1695
|
-
(0, internal_1.assert)(node.hierBlock(), 0x90c /* must be hier block */);
|
|
1696
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1697
|
-
(0, properties_js_1.extend)(rightmostTiles, node.rightmostTiles);
|
|
1698
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1699
|
-
(0, properties_js_1.extendIfUndefined)(leftmostTiles, node.leftmostTiles);
|
|
1700
|
-
}
|
|
1701
|
-
}
|
|
1702
1661
|
blockUpdate(block) {
|
|
1703
1662
|
let len;
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
block.leftmostTiles = (0, properties_js_1.createMap)();
|
|
1709
|
-
}
|
|
1663
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1664
|
+
const rightmostTiles = (0, properties_js_1.createMap)();
|
|
1665
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1666
|
+
const leftmostTiles = (0, properties_js_1.createMap)();
|
|
1710
1667
|
for (let i = 0; i < block.childCount; i++) {
|
|
1711
|
-
const
|
|
1712
|
-
const nodeLength = nodeTotalLength(this,
|
|
1668
|
+
const node = block.children[i];
|
|
1669
|
+
const nodeLength = nodeTotalLength(this, node);
|
|
1713
1670
|
if (nodeLength !== undefined) {
|
|
1714
1671
|
len ?? (len = 0);
|
|
1715
1672
|
len += nodeLength;
|
|
1716
1673
|
}
|
|
1717
|
-
if (
|
|
1718
|
-
|
|
1674
|
+
if (node.isLeaf()) {
|
|
1675
|
+
const segment = node;
|
|
1676
|
+
if ((this.localNetLength(segment) ?? 0) > 0 && mergeTreeNodes_js_1.Marker.is(segment)) {
|
|
1677
|
+
const markerId = segment.getId();
|
|
1678
|
+
// Also in insertMarker but need for reload segs case
|
|
1679
|
+
// can add option for this only from reload segs
|
|
1680
|
+
if (markerId) {
|
|
1681
|
+
this.idToMarker.set(markerId, segment);
|
|
1682
|
+
}
|
|
1683
|
+
if ((0, referencePositions_js_1.refTypeIncludesFlag)(segment, ops_js_1.ReferenceType.Tile)) {
|
|
1684
|
+
const tileLabels = (0, referencePositions_js_1.refGetTileLabels)(segment);
|
|
1685
|
+
if (tileLabels) {
|
|
1686
|
+
for (const tileLabel of tileLabels) {
|
|
1687
|
+
// this depends on walking children in order
|
|
1688
|
+
// The later, and right most children overwrite
|
|
1689
|
+
// whereas early, and left most do not overwrite
|
|
1690
|
+
rightmostTiles[tileLabel] = segment;
|
|
1691
|
+
leftmostTiles[tileLabel] ?? (leftmostTiles[tileLabel] = segment);
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1697
|
+
else {
|
|
1698
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1699
|
+
(0, properties_js_1.extend)(rightmostTiles, node.rightmostTiles);
|
|
1700
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1701
|
+
(0, properties_js_1.extendIfUndefined)(leftmostTiles, node.leftmostTiles);
|
|
1719
1702
|
}
|
|
1720
1703
|
}
|
|
1704
|
+
block.leftmostTiles = leftmostTiles;
|
|
1705
|
+
block.rightmostTiles = rightmostTiles;
|
|
1721
1706
|
block.cachedLength = len;
|
|
1722
1707
|
}
|
|
1723
1708
|
blockUpdatePathLengths(startBlock, seq, clientId, newStructure = false) {
|