@fluidframework/merge-tree 2.5.0 → 2.10.0-305357
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/api-report/merge-tree.legacy.alpha.api.md +0 -230
- package/dist/client.d.ts +9 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -6
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +0 -12
- package/dist/mergeTree.d.ts +14 -13
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +51 -20
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +13 -79
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +5 -95
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/referencePositions.d.ts +0 -12
- package/dist/referencePositions.d.ts.map +1 -1
- package/dist/referencePositions.js.map +1 -1
- package/dist/segmentGroupCollection.d.ts +7 -14
- package/dist/segmentGroupCollection.d.ts.map +1 -1
- package/dist/segmentGroupCollection.js +2 -9
- package/dist/segmentGroupCollection.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +13 -12
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +19 -13
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/sortedSegmentSet.d.ts +0 -1
- package/dist/sortedSegmentSet.d.ts.map +1 -1
- package/dist/sortedSegmentSet.js.map +1 -1
- package/dist/sortedSet.d.ts +0 -1
- package/dist/sortedSet.d.ts.map +1 -1
- package/dist/sortedSet.js +0 -1
- package/dist/sortedSet.js.map +1 -1
- package/dist/test/index.d.ts +2 -2
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +2 -4
- package/dist/test/index.js.map +1 -1
- package/dist/test/mergeTree.annotate.spec.js +4 -4
- package/dist/test/mergeTree.annotate.spec.js.map +1 -1
- package/dist/test/segmentGroupCollection.spec.js +22 -18
- package/dist/test/segmentGroupCollection.spec.js.map +1 -1
- package/dist/test/snapshot.spec.js.map +1 -1
- package/dist/test/snapshot.utils.d.ts +4 -4
- package/dist/test/snapshot.utils.d.ts.map +1 -1
- package/dist/test/snapshot.utils.js.map +1 -1
- package/dist/textSegment.d.ts +1 -3
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js.map +1 -1
- package/lib/client.d.ts +9 -8
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +8 -7
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +0 -12
- package/lib/mergeTree.d.ts +14 -13
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +53 -22
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +13 -79
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +5 -94
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/referencePositions.d.ts +0 -12
- package/lib/referencePositions.d.ts.map +1 -1
- package/lib/referencePositions.js.map +1 -1
- package/lib/segmentGroupCollection.d.ts +7 -14
- package/lib/segmentGroupCollection.d.ts.map +1 -1
- package/lib/segmentGroupCollection.js +2 -9
- package/lib/segmentGroupCollection.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +13 -12
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +17 -12
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/sortedSegmentSet.d.ts +0 -1
- package/lib/sortedSegmentSet.d.ts.map +1 -1
- package/lib/sortedSegmentSet.js.map +1 -1
- package/lib/sortedSet.d.ts +0 -1
- package/lib/sortedSet.d.ts.map +1 -1
- package/lib/sortedSet.js +0 -1
- package/lib/sortedSet.js.map +1 -1
- package/lib/test/index.d.ts +2 -2
- package/lib/test/index.d.ts.map +1 -1
- package/lib/test/index.js +2 -2
- package/lib/test/index.js.map +1 -1
- package/lib/test/mergeTree.annotate.spec.js +4 -4
- package/lib/test/mergeTree.annotate.spec.js.map +1 -1
- package/lib/test/segmentGroupCollection.spec.js +22 -18
- package/lib/test/segmentGroupCollection.spec.js.map +1 -1
- package/lib/test/snapshot.spec.js.map +1 -1
- package/lib/test/snapshot.utils.d.ts +4 -4
- package/lib/test/snapshot.utils.d.ts.map +1 -1
- package/lib/test/snapshot.utils.js.map +1 -1
- package/lib/textSegment.d.ts +1 -3
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js.map +1 -1
- package/package.json +91 -19
- package/src/client.ts +15 -12
- package/src/index.ts +6 -3
- package/src/mergeTree.ts +87 -38
- package/src/mergeTreeNodes.ts +16 -177
- package/src/referencePositions.ts +0 -12
- package/src/segmentGroupCollection.ts +14 -20
- package/src/segmentPropertiesManager.ts +30 -12
- package/src/sortedSegmentSet.ts +0 -1
- package/src/sortedSet.ts +0 -1
- package/src/textSegment.ts +1 -3
package/lib/legacy.d.ts
CHANGED
|
@@ -10,21 +10,16 @@
|
|
|
10
10
|
|
|
11
11
|
export {
|
|
12
12
|
// @legacy APIs
|
|
13
|
-
AttributionPolicy,
|
|
14
13
|
BaseSegment,
|
|
15
|
-
Client,
|
|
16
|
-
CollaborationWindow,
|
|
17
14
|
IAttributionCollection,
|
|
18
15
|
IAttributionCollectionSerializer,
|
|
19
16
|
IAttributionCollectionSpec,
|
|
20
|
-
IClientEvents,
|
|
21
17
|
IJSONMarkerSegment,
|
|
22
18
|
IJSONSegment,
|
|
23
19
|
IJSONTextSegment,
|
|
24
20
|
IMarkerDef,
|
|
25
21
|
IMergeNodeCommon,
|
|
26
22
|
IMergeTreeAnnotateMsg,
|
|
27
|
-
IMergeTreeAttributionOptions,
|
|
28
23
|
IMergeTreeDelta,
|
|
29
24
|
IMergeTreeDeltaCallbackArgs,
|
|
30
25
|
IMergeTreeDeltaOp,
|
|
@@ -38,7 +33,6 @@ export {
|
|
|
38
33
|
IMergeTreeOptions,
|
|
39
34
|
IMergeTreeRemoveMsg,
|
|
40
35
|
IMergeTreeSegmentDelta,
|
|
41
|
-
IMergeTreeTextHelper,
|
|
42
36
|
IMoveInfo,
|
|
43
37
|
IRelativePosition,
|
|
44
38
|
IRemovalInfo,
|
|
@@ -50,21 +44,15 @@ export {
|
|
|
50
44
|
LocalReferencePosition,
|
|
51
45
|
MapLike,
|
|
52
46
|
Marker,
|
|
53
|
-
MergeNode,
|
|
54
47
|
MergeTreeDeltaOperationType,
|
|
55
48
|
MergeTreeDeltaOperationTypes,
|
|
56
49
|
MergeTreeDeltaRevertible,
|
|
57
50
|
MergeTreeDeltaType,
|
|
58
51
|
MergeTreeMaintenanceType,
|
|
59
52
|
MergeTreeRevertibleDriver,
|
|
60
|
-
ObliterateInfo,
|
|
61
|
-
PropertiesManager,
|
|
62
|
-
PropertiesRollback,
|
|
63
53
|
PropertySet,
|
|
64
54
|
ReferencePosition,
|
|
65
55
|
ReferenceType,
|
|
66
|
-
SegmentGroup,
|
|
67
|
-
SegmentGroupCollection,
|
|
68
56
|
SequenceOffsets,
|
|
69
57
|
SequencePlace,
|
|
70
58
|
SerializedAttributionCollection,
|
package/lib/mergeTree.d.ts
CHANGED
|
@@ -48,10 +48,6 @@ export interface IMergeTreeOptions {
|
|
|
48
48
|
* uses legacy and Matrix uses V1.
|
|
49
49
|
*/
|
|
50
50
|
newMergeTreeSnapshotFormat?: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Options related to attribution
|
|
53
|
-
*/
|
|
54
|
-
attribution?: IMergeTreeAttributionOptions;
|
|
55
51
|
/**
|
|
56
52
|
* Enables support for the obliterate operation -- a stronger form of remove
|
|
57
53
|
* which deletes concurrently inserted segments
|
|
@@ -80,11 +76,18 @@ export interface IMergeTreeOptions {
|
|
|
80
76
|
*/
|
|
81
77
|
mergeTreeEnableSidedObliterate?: boolean;
|
|
82
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
export interface IMergeTreeOptionsInternal extends IMergeTreeOptions {
|
|
83
|
+
/**
|
|
84
|
+
* Options related to attribution
|
|
85
|
+
*/
|
|
86
|
+
attribution?: IMergeTreeAttributionOptions;
|
|
87
|
+
}
|
|
83
88
|
export declare function errorIfOptionNotTrue(options: IMergeTreeOptions | undefined, option: keyof IMergeTreeOptions): void;
|
|
84
89
|
/**
|
|
85
|
-
* @
|
|
86
|
-
* @alpha
|
|
87
|
-
* @deprecated This functionality was not meant to be exported and will be removed in a future release
|
|
90
|
+
* @internal
|
|
88
91
|
*/
|
|
89
92
|
export interface IMergeTreeAttributionOptions {
|
|
90
93
|
/**
|
|
@@ -108,9 +111,7 @@ export interface IMergeTreeAttributionOptions {
|
|
|
108
111
|
/**
|
|
109
112
|
* Implements policy dictating which kinds of operations should be attributed and how.
|
|
110
113
|
* @sealed
|
|
111
|
-
* @
|
|
112
|
-
* @alpha
|
|
113
|
-
* @deprecated This functionality was not meant to be exported and will be removed in a future release
|
|
114
|
+
* @internal
|
|
114
115
|
*/
|
|
115
116
|
export interface AttributionPolicy {
|
|
116
117
|
/**
|
|
@@ -160,7 +161,7 @@ export declare function getSlideToSegoff(segoff: {
|
|
|
160
161
|
* @internal
|
|
161
162
|
*/
|
|
162
163
|
export declare class MergeTree {
|
|
163
|
-
options?:
|
|
164
|
+
options?: IMergeTreeOptionsInternal | undefined;
|
|
164
165
|
static readonly options: {
|
|
165
166
|
incrementalUpdate: boolean;
|
|
166
167
|
insertAfterRemovedSegs: boolean;
|
|
@@ -168,7 +169,7 @@ export declare class MergeTree {
|
|
|
168
169
|
};
|
|
169
170
|
private static readonly theUnfinishedNode;
|
|
170
171
|
readonly collabWindow: CollaborationWindow;
|
|
171
|
-
readonly pendingSegments: DoublyLinkedList<SegmentGroup
|
|
172
|
+
readonly pendingSegments: DoublyLinkedList<SegmentGroup<ISegmentInternal>>;
|
|
172
173
|
readonly segmentsToScour: Heap<LRUSegment>;
|
|
173
174
|
readonly attributionPolicy: AttributionPolicy | undefined;
|
|
174
175
|
/**
|
|
@@ -181,7 +182,7 @@ export declare class MergeTree {
|
|
|
181
182
|
mergeTreeDeltaCallback?: MergeTreeDeltaCallback;
|
|
182
183
|
mergeTreeMaintenanceCallback?: MergeTreeMaintenanceCallback;
|
|
183
184
|
private readonly obliterates;
|
|
184
|
-
constructor(options?:
|
|
185
|
+
constructor(options?: IMergeTreeOptionsInternal | undefined);
|
|
185
186
|
private _root;
|
|
186
187
|
get root(): IRootMergeBlock;
|
|
187
188
|
set root(value: IRootMergeBlock);
|
package/lib/mergeTree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAU,IAAI,EAAa,MAAM,qCAAqC,CAAC;AAG9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}
|
package/lib/mergeTree.js
CHANGED
|
@@ -19,12 +19,12 @@ import { createAnnotateRangeOp, createInsertSegmentOp, createRemoveRangeOp, } fr
|
|
|
19
19
|
import { MergeTreeDeltaType, ReferenceType, } from "./ops.js";
|
|
20
20
|
import { PartialSequenceLengths } from "./partialLengths.js";
|
|
21
21
|
import { PerspectiveImpl, isSegmentPresent } from "./perspective.js";
|
|
22
|
-
import {
|
|
22
|
+
import { createMap, extend, extendIfUndefined } from "./properties.js";
|
|
23
23
|
import { DetachedReferencePosition, refGetTileLabels, refHasTileLabel, refTypeIncludesFlag, } from "./referencePositions.js";
|
|
24
24
|
// eslint-disable-next-line import/no-deprecated
|
|
25
25
|
import { SegmentGroupCollection } from "./segmentGroupCollection.js";
|
|
26
26
|
// eslint-disable-next-line import/no-deprecated
|
|
27
|
-
import { PropertiesManager, PropertiesRollback } from "./segmentPropertiesManager.js";
|
|
27
|
+
import { copyPropertiesAndManager, PropertiesManager, PropertiesRollback, } from "./segmentPropertiesManager.js";
|
|
28
28
|
import { Side } from "./sequencePlace.js";
|
|
29
29
|
import { SortedSegmentSet } from "./sortedSegmentSet.js";
|
|
30
30
|
import { zamboniSegments } from "./zamboni.js";
|
|
@@ -66,6 +66,53 @@ const LRUSegmentComparer = {
|
|
|
66
66
|
min: { maxSeq: -2 },
|
|
67
67
|
compare: (a, b) => a.maxSeq - b.maxSeq,
|
|
68
68
|
};
|
|
69
|
+
function ackSegment(segment, segmentGroup, opArgs) {
|
|
70
|
+
const currentSegmentGroup = segment.segmentGroups?.dequeue();
|
|
71
|
+
assert(currentSegmentGroup === segmentGroup, 0x043 /* "On ack, unexpected segmentGroup!" */);
|
|
72
|
+
switch (opArgs.op.type) {
|
|
73
|
+
case MergeTreeDeltaType.ANNOTATE: {
|
|
74
|
+
assert(!!segment.propertyManager, 0x044 /* "On annotate ack, missing segment property manager!" */);
|
|
75
|
+
segment.propertyManager.ackPendingProperties(opArgs.op);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
case MergeTreeDeltaType.INSERT: {
|
|
79
|
+
assert(segment.seq === UnassignedSequenceNumber, 0x045 /* "On insert, seq number already assigned!" */);
|
|
80
|
+
segment.seq = opArgs.sequencedMessage.sequenceNumber;
|
|
81
|
+
segment.localSeq = undefined;
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
case MergeTreeDeltaType.REMOVE: {
|
|
85
|
+
const removalInfo = toRemovalInfo(segment);
|
|
86
|
+
assert(removalInfo !== undefined, 0x046 /* "On remove ack, missing removal info!" */);
|
|
87
|
+
segment.localRemovedSeq = undefined;
|
|
88
|
+
if (removalInfo.removedSeq === UnassignedSequenceNumber) {
|
|
89
|
+
removalInfo.removedSeq = opArgs.sequencedMessage.sequenceNumber;
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
case MergeTreeDeltaType.OBLITERATE:
|
|
95
|
+
case MergeTreeDeltaType.OBLITERATE_SIDED: {
|
|
96
|
+
const moveInfo = toMoveInfo(segment);
|
|
97
|
+
assert(moveInfo !== undefined, 0x86e /* On obliterate ack, missing move info! */);
|
|
98
|
+
const obliterateInfo = segmentGroup.obliterateInfo;
|
|
99
|
+
assert(obliterateInfo !== undefined, 0xa40 /* must have obliterate info */);
|
|
100
|
+
segment.localMovedSeq = obliterateInfo.localSeq = undefined;
|
|
101
|
+
const seqIdx = moveInfo.movedSeqs.indexOf(UnassignedSequenceNumber);
|
|
102
|
+
assert(seqIdx !== -1, 0x86f /* expected movedSeqs to contain unacked seq */);
|
|
103
|
+
moveInfo.movedSeqs[seqIdx] = obliterateInfo.seq =
|
|
104
|
+
opArgs.sequencedMessage.sequenceNumber;
|
|
105
|
+
if (moveInfo.movedSeq === UnassignedSequenceNumber) {
|
|
106
|
+
moveInfo.movedSeq = opArgs.sequencedMessage.sequenceNumber;
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
default: {
|
|
112
|
+
throw new Error(`${opArgs.op.type} is in unrecognized operation type`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
69
116
|
export function errorIfOptionNotTrue(options, option) {
|
|
70
117
|
if (options?.[option] !== true) {
|
|
71
118
|
throw new Error(`${option} is not enabled.`);
|
|
@@ -222,7 +269,6 @@ class Obliterates {
|
|
|
222
269
|
const overlapping = [];
|
|
223
270
|
for (const start of this.startOrdered.items) {
|
|
224
271
|
if (start.getSegment().ordinal <= seg.ordinal) {
|
|
225
|
-
// eslint-disable-next-line import/no-deprecated
|
|
226
272
|
const ob = start.properties?.obliterate;
|
|
227
273
|
if (ob.end.getSegment().ordinal >= seg.ordinal) {
|
|
228
274
|
overlapping.push(ob);
|
|
@@ -263,23 +309,13 @@ export class MergeTree {
|
|
|
263
309
|
}
|
|
264
310
|
const next = segment.splitAt(pos);
|
|
265
311
|
if (segment?.segmentGroups) {
|
|
266
|
-
// eslint-disable-next-line import/no-deprecated
|
|
267
312
|
next.segmentGroups ?? (next.segmentGroups = new SegmentGroupCollection(next));
|
|
268
|
-
segment.segmentGroups.copyTo(next);
|
|
313
|
+
segment.segmentGroups.copyTo(next.segmentGroups);
|
|
269
314
|
}
|
|
270
315
|
if (segment.prevObliterateByInserter) {
|
|
271
316
|
next.prevObliterateByInserter = segment.prevObliterateByInserter;
|
|
272
317
|
}
|
|
273
|
-
|
|
274
|
-
if (segment.propertyManager === undefined) {
|
|
275
|
-
next.properties = clone(segment.properties);
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
// eslint-disable-next-line import/no-deprecated
|
|
279
|
-
next.propertyManager ?? (next.propertyManager = new PropertiesManager());
|
|
280
|
-
next.properties = segment.propertyManager.copyTo(segment.properties, next.properties, next.propertyManager);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
318
|
+
copyPropertiesAndManager(segment, next);
|
|
283
319
|
if (segment.localRefs) {
|
|
284
320
|
segment.localRefs.split(pos, next);
|
|
285
321
|
}
|
|
@@ -771,7 +807,7 @@ export class MergeTree {
|
|
|
771
807
|
const deltaSegments = [];
|
|
772
808
|
const overlappingRemoves = [];
|
|
773
809
|
pendingSegmentGroup.segments.map((pendingSegment) => {
|
|
774
|
-
const overlappingRemove = !pendingSegment
|
|
810
|
+
const overlappingRemove = !ackSegment(pendingSegment, pendingSegmentGroup, opArgs);
|
|
775
811
|
overwrite = overlappingRemove || overwrite;
|
|
776
812
|
overlappingRemoves.push(overlappingRemove);
|
|
777
813
|
if (MergeTree.options.zamboniSegments) {
|
|
@@ -999,10 +1035,8 @@ export class MergeTree {
|
|
|
999
1035
|
saveIfLocal(newSegment);
|
|
1000
1036
|
continue;
|
|
1001
1037
|
}
|
|
1002
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1003
1038
|
let oldest;
|
|
1004
1039
|
let normalizedOldestSeq = 0;
|
|
1005
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1006
1040
|
let newest;
|
|
1007
1041
|
let normalizedNewestSeq = 0;
|
|
1008
1042
|
const movedClientIds = [];
|
|
@@ -1229,7 +1263,6 @@ export class MergeTree {
|
|
|
1229
1263
|
assert(!Marker.is(segment) ||
|
|
1230
1264
|
!(reservedMarkerIdKey in props) ||
|
|
1231
1265
|
props.markerId === segment.properties?.markerId, 0x5ad /* Cannot change the markerId of an existing marker */);
|
|
1232
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1233
1266
|
const propertyManager = (segment.propertyManager ?? (segment.propertyManager = new PropertiesManager()));
|
|
1234
1267
|
const properties = (segment.properties ?? (segment.properties = createMap()));
|
|
1235
1268
|
const propertyDeltas = propertyManager.addProperties(properties, props, seq, this.collabWindow.collaborating, rollback);
|
|
@@ -1548,9 +1581,7 @@ export class MergeTree {
|
|
|
1548
1581
|
else {
|
|
1549
1582
|
const props = pendingSegmentGroup.previousProps[i];
|
|
1550
1583
|
const annotateOp = createAnnotateRangeOp(start, start + segment.cachedLength, props);
|
|
1551
|
-
this.annotateRange(start, start + segment.cachedLength, props, UniversalSequenceNumber, this.collabWindow.clientId, UniversalSequenceNumber, { op: annotateOp },
|
|
1552
|
-
// eslint-disable-next-line import/no-deprecated
|
|
1553
|
-
PropertiesRollback.Rollback);
|
|
1584
|
+
this.annotateRange(start, start + segment.cachedLength, props, UniversalSequenceNumber, this.collabWindow.clientId, UniversalSequenceNumber, { op: annotateOp }, PropertiesRollback.Rollback);
|
|
1554
1585
|
i++;
|
|
1555
1586
|
}
|
|
1556
1587
|
}
|