@fluidframework/merge-tree 2.10.0-306579 → 2.10.0-307399

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 (67) hide show
  1. package/api-report/merge-tree.legacy.alpha.api.md +27 -0
  2. package/dist/collections/index.d.ts +1 -1
  3. package/dist/collections/index.d.ts.map +1 -1
  4. package/dist/collections/index.js +2 -1
  5. package/dist/collections/index.js.map +1 -1
  6. package/dist/collections/list.d.ts +7 -0
  7. package/dist/collections/list.d.ts.map +1 -1
  8. package/dist/collections/list.js +27 -1
  9. package/dist/collections/list.js.map +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/legacy.d.ts +2 -0
  14. package/dist/mergeTree.d.ts.map +1 -1
  15. package/dist/mergeTree.js +10 -9
  16. package/dist/mergeTree.js.map +1 -1
  17. package/dist/ops.d.ts +36 -0
  18. package/dist/ops.d.ts.map +1 -1
  19. package/dist/ops.js.map +1 -1
  20. package/dist/segmentPropertiesManager.d.ts +81 -8
  21. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  22. package/dist/segmentPropertiesManager.js +211 -61
  23. package/dist/segmentPropertiesManager.js.map +1 -1
  24. package/dist/test/propertyManager.spec.d.ts +6 -0
  25. package/dist/test/propertyManager.spec.d.ts.map +1 -0
  26. package/dist/test/propertyManager.spec.js +156 -0
  27. package/dist/test/propertyManager.spec.js.map +1 -0
  28. package/dist/zamboni.d.ts.map +1 -1
  29. package/dist/zamboni.js +1 -0
  30. package/dist/zamboni.js.map +1 -1
  31. package/lib/collections/index.d.ts +1 -1
  32. package/lib/collections/index.d.ts.map +1 -1
  33. package/lib/collections/index.js +1 -1
  34. package/lib/collections/index.js.map +1 -1
  35. package/lib/collections/list.d.ts +7 -0
  36. package/lib/collections/list.d.ts.map +1 -1
  37. package/lib/collections/list.js +25 -0
  38. package/lib/collections/list.js.map +1 -1
  39. package/lib/index.d.ts +2 -2
  40. package/lib/index.d.ts.map +1 -1
  41. package/lib/index.js.map +1 -1
  42. package/lib/legacy.d.ts +2 -0
  43. package/lib/mergeTree.d.ts.map +1 -1
  44. package/lib/mergeTree.js +10 -9
  45. package/lib/mergeTree.js.map +1 -1
  46. package/lib/ops.d.ts +36 -0
  47. package/lib/ops.d.ts.map +1 -1
  48. package/lib/ops.js.map +1 -1
  49. package/lib/segmentPropertiesManager.d.ts +81 -8
  50. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  51. package/lib/segmentPropertiesManager.js +212 -62
  52. package/lib/segmentPropertiesManager.js.map +1 -1
  53. package/lib/test/propertyManager.spec.d.ts +6 -0
  54. package/lib/test/propertyManager.spec.d.ts.map +1 -0
  55. package/lib/test/propertyManager.spec.js +154 -0
  56. package/lib/test/propertyManager.spec.js.map +1 -0
  57. package/lib/zamboni.d.ts.map +1 -1
  58. package/lib/zamboni.js +1 -0
  59. package/lib/zamboni.js.map +1 -1
  60. package/package.json +24 -17
  61. package/src/collections/index.ts +7 -1
  62. package/src/collections/list.ts +29 -0
  63. package/src/index.ts +3 -0
  64. package/src/mergeTree.ts +16 -11
  65. package/src/ops.ts +38 -0
  66. package/src/segmentPropertiesManager.ts +277 -88
  67. package/src/zamboni.ts +3 -0
package/lib/mergeTree.js CHANGED
@@ -69,15 +69,17 @@ const LRUSegmentComparer = {
69
69
  function ackSegment(segment, segmentGroup, opArgs) {
70
70
  const currentSegmentGroup = segment.segmentGroups?.dequeue();
71
71
  assert(currentSegmentGroup === segmentGroup, 0x043 /* "On ack, unexpected segmentGroup!" */);
72
- switch (opArgs.op.type) {
72
+ assert(opArgs.sequencedMessage !== undefined, "must have sequencedMessage");
73
+ const { op, sequencedMessage: { sequenceNumber, minimumSequenceNumber }, } = opArgs;
74
+ switch (op.type) {
73
75
  case MergeTreeDeltaType.ANNOTATE: {
74
76
  assert(!!segment.propertyManager, 0x044 /* "On annotate ack, missing segment property manager!" */);
75
- segment.propertyManager.ackPendingProperties(opArgs.op);
77
+ segment.propertyManager.ack(sequenceNumber, minimumSequenceNumber, op);
76
78
  return true;
77
79
  }
78
80
  case MergeTreeDeltaType.INSERT: {
79
81
  assert(segment.seq === UnassignedSequenceNumber, 0x045 /* "On insert, seq number already assigned!" */);
80
- segment.seq = opArgs.sequencedMessage.sequenceNumber;
82
+ segment.seq = sequenceNumber;
81
83
  segment.localSeq = undefined;
82
84
  return true;
83
85
  }
@@ -86,7 +88,7 @@ function ackSegment(segment, segmentGroup, opArgs) {
86
88
  assert(removalInfo !== undefined, 0x046 /* "On remove ack, missing removal info!" */);
87
89
  segment.localRemovedSeq = undefined;
88
90
  if (removalInfo.removedSeq === UnassignedSequenceNumber) {
89
- removalInfo.removedSeq = opArgs.sequencedMessage.sequenceNumber;
91
+ removalInfo.removedSeq = sequenceNumber;
90
92
  return true;
91
93
  }
92
94
  return false;
@@ -100,15 +102,15 @@ function ackSegment(segment, segmentGroup, opArgs) {
100
102
  segment.localMovedSeq = obliterateInfo.localSeq = undefined;
101
103
  const seqIdx = moveInfo.movedSeqs.indexOf(UnassignedSequenceNumber);
102
104
  assert(seqIdx !== -1, 0x86f /* expected movedSeqs to contain unacked seq */);
103
- moveInfo.movedSeqs[seqIdx] = opArgs.sequencedMessage.sequenceNumber;
105
+ moveInfo.movedSeqs[seqIdx] = sequenceNumber;
104
106
  if (moveInfo.movedSeq === UnassignedSequenceNumber) {
105
- moveInfo.movedSeq = opArgs.sequencedMessage.sequenceNumber;
107
+ moveInfo.movedSeq = sequenceNumber;
106
108
  return true;
107
109
  }
108
110
  return false;
109
111
  }
110
112
  default: {
111
- throw new Error(`${opArgs.op.type} is in unrecognized operation type`);
113
+ throw new Error(`${op.type} is in unrecognized operation type`);
112
114
  }
113
115
  }
114
116
  }
@@ -1263,8 +1265,7 @@ export class MergeTree {
1263
1265
  !(reservedMarkerIdKey in props) ||
1264
1266
  props.markerId === segment.properties?.markerId, 0x5ad /* Cannot change the markerId of an existing marker */);
1265
1267
  const propertyManager = (segment.propertyManager ?? (segment.propertyManager = new PropertiesManager()));
1266
- const properties = (segment.properties ?? (segment.properties = createMap()));
1267
- const propertyDeltas = propertyManager.addProperties(properties, props, seq, this.collabWindow.collaborating, rollback);
1268
+ const propertyDeltas = propertyManager.handleProperties({ props }, segment, seq, this.collabWindow.minSeq, this.collabWindow.collaborating, rollback);
1268
1269
  if (!isRemovedOrMoved(segment)) {
1269
1270
  deltaSegments.push({ segment, propertyDeltas });
1270
1271
  }