@fluidframework/sequence 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.224419
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 -11
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +449 -0
- package/README.md +364 -183
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/sequence.api.md +741 -0
- package/dist/{defaultMap.js → defaultMap.cjs} +29 -22
- package/dist/defaultMap.cjs.map +1 -0
- package/dist/defaultMap.d.ts +7 -6
- package/dist/defaultMap.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.cjs +7 -0
- package/dist/defaultMapInterfaces.cjs.map +1 -0
- package/dist/defaultMapInterfaces.d.ts +44 -12
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/index.cjs +60 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +14 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/intervalCollection.cjs +1159 -0
- package/dist/intervalCollection.cjs.map +1 -0
- package/dist/intervalCollection.d.ts +461 -162
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.cjs +66 -0
- package/dist/intervalIndex/endpointInRangeIndex.cjs.map +1 -0
- package/dist/intervalIndex/endpointInRangeIndex.d.ts +34 -0
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -0
- package/dist/intervalIndex/endpointIndex.cjs +47 -0
- package/dist/intervalIndex/endpointIndex.cjs.map +1 -0
- package/dist/intervalIndex/endpointIndex.d.ts +38 -0
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -0
- package/dist/intervalIndex/idIntervalIndex.cjs +44 -0
- package/dist/intervalIndex/idIntervalIndex.cjs.map +1 -0
- package/dist/intervalIndex/idIntervalIndex.d.ts +18 -0
- package/dist/intervalIndex/idIntervalIndex.d.ts.map +1 -0
- package/dist/intervalIndex/index.cjs +24 -0
- package/dist/intervalIndex/index.cjs.map +1 -0
- package/dist/intervalIndex/index.d.ts +13 -0
- package/dist/intervalIndex/index.d.ts.map +1 -0
- package/dist/{defaultMapInterfaces.js → intervalIndex/intervalIndex.cjs} +1 -1
- package/dist/intervalIndex/intervalIndex.cjs.map +1 -0
- package/dist/intervalIndex/intervalIndex.d.ts +30 -0
- package/dist/intervalIndex/intervalIndex.d.ts.map +1 -0
- package/dist/intervalIndex/intervalIndexUtils.cjs +22 -0
- package/dist/intervalIndex/intervalIndexUtils.cjs.map +1 -0
- package/dist/intervalIndex/intervalIndexUtils.d.ts +17 -0
- package/dist/intervalIndex/intervalIndexUtils.d.ts.map +1 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.cjs +116 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.cjs.map +1 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +44 -0
- package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs +41 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.cjs.map +1 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +11 -0
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.cjs +7 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.cjs.map +1 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +35 -0
- package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -0
- package/dist/intervalIndex/startpointInRangeIndex.cjs +66 -0
- package/dist/intervalIndex/startpointInRangeIndex.cjs.map +1 -0
- package/dist/intervalIndex/startpointInRangeIndex.d.ts +34 -0
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -0
- package/dist/intervalTree.cjs +80 -0
- package/dist/intervalTree.cjs.map +1 -0
- package/dist/intervalTree.d.ts +24 -0
- package/dist/intervalTree.d.ts.map +1 -0
- package/dist/intervals/index.cjs +23 -0
- package/dist/intervals/index.cjs.map +1 -0
- package/dist/intervals/index.d.ts +8 -0
- package/dist/intervals/index.d.ts.map +1 -0
- package/dist/intervals/interval.cjs +181 -0
- package/dist/intervals/interval.cjs.map +1 -0
- package/dist/intervals/interval.d.ts +84 -0
- package/dist/intervals/interval.d.ts.map +1 -0
- package/dist/intervals/intervalUtils.cjs +83 -0
- package/dist/intervals/intervalUtils.cjs.map +1 -0
- package/dist/intervals/intervalUtils.d.ts +230 -0
- package/dist/intervals/intervalUtils.d.ts.map +1 -0
- package/dist/intervals/sequenceInterval.cjs +378 -0
- package/dist/intervals/sequenceInterval.cjs.map +1 -0
- package/dist/intervals/sequenceInterval.d.ts +137 -0
- package/dist/intervals/sequenceInterval.d.ts.map +1 -0
- package/dist/{localValues.js → localValues.cjs} +1 -1
- package/dist/localValues.cjs.map +1 -0
- package/dist/localValues.d.ts +2 -1
- package/dist/localValues.d.ts.map +1 -1
- package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
- package/dist/packageVersion.cjs.map +1 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/revertibles.cjs +425 -0
- package/dist/revertibles.cjs.map +1 -0
- package/dist/revertibles.d.ts +86 -0
- package/dist/revertibles.d.ts.map +1 -0
- package/dist/sequence-alpha.d.ts +1315 -0
- package/dist/sequence-beta.d.ts +244 -0
- package/dist/sequence-public.d.ts +244 -0
- package/dist/sequence-untrimmed.d.ts +1803 -0
- package/dist/{sequence.js → sequence.cjs} +226 -156
- package/dist/sequence.cjs.map +1 -0
- package/dist/sequence.d.ts +125 -48
- package/dist/sequence.d.ts.map +1 -1
- package/dist/{sequenceDeltaEvent.js → sequenceDeltaEvent.cjs} +18 -8
- package/dist/sequenceDeltaEvent.cjs.map +1 -0
- package/dist/sequenceDeltaEvent.d.ts +24 -7
- package/dist/sequenceDeltaEvent.d.ts.map +1 -1
- package/dist/sequenceFactory.cjs +55 -0
- package/dist/sequenceFactory.cjs.map +1 -0
- package/dist/sequenceFactory.d.ts +3 -89
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/{sharedIntervalCollection.js → sharedIntervalCollection.cjs} +17 -22
- package/dist/sharedIntervalCollection.cjs.map +1 -0
- package/dist/sharedIntervalCollection.d.ts +12 -12
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/{sharedSequence.js → sharedSequence.cjs} +29 -22
- package/dist/sharedSequence.cjs.map +1 -0
- package/dist/sharedSequence.d.ts +14 -2
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedString.cjs +286 -0
- package/dist/sharedString.cjs.map +1 -0
- package/dist/sharedString.d.ts +58 -22
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/{defaultMap.d.ts → defaultMap.d.mts} +7 -6
- package/lib/defaultMap.d.mts.map +1 -0
- package/lib/{defaultMap.js → defaultMap.mjs} +28 -21
- package/lib/defaultMap.mjs.map +1 -0
- package/lib/{defaultMapInterfaces.d.ts → defaultMapInterfaces.d.mts} +44 -12
- package/lib/defaultMapInterfaces.d.mts.map +1 -0
- package/lib/defaultMapInterfaces.mjs +6 -0
- package/lib/defaultMapInterfaces.mjs.map +1 -0
- package/lib/index.d.mts +17 -0
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +16 -0
- package/lib/index.mjs.map +1 -0
- package/lib/intervalCollection.d.mts +569 -0
- package/lib/intervalCollection.d.mts.map +1 -0
- package/lib/intervalCollection.mjs +1144 -0
- package/lib/intervalCollection.mjs.map +1 -0
- package/lib/intervalIndex/endpointInRangeIndex.d.mts +34 -0
- package/lib/intervalIndex/endpointInRangeIndex.d.mts.map +1 -0
- package/lib/intervalIndex/endpointInRangeIndex.mjs +61 -0
- package/lib/intervalIndex/endpointInRangeIndex.mjs.map +1 -0
- package/lib/intervalIndex/endpointIndex.d.mts +38 -0
- package/lib/intervalIndex/endpointIndex.d.mts.map +1 -0
- package/lib/intervalIndex/endpointIndex.mjs +42 -0
- package/lib/intervalIndex/endpointIndex.mjs.map +1 -0
- package/lib/intervalIndex/idIntervalIndex.d.mts +18 -0
- package/lib/intervalIndex/idIntervalIndex.d.mts.map +1 -0
- package/lib/intervalIndex/idIntervalIndex.mjs +40 -0
- package/lib/intervalIndex/idIntervalIndex.mjs.map +1 -0
- package/lib/intervalIndex/index.d.mts +13 -0
- package/lib/intervalIndex/index.d.mts.map +1 -0
- package/lib/intervalIndex/index.mjs +11 -0
- package/lib/intervalIndex/index.mjs.map +1 -0
- package/lib/intervalIndex/intervalIndex.d.mts +30 -0
- package/lib/intervalIndex/intervalIndex.d.mts.map +1 -0
- package/lib/{defaultMapInterfaces.js → intervalIndex/intervalIndex.mjs} +1 -1
- package/lib/intervalIndex/intervalIndex.mjs.map +1 -0
- package/lib/intervalIndex/intervalIndexUtils.d.mts +17 -0
- package/lib/intervalIndex/intervalIndexUtils.d.mts.map +1 -0
- package/lib/intervalIndex/intervalIndexUtils.mjs +18 -0
- package/lib/intervalIndex/intervalIndexUtils.mjs.map +1 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.d.mts +44 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.d.mts.map +1 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.mjs +111 -0
- package/lib/intervalIndex/overlappingIntervalsIndex.mjs.map +1 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts +11 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.mts.map +1 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs +37 -0
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.mjs.map +1 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.d.mts +35 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.d.mts.map +1 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.mjs +6 -0
- package/lib/intervalIndex/sequenceIntervalIndexes.mjs.map +1 -0
- package/lib/intervalIndex/startpointInRangeIndex.d.mts +34 -0
- package/lib/intervalIndex/startpointInRangeIndex.d.mts.map +1 -0
- package/lib/intervalIndex/startpointInRangeIndex.mjs +61 -0
- package/lib/intervalIndex/startpointInRangeIndex.mjs.map +1 -0
- package/lib/intervalTree.d.mts +24 -0
- package/lib/intervalTree.d.mts.map +1 -0
- package/lib/intervalTree.mjs +76 -0
- package/lib/intervalTree.mjs.map +1 -0
- package/lib/intervals/index.d.mts +8 -0
- package/lib/intervals/index.d.mts.map +1 -0
- package/lib/intervals/index.mjs +8 -0
- package/lib/intervals/index.mjs.map +1 -0
- package/lib/intervals/interval.d.mts +84 -0
- package/lib/intervals/interval.d.mts.map +1 -0
- package/lib/intervals/interval.mjs +176 -0
- package/lib/intervals/interval.mjs.map +1 -0
- package/lib/intervals/intervalUtils.d.mts +230 -0
- package/lib/intervals/intervalUtils.d.mts.map +1 -0
- package/lib/intervals/intervalUtils.mjs +77 -0
- package/lib/intervals/intervalUtils.mjs.map +1 -0
- package/lib/intervals/sequenceInterval.d.mts +137 -0
- package/lib/intervals/sequenceInterval.d.mts.map +1 -0
- package/lib/intervals/sequenceInterval.mjs +370 -0
- package/lib/intervals/sequenceInterval.mjs.map +1 -0
- package/lib/{localValues.d.ts → localValues.d.mts} +3 -2
- package/lib/localValues.d.mts.map +1 -0
- package/lib/{localValues.js → localValues.mjs} +2 -2
- package/lib/localValues.mjs.map +1 -0
- package/lib/{packageVersion.d.ts → packageVersion.d.mts} +1 -1
- package/lib/{packageVersion.d.ts.map → packageVersion.d.mts.map} +1 -1
- package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
- package/lib/packageVersion.mjs.map +1 -0
- package/lib/revertibles.d.mts +86 -0
- package/lib/revertibles.d.mts.map +1 -0
- package/lib/revertibles.mjs +416 -0
- package/lib/revertibles.mjs.map +1 -0
- package/lib/sequence-alpha.d.mts +1315 -0
- package/lib/sequence-beta.d.mts +244 -0
- package/lib/sequence-public.d.mts +244 -0
- package/lib/sequence-untrimmed.d.mts +1803 -0
- package/lib/{sequence.d.ts → sequence.d.mts} +127 -50
- package/lib/sequence.d.mts.map +1 -0
- package/lib/{sequence.js → sequence.mjs} +225 -152
- package/lib/sequence.mjs.map +1 -0
- package/lib/{sequenceDeltaEvent.d.ts → sequenceDeltaEvent.d.mts} +24 -7
- package/lib/sequenceDeltaEvent.d.mts.map +1 -0
- package/lib/{sequenceDeltaEvent.js → sequenceDeltaEvent.mjs} +20 -8
- package/lib/sequenceDeltaEvent.mjs.map +1 -0
- package/lib/sequenceFactory.d.mts +22 -0
- package/lib/sequenceFactory.d.mts.map +1 -0
- package/lib/sequenceFactory.mjs +51 -0
- package/lib/sequenceFactory.mjs.map +1 -0
- package/lib/{sharedIntervalCollection.d.ts → sharedIntervalCollection.d.mts} +12 -12
- package/lib/sharedIntervalCollection.d.mts.map +1 -0
- package/lib/{sharedIntervalCollection.js → sharedIntervalCollection.mjs} +16 -21
- package/lib/sharedIntervalCollection.mjs.map +1 -0
- package/lib/{sharedSequence.d.ts → sharedSequence.d.mts} +15 -3
- package/lib/sharedSequence.d.mts.map +1 -0
- package/lib/{sharedSequence.js → sharedSequence.mjs} +30 -23
- package/lib/sharedSequence.mjs.map +1 -0
- package/lib/{sharedString.d.ts → sharedString.d.mts} +60 -24
- package/lib/sharedString.d.mts.map +1 -0
- package/lib/sharedString.mjs +281 -0
- package/lib/sharedString.mjs.map +1 -0
- package/package.json +146 -75
- package/prettier.config.cjs +8 -0
- package/sequence.test-files.tar +0 -0
- package/src/defaultMap.ts +417 -403
- package/src/defaultMapInterfaces.ts +157 -117
- package/src/index.ts +86 -26
- package/src/intervalCollection.ts +2043 -1563
- package/src/intervalIndex/endpointInRangeIndex.ts +116 -0
- package/src/intervalIndex/endpointIndex.ts +91 -0
- package/src/intervalIndex/idIntervalIndex.ts +64 -0
- package/src/intervalIndex/index.ts +25 -0
- package/src/intervalIndex/intervalIndex.ts +32 -0
- package/src/intervalIndex/intervalIndexUtils.ts +27 -0
- package/src/intervalIndex/overlappingIntervalsIndex.ts +187 -0
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +80 -0
- package/src/intervalIndex/sequenceIntervalIndexes.ts +34 -0
- package/src/intervalIndex/startpointInRangeIndex.ts +114 -0
- package/src/intervalTree.ts +98 -0
- package/src/intervals/index.ts +25 -0
- package/src/intervals/interval.ts +238 -0
- package/src/intervals/intervalUtils.ts +288 -0
- package/src/intervals/sequenceInterval.ts +616 -0
- package/src/localValues.ts +68 -73
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +693 -0
- package/src/sequence.ts +845 -690
- package/src/sequenceDeltaEvent.ts +164 -131
- package/src/sequenceFactory.ts +58 -214
- package/src/sharedIntervalCollection.ts +161 -152
- package/src/sharedSequence.ts +181 -167
- package/src/sharedString.ts +390 -234
- package/tsc-multi.test.json +10 -0
- package/tsconfig.json +11 -13
- package/.editorconfig +0 -7
- package/.vscode/launch.json +0 -15
- package/dist/defaultMap.js.map +0 -1
- package/dist/defaultMapInterfaces.js.map +0 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +0 -1
- package/dist/intervalCollection.js +0 -1250
- package/dist/intervalCollection.js.map +0 -1
- package/dist/localValues.js.map +0 -1
- package/dist/packageVersion.js.map +0 -1
- package/dist/sequence.js.map +0 -1
- package/dist/sequenceDeltaEvent.js.map +0 -1
- package/dist/sequenceFactory.js +0 -192
- package/dist/sequenceFactory.js.map +0 -1
- package/dist/sharedIntervalCollection.js.map +0 -1
- package/dist/sharedNumberSequence.d.ts +0 -50
- package/dist/sharedNumberSequence.d.ts.map +0 -1
- package/dist/sharedNumberSequence.js +0 -61
- package/dist/sharedNumberSequence.js.map +0 -1
- package/dist/sharedObjectSequence.d.ts +0 -50
- package/dist/sharedObjectSequence.d.ts.map +0 -1
- package/dist/sharedObjectSequence.js +0 -61
- package/dist/sharedObjectSequence.js.map +0 -1
- package/dist/sharedSequence.js.map +0 -1
- package/dist/sharedString.js +0 -187
- package/dist/sharedString.js.map +0 -1
- package/dist/sparsematrix.d.ts +0 -139
- package/dist/sparsematrix.d.ts.map +0 -1
- package/dist/sparsematrix.js +0 -332
- package/dist/sparsematrix.js.map +0 -1
- package/lib/defaultMap.d.ts.map +0 -1
- package/lib/defaultMap.js.map +0 -1
- package/lib/defaultMapInterfaces.d.ts.map +0 -1
- package/lib/defaultMapInterfaces.js.map +0 -1
- package/lib/index.d.ts +0 -27
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -26
- package/lib/index.js.map +0 -1
- package/lib/intervalCollection.d.ts +0 -270
- package/lib/intervalCollection.d.ts.map +0 -1
- package/lib/intervalCollection.js +0 -1238
- package/lib/intervalCollection.js.map +0 -1
- package/lib/localValues.d.ts.map +0 -1
- package/lib/localValues.js.map +0 -1
- package/lib/packageVersion.js.map +0 -1
- package/lib/sequence.d.ts.map +0 -1
- package/lib/sequence.js.map +0 -1
- package/lib/sequenceDeltaEvent.d.ts.map +0 -1
- package/lib/sequenceDeltaEvent.js.map +0 -1
- package/lib/sequenceFactory.d.ts +0 -108
- package/lib/sequenceFactory.d.ts.map +0 -1
- package/lib/sequenceFactory.js +0 -186
- package/lib/sequenceFactory.js.map +0 -1
- package/lib/sharedIntervalCollection.d.ts.map +0 -1
- package/lib/sharedIntervalCollection.js.map +0 -1
- package/lib/sharedNumberSequence.d.ts +0 -50
- package/lib/sharedNumberSequence.d.ts.map +0 -1
- package/lib/sharedNumberSequence.js +0 -57
- package/lib/sharedNumberSequence.js.map +0 -1
- package/lib/sharedObjectSequence.d.ts +0 -50
- package/lib/sharedObjectSequence.d.ts.map +0 -1
- package/lib/sharedObjectSequence.js +0 -57
- package/lib/sharedObjectSequence.js.map +0 -1
- package/lib/sharedSequence.d.ts.map +0 -1
- package/lib/sharedSequence.js.map +0 -1
- package/lib/sharedString.d.ts.map +0 -1
- package/lib/sharedString.js +0 -183
- package/lib/sharedString.js.map +0 -1
- package/lib/sparsematrix.d.ts +0 -139
- package/lib/sparsematrix.d.ts.map +0 -1
- package/lib/sparsematrix.js +0 -323
- package/lib/sparsematrix.js.map +0 -1
- package/src/sharedNumberSequence.ts +0 -62
- package/src/sharedObjectSequence.ts +0 -62
- package/src/sparsematrix.ts +0 -421
- package/tsconfig.esnext.json +0 -7
|
@@ -5,44 +5,82 @@
|
|
|
5
5
|
|
|
6
6
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
7
7
|
import { ISharedObjectEvents } from "@fluidframework/shared-object-base";
|
|
8
|
-
import { IEventThisPlaceHolder } from "@fluidframework/
|
|
8
|
+
import { IEventThisPlaceHolder } from "@fluidframework/core-interfaces";
|
|
9
|
+
import { ISerializedInterval, IntervalOpType, SerializedIntervalDelta } from "./intervals";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Type of "valueChanged" event parameter.
|
|
12
13
|
*/
|
|
13
14
|
export interface IValueChanged {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The key storing the value that changed.
|
|
17
|
+
*/
|
|
18
|
+
key: string;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The value that was stored at the key prior to the change.
|
|
22
|
+
*/
|
|
23
|
+
previousValue: any;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* Value types are given an IValueOpEmitter to emit their ops through the container type that holds them.
|
|
27
28
|
* @internal
|
|
29
|
+
* @deprecated - will be remove from public api as there is no public used of this type
|
|
28
30
|
*/
|
|
29
31
|
export interface IValueOpEmitter {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Called by the value type to emit a value type operation through the container type holding it.
|
|
34
|
+
* @param opName - Name of the emitted operation
|
|
35
|
+
* @param previousValue - JSONable previous value as defined by the value type @deprecated unused
|
|
36
|
+
* @param params - JSONable params for the operation as defined by the value type
|
|
37
|
+
* @param localOpMetadata - JSONable local metadata which should be submitted with the op
|
|
38
|
+
*/
|
|
39
|
+
emit(
|
|
40
|
+
opName: IntervalOpType,
|
|
41
|
+
previousValue: undefined,
|
|
42
|
+
params: SerializedIntervalDelta,
|
|
43
|
+
localOpMetadata: IMapMessageLocalMetadata,
|
|
44
|
+
): void;
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
/**
|
|
42
48
|
* @internal
|
|
43
49
|
*/
|
|
44
50
|
export interface IMapMessageLocalMetadata {
|
|
45
|
-
|
|
51
|
+
localSeq: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Optional flags that configure options for sequence DDSs
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
export interface SequenceOptions {
|
|
59
|
+
/**
|
|
60
|
+
* Enable the ability to use interval APIs that rely on positions before and
|
|
61
|
+
* after individual characters, referred to as "sides". See {@link SequencePlace}
|
|
62
|
+
* for additional context.
|
|
63
|
+
*
|
|
64
|
+
* This flag must be enabled to pass instances of {@link SequencePlace} to
|
|
65
|
+
* any IIntervalCollection API.
|
|
66
|
+
*
|
|
67
|
+
* Also see the feature flag `mergeTreeReferencesCanSlideToEndpoint` to allow
|
|
68
|
+
* endpoints to slide to the special endpoint segments.
|
|
69
|
+
*
|
|
70
|
+
* The default value is false.
|
|
71
|
+
*/
|
|
72
|
+
intervalStickinessEnabled: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Enable the ability for interval endpoints to slide to the special endpoint
|
|
75
|
+
* segments that exist before and after the bounds of the string. This is
|
|
76
|
+
* primarily useful for workflows involving interval stickiness, and it is
|
|
77
|
+
* suggested to enable both this flag and `intervalStickinessEnabled` at the
|
|
78
|
+
* same time.
|
|
79
|
+
*
|
|
80
|
+
* The default value is false.
|
|
81
|
+
*/
|
|
82
|
+
mergeTreeReferencesCanSlideToEndpoint: boolean;
|
|
83
|
+
[key: string]: boolean;
|
|
46
84
|
}
|
|
47
85
|
|
|
48
86
|
/**
|
|
@@ -50,24 +88,24 @@ export interface IMapMessageLocalMetadata {
|
|
|
50
88
|
* @alpha
|
|
51
89
|
*/
|
|
52
90
|
export interface IValueFactory<T> {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Create a new value type. Used both in creation of new value types, as well as in loading existing ones
|
|
93
|
+
* from remote.
|
|
94
|
+
* @param emitter - Emitter object that the created value type will use to emit operations
|
|
95
|
+
* @param raw - Initialization parameters as defined by the value type
|
|
96
|
+
* @returns The new value type
|
|
97
|
+
* @alpha
|
|
98
|
+
*/
|
|
99
|
+
load(emitter: IValueOpEmitter, raw: any, options?: Partial<SequenceOptions>): T;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Given a value type, provides a JSONable form of its data to be used for snapshotting. This data must be
|
|
103
|
+
* loadable using the load method of its factory.
|
|
104
|
+
* @param value - The value type to serialize
|
|
105
|
+
* @returns The JSONable form of the value type
|
|
106
|
+
* @alpha
|
|
107
|
+
*/
|
|
108
|
+
store(value: T): any;
|
|
71
109
|
}
|
|
72
110
|
|
|
73
111
|
/**
|
|
@@ -75,66 +113,68 @@ export interface IValueFactory<T> {
|
|
|
75
113
|
* @alpha
|
|
76
114
|
*/
|
|
77
115
|
export interface IValueOperation<T> {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Performs the actual processing on the incoming operation.
|
|
118
|
+
* @param value - The current value stored at the given key, which should be the value type
|
|
119
|
+
* @param params - The params on the incoming operation
|
|
120
|
+
* @param local - Whether the operation originated from this client
|
|
121
|
+
* @param message - The operation itself
|
|
122
|
+
* @param localOpMetadata - any local metadata submitted by `IValueOpEmitter.emit`.
|
|
123
|
+
* @alpha
|
|
124
|
+
*/
|
|
125
|
+
process(
|
|
126
|
+
value: T,
|
|
127
|
+
params: ISerializedInterval,
|
|
128
|
+
local: boolean,
|
|
129
|
+
message: ISequencedDocumentMessage | undefined,
|
|
130
|
+
localOpMetadata: IMapMessageLocalMetadata | undefined,
|
|
131
|
+
): void;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Rebases an `op` on `value` from its original perspective (ref/local seq) to the current
|
|
135
|
+
* perspective. Should be invoked on reconnection.
|
|
136
|
+
* @param value - The current value stored at the given key, which should be the value type.
|
|
137
|
+
* @param op - The op to be rebased.
|
|
138
|
+
* @param localOpMetadata - Any local metadata that was originally submitted with the op.
|
|
139
|
+
* @returns A rebased version of the op and any local metadata that should be submitted with it.
|
|
140
|
+
*/
|
|
141
|
+
rebase(
|
|
142
|
+
value: T,
|
|
143
|
+
op: IValueTypeOperationValue,
|
|
144
|
+
localOpMetadata: IMapMessageLocalMetadata,
|
|
145
|
+
):
|
|
146
|
+
| { rebasedOp: IValueTypeOperationValue; rebasedLocalOpMetadata: IMapMessageLocalMetadata }
|
|
147
|
+
| undefined;
|
|
108
148
|
}
|
|
109
149
|
|
|
110
150
|
/**
|
|
111
151
|
* Defines a value type that can be registered on a container type.
|
|
112
152
|
*/
|
|
113
153
|
export interface IValueType<T> {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Name of the value type.
|
|
156
|
+
* @alpha
|
|
157
|
+
*/
|
|
158
|
+
name: string;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Factory method used to convert to/from a JSON form of the type.
|
|
162
|
+
* @alpha
|
|
163
|
+
*/
|
|
164
|
+
factory: IValueFactory<T>;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Operations that can be applied to the value type.
|
|
168
|
+
* @alpha
|
|
169
|
+
*/
|
|
170
|
+
ops: Map<IntervalOpType, IValueOperation<T>>;
|
|
131
171
|
}
|
|
132
172
|
|
|
133
173
|
export interface ISharedDefaultMapEvents extends ISharedObjectEvents {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
174
|
+
(
|
|
175
|
+
event: "valueChanged" | "create",
|
|
176
|
+
listener: (changed: IValueChanged, local: boolean, target: IEventThisPlaceHolder) => void,
|
|
177
|
+
): void;
|
|
138
178
|
}
|
|
139
179
|
|
|
140
180
|
/**
|
|
@@ -145,31 +185,31 @@ export interface ISharedDefaultMapEvents extends ISharedObjectEvents {
|
|
|
145
185
|
* JSON.stringify and comes out of JSON.parse. This format is used both for snapshots (loadCore/populate)
|
|
146
186
|
* and ops (set).
|
|
147
187
|
*
|
|
148
|
-
* The DefaultMap
|
|
188
|
+
* The DefaultMap implementation for sequence has been specialized to only support a single ValueType, which serializes
|
|
149
189
|
* and deserializes via .store() and .load().
|
|
150
190
|
*/
|
|
151
191
|
export interface ISerializableValue {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
192
|
+
/**
|
|
193
|
+
* A type annotation to help indicate how the value serializes.
|
|
194
|
+
*/
|
|
195
|
+
type: string;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* The JSONable representation of the value.
|
|
199
|
+
*/
|
|
200
|
+
value: any;
|
|
161
201
|
}
|
|
162
202
|
|
|
163
203
|
export interface ISerializedValue {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
204
|
+
/**
|
|
205
|
+
* A type annotation to help indicate how the value serializes.
|
|
206
|
+
*/
|
|
207
|
+
type: string;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* String representation of the value.
|
|
211
|
+
*/
|
|
212
|
+
value: string | undefined;
|
|
173
213
|
}
|
|
174
214
|
|
|
175
215
|
/**
|
|
@@ -182,13 +222,13 @@ export interface ISerializedValue {
|
|
|
182
222
|
* @alpha
|
|
183
223
|
*/
|
|
184
224
|
export interface IValueTypeOperationValue {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
225
|
+
/**
|
|
226
|
+
* The name of the operation.
|
|
227
|
+
*/
|
|
228
|
+
opName: IntervalOpType;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* The payload that is submitted along with the operation.
|
|
232
|
+
*/
|
|
233
|
+
value: SerializedIntervalDelta;
|
|
194
234
|
}
|
package/src/index.ts
CHANGED
|
@@ -6,39 +6,99 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* Supports distributed data structures which are list-like.
|
|
8
8
|
*
|
|
9
|
-
* This
|
|
9
|
+
* This library's main export is {@link SharedString}, a DDS for storing and simultaneously editing a sequence of
|
|
10
10
|
* text.
|
|
11
11
|
*
|
|
12
|
+
* See the package's README for a high-level introduction to `SharedString`'s feature set.
|
|
12
13
|
* @remarks Note that SharedString is a sequence DDS but it has additional specialized features and behaviors for
|
|
13
14
|
* working with text.
|
|
14
15
|
*
|
|
15
16
|
* @packageDocumentation
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
export { IMapMessageLocalMetadata, IValueOpEmitter, SequenceOptions } from "./defaultMapInterfaces";
|
|
19
|
+
export {
|
|
20
|
+
IInterval,
|
|
21
|
+
Interval,
|
|
22
|
+
IntervalOpType,
|
|
23
|
+
IntervalType,
|
|
24
|
+
ISerializableInterval,
|
|
25
|
+
ISerializedInterval,
|
|
26
|
+
SequenceInterval,
|
|
27
|
+
SerializedIntervalDelta,
|
|
28
|
+
IntervalStickiness,
|
|
29
|
+
IIntervalHelpers,
|
|
30
|
+
sequenceIntervalHelpers,
|
|
31
|
+
} from "./intervals";
|
|
18
32
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
ISerializedInterval,
|
|
28
|
-
SequenceInterval,
|
|
29
|
-
ISerializedIntervalCollectionV2,
|
|
30
|
-
CompressedSerializedInterval,
|
|
33
|
+
DeserializeCallback,
|
|
34
|
+
IIntervalCollectionEvent,
|
|
35
|
+
IIntervalCollection,
|
|
36
|
+
IntervalLocator,
|
|
37
|
+
intervalLocatorFromEndpoint,
|
|
38
|
+
Side,
|
|
39
|
+
InteriorSequencePlace,
|
|
40
|
+
SequencePlace,
|
|
31
41
|
} from "./intervalCollection";
|
|
32
42
|
export {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
IntervalIndex,
|
|
44
|
+
SequenceIntervalIndexes,
|
|
45
|
+
IOverlappingIntervalsIndex,
|
|
46
|
+
createOverlappingIntervalsIndex,
|
|
47
|
+
createOverlappingSequenceIntervalsIndex,
|
|
48
|
+
IEndpointInRangeIndex,
|
|
49
|
+
IStartpointInRangeIndex,
|
|
50
|
+
createEndpointInRangeIndex,
|
|
51
|
+
createStartpointInRangeIndex,
|
|
52
|
+
IIdIntervalIndex,
|
|
53
|
+
createIdIntervalIndex,
|
|
54
|
+
IEndpointIndex,
|
|
55
|
+
createEndpointIndex,
|
|
56
|
+
} from "./intervalIndex";
|
|
57
|
+
export {
|
|
58
|
+
appendAddIntervalToRevertibles,
|
|
59
|
+
appendChangeIntervalToRevertibles,
|
|
60
|
+
appendDeleteIntervalToRevertibles,
|
|
61
|
+
appendIntervalPropertyChangedToRevertibles,
|
|
62
|
+
appendSharedStringDeltaToRevertibles,
|
|
63
|
+
discardSharedStringRevertibles,
|
|
64
|
+
IntervalRevertible,
|
|
65
|
+
revertSharedStringRevertibles,
|
|
66
|
+
SharedStringRevertible,
|
|
67
|
+
} from "./revertibles";
|
|
68
|
+
export { ISharedSegmentSequenceEvents, SharedSegmentSequence } from "./sequence";
|
|
69
|
+
export {
|
|
70
|
+
ISequenceDeltaRange,
|
|
71
|
+
SequenceDeltaEvent,
|
|
72
|
+
SequenceEvent,
|
|
73
|
+
SequenceMaintenanceEvent,
|
|
74
|
+
} from "./sequenceDeltaEvent";
|
|
75
|
+
export { SharedStringFactory } from "./sequenceFactory";
|
|
76
|
+
export {
|
|
77
|
+
getTextAndMarkers,
|
|
78
|
+
ISharedString,
|
|
79
|
+
SharedString,
|
|
80
|
+
SharedStringSegment,
|
|
81
|
+
} from "./sharedString";
|
|
82
|
+
export {
|
|
83
|
+
ISharedIntervalCollection,
|
|
84
|
+
SharedIntervalCollection,
|
|
85
|
+
SharedIntervalCollectionFactory,
|
|
86
|
+
} from "./sharedIntervalCollection";
|
|
87
|
+
export { IJSONRunSegment, SharedSequence, SubSequence } from "./sharedSequence";
|
|
88
|
+
|
|
89
|
+
export {
|
|
90
|
+
ISegment,
|
|
91
|
+
Marker,
|
|
92
|
+
BaseSegment,
|
|
93
|
+
ReferencePosition,
|
|
94
|
+
ReferenceType,
|
|
95
|
+
PropertySet,
|
|
96
|
+
MapLike,
|
|
97
|
+
TextSegment,
|
|
98
|
+
MergeTreeDeltaType,
|
|
99
|
+
reservedMarkerIdKey,
|
|
100
|
+
reservedTileLabelsKey,
|
|
101
|
+
reservedRangeLabelsKey,
|
|
102
|
+
TrackingGroup,
|
|
103
|
+
LocalReferencePosition,
|
|
104
|
+
} from "@fluidframework/merge-tree";
|