@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.
Files changed (99) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/api-report/merge-tree.legacy.alpha.api.md +0 -108
  3. package/dist/endOfTreeSegment.d.ts.map +1 -1
  4. package/dist/endOfTreeSegment.js.map +1 -1
  5. package/dist/index.d.ts +1 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/legacy.d.ts +0 -4
  9. package/dist/localReference.d.ts +5 -7
  10. package/dist/localReference.d.ts.map +1 -1
  11. package/dist/localReference.js +1 -3
  12. package/dist/localReference.js.map +1 -1
  13. package/dist/mergeTree.d.ts.map +1 -1
  14. package/dist/mergeTree.js +2 -17
  15. package/dist/mergeTree.js.map +1 -1
  16. package/dist/mergeTreeNodes.d.ts +15 -189
  17. package/dist/mergeTreeNodes.d.ts.map +1 -1
  18. package/dist/mergeTreeNodes.js +1 -23
  19. package/dist/mergeTreeNodes.js.map +1 -1
  20. package/dist/opBuilder.d.ts +0 -5
  21. package/dist/opBuilder.d.ts.map +1 -1
  22. package/dist/opBuilder.js +0 -5
  23. package/dist/opBuilder.js.map +1 -1
  24. package/dist/package.json +2 -1
  25. package/dist/partialLengths.d.ts.map +1 -1
  26. package/dist/partialLengths.js +1 -5
  27. package/dist/partialLengths.js.map +1 -1
  28. package/dist/perspective.d.ts.map +1 -1
  29. package/dist/perspective.js +2 -6
  30. package/dist/perspective.js.map +1 -1
  31. package/dist/revertibles.d.ts.map +1 -1
  32. package/dist/revertibles.js +0 -3
  33. package/dist/revertibles.js.map +1 -1
  34. package/dist/segmentInfos.d.ts +0 -6
  35. package/dist/segmentInfos.d.ts.map +1 -1
  36. package/dist/segmentInfos.js.map +1 -1
  37. package/dist/snapshotLoader.d.ts.map +1 -1
  38. package/dist/snapshotLoader.js +1 -3
  39. package/dist/snapshotLoader.js.map +1 -1
  40. package/dist/test/index.d.ts +1 -1
  41. package/dist/test/index.d.ts.map +1 -1
  42. package/dist/test/index.js.map +1 -1
  43. package/dist/test/testClient.d.ts.map +1 -1
  44. package/dist/test/testClient.js +0 -1
  45. package/dist/test/testClient.js.map +1 -1
  46. package/lib/endOfTreeSegment.d.ts.map +1 -1
  47. package/lib/endOfTreeSegment.js.map +1 -1
  48. package/lib/index.d.ts +1 -2
  49. package/lib/index.d.ts.map +1 -1
  50. package/lib/index.js.map +1 -1
  51. package/lib/legacy.d.ts +0 -4
  52. package/lib/localReference.d.ts +5 -7
  53. package/lib/localReference.d.ts.map +1 -1
  54. package/lib/localReference.js +1 -3
  55. package/lib/localReference.js.map +1 -1
  56. package/lib/mergeTree.d.ts.map +1 -1
  57. package/lib/mergeTree.js +3 -20
  58. package/lib/mergeTree.js.map +1 -1
  59. package/lib/mergeTreeNodes.d.ts +15 -189
  60. package/lib/mergeTreeNodes.d.ts.map +1 -1
  61. package/lib/mergeTreeNodes.js +3 -25
  62. package/lib/mergeTreeNodes.js.map +1 -1
  63. package/lib/opBuilder.d.ts +0 -5
  64. package/lib/opBuilder.d.ts.map +1 -1
  65. package/lib/opBuilder.js +0 -5
  66. package/lib/opBuilder.js.map +1 -1
  67. package/lib/partialLengths.d.ts.map +1 -1
  68. package/lib/partialLengths.js +1 -5
  69. package/lib/partialLengths.js.map +1 -1
  70. package/lib/perspective.d.ts.map +1 -1
  71. package/lib/perspective.js +2 -6
  72. package/lib/perspective.js.map +1 -1
  73. package/lib/revertibles.d.ts.map +1 -1
  74. package/lib/revertibles.js +0 -3
  75. package/lib/revertibles.js.map +1 -1
  76. package/lib/segmentInfos.d.ts +0 -6
  77. package/lib/segmentInfos.d.ts.map +1 -1
  78. package/lib/segmentInfos.js.map +1 -1
  79. package/lib/snapshotLoader.d.ts.map +1 -1
  80. package/lib/snapshotLoader.js +1 -3
  81. package/lib/snapshotLoader.js.map +1 -1
  82. package/lib/test/index.d.ts +1 -1
  83. package/lib/test/index.d.ts.map +1 -1
  84. package/lib/test/index.js.map +1 -1
  85. package/lib/test/testClient.d.ts.map +1 -1
  86. package/lib/test/testClient.js +0 -1
  87. package/lib/test/testClient.js.map +1 -1
  88. package/package.json +76 -18
  89. package/src/endOfTreeSegment.ts +0 -2
  90. package/src/index.ts +0 -5
  91. package/src/localReference.ts +6 -8
  92. package/src/mergeTree.ts +1 -21
  93. package/src/mergeTreeNodes.ts +25 -223
  94. package/src/opBuilder.ts +0 -5
  95. package/src/partialLengths.ts +0 -4
  96. package/src/perspective.ts +0 -4
  97. package/src/revertibles.ts +0 -3
  98. package/src/segmentInfos.ts +0 -6
  99. 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;