@fluidframework/merge-tree 2.13.0 → 2.20.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 +42 -0
- package/api-report/merge-tree.legacy.alpha.api.md +0 -108
- package/dist/endOfTreeSegment.d.ts.map +1 -1
- package/dist/endOfTreeSegment.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +0 -4
- package/dist/localReference.d.ts +5 -7
- package/dist/localReference.d.ts.map +1 -1
- package/dist/localReference.js +1 -3
- package/dist/localReference.js.map +1 -1
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +2 -17
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +15 -189
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +1 -23
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/opBuilder.d.ts +0 -5
- package/dist/opBuilder.d.ts.map +1 -1
- package/dist/opBuilder.js +0 -5
- package/dist/opBuilder.js.map +1 -1
- package/dist/package.json +2 -1
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +1 -5
- package/dist/partialLengths.js.map +1 -1
- package/dist/perspective.d.ts.map +1 -1
- package/dist/perspective.js +2 -6
- package/dist/perspective.js.map +1 -1
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +0 -3
- package/dist/revertibles.js.map +1 -1
- package/dist/segmentInfos.d.ts +0 -6
- package/dist/segmentInfos.d.ts.map +1 -1
- package/dist/segmentInfos.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js +1 -3
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/test/index.d.ts +1 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/testClient.d.ts.map +1 -1
- package/dist/test/testClient.js +0 -1
- package/dist/test/testClient.js.map +1 -1
- package/lib/endOfTreeSegment.d.ts.map +1 -1
- package/lib/endOfTreeSegment.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +0 -4
- package/lib/localReference.d.ts +5 -7
- package/lib/localReference.d.ts.map +1 -1
- package/lib/localReference.js +1 -3
- package/lib/localReference.js.map +1 -1
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +3 -20
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +15 -189
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +3 -25
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/opBuilder.d.ts +0 -5
- package/lib/opBuilder.d.ts.map +1 -1
- package/lib/opBuilder.js +0 -5
- package/lib/opBuilder.js.map +1 -1
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +1 -5
- package/lib/partialLengths.js.map +1 -1
- package/lib/perspective.d.ts.map +1 -1
- package/lib/perspective.js +2 -6
- package/lib/perspective.js.map +1 -1
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +0 -3
- package/lib/revertibles.js.map +1 -1
- package/lib/segmentInfos.d.ts +0 -6
- package/lib/segmentInfos.d.ts.map +1 -1
- package/lib/segmentInfos.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js +1 -3
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/test/index.d.ts +1 -1
- package/lib/test/index.d.ts.map +1 -1
- package/lib/test/index.js.map +1 -1
- package/lib/test/testClient.d.ts.map +1 -1
- package/lib/test/testClient.js +0 -1
- package/lib/test/testClient.js.map +1 -1
- package/package.json +76 -18
- package/src/endOfTreeSegment.ts +0 -2
- package/src/index.ts +0 -5
- package/src/localReference.ts +6 -8
- package/src/mergeTree.ts +1 -21
- package/src/mergeTreeNodes.ts +25 -223
- package/src/opBuilder.ts +0 -5
- package/src/partialLengths.ts +0 -4
- package/src/perspective.ts +0 -4
- package/src/revertibles.ts +0 -3
- package/src/segmentInfos.ts +0 -6
- package/src/snapshotLoader.ts +1 -5
package/lib/mergeTree.js
CHANGED
|
@@ -9,9 +9,7 @@ import { DataProcessingError, UsageError } from "@fluidframework/telemetry-utils
|
|
|
9
9
|
import { DoublyLinkedList } from "./collections/index.js";
|
|
10
10
|
import { NonCollabClient, TreeMaintenanceSequenceNumber, UnassignedSequenceNumber, UniversalSequenceNumber, } from "./constants.js";
|
|
11
11
|
import { EndOfTreeSegment, StartOfTreeSegment } from "./endOfTreeSegment.js";
|
|
12
|
-
import {
|
|
13
|
-
// eslint-disable-next-line import/no-deprecated
|
|
14
|
-
LocalReferenceCollection, SlidingPreference, anyLocalReferencePosition, createDetachedLocalReferencePosition, filterLocalReferencePositions, } from "./localReference.js";
|
|
12
|
+
import { LocalReferenceCollection, SlidingPreference, anyLocalReferencePosition, createDetachedLocalReferencePosition, filterLocalReferencePositions, } from "./localReference.js";
|
|
15
13
|
import { MergeTreeMaintenanceType, } from "./mergeTreeDeltaCallback.js";
|
|
16
14
|
import { NodeAction, backwardExcursion, depthFirstNodeWalk, forwardExcursion, walkAllChildSegments, } from "./mergeTreeNodeWalk.js";
|
|
17
15
|
import { CollaborationWindow, Marker, MaxNodesInBlock, MergeBlock, assertSegmentLeaf, assignChild, isSegmentLeaf, reservedMarkerIdKey, seqLTE, } from "./mergeTreeNodes.js";
|
|
@@ -31,7 +29,6 @@ function isRemovedAndAcked(segment) {
|
|
|
31
29
|
const removalInfo = toRemovalInfo(segment);
|
|
32
30
|
return removalInfo !== undefined && removalInfo.removedSeq !== UnassignedSequenceNumber;
|
|
33
31
|
}
|
|
34
|
-
// eslint-disable-next-line import/no-deprecated
|
|
35
32
|
function isMovedAndAcked(segment) {
|
|
36
33
|
const moveInfo = toMoveInfo(segment);
|
|
37
34
|
return moveInfo !== undefined && moveInfo.movedSeq !== UnassignedSequenceNumber;
|
|
@@ -514,9 +511,7 @@ export class MergeTree {
|
|
|
514
511
|
*/
|
|
515
512
|
slideAckedRemovedSegmentReferences(segments) {
|
|
516
513
|
// References are slid in groups to preserve their order.
|
|
517
|
-
// eslint-disable-next-line import/no-deprecated
|
|
518
514
|
let currentForwardSlideGroup = [];
|
|
519
|
-
// eslint-disable-next-line import/no-deprecated
|
|
520
515
|
let currentBackwardSlideGroup = [];
|
|
521
516
|
let currentForwardMaybeEndpoint;
|
|
522
517
|
let currentForwardSlideDestination;
|
|
@@ -524,9 +519,7 @@ export class MergeTree {
|
|
|
524
519
|
let currentBackwardMaybeEndpoint;
|
|
525
520
|
let currentBackwardSlideDestination;
|
|
526
521
|
let currentBackwardSlideIsForward;
|
|
527
|
-
const slideGroup = (currentSlideDestination, currentSlideIsForward,
|
|
528
|
-
// eslint-disable-next-line import/no-deprecated
|
|
529
|
-
currentSlideGroup, pred, maybeEndpoint) => {
|
|
522
|
+
const slideGroup = (currentSlideDestination, currentSlideIsForward, currentSlideGroup, pred, maybeEndpoint) => {
|
|
530
523
|
if (currentSlideIsForward === undefined) {
|
|
531
524
|
return;
|
|
532
525
|
}
|
|
@@ -534,7 +527,6 @@ export class MergeTree {
|
|
|
534
527
|
const endpointRefsToAdd = currentSlideGroup.map((collection) => filterLocalReferencePositions(collection, (ref) => pred(ref) && !!ref.canSlideToEndpoint));
|
|
535
528
|
if (maybeEndpoint) {
|
|
536
529
|
const endpoint = maybeEndpoint === "start" ? this.startOfTree : this.endOfTree;
|
|
537
|
-
// eslint-disable-next-line import/no-deprecated
|
|
538
530
|
const localRefs = LocalReferenceCollection.setOrGet(endpoint);
|
|
539
531
|
if (currentSlideIsForward) {
|
|
540
532
|
localRefs.addBeforeTombstones(...endpointRefsToAdd);
|
|
@@ -555,7 +547,6 @@ export class MergeTree {
|
|
|
555
547
|
}
|
|
556
548
|
}
|
|
557
549
|
else {
|
|
558
|
-
// eslint-disable-next-line import/no-deprecated
|
|
559
550
|
const localRefs = LocalReferenceCollection.setOrGet(currentSlideDestination);
|
|
560
551
|
if (currentSlideIsForward) {
|
|
561
552
|
localRefs.addBeforeTombstones(...nonEndpointRefsToAdd);
|
|
@@ -565,9 +556,7 @@ export class MergeTree {
|
|
|
565
556
|
}
|
|
566
557
|
}
|
|
567
558
|
};
|
|
568
|
-
const trySlideSegment = (segment, currentSlideDestination, currentSlideIsForward,
|
|
569
|
-
// eslint-disable-next-line import/no-deprecated
|
|
570
|
-
currentSlideGroup, pred, slidingPreference, currentMaybeEndpoint, reassign) => {
|
|
559
|
+
const trySlideSegment = (segment, currentSlideDestination, currentSlideIsForward, currentSlideGroup, pred, slidingPreference, currentMaybeEndpoint, reassign) => {
|
|
571
560
|
// avoid sliding logic if this segment doesn't have any references
|
|
572
561
|
// with the given sliding preference
|
|
573
562
|
if (!segment.localRefs || !anyLocalReferencePosition(segment.localRefs, pred)) {
|
|
@@ -1058,7 +1047,6 @@ export class MergeTree {
|
|
|
1058
1047
|
}
|
|
1059
1048
|
}
|
|
1060
1049
|
if (oldest && newest?.clientId !== clientId) {
|
|
1061
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1062
1050
|
const moveInfo = {
|
|
1063
1051
|
movedClientIds,
|
|
1064
1052
|
movedSeq: oldest.seq,
|
|
@@ -1291,7 +1279,6 @@ export class MergeTree {
|
|
|
1291
1279
|
this.ensureIntervalBoundary(endPos, refSeq, clientId);
|
|
1292
1280
|
let _overwrite = false;
|
|
1293
1281
|
const localOverlapWithRefs = [];
|
|
1294
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1295
1282
|
const movedSegments = [];
|
|
1296
1283
|
const localSeq = seq === UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
|
|
1297
1284
|
const obliterate = {
|
|
@@ -1348,7 +1335,6 @@ export class MergeTree {
|
|
|
1348
1335
|
seq !== UnassignedSequenceNumber &&
|
|
1349
1336
|
(refSeq < segment.seq || segment.seq === UnassignedSequenceNumber);
|
|
1350
1337
|
if (existingMoveInfo === undefined) {
|
|
1351
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1352
1338
|
const movedSeg = overwriteInfo(segment, {
|
|
1353
1339
|
movedClientIds: [clientId],
|
|
1354
1340
|
movedSeq: seq,
|
|
@@ -1444,14 +1430,12 @@ export class MergeTree {
|
|
|
1444
1430
|
this.ensureIntervalBoundary(start, refSeq, clientId);
|
|
1445
1431
|
this.ensureIntervalBoundary(end, refSeq, clientId);
|
|
1446
1432
|
let segmentGroup;
|
|
1447
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1448
1433
|
const removedSegments = [];
|
|
1449
1434
|
const localOverlapWithRefs = [];
|
|
1450
1435
|
const localSeq = seq === UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
|
|
1451
1436
|
const markRemoved = (segment, pos, _start, _end) => {
|
|
1452
1437
|
const existingRemovalInfo = toRemovalInfo(segment);
|
|
1453
1438
|
if (existingRemovalInfo === undefined) {
|
|
1454
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1455
1439
|
const removed = overwriteInfo(segment, {
|
|
1456
1440
|
removedClientIds: [clientId],
|
|
1457
1441
|
removedSeq: seq,
|
|
@@ -1633,7 +1617,6 @@ export class MergeTree {
|
|
|
1633
1617
|
assertSegmentLeaf(_segment);
|
|
1634
1618
|
segment = _segment;
|
|
1635
1619
|
}
|
|
1636
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1637
1620
|
const localRefs = LocalReferenceCollection.setOrGet(segment);
|
|
1638
1621
|
const segRef = localRefs.createLocalRef(offset, refType, properties, slidingPreference, canSlideToEndpoint);
|
|
1639
1622
|
return segRef;
|