@fluidframework/sequence 2.0.0-dev.2.3.0.115467 → 2.0.0-dev.3.1.0.125672
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 +186 -176
- 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 +7 -3
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +144 -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 +24 -43
- 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 +7 -3
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +144 -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 +26 -45
- 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 +25 -23
- 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 +2198 -1932
- package/src/intervalTree.ts +139 -139
- package/src/localValues.ts +64 -73
- package/src/packageVersion.ts +1 -1
- package/src/sequence.ts +752 -711
- 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
|
@@ -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,
|
|
@@ -399,11 +399,15 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
399
399
|
private localCollection;
|
|
400
400
|
private onDeserialize;
|
|
401
401
|
private client;
|
|
402
|
+
private readonly localSeqToSerializedInterval;
|
|
403
|
+
private readonly localSeqToRebasedInterval;
|
|
402
404
|
private readonly pendingChangesStart;
|
|
403
405
|
private readonly pendingChangesEnd;
|
|
404
406
|
get attached(): boolean;
|
|
405
407
|
/** @internal */
|
|
406
408
|
constructor(helpers: IIntervalHelpers<TInterval>, requiresClient: boolean, emitter: IValueOpEmitter, serializedIntervals: ISerializedInterval[] | ISerializedIntervalCollectionV2);
|
|
409
|
+
private rebasePositionWithSegmentSlide;
|
|
410
|
+
private computeRebasedPositions;
|
|
407
411
|
/** @internal */
|
|
408
412
|
attachGraph(client: Client, label: string): void;
|
|
409
413
|
/**
|
|
@@ -454,7 +458,7 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
454
458
|
private hasPendingChangeStart;
|
|
455
459
|
private hasPendingChangeEnd;
|
|
456
460
|
/** @internal */
|
|
457
|
-
ackChange(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
461
|
+
ackChange(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IMapMessageLocalMetadata | undefined): void;
|
|
458
462
|
addConflictResolver(conflictResolver: IntervalConflictResolver<TInterval>): void;
|
|
459
463
|
attachDeserializer(onDeserialize: DeserializeCallback): void;
|
|
460
464
|
/**
|
|
@@ -469,7 +473,7 @@ export declare class IntervalCollection<TInterval extends ISerializableInterval>
|
|
|
469
473
|
private setSlideOnRemove;
|
|
470
474
|
private ackInterval;
|
|
471
475
|
/** @internal */
|
|
472
|
-
ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): TInterval | undefined;
|
|
476
|
+
ackAdd(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage, localOpMetadata: IMapMessageLocalMetadata | undefined): TInterval | undefined;
|
|
473
477
|
/** @internal */
|
|
474
478
|
ackDelete(serializedInterval: ISerializedInterval, local: boolean, op: ISequencedDocumentMessage): void;
|
|
475
479
|
/**
|
|
@@ -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":"AAAA;;;GAGG;AAIH,OAAO,EAAU,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAE5D,OAAO,EAEN,MAAM,EAIN,YAAY,EAIZ,iBAAiB,EACjB,WAAW,EAEX,sBAAsB,EAQtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAGjF,OAAO,EACN,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EAEV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAA8B,MAAM,gBAAgB,CAAC;AAIjG,oBAAY,YAAY;IACvB,MAAM,IAAM;IACZ,IAAI,IAAM;IAEV;;;;;OAKG;IACH,aAAa,IAAM;IAEnB;;;OAGG;IACH,SAAS,IAAM;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,sCAAsC;IACtC,UAAU,CAAC,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH,oBAAY,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,KAAK,GAAG,YAAY,CAAC,GAC9F,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;AAEpE;;;;;;;GAOG;AACH,oBAAY,4BAA4B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAE/F;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,4BAA4B,EAAE,CAAC;CAC1C;AAqCD,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACvD,mEAAmE;IACnE,UAAU,EAAE,WAAW,CAAC;IACxB,gBAAgB;IAChB,eAAe,EAAE,iBAAiB,CAAC;IACnC,gBAAgB;IAChB,SAAS,IAAI,mBAAmB,CAAC;IACjC,gBAAgB;IAChB,aAAa,CACZ,KAAK,EAAE,WAAW,EAClB,aAAa,CAAC,EAAE,OAAO,EACvB,GAAG,CAAC,EAAE,MAAM,GACV,WAAW,GAAG,SAAS,CAAC;IAC3B;;;;;;OAMG;IACH,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB,CAAC,SAAS,SAAS,qBAAqB;IACxE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChD;;;;;;;;;;OAUG;IACH,MAAM,CACL,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,YAAY,EAC1B,EAAE,CAAC,EAAE,yBAAyB,EAC9B,YAAY,CAAC,EAAE,OAAO,GACpB,SAAS,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,QAAS,YAAW,qBAAqB;IAWlC,KAAK,EAAE,MAAM;IAAS,GAAG,EAAE,MAAM;IAVpD;;OAEG;IACI,UAAU,EAAE,WAAW,CAAC;IAC/B,gBAAgB;IACT,QAAQ,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;IAC3C;;OAEG;IACI,eAAe,EAAE,iBAAiB,CAAC;gBACvB,KAAK,EAAE,MAAM,EAAS,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW;IASzE;;OAEG;IACI,aAAa,IAAI,MAAM,GAAG,SAAS;IAQ1C;;OAEG;IACI,yBAAyB,IAAI,WAAW,EAAE;IAIjD;;;;;;;OAOG;IACI,cAAc,CAAC,KAAK,EAAE,WAAW;IAOxC;;;OAGG;IACI,SAAS,IAAI,mBAAmB;IAavC;;OAEG;IACI,KAAK;IAIZ;;OAEG;IACI,OAAO,CAAC,CAAC,EAAE,QAAQ;IAsB1B;;OAEG;IACI,YAAY,CAAC,CAAC,EAAE,QAAQ;IAI/B;;OAEG;IACI,UAAU,CAAC,CAAC,EAAE,QAAQ;IAI7B;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,QAAQ;IAK3B;;OAEG;IACI,KAAK,CAAC,CAAC,EAAE,QAAQ;IAQjB,aAAa;IAIpB;;OAEG;IACI,aAAa,CACnB,QAAQ,EAAE,WAAW,EACrB,aAAa,GAAE,OAAe,EAC9B,GAAG,CAAC,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,YAAY,GACf,WAAW,GAAG,SAAS;IAa1B;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,yBAAyB;IAmBvF,OAAO,CAAC,oBAAoB;CAQ5B;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,qBAAqB;IAW5D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB;;;OAGG;IACI,KAAK,EAAE,sBAAsB;IACpC;;;OAGG;IACI,GAAG,EAAE,sBAAsB;IAC3B,YAAY,EAAE,YAAY;IArBlC;;OAEG;IACI,UAAU,EAAE,WAAW,CAAC;IAC/B;;OAEG;IACI,eAAe,EAAE,iBAAiB,CAAC;gBAGxB,MAAM,EAAE,MAAM;IAC/B;;;OAGG;IACI,KAAK,EAAE,sBAAsB;IACpC;;;OAGG;IACI,GAAG,EAAE,sBAAsB,EAC3B,YAAY,EAAE,YAAY,EACjC,KAAK,CAAC,EAAE,WAAW;IAUpB,OAAO,CAAC,SAAS,CAAC,CAAqE;IAEvF;;;OAGG;IACI,0BAA0B,CAChC,oBAAoB,EAAE,MAAM,IAAI,EAChC,mBAAmB,EAAE,MAAM,IAAI,GAC7B,IAAI;IAcP;;;OAGG;IACI,6BAA6B,IAAI,IAAI;IAQ5C;;;OAGG;IACI,SAAS,IAAI,mBAAmB;IAiBvC;;OAEG;IACI,KAAK;IAUZ;;OAEG;IACI,OAAO,CAAC,CAAC,EAAE,gBAAgB;IAsBlC;;OAEG;IACI,YAAY,CAAC,CAAC,EAAE,gBAAgB;IAIvC;;OAEG;IACI,UAAU,CAAC,CAAC,EAAE,gBAAgB;IAIrC;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,gBAAgB;IAOnC;;OAEG;IACI,aAAa,IAAI,MAAM,GAAG,SAAS;IAQ1C;;OAEG;IACI,KAAK,CAAC,CAAC,EAAE,gBAAgB;IAShC;;OAEG;IACI,aAAa,CACnB,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAE,OAAe,EACvB,GAAG,CAAC,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,YAAY,GACf,WAAW,GAAG,SAAS;IAK1B;;;OAGG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAM/C;;OAEG;IACI,MAAM,CACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,EAAE,CAAC,EAAE,yBAAyB,EAC9B,QAAQ,CAAC,EAAE,MAAM;IAqDlB,OAAO,CAAC,oBAAoB;CAQ5B;AA4DD,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,EAAE,CAAC,EAAE,yBAAyB,EAC9B,YAAY,CAAC,EAAE,OAAO,GACpB,gBAAgB,CAiClB;AAED,wBAAgB,+BAA+B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAGvE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,qCAYhF;AAED,qBAAa,uBAAuB,CAAC,SAAS,SAAS,qBAAqB;IAU1E,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAbnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IACnE,OAAO,CAAC,gBAAgB,CAAkD;IAC1E,OAAO,CAAC,mBAAmB,CAAmD;IAE9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAY;gBAGhC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACrD,6EAA6E;IAC5D,gBAAgB,CAAC,cACvB,SAAS,oBACD,SAAS,KACvB,IAAI,aAAA;IAMH,mBAAmB,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,SAAS,CAAC;IAWzE,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI;IAIrC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAMzD;;;;;;OAMG;IACI,kBAAkB,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,MAAM;IAqBnE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO;IAI7C,sBAAsB,CAC5B,OAAO,EAAE,SAAS,EAAE,EACpB,eAAe,EAAE,OAAO,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM;IA8Eb;;;OAGG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAgBnE,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAc5B,YAAY,CAAC,GAAG,EAAE,MAAM;IAcxB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAahE,OAAO,CAAC,uBAAuB;IAWxB,sBAAsB,CAAC,QAAQ,EAAE,SAAS;IAK1C,cAAc,CACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,YAAY,EAC1B,EAAE,CAAC,EAAE,yBAAyB,GAC5B,SAAS;IAIL,WAAW,CACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,YAAY,EAC1B,KAAK,CAAC,EAAE,WAAW,EACnB,EAAE,CAAC,EAAE,yBAAyB;IAiB/B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,kBAAkB;IAiBnB,GAAG,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAM9B,eAAe,CAAC,EAAE,EAAE,MAAM;IAI1B,cAAc,CACpB,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,EAAE,CAAC,EAAE,yBAAyB,EAC9B,QAAQ,CAAC,EAAE,MAAM;IAYX,SAAS,IAAI,+BAA+B;IASnD,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,uBAAuB;CAK/B;AAED,eAAO,MAAM,2BAA2B,MAAO,gBAAgB,KAAK,gBAAgB,KAAG,MAC/C,CAAC;AAuBzC,qBAAa,mCACZ,YAAW,UAAU,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAE3D,OAAc,IAAI,SAAoC;IAEtD,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,OAAO,IAAI,aAAa,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAExE;IAED,IAAW,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAEnF;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACS;IAEzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAkC;CAC9D;AAiCD,qBAAa,2BAA4B,YAAW,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3F,OAAc,IAAI,SAA8B;IAEhD,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,OAAO,IAAI,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAEhE;IAED,IAAW,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAE3E;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACC;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAA0B;CACtD;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,qBAAqB,KAAK,GAAG,CACjE,MAAM,EACN,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CACtC,CAyDA;AAED,oBAAY,mBAAmB,GAAG,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;AAEpE,qBAAa,0BAA0B,CAAC,SAAS,SAAS,qBAAqB,CAC9E,YAAW,QAAQ,CAAC,SAAS,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,KAAK,CAAS;gBAGrB,UAAU,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACzC,eAAe,GAAE,OAAc,EAC/B,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM;IAQN,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;CAaxC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,SAAS,SAAS,qBAAqB,CAAE,SAAQ,MAAM;IAChG;;;;;;;;;;;OAWG;IACH,CACC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CACT,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,SAAS,EAC3B,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,yBAAyB,GAAG,SAAS,KACrC,IAAI,OACR;IACF;;;;OAIG;IACH,CACC,KAAK,EAAE,aAAa,GAAG,gBAAgB,EACvC,QAAQ,EAAE,CACT,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,yBAAyB,GAAG,SAAS,KACrC,IAAI,OACR;IACF;;;;;;;;OAQG;IACH,CACC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,CACT,QAAQ,EAAE,SAAS,EACnB,cAAc,EAAE,WAAW,EAC3B,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,yBAAyB,GAAG,SAAS,KACrC,IAAI,OACR;CACF;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB,CAAC,SAAS,SAAS,qBAAqB,CAAE,SAAQ,iBAAiB,CACjG,wBAAwB,CAAC,SAAS,CAAC,CACnC;IA4BC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IA7BzB,OAAO,CAAC,wBAAwB,CAAC,CAAwB;IACzD,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAGzC;IACJ,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAGtC;IACJ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IACJ,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IAEJ,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,gBAAgB;gBAEE,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,EACpC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,eAAe,EACzC,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,+BAA+B;IAW7E,OAAO,CAAC,8BAA8B;IAmCtC,OAAO,CAAC,uBAAuB;IAuB/B,gBAAgB;IACT,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAkDhD;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,UAAU;IAwBlB;;;OAGG;IACI,eAAe,CAAC,EAAE,EAAE,MAAM;IAOjC;;;;;;;OAOG;IACI,GAAG,CACT,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,YAAY,EAC1B,KAAK,CAAC,EAAE,WAAW,GACjB,SAAS;IAkCZ,OAAO,CAAC,sBAAsB;IA2B9B;;;;OAIG;IACI,kBAAkB,CAAC,EAAE,EAAE,MAAM;IAWpC;;;;;OAKG;IACI,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IA+BtD;;;;;;OAMG;IACI,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkC9E,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,mBAAmB;IAK3B,gBAAgB;IACT,SAAS,CACf,kBAAkB,EAAE,mBAAmB,EACvC,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,yBAAyB,EAC7B,eAAe,EAAE,wBAAwB,GAAG,SAAS;IAuE/C,mBAAmB,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAAG,IAAI;IAOhF,kBAAkB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAenE;;;;;;OAMG;IACI,mBAAmB,CACzB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,uBAAuB,EAC3C,QAAQ,EAAE,MAAM,GACd,uBAAuB,GAAG,SAAS;IAgEtC,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,WAAW;IAsFnB,gBAAgB;IACT,MAAM,CACZ,kBAAkB,EAAE,mBAAmB,EACvC,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,yBAAyB,EAC7B,eAAe,EAAE,wBAAwB,GAAG,SAAS;IAyCtD,gBAAgB;IACT,SAAS,CACf,kBAAkB,EAAE,mBAAmB,EACvC,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,yBAAyB,GAC3B,IAAI;IAmBP;;OAEG;IACI,iBAAiB,IAAI,+BAA+B;IAQ3D;;OAEG;IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B,CAAC,SAAS,CAAC;IAKjE;;OAEG;IACI,sCAAsC,CAC5C,aAAa,EAAE,MAAM,GACnB,0BAA0B,CAAC,SAAS,CAAC;IAKxC;;OAEG;IACI,uCAAuC,CAC7C,aAAa,EAAE,MAAM,GACnB,0BAA0B,CAAC,SAAS,CAAC;IAKxC;;OAEG;IACI,oCAAoC,CAC1C,WAAW,EAAE,MAAM,GACjB,0BAA0B,CAAC,SAAS,CAAC;IAUxC;;OAEG;IACI,qCAAqC,CAC3C,WAAW,EAAE,MAAM,GACjB,0BAA0B,CAAC,SAAS,CAAC;IAUxC;;;;;;;OAOG;IACI,sBAAsB,CAC5B,OAAO,EAAE,SAAS,EAAE,EACpB,eAAe,EAAE,OAAO,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM;IASb;;;OAGG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE;IAQxF;;OAEG;IACI,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI;IAQrC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAQpD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAOvD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAC1C,iBAAiB,EAAE,sBAAsB,GACvC,eAAe,GAAG,SAAS,CAM7B"}
|
|
@@ -174,8 +174,7 @@ 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
|
/**
|
|
@@ -261,8 +260,8 @@ export class SequenceInterval {
|
|
|
261
260
|
beforePositionChange,
|
|
262
261
|
afterPositionChange,
|
|
263
262
|
};
|
|
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 = {});
|
|
263
|
+
const startCbs = ((_a = (_c = this.start).callbacks) !== null && _a !== void 0 ? _a : (_c.callbacks = {}));
|
|
264
|
+
const endCbs = ((_b = (_d = this.end).callbacks) !== null && _b !== void 0 ? _b : (_d.callbacks = {}));
|
|
266
265
|
startCbs.beforeSlide = endCbs.beforeSlide = beforePositionChange;
|
|
267
266
|
startCbs.afterSlide = endCbs.afterSlide = afterPositionChange;
|
|
268
267
|
}
|
|
@@ -344,8 +343,8 @@ export class SequenceInterval {
|
|
|
344
343
|
* {@inheritDoc IInterval.overlaps}
|
|
345
344
|
*/
|
|
346
345
|
overlaps(b) {
|
|
347
|
-
const result =
|
|
348
|
-
|
|
346
|
+
const result = compareReferencePositions(this.start, b.end) <= 0 &&
|
|
347
|
+
compareReferencePositions(this.end, b.start) >= 0;
|
|
349
348
|
return result;
|
|
350
349
|
}
|
|
351
350
|
/**
|
|
@@ -379,7 +378,7 @@ export class SequenceInterval {
|
|
|
379
378
|
overlapsPos(bstart, bend) {
|
|
380
379
|
const startPos = this.client.localReferencePositionToPosition(this.start);
|
|
381
380
|
const endPos = this.client.localReferencePositionToPosition(this.end);
|
|
382
|
-
return
|
|
381
|
+
return endPos > bstart && startPos < bend;
|
|
383
382
|
}
|
|
384
383
|
/**
|
|
385
384
|
* {@inheritDoc IInterval.modify}
|
|
@@ -423,13 +422,17 @@ export class SequenceInterval {
|
|
|
423
422
|
}
|
|
424
423
|
}
|
|
425
424
|
}
|
|
426
|
-
function createPositionReferenceFromSegoff(client, segoff, refType, op) {
|
|
425
|
+
function createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq) {
|
|
427
426
|
if (segoff.segment) {
|
|
428
427
|
const ref = client.createLocalReferencePosition(segoff.segment, segoff.offset, refType, undefined);
|
|
429
428
|
return ref;
|
|
430
429
|
}
|
|
431
|
-
|
|
432
|
-
|
|
430
|
+
// Creating references on detached segments is allowed for:
|
|
431
|
+
// - Transient segments
|
|
432
|
+
// - References coming from a remote client (location may have been concurrently removed)
|
|
433
|
+
// - References being rebased to a new sequence number
|
|
434
|
+
// (segment they originally referred to may have been removed with no suitable replacement)
|
|
435
|
+
if (!op && !localSeq && !refTypeIncludesFlag(refType, ReferenceType.Transient)) {
|
|
433
436
|
throw new UsageError("Non-transient references need segment");
|
|
434
437
|
}
|
|
435
438
|
return createDetachedLocalReferencePosition(refType);
|
|
@@ -438,14 +441,17 @@ function createPositionReference(client, pos, refType, op, fromSnapshot, localSe
|
|
|
438
441
|
let segoff;
|
|
439
442
|
if (op) {
|
|
440
443
|
assert((refType & ReferenceType.SlideOnRemove) !== 0, 0x2f5 /* op create references must be SlideOnRemove */);
|
|
441
|
-
segoff = client.getContainingSegment(pos,
|
|
444
|
+
segoff = client.getContainingSegment(pos, {
|
|
445
|
+
referenceSequenceNumber: op.referenceSequenceNumber,
|
|
446
|
+
clientId: op.clientId,
|
|
447
|
+
});
|
|
442
448
|
segoff = client.getSlideToSegment(segoff);
|
|
443
449
|
}
|
|
444
450
|
else {
|
|
445
451
|
assert((refType & ReferenceType.SlideOnRemove) === 0 || !!fromSnapshot, 0x2f6 /* SlideOnRemove references must be op created */);
|
|
446
452
|
segoff = client.getContainingSegment(pos, undefined, localSeq);
|
|
447
453
|
}
|
|
448
|
-
return createPositionReferenceFromSegoff(client, segoff, refType, op);
|
|
454
|
+
return createPositionReferenceFromSegoff(client, segoff, refType, op, localSeq);
|
|
449
455
|
}
|
|
450
456
|
export function createSequenceInterval(label, start, end, client, intervalType, op, fromSnapshot) {
|
|
451
457
|
let beginRefType = ReferenceType.RangeBegin;
|
|
@@ -514,14 +520,13 @@ export class LocalIntervalCollection {
|
|
|
514
520
|
}
|
|
515
521
|
addConflictResolver(conflictResolver) {
|
|
516
522
|
this.conflictResolver = conflictResolver;
|
|
517
|
-
this.endConflictResolver =
|
|
518
|
-
(key, currentKey)
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
key: ival,
|
|
523
|
-
};
|
|
523
|
+
this.endConflictResolver = (key, currentKey) => {
|
|
524
|
+
const ival = conflictResolver(key, currentKey);
|
|
525
|
+
return {
|
|
526
|
+
data: ival,
|
|
527
|
+
key: ival,
|
|
524
528
|
};
|
|
529
|
+
};
|
|
525
530
|
}
|
|
526
531
|
map(fn) {
|
|
527
532
|
this.intervalTree.map(fn);
|
|
@@ -601,11 +606,11 @@ export class LocalIntervalCollection {
|
|
|
601
606
|
else {
|
|
602
607
|
// Start and (possibly) end provided. Walk the subtrees that may contain
|
|
603
608
|
// this start position.
|
|
604
|
-
const compareFn = end === undefined
|
|
605
|
-
(node) => {
|
|
609
|
+
const compareFn = end === undefined
|
|
610
|
+
? (node) => {
|
|
606
611
|
return transientInterval.compareStart(node.key);
|
|
607
|
-
}
|
|
608
|
-
(node) => {
|
|
612
|
+
}
|
|
613
|
+
: (node) => {
|
|
609
614
|
return transientInterval.compare(node.key);
|
|
610
615
|
};
|
|
611
616
|
const continueLeftFn = (cmpResult) => cmpResult <= 0;
|
|
@@ -740,18 +745,25 @@ export class LocalIntervalCollection {
|
|
|
740
745
|
};
|
|
741
746
|
if (interval instanceof SequenceInterval) {
|
|
742
747
|
let previousInterval;
|
|
748
|
+
let pendingChanges = 0;
|
|
743
749
|
interval.addPositionChangeListeners(() => {
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
750
|
+
pendingChanges++;
|
|
751
|
+
// Note: both start and end can change and invoke beforeSlide on each endpoint before afterSlide.
|
|
752
|
+
if (!previousInterval) {
|
|
753
|
+
previousInterval = interval.clone();
|
|
754
|
+
previousInterval.start = cloneRef(previousInterval.start);
|
|
755
|
+
previousInterval.end = cloneRef(previousInterval.end);
|
|
756
|
+
this.removeIntervalFromIndex(interval);
|
|
757
|
+
}
|
|
749
758
|
}, () => {
|
|
750
759
|
var _a;
|
|
751
760
|
assert(previousInterval !== undefined, 0x3fa /* Invalid interleaving of before/after slide */);
|
|
752
|
-
|
|
753
|
-
(
|
|
754
|
-
|
|
761
|
+
pendingChanges--;
|
|
762
|
+
if (pendingChanges === 0) {
|
|
763
|
+
this.addIntervalToIndex(interval);
|
|
764
|
+
(_a = this.onPositionChange) === null || _a === void 0 ? void 0 : _a.call(this, interval, previousInterval);
|
|
765
|
+
previousInterval = undefined;
|
|
766
|
+
}
|
|
755
767
|
});
|
|
756
768
|
}
|
|
757
769
|
}
|
|
@@ -832,17 +844,18 @@ export function makeOpsMap() {
|
|
|
832
844
|
const rebasedOp = Object.assign(Object.assign({}, op), { value: rebasedValue });
|
|
833
845
|
return { rebasedOp, rebasedLocalOpMetadata: localOpMetadata };
|
|
834
846
|
};
|
|
835
|
-
return new Map([
|
|
847
|
+
return new Map([
|
|
848
|
+
[
|
|
836
849
|
"add",
|
|
837
850
|
{
|
|
838
|
-
process: (collection, params, local, op) => {
|
|
851
|
+
process: (collection, params, local, op, localOpMetadata) => {
|
|
839
852
|
// if params is undefined, the interval was deleted during
|
|
840
853
|
// rebasing
|
|
841
854
|
if (!params) {
|
|
842
855
|
return;
|
|
843
856
|
}
|
|
844
857
|
assert(op !== undefined, 0x3fb /* op should exist here */);
|
|
845
|
-
collection.ackAdd(params, local, op);
|
|
858
|
+
collection.ackAdd(params, local, op, localOpMetadata);
|
|
846
859
|
},
|
|
847
860
|
rebase,
|
|
848
861
|
},
|
|
@@ -863,18 +876,19 @@ export function makeOpsMap() {
|
|
|
863
876
|
[
|
|
864
877
|
"change",
|
|
865
878
|
{
|
|
866
|
-
process: (collection, params, local, op) => {
|
|
879
|
+
process: (collection, params, local, op, localOpMetadata) => {
|
|
867
880
|
// if params is undefined, the interval was deleted during
|
|
868
881
|
// rebasing
|
|
869
882
|
if (!params) {
|
|
870
883
|
return;
|
|
871
884
|
}
|
|
872
885
|
assert(op !== undefined, 0x3fd /* op should exist here */);
|
|
873
|
-
collection.ackChange(params, local, op);
|
|
886
|
+
collection.ackChange(params, local, op, localOpMetadata);
|
|
874
887
|
},
|
|
875
888
|
rebase,
|
|
876
889
|
},
|
|
877
|
-
]
|
|
890
|
+
],
|
|
891
|
+
]);
|
|
878
892
|
}
|
|
879
893
|
export class IntervalCollectionIterator {
|
|
880
894
|
constructor(collection, iteratesForward = true, start, end) {
|
|
@@ -909,6 +923,8 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
909
923
|
this.helpers = helpers;
|
|
910
924
|
this.requiresClient = requiresClient;
|
|
911
925
|
this.emitter = emitter;
|
|
926
|
+
this.localSeqToSerializedInterval = new Map();
|
|
927
|
+
this.localSeqToRebasedInterval = new Map();
|
|
912
928
|
this.pendingChangesStart = new Map();
|
|
913
929
|
this.pendingChangesEnd = new Map();
|
|
914
930
|
this.savedSerializedIntervals = Array.isArray(serializedIntervals)
|
|
@@ -918,16 +934,57 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
918
934
|
get attached() {
|
|
919
935
|
return !!this.localCollection;
|
|
920
936
|
}
|
|
937
|
+
rebasePositionWithSegmentSlide(pos, seqNumberFrom, localSeq) {
|
|
938
|
+
var _a;
|
|
939
|
+
if (!this.client) {
|
|
940
|
+
throw new LoggingError("mergeTree client must exist");
|
|
941
|
+
}
|
|
942
|
+
const { clientId } = this.client.getCollabWindow();
|
|
943
|
+
const { segment, offset } = this.client.getContainingSegment(pos, {
|
|
944
|
+
referenceSequenceNumber: seqNumberFrom,
|
|
945
|
+
clientId: this.client.getLongClientId(clientId),
|
|
946
|
+
}, localSeq);
|
|
947
|
+
// if segment is undefined, it slid off the string
|
|
948
|
+
assert(segment !== undefined, 0x54e /* No segment found */);
|
|
949
|
+
const segoff = (_a = this.client.getSlideToSegment({ segment, offset })) !== null && _a !== void 0 ? _a : segment;
|
|
950
|
+
// case happens when rebasing op, but concurrently entire string has been deleted
|
|
951
|
+
if (segoff.segment === undefined || segoff.offset === undefined) {
|
|
952
|
+
return DetachedReferencePosition;
|
|
953
|
+
}
|
|
954
|
+
assert(offset !== undefined && 0 <= offset && offset < segment.cachedLength, 0x54f /* Invalid offset */);
|
|
955
|
+
return this.client.findReconnectionPosition(segoff.segment, localSeq) + segoff.offset;
|
|
956
|
+
}
|
|
957
|
+
computeRebasedPositions(localSeq) {
|
|
958
|
+
assert(this.client !== undefined, 0x550 /* Client should be defined when computing rebased position */);
|
|
959
|
+
const original = this.localSeqToSerializedInterval.get(localSeq);
|
|
960
|
+
assert(original !== undefined, 0x551 /* Failed to store pending serialized interval info for this localSeq. */);
|
|
961
|
+
const rebased = Object.assign({}, original);
|
|
962
|
+
const { start, end, sequenceNumber } = original;
|
|
963
|
+
if (start !== undefined) {
|
|
964
|
+
rebased.start = this.rebasePositionWithSegmentSlide(start, sequenceNumber, localSeq);
|
|
965
|
+
}
|
|
966
|
+
if (end !== undefined) {
|
|
967
|
+
rebased.end = this.rebasePositionWithSegmentSlide(end, sequenceNumber, localSeq);
|
|
968
|
+
}
|
|
969
|
+
return rebased;
|
|
970
|
+
}
|
|
921
971
|
/** @internal */
|
|
922
972
|
attachGraph(client, label) {
|
|
923
973
|
if (this.attached) {
|
|
924
974
|
throw new LoggingError("Only supports one Sequence attach");
|
|
925
975
|
}
|
|
926
|
-
if (
|
|
976
|
+
if (client === undefined && this.requiresClient) {
|
|
927
977
|
throw new LoggingError("Client required for this collection");
|
|
928
978
|
}
|
|
929
979
|
// Instantiate the local interval collection based on the saved intervals
|
|
930
980
|
this.client = client;
|
|
981
|
+
if (client) {
|
|
982
|
+
client.on("normalize", () => {
|
|
983
|
+
for (const localSeq of this.localSeqToSerializedInterval.keys()) {
|
|
984
|
+
this.localSeqToRebasedInterval.set(localSeq, this.computeRebasedPositions(localSeq));
|
|
985
|
+
}
|
|
986
|
+
});
|
|
987
|
+
}
|
|
931
988
|
this.localCollection = new LocalIntervalCollection(client, label, this.helpers, (interval, previousInterval) => this.emitChange(interval, previousInterval, true));
|
|
932
989
|
if (this.savedSerializedIntervals) {
|
|
933
990
|
for (const serializedInterval of this.savedSerializedIntervals) {
|
|
@@ -1005,8 +1062,10 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1005
1062
|
sequenceNumber: (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.getCurrentSeq()) !== null && _b !== void 0 ? _b : 0,
|
|
1006
1063
|
start,
|
|
1007
1064
|
};
|
|
1065
|
+
const localSeq = this.getNextLocalSeq();
|
|
1066
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1008
1067
|
// Local ops get submitted to the server. Remote ops have the deserializer run.
|
|
1009
|
-
this.emitter.emit("add", undefined, serializedInterval, { localSeq
|
|
1068
|
+
this.emitter.emit("add", undefined, serializedInterval, { localSeq });
|
|
1010
1069
|
}
|
|
1011
1070
|
this.emit("addInterval", interval, true, undefined);
|
|
1012
1071
|
return interval;
|
|
@@ -1020,7 +1079,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1020
1079
|
if (interval) {
|
|
1021
1080
|
// Local ops get submitted to the server. Remote ops have the deserializer run.
|
|
1022
1081
|
if (local) {
|
|
1023
|
-
this.emitter.emit("delete", undefined, interval.serialize(), {
|
|
1082
|
+
this.emitter.emit("delete", undefined, interval.serialize(), {
|
|
1083
|
+
localSeq: this.getNextLocalSeq(),
|
|
1084
|
+
});
|
|
1024
1085
|
}
|
|
1025
1086
|
else {
|
|
1026
1087
|
if (this.onDeserialize) {
|
|
@@ -1055,7 +1116,7 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1055
1116
|
if (!this.attached) {
|
|
1056
1117
|
throw new LoggingError("Attach must be called before accessing intervals");
|
|
1057
1118
|
}
|
|
1058
|
-
if (typeof
|
|
1119
|
+
if (typeof id !== "string") {
|
|
1059
1120
|
throw new LoggingError("Change API requires an ID that is a string");
|
|
1060
1121
|
}
|
|
1061
1122
|
if (!props) {
|
|
@@ -1072,7 +1133,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1072
1133
|
serializedInterval.end = undefined;
|
|
1073
1134
|
serializedInterval.properties = props;
|
|
1074
1135
|
serializedInterval.properties[reservedIntervalIdKey] = interval.getIntervalId();
|
|
1075
|
-
|
|
1136
|
+
const localSeq = this.getNextLocalSeq();
|
|
1137
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1138
|
+
this.emitter.emit("change", undefined, serializedInterval, { localSeq });
|
|
1076
1139
|
this.emit("propertyChanged", interval, deltaProps, true, undefined);
|
|
1077
1140
|
}
|
|
1078
1141
|
}
|
|
@@ -1088,7 +1151,7 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1088
1151
|
throw new LoggingError("Attach must be called before accessing intervals");
|
|
1089
1152
|
}
|
|
1090
1153
|
// Force id to be a string.
|
|
1091
|
-
if (typeof
|
|
1154
|
+
if (typeof id !== "string") {
|
|
1092
1155
|
throw new LoggingError("Change API requires an ID that is a string");
|
|
1093
1156
|
}
|
|
1094
1157
|
const interval = this.getIntervalById(id);
|
|
@@ -1101,11 +1164,12 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1101
1164
|
serializedInterval.start = start;
|
|
1102
1165
|
serializedInterval.end = end;
|
|
1103
1166
|
// 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.
|
|
1167
|
+
serializedInterval.properties = {
|
|
1168
|
+
[reservedIntervalIdKey]: interval.getIntervalId(),
|
|
1169
|
+
};
|
|
1170
|
+
const localSeq = this.getNextLocalSeq();
|
|
1171
|
+
this.localSeqToSerializedInterval.set(localSeq, serializedInterval);
|
|
1172
|
+
this.emitter.emit("change", undefined, serializedInterval, { localSeq });
|
|
1109
1173
|
this.addPendingChange(id, serializedInterval);
|
|
1110
1174
|
this.emitChange(newInterval, interval, true);
|
|
1111
1175
|
return newInterval;
|
|
@@ -1162,12 +1226,14 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1162
1226
|
return entries && entries.length !== 0;
|
|
1163
1227
|
}
|
|
1164
1228
|
/** @internal */
|
|
1165
|
-
ackChange(serializedInterval, local, op) {
|
|
1229
|
+
ackChange(serializedInterval, local, op, localOpMetadata) {
|
|
1166
1230
|
var _a, _b, _c, _d;
|
|
1167
1231
|
if (!this.localCollection) {
|
|
1168
1232
|
throw new LoggingError("Attach must be called before accessing intervals");
|
|
1169
1233
|
}
|
|
1170
1234
|
if (local) {
|
|
1235
|
+
assert(localOpMetadata !== undefined, 0x552 /* op metadata should be defined for local op */);
|
|
1236
|
+
this.localSeqToSerializedInterval.delete(localOpMetadata === null || localOpMetadata === void 0 ? void 0 : localOpMetadata.localSeq);
|
|
1171
1237
|
// This is an ack from the server. Remove the pending change.
|
|
1172
1238
|
this.removePendingChange(serializedInterval);
|
|
1173
1239
|
}
|
|
@@ -1205,7 +1271,8 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1205
1271
|
if (start !== undefined || end !== undefined) {
|
|
1206
1272
|
// If changeInterval gives us a new interval, work with that one. Otherwise keep working with
|
|
1207
1273
|
// the one we originally found in the tree.
|
|
1208
|
-
newInterval =
|
|
1274
|
+
newInterval =
|
|
1275
|
+
(_d = this.localCollection.changeInterval(interval, start, end, op)) !== null && _d !== void 0 ? _d : interval;
|
|
1209
1276
|
}
|
|
1210
1277
|
const deltaProps = newInterval.addProperties(newProps, true, op.sequenceNumber);
|
|
1211
1278
|
if (this.onDeserialize) {
|
|
@@ -1247,7 +1314,7 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1247
1314
|
* @internal
|
|
1248
1315
|
*/
|
|
1249
1316
|
rebaseLocalInterval(opName, serializedInterval, localSeq) {
|
|
1250
|
-
var _a, _b, _c, _d, _e, _f
|
|
1317
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1251
1318
|
if (!this.client) {
|
|
1252
1319
|
// If there's no associated mergeTree client, the originally submitted op is still correct.
|
|
1253
1320
|
return serializedInterval;
|
|
@@ -1255,44 +1322,36 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1255
1322
|
if (!this.attached) {
|
|
1256
1323
|
throw new LoggingError("attachSequence must be called");
|
|
1257
1324
|
}
|
|
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);
|
|
1325
|
+
const { intervalType, properties } = serializedInterval;
|
|
1326
|
+
const { start: startRebased, end: endRebased } = (_a = this.localSeqToRebasedInterval.get(localSeq)) !== null && _a !== void 0 ? _a : this.computeRebasedPositions(localSeq);
|
|
1263
1327
|
const intervalId = properties === null || properties === void 0 ? void 0 : properties[reservedIntervalIdKey];
|
|
1264
|
-
const localInterval = (
|
|
1328
|
+
const localInterval = (_b = this.localCollection) === null || _b === void 0 ? void 0 : _b.getIntervalById(intervalId);
|
|
1265
1329
|
const rebased = {
|
|
1266
1330
|
start: startRebased,
|
|
1267
1331
|
end: endRebased,
|
|
1268
1332
|
intervalType,
|
|
1269
|
-
sequenceNumber: (
|
|
1333
|
+
sequenceNumber: (_d = (_c = this.client) === null || _c === void 0 ? void 0 : _c.getCurrentSeq()) !== null && _d !== void 0 ? _d : 0,
|
|
1270
1334
|
properties,
|
|
1271
1335
|
};
|
|
1272
|
-
if (opName === "change" &&
|
|
1336
|
+
if (opName === "change" &&
|
|
1337
|
+
(this.hasPendingChangeStart(intervalId) || this.hasPendingChangeEnd(intervalId))) {
|
|
1273
1338
|
this.removePendingChange(serializedInterval);
|
|
1274
1339
|
this.addPendingChange(intervalId, rebased);
|
|
1275
1340
|
}
|
|
1276
|
-
// if the interval slid off the string, rebase the op to be a noop and
|
|
1277
|
-
|
|
1278
|
-
|
|
1341
|
+
// if the interval slid off the string, rebase the op to be a noop and delete the interval.
|
|
1342
|
+
if (startRebased === DetachedReferencePosition ||
|
|
1343
|
+
endRebased === DetachedReferencePosition) {
|
|
1279
1344
|
if (localInterval) {
|
|
1280
|
-
(
|
|
1345
|
+
(_e = this.localCollection) === null || _e === void 0 ? void 0 : _e.removeExistingInterval(localInterval);
|
|
1281
1346
|
}
|
|
1282
1347
|
return undefined;
|
|
1283
1348
|
}
|
|
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);
|
|
1349
|
+
if (localInterval !== undefined) {
|
|
1350
|
+
// we know we must be using `SequenceInterval` because `this.client` exists
|
|
1351
|
+
assert(localInterval instanceof SequenceInterval, 0x3a0 /* localInterval must be `SequenceInterval` when used with client */);
|
|
1352
|
+
// The rebased op may place this interval's endpoints on different segments. Calling `changeInterval` here
|
|
1353
|
+
// updates the local client's state to be consistent with the emitted op.
|
|
1354
|
+
(_f = this.localCollection) === null || _f === void 0 ? void 0 : _f.changeInterval(localInterval, startRebased, endRebased, undefined, localSeq);
|
|
1296
1355
|
}
|
|
1297
1356
|
return rebased;
|
|
1298
1357
|
}
|
|
@@ -1306,7 +1365,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1306
1365
|
return undefined;
|
|
1307
1366
|
}
|
|
1308
1367
|
const newSegoff = this.client.getSlideToSegment(segoff);
|
|
1309
|
-
const value =
|
|
1368
|
+
const value = segoff.segment === newSegoff.segment && segoff.offset === newSegoff.offset
|
|
1369
|
+
? undefined
|
|
1370
|
+
: newSegoff;
|
|
1310
1371
|
return value;
|
|
1311
1372
|
}
|
|
1312
1373
|
setSlideOnRemove(lref) {
|
|
@@ -1380,9 +1441,11 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1380
1441
|
}
|
|
1381
1442
|
}
|
|
1382
1443
|
/** @internal */
|
|
1383
|
-
ackAdd(serializedInterval, local, op) {
|
|
1444
|
+
ackAdd(serializedInterval, local, op, localOpMetadata) {
|
|
1384
1445
|
var _a;
|
|
1385
1446
|
if (local) {
|
|
1447
|
+
assert(localOpMetadata !== undefined, 0x553 /* op metadata should be defined for local op */);
|
|
1448
|
+
this.localSeqToSerializedInterval.delete(localOpMetadata.localSeq);
|
|
1386
1449
|
const id = (_a = serializedInterval.properties) === null || _a === void 0 ? void 0 : _a[reservedIntervalIdKey];
|
|
1387
1450
|
const localInterval = this.getIntervalById(id);
|
|
1388
1451
|
if (localInterval) {
|
|
@@ -1518,7 +1581,9 @@ export class IntervalCollection extends TypedEventEmitter {
|
|
|
1518
1581
|
*/
|
|
1519
1582
|
export function intervalLocatorFromEndpoint(potentialEndpoint) {
|
|
1520
1583
|
var _a;
|
|
1521
|
-
const { interval, [reservedRangeLabelsKey]: collectionNameArray
|
|
1522
|
-
return
|
|
1584
|
+
const { interval, [reservedRangeLabelsKey]: collectionNameArray } = (_a = potentialEndpoint.properties) !== null && _a !== void 0 ? _a : {};
|
|
1585
|
+
return interval && (collectionNameArray === null || collectionNameArray === void 0 ? void 0 : collectionNameArray.length) === 1
|
|
1586
|
+
? { label: collectionNameArray[0], interval }
|
|
1587
|
+
: undefined;
|
|
1523
1588
|
}
|
|
1524
1589
|
//# sourceMappingURL=intervalCollection.js.map
|