@fluidframework/merge-tree 0.52.1 → 0.54.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/dist/client.d.ts +1 -1
- package/dist/mergeTree.d.ts +27 -33
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +61 -60
- package/dist/mergeTree.js.map +1 -1
- package/dist/partialLengths.js +2 -2
- package/dist/partialLengths.js.map +1 -1
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js +11 -2
- package/dist/textSegment.js.map +1 -1
- package/lib/client.d.ts +1 -1
- package/lib/mergeTree.d.ts +27 -33
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +61 -60
- package/lib/mergeTree.js.map +1 -1
- package/lib/partialLengths.js +2 -2
- package/lib/partialLengths.js.map +1 -1
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js +11 -2
- package/lib/textSegment.js.map +1 -1
- package/package.json +7 -7
- package/src/mergeTree.ts +240 -166
- package/src/partialLengths.ts +2 -2
- package/src/textSegment.ts +12 -2
package/dist/client.d.ts
CHANGED
|
@@ -109,7 +109,7 @@ export declare class Client {
|
|
|
109
109
|
* @param relativePos - Id of marker (may be indirect) and whether position is before or after marker.
|
|
110
110
|
*/
|
|
111
111
|
posFromRelativePos(relativePos: IRelativePosition): number;
|
|
112
|
-
getMarkerFromId(id: string): ISegment;
|
|
112
|
+
getMarkerFromId(id: string): ISegment | undefined;
|
|
113
113
|
/**
|
|
114
114
|
* Performs the remove based on the provided op
|
|
115
115
|
* @param opArgs - The ops args for the op
|
package/dist/mergeTree.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Trace } from "@fluidframework/common-utils";
|
|
6
6
|
import { IIntegerRange } from "./base";
|
|
7
|
-
import { Comparer,
|
|
7
|
+
import { Comparer, List, Stack } from "./collections";
|
|
8
8
|
import { LocalReference, LocalReferenceCollection } from "./localReference";
|
|
9
9
|
import { IMergeTreeDeltaOpArgs, MergeTreeDeltaCallback, MergeTreeMaintenanceCallback } from "./mergeTreeDeltaCallback";
|
|
10
10
|
import { TrackingGroupCollection } from "./mergeTreeTracking";
|
|
@@ -168,7 +168,6 @@ export declare function ordinalToArray(ord: string): number[];
|
|
|
168
168
|
export declare const MaxNodesInBlock = 8;
|
|
169
169
|
export declare class MergeBlock extends MergeNode implements IMergeBlock {
|
|
170
170
|
childCount: number;
|
|
171
|
-
static traceOrdinals: boolean;
|
|
172
171
|
children: IMergeNode[];
|
|
173
172
|
constructor(childCount: number);
|
|
174
173
|
hierBlock(): HierMergeBlock | undefined;
|
|
@@ -185,7 +184,6 @@ declare class HierMergeBlock extends MergeBlock implements IMergeBlock {
|
|
|
185
184
|
hierToString(indentCount: number): string;
|
|
186
185
|
}
|
|
187
186
|
export declare abstract class BaseSegment extends MergeNode implements ISegment {
|
|
188
|
-
constructor();
|
|
189
187
|
clientId: number;
|
|
190
188
|
seq: number;
|
|
191
189
|
removedSeq?: number;
|
|
@@ -202,9 +200,9 @@ export declare abstract class BaseSegment extends MergeNode implements ISegment
|
|
|
202
200
|
addProperties(newProps: PropertySet, op?: ICombiningOp, seq?: number, collabWindow?: CollaborationWindow): PropertySet | undefined;
|
|
203
201
|
hasProperty(key: string): boolean;
|
|
204
202
|
isLeaf(): boolean;
|
|
205
|
-
cloneInto(b: ISegment): void;
|
|
203
|
+
protected cloneInto(b: ISegment): void;
|
|
206
204
|
canAppend(segment: ISegment): boolean;
|
|
207
|
-
addSerializedProps(jseg: IJSONSegment): void;
|
|
205
|
+
protected addSerializedProps(jseg: IJSONSegment): void;
|
|
208
206
|
abstract toJSONObject(): any;
|
|
209
207
|
ack(segmentGroup: SegmentGroup, opArgs: IMergeTreeDeltaOpArgs, mergeTree: MergeTree): boolean;
|
|
210
208
|
splitAt(pos: number): ISegment | undefined;
|
|
@@ -305,38 +303,36 @@ export interface MinListener {
|
|
|
305
303
|
export declare type LocalReferenceMapper = (id: string) => LocalReference;
|
|
306
304
|
export declare class MergeTree {
|
|
307
305
|
options?: PropertySet | undefined;
|
|
308
|
-
static
|
|
309
|
-
static
|
|
310
|
-
static options: {
|
|
306
|
+
private static readonly zamboniSegmentsMaxCount;
|
|
307
|
+
static readonly options: {
|
|
311
308
|
incrementalUpdate: boolean;
|
|
312
309
|
insertAfterRemovedSegs: boolean;
|
|
313
310
|
measureOrdinalTime: boolean;
|
|
314
311
|
measureWindowTime: boolean;
|
|
315
312
|
zamboniSegments: boolean;
|
|
316
313
|
};
|
|
317
|
-
static traceAppend
|
|
318
|
-
static traceZRemove
|
|
319
|
-
static traceOrdinals
|
|
320
|
-
static traceGatherText
|
|
321
|
-
static diagInsertTie
|
|
322
|
-
static
|
|
323
|
-
static
|
|
324
|
-
static
|
|
325
|
-
static
|
|
326
|
-
static
|
|
327
|
-
static
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
maxOrdTime: number;
|
|
314
|
+
private static readonly traceAppend;
|
|
315
|
+
private static readonly traceZRemove;
|
|
316
|
+
private static readonly traceOrdinals;
|
|
317
|
+
static readonly traceGatherText = false;
|
|
318
|
+
private static readonly diagInsertTie;
|
|
319
|
+
static readonly diagOverlappingRemove = false;
|
|
320
|
+
private static readonly traceTraversal;
|
|
321
|
+
private static readonly traceIncrTraversal;
|
|
322
|
+
private static readonly initBlockUpdateActions;
|
|
323
|
+
private static readonly theUnfinishedNode;
|
|
324
|
+
private static readonly blockUpdateMarkers;
|
|
325
|
+
private windowTime;
|
|
326
|
+
private packTime;
|
|
327
|
+
private ordTime;
|
|
328
|
+
private maxOrdTime;
|
|
333
329
|
root: IMergeBlock;
|
|
334
|
-
blockUpdateActions
|
|
335
|
-
collabWindow: CollaborationWindow;
|
|
330
|
+
private readonly blockUpdateActions;
|
|
331
|
+
readonly collabWindow: CollaborationWindow;
|
|
336
332
|
pendingSegments: List<SegmentGroup> | undefined;
|
|
337
|
-
segmentsToScour
|
|
338
|
-
idToSegment
|
|
339
|
-
minSeqListeners
|
|
333
|
+
private segmentsToScour;
|
|
334
|
+
private readonly idToSegment;
|
|
335
|
+
private minSeqListeners;
|
|
340
336
|
getLongClientId?: (id: number) => string;
|
|
341
337
|
mergeTreeDeltaCallback?: MergeTreeDeltaCallback;
|
|
342
338
|
mergeTreeMaintenanceCallback?: MergeTreeMaintenanceCallback;
|
|
@@ -358,7 +354,7 @@ export declare class MergeTree {
|
|
|
358
354
|
getCollabWindow(): CollaborationWindow;
|
|
359
355
|
getStats(): MergeTreeStats;
|
|
360
356
|
findHistorialPosition(pos: number, fromSeq: number, toSeq: number, clientId: number): number;
|
|
361
|
-
findHistorialPositionFromClient
|
|
357
|
+
private findHistorialPositionFromClient;
|
|
362
358
|
findHistorialRangeFromClient(rangeStart: number, rangeEnd: number, fromSeq: number, toSeq: number, clientId: number): IIntegerRange[];
|
|
363
359
|
findHistorialRange(rangeStart: number, rangeEnd: number, fromSeq: number, toSeq: number, clientId: number): IIntegerRange[];
|
|
364
360
|
getLength(refSeq: number, clientId: number): number;
|
|
@@ -367,13 +363,11 @@ export declare class MergeTree {
|
|
|
367
363
|
*/
|
|
368
364
|
get length(): number;
|
|
369
365
|
getPosition(node: MergeNode, refSeq: number, clientId: number): number;
|
|
370
|
-
cloneSegments(refSeq: number, clientId: number, start?: number, end?: number): ISegment[];
|
|
371
366
|
getContainingSegment<T extends ISegment>(pos: number, refSeq: number, clientId: number): {
|
|
372
367
|
segment: T | undefined;
|
|
373
368
|
offset: number | undefined;
|
|
374
369
|
};
|
|
375
370
|
private blockLength;
|
|
376
|
-
getRemovalInfo(segment: ISegment): IRemovalInfo;
|
|
377
371
|
private nodeLength;
|
|
378
372
|
addMinSeqListener(minRequired: number, onMinGE: (minSeq: number) => void): void;
|
|
379
373
|
private notifyMinSeqListeners;
|
|
@@ -395,7 +389,7 @@ export declare class MergeTree {
|
|
|
395
389
|
*/
|
|
396
390
|
ackPendingSegment(opArgs: IMergeTreeDeltaOpArgs, verboseOps?: boolean): void;
|
|
397
391
|
private addToPendingList;
|
|
398
|
-
getMarkerFromId(id: string): ISegment;
|
|
392
|
+
getMarkerFromId(id: string): ISegment | undefined;
|
|
399
393
|
/**
|
|
400
394
|
* Given a position specified relative to a marker id, lookup the marker
|
|
401
395
|
* and convert the position to a character position.
|
package/dist/mergeTree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}
|
package/dist/mergeTree.js
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.MergeTree = exports.glc = exports.clientSeqComparer = exports.internedSpaces = exports.elapsedMicroseconds = exports.clock = exports.compareStrings = exports.compareNumbers = exports.CollaborationWindow = exports.IncrementalMapState = exports.IncrementalExecOp = exports.Marker = exports.refHasRangeLabel = exports.refHasTileLabel = exports.refGetRangeLabels = exports.refGetTileLabels = exports.reservedMarkerSimpleTypeKey = exports.reservedMarkerIdKey = exports.reservedRangeLabelsKey = exports.reservedTileLabelsKey = exports.BaseSegment = exports.MergeBlock = exports.MaxNodesInBlock = exports.ordinalToArray = exports.MergeNode = void 0;
|
|
8
8
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
9
|
-
/* eslint-disable @typescript-eslint/consistent-type-assertions
|
|
9
|
+
/* eslint-disable @typescript-eslint/consistent-type-assertions */
|
|
10
|
+
/* eslint-disable @typescript-eslint/no-shadow */
|
|
11
|
+
/* eslint-disable no-bitwise */
|
|
10
12
|
const common_utils_1 = require("@fluidframework/common-utils");
|
|
11
13
|
const collections_1 = require("./collections");
|
|
12
14
|
const constants_1 = require("./constants");
|
|
@@ -156,6 +158,7 @@ exports.ordinalToArray = ordinalToArray;
|
|
|
156
158
|
// `MaxNodesInBlock`. (i.e., `MaxNodesInBlock` contains 1 extra slot for temporary storage to
|
|
157
159
|
// facilitate splits.)
|
|
158
160
|
exports.MaxNodesInBlock = 8;
|
|
161
|
+
const traceOrdinals = false;
|
|
159
162
|
class MergeBlock extends MergeNode {
|
|
160
163
|
constructor(childCount) {
|
|
161
164
|
super();
|
|
@@ -182,12 +185,14 @@ class MergeBlock extends MergeNode {
|
|
|
182
185
|
localOrdinal = prevOrdCode + ordinalWidth;
|
|
183
186
|
}
|
|
184
187
|
child.ordinal = this.ordinal + String.fromCharCode(localOrdinal);
|
|
185
|
-
if (
|
|
188
|
+
if (traceOrdinals) {
|
|
189
|
+
// eslint-disable-next-line max-len
|
|
186
190
|
console.log(`so: prnt chld prev ${ordinalToArray(this.ordinal)} ${ordinalToArray(child.ordinal)} ${(index > 0) ? ordinalToArray(this.children[index - 1].ordinal) : "NA"}`);
|
|
187
191
|
}
|
|
188
192
|
common_utils_1.assert(child.ordinal.length === (this.ordinal.length + 1), 0x041 /* "Unexpected child ordinal length!" */);
|
|
189
193
|
if (index > 0) {
|
|
190
|
-
common_utils_1.assert(child.ordinal > this.children[index - 1].ordinal, 0x042
|
|
194
|
+
common_utils_1.assert(child.ordinal > this.children[index - 1].ordinal, 0x042);
|
|
195
|
+
// eslint-disable-next-line max-len
|
|
191
196
|
// console.log(`${ordinalToArray(this.ordinal)} ${ordinalToArray(child.ordinal)} ${ordinalToArray(this.children[index - 1].ordinal)}`);
|
|
192
197
|
// console.log(`ord width ${ordinalWidth}`);
|
|
193
198
|
}
|
|
@@ -202,7 +207,6 @@ class MergeBlock extends MergeNode {
|
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
209
|
exports.MergeBlock = MergeBlock;
|
|
205
|
-
MergeBlock.traceOrdinals = false;
|
|
206
210
|
class HierMergeBlock extends MergeBlock {
|
|
207
211
|
constructor(childCount) {
|
|
208
212
|
super(childCount);
|
|
@@ -239,7 +243,7 @@ function nodeTotalLength(mergeTree, node) {
|
|
|
239
243
|
}
|
|
240
244
|
class BaseSegment extends MergeNode {
|
|
241
245
|
constructor() {
|
|
242
|
-
super();
|
|
246
|
+
super(...arguments);
|
|
243
247
|
this.clientId = constants_1.LocalClientId;
|
|
244
248
|
this.seq = constants_1.UniversalSequenceNumber;
|
|
245
249
|
this.segmentGroups = new segmentGroupCollection_1.SegmentGroupCollection(this);
|
|
@@ -291,7 +295,8 @@ class BaseSegment extends MergeNode {
|
|
|
291
295
|
this.localSeq = undefined;
|
|
292
296
|
return true;
|
|
293
297
|
case 1 /* REMOVE */:
|
|
294
|
-
|
|
298
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
299
|
+
const removalInfo = this;
|
|
295
300
|
common_utils_1.assert(!!removalInfo, 0x046 /* "On remove ack, missing removal info!" */);
|
|
296
301
|
common_utils_1.assert(!!removalInfo.removedSeq, 0x047 /* "On remove ack, missing removed sequence number!" */);
|
|
297
302
|
this.localRemovedSeq = undefined;
|
|
@@ -351,11 +356,11 @@ exports.reservedTileLabelsKey = "referenceTileLabels";
|
|
|
351
356
|
exports.reservedRangeLabelsKey = "referenceRangeLabels";
|
|
352
357
|
exports.reservedMarkerIdKey = "markerId";
|
|
353
358
|
exports.reservedMarkerSimpleTypeKey = "markerSimpleType";
|
|
354
|
-
const refGetTileLabels = (refPos) => (refPos.refType & ops_1.ReferenceType.Tile)
|
|
355
|
-
refPos.properties ? refPos.properties[exports.reservedTileLabelsKey] : undefined;
|
|
359
|
+
const refGetTileLabels = (refPos) => (refPos.refType & ops_1.ReferenceType.Tile)
|
|
360
|
+
&& refPos.properties ? refPos.properties[exports.reservedTileLabelsKey] : undefined;
|
|
356
361
|
exports.refGetTileLabels = refGetTileLabels;
|
|
357
|
-
const refGetRangeLabels = (refPos) => (refPos.refType & (ops_1.ReferenceType.NestBegin | ops_1.ReferenceType.NestEnd))
|
|
358
|
-
refPos.properties ? refPos.properties[exports.reservedRangeLabelsKey] : undefined;
|
|
362
|
+
const refGetRangeLabels = (refPos) => (refPos.refType & (ops_1.ReferenceType.NestBegin | ops_1.ReferenceType.NestEnd))
|
|
363
|
+
&& refPos.properties ? refPos.properties[exports.reservedRangeLabelsKey] : undefined;
|
|
359
364
|
exports.refGetRangeLabels = refGetRangeLabels;
|
|
360
365
|
function refHasTileLabel(refPos, label) {
|
|
361
366
|
const tileLabels = refPos.getTileLabels();
|
|
@@ -689,11 +694,12 @@ class MergeTree {
|
|
|
689
694
|
this.packTime = 0;
|
|
690
695
|
this.ordTime = 0;
|
|
691
696
|
this.maxOrdTime = 0;
|
|
697
|
+
this.blockUpdateActions = MergeTree.initBlockUpdateActions;
|
|
692
698
|
this.collabWindow = new CollaborationWindow();
|
|
693
|
-
// TODO:
|
|
699
|
+
// TODO: add remove on segment remove
|
|
694
700
|
// for now assume only markers have ids and so point directly at the Segment
|
|
695
701
|
// if we need to have pointers to non-markers, we can change to point at local refs
|
|
696
|
-
this.idToSegment =
|
|
702
|
+
this.idToSegment = new Map();
|
|
697
703
|
this.splitLeafSegment = (segment, pos) => {
|
|
698
704
|
if (!(pos > 0 && segment)) {
|
|
699
705
|
return {};
|
|
@@ -707,7 +713,6 @@ class MergeTree {
|
|
|
707
713
|
}
|
|
708
714
|
return { next };
|
|
709
715
|
};
|
|
710
|
-
this.blockUpdateActions = MergeTree.initBlockUpdateActions;
|
|
711
716
|
this.root = this.makeBlock(0);
|
|
712
717
|
}
|
|
713
718
|
makeBlock(childCount) {
|
|
@@ -750,7 +755,7 @@ class MergeTree {
|
|
|
750
755
|
return b;
|
|
751
756
|
}
|
|
752
757
|
localNetLength(segment) {
|
|
753
|
-
const removalInfo =
|
|
758
|
+
const removalInfo = segment;
|
|
754
759
|
if (removalInfo.removedSeq !== undefined) {
|
|
755
760
|
return 0;
|
|
756
761
|
}
|
|
@@ -760,13 +765,14 @@ class MergeTree {
|
|
|
760
765
|
}
|
|
761
766
|
// TODO: remove id when segment removed
|
|
762
767
|
mapIdToSegment(id, segment) {
|
|
763
|
-
this.idToSegment
|
|
768
|
+
this.idToSegment.set(id, segment);
|
|
764
769
|
}
|
|
765
770
|
addNode(block, node) {
|
|
766
771
|
const index = block.childCount++;
|
|
767
772
|
block.assignChild(node, index, false);
|
|
768
773
|
return index;
|
|
769
774
|
}
|
|
775
|
+
/* eslint-disable max-len */
|
|
770
776
|
reloadFromSegments(segments) {
|
|
771
777
|
// This code assumes that a later call to `startCollaboration()` will initialize partial lengths.
|
|
772
778
|
common_utils_1.assert(!this.collabWindow.collaborating, 0x049 /* "Trying to reload from segments while collaborating!" */);
|
|
@@ -815,6 +821,7 @@ class MergeTree {
|
|
|
815
821
|
console.log(`reload time ${elapsedMicroseconds(clockStart)}`);
|
|
816
822
|
}
|
|
817
823
|
}
|
|
824
|
+
/* eslint-enable max-len */
|
|
818
825
|
// For now assume min starts at zero
|
|
819
826
|
startCollaboration(localClientId, minSeq, currentSeq) {
|
|
820
827
|
this.collabWindow.clientId = localClientId;
|
|
@@ -862,10 +869,10 @@ class MergeTree {
|
|
|
862
869
|
}
|
|
863
870
|
else {
|
|
864
871
|
if (MergeTree.traceZRemove) {
|
|
865
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
872
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation, max-len
|
|
866
873
|
console.log(`${this.getLongClientId(this.collabWindow.clientId)}: Zremove ${segment["text"]}; cli ${this.getLongClientId(segment.clientId)}`);
|
|
867
874
|
}
|
|
868
|
-
// Notify maintenance event observers that the segment is being unlinked from the MergeTree
|
|
875
|
+
// Notify maintenance event observers that the segment is being unlinked from the MergeTree
|
|
869
876
|
if (this.mergeTreeMaintenanceCallback) {
|
|
870
877
|
this.mergeTreeMaintenanceCallback({
|
|
871
878
|
operation: -3 /* UNLINK */,
|
|
@@ -885,7 +892,7 @@ class MergeTree {
|
|
|
885
892
|
&& this.localNetLength(segment) > 0;
|
|
886
893
|
if (canAppend) {
|
|
887
894
|
if (MergeTree.traceAppend) {
|
|
888
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
895
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation, max-len
|
|
889
896
|
console.log(`${this.getLongClientId(this.collabWindow.clientId)}: append ${prevSegment["text"]} + ${segment["text"]}; cli ${this.getLongClientId(prevSegment.clientId)} + cli ${this.getLongClientId(segment.clientId)}`);
|
|
890
897
|
}
|
|
891
898
|
prevSegment.append(segment);
|
|
@@ -1036,7 +1043,14 @@ class MergeTree {
|
|
|
1036
1043
|
}
|
|
1037
1044
|
getStats() {
|
|
1038
1045
|
const nodeGetStats = (block) => {
|
|
1039
|
-
const stats = {
|
|
1046
|
+
const stats = {
|
|
1047
|
+
maxHeight: 0,
|
|
1048
|
+
nodeCount: 0,
|
|
1049
|
+
leafCount: 0,
|
|
1050
|
+
removedLeafCount: 0,
|
|
1051
|
+
liveCount: 0,
|
|
1052
|
+
histo: [],
|
|
1053
|
+
};
|
|
1040
1054
|
for (let k = 0; k < exports.MaxNodesInBlock; k++) {
|
|
1041
1055
|
stats.histo[k] = 0;
|
|
1042
1056
|
}
|
|
@@ -1147,21 +1161,6 @@ class MergeTree {
|
|
|
1147
1161
|
}
|
|
1148
1162
|
return totalOffset;
|
|
1149
1163
|
}
|
|
1150
|
-
cloneSegments(refSeq, clientId, start = 0, end) {
|
|
1151
|
-
let _end = end;
|
|
1152
|
-
const gatherSegment = (segment, pos, refSeq, clientId, start, end, accumSegments) => {
|
|
1153
|
-
accumSegments.segments.push(segment.clone());
|
|
1154
|
-
return true;
|
|
1155
|
-
};
|
|
1156
|
-
if (_end === undefined) {
|
|
1157
|
-
_end = this.blockLength(this.root, refSeq, clientId);
|
|
1158
|
-
}
|
|
1159
|
-
const accum = {
|
|
1160
|
-
segments: [],
|
|
1161
|
-
};
|
|
1162
|
-
this.mapRange({ leaf: gatherSegment }, refSeq, clientId, accum, start, _end);
|
|
1163
|
-
return accum.segments;
|
|
1164
|
-
}
|
|
1165
1164
|
getContainingSegment(pos, refSeq, clientId) {
|
|
1166
1165
|
let segment;
|
|
1167
1166
|
let offset;
|
|
@@ -1181,9 +1180,6 @@ class MergeTree {
|
|
|
1181
1180
|
return node.cachedLength;
|
|
1182
1181
|
}
|
|
1183
1182
|
}
|
|
1184
|
-
getRemovalInfo(segment) {
|
|
1185
|
-
return segment;
|
|
1186
|
-
}
|
|
1187
1183
|
nodeLength(node, refSeq, clientId) {
|
|
1188
1184
|
if ((!this.collabWindow.collaborating) || (this.collabWindow.clientId === clientId)) {
|
|
1189
1185
|
// Local client sees all segments, even when collaborating
|
|
@@ -1201,7 +1197,7 @@ class MergeTree {
|
|
|
1201
1197
|
}
|
|
1202
1198
|
else {
|
|
1203
1199
|
const segment = node;
|
|
1204
|
-
const removalInfo =
|
|
1200
|
+
const removalInfo = segment;
|
|
1205
1201
|
if (removalInfo.removedSeq !== undefined
|
|
1206
1202
|
&& removalInfo.removedSeq !== constants_1.UnassignedSequenceNumber
|
|
1207
1203
|
&& removalInfo.removedSeq <= refSeq) {
|
|
@@ -1214,8 +1210,9 @@ class MergeTree {
|
|
|
1214
1210
|
((segment.seq !== constants_1.UnassignedSequenceNumber) && (segment.seq <= refSeq)))) {
|
|
1215
1211
|
// Segment happened by reference sequence number or segment from requesting client
|
|
1216
1212
|
if (removalInfo.removedSeq !== undefined) {
|
|
1217
|
-
if (
|
|
1218
|
-
|
|
1213
|
+
if (removalInfo.removedClientId === clientId
|
|
1214
|
+
|| (removalInfo.removedClientOverlap
|
|
1215
|
+
&& removalInfo.removedClientOverlap.includes(clientId))) {
|
|
1219
1216
|
return 0;
|
|
1220
1217
|
}
|
|
1221
1218
|
else {
|
|
@@ -1256,7 +1253,7 @@ class MergeTree {
|
|
|
1256
1253
|
}
|
|
1257
1254
|
}
|
|
1258
1255
|
setMinSeq(minSeq) {
|
|
1259
|
-
common_utils_1.assert(minSeq <= this.collabWindow.currentSeq, 0x04e
|
|
1256
|
+
common_utils_1.assert(minSeq <= this.collabWindow.currentSeq, 0x04e);
|
|
1260
1257
|
// Only move forward
|
|
1261
1258
|
common_utils_1.assert(this.collabWindow.minSeq <= minSeq, 0x04f /* "minSeq of collab window > target minSeq!" */);
|
|
1262
1259
|
if (minSeq > this.collabWindow.minSeq) {
|
|
@@ -1325,7 +1322,8 @@ class MergeTree {
|
|
|
1325
1322
|
for (let childIndex = 0; childIndex < block.childCount; childIndex++) {
|
|
1326
1323
|
const child = children[childIndex];
|
|
1327
1324
|
const len = (_a = this.nodeLength(child, refSeq, clientId)) !== null && _a !== void 0 ? _a : 0;
|
|
1328
|
-
if ((
|
|
1325
|
+
if ((!contains && _pos < len)
|
|
1326
|
+
|| (contains && contains(child, _pos, refSeq, clientId, undefined, undefined, clientData))) {
|
|
1329
1327
|
// Found entry containing pos
|
|
1330
1328
|
if (!child.isLeaf()) {
|
|
1331
1329
|
return this.searchBlock(child, _pos, _segpos, refSeq, clientId, actions, clientData);
|
|
@@ -1456,7 +1454,7 @@ class MergeTree {
|
|
|
1456
1454
|
}
|
|
1457
1455
|
// TODO: error checking
|
|
1458
1456
|
getMarkerFromId(id) {
|
|
1459
|
-
return this.idToSegment
|
|
1457
|
+
return this.idToSegment.get(id);
|
|
1460
1458
|
}
|
|
1461
1459
|
/**
|
|
1462
1460
|
* Given a position specified relative to a marker id, lookup the marker
|
|
@@ -1648,6 +1646,7 @@ class MergeTree {
|
|
|
1648
1646
|
const checkSegmentIsLocal = (segment, pos, refSeq, clientId) => {
|
|
1649
1647
|
if (segment.seq === constants_1.UnassignedSequenceNumber) {
|
|
1650
1648
|
if (MergeTree.diagInsertTie) {
|
|
1649
|
+
// eslint-disable-next-line max-len
|
|
1651
1650
|
console.log(`@cli ${glc(this, this.collabWindow.clientId)}: promoting continue due to seq ${segment.seq} text ${segment.toString()} ref ${refSeq}`);
|
|
1652
1651
|
}
|
|
1653
1652
|
segIsLocal = true;
|
|
@@ -1659,6 +1658,7 @@ class MergeTree {
|
|
|
1659
1658
|
segIsLocal = false;
|
|
1660
1659
|
this.rightExcursion(node, checkSegmentIsLocal);
|
|
1661
1660
|
if (MergeTree.diagInsertTie && segIsLocal) {
|
|
1661
|
+
// eslint-disable-next-line max-len
|
|
1662
1662
|
console.log(`@cli ${glc(this, this.collabWindow.clientId)}: attempting continue with seq ${seq} ref ${refSeq} `);
|
|
1663
1663
|
}
|
|
1664
1664
|
return segIsLocal;
|
|
@@ -1857,6 +1857,7 @@ class MergeTree {
|
|
|
1857
1857
|
}
|
|
1858
1858
|
else if (splitNode === MergeTree.theUnfinishedNode) {
|
|
1859
1859
|
if (MergeTree.traceTraversal) {
|
|
1860
|
+
// eslint-disable-next-line max-len
|
|
1860
1861
|
console.log(`@cli ${glc(this, this.collabWindow.clientId)} unfinished bus pos ${_pos} len ${len}`);
|
|
1861
1862
|
}
|
|
1862
1863
|
_pos -= len; // Act as if shifted segment
|
|
@@ -1901,6 +1902,7 @@ class MergeTree {
|
|
|
1901
1902
|
}
|
|
1902
1903
|
if (MergeTree.traceTraversal) {
|
|
1903
1904
|
if ((!found) && (_pos > 0)) {
|
|
1905
|
+
// eslint-disable-next-line max-len
|
|
1904
1906
|
console.log(`inserting walk fell through pos ${_pos} len: ${this.blockLength(this.root, refSeq, clientId)}`);
|
|
1905
1907
|
}
|
|
1906
1908
|
}
|
|
@@ -1981,6 +1983,7 @@ class MergeTree {
|
|
|
1981
1983
|
if (i > 0) {
|
|
1982
1984
|
if (child.ordinal <= block.children[i - 1].ordinal) {
|
|
1983
1985
|
console.log("node sib integrity issue");
|
|
1986
|
+
// eslint-disable-next-line max-len
|
|
1984
1987
|
console.log(`??: prnt chld prev ${ordinalToArray(block.ordinal)} ${ordinalToArray(child.ordinal)} ${(i > 0) ? ordinalToArray(block.children[i - 1].ordinal) : "NA"}`);
|
|
1985
1988
|
}
|
|
1986
1989
|
}
|
|
@@ -2081,9 +2084,10 @@ class MergeTree {
|
|
|
2081
2084
|
const savedLocalRefs = [];
|
|
2082
2085
|
const localSeq = seq === constants_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
|
|
2083
2086
|
const markRemoved = (segment, pos, start, end) => {
|
|
2084
|
-
const removalInfo =
|
|
2087
|
+
const removalInfo = segment;
|
|
2085
2088
|
if (removalInfo.removedSeq !== undefined) {
|
|
2086
2089
|
if (MergeTree.diagOverlappingRemove) {
|
|
2090
|
+
// eslint-disable-next-line max-len
|
|
2087
2091
|
console.log(`yump @seq ${seq} cli ${glc(this, this.collabWindow.clientId)}: overlaps deleted segment ${removalInfo.removedSeq} text '${segment.toString()}'`);
|
|
2088
2092
|
}
|
|
2089
2093
|
_overwrite = true;
|
|
@@ -2111,8 +2115,8 @@ class MergeTree {
|
|
|
2111
2115
|
// Save segment so can assign removed sequence number when acked by server
|
|
2112
2116
|
if (this.collabWindow.collaborating) {
|
|
2113
2117
|
// Use removal information
|
|
2114
|
-
const removalInfo =
|
|
2115
|
-
if (
|
|
2118
|
+
const removalInfo = segment;
|
|
2119
|
+
if (removalInfo.removedSeq === constants_1.UnassignedSequenceNumber && clientId === this.collabWindow.clientId) {
|
|
2116
2120
|
segmentGroup = this.addToPendingList(segment, segmentGroup, localSeq);
|
|
2117
2121
|
}
|
|
2118
2122
|
else {
|
|
@@ -2240,8 +2244,12 @@ class MergeTree {
|
|
|
2240
2244
|
}
|
|
2241
2245
|
blockUpdateLength(node, seq, clientId) {
|
|
2242
2246
|
this.blockUpdate(node);
|
|
2243
|
-
if (this.collabWindow.collaborating
|
|
2244
|
-
|
|
2247
|
+
if (this.collabWindow.collaborating
|
|
2248
|
+
&& seq !== constants_1.UnassignedSequenceNumber
|
|
2249
|
+
&& seq !== constants_1.TreeMaintenanceSequenceNumber) {
|
|
2250
|
+
if (node.partialLengths !== undefined
|
|
2251
|
+
&& MergeTree.options.incrementalUpdate
|
|
2252
|
+
&& clientId !== constants_1.NonCollabClient) {
|
|
2245
2253
|
node.partialLengths.update(this, node, seq, clientId, this.collabWindow);
|
|
2246
2254
|
}
|
|
2247
2255
|
else {
|
|
@@ -2267,6 +2275,7 @@ class MergeTree {
|
|
|
2267
2275
|
nodeToString(block, strbuf, indentCount = 0) {
|
|
2268
2276
|
let _strbuf = strbuf;
|
|
2269
2277
|
_strbuf += internedSpaces(indentCount);
|
|
2278
|
+
// eslint-disable-next-line max-len
|
|
2270
2279
|
_strbuf += `Node (len ${block.cachedLength}) p len (${block.parent ? block.parent.cachedLength : 0}) ord ${ordinalToArray(block.ordinal)} with ${block.childCount} segs:\n`;
|
|
2271
2280
|
if (MergeTree.blockUpdateMarkers) {
|
|
2272
2281
|
_strbuf += internedSpaces(indentCount);
|
|
@@ -2285,8 +2294,9 @@ class MergeTree {
|
|
|
2285
2294
|
else {
|
|
2286
2295
|
const segment = child;
|
|
2287
2296
|
_strbuf += internedSpaces(indentCount + 4);
|
|
2297
|
+
// eslint-disable-next-line max-len
|
|
2288
2298
|
_strbuf += `cli: ${glc(this, segment.clientId)} seq: ${segment.seq} ord: ${ordinalToArray(segment.ordinal)}`;
|
|
2289
|
-
const removalInfo =
|
|
2299
|
+
const removalInfo = segment;
|
|
2290
2300
|
if (removalInfo.removedSeq !== undefined) {
|
|
2291
2301
|
_strbuf += ` rcli: ${glc(this, removalInfo.removedClientId)} rseq: ${removalInfo.removedSeq}`;
|
|
2292
2302
|
}
|
|
@@ -2325,7 +2335,7 @@ class MergeTree {
|
|
|
2325
2335
|
const len = (_a = this.nodeLength(child, state.refSeq, state.clientId)) !== null && _a !== void 0 ? _a : 0;
|
|
2326
2336
|
if (MergeTree.traceIncrTraversal) {
|
|
2327
2337
|
if (child.isLeaf()) {
|
|
2328
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
2338
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation, max-len
|
|
2329
2339
|
console.log(`considering (r ${state.refSeq} c ${glc(this, state.clientId)}) seg with text ${child["text"]} len ${len} seq ${child.seq} rseq ${child.removedSeq} cli ${glc(this, child.clientId)}`);
|
|
2330
2340
|
}
|
|
2331
2341
|
}
|
|
@@ -2392,6 +2402,7 @@ class MergeTree {
|
|
|
2392
2402
|
segInfo += ` rcli: ${glc(this, segment.removedClientId)} rseq: ${segment.removedSeq}`;
|
|
2393
2403
|
}
|
|
2394
2404
|
}
|
|
2405
|
+
// eslint-disable-next-line max-len
|
|
2395
2406
|
console.log(`@tcli ${glc(this, this.collabWindow.clientId)}: map len: ${len} start: ${_start} end: ${_end} ${segInfo}`);
|
|
2396
2407
|
}
|
|
2397
2408
|
if (go && (_end > 0) && (len > 0) && (_start < len)) {
|
|
@@ -2463,15 +2474,6 @@ class MergeTree {
|
|
|
2463
2474
|
}
|
|
2464
2475
|
}
|
|
2465
2476
|
exports.MergeTree = MergeTree;
|
|
2466
|
-
// Maximum length of text segment to be considered to be merged with other segment.
|
|
2467
|
-
// Maximum segment length is at least 2x of it (not taking into account initial segment creation).
|
|
2468
|
-
// The bigger it is, the more expensive it is to break segment into sub-segments (on edits)
|
|
2469
|
-
// The smaller it is, the more segments we have in snapshots (and in memory) - it's more expensive to load snapshots.
|
|
2470
|
-
// Small number also makes ReplayTool produce false positives ("same" snapshots have slightly different binary representations).
|
|
2471
|
-
// More measurements needs to be done, but it's very likely the right spot is somewhere between 1K-2K mark.
|
|
2472
|
-
// That said, we also break segments on newline and there are very few segments that are longer than 256 because of it.
|
|
2473
|
-
// must be an even number
|
|
2474
|
-
MergeTree.TextSegmentGranularity = 256;
|
|
2475
2477
|
MergeTree.zamboniSegmentsMaxCount = 2;
|
|
2476
2478
|
MergeTree.options = {
|
|
2477
2479
|
incrementalUpdate: true,
|
|
@@ -2485,7 +2487,6 @@ MergeTree.traceZRemove = false;
|
|
|
2485
2487
|
MergeTree.traceOrdinals = false;
|
|
2486
2488
|
MergeTree.traceGatherText = false;
|
|
2487
2489
|
MergeTree.diagInsertTie = false;
|
|
2488
|
-
MergeTree.skipLeftShift = true;
|
|
2489
2490
|
MergeTree.diagOverlappingRemove = false;
|
|
2490
2491
|
MergeTree.traceTraversal = false;
|
|
2491
2492
|
MergeTree.traceIncrTraversal = false;
|