@fluidframework/sequence 2.0.0-dev.2.3.0.115467 → 2.0.0-dev.4.1.0.148229
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/.eslintrc.js +9 -12
- package/.mocharc.js +2 -2
- package/.vscode/launch.json +15 -14
- package/README.md +204 -177
- package/api-extractor.json +2 -2
- package/dist/defaultMap.d.ts.map +1 -1
- package/dist/defaultMap.js +5 -4
- package/dist/defaultMap.js.map +1 -1
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +15 -3
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +150 -79
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalTree.d.ts.map +1 -1
- package/dist/intervalTree.js.map +1 -1
- package/dist/localValues.d.ts.map +1 -1
- package/dist/localValues.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/sequence.d.ts +1 -1
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +16 -42
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceDeltaEvent.d.ts.map +1 -1
- package/dist/sequenceDeltaEvent.js.map +1 -1
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/sequenceFactory.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedSequence.js +3 -3
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js +5 -4
- package/dist/sharedString.js.map +1 -1
- package/lib/defaultMap.d.ts.map +1 -1
- package/lib/defaultMap.js +6 -5
- package/lib/defaultMap.js.map +1 -1
- package/lib/defaultMapInterfaces.d.ts.map +1 -1
- package/lib/defaultMapInterfaces.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +15 -3
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +150 -79
- package/lib/intervalCollection.js.map +1 -1
- package/lib/intervalTree.d.ts.map +1 -1
- package/lib/intervalTree.js.map +1 -1
- package/lib/localValues.d.ts.map +1 -1
- package/lib/localValues.js +1 -1
- package/lib/localValues.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/sequence.d.ts +1 -1
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +17 -43
- package/lib/sequence.js.map +1 -1
- package/lib/sequenceDeltaEvent.d.ts.map +1 -1
- package/lib/sequenceDeltaEvent.js.map +1 -1
- package/lib/sequenceFactory.d.ts.map +1 -1
- package/lib/sequenceFactory.js +1 -1
- package/lib/sequenceFactory.js.map +1 -1
- package/lib/sharedIntervalCollection.d.ts.map +1 -1
- package/lib/sharedIntervalCollection.js.map +1 -1
- package/lib/sharedSequence.d.ts.map +1 -1
- package/lib/sharedSequence.js +4 -4
- package/lib/sharedSequence.js.map +1 -1
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js +5 -4
- package/lib/sharedString.js.map +1 -1
- package/package.json +79 -67
- package/prettier.config.cjs +1 -1
- package/src/defaultMap.ts +406 -405
- package/src/defaultMapInterfaces.ts +120 -115
- package/src/index.ts +27 -17
- package/src/intervalCollection.ts +2206 -1932
- package/src/intervalTree.ts +139 -139
- package/src/localValues.ts +64 -73
- package/src/packageVersion.ts +1 -1
- package/src/sequence.ts +738 -710
- package/src/sequenceDeltaEvent.ts +143 -137
- package/src/sequenceFactory.ts +48 -46
- package/src/sharedIntervalCollection.ts +150 -136
- package/src/sharedSequence.ts +165 -160
- package/src/sharedString.ts +385 -343
- package/tsconfig.esnext.json +6 -6
- package/tsconfig.json +8 -12
- package/.editorconfig +0 -7
|
@@ -6,7 +6,7 @@ import { TypedEventEmitter } from "@fluidframework/common-utils";
|
|
|
6
6
|
import { IEvent } from "@fluidframework/common-definitions";
|
|
7
7
|
import { Client, ICombiningOp, PropertiesManager, PropertySet, LocalReferencePosition } from "@fluidframework/merge-tree";
|
|
8
8
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
9
|
-
import { IValueFactory, IValueOpEmitter, IValueOperation, IValueType } from "./defaultMapInterfaces";
|
|
9
|
+
import { IMapMessageLocalMetadata, IValueFactory, IValueOpEmitter, IValueOperation, IValueType } from "./defaultMapInterfaces";
|
|
10
10
|
import { IInterval, IntervalConflictResolver } from "./intervalTree";
|
|
11
11
|
export declare enum IntervalType {
|
|
12
12
|
Simple = 0,
|
|
@@ -117,6 +117,7 @@ export declare class Interval implements ISerializableInterval {
|
|
|
117
117
|
auxProps: PropertySet[] | undefined;
|
|
118
118
|
/**
|
|
119
119
|
* {@inheritDoc ISerializableInterval.propertyManager}
|
|
120
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
120
121
|
*/
|
|
121
122
|
propertyManager: PropertiesManager;
|
|
122
123
|
constructor(start: number, end: number, props?: PropertySet);
|
|
@@ -164,15 +165,18 @@ export declare class Interval implements ISerializableInterval {
|
|
|
164
165
|
overlaps(b: Interval): boolean;
|
|
165
166
|
/**
|
|
166
167
|
* {@inheritDoc IInterval.union}
|
|
168
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
167
169
|
*/
|
|
168
170
|
union(b: Interval): Interval;
|
|
169
171
|
getProperties(): PropertySet;
|
|
170
172
|
/**
|
|
171
173
|
* {@inheritDoc ISerializableInterval.addProperties}
|
|
174
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
172
175
|
*/
|
|
173
176
|
addProperties(newProps: PropertySet, collaborating?: boolean, seq?: number, op?: ICombiningOp): PropertySet | undefined;
|
|
174
177
|
/**
|
|
175
178
|
* {@inheritDoc IInterval.modify}
|
|
179
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
176
180
|
*/
|
|
177
181
|
modify(label: string, start: number, end: number, op?: ISequencedDocumentMessage): Interval | undefined;
|
|
178
182
|
private initializeProperties;
|
|
@@ -201,6 +205,7 @@ export declare class SequenceInterval implements ISerializableInterval {
|
|
|
201
205
|
properties: PropertySet;
|
|
202
206
|
/**
|
|
203
207
|
* {@inheritDoc ISerializableInterval.propertyManager}
|
|
208
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
204
209
|
*/
|
|
205
210
|
propertyManager: PropertiesManager;
|
|
206
211
|
constructor(client: Client,
|
|
@@ -256,10 +261,12 @@ export declare class SequenceInterval implements ISerializableInterval {
|
|
|
256
261
|
getIntervalId(): string | undefined;
|
|
257
262
|
/**
|
|
258
263
|
* {@inheritDoc IInterval.union}
|
|
264
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
259
265
|
*/
|
|
260
266
|
union(b: SequenceInterval): SequenceInterval;
|
|
261
267
|
/**
|
|
262
268
|
* {@inheritDoc ISerializableInterval.addProperties}
|
|
269
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
263
270
|
*/
|
|
264
271
|
addProperties(newProps: PropertySet, collab?: boolean, seq?: number, op?: ICombiningOp): PropertySet | undefined;
|
|
265
272
|
/**
|
|
@@ -269,6 +276,7 @@ export declare class SequenceInterval implements ISerializableInterval {
|
|
|
269
276
|
overlapsPos(bstart: number, bend: number): boolean;
|
|
270
277
|
/**
|
|
271
278
|
* {@inheritDoc IInterval.modify}
|
|
279
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
272
280
|
*/
|
|
273
281
|
modify(label: string, start: number, end: number, op?: ISequencedDocumentMessage, localSeq?: number): SequenceInterval;
|
|
274
282
|
private initializeProperties;
|
|
@@ -399,11 +407,15 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
399
407
|
private localCollection;
|
|
400
408
|
private onDeserialize;
|
|
401
409
|
private client;
|
|
410
|
+
private readonly localSeqToSerializedInterval;
|
|
411
|
+
private readonly localSeqToRebasedInterval;
|
|
402
412
|
private readonly pendingChangesStart;
|
|
403
413
|
private readonly pendingChangesEnd;
|
|
404
414
|
get attached(): boolean;
|
|
405
415
|
/** @internal */
|
|
406
416
|
constructor(helpers: IIntervalHelpers<TInterval>, requiresClient: boolean, emitter: IValueOpEmitter, serializedIntervals: ISerializedInterval[] | ISerializedIntervalCollectionV2);
|
|
417
|
+
private rebasePositionWithSegmentSlide;
|
|
418
|
+
private computeRebasedPositions;
|
|
407
419
|
/** @internal */
|
|
408
420
|
attachGraph(client: Client, label: string): void;
|
|
409
421
|
/**
|
|
@@ -454,7 +466,7 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
454
466
|
private hasPendingChangeStart;
|
|
455
467
|
private hasPendingChangeEnd;
|
|
456
468
|
/** @internal */
|
|
457
|
-
ackChange(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
469
|
+
ackChange(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IMapMessageLocalMetadata | undefined): void;
|
|
458
470
|
addConflictResolver(conflictResolver: IntervalConflictResolver<TInterval>): void;
|
|
459
471
|
attachDeserializer(onDeserialize: DeserializeCallback): void;
|
|
460
472
|
/**
|
|
@@ -469,7 +481,7 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
469
481
|
private setSlideOnRemove;
|
|
470
482
|
private ackInterval;
|
|
471
483
|
/** @internal */
|
|
472
|
-
ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): TInterval | undefined;
|
|
484
|
+
ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IMapMessageLocalMetadata | undefined): TInterval | undefined;
|
|
473
485
|
/** @internal */
|
|
474
486
|
ackDelete(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
475
487
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intervalCollection.d.ts","sourceRoot":"","sources":["../src/intervalCollection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intervalCollection.d.ts","sourceRoot":"","sources":["../src/intervalCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -174,12 +174,12 @@ export class Interval {
|
|
|
174
174
|
* {@inheritDoc IInterval.overlaps}
|
|
175
175
|
*/
|
|
176
176
|
overlaps(b) {
|
|
177
|
-
const result =
|
|
178
|
-
(this.end >= b.start);
|
|
177
|
+
const result = this.start <= b.end && this.end >= b.start;
|
|
179
178
|
return result;
|
|
180
179
|
}
|
|
181
180
|
/**
|
|
182
181
|
* {@inheritDoc IInterval.union}
|
|
182
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
183
183
|
*/
|
|
184
184
|
union(b) {
|
|
185
185
|
return new Interval(Math.min(this.start, b.start), Math.max(this.end, b.end), this.properties);
|
|
@@ -189,6 +189,7 @@ export class Interval {
|
|
|
189
189
|
}
|
|
190
190
|
/**
|
|
191
191
|
* {@inheritDoc ISerializableInterval.addProperties}
|
|
192
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
192
193
|
*/
|
|
193
194
|
addProperties(newProps, collaborating = false, seq, op) {
|
|
194
195
|
if (newProps) {
|
|
@@ -198,6 +199,7 @@ export class Interval {
|
|
|
198
199
|
}
|
|
199
200
|
/**
|
|
200
201
|
* {@inheritDoc IInterval.modify}
|
|
202
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
201
203
|
*/
|
|
202
204
|
modify(label, start, end, op) {
|
|
203
205
|
const startPos = start !== null && start !== void 0 ? start : this.start;
|
|
@@ -261,8 +263,8 @@ export class SequenceInterval {
|
|
|
261
263
|
beforePositionChange,
|
|
262
264
|
afterPositionChange,
|
|
263
265
|
};
|
|
264
|
-
const startCbs = (_a = (_c = this.start).callbacks) !== null && _a !== void 0 ? _a : (_c.callbacks = {});
|
|
265
|
-
const endCbs = (_b = (_d = this.end).callbacks) !== null && _b !== void 0 ? _b : (_d.callbacks = {});
|
|
266
|
+
const startCbs = ((_a = (_c = this.start).callbacks) !== null && _a !== void 0 ? _a : (_c.callbacks = {}));
|
|
267
|
+
const endCbs = ((_b = (_d = this.end).callbacks) !== null && _b !== void 0 ? _b : (_d.callbacks = {}));
|
|
266
268
|
startCbs.beforeSlide = endCbs.beforeSlide = beforePositionChange;
|
|
267
269
|
startCbs.afterSlide = endCbs.afterSlide = afterPositionChange;
|
|
268
270
|
}
|
|
@@ -344,8 +346,8 @@ export class SequenceInterval {
|
|
|
344
346
|
* {@inheritDoc IInterval.overlaps}
|
|
345
347
|
*/
|
|
346
348
|
overlaps(b) {
|
|
347
|
-
const result =
|
|
348
|
-
|
|
349
|
+
const result = compareReferencePositions(this.start, b.end) <= 0 &&
|
|
350
|
+
compareReferencePositions(this.end, b.start) >= 0;
|
|
349
351
|
return result;
|
|
350
352
|
}
|
|
351
353
|
/**
|
|
@@ -361,12 +363,14 @@ export class SequenceInterval {
|
|
|
361
363
|
}
|
|
362
364
|
/**
|
|
363
365
|
* {@inheritDoc IInterval.union}
|
|
366
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
364
367
|
*/
|
|
365
368
|
union(b) {
|
|
366
369
|
return new SequenceInterval(this.client, minReferencePosition(this.start, b.start), maxReferencePosition(this.end, b.end), this.intervalType);
|
|
367
370
|
}
|
|
368
371
|
/**
|
|
369
372
|
* {@inheritDoc ISerializableInterval.addProperties}
|
|
373
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
370
374
|
*/
|
|
371
375
|
addProperties(newProps, collab = false, seq, op) {
|
|
372
376
|
this.initializeProperties();
|
|
@@ -379,10 +383,11 @@ export class SequenceInterval {
|
|
|
379
383
|
overlapsPos(bstart, bend) {
|
|
380
384
|
const startPos = this.client.localReferencePositionToPosition(this.start);
|
|
381
385
|
const endPos = this.client.localReferencePositionToPosition(this.end);
|
|
382
|
-
return
|
|
386
|
+
return endPos > bstart && startPos < bend;
|
|
383
387
|
}
|
|
384
388
|
/**
|
|
385
389
|
* {@inheritDoc IInterval.modify}
|
|
390
|
+
* @deprecated - This API was never intended to be public and will be marked internal in a future release.
|
|
386
391
|
*/
|
|
387
392
|
modify(label, start, end, op, localSeq) {
|
|
388
393
|
const getRefType = (baseType) => {
|
|
@@ -423,13 +428,17 @@ export class SequenceInterval {
|
|
|
423
428
|
}
|
|
424
429
|
}
|
|
425
430
|
}
|
|
426
|
-
function createPositionReferenceFromSegoff(client, segoff, refType, op) {
|
|
431
|
+
function createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq) {
|
|
427
432
|
if (segoff.segment) {
|
|
428
433
|
const ref = client.createLocalReferencePosition(segoff.segment, segoff.offset, refType, undefined);
|
|
429
434
|
return ref;
|
|
430
435
|
}
|
|
431
|
-
|
|
432
|
-
|
|
436
|
+
// Creating references on detached segments is allowed for:
|
|
437
|
+
// - Transient segments
|
|
438
|
+
// - References coming from a remote client (location may have been concurrently removed)
|
|
439
|
+
// - References being rebased to a new sequence number
|
|
440
|
+
// (segment they originally referred to may have been removed with no suitable replacement)
|
|
441
|
+
if (!op && !localSeq && !refTypeIncludesFlag(refType, ReferenceType.Transient)) {
|
|
433
442
|
throw new UsageError("Non-transient references need segment");
|
|
434
443
|
}
|
|
435
444
|
return createDetachedLocalReferencePosition(refType);
|
|
@@ -438,14 +447,17 @@ function createPositionReference(client, pos, refType, op, fromSnapshot, localSe
|
|
|
438
447
|
let segoff;
|
|
439
448
|
if (op) {
|
|
440
449
|
assert((refType & ReferenceType.SlideOnRemove) !== 0, 0x2f5 /* op create references must be SlideOnRemove */);
|
|
441
|
-
segoff = client.getContainingSegment(pos,
|
|
450
|
+
segoff = client.getContainingSegment(pos, {
|
|
451
|
+
referenceSequenceNumber: op.referenceSequenceNumber,
|
|
452
|
+
clientId: op.clientId,
|
|
453
|
+
});
|
|
442
454
|
segoff = client.getSlideToSegment(segoff);
|
|
443
455
|
}
|
|
444
456
|
else {
|
|
445
457
|
assert((refType & ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot, 0x2f6 /* SlideOnRemove references must be op created */);
|
|
446
458
|
segoff = client.getContainingSegment(pos, undefined, localSeq);
|
|
447
459
|
}
|
|
448
|
-
return createPositionReferenceFromSegoff(client, segoff, refType, op);
|
|
460
|
+
return createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq);
|
|
449
461
|
}
|
|
450
462
|
export function createSequenceInterval(label, start, end, client, intervalType, op, fromSnapshot) {
|
|
451
463
|
let beginRefType = ReferenceType.RangeBegin;
|
|
@@ -514,14 +526,13 @@ export class LocalIntervalCollection {
|
|
|
514
526
|
}
|
|
515
527
|
addConflictResolver(conflictResolver) {
|
|
516
528
|
this.conflictResolver = conflictResolver;
|
|
517
|
-
this.endConflictResolver =
|
|
518
|
-
(key, currentKey)
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
key: ival,
|
|
523
|
-
};
|
|
529
|
+
this.endConflictResolver = (key, currentKey) => {
|
|
530
|
+
const ival = conflictResolver(key, currentKey);
|
|
531
|
+
return {
|
|
532
|
+
data: ival,
|
|
533
|
+
key: ival,
|
|
524
534
|
};
|
|
535
|
+
};
|
|
525
536
|
}
|
|
526
537
|
map(fn) {
|
|
527
538
|
this.intervalTree.map(fn);
|
|
@@ -601,11 +612,11 @@ export class LocalIntervalCollection {
|
|
|
601
612
|
else {
|
|
602
613
|
// Start and (possibly) end provided. Walk the subtrees that may contain
|
|
603
614
|
// this start position.
|
|
604
|
-
const compareFn = end === undefined
|
|
605
|
-
(node) => {
|
|
615
|
+
const compareFn = end === undefined
|
|
616
|
+
? (node) => {
|
|
606
617
|
return transientInterval.compareStart(node.key);
|
|
607
|
-
}
|
|
608
|
-
(node) => {
|
|
618
|
+
}
|
|
619
|
+
: (node) => {
|
|
609
620
|
return transientInterval.compare(node.key);
|
|
610
621
|
};
|
|
611
622
|
const continueLeftFn = (cmpResult) => cmpResult <= 0;
|
|
@@ -740,18 +751,25 @@ export class LocalIntervalCollection {
|
|
|
740
751
|
};
|
|
741
752
|
if (interval instanceof SequenceInterval) {
|
|
742
753
|
let previousInterval;
|
|
754
|
+
let pendingChanges = 0;
|
|
743
755
|
interval.addPositionChangeListeners(() => {
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
756
|
+
pendingChanges++;
|
|
757
|
+
// Note: both start and end can change and invoke beforeSlide on each endpoint before afterSlide.
|
|
758
|
+
if (!previousInterval) {
|
|
759
|
+
previousInterval = interval.clone();
|
|
760
|
+
previousInterval.start = cloneRef(previousInterval.start);
|
|
761
|
+
previousInterval.end = cloneRef(previousInterval.end);
|
|
762
|
+
this.removeIntervalFromIndex(interval);
|
|
763
|
+
}
|
|
749
764
|
}, () => {
|
|
750
765
|
var _a;
|
|
751
766
|
assert(previousInterval !== undefined, 0x3fa /* Invalid interleaving of before/after slide */);
|
|
752
|
-
|
|
753
|
-
(
|
|
754
|
-
|
|
767
|
+
pendingChanges--;
|
|
768
|
+
if (pendingChanges === 0) {
|
|
769
|
+
this.addIntervalToIndex(interval);
|
|
770
|
+
(_a = this.onPositionChange) === null || _a === void 0 ? void 0 : _a.call(this, interval, previousInterval);
|
|
771
|
+
previousInterval = undefined;
|
|
772
|
+
}
|
|
755
773
|
});
|
|
756
774
|
}
|
|
757
775
|
}
|
|
@@ -832,17 +850,18 @@ export function makeOpsMap() {
|
|
|
832
850
|
const rebasedOp = Object.assign(Object.assign({}, op), { value: rebasedValue });
|
|
833
851
|
return { rebasedOp, rebasedLocalOpMetadata: localOpMetadata };
|
|
834
852
|
};
|
|
835
|
-
return new Map([
|
|
853
|
+
return new Map([
|
|
854
|
+
[
|
|
836
855
|
"add",
|
|
837
856
|
{
|
|
838
|
-
process: (collection, params, local, op) => {
|
|
857
|
+
process: (collection, params, local, op, localOpMetadata) => {
|
|
839
858
|
// if params is undefined, the interval was deleted during
|
|
840
859
|
// rebasing
|
|
841
860
|
if (!params) {
|
|
842
861
|
return;
|
|
843
862
|
}
|
|
844
863
|
assert(op !== undefined, 0x3fb /* op should exist here */);
|
|
845
|
-
collection.ackAdd(params, local, op);
|
|
864
|
+
collection.ackAdd(params, local, op, localOpMetadata);
|
|
846
865
|
},
|
|
847
866
|
rebase,
|
|
848
867
|
},
|
|
@@ -863,18 +882,19 @@ export function makeOpsMap() {
|
|
|
863
882
|
[
|
|
864
883
|
"change",
|
|
865
884
|
{
|
|
866
|
-
process: (collection, params, local, op) => {
|
|
885
|
+
process: (collection, params, local, op, localOpMetadata) => {
|
|
867
886
|
// if params is undefined, the interval was deleted during
|
|
868
887
|
// rebasing
|
|
869
888
|
if (!params) {
|
|
870
889
|
return;
|
|
871
890
|
}
|
|
872
891
|
assert(op !== undefined, 0x3fd /* op should exist here */);
|
|
873
|
-
collection.ackChange(params, local, op);
|
|
892
|
+
collection.ackChange(params, local, op, localOpMetadata);
|
|
874
893
|
},
|
|
875
894
|
rebase,
|
|
876
895
|
},
|
|
877
|
-
]
|
|
896
|
+
],
|
|
897
|
+
]);
|
|
878
898
|
}
|
|
879
899
|
export class IntervalCollectionIterator {
|
|
880
900
|
constructor(collection, iteratesForward = true, start, end) {
|
|
@@ -909,6 +929,8 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
909
929
|
this.helpers = helpers;
|
|
910
930
|
this.requiresClient = requiresClient;
|
|
911
931
|
this.emitter = emitter;
|
|
932
|
+
this.localSeqToSerializedInterval = new Map();
|
|
933
|
+
this.localSeqToRebasedInterval = new Map();
|
|
912
934
|
this.pendingChangesStart = new Map();
|
|
913
935
|
this.pendingChangesEnd = new Map();
|
|
914
936
|
this.savedSerializedIntervals = Array.isArray(serializedIntervals)
|
|
@@ -918,16 +940,57 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
918
940
|
get attached() {
|
|
919
941
|
return !!this.localCollection;
|
|
920
942
|
}
|
|
943
|
+
rebasePositionWithSegmentSlide(pos, seqNumberFrom, localSeq) {
|
|
944
|
+
var _a;
|
|
945
|
+
if (!this.client) {
|
|
946
|
+
throw new LoggingError("mergeTree client must exist");
|
|
947
|
+
}
|
|
948
|
+
const { clientId } = this.client.getCollabWindow();
|
|
949
|
+
const { segment, offset } = this.client.getContainingSegment(pos, {
|
|
950
|
+
referenceSequenceNumber: seqNumberFrom,
|
|
951
|
+
clientId: this.client.getLongClientId(clientId),
|
|
952
|
+
}, localSeq);
|
|
953
|
+
// if segment is undefined, it slid off the string
|
|
954
|
+
assert(segment !== undefined, 0x54e /* No segment found */);
|
|
955
|
+
const segoff = (_a = this.client.getSlideToSegment({ segment, offset })) !== null && _a !== void 0 ? _a : segment;
|
|
956
|
+
// case happens when rebasing op, but concurrently entire string has been deleted
|
|
957
|
+
if (segoff.segment === undefined || segoff.offset === undefined) {
|
|
958
|
+
return DetachedReferencePosition;
|
|
959
|
+
}
|
|
960
|
+
assert(offset !== undefined && 0 <= offset && offset < segment.cachedLength, 0x54f /* Invalid offset */);
|
|
961
|
+
return this.client.findReconnectionPosition(segoff.segment, localSeq) + segoff.offset;
|
|
962
|
+
}
|
|
963
|
+
computeRebasedPositions(localSeq) {
|
|
964
|
+
assert(this.client !== undefined, 0x550 /* Client should be defined when computing rebased position */);
|
|
965
|
+
const original = this.localSeqToSerializedInterval.get(localSeq);
|
|
966
|
+
assert(original !== undefined, 0x551 /* Failed to store pending serialized interval info for this localSeq. */);
|
|
967
|
+
const rebased = Object.assign({}, original);
|
|
968
|
+
const { start, end, sequenceNumber } = original;
|
|
969
|
+
if (start !== undefined) {
|
|
970
|
+
rebased.start = this.rebasePositionWithSegmentSlide(start, sequenceNumber, localSeq);
|
|
971
|
+
}
|
|
972
|
+
if (end !== undefined) {
|
|
973
|
+
rebased.end = this.rebasePositionWithSegmentSlide(end, sequenceNumber, localSeq);
|
|
974
|
+
}
|
|
975
|
+
return rebased;
|
|
976
|
+
}
|
|
921
977
|
/** @internal */
|
|
922
978
|
attachGraph(client, label) {
|
|
923
979
|
if (this.attached) {
|
|
924
980
|
throw new LoggingError("Only supports one Sequence attach");
|
|
925
981
|
}
|
|
926
|
-
if (
|
|
982
|
+
if (client === undefined && this.requiresClient) {
|
|
927
983
|
throw new LoggingError("Client required for this collection");
|
|
928
984
|
}
|
|
929
985
|
// Instantiate the local interval collection based on the saved intervals
|
|
930
986
|
this.client = client;
|
|
987
|
+
if (client) {
|
|
988
|
+
client.on("normalize", () => {
|
|
989
|
+
for (const localSeq of this.localSeqToSerializedInterval.keys()) {
|
|
990
|
+
this.localSeqToRebasedInterval.set(localSeq, this.computeRebasedPositions(localSeq));
|
|
991
|
+
}
|
|
992
|
+
});
|
|
993
|
+
}
|
|
931
994
|
this.localCollection = new LocalIntervalCollection(client, label, this.helpers, (interval, previousInterval) => this.emitChange(interval, previousInterval, true));
|
|
932
995
|
if (this.savedSerializedIntervals) {
|
|
933
996
|
for (const serializedInterval of this.savedSerializedIntervals) {
|
|
@@ -1005,8 +1068,10 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1005
1068
|
sequenceNumber: (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.getCurrentSeq()) !== null && _b !== void 0 ? _b : 0,
|
|
1006
1069
|
start,
|
|
1007
1070
|
};
|
|
1071
|
+
const localSeq = this.getNextLocalSeq();
|
|
1072
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1008
1073
|
// Local ops get submitted to the server. Remote ops have the deserializer run.
|
|
1009
|
-
this.emitter.emit("add", undefined, serializedInterval, { localSeq
|
|
1074
|
+
this.emitter.emit("add", undefined, serializedInterval, { localSeq });
|
|
1010
1075
|
}
|
|
1011
1076
|
this.emit("addInterval", interval, true, undefined);
|
|
1012
1077
|
return interval;
|
|
@@ -1020,7 +1085,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1020
1085
|
if (interval) {
|
|
1021
1086
|
// Local ops get submitted to the server. Remote ops have the deserializer run.
|
|
1022
1087
|
if (local) {
|
|
1023
|
-
this.emitter.emit("delete", undefined, interval.serialize(), {
|
|
1088
|
+
this.emitter.emit("delete", undefined, interval.serialize(), {
|
|
1089
|
+
localSeq: this.getNextLocalSeq(),
|
|
1090
|
+
});
|
|
1024
1091
|
}
|
|
1025
1092
|
else {
|
|
1026
1093
|
if (this.onDeserialize) {
|
|
@@ -1055,7 +1122,7 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1055
1122
|
if (!this.attached) {
|
|
1056
1123
|
throw new LoggingError("Attach must be called before accessing intervals");
|
|
1057
1124
|
}
|
|
1058
|
-
if (typeof
|
|
1125
|
+
if (typeof id !== "string") {
|
|
1059
1126
|
throw new LoggingError("Change API requires an ID that is a string");
|
|
1060
1127
|
}
|
|
1061
1128
|
if (!props) {
|
|
@@ -1072,7 +1139,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1072
1139
|
serializedInterval.end = undefined;
|
|
1073
1140
|
serializedInterval.properties = props;
|
|
1074
1141
|
serializedInterval.properties[reservedIntervalIdKey] = interval.getIntervalId();
|
|
1075
|
-
|
|
1142
|
+
const localSeq = this.getNextLocalSeq();
|
|
1143
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1144
|
+
this.emitter.emit("change", undefined, serializedInterval, { localSeq });
|
|
1076
1145
|
this.emit("propertyChanged", interval, deltaProps, true, undefined);
|
|
1077
1146
|
}
|
|
1078
1147
|
}
|
|
@@ -1088,7 +1157,7 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1088
1157
|
throw new LoggingError("Attach must be called before accessing intervals");
|
|
1089
1158
|
}
|
|
1090
1159
|
// Force id to be a string.
|
|
1091
|
-
if (typeof
|
|
1160
|
+
if (typeof id !== "string") {
|
|
1092
1161
|
throw new LoggingError("Change API requires an ID that is a string");
|
|
1093
1162
|
}
|
|
1094
1163
|
const interval = this.getIntervalById(id);
|
|
@@ -1101,11 +1170,12 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1101
1170
|
serializedInterval.start = start;
|
|
1102
1171
|
serializedInterval.end = end;
|
|
1103
1172
|
// Emit a property bag containing only the ID, as we don't intend for this op to change any properties.
|
|
1104
|
-
serializedInterval.properties =
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
this.
|
|
1173
|
+
serializedInterval.properties = {
|
|
1174
|
+
[reservedIntervalIdKey]: interval.getIntervalId(),
|
|
1175
|
+
};
|
|
1176
|
+
const localSeq = this.getNextLocalSeq();
|
|
1177
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1178
|
+
this.emitter.emit("change", undefined, serializedInterval, { localSeq });
|
|
1109
1179
|
this.addPendingChange(id, serializedInterval);
|
|
1110
1180
|
this.emitChange(newInterval, interval, true);
|
|
1111
1181
|
return newInterval;
|
|
@@ -1162,12 +1232,14 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1162
1232
|
return entries && entries.length !== 0;
|
|
1163
1233
|
}
|
|
1164
1234
|
/** @internal */
|
|
1165
|
-
ackChange(serializedInterval, local, op) {
|
|
1235
|
+
ackChange(serializedInterval, local, op, localOpMetadata) {
|
|
1166
1236
|
var _a, _b, _c, _d;
|
|
1167
1237
|
if (!this.localCollection) {
|
|
1168
1238
|
throw new LoggingError("Attach must be called before accessing intervals");
|
|
1169
1239
|
}
|
|
1170
1240
|
if (local) {
|
|
1241
|
+
assert(localOpMetadata !== undefined, 0x552 /* op metadata should be defined for local op */);
|
|
1242
|
+
this.localSeqToSerializedInterval.delete(localOpMetadata === null || localOpMetadata === void 0 ? void 0 : localOpMetadata.localSeq);
|
|
1171
1243
|
// This is an ack from the server. Remove the pending change.
|
|
1172
1244
|
this.removePendingChange(serializedInterval);
|
|
1173
1245
|
}
|
|
@@ -1205,7 +1277,8 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1205
1277
|
if (start !== undefined || end !== undefined) {
|
|
1206
1278
|
// If changeInterval gives us a new interval, work with that one. Otherwise keep working with
|
|
1207
1279
|
// the one we originally found in the tree.
|
|
1208
|
-
newInterval =
|
|
1280
|
+
newInterval =
|
|
1281
|
+
(_d = this.localCollection.changeInterval(interval, start, end, op)) !== null && _d !== void 0 ? _d : interval;
|
|
1209
1282
|
}
|
|
1210
1283
|
const deltaProps = newInterval.addProperties(newProps, true, op.sequenceNumber);
|
|
1211
1284
|
if (this.onDeserialize) {
|
|
@@ -1247,7 +1320,7 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1247
1320
|
* @internal
|
|
1248
1321
|
*/
|
|
1249
1322
|
rebaseLocalInterval(opName, serializedInterval, localSeq) {
|
|
1250
|
-
var _a, _b, _c, _d, _e, _f
|
|
1323
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1251
1324
|
if (!this.client) {
|
|
1252
1325
|
// If there's no associated mergeTree client, the originally submitted op is still correct.
|
|
1253
1326
|
return serializedInterval;
|
|
@@ -1255,44 +1328,36 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1255
1328
|
if (!this.attached) {
|
|
1256
1329
|
throw new LoggingError("attachSequence must be called");
|
|
1257
1330
|
}
|
|
1258
|
-
const {
|
|
1259
|
-
const startRebased =
|
|
1260
|
-
this.client.rebasePosition(start, sequenceNumber, localSeq);
|
|
1261
|
-
const endRebased = end === undefined ? undefined :
|
|
1262
|
-
this.client.rebasePosition(end, sequenceNumber, localSeq);
|
|
1331
|
+
const { intervalType, properties } = serializedInterval;
|
|
1332
|
+
const { start: startRebased, end: endRebased } = (_a = this.localSeqToRebasedInterval.get(localSeq)) !== null && _a !== void 0 ? _a : this.computeRebasedPositions(localSeq);
|
|
1263
1333
|
const intervalId = properties === null || properties === void 0 ? void 0 : properties[reservedIntervalIdKey];
|
|
1264
|
-
const localInterval = (
|
|
1334
|
+
const localInterval = (_b = this.localCollection) === null || _b === void 0 ? void 0 : _b.getIntervalById(intervalId);
|
|
1265
1335
|
const rebased = {
|
|
1266
1336
|
start: startRebased,
|
|
1267
1337
|
end: endRebased,
|
|
1268
1338
|
intervalType,
|
|
1269
|
-
sequenceNumber: (
|
|
1339
|
+
sequenceNumber: (_d = (_c = this.client) === null || _c === void 0 ? void 0 : _c.getCurrentSeq()) !== null && _d !== void 0 ? _d : 0,
|
|
1270
1340
|
properties,
|
|
1271
1341
|
};
|
|
1272
|
-
if (opName === "change" &&
|
|
1342
|
+
if (opName === "change" &&
|
|
1343
|
+
(this.hasPendingChangeStart(intervalId) || this.hasPendingChangeEnd(intervalId))) {
|
|
1273
1344
|
this.removePendingChange(serializedInterval);
|
|
1274
1345
|
this.addPendingChange(intervalId, rebased);
|
|
1275
1346
|
}
|
|
1276
|
-
// if the interval slid off the string, rebase the op to be a noop and
|
|
1277
|
-
|
|
1278
|
-
|
|
1347
|
+
// if the interval slid off the string, rebase the op to be a noop and delete the interval.
|
|
1348
|
+
if (startRebased === DetachedReferencePosition ||
|
|
1349
|
+
endRebased === DetachedReferencePosition) {
|
|
1279
1350
|
if (localInterval) {
|
|
1280
|
-
(
|
|
1351
|
+
(_e = this.localCollection) === null || _e === void 0 ? void 0 : _e.removeExistingInterval(localInterval);
|
|
1281
1352
|
}
|
|
1282
1353
|
return undefined;
|
|
1283
1354
|
}
|
|
1284
|
-
if (
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
const endSegment = this.getSlideToSegment(localInterval.end);
|
|
1291
|
-
// we need to slide because the reference has been removed
|
|
1292
|
-
if (startSegment || endSegment) {
|
|
1293
|
-
const newStart = startSegment && this.client.getPosition(startSegment.segment, localSeq) + ((_e = startSegment.offset) !== null && _e !== void 0 ? _e : 0);
|
|
1294
|
-
const newEnd = endSegment && this.client.getPosition(endSegment.segment, localSeq) + ((_f = endSegment.offset) !== null && _f !== void 0 ? _f : 0);
|
|
1295
|
-
(_g = this.localCollection) === null || _g === void 0 ? void 0 : _g.changeInterval(localInterval, newStart, newEnd, undefined, localSeq);
|
|
1355
|
+
if (localInterval !== undefined) {
|
|
1356
|
+
// we know we must be using `SequenceInterval` because `this.client` exists
|
|
1357
|
+
assert(localInterval instanceof SequenceInterval, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */);
|
|
1358
|
+
// The rebased op may place this interval's endpoints on different segments. Calling `changeInterval` here
|
|
1359
|
+
// updates the local client's state to be consistent with the emitted op.
|
|
1360
|
+
(_f = this.localCollection) === null || _f === void 0 ? void 0 : _f.changeInterval(localInterval, startRebased, endRebased, undefined, localSeq);
|
|
1296
1361
|
}
|
|
1297
1362
|
return rebased;
|
|
1298
1363
|
}
|
|
@@ -1306,7 +1371,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1306
1371
|
return undefined;
|
|
1307
1372
|
}
|
|
1308
1373
|
const newSegoff = this.client.getSlideToSegment(segoff);
|
|
1309
|
-
const value =
|
|
1374
|
+
const value = segoff.segment === newSegoff.segment && segoff.offset === newSegoff.offset
|
|
1375
|
+
? undefined
|
|
1376
|
+
: newSegoff;
|
|
1310
1377
|
return value;
|
|
1311
1378
|
}
|
|
1312
1379
|
setSlideOnRemove(lref) {
|
|
@@ -1380,9 +1447,11 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1380
1447
|
}
|
|
1381
1448
|
}
|
|
1382
1449
|
/** @internal */
|
|
1383
|
-
ackAdd(serializedInterval, local, op) {
|
|
1450
|
+
ackAdd(serializedInterval, local, op, localOpMetadata) {
|
|
1384
1451
|
var _a;
|
|
1385
1452
|
if (local) {
|
|
1453
|
+
assert(localOpMetadata !== undefined, 0x553 /* op metadata should be defined for local op */);
|
|
1454
|
+
this.localSeqToSerializedInterval.delete(localOpMetadata.localSeq);
|
|
1386
1455
|
const id = (_a = serializedInterval.properties) === null || _a === void 0 ? void 0 : _a[reservedIntervalIdKey];
|
|
1387
1456
|
const localInterval = this.getIntervalById(id);
|
|
1388
1457
|
if (localInterval) {
|
|
@@ -1518,7 +1587,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1518
1587
|
*/
|
|
1519
1588
|
export function intervalLocatorFromEndpoint(potentialEndpoint) {
|
|
1520
1589
|
var _a;
|
|
1521
|
-
const { interval, [reservedRangeLabelsKey]: collectionNameArray
|
|
1522
|
-
return
|
|
1590
|
+
const { interval, [reservedRangeLabelsKey]: collectionNameArray } = (_a = potentialEndpoint.properties) !== null && _a !== void 0 ? _a : {};
|
|
1591
|
+
return interval && (collectionNameArray === null || collectionNameArray === void 0 ? void 0 : collectionNameArray.length) === 1
|
|
1592
|
+
? { label: collectionNameArray[0], interval }
|
|
1593
|
+
: undefined;
|
|
1523
1594
|
}
|
|
1524
1595
|
//# sourceMappingURL=intervalCollection.js.map
|