@fluidframework/merge-tree 2.23.0 → 2.31.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 +407 -399
- package/api-report/merge-tree.legacy.alpha.api.md +1 -0
- package/dist/MergeTreeTextHelper.d.ts +9 -3
- package/dist/MergeTreeTextHelper.d.ts.map +1 -1
- package/dist/MergeTreeTextHelper.js +5 -5
- package/dist/MergeTreeTextHelper.js.map +1 -1
- package/dist/client.d.ts +7 -13
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +136 -110
- package/dist/client.js.map +1 -1
- package/dist/endOfTreeSegment.d.ts +12 -8
- package/dist/endOfTreeSegment.d.ts.map +1 -1
- package/dist/endOfTreeSegment.js +2 -4
- package/dist/endOfTreeSegment.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/mergeTree.d.ts +38 -22
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +408 -486
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +4 -8
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +32 -10
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +43 -28
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/partialLengths.d.ts +2 -2
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +181 -109
- package/dist/partialLengths.js.map +1 -1
- package/dist/perspective.d.ts +84 -65
- package/dist/perspective.d.ts.map +1 -1
- package/dist/perspective.js +109 -108
- package/dist/perspective.js.map +1 -1
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +2 -2
- package/dist/revertibles.js.map +1 -1
- package/dist/segmentInfos.d.ts +20 -106
- package/dist/segmentInfos.d.ts.map +1 -1
- package/dist/segmentInfos.js +28 -42
- package/dist/segmentInfos.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +1 -14
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +3 -17
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js +62 -19
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js +55 -24
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +6 -9
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/stamps.d.ts +90 -0
- package/dist/stamps.d.ts.map +1 -0
- package/dist/stamps.js +90 -0
- package/dist/stamps.js.map +1 -0
- package/dist/test/Insertion.perf.spec.js +6 -51
- package/dist/test/Insertion.perf.spec.js.map +1 -1
- package/dist/test/PartialLengths.perf.spec.js +18 -25
- package/dist/test/PartialLengths.perf.spec.js.map +1 -1
- package/dist/test/Removal.perf.spec.js +13 -41
- package/dist/test/Removal.perf.spec.js.map +1 -1
- package/dist/test/beastTest.spec.d.ts.map +1 -1
- package/dist/test/beastTest.spec.js +41 -66
- package/dist/test/beastTest.spec.js.map +1 -1
- package/dist/test/client.annotateMarker.spec.js +1 -11
- package/dist/test/client.annotateMarker.spec.js.map +1 -1
- package/dist/test/client.applyMsg.spec.js +14 -14
- package/dist/test/client.applyMsg.spec.js.map +1 -1
- package/dist/test/client.getPosition.spec.js +1 -1
- package/dist/test/client.getPosition.spec.js.map +1 -1
- package/dist/test/client.localReference.spec.js +1 -1
- package/dist/test/client.localReference.spec.js.map +1 -1
- package/dist/test/client.rollback.spec.js +49 -58
- package/dist/test/client.rollback.spec.js.map +1 -1
- package/dist/test/client.rollbackFarm.spec.js +1 -1
- package/dist/test/client.rollbackFarm.spec.js.map +1 -1
- package/dist/test/client.searchForMarker.spec.js +4 -21
- package/dist/test/client.searchForMarker.spec.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 -6
- package/dist/test/index.js.map +1 -1
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js +14 -59
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.annotate.spec.js +47 -63
- package/dist/test/mergeTree.annotate.spec.js.map +1 -1
- package/dist/test/mergeTree.insert.deltaCallback.spec.js +9 -62
- package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.insertingWalk.spec.js +59 -125
- package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +12 -93
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.spec.js +10 -7
- package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/dist/test/mergeTree.walk.spec.js +2 -14
- package/dist/test/mergeTree.walk.spec.js.map +1 -1
- package/dist/test/mergeTreeOperationRunner.js +2 -2
- package/dist/test/mergeTreeOperationRunner.js.map +1 -1
- package/dist/test/obliterate.concurrent.spec.js +18 -23
- package/dist/test/obliterate.concurrent.spec.js.map +1 -1
- package/dist/test/obliterate.partialLength.spec.js +166 -136
- package/dist/test/obliterate.partialLength.spec.js.map +1 -1
- package/dist/test/obliterate.spec.js +16 -126
- package/dist/test/obliterate.spec.js.map +1 -1
- package/dist/test/partialLength.spec.js +28 -196
- package/dist/test/partialLength.spec.js.map +1 -1
- package/{prettier.config.cjs → dist/test/perspective.spec.d.ts} +2 -4
- package/dist/test/perspective.spec.d.ts.map +1 -0
- package/dist/test/perspective.spec.js +153 -0
- package/dist/test/perspective.spec.js.map +1 -0
- package/dist/test/propertyManager.spec.js +1 -1
- package/dist/test/propertyManager.spec.js.map +1 -1
- package/dist/test/resetPendingSegmentsToOp.spec.js +0 -2
- package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/dist/test/segmentGroupCollection.spec.js +10 -4
- package/dist/test/segmentGroupCollection.spec.js.map +1 -1
- package/dist/test/stamps.spec.d.ts +6 -0
- package/dist/test/stamps.spec.d.ts.map +1 -0
- package/dist/test/stamps.spec.js +130 -0
- package/dist/test/stamps.spec.js.map +1 -0
- package/dist/test/testClient.d.ts +1 -0
- package/dist/test/testClient.d.ts.map +1 -1
- package/dist/test/testClient.js +16 -26
- package/dist/test/testClient.js.map +1 -1
- package/dist/test/testClientLogger.d.ts +9 -0
- package/dist/test/testClientLogger.d.ts.map +1 -1
- package/dist/test/testClientLogger.js +59 -47
- package/dist/test/testClientLogger.js.map +1 -1
- package/dist/test/testServer.d.ts +2 -1
- package/dist/test/testServer.d.ts.map +1 -1
- package/dist/test/testServer.js +7 -5
- package/dist/test/testServer.js.map +1 -1
- package/dist/test/testUtils.d.ts +36 -56
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +68 -77
- package/dist/test/testUtils.js.map +1 -1
- package/dist/test/text.d.ts +2 -2
- package/dist/test/text.d.ts.map +1 -1
- package/dist/test/text.js +5 -2
- package/dist/test/text.js.map +1 -1
- package/dist/textSegment.d.ts +0 -6
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js.map +1 -1
- package/dist/zamboni.d.ts.map +1 -1
- package/dist/zamboni.js +53 -26
- package/dist/zamboni.js.map +1 -1
- package/lib/MergeTreeTextHelper.d.ts +9 -3
- package/lib/MergeTreeTextHelper.d.ts.map +1 -1
- package/lib/MergeTreeTextHelper.js +5 -5
- package/lib/MergeTreeTextHelper.js.map +1 -1
- package/lib/client.d.ts +7 -13
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +117 -116
- package/lib/client.js.map +1 -1
- package/lib/endOfTreeSegment.d.ts +12 -8
- package/lib/endOfTreeSegment.d.ts.map +1 -1
- package/lib/endOfTreeSegment.js +2 -4
- package/lib/endOfTreeSegment.js.map +1 -1
- package/lib/index.d.ts +6 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/mergeTree.d.ts +38 -22
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +389 -491
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +4 -8
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +32 -10
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +42 -29
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/partialLengths.d.ts +2 -2
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +160 -111
- package/lib/partialLengths.js.map +1 -1
- package/lib/perspective.d.ts +84 -65
- package/lib/perspective.d.ts.map +1 -1
- package/lib/perspective.js +82 -103
- package/lib/perspective.js.map +1 -1
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +2 -2
- package/lib/revertibles.js.map +1 -1
- package/lib/segmentInfos.d.ts +20 -106
- package/lib/segmentInfos.d.ts.map +1 -1
- package/lib/segmentInfos.js +26 -37
- package/lib/segmentInfos.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +1 -14
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +2 -16
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js +39 -19
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js +34 -26
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +7 -10
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/stamps.d.ts +90 -0
- package/lib/stamps.d.ts.map +1 -0
- package/lib/stamps.js +77 -0
- package/lib/stamps.js.map +1 -0
- package/lib/test/Insertion.perf.spec.js +6 -51
- package/lib/test/Insertion.perf.spec.js.map +1 -1
- package/lib/test/PartialLengths.perf.spec.js +18 -25
- package/lib/test/PartialLengths.perf.spec.js.map +1 -1
- package/lib/test/Removal.perf.spec.js +13 -41
- package/lib/test/Removal.perf.spec.js.map +1 -1
- package/lib/test/beastTest.spec.d.ts.map +1 -1
- package/lib/test/beastTest.spec.js +42 -67
- package/lib/test/beastTest.spec.js.map +1 -1
- package/lib/test/client.annotateMarker.spec.js +1 -11
- package/lib/test/client.annotateMarker.spec.js.map +1 -1
- package/lib/test/client.applyMsg.spec.js +14 -14
- package/lib/test/client.applyMsg.spec.js.map +1 -1
- package/lib/test/client.getPosition.spec.js +1 -1
- package/lib/test/client.getPosition.spec.js.map +1 -1
- package/lib/test/client.localReference.spec.js +1 -1
- package/lib/test/client.localReference.spec.js.map +1 -1
- package/lib/test/client.rollback.spec.js +50 -59
- package/lib/test/client.rollback.spec.js.map +1 -1
- package/lib/test/client.rollbackFarm.spec.js +1 -1
- package/lib/test/client.rollbackFarm.spec.js.map +1 -1
- package/lib/test/client.searchForMarker.spec.js +4 -21
- package/lib/test/client.searchForMarker.spec.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 +1 -1
- package/lib/test/index.js.map +1 -1
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js +15 -60
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.annotate.spec.js +48 -64
- package/lib/test/mergeTree.annotate.spec.js.map +1 -1
- package/lib/test/mergeTree.insert.deltaCallback.spec.js +10 -63
- package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.insertingWalk.spec.js +61 -127
- package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +13 -94
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.markRangeRemoved.spec.js +10 -7
- package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/lib/test/mergeTree.walk.spec.js +2 -14
- package/lib/test/mergeTree.walk.spec.js.map +1 -1
- package/lib/test/mergeTreeOperationRunner.js +3 -3
- package/lib/test/mergeTreeOperationRunner.js.map +1 -1
- package/lib/test/obliterate.concurrent.spec.js +18 -23
- package/lib/test/obliterate.concurrent.spec.js.map +1 -1
- package/lib/test/obliterate.partialLength.spec.js +167 -137
- package/lib/test/obliterate.partialLength.spec.js.map +1 -1
- package/lib/test/obliterate.spec.js +17 -127
- package/lib/test/obliterate.spec.js.map +1 -1
- package/lib/test/partialLength.spec.js +29 -197
- package/lib/test/partialLength.spec.js.map +1 -1
- package/lib/test/perspective.spec.d.ts +6 -0
- package/lib/test/perspective.spec.d.ts.map +1 -0
- package/lib/test/perspective.spec.js +151 -0
- package/lib/test/perspective.spec.js.map +1 -0
- package/lib/test/propertyManager.spec.js +2 -2
- package/lib/test/propertyManager.spec.js.map +1 -1
- package/lib/test/resetPendingSegmentsToOp.spec.js +0 -2
- package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/lib/test/segmentGroupCollection.spec.js +10 -4
- package/lib/test/segmentGroupCollection.spec.js.map +1 -1
- package/lib/test/stamps.spec.d.ts +6 -0
- package/lib/test/stamps.spec.d.ts.map +1 -0
- package/lib/test/stamps.spec.js +105 -0
- package/lib/test/stamps.spec.js.map +1 -0
- package/lib/test/testClient.d.ts +1 -0
- package/lib/test/testClient.d.ts.map +1 -1
- package/lib/test/testClient.js +18 -28
- package/lib/test/testClient.js.map +1 -1
- package/lib/test/testClientLogger.d.ts +9 -0
- package/lib/test/testClientLogger.d.ts.map +1 -1
- package/lib/test/testClientLogger.js +60 -48
- package/lib/test/testClientLogger.js.map +1 -1
- package/lib/test/testServer.d.ts +2 -1
- package/lib/test/testServer.d.ts.map +1 -1
- package/lib/test/testServer.js +7 -5
- package/lib/test/testServer.js.map +1 -1
- package/lib/test/testUtils.d.ts +36 -56
- package/lib/test/testUtils.d.ts.map +1 -1
- package/lib/test/testUtils.js +66 -48
- package/lib/test/testUtils.js.map +1 -1
- package/lib/test/text.d.ts +2 -2
- package/lib/test/text.d.ts.map +1 -1
- package/lib/test/text.js +6 -3
- package/lib/test/text.js.map +1 -1
- package/lib/textSegment.d.ts +0 -6
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/lib/zamboni.d.ts.map +1 -1
- package/lib/zamboni.js +32 -28
- package/lib/zamboni.js.map +1 -1
- package/package.json +18 -21
- package/src/MergeTreeTextHelper.ts +17 -12
- package/src/client.ts +141 -197
- package/src/endOfTreeSegment.ts +11 -8
- package/src/index.ts +4 -3
- package/src/mergeTree.ts +501 -631
- package/src/mergeTreeDeltaCallback.ts +4 -8
- package/src/mergeTreeNodes.ts +66 -45
- package/src/partialLengths.ts +181 -137
- package/src/perspective.ts +127 -129
- package/src/revertibles.ts +2 -7
- package/src/segmentInfos.ts +48 -141
- package/src/segmentPropertiesManager.ts +2 -16
- package/src/snapshotLoader.ts +62 -30
- package/src/snapshotV1.ts +36 -28
- package/src/snapshotlegacy.ts +7 -16
- package/src/stamps.ts +164 -0
- package/src/textSegment.ts +0 -13
- package/src/zamboni.ts +38 -32
- package/tsconfig.json +1 -0
package/lib/mergeTree.d.ts
CHANGED
|
@@ -11,11 +11,14 @@ import { LocalReferencePosition, SlidingPreference } from "./localReference.js";
|
|
|
11
11
|
import { IMergeTreeDeltaOpArgs, MergeTreeDeltaCallback, MergeTreeMaintenanceCallback } from "./mergeTreeDeltaCallback.js";
|
|
12
12
|
import { CollaborationWindow, IMergeNode, ISegmentAction, Marker, MergeBlock, SegmentGroup, type ISegmentInternal, type ISegmentLeaf, type ISegmentPrivate } from "./mergeTreeNodes.js";
|
|
13
13
|
import { IMergeTreeDeltaOp, IRelativePosition, ReferenceType } from "./ops.js";
|
|
14
|
+
import { type Perspective } from "./perspective.js";
|
|
14
15
|
import { PropertySet } from "./properties.js";
|
|
15
16
|
import { ReferencePosition } from "./referencePositions.js";
|
|
16
|
-
import { type
|
|
17
|
-
import {
|
|
17
|
+
import { type IHasInsertionInfo, type IHasRemovalInfo, type SegmentWithInfo } from "./segmentInfos.js";
|
|
18
|
+
import { type PropsOrAdjust } from "./segmentPropertiesManager.js";
|
|
18
19
|
import { type InteriorSequencePlace } from "./sequencePlace.js";
|
|
20
|
+
import type { OperationStamp } from "./stamps.js";
|
|
21
|
+
export declare function isRemovedAndAcked(segment: ISegmentPrivate): segment is ISegmentLeaf & IHasRemovalInfo;
|
|
19
22
|
/**
|
|
20
23
|
* @legacy
|
|
21
24
|
* @alpha
|
|
@@ -175,11 +178,17 @@ export declare class MergeTree {
|
|
|
175
178
|
insertAfterRemovedSegs: boolean;
|
|
176
179
|
zamboniSegments: boolean;
|
|
177
180
|
};
|
|
181
|
+
/**
|
|
182
|
+
* A sentinel value that indicates an inserting walk should continue to the next block sibling.
|
|
183
|
+
* This can occur for example when tie-break forces insertion of a segment past an entire block (and
|
|
184
|
+
* the inserting walk first recurses into the block before realizing that).
|
|
185
|
+
*/
|
|
178
186
|
private static readonly theUnfinishedNode;
|
|
179
187
|
readonly collabWindow: CollaborationWindow;
|
|
180
188
|
readonly pendingSegments: DoublyLinkedList<SegmentGroup>;
|
|
181
189
|
readonly segmentsToScour: Heap<LRUSegment>;
|
|
182
190
|
readonly attributionPolicy: AttributionPolicy | undefined;
|
|
191
|
+
get localPerspective(): Perspective;
|
|
183
192
|
/**
|
|
184
193
|
* Whether or not all blocks in the mergeTree currently have information about local partial lengths computed.
|
|
185
194
|
* This information is only necessary on reconnect, and otherwise costly to bookkeep.
|
|
@@ -196,25 +205,23 @@ export declare class MergeTree {
|
|
|
196
205
|
set root(value: IRootMergeBlock);
|
|
197
206
|
makeBlock(childCount: number): MergeBlock;
|
|
198
207
|
/**
|
|
199
|
-
* Compute the net length of this segment from
|
|
200
|
-
* @
|
|
201
|
-
*
|
|
202
|
-
* default is to consider the local client's current perspective. Only local sequence
|
|
203
|
-
* numbers corresponding to un-acked operations give valid results.
|
|
208
|
+
* Compute the net length of this segment leaf from some perspective.
|
|
209
|
+
* @returns - Undefined if the segment has been removed and its removal is common knowledge to all collaborators (and therefore
|
|
210
|
+
* may not even be present on clients that have loaded from a summary beyond this point). Otherwise, the length of the segment.
|
|
204
211
|
*/
|
|
205
|
-
|
|
212
|
+
leafLength(segment: ISegmentLeaf, perspective?: Perspective): number | undefined;
|
|
206
213
|
unlinkMarker(marker: Marker): void;
|
|
207
214
|
private addNode;
|
|
208
|
-
reloadFromSegments(segments: SegmentWithInfo<
|
|
215
|
+
reloadFromSegments(segments: SegmentWithInfo<IHasInsertionInfo>[]): void;
|
|
209
216
|
startCollaboration(localClientId: number, minSeq: number, currentSeq: number): void;
|
|
210
217
|
private addToLRUSet;
|
|
211
|
-
getLength(
|
|
218
|
+
getLength(perspective: Perspective): number;
|
|
212
219
|
/**
|
|
213
220
|
* Returns the current length of the MergeTree for the local client.
|
|
214
221
|
*/
|
|
215
222
|
get length(): number | undefined;
|
|
216
|
-
getPosition(node: IMergeNode,
|
|
217
|
-
getContainingSegment(pos: number,
|
|
223
|
+
getPosition(node: IMergeNode, perspective: Perspective): number;
|
|
224
|
+
getContainingSegment(pos: number, perspective: Perspective): {
|
|
218
225
|
segment: ISegmentLeaf | undefined;
|
|
219
226
|
offset: number | undefined;
|
|
220
227
|
};
|
|
@@ -239,7 +246,6 @@ export declare class MergeTree {
|
|
|
239
246
|
* @param segments - An array of (not necessarily contiguous) segments with increasing ordinals.
|
|
240
247
|
*/
|
|
241
248
|
private slideAckedRemovedSegmentReferences;
|
|
242
|
-
private blockLength;
|
|
243
249
|
/**
|
|
244
250
|
* Compute local partial length information
|
|
245
251
|
*
|
|
@@ -258,6 +264,16 @@ export declare class MergeTree {
|
|
|
258
264
|
* @param localSeq - The local sequence number to consider. Defaults to including all local edits.
|
|
259
265
|
*/
|
|
260
266
|
referencePositionToLocalPosition(refPos: ReferencePosition, refSeq?: number, clientId?: number, localSeq?: number | undefined): number;
|
|
267
|
+
/**
|
|
268
|
+
* Returns the immediately adjacent segment in the specified direction from this perspective.
|
|
269
|
+
* There may actually be multiple segments between the given segment and the returned segment,
|
|
270
|
+
* but they were either inserted after this perspective, or have been removed before this perspective.
|
|
271
|
+
*
|
|
272
|
+
* @param segment - The segment to start from.
|
|
273
|
+
* @param forward - The direction to search.
|
|
274
|
+
* @returns the next segment in the specified direction, or the start or end of the tree if there is no next segment.
|
|
275
|
+
*/
|
|
276
|
+
private nextSegment;
|
|
261
277
|
/**
|
|
262
278
|
* Finds the nearest reference with ReferenceType.Tile to `startPos` in the direction dictated by `forwards`.
|
|
263
279
|
* Uses depthFirstNodeWalk in addition to block-accelerated functionality. The search position will be included in
|
|
@@ -270,7 +286,7 @@ export declare class MergeTree {
|
|
|
270
286
|
* @param markerLabel - Label of the marker to search for
|
|
271
287
|
* @param forwards - Whether the string should be searched in the forward or backward direction
|
|
272
288
|
*/
|
|
273
|
-
searchForMarker(startPos: number,
|
|
289
|
+
searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined;
|
|
274
290
|
private updateRoot;
|
|
275
291
|
/**
|
|
276
292
|
* Assign sequence number to existing segment; update partial lengths to reflect the change
|
|
@@ -286,8 +302,8 @@ export declare class MergeTree {
|
|
|
286
302
|
* @param refseq - The reference sequence number at which to compute the position.
|
|
287
303
|
* @param clientId - The client id with which to compute the position.
|
|
288
304
|
*/
|
|
289
|
-
posFromRelativePos(relativePos: IRelativePosition,
|
|
290
|
-
insertSegments(pos: number, segments: ISegmentPrivate[],
|
|
305
|
+
posFromRelativePos(relativePos: IRelativePosition, perspective: Perspective): number;
|
|
306
|
+
insertSegments(pos: number, segments: ISegmentPrivate[], perspective: Perspective, stampArg: OperationStamp, opArgs: IMergeTreeDeltaOpArgs | undefined): void;
|
|
291
307
|
/**
|
|
292
308
|
* Resolves a remote client's position against the local sequence
|
|
293
309
|
* and returns the remote client's position relative to the local
|
|
@@ -308,6 +324,7 @@ export declare class MergeTree {
|
|
|
308
324
|
private ensureIntervalBoundary;
|
|
309
325
|
private breakTie;
|
|
310
326
|
private insertingWalk;
|
|
327
|
+
private insertRecursive;
|
|
311
328
|
private split;
|
|
312
329
|
nodeUpdateOrdinals(block: MergeBlock): void;
|
|
313
330
|
/**
|
|
@@ -319,12 +336,11 @@ export declare class MergeTree {
|
|
|
319
336
|
* @param clientId - The id of the client making the annotate
|
|
320
337
|
* @param seq - The sequence number of the annotate operation
|
|
321
338
|
* @param opArgs - The op args for the annotate op. this is passed to the merge tree callback if there is one
|
|
322
|
-
* @param rollback - Whether this is for a local rollback and what kind
|
|
323
339
|
*/
|
|
324
|
-
annotateRange(start: number, end: number, propsOrAdjust: PropsOrAdjust,
|
|
340
|
+
annotateRange(start: number, end: number, propsOrAdjust: PropsOrAdjust, perspective: Perspective, stamp: OperationStamp, opArgs: IMergeTreeDeltaOpArgs): void;
|
|
325
341
|
private obliterateRangeSided;
|
|
326
|
-
obliterateRange(start: number | InteriorSequencePlace, end: number | InteriorSequencePlace,
|
|
327
|
-
markRangeRemoved(start: number, end: number,
|
|
342
|
+
obliterateRange(start: number | InteriorSequencePlace, end: number | InteriorSequencePlace, perspective: Perspective, stampArg: OperationStamp, opArgs: IMergeTreeDeltaOpArgs): void;
|
|
343
|
+
markRangeRemoved(start: number, end: number, perspective: Perspective, stampArg: OperationStamp, opArgs: IMergeTreeDeltaOpArgs): void;
|
|
328
344
|
/**
|
|
329
345
|
* Revert an unacked local op
|
|
330
346
|
*/
|
|
@@ -361,7 +377,7 @@ export declare class MergeTree {
|
|
|
361
377
|
*/
|
|
362
378
|
normalizeSegmentsOnRebase(): void;
|
|
363
379
|
private blockUpdate;
|
|
364
|
-
blockUpdatePathLengths(startBlock: MergeBlock | undefined,
|
|
380
|
+
blockUpdatePathLengths(startBlock: MergeBlock | undefined, stamp: OperationStamp, newStructure?: boolean): void;
|
|
365
381
|
private blockUpdateLength;
|
|
366
382
|
/**
|
|
367
383
|
* Map over all visible segments in a given range
|
|
@@ -370,7 +386,7 @@ export declare class MergeTree {
|
|
|
370
386
|
*
|
|
371
387
|
* See `this.nodeMap` for additional documentation
|
|
372
388
|
*/
|
|
373
|
-
mapRange<TClientData>(handler: ISegmentAction<TClientData>,
|
|
389
|
+
mapRange<TClientData>(handler: ISegmentAction<TClientData>, perspective: Perspective, accum: TClientData, start?: number, end?: number, splitRange?: boolean, visibilityPerspective?: Perspective): void;
|
|
374
390
|
/**
|
|
375
391
|
* Map over all visible segments in a given range
|
|
376
392
|
*
|
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;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAY,MAAM,wBAAwB,CAAC;AAOpE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAEN,sBAAsB,EACtB,iBAAiB,EAIjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,qBAAqB,EAErB,sBAAsB,EACtB,4BAA4B,EAE5B,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}
|