@fluidframework/sequence 2.0.0-internal.7.3.0 → 2.0.0-internal.7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/api-extractor-lint.json +13 -0
- package/api-extractor.json +8 -3
- package/api-report/sequence.api.md +87 -84
- package/dist/defaultMap.d.ts +3 -3
- package/dist/defaultMap.d.ts.map +1 -1
- package/dist/defaultMap.js +7 -2
- package/dist/defaultMap.js.map +1 -1
- package/dist/defaultMapInterfaces.d.ts +11 -10
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.js.map +1 -1
- package/dist/intervalCollection.d.ts +66 -12
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +50 -45
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
- package/dist/intervalIndex/endpointInRangeIndex.js +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/dist/intervalIndex/endpointIndex.d.ts +2 -2
- package/dist/intervalIndex/endpointIndex.js +1 -1
- package/dist/intervalIndex/endpointIndex.js.map +1 -1
- package/dist/intervalIndex/idIntervalIndex.d.ts +2 -2
- package/dist/intervalIndex/idIntervalIndex.js +1 -1
- package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
- package/dist/intervalIndex/intervalIndex.d.ts +1 -1
- package/dist/intervalIndex/intervalIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
- package/dist/intervalIndex/overlappingIntervalsIndex.js +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.d.ts +2 -2
- package/dist/intervalIndex/startpointInRangeIndex.js +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/dist/intervals/interval.d.ts +2 -7
- package/dist/intervals/interval.d.ts.map +1 -1
- package/dist/intervals/interval.js +1 -5
- package/dist/intervals/interval.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +15 -14
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js +3 -3
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +3 -12
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js +3 -11
- package/dist/intervals/sequenceInterval.js.map +1 -1
- package/dist/localValues.d.ts +2 -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/revertibles.d.ts +9 -15
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +7 -9
- package/dist/revertibles.js.map +1 -1
- package/dist/sequence-alpha.d.ts +226 -507
- package/dist/sequence-beta.d.ts +131 -1368
- package/dist/sequence-public.d.ts +131 -1368
- package/dist/sequence-untrimmed.d.ts +121 -90
- package/dist/sequence.d.ts +2 -3
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +1 -1
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceDeltaEvent.d.ts +4 -4
- package/dist/sequenceDeltaEvent.js +3 -3
- package/dist/sequenceDeltaEvent.js.map +1 -1
- package/dist/sequenceFactory.d.ts +1 -1
- package/dist/sequenceFactory.js +1 -1
- package/dist/sequenceFactory.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts +3 -3
- package/dist/sharedIntervalCollection.js +2 -2
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/dist/sharedSequence.d.ts +3 -3
- package/dist/sharedSequence.js +2 -2
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts +8 -5
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js +6 -3
- package/dist/sharedString.js.map +1 -1
- package/lib/defaultMap.d.ts +3 -3
- package/lib/defaultMap.d.ts.map +1 -1
- package/lib/defaultMap.js +29 -20
- package/lib/defaultMap.js.map +1 -1
- package/lib/defaultMapInterfaces.d.ts +11 -10
- package/lib/defaultMapInterfaces.d.ts.map +1 -1
- package/lib/defaultMapInterfaces.js +2 -1
- package/lib/defaultMapInterfaces.js.map +1 -1
- package/lib/index.js +45 -10
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +66 -12
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +174 -156
- package/lib/intervalCollection.js.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
- package/lib/intervalIndex/endpointInRangeIndex.js +18 -13
- package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/lib/intervalIndex/endpointIndex.d.ts +2 -2
- package/lib/intervalIndex/endpointIndex.js +14 -9
- package/lib/intervalIndex/endpointIndex.js.map +1 -1
- package/lib/intervalIndex/idIntervalIndex.d.ts +2 -2
- package/lib/intervalIndex/idIntervalIndex.js +9 -5
- package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
- package/lib/intervalIndex/index.js +19 -6
- package/lib/intervalIndex/index.js.map +1 -1
- package/lib/intervalIndex/intervalIndex.d.ts +1 -1
- package/lib/intervalIndex/intervalIndex.js +2 -1
- package/lib/intervalIndex/intervalIndex.js.map +1 -1
- package/lib/intervalIndex/intervalIndexUtils.js +8 -4
- package/lib/intervalIndex/intervalIndexUtils.js.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
- package/lib/intervalIndex/overlappingIntervalsIndex.js +16 -11
- package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +15 -11
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +2 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.js +2 -1
- package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.d.ts +2 -2
- package/lib/intervalIndex/startpointInRangeIndex.js +18 -13
- package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/lib/intervalTree.js +9 -4
- package/lib/intervalTree.js.map +1 -1
- package/lib/intervals/index.js +18 -3
- package/lib/intervals/index.js.map +1 -1
- package/lib/intervals/interval.d.ts +2 -7
- package/lib/intervals/interval.d.ts.map +1 -1
- package/lib/intervals/interval.js +19 -18
- package/lib/intervals/interval.js.map +1 -1
- package/lib/intervals/intervalUtils.d.ts +15 -14
- package/lib/intervals/intervalUtils.d.ts.map +1 -1
- package/lib/intervals/intervalUtils.js +21 -16
- package/lib/intervals/intervalUtils.js.map +1 -1
- package/lib/intervals/sequenceInterval.d.ts +3 -12
- package/lib/intervals/sequenceInterval.d.ts.map +1 -1
- package/lib/intervals/sequenceInterval.js +68 -70
- package/lib/intervals/sequenceInterval.js.map +1 -1
- package/lib/localValues.d.ts +2 -1
- package/lib/localValues.d.ts.map +1 -1
- package/lib/localValues.js +9 -4
- package/lib/localValues.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +5 -2
- package/lib/packageVersion.js.map +1 -1
- package/lib/revertibles.d.ts +9 -15
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +76 -68
- package/lib/revertibles.js.map +1 -1
- package/lib/sequence-alpha.d.ts +226 -507
- package/lib/sequence-beta.d.ts +131 -1368
- package/lib/sequence-public.d.ts +131 -1368
- package/lib/sequence-untrimmed.d.ts +121 -90
- package/lib/sequence.d.ts +2 -3
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +45 -40
- package/lib/sequence.js.map +1 -1
- package/lib/sequenceDeltaEvent.d.ts +4 -4
- package/lib/sequenceDeltaEvent.js +16 -10
- package/lib/sequenceDeltaEvent.js.map +1 -1
- package/lib/sequenceFactory.d.ts +1 -1
- package/lib/sequenceFactory.js +14 -10
- package/lib/sequenceFactory.js.map +1 -1
- package/lib/sharedIntervalCollection.d.ts +3 -3
- package/lib/sharedIntervalCollection.js +20 -15
- package/lib/sharedIntervalCollection.js.map +1 -1
- package/lib/sharedSequence.d.ts +3 -3
- package/lib/sharedSequence.js +13 -8
- package/lib/sharedSequence.js.map +1 -1
- package/lib/sharedString.d.ts +8 -5
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js +27 -19
- package/lib/sharedString.js.map +1 -1
- package/package.json +22 -20
- package/sequence.test-files.tar +0 -0
- package/src/defaultMap.ts +22 -16
- package/src/defaultMapInterfaces.ts +15 -12
- package/src/intervalCollection.ts +131 -67
- package/src/intervalIndex/endpointInRangeIndex.ts +2 -2
- package/src/intervalIndex/endpointIndex.ts +2 -2
- package/src/intervalIndex/idIntervalIndex.ts +2 -2
- package/src/intervalIndex/intervalIndex.ts +1 -1
- package/src/intervalIndex/overlappingIntervalsIndex.ts +2 -2
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +1 -1
- package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -1
- package/src/intervalIndex/startpointInRangeIndex.ts +2 -2
- package/src/intervals/interval.ts +2 -7
- package/src/intervals/intervalUtils.ts +15 -15
- package/src/intervals/sequenceInterval.ts +3 -12
- package/src/localValues.ts +2 -1
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +9 -15
- package/src/sequence.ts +2 -3
- package/src/sequenceDeltaEvent.ts +4 -4
- package/src/sequenceFactory.ts +1 -1
- package/src/sharedIntervalCollection.ts +3 -3
- package/src/sharedSequence.ts +3 -3
- package/src/sharedString.ts +8 -5
package/lib/localValues.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { IFluidHandle } from "@fluidframework/core-interfaces";
|
|
6
6
|
import { IFluidSerializer } from "@fluidframework/shared-object-base";
|
|
7
7
|
import { ISerializableValue, ISerializedValue, IValueOperation, IValueType } from "./defaultMapInterfaces";
|
|
8
|
+
import { IntervalOpType } from "./intervals";
|
|
8
9
|
/**
|
|
9
10
|
* A local value to be stored in a container type DDS.
|
|
10
11
|
*/
|
|
@@ -53,6 +54,6 @@ export declare class ValueTypeLocalValue<T> implements ILocalValue<T> {
|
|
|
53
54
|
* @param opName - The name of the operation that needs processing
|
|
54
55
|
* @returns The object which can process the given op
|
|
55
56
|
*/
|
|
56
|
-
getOpHandler(opName:
|
|
57
|
+
getOpHandler(opName: IntervalOpType): IValueOperation<T>;
|
|
57
58
|
}
|
|
58
59
|
//# sourceMappingURL=localValues.d.ts.map
|
package/lib/localValues.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localValues.d.ts","sourceRoot":"","sources":["../src/localValues.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oCAAoC,CAAC;AACxF,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"localValues.d.ts","sourceRoot":"","sources":["../src/localValues.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oCAAoC,CAAC;AACxF,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IACnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAElB;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAAC;CACnF;AAED,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,YAAY,GAChB,kBAAkB,CAMpB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;aAO3C,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP3B;;;;OAIG;gBAEc,KAAK,EAAE,CAAC,EACP,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAG1C;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB;IAUzF;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;CAQ/D"}
|
package/lib/localValues.js
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*!
|
|
2
3
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
4
|
* Licensed under the MIT License.
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ValueTypeLocalValue = exports.makeSerializable = void 0;
|
|
8
|
+
const shared_object_base_1 = require("@fluidframework/shared-object-base");
|
|
9
|
+
function makeSerializable(localValue, serializer, bind) {
|
|
7
10
|
const value = localValue.makeSerialized(serializer, bind);
|
|
8
11
|
return {
|
|
9
12
|
type: value.type,
|
|
10
13
|
value: value.value && JSON.parse(value.value),
|
|
11
14
|
};
|
|
12
15
|
}
|
|
16
|
+
exports.makeSerializable = makeSerializable;
|
|
13
17
|
/**
|
|
14
18
|
* Manages a contained value type.
|
|
15
19
|
*
|
|
16
20
|
* @alpha
|
|
17
21
|
*/
|
|
18
|
-
|
|
22
|
+
class ValueTypeLocalValue {
|
|
19
23
|
/**
|
|
20
24
|
* Create a new ValueTypeLocalValue.
|
|
21
25
|
* @param value - The instance of the value type stored within
|
|
@@ -36,7 +40,7 @@ export class ValueTypeLocalValue {
|
|
|
36
40
|
*/
|
|
37
41
|
makeSerialized(serializer, bind) {
|
|
38
42
|
const storedValueType = this.valueType.factory.store(this.value);
|
|
39
|
-
const value = serializeHandles(storedValueType, serializer, bind);
|
|
43
|
+
const value = (0, shared_object_base_1.serializeHandles)(storedValueType, serializer, bind);
|
|
40
44
|
return {
|
|
41
45
|
type: this.type,
|
|
42
46
|
value,
|
|
@@ -55,4 +59,5 @@ export class ValueTypeLocalValue {
|
|
|
55
59
|
return handler;
|
|
56
60
|
}
|
|
57
61
|
}
|
|
62
|
+
exports.ValueTypeLocalValue = ValueTypeLocalValue;
|
|
58
63
|
//# sourceMappingURL=localValues.js.map
|
package/lib/localValues.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localValues.js","sourceRoot":"","sources":["../src/localValues.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"localValues.js","sourceRoot":"","sources":["../src/localValues.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,2EAAwF;AAgCxF,SAAgB,gBAAgB,CAC/B,UAAuB,EACvB,UAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;KAC7C,CAAC;AACH,CAAC;AAVD,4CAUC;AAED;;;;GAIG;AACH,MAAa,mBAAmB;IAC/B;;;;OAIG;IACH,YACiB,KAAQ,EACP,SAAwB;QADzB,UAAK,GAAL,KAAK,CAAG;QACP,cAAS,GAAT,SAAS,CAAe;IACvC,CAAC;IAEJ;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,cAAc,CAAC,UAA4B,EAAE,IAAkB;QACrE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAA,qCAAgB,EAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAElE,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAsB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACxC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AA5CD,kDA4CC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { IFluidSerializer, serializeHandles } from \"@fluidframework/shared-object-base\";\nimport {\n\tISerializableValue,\n\tISerializedValue,\n\tIValueOperation,\n\tIValueType,\n} from \"./defaultMapInterfaces\";\nimport { IntervalOpType } from \"./intervals\";\n\n/**\n * A local value to be stored in a container type DDS.\n */\nexport interface ILocalValue<T = any> {\n\t/**\n\t * Type indicator of the value stored within.\n\t */\n\treadonly type: string;\n\n\t/**\n\t * The in-memory value stored within.\n\t */\n\treadonly value: T;\n\n\t/**\n\t * Retrieve the serialized form of the value stored within.\n\t * @param serializer - Data store runtime's serializer\n\t * @param bind - Container type's handle\n\t * @returns The serialized form of the contained value\n\t */\n\tmakeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue;\n}\n\nexport function makeSerializable(\n\tlocalValue: ILocalValue,\n\tserializer: IFluidSerializer,\n\tbind: IFluidHandle,\n): ISerializableValue {\n\tconst value = localValue.makeSerialized(serializer, bind);\n\treturn {\n\t\ttype: value.type,\n\t\tvalue: value.value && JSON.parse(value.value),\n\t};\n}\n\n/**\n * Manages a contained value type.\n *\n * @alpha\n */\nexport class ValueTypeLocalValue<T> implements ILocalValue<T> {\n\t/**\n\t * Create a new ValueTypeLocalValue.\n\t * @param value - The instance of the value type stored within\n\t * @param valueType - The type object of the value type stored within\n\t */\n\tconstructor(\n\t\tpublic readonly value: T,\n\t\tprivate readonly valueType: IValueType<T>,\n\t) {}\n\n\t/**\n\t * {@inheritDoc ILocalValue.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn this.valueType.name;\n\t}\n\n\t/**\n\t * {@inheritDoc ILocalValue.makeSerialized}\n\t */\n\tpublic makeSerialized(serializer: IFluidSerializer, bind: IFluidHandle): ISerializedValue {\n\t\tconst storedValueType = this.valueType.factory.store(this.value);\n\t\tconst value = serializeHandles(storedValueType, serializer, bind);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tvalue,\n\t\t};\n\t}\n\n\t/**\n\t * Get the handler for a given op of this value type.\n\t * @param opName - The name of the operation that needs processing\n\t * @returns The object which can process the given op\n\t */\n\tpublic getOpHandler(opName: IntervalOpType): IValueOperation<T> {\n\t\tconst handler = this.valueType.ops.get(opName);\n\t\tif (!handler) {\n\t\t\tthrow new Error(\"Unknown type message\");\n\t\t}\n\n\t\treturn handler;\n\t}\n}\n"]}
|
package/lib/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/sequence";
|
|
8
|
-
export declare const pkgVersion = "2.0.0-internal.7.
|
|
8
|
+
export declare const pkgVersion = "2.0.0-internal.7.4.0";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
package/lib/packageVersion.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*!
|
|
2
3
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
4
|
* Licensed under the MIT License.
|
|
4
5
|
*
|
|
5
6
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.pkgVersion = exports.pkgName = void 0;
|
|
10
|
+
exports.pkgName = "@fluidframework/sequence";
|
|
11
|
+
exports.pkgVersion = "2.0.0-internal.7.4.0";
|
|
9
12
|
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,0BAA0B,CAAC;AACrC,QAAA,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/sequence\";\nexport const pkgVersion = \"2.0.0-internal.7.4.0\";\n"]}
|
package/lib/revertibles.d.ts
CHANGED
|
@@ -8,15 +8,12 @@ import { SharedString } from "./sharedString";
|
|
|
8
8
|
import { SequenceDeltaEvent } from "./sequenceDeltaEvent";
|
|
9
9
|
/**
|
|
10
10
|
* Data for undoing edits on SharedStrings and Intervals.
|
|
11
|
-
*
|
|
12
|
-
* @alpha
|
|
11
|
+
* @internal
|
|
13
12
|
*/
|
|
14
13
|
export type SharedStringRevertible = MergeTreeDeltaRevertible | IntervalRevertible;
|
|
15
|
-
type IntervalOpType = (typeof IntervalOpType)[keyof typeof IntervalOpType];
|
|
16
14
|
/**
|
|
17
15
|
* Data for undoing edits affecting Intervals.
|
|
18
|
-
*
|
|
19
|
-
* @alpha
|
|
16
|
+
* @internal
|
|
20
17
|
*/
|
|
21
18
|
export type IntervalRevertible = {
|
|
22
19
|
event: typeof IntervalOpType.CHANGE;
|
|
@@ -52,41 +49,38 @@ export type IntervalRevertible = {
|
|
|
52
49
|
};
|
|
53
50
|
/**
|
|
54
51
|
* Create revertibles for adding an interval
|
|
55
|
-
* @
|
|
52
|
+
* @internal
|
|
56
53
|
*/
|
|
57
54
|
export declare function appendAddIntervalToRevertibles(interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
58
55
|
/**
|
|
59
56
|
* Create revertibles for deleting an interval
|
|
60
|
-
* @
|
|
57
|
+
* @internal
|
|
61
58
|
*/
|
|
62
59
|
export declare function appendDeleteIntervalToRevertibles(string: SharedString, interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
63
60
|
/**
|
|
64
61
|
* Create revertibles for moving endpoints of an interval
|
|
65
|
-
* @
|
|
62
|
+
* @internal
|
|
66
63
|
*/
|
|
67
64
|
export declare function appendChangeIntervalToRevertibles(string: SharedString, newInterval: SequenceInterval, previousInterval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
68
65
|
/**
|
|
69
66
|
* Create revertibles for changing properties of an interval
|
|
70
|
-
* @
|
|
67
|
+
* @internal
|
|
71
68
|
*/
|
|
72
69
|
export declare function appendIntervalPropertyChangedToRevertibles(interval: SequenceInterval, deltas: PropertySet, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
73
70
|
/**
|
|
74
71
|
* Create revertibles for SharedStringDeltas, handling indirectly modified intervals
|
|
75
72
|
* (e.g. reverting remove of a range that contains an interval will move the interval back)
|
|
76
|
-
*
|
|
77
|
-
* @alpha
|
|
73
|
+
* @internal
|
|
78
74
|
*/
|
|
79
75
|
export declare function appendSharedStringDeltaToRevertibles(string: SharedString, delta: SequenceDeltaEvent, revertibles: SharedStringRevertible[]): void;
|
|
80
76
|
/**
|
|
81
77
|
* Clean up resources held by revertibles that are no longer needed.
|
|
82
|
-
* @
|
|
78
|
+
* @internal
|
|
83
79
|
*/
|
|
84
80
|
export declare function discardSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
|
|
85
81
|
/**
|
|
86
82
|
* Invoke revertibles to reverse prior edits
|
|
87
|
-
*
|
|
88
|
-
* @alpha
|
|
83
|
+
* @internal
|
|
89
84
|
*/
|
|
90
85
|
export declare function revertSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
|
|
91
|
-
export {};
|
|
92
86
|
//# sourceMappingURL=revertibles.d.ts.map
|
package/lib/revertibles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revertibles.d.ts","sourceRoot":"","sources":["../src/revertibles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAIN,sBAAsB,EAEtB,wBAAwB,EAExB,WAAW,EAOX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAuB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/E
|
|
1
|
+
{"version":3,"file":"revertibles.d.ts","sourceRoot":"","sources":["../src/revertibles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAIN,sBAAsB,EAEtB,wBAAwB,EAExB,WAAW,EAOX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAuB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG,kBAAkB,CAAC;AAInF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC3B;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,GAAG,EAAE,sBAAsB,CAAC;CAC3B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC;IACjC,QAAQ,EAAE,gBAAgB,CAAC;CAC1B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,GAAG,EAAE,sBAAsB,CAAC;CAC3B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC9C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,WAAW,CAAC;CAC3B,GACD;IACA,KAAK,EAAE,OAAO,cAAc,CAAC,eAAe,CAAC;IAC7C,SAAS,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IAEJ,cAAc,EAAE;QACf,UAAU,EAAE,kBAAkB,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KACjB,EAAE,CAAC;IACJ,mBAAmB,EAAE,wBAAwB,CAAC;CAC7C,CAAC;AAaL;;;GAGG;AACH,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,sBAAsB,EAAE,4BAQrC;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAChD,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,sBAAsB,EAAE,4BAqCrC;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAChD,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,gBAAgB,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,sBAAsB,EAAE,4BAwCrC;AAED;;;GAGG;AACH,wBAAgB,0CAA0C,CACzD,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,sBAAsB,EAAE,4BASrC;AA2CD;;;;GAIG;AACH,wBAAgB,oCAAoC,CACnD,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,sBAAsB,EAAE,QAoFrC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC7C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,sBAAsB,EAAE,QAUrC;AAoRD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC5C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,sBAAsB,EAAE,QA8BrC"}
|
package/lib/revertibles.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/*!
|
|
2
3
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
4
|
* Licensed under the MIT License.
|
|
4
5
|
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.revertSharedStringRevertibles = exports.discardSharedStringRevertibles = exports.appendSharedStringDeltaToRevertibles = exports.appendIntervalPropertyChangedToRevertibles = exports.appendChangeIntervalToRevertibles = exports.appendDeleteIntervalToRevertibles = exports.appendAddIntervalToRevertibles = void 0;
|
|
5
8
|
/* eslint-disable import/no-deprecated */
|
|
6
9
|
/* eslint-disable no-bitwise */
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
const core_utils_1 = require("@fluidframework/core-utils");
|
|
11
|
+
const merge_tree_1 = require("@fluidframework/merge-tree");
|
|
12
|
+
const intervalCollection_1 = require("./intervalCollection");
|
|
13
|
+
const intervals_1 = require("./intervals");
|
|
11
14
|
const idMap = new Map();
|
|
12
15
|
function getUpdatedIdFromInterval(interval) {
|
|
13
16
|
const maybeId = interval.getIntervalId();
|
|
@@ -18,32 +21,33 @@ function getUpdatedId(intervalId) {
|
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Create revertibles for adding an interval
|
|
21
|
-
* @
|
|
24
|
+
* @internal
|
|
22
25
|
*/
|
|
23
|
-
|
|
26
|
+
function appendAddIntervalToRevertibles(interval, revertibles) {
|
|
24
27
|
revertibles.push({
|
|
25
|
-
event: IntervalOpType.ADD,
|
|
28
|
+
event: intervals_1.IntervalOpType.ADD,
|
|
26
29
|
interval,
|
|
27
30
|
});
|
|
28
31
|
return revertibles;
|
|
29
32
|
}
|
|
33
|
+
exports.appendAddIntervalToRevertibles = appendAddIntervalToRevertibles;
|
|
30
34
|
/**
|
|
31
35
|
* Create revertibles for deleting an interval
|
|
32
|
-
* @
|
|
36
|
+
* @internal
|
|
33
37
|
*/
|
|
34
|
-
|
|
38
|
+
function appendDeleteIntervalToRevertibles(string, interval, revertibles) {
|
|
35
39
|
const startSeg = interval.start.getSegment();
|
|
36
40
|
const startType = startSeg.removedSeq !== undefined
|
|
37
|
-
? ReferenceType.SlideOnRemove | ReferenceType.RangeBegin
|
|
38
|
-
: ReferenceType.StayOnRemove | ReferenceType.RangeBegin;
|
|
41
|
+
? merge_tree_1.ReferenceType.SlideOnRemove | merge_tree_1.ReferenceType.RangeBegin
|
|
42
|
+
: merge_tree_1.ReferenceType.StayOnRemove | merge_tree_1.ReferenceType.RangeBegin;
|
|
39
43
|
const endSeg = interval.end.getSegment();
|
|
40
44
|
const endType = endSeg.removedSeq !== undefined
|
|
41
|
-
? ReferenceType.SlideOnRemove | ReferenceType.RangeEnd
|
|
42
|
-
: ReferenceType.StayOnRemove | ReferenceType.RangeEnd;
|
|
45
|
+
? merge_tree_1.ReferenceType.SlideOnRemove | merge_tree_1.ReferenceType.RangeEnd
|
|
46
|
+
: merge_tree_1.ReferenceType.StayOnRemove | merge_tree_1.ReferenceType.RangeEnd;
|
|
43
47
|
const startRef = string.createLocalReferencePosition(startSeg, interval.start.getOffset(), startType, undefined, interval.start.slidingPreference);
|
|
44
48
|
const endRef = string.createLocalReferencePosition(endSeg, interval.end.getOffset(), endType, undefined, interval.end.slidingPreference);
|
|
45
49
|
const revertible = {
|
|
46
|
-
event: IntervalOpType.DELETE,
|
|
50
|
+
event: intervals_1.IntervalOpType.DELETE,
|
|
47
51
|
interval,
|
|
48
52
|
start: startRef,
|
|
49
53
|
end: endRef,
|
|
@@ -53,26 +57,27 @@ export function appendDeleteIntervalToRevertibles(string, interval, revertibles)
|
|
|
53
57
|
revertibles.push(revertible);
|
|
54
58
|
return revertibles;
|
|
55
59
|
}
|
|
60
|
+
exports.appendDeleteIntervalToRevertibles = appendDeleteIntervalToRevertibles;
|
|
56
61
|
/**
|
|
57
62
|
* Create revertibles for moving endpoints of an interval
|
|
58
|
-
* @
|
|
63
|
+
* @internal
|
|
59
64
|
*/
|
|
60
|
-
|
|
65
|
+
function appendChangeIntervalToRevertibles(string, newInterval, previousInterval, revertibles) {
|
|
61
66
|
const startSeg = previousInterval.start.getSegment();
|
|
62
67
|
// This logic is needed because the ReferenceType StayOnRemove cannot be used
|
|
63
68
|
// on removed segments. This works for revertibles because the old position of the
|
|
64
69
|
// interval within the removed segment is handled by the remove range revertible.
|
|
65
70
|
const startType = startSeg.removedSeq !== undefined
|
|
66
|
-
? ReferenceType.SlideOnRemove | ReferenceType.RangeBegin
|
|
67
|
-
: ReferenceType.StayOnRemove | ReferenceType.RangeBegin;
|
|
71
|
+
? merge_tree_1.ReferenceType.SlideOnRemove | merge_tree_1.ReferenceType.RangeBegin
|
|
72
|
+
: merge_tree_1.ReferenceType.StayOnRemove | merge_tree_1.ReferenceType.RangeBegin;
|
|
68
73
|
const endSeg = previousInterval.end.getSegment();
|
|
69
74
|
const endType = endSeg.removedSeq !== undefined
|
|
70
|
-
? ReferenceType.SlideOnRemove | ReferenceType.RangeEnd
|
|
71
|
-
: ReferenceType.StayOnRemove | ReferenceType.RangeEnd;
|
|
75
|
+
? merge_tree_1.ReferenceType.SlideOnRemove | merge_tree_1.ReferenceType.RangeEnd
|
|
76
|
+
: merge_tree_1.ReferenceType.StayOnRemove | merge_tree_1.ReferenceType.RangeEnd;
|
|
72
77
|
const prevStartRef = string.createLocalReferencePosition(startSeg, previousInterval.start.getOffset(), startType, undefined, previousInterval.start.slidingPreference);
|
|
73
78
|
const prevEndRef = string.createLocalReferencePosition(endSeg, previousInterval.end.getOffset(), endType, undefined, previousInterval.end.slidingPreference);
|
|
74
79
|
const revertible = {
|
|
75
|
-
event: IntervalOpType.CHANGE,
|
|
80
|
+
event: intervals_1.IntervalOpType.CHANGE,
|
|
76
81
|
interval: newInterval,
|
|
77
82
|
start: prevStartRef,
|
|
78
83
|
end: prevEndRef,
|
|
@@ -82,29 +87,31 @@ export function appendChangeIntervalToRevertibles(string, newInterval, previousI
|
|
|
82
87
|
revertibles.push(revertible);
|
|
83
88
|
return revertibles;
|
|
84
89
|
}
|
|
90
|
+
exports.appendChangeIntervalToRevertibles = appendChangeIntervalToRevertibles;
|
|
85
91
|
/**
|
|
86
92
|
* Create revertibles for changing properties of an interval
|
|
87
|
-
* @
|
|
93
|
+
* @internal
|
|
88
94
|
*/
|
|
89
|
-
|
|
95
|
+
function appendIntervalPropertyChangedToRevertibles(interval, deltas, revertibles) {
|
|
90
96
|
revertibles.push({
|
|
91
|
-
event: IntervalOpType.PROPERTY_CHANGED,
|
|
97
|
+
event: intervals_1.IntervalOpType.PROPERTY_CHANGED,
|
|
92
98
|
interval,
|
|
93
99
|
propertyDeltas: deltas,
|
|
94
100
|
});
|
|
95
101
|
return revertibles;
|
|
96
102
|
}
|
|
103
|
+
exports.appendIntervalPropertyChangedToRevertibles = appendIntervalPropertyChangedToRevertibles;
|
|
97
104
|
function addIfIntervalEndpoint(ref, segmentLengths, startIntervals, endIntervals) {
|
|
98
|
-
if (refTypeIncludesFlag(ref.refType, ReferenceType.RangeBegin)) {
|
|
105
|
+
if ((0, merge_tree_1.refTypeIncludesFlag)(ref.refType, merge_tree_1.ReferenceType.RangeBegin)) {
|
|
99
106
|
const interval = ref.properties?.interval;
|
|
100
|
-
if (interval && interval instanceof SequenceInterval) {
|
|
107
|
+
if (interval && interval instanceof intervals_1.SequenceInterval) {
|
|
101
108
|
startIntervals.push({ offset: segmentLengths + interval.start.getOffset(), interval });
|
|
102
109
|
return true;
|
|
103
110
|
}
|
|
104
111
|
}
|
|
105
|
-
else if (refTypeIncludesFlag(ref.refType, ReferenceType.RangeEnd)) {
|
|
112
|
+
else if ((0, merge_tree_1.refTypeIncludesFlag)(ref.refType, merge_tree_1.ReferenceType.RangeEnd)) {
|
|
106
113
|
const interval = ref.properties?.interval;
|
|
107
|
-
if (interval && interval instanceof SequenceInterval) {
|
|
114
|
+
if (interval && interval instanceof intervals_1.SequenceInterval) {
|
|
108
115
|
endIntervals.push({ offset: segmentLengths + interval.end.getOffset(), interval });
|
|
109
116
|
return true;
|
|
110
117
|
}
|
|
@@ -117,21 +124,20 @@ function addIfRevertibleRef(ref, segmentLengths, revertibleRefs) {
|
|
|
117
124
|
revertibleRefs.push({
|
|
118
125
|
revertible,
|
|
119
126
|
offset: segmentLengths + ref.getOffset(),
|
|
120
|
-
isStart: refTypeIncludesFlag(ref.refType, ReferenceType.RangeBegin),
|
|
127
|
+
isStart: (0, merge_tree_1.refTypeIncludesFlag)(ref.refType, merge_tree_1.ReferenceType.RangeBegin),
|
|
121
128
|
});
|
|
122
129
|
}
|
|
123
130
|
}
|
|
124
131
|
/**
|
|
125
132
|
* Create revertibles for SharedStringDeltas, handling indirectly modified intervals
|
|
126
133
|
* (e.g. reverting remove of a range that contains an interval will move the interval back)
|
|
127
|
-
*
|
|
128
|
-
* @alpha
|
|
134
|
+
* @internal
|
|
129
135
|
*/
|
|
130
|
-
|
|
136
|
+
function appendSharedStringDeltaToRevertibles(string, delta, revertibles) {
|
|
131
137
|
if (delta.ranges.length === 0) {
|
|
132
138
|
return;
|
|
133
139
|
}
|
|
134
|
-
if (delta.deltaOperation === MergeTreeDeltaType.REMOVE) {
|
|
140
|
+
if (delta.deltaOperation === merge_tree_1.MergeTreeDeltaType.REMOVE) {
|
|
135
141
|
const startIntervals = [];
|
|
136
142
|
const endIntervals = [];
|
|
137
143
|
const revertibleRefs = [];
|
|
@@ -149,10 +155,10 @@ export function appendSharedStringDeltaToRevertibles(string, delta, revertibles)
|
|
|
149
155
|
}
|
|
150
156
|
if (startIntervals.length > 0 || endIntervals.length > 0 || revertibleRefs.length > 0) {
|
|
151
157
|
const removeRevertibles = [];
|
|
152
|
-
appendToMergeTreeDeltaRevertibles(delta.deltaArgs, removeRevertibles);
|
|
153
|
-
assert(removeRevertibles.length === 1, 0x6c4 /* Remove revertible should be a single delta */);
|
|
158
|
+
(0, merge_tree_1.appendToMergeTreeDeltaRevertibles)(delta.deltaArgs, removeRevertibles);
|
|
159
|
+
(0, core_utils_1.assert)(removeRevertibles.length === 1, 0x6c4 /* Remove revertible should be a single delta */);
|
|
154
160
|
const revertible = {
|
|
155
|
-
event: IntervalOpType.POSITION_REMOVE,
|
|
161
|
+
event: intervals_1.IntervalOpType.POSITION_REMOVE,
|
|
156
162
|
intervals: [],
|
|
157
163
|
revertibleRefs,
|
|
158
164
|
mergeTreeRevertible: removeRevertibles[0],
|
|
@@ -190,29 +196,31 @@ export function appendSharedStringDeltaToRevertibles(string, delta, revertibles)
|
|
|
190
196
|
// Handle any merge tree delta that is not REMOVE or is REMOVE with no interval endpoints
|
|
191
197
|
const mergeTreeRevertibles = [];
|
|
192
198
|
// Allow merging MergeTreeDeltaRevertible with previous
|
|
193
|
-
if (revertibles.length > 0 && isMergeTreeDeltaRevertible(revertibles[revertibles.length - 1])) {
|
|
199
|
+
if (revertibles.length > 0 && (0, merge_tree_1.isMergeTreeDeltaRevertible)(revertibles[revertibles.length - 1])) {
|
|
194
200
|
mergeTreeRevertibles.push(revertibles.pop());
|
|
195
201
|
}
|
|
196
|
-
appendToMergeTreeDeltaRevertibles(delta.deltaArgs, mergeTreeRevertibles);
|
|
202
|
+
(0, merge_tree_1.appendToMergeTreeDeltaRevertibles)(delta.deltaArgs, mergeTreeRevertibles);
|
|
197
203
|
revertibles.push(...mergeTreeRevertibles);
|
|
198
204
|
}
|
|
205
|
+
exports.appendSharedStringDeltaToRevertibles = appendSharedStringDeltaToRevertibles;
|
|
199
206
|
/**
|
|
200
207
|
* Clean up resources held by revertibles that are no longer needed.
|
|
201
|
-
* @
|
|
208
|
+
* @internal
|
|
202
209
|
*/
|
|
203
|
-
|
|
210
|
+
function discardSharedStringRevertibles(sharedString, revertibles) {
|
|
204
211
|
revertibles.forEach((r) => {
|
|
205
|
-
if (isMergeTreeDeltaRevertible(r)) {
|
|
206
|
-
discardMergeTreeDeltaRevertible([r]);
|
|
212
|
+
if ((0, merge_tree_1.isMergeTreeDeltaRevertible)(r)) {
|
|
213
|
+
(0, merge_tree_1.discardMergeTreeDeltaRevertible)([r]);
|
|
207
214
|
}
|
|
208
|
-
else if (r.event === IntervalOpType.CHANGE || r.event === IntervalOpType.DELETE) {
|
|
215
|
+
else if (r.event === intervals_1.IntervalOpType.CHANGE || r.event === intervals_1.IntervalOpType.DELETE) {
|
|
209
216
|
sharedString.removeLocalReferencePosition(r.start);
|
|
210
217
|
sharedString.removeLocalReferencePosition(r.end);
|
|
211
218
|
}
|
|
212
219
|
});
|
|
213
220
|
}
|
|
221
|
+
exports.discardSharedStringRevertibles = discardSharedStringRevertibles;
|
|
214
222
|
function getSlidePosition(string, lref, pos) {
|
|
215
|
-
const slide = getSlideToSegoff({ segment: lref.getSegment(), offset: undefined }, lref.slidingPreference);
|
|
223
|
+
const slide = (0, merge_tree_1.getSlideToSegoff)({ segment: lref.getSegment(), offset: undefined }, lref.slidingPreference);
|
|
216
224
|
return slide?.segment !== undefined &&
|
|
217
225
|
slide.offset !== undefined &&
|
|
218
226
|
string.getPosition(slide.segment) !== -1 &&
|
|
@@ -227,8 +235,8 @@ function isValidRange(start, startSlide, end, endSlide, string) {
|
|
|
227
235
|
end < string.getLength() &&
|
|
228
236
|
(start < end ||
|
|
229
237
|
(start === end &&
|
|
230
|
-
(startSlide === SlidingPreference.FORWARD ||
|
|
231
|
-
endSlide !== SlidingPreference.FORWARD))));
|
|
238
|
+
(startSlide === merge_tree_1.SlidingPreference.FORWARD ||
|
|
239
|
+
endSlide !== merge_tree_1.SlidingPreference.FORWARD))));
|
|
232
240
|
}
|
|
233
241
|
function revertLocalAdd(string, revertible) {
|
|
234
242
|
const id = getUpdatedIdFromInterval(revertible.interval);
|
|
@@ -236,17 +244,17 @@ function revertLocalAdd(string, revertible) {
|
|
|
236
244
|
string.getIntervalCollection(label).removeIntervalById(id);
|
|
237
245
|
}
|
|
238
246
|
function createSequencePlace(pos, newSlidingPreference, oldSlidingPreference = undefined) {
|
|
239
|
-
return newSlidingPreference === SlidingPreference.BACKWARD ||
|
|
240
|
-
(newSlidingPreference === undefined && oldSlidingPreference === SlidingPreference.BACKWARD)
|
|
247
|
+
return newSlidingPreference === merge_tree_1.SlidingPreference.BACKWARD ||
|
|
248
|
+
(newSlidingPreference === undefined && oldSlidingPreference === merge_tree_1.SlidingPreference.BACKWARD)
|
|
241
249
|
? {
|
|
242
250
|
pos,
|
|
243
|
-
side: Side.After,
|
|
251
|
+
side: intervalCollection_1.Side.After,
|
|
244
252
|
}
|
|
245
|
-
: newSlidingPreference === SlidingPreference.FORWARD &&
|
|
246
|
-
oldSlidingPreference === SlidingPreference.BACKWARD
|
|
253
|
+
: newSlidingPreference === merge_tree_1.SlidingPreference.FORWARD &&
|
|
254
|
+
oldSlidingPreference === merge_tree_1.SlidingPreference.BACKWARD
|
|
247
255
|
? {
|
|
248
256
|
pos,
|
|
249
|
-
side: Side.Before,
|
|
257
|
+
side: intervalCollection_1.Side.Before,
|
|
250
258
|
}
|
|
251
259
|
: pos; // Avoid setting side if possible since stickiness may not be enabled
|
|
252
260
|
}
|
|
@@ -320,7 +328,7 @@ function newEndpointPosition(offset, restoredRanges, sharedString) {
|
|
|
320
328
|
const pos = newPosition(offset, restoredRanges);
|
|
321
329
|
return pos === undefined ? undefined : sharedString.getPosition(pos.segment) + pos.offset;
|
|
322
330
|
}
|
|
323
|
-
class SortedRangeSet extends SortedSet {
|
|
331
|
+
class SortedRangeSet extends merge_tree_1.SortedSet {
|
|
324
332
|
getKey(item) {
|
|
325
333
|
return item.ranges[0].segment.ordinal;
|
|
326
334
|
}
|
|
@@ -337,7 +345,7 @@ function revertLocalSequenceRemove(sharedString, revertible) {
|
|
|
337
345
|
}
|
|
338
346
|
};
|
|
339
347
|
sharedString.on("sequenceDelta", saveSegments);
|
|
340
|
-
revertMergeTreeDeltaRevertibles(sharedString, [revertible.mergeTreeRevertible]);
|
|
348
|
+
(0, merge_tree_1.revertMergeTreeDeltaRevertibles)(sharedString, [revertible.mergeTreeRevertible]);
|
|
341
349
|
sharedString.off("sequenceDelta", saveSegments);
|
|
342
350
|
revertible.intervals.forEach((intervalInfo) => {
|
|
343
351
|
const intervalCollection = sharedString.getIntervalCollection(intervalInfo.label);
|
|
@@ -355,18 +363,18 @@ function revertLocalSequenceRemove(sharedString, revertible) {
|
|
|
355
363
|
});
|
|
356
364
|
// fix up the local references used by delete and change revertibles
|
|
357
365
|
revertible.revertibleRefs.forEach((revertibleRef) => {
|
|
358
|
-
assert(revertibleRef.revertible.event === IntervalOpType.CHANGE ||
|
|
359
|
-
revertibleRef.revertible.event === IntervalOpType.DELETE, 0x6c5 /* revertible is not delete or change */);
|
|
366
|
+
(0, core_utils_1.assert)(revertibleRef.revertible.event === intervals_1.IntervalOpType.CHANGE ||
|
|
367
|
+
revertibleRef.revertible.event === intervals_1.IntervalOpType.DELETE, 0x6c5 /* revertible is not delete or change */);
|
|
360
368
|
const pos = newPosition(revertibleRef.offset, restoredRanges);
|
|
361
369
|
if (pos !== undefined) {
|
|
362
370
|
if (revertibleRef.isStart) {
|
|
363
371
|
sharedString.removeLocalReferencePosition(revertibleRef.revertible.start);
|
|
364
|
-
const newRef = sharedString.createLocalReferencePosition(pos.segment, pos.offset, ReferenceType.StayOnRemove | ReferenceType.RangeBegin, { revertible: revertibleRef.revertible }, revertibleRef.revertible.start.slidingPreference);
|
|
372
|
+
const newRef = sharedString.createLocalReferencePosition(pos.segment, pos.offset, merge_tree_1.ReferenceType.StayOnRemove | merge_tree_1.ReferenceType.RangeBegin, { revertible: revertibleRef.revertible }, revertibleRef.revertible.start.slidingPreference);
|
|
365
373
|
revertibleRef.revertible.start = newRef;
|
|
366
374
|
}
|
|
367
375
|
else {
|
|
368
376
|
sharedString.removeLocalReferencePosition(revertibleRef.revertible.end);
|
|
369
|
-
const newRef = sharedString.createLocalReferencePosition(pos.segment, pos.offset, ReferenceType.StayOnRemove | ReferenceType.RangeEnd, { revertible: revertibleRef.revertible }, revertibleRef.revertible.end.slidingPreference);
|
|
377
|
+
const newRef = sharedString.createLocalReferencePosition(pos.segment, pos.offset, merge_tree_1.ReferenceType.StayOnRemove | merge_tree_1.ReferenceType.RangeEnd, { revertible: revertibleRef.revertible }, revertibleRef.revertible.end.slidingPreference);
|
|
370
378
|
revertibleRef.revertible.end = newRef;
|
|
371
379
|
}
|
|
372
380
|
}
|
|
@@ -374,38 +382,38 @@ function revertLocalSequenceRemove(sharedString, revertible) {
|
|
|
374
382
|
}
|
|
375
383
|
/**
|
|
376
384
|
* Invoke revertibles to reverse prior edits
|
|
377
|
-
*
|
|
378
|
-
* @alpha
|
|
385
|
+
* @internal
|
|
379
386
|
*/
|
|
380
|
-
|
|
387
|
+
function revertSharedStringRevertibles(sharedString, revertibles) {
|
|
381
388
|
while (revertibles.length > 0) {
|
|
382
389
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
383
390
|
const r = revertibles.pop();
|
|
384
391
|
if ("event" in r) {
|
|
385
392
|
const event = r.event;
|
|
386
393
|
switch (event) {
|
|
387
|
-
case IntervalOpType.ADD:
|
|
394
|
+
case intervals_1.IntervalOpType.ADD:
|
|
388
395
|
revertLocalAdd(sharedString, r);
|
|
389
396
|
break;
|
|
390
|
-
case IntervalOpType.DELETE:
|
|
397
|
+
case intervals_1.IntervalOpType.DELETE:
|
|
391
398
|
revertLocalDelete(sharedString, r);
|
|
392
399
|
break;
|
|
393
|
-
case IntervalOpType.CHANGE:
|
|
400
|
+
case intervals_1.IntervalOpType.CHANGE:
|
|
394
401
|
revertLocalChange(sharedString, r);
|
|
395
402
|
break;
|
|
396
|
-
case IntervalOpType.PROPERTY_CHANGED:
|
|
403
|
+
case intervals_1.IntervalOpType.PROPERTY_CHANGED:
|
|
397
404
|
revertLocalPropertyChanged(sharedString, r);
|
|
398
405
|
break;
|
|
399
|
-
case IntervalOpType.POSITION_REMOVE:
|
|
406
|
+
case intervals_1.IntervalOpType.POSITION_REMOVE:
|
|
400
407
|
revertLocalSequenceRemove(sharedString, r);
|
|
401
408
|
break;
|
|
402
409
|
default:
|
|
403
|
-
unreachableCase(event);
|
|
410
|
+
(0, core_utils_1.unreachableCase)(event);
|
|
404
411
|
}
|
|
405
412
|
}
|
|
406
413
|
else {
|
|
407
|
-
revertMergeTreeDeltaRevertibles(sharedString, [r]);
|
|
414
|
+
(0, merge_tree_1.revertMergeTreeDeltaRevertibles)(sharedString, [r]);
|
|
408
415
|
}
|
|
409
416
|
}
|
|
410
417
|
}
|
|
418
|
+
exports.revertSharedStringRevertibles = revertSharedStringRevertibles;
|
|
411
419
|
//# sourceMappingURL=revertibles.js.map
|