@fluidframework/sequence 2.0.0-internal.7.3.0 → 2.0.0-internal.8.0.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 +168 -0
- package/api-extractor-lint.json +13 -0
- package/api-extractor.json +8 -3
- package/api-report/sequence.api.md +138 -113
- 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 +12 -11
- package/dist/defaultMapInterfaces.d.ts.map +1 -1
- package/dist/defaultMapInterfaces.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +70 -16
- 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/intervalTree.d.ts +1 -2
- package/dist/intervalTree.d.ts.map +1 -1
- package/dist/intervalTree.js +1 -3
- package/dist/intervalTree.js.map +1 -1
- package/dist/intervals/interval.d.ts +5 -11
- package/dist/intervals/interval.d.ts.map +1 -1
- package/dist/intervals/interval.js +10 -18
- package/dist/intervals/interval.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +15 -18
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js +3 -8
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +5 -15
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js +12 -28
- 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 +14 -10
- package/dist/revertibles.js.map +1 -1
- package/dist/sequence-alpha.d.ts +283 -552
- package/dist/sequence-beta.d.ts +139 -1373
- package/dist/sequence-public.d.ts +139 -1373
- package/dist/sequence-untrimmed.d.ts +186 -141
- package/dist/sequence.d.ts +26 -24
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +38 -23
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceDeltaEvent.d.ts +4 -4
- package/dist/sequenceDeltaEvent.d.ts.map +1 -1
- package/dist/sequenceDeltaEvent.js +14 -7
- 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 +4 -4
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedSequence.js +8 -2
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts +9 -18
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js +9 -21
- 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 +12 -11
- package/lib/defaultMapInterfaces.d.ts.map +1 -1
- package/lib/defaultMapInterfaces.js +2 -1
- package/lib/defaultMapInterfaces.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +55 -10
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +70 -16
- 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.d.ts +1 -2
- package/lib/intervalTree.d.ts.map +1 -1
- package/lib/intervalTree.js +7 -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 +5 -11
- package/lib/intervals/interval.d.ts.map +1 -1
- package/lib/intervals/interval.js +26 -29
- package/lib/intervals/interval.js.map +1 -1
- package/lib/intervals/intervalUtils.d.ts +15 -18
- package/lib/intervals/intervalUtils.d.ts.map +1 -1
- package/lib/intervals/intervalUtils.js +21 -21
- package/lib/intervals/intervalUtils.js.map +1 -1
- package/lib/intervals/sequenceInterval.d.ts +5 -15
- package/lib/intervals/sequenceInterval.d.ts.map +1 -1
- package/lib/intervals/sequenceInterval.js +72 -82
- 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 +83 -69
- package/lib/revertibles.js.map +1 -1
- package/lib/sequence-alpha.d.ts +283 -552
- package/lib/sequence-beta.d.ts +139 -1373
- package/lib/sequence-public.d.ts +139 -1373
- package/lib/sequence-untrimmed.d.ts +186 -141
- package/lib/sequence.d.ts +26 -24
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +81 -61
- package/lib/sequence.js.map +1 -1
- package/lib/sequenceDeltaEvent.d.ts +4 -4
- package/lib/sequenceDeltaEvent.d.ts.map +1 -1
- package/lib/sequenceDeltaEvent.js +27 -14
- 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 +4 -4
- package/lib/sharedSequence.d.ts.map +1 -1
- package/lib/sharedSequence.js +19 -8
- package/lib/sharedSequence.js.map +1 -1
- package/lib/sharedString.d.ts +9 -18
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js +30 -37
- package/lib/sharedString.js.map +1 -1
- package/package.json +44 -22
- package/sequence.test-files.tar +0 -0
- package/src/defaultMap.ts +22 -16
- package/src/defaultMapInterfaces.ts +17 -14
- package/src/index.ts +17 -0
- package/src/intervalCollection.ts +135 -71
- 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/intervalTree.ts +0 -3
- package/src/intervals/interval.ts +7 -26
- package/src/intervals/intervalUtils.ts +17 -20
- package/src/intervals/sequenceInterval.ts +7 -35
- package/src/localValues.ts +2 -1
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +20 -19
- package/src/sequence.ts +61 -43
- package/src/sequenceDeltaEvent.ts +12 -6
- package/src/sequenceFactory.ts +1 -1
- package/src/sharedIntervalCollection.ts +3 -3
- package/src/sharedSequence.ts +12 -6
- package/src/sharedString.ts +21 -48
- package/tsconfig.json +1 -0
package/lib/sequence-alpha.d.ts
CHANGED
|
@@ -18,7 +18,6 @@ import { IChannelAttributes } from '@fluidframework/datastore-definitions';
|
|
|
18
18
|
import { IChannelFactory } from '@fluidframework/datastore-definitions';
|
|
19
19
|
import { IChannelServices } from '@fluidframework/datastore-definitions';
|
|
20
20
|
import { IChannelStorageService } from '@fluidframework/datastore-definitions';
|
|
21
|
-
import { ICombiningOp } from '@fluidframework/merge-tree';
|
|
22
21
|
import { IEvent } from '@fluidframework/core-interfaces';
|
|
23
22
|
import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
|
|
24
23
|
import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
|
|
@@ -27,10 +26,7 @@ import { IJSONSegment } from '@fluidframework/merge-tree';
|
|
|
27
26
|
import { IMergeTreeDeltaCallbackArgs } from '@fluidframework/merge-tree';
|
|
28
27
|
import { IMergeTreeDeltaOpArgs } from '@fluidframework/merge-tree';
|
|
29
28
|
import { IMergeTreeGroupMsg } from '@fluidframework/merge-tree';
|
|
30
|
-
import { IMergeTreeInsertMsg } from '@fluidframework/merge-tree';
|
|
31
29
|
import { IMergeTreeMaintenanceCallbackArgs } from '@fluidframework/merge-tree';
|
|
32
|
-
import { IMergeTreeOp } from '@fluidframework/merge-tree';
|
|
33
|
-
import { IMergeTreeRemoveMsg } from '@fluidframework/merge-tree';
|
|
34
30
|
import { IRelativePosition } from '@fluidframework/merge-tree';
|
|
35
31
|
import { ISegment } from '@fluidframework/merge-tree';
|
|
36
32
|
import { ISegmentAction } from '@fluidframework/merge-tree';
|
|
@@ -39,156 +35,70 @@ import { ISharedObjectEvents } from '@fluidframework/shared-object-base';
|
|
|
39
35
|
import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
|
|
40
36
|
import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
41
37
|
import { LocalReferencePosition } from '@fluidframework/merge-tree';
|
|
38
|
+
import { MapLike } from '@fluidframework/merge-tree';
|
|
42
39
|
import { Marker } from '@fluidframework/merge-tree';
|
|
43
40
|
import { MergeTreeDeltaOperationType } from '@fluidframework/merge-tree';
|
|
44
41
|
import { MergeTreeDeltaOperationTypes } from '@fluidframework/merge-tree';
|
|
45
42
|
import { MergeTreeDeltaRevertible } from '@fluidframework/merge-tree';
|
|
43
|
+
import { MergeTreeDeltaType } from '@fluidframework/merge-tree';
|
|
46
44
|
import { MergeTreeMaintenanceType } from '@fluidframework/merge-tree';
|
|
47
45
|
import { MergeTreeRevertibleDriver } from '@fluidframework/merge-tree';
|
|
48
46
|
import { PropertiesManager } from '@fluidframework/merge-tree';
|
|
49
47
|
import { PropertySet } from '@fluidframework/merge-tree';
|
|
50
|
-
import { RangeStackMap } from '@fluidframework/merge-tree';
|
|
51
48
|
import { ReferencePosition } from '@fluidframework/merge-tree';
|
|
52
49
|
import { ReferenceType } from '@fluidframework/merge-tree';
|
|
50
|
+
import { reservedMarkerIdKey } from '@fluidframework/merge-tree';
|
|
51
|
+
import { reservedRangeLabelsKey } from '@fluidframework/merge-tree';
|
|
52
|
+
import { reservedTileLabelsKey } from '@fluidframework/merge-tree';
|
|
53
53
|
import { Serializable } from '@fluidframework/datastore-definitions';
|
|
54
54
|
import { SharedObject } from '@fluidframework/shared-object-base';
|
|
55
55
|
import { SlidingPreference } from '@fluidframework/merge-tree';
|
|
56
56
|
import { SummarySerializer } from '@fluidframework/shared-object-base';
|
|
57
57
|
import { TextSegment } from '@fluidframework/merge-tree';
|
|
58
|
+
import { TrackingGroup } from '@fluidframework/merge-tree';
|
|
59
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
* Create revertibles for adding an interval
|
|
61
|
-
* @alpha
|
|
62
|
-
*/
|
|
63
|
-
export declare function appendAddIntervalToRevertibles(interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
61
|
+
/* Excluded from this release type: appendAddIntervalToRevertibles */
|
|
64
62
|
|
|
65
|
-
|
|
66
|
-
* Create revertibles for moving endpoints of an interval
|
|
67
|
-
* @alpha
|
|
68
|
-
*/
|
|
69
|
-
export declare function appendChangeIntervalToRevertibles(string: SharedString, newInterval: SequenceInterval, previousInterval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
63
|
+
/* Excluded from this release type: appendChangeIntervalToRevertibles */
|
|
70
64
|
|
|
71
|
-
|
|
72
|
-
* Create revertibles for deleting an interval
|
|
73
|
-
* @alpha
|
|
74
|
-
*/
|
|
75
|
-
export declare function appendDeleteIntervalToRevertibles(string: SharedString, interval: SequenceInterval, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
65
|
+
/* Excluded from this release type: appendDeleteIntervalToRevertibles */
|
|
76
66
|
|
|
77
|
-
|
|
78
|
-
* Create revertibles for changing properties of an interval
|
|
79
|
-
* @alpha
|
|
80
|
-
*/
|
|
81
|
-
export declare function appendIntervalPropertyChangedToRevertibles(interval: SequenceInterval, deltas: PropertySet, revertibles: SharedStringRevertible[]): SharedStringRevertible[];
|
|
67
|
+
/* Excluded from this release type: appendIntervalPropertyChangedToRevertibles */
|
|
82
68
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* (e.g. reverting remove of a range that contains an interval will move the interval back)
|
|
86
|
-
*
|
|
87
|
-
* @alpha
|
|
88
|
-
*/
|
|
89
|
-
export declare function appendSharedStringDeltaToRevertibles(string: SharedString, delta: SequenceDeltaEvent, revertibles: SharedStringRevertible[]): void;
|
|
69
|
+
/* Excluded from this release type: appendSharedStringDeltaToRevertibles */
|
|
70
|
+
export { BaseSegment }
|
|
90
71
|
|
|
91
|
-
|
|
92
|
-
* @public
|
|
93
|
-
*/
|
|
94
|
-
export declare function createEndpointIndex(sharedString: SharedString): IEndpointIndex<SequenceInterval>;
|
|
72
|
+
/* Excluded from this release type: createEndpointIndex */
|
|
95
73
|
|
|
96
|
-
|
|
97
|
-
* @public
|
|
98
|
-
*/
|
|
99
|
-
export declare function createEndpointInRangeIndex(sharedString: SharedString): IEndpointInRangeIndex<SequenceInterval>;
|
|
74
|
+
/* Excluded from this release type: createEndpointInRangeIndex */
|
|
100
75
|
|
|
101
|
-
|
|
102
|
-
* @public
|
|
103
|
-
*/
|
|
104
|
-
export declare function createIdIntervalIndex<TInterval extends ISerializableInterval>(): IIdIntervalIndex<TInterval>;
|
|
76
|
+
/* Excluded from this release type: createIdIntervalIndex */
|
|
105
77
|
|
|
106
|
-
|
|
107
|
-
* @public
|
|
108
|
-
*/
|
|
109
|
-
export declare function createOverlappingIntervalsIndex(sharedString: SharedString): IOverlappingIntervalsIndex<SequenceInterval>;
|
|
78
|
+
/* Excluded from this release type: createOverlappingIntervalsIndex */
|
|
110
79
|
|
|
111
|
-
|
|
112
|
-
* @public
|
|
113
|
-
*/
|
|
114
|
-
export declare function createOverlappingSequenceIntervalsIndex(sharedString: SharedString): SequenceIntervalIndexes.Overlapping;
|
|
80
|
+
/* Excluded from this release type: createOverlappingSequenceIntervalsIndex */
|
|
115
81
|
|
|
116
|
-
|
|
117
|
-
* @public
|
|
118
|
-
*/
|
|
119
|
-
export declare function createStartpointInRangeIndex(sharedString: SharedString): IStartpointInRangeIndex<SequenceInterval>;
|
|
82
|
+
/* Excluded from this release type: createStartpointInRangeIndex */
|
|
120
83
|
|
|
121
84
|
/**
|
|
122
|
-
* @
|
|
85
|
+
* @alpha
|
|
123
86
|
*/
|
|
124
87
|
export declare type DeserializeCallback = (properties: PropertySet) => void;
|
|
125
88
|
|
|
126
|
-
|
|
127
|
-
* Clean up resources held by revertibles that are no longer needed.
|
|
128
|
-
* @alpha
|
|
129
|
-
*/
|
|
130
|
-
export declare function discardSharedStringRevertibles(sharedString: SharedString, revertibles: SharedStringRevertible[]): void;
|
|
89
|
+
/* Excluded from this release type: discardSharedStringRevertibles */
|
|
131
90
|
|
|
132
|
-
|
|
133
|
-
* Splits the text into regions ending with markers with the given `label`.
|
|
134
|
-
* @param sharedString - String to retrieve text and markers from
|
|
135
|
-
* @param label - label to split on
|
|
136
|
-
* @returns Two parallel lists of text and markers, split by markers with the provided `label`.
|
|
137
|
-
* For example:
|
|
138
|
-
* ```typescript
|
|
139
|
-
* // Say sharedstring has contents "hello<paragraph marker 1>world<paragraph marker 2>missing".
|
|
140
|
-
* const { parallelText, parallelMarkers } = getTextAndMarkers(sharedString, "paragraph");
|
|
141
|
-
* // parallelText === ["hello", "world"]
|
|
142
|
-
* // parallelMarkers === [<paragraph marker 1 object>, <paragraph marker 2 object>]
|
|
143
|
-
* // Note parallelText does not include "missing".
|
|
144
|
-
* ```
|
|
145
|
-
* @public
|
|
146
|
-
*/
|
|
147
|
-
export declare function getTextAndMarkers(sharedString: SharedString, label: string, start?: number, end?: number): {
|
|
148
|
-
parallelText: string[];
|
|
149
|
-
parallelMarkers: Marker[];
|
|
150
|
-
};
|
|
91
|
+
/* Excluded from this release type: getTextAndMarkers */
|
|
151
92
|
|
|
152
|
-
|
|
153
|
-
* @public
|
|
154
|
-
*/
|
|
155
|
-
export declare interface IEndpointIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
|
|
156
|
-
/**
|
|
157
|
-
* @returns the previous interval based on the given position number.
|
|
158
|
-
* If no such interval exists in this index, returns `undefined`
|
|
159
|
-
*/
|
|
160
|
-
previousInterval(pos: number): TInterval | undefined;
|
|
161
|
-
/**
|
|
162
|
-
* @returns the next interval based on the given position number.
|
|
163
|
-
* If no such interval exists in this index, returns `undefined`
|
|
164
|
-
*/
|
|
165
|
-
nextInterval(pos: number): TInterval | undefined;
|
|
166
|
-
}
|
|
93
|
+
/* Excluded from this release type: IEndpointIndex */
|
|
167
94
|
|
|
168
|
-
|
|
169
|
-
* Collection of intervals.
|
|
170
|
-
*
|
|
171
|
-
* Provide additional APIs to support efficiently querying a collection of intervals whose endpoints fall within a specified range.
|
|
172
|
-
* @public
|
|
173
|
-
*/
|
|
174
|
-
export declare interface IEndpointInRangeIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
|
|
175
|
-
/**
|
|
176
|
-
* @returns an array of all intervals contained in this collection whose endpoints locate in the range [start, end] (includes both ends)
|
|
177
|
-
*/
|
|
178
|
-
findIntervalsWithEndpointInRange(start: number, end: number): TInterval[];
|
|
179
|
-
}
|
|
95
|
+
/* Excluded from this release type: IEndpointInRangeIndex */
|
|
180
96
|
|
|
181
|
-
|
|
182
|
-
* @public
|
|
183
|
-
*/
|
|
184
|
-
export declare interface IIdIntervalIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval>, Iterable<TInterval> {
|
|
185
|
-
getIntervalById(id: string): TInterval | undefined;
|
|
186
|
-
[Symbol.iterator](): Iterator<TInterval>;
|
|
187
|
-
}
|
|
97
|
+
/* Excluded from this release type: IIdIntervalIndex */
|
|
188
98
|
|
|
189
99
|
/**
|
|
190
100
|
* Basic interval abstraction
|
|
191
|
-
* @
|
|
101
|
+
* @alpha
|
|
192
102
|
*/
|
|
193
103
|
export declare interface IInterval {
|
|
194
104
|
/**
|
|
@@ -215,19 +125,27 @@ export declare interface IInterval {
|
|
|
215
125
|
* @param b - Interval to compare against
|
|
216
126
|
*/
|
|
217
127
|
compareEnd(b: IInterval): number;
|
|
218
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Modifies one or more of the endpoints of this interval, returning a new interval representing the result.
|
|
130
|
+
*/
|
|
131
|
+
modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): IInterval | undefined;
|
|
219
132
|
/**
|
|
220
133
|
* @returns whether this interval overlaps with `b`.
|
|
221
134
|
* Intervals are considered to overlap if their intersection is non-empty.
|
|
222
135
|
*/
|
|
223
136
|
overlaps(b: IInterval): boolean;
|
|
224
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Unions this interval with `b`, returning a new interval.
|
|
139
|
+
* The union operates as a convex hull, i.e. if the two intervals are disjoint, the return value includes
|
|
140
|
+
* intermediate values between the two intervals.
|
|
141
|
+
*/
|
|
142
|
+
union(b: IInterval): IInterval;
|
|
225
143
|
}
|
|
226
144
|
|
|
227
145
|
/**
|
|
228
146
|
* Collection of intervals that supports addition, modification, removal, and efficient spatial querying.
|
|
229
147
|
* Changes to this collection will be incur updates on collaborating clients (i.e. they are not local-only).
|
|
230
|
-
* @
|
|
148
|
+
* @alpha
|
|
231
149
|
*/
|
|
232
150
|
export declare interface IIntervalCollection<TInterval extends ISerializableInterval> extends TypedEventEmitter<IIntervalCollectionEvent<TInterval>> {
|
|
233
151
|
readonly attached: boolean;
|
|
@@ -349,19 +267,34 @@ export declare interface IIntervalCollection<TInterval extends ISerializableInte
|
|
|
349
267
|
removeIntervalById(id: string): TInterval | undefined;
|
|
350
268
|
/**
|
|
351
269
|
* Changes the properties on an existing interval.
|
|
270
|
+
* @deprecated - call change with the id and and object containing the new properties
|
|
352
271
|
* @param id - Id of the interval whose properties should be changed
|
|
353
272
|
* @param props - Property set to apply to the interval. Shallow merging is used between any existing properties
|
|
354
273
|
* and `prop`, i.e. the interval will end up with a property object equivalent to `{ ...oldProps, ...props }`.
|
|
355
274
|
*/
|
|
356
|
-
changeProperties(id: string, props: PropertySet):
|
|
275
|
+
changeProperties(id: string, props: PropertySet): void;
|
|
357
276
|
/**
|
|
358
277
|
* Changes the endpoints of an existing interval.
|
|
278
|
+
* @deprecated - call change with the start and end parameters encapsulated in an object
|
|
359
279
|
* @param id - Id of the interval to change
|
|
360
280
|
* @param start - New start value. To leave the endpoint unchanged, pass the current value.
|
|
361
281
|
* @param end - New end value. To leave the endpoint unchanged, pass the current value.
|
|
362
282
|
* @returns the interval that was changed, if it existed in the collection.
|
|
363
283
|
*/
|
|
364
284
|
change(id: string, start: SequencePlace, end: SequencePlace): TInterval | undefined;
|
|
285
|
+
/**
|
|
286
|
+
* Changes the endpoints, properties, or both of an existing interval.
|
|
287
|
+
* @param id - Id of the Interval to change
|
|
288
|
+
* @returns the interval that was changed, if it existed in the collection.
|
|
289
|
+
* Pass the desired new start position, end position, and/or properties in an object. Start and end positions must be changed
|
|
290
|
+
* simultaneously - they must either both be specified or both undefined. To only change the properties, leave both endpoints
|
|
291
|
+
* undefined. To only change the endpoints, leave the properties undefined.
|
|
292
|
+
*/
|
|
293
|
+
change(id: string, { start, end, props }: {
|
|
294
|
+
start?: SequencePlace;
|
|
295
|
+
end?: SequencePlace;
|
|
296
|
+
props?: PropertySet;
|
|
297
|
+
}): TInterval | undefined;
|
|
365
298
|
attachDeserializer(onDeserialize: DeserializeCallback): void;
|
|
366
299
|
/**
|
|
367
300
|
* @returns an iterator over all intervals in this collection.
|
|
@@ -393,6 +326,14 @@ export declare interface IIntervalCollection<TInterval extends ISerializableInte
|
|
|
393
326
|
*/
|
|
394
327
|
gatherIterationResults(results: TInterval[], iteratesForward: boolean, start?: number, end?: number): void;
|
|
395
328
|
/**
|
|
329
|
+
* @deprecated - Users must manually attach the corresponding interval index to utilize this functionality, for instance:
|
|
330
|
+
*
|
|
331
|
+
* ```typescript
|
|
332
|
+
* const overlappingIntervalsIndex = createOverlappingIntervalsIndex(sharedString);
|
|
333
|
+
* collection.attachIndex(overlappingIntervalsIndex)
|
|
334
|
+
* const result = overlappingIntervalsIndex.findOverlappingIntervals(start, end);
|
|
335
|
+
* ```
|
|
336
|
+
*
|
|
396
337
|
* @returns an array of all intervals in this collection that overlap with the interval
|
|
397
338
|
* `[startPosition, endPosition]`.
|
|
398
339
|
*/
|
|
@@ -401,13 +342,34 @@ export declare interface IIntervalCollection<TInterval extends ISerializableInte
|
|
|
401
342
|
* Applies a function to each interval in this collection.
|
|
402
343
|
*/
|
|
403
344
|
map(fn: (interval: TInterval) => void): void;
|
|
345
|
+
/**
|
|
346
|
+
* @deprecated - due to the forthcoming change where the endpointIndex will no longer be
|
|
347
|
+
* automatically added to the collection. Users are advised to independently attach the
|
|
348
|
+
* index to the collection and utilize the API accordingly, for instance:
|
|
349
|
+
* ```typescript
|
|
350
|
+
* const endpointIndex = createEndpointIndex(sharedString);
|
|
351
|
+
* collection.attachIndex(endpointIndex);
|
|
352
|
+
* const result1 = endpointIndex.previousInterval(pos);
|
|
353
|
+
* ```
|
|
354
|
+
* If an index is used repeatedly, applications should generally attach it once and store it in memory.
|
|
355
|
+
*/
|
|
404
356
|
previousInterval(pos: number): TInterval | undefined;
|
|
357
|
+
/**
|
|
358
|
+
* @deprecated - due to the forthcoming change where the endpointIndex will no longer be
|
|
359
|
+
* automatically added to the collection. Users are advised to independently attach the
|
|
360
|
+
* index to the collection and utilize the API accordingly, for instance:
|
|
361
|
+
* ```typescript
|
|
362
|
+
* const endpointIndex = createEndpointIndex(sharedString);
|
|
363
|
+
* collection.attachIndex(endpointIndex);
|
|
364
|
+
* const result2 = endpointIndex.nextInterval(pos);
|
|
365
|
+
* ```
|
|
366
|
+
*/
|
|
405
367
|
nextInterval(pos: number): TInterval | undefined;
|
|
406
368
|
}
|
|
407
369
|
|
|
408
370
|
/**
|
|
409
371
|
* Change events emitted by `IntervalCollection`s
|
|
410
|
-
* @
|
|
372
|
+
* @alpha
|
|
411
373
|
*/
|
|
412
374
|
export declare interface IIntervalCollectionEvent<TInterval extends ISerializableInterval> extends IEvent {
|
|
413
375
|
/**
|
|
@@ -423,13 +385,13 @@ export declare interface IIntervalCollectionEvent<TInterval extends ISerializabl
|
|
|
423
385
|
* `op` is defined if and only if the server has acked this change.
|
|
424
386
|
* `slide` is true if the change is due to sliding on removal of position
|
|
425
387
|
*/
|
|
426
|
-
(event: "changeInterval", listener: (interval: TInterval, previousInterval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined, slide: boolean) => void):
|
|
388
|
+
(event: "changeInterval", listener: (interval: TInterval, previousInterval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined, slide: boolean) => void): void;
|
|
427
389
|
/**
|
|
428
390
|
* This event is invoked whenever an interval is added or removed from the collection.
|
|
429
391
|
* `local` reflects whether the change originated locally.
|
|
430
392
|
* `op` is defined if and only if the server has acked this change.
|
|
431
393
|
*/
|
|
432
|
-
(event: "addInterval" | "deleteInterval", listener: (interval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined) => void):
|
|
394
|
+
(event: "addInterval" | "deleteInterval", listener: (interval: TInterval, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
|
|
433
395
|
/**
|
|
434
396
|
* This event is invoked whenever an interval's properties have changed.
|
|
435
397
|
* `interval` reflects the state of the updated properties.
|
|
@@ -439,40 +401,12 @@ export declare interface IIntervalCollectionEvent<TInterval extends ISerializabl
|
|
|
439
401
|
* `local` reflects whether the change originated locally.
|
|
440
402
|
* `op` is defined if and only if the server has acked this change.
|
|
441
403
|
*/
|
|
442
|
-
(event: "propertyChanged", listener: (interval: TInterval, propertyDeltas: PropertySet, local: boolean, op: ISequencedDocumentMessage | undefined) => void):
|
|
404
|
+
(event: "propertyChanged", listener: (interval: TInterval, propertyDeltas: PropertySet, local: boolean, op: ISequencedDocumentMessage | undefined) => void): void;
|
|
443
405
|
}
|
|
444
406
|
|
|
445
|
-
|
|
446
|
-
* @sealed
|
|
447
|
-
* @deprecated The methods within have substitutions
|
|
448
|
-
* @public
|
|
449
|
-
*/
|
|
450
|
-
export declare interface IIntervalHelpers<TInterval extends ISerializableInterval> {
|
|
451
|
-
/**
|
|
452
|
-
*
|
|
453
|
-
* @param label - label of the interval collection this interval is being added to. This parameter is
|
|
454
|
-
* irrelevant for transient intervals.
|
|
455
|
-
* @param start - numerical start position of the interval
|
|
456
|
-
* @param end - numerical end position of the interval
|
|
457
|
-
* @param client - client creating the interval
|
|
458
|
-
* @param intervalType - Type of interval to create. Default is SlideOnRemove
|
|
459
|
-
* @param op - If this create came from a remote client, op that created it. Default is undefined (i.e. local)
|
|
460
|
-
* @param fromSnapshot - If this create came from loading a snapshot. Default is false.
|
|
461
|
-
* @param startSide - The side on which the start position lays. See
|
|
462
|
-
* {@link SequencePlace} for additional context
|
|
463
|
-
* @param endSide - The side on which the end position lays. See
|
|
464
|
-
* {@link SequencePlace} for additional context
|
|
465
|
-
*/
|
|
466
|
-
create(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, client: Client | undefined, intervalType: IntervalType, op?: ISequencedDocumentMessage, fromSnapshot?: boolean, useNewSlidingBehavior?: boolean): TInterval;
|
|
467
|
-
}
|
|
407
|
+
/* Excluded from this release type: IIntervalHelpers */
|
|
468
408
|
|
|
469
|
-
|
|
470
|
-
* @deprecated IJSONRunSegment will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
471
|
-
* @public
|
|
472
|
-
*/
|
|
473
|
-
export declare interface IJSONRunSegment<T> extends IJSONSegment {
|
|
474
|
-
items: Serializable<T>[];
|
|
475
|
-
}
|
|
409
|
+
/* Excluded from this release type: IJSONRunSegment */
|
|
476
410
|
|
|
477
411
|
/* Excluded from this release type: IMapMessageLocalMetadata */
|
|
478
412
|
|
|
@@ -480,71 +414,14 @@ export declare interface IJSONRunSegment<T> extends IJSONSegment {
|
|
|
480
414
|
* A sequence place that does not refer to the special endpoint segments.
|
|
481
415
|
*
|
|
482
416
|
* See {@link SequencePlace} for additional context.
|
|
483
|
-
* @
|
|
417
|
+
* @alpha
|
|
484
418
|
*/
|
|
485
419
|
export declare interface InteriorSequencePlace {
|
|
486
420
|
pos: number;
|
|
487
421
|
side: Side;
|
|
488
422
|
}
|
|
489
423
|
|
|
490
|
-
|
|
491
|
-
* Serializable interval whose endpoints are plain-old numbers.
|
|
492
|
-
* @public
|
|
493
|
-
*/
|
|
494
|
-
export declare class Interval implements ISerializableInterval {
|
|
495
|
-
start: number;
|
|
496
|
-
end: number;
|
|
497
|
-
/**
|
|
498
|
-
* {@inheritDoc ISerializableInterval.properties}
|
|
499
|
-
*/
|
|
500
|
-
properties: PropertySet;
|
|
501
|
-
/* Excluded from this release type: auxProps */
|
|
502
|
-
/* Excluded from this release type: propertyManager */
|
|
503
|
-
constructor(start: number, end: number, props?: PropertySet);
|
|
504
|
-
/**
|
|
505
|
-
* {@inheritDoc ISerializableInterval.getIntervalId}
|
|
506
|
-
*/
|
|
507
|
-
getIntervalId(): string;
|
|
508
|
-
/**
|
|
509
|
-
* @returns an array containing any auxiliary property sets added with `addPropertySet`.
|
|
510
|
-
*/
|
|
511
|
-
getAdditionalPropertySets(): PropertySet[];
|
|
512
|
-
/**
|
|
513
|
-
* Adds an auxiliary set of properties to this interval.
|
|
514
|
-
* These properties can be recovered using `getAdditionalPropertySets`
|
|
515
|
-
* @param props - set of properties to add
|
|
516
|
-
* @remarks This gets called as part of the default conflict resolver for `IIntervalCollection<Interval>`
|
|
517
|
-
* (i.e. non-sequence-based interval collections). However, the additional properties don't get serialized.
|
|
518
|
-
* This functionality seems half-baked.
|
|
519
|
-
*/
|
|
520
|
-
addPropertySet(props: PropertySet): void;
|
|
521
|
-
/* Excluded from this release type: serialize */
|
|
522
|
-
/**
|
|
523
|
-
* {@inheritDoc IInterval.clone}
|
|
524
|
-
*/
|
|
525
|
-
clone(): Interval;
|
|
526
|
-
/**
|
|
527
|
-
* {@inheritDoc IInterval.compare}
|
|
528
|
-
*/
|
|
529
|
-
compare(b: Interval): number;
|
|
530
|
-
/**
|
|
531
|
-
* {@inheritDoc IInterval.compareStart}
|
|
532
|
-
*/
|
|
533
|
-
compareStart(b: Interval): number;
|
|
534
|
-
/**
|
|
535
|
-
* {@inheritDoc IInterval.compareEnd}
|
|
536
|
-
*/
|
|
537
|
-
compareEnd(b: Interval): number;
|
|
538
|
-
/**
|
|
539
|
-
* {@inheritDoc IInterval.overlaps}
|
|
540
|
-
*/
|
|
541
|
-
overlaps(b: Interval): boolean;
|
|
542
|
-
/* Excluded from this release type: union */
|
|
543
|
-
getProperties(): PropertySet;
|
|
544
|
-
/* Excluded from this release type: addProperties */
|
|
545
|
-
/* Excluded from this release type: modify */
|
|
546
|
-
private initializeProperties;
|
|
547
|
-
}
|
|
424
|
+
/* Excluded from this release type: Interval */
|
|
548
425
|
|
|
549
426
|
/**
|
|
550
427
|
* Collection of intervals.
|
|
@@ -554,7 +431,7 @@ export declare class Interval implements ISerializableInterval {
|
|
|
554
431
|
* - "find all intervals with start endpoint between these two points"
|
|
555
432
|
* - "find all intervals which overlap this range"
|
|
556
433
|
* etc.
|
|
557
|
-
* @
|
|
434
|
+
* @alpha
|
|
558
435
|
*/
|
|
559
436
|
export declare interface IntervalIndex<TInterval extends ISerializableInterval> {
|
|
560
437
|
/**
|
|
@@ -571,91 +448,59 @@ export declare interface IntervalIndex<TInterval extends ISerializableInterval>
|
|
|
571
448
|
remove(interval: TInterval): void;
|
|
572
449
|
}
|
|
573
450
|
|
|
451
|
+
/* Excluded from this release type: IntervalLocator */
|
|
452
|
+
|
|
453
|
+
/* Excluded from this release type: intervalLocatorFromEndpoint */
|
|
454
|
+
|
|
455
|
+
/* Excluded from this release type: IntervalOpType */
|
|
456
|
+
|
|
457
|
+
/* Excluded from this release type: IntervalRevertible */
|
|
458
|
+
|
|
574
459
|
/**
|
|
575
|
-
*
|
|
576
|
-
*
|
|
460
|
+
* Determines how an interval should expand when segments are inserted adjacent
|
|
461
|
+
* to the range it spans
|
|
462
|
+
*
|
|
463
|
+
* Note that interval stickiness is currently an experimental feature and must
|
|
464
|
+
* be explicitly enabled with the `intervalStickinessEnabled` flag
|
|
465
|
+
*
|
|
466
|
+
* @alpha
|
|
577
467
|
*/
|
|
578
|
-
export declare
|
|
468
|
+
export declare const IntervalStickiness: {
|
|
579
469
|
/**
|
|
580
|
-
*
|
|
470
|
+
* Interval does not expand to include adjacent segments
|
|
581
471
|
*/
|
|
582
|
-
|
|
472
|
+
readonly NONE: 0;
|
|
583
473
|
/**
|
|
584
|
-
* Interval
|
|
474
|
+
* Interval expands to include segments inserted adjacent to the start
|
|
585
475
|
*/
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
/**
|
|
599
|
-
* Values are used in persisted formats (ops) and revertibles.
|
|
600
|
-
* @alpha
|
|
601
|
-
*/
|
|
602
|
-
export declare const IntervalOpType: {
|
|
603
|
-
readonly ADD: "add";
|
|
604
|
-
readonly DELETE: "delete";
|
|
605
|
-
readonly CHANGE: "change";
|
|
606
|
-
readonly PROPERTY_CHANGED: "propertyChanged";
|
|
607
|
-
readonly POSITION_REMOVE: "positionRemove";
|
|
476
|
+
readonly START: 1;
|
|
477
|
+
/**
|
|
478
|
+
* Interval expands to include segments inserted adjacent to the end
|
|
479
|
+
*
|
|
480
|
+
* This is the default stickiness
|
|
481
|
+
*/
|
|
482
|
+
readonly END: 2;
|
|
483
|
+
/**
|
|
484
|
+
* Interval expands to include all segments inserted adjacent to it
|
|
485
|
+
*/
|
|
486
|
+
readonly FULL: 3;
|
|
608
487
|
};
|
|
609
488
|
|
|
610
489
|
/**
|
|
611
|
-
*
|
|
490
|
+
* Determines how an interval should expand when segments are inserted adjacent
|
|
491
|
+
* to the range it spans
|
|
612
492
|
*
|
|
493
|
+
* Note that interval stickiness is currently an experimental feature and must
|
|
494
|
+
* be explicitly enabled with the `intervalStickinessEnabled` flag
|
|
613
495
|
* @alpha
|
|
614
496
|
*/
|
|
615
|
-
export declare type
|
|
616
|
-
event: typeof IntervalOpType.CHANGE;
|
|
617
|
-
interval: SequenceInterval;
|
|
618
|
-
start: LocalReferencePosition;
|
|
619
|
-
end: LocalReferencePosition;
|
|
620
|
-
} | {
|
|
621
|
-
event: typeof IntervalOpType.ADD;
|
|
622
|
-
interval: SequenceInterval;
|
|
623
|
-
} | {
|
|
624
|
-
event: typeof IntervalOpType.DELETE;
|
|
625
|
-
interval: SequenceInterval;
|
|
626
|
-
start: LocalReferencePosition;
|
|
627
|
-
end: LocalReferencePosition;
|
|
628
|
-
} | {
|
|
629
|
-
event: typeof IntervalOpType.PROPERTY_CHANGED;
|
|
630
|
-
interval: SequenceInterval;
|
|
631
|
-
propertyDeltas: PropertySet;
|
|
632
|
-
} | {
|
|
633
|
-
event: typeof IntervalOpType.POSITION_REMOVE;
|
|
634
|
-
intervals: {
|
|
635
|
-
intervalId: string;
|
|
636
|
-
label: string;
|
|
637
|
-
startOffset?: number;
|
|
638
|
-
endOffset?: number;
|
|
639
|
-
}[];
|
|
640
|
-
revertibleRefs: {
|
|
641
|
-
revertible: IntervalRevertible;
|
|
642
|
-
offset: number;
|
|
643
|
-
isStart: boolean;
|
|
644
|
-
}[];
|
|
645
|
-
mergeTreeRevertible: MergeTreeDeltaRevertible;
|
|
646
|
-
};
|
|
647
|
-
|
|
648
|
-
/* Excluded from this release type: IntervalStickiness */
|
|
497
|
+
export declare type IntervalStickiness = (typeof IntervalStickiness)[keyof typeof IntervalStickiness];
|
|
649
498
|
|
|
650
499
|
/**
|
|
651
|
-
* @
|
|
500
|
+
* @alpha
|
|
652
501
|
*/
|
|
653
502
|
export declare enum IntervalType {
|
|
654
503
|
Simple = 0,
|
|
655
|
-
/**
|
|
656
|
-
* @deprecated this functionality is no longer supported and will be removed
|
|
657
|
-
*/
|
|
658
|
-
Nest = 1,
|
|
659
504
|
/**
|
|
660
505
|
* SlideOnRemove indicates that the ends of the interval will slide if the segment
|
|
661
506
|
* they reference is removed and acked.
|
|
@@ -666,24 +511,13 @@ export declare enum IntervalType {
|
|
|
666
511
|
/* Excluded from this release type: Transient */
|
|
667
512
|
}
|
|
668
513
|
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
export declare interface IOverlappingIntervalsIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
|
|
673
|
-
/**
|
|
674
|
-
* @returns an array of all intervals contained in this collection that overlap the range
|
|
675
|
-
* `[start end]`.
|
|
676
|
-
*/
|
|
677
|
-
findOverlappingIntervals(start: SequencePlace, end: SequencePlace): TInterval[];
|
|
678
|
-
/**
|
|
679
|
-
* Gathers the interval results based on specified parameters.
|
|
680
|
-
*/
|
|
681
|
-
gatherIterationResults(results: TInterval[], iteratesForward: boolean, start?: SequencePlace, end?: SequencePlace): void;
|
|
682
|
-
}
|
|
514
|
+
/* Excluded from this release type: IOverlappingIntervalsIndex */
|
|
515
|
+
|
|
516
|
+
export { ISegment }
|
|
683
517
|
|
|
684
518
|
/**
|
|
685
519
|
* A range that has changed corresponding to a segment modification.
|
|
686
|
-
* @
|
|
520
|
+
* @alpha
|
|
687
521
|
*/
|
|
688
522
|
export declare interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
|
|
689
523
|
/**
|
|
@@ -718,14 +552,17 @@ export declare interface ISequenceDeltaRange<TOperation extends MergeTreeDeltaOp
|
|
|
718
552
|
}
|
|
719
553
|
|
|
720
554
|
/**
|
|
721
|
-
* @
|
|
555
|
+
* @alpha
|
|
722
556
|
*/
|
|
723
557
|
export declare interface ISerializableInterval extends IInterval {
|
|
724
558
|
/** Serializable bag of properties associated with the interval. */
|
|
725
559
|
properties: PropertySet;
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
560
|
+
/***/
|
|
561
|
+
propertyManager: PropertiesManager;
|
|
562
|
+
/***/
|
|
563
|
+
serialize(): ISerializedInterval;
|
|
564
|
+
/***/
|
|
565
|
+
addProperties(props: PropertySet, collaborating?: boolean, seq?: number): PropertySet | undefined;
|
|
729
566
|
/**
|
|
730
567
|
* Gets the id associated with this interval.
|
|
731
568
|
* When the interval is used as part of an interval collection, this id can be used to modify or remove the
|
|
@@ -736,10 +573,38 @@ export declare interface ISerializableInterval extends IInterval {
|
|
|
736
573
|
getIntervalId(): string | undefined;
|
|
737
574
|
}
|
|
738
575
|
|
|
739
|
-
|
|
576
|
+
/**
|
|
577
|
+
* Serialized object representation of an interval.
|
|
578
|
+
* This representation is used for ops that create or change intervals.
|
|
579
|
+
* @alpha
|
|
580
|
+
*/
|
|
581
|
+
export declare interface ISerializedInterval {
|
|
582
|
+
/**
|
|
583
|
+
* Sequence number at which `start` and `end` should be interpreted
|
|
584
|
+
*
|
|
585
|
+
* @remarks It's unclear that this is necessary to store here.
|
|
586
|
+
* This should just be the refSeq on the op that modified the interval, which should be available via other means.
|
|
587
|
+
* At the time of writing, it's not plumbed through to the reconnect/rebase code, however, which does need it.
|
|
588
|
+
*/
|
|
589
|
+
sequenceNumber: number;
|
|
590
|
+
/** Start position of the interval */
|
|
591
|
+
start: number | "start" | "end";
|
|
592
|
+
/** End position of the interval */
|
|
593
|
+
end: number | "start" | "end";
|
|
594
|
+
/** Interval type to create */
|
|
595
|
+
intervalType: IntervalType;
|
|
596
|
+
/**
|
|
597
|
+
* The stickiness of this interval
|
|
598
|
+
*/
|
|
599
|
+
stickiness?: IntervalStickiness;
|
|
600
|
+
startSide?: Side;
|
|
601
|
+
endSide?: Side;
|
|
602
|
+
/** Any properties the interval has */
|
|
603
|
+
properties?: PropertySet;
|
|
604
|
+
}
|
|
740
605
|
|
|
741
606
|
/**
|
|
742
|
-
* @
|
|
607
|
+
* @alpha
|
|
743
608
|
*/
|
|
744
609
|
export declare interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {
|
|
745
610
|
getIntervalCollection(label: string): IIntervalCollection<TInterval>;
|
|
@@ -777,17 +642,17 @@ export declare interface ISharedIntervalCollection<TInterval extends ISerializab
|
|
|
777
642
|
* - `event` - Various information on the segments that were modified.
|
|
778
643
|
*
|
|
779
644
|
* - `target` - The sequence itself.
|
|
780
|
-
* @
|
|
645
|
+
* @alpha
|
|
781
646
|
*/
|
|
782
647
|
export declare interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
|
|
783
|
-
(event: "createIntervalCollection", listener: (label: string, local: boolean, target: IEventThisPlaceHolder) => void):
|
|
784
|
-
(event: "sequenceDelta", listener: (event: SequenceDeltaEvent, target: IEventThisPlaceHolder) => void):
|
|
785
|
-
(event: "maintenance", listener: (event: SequenceMaintenanceEvent, target: IEventThisPlaceHolder) => void):
|
|
648
|
+
(event: "createIntervalCollection", listener: (label: string, local: boolean, target: IEventThisPlaceHolder) => void): void;
|
|
649
|
+
(event: "sequenceDelta", listener: (event: SequenceDeltaEvent, target: IEventThisPlaceHolder) => void): void;
|
|
650
|
+
(event: "maintenance", listener: (event: SequenceMaintenanceEvent, target: IEventThisPlaceHolder) => void): void;
|
|
786
651
|
}
|
|
787
652
|
|
|
788
653
|
/**
|
|
789
654
|
* Fluid object interface describing access methods on a SharedString
|
|
790
|
-
* @
|
|
655
|
+
* @alpha
|
|
791
656
|
*/
|
|
792
657
|
export declare interface ISharedString extends SharedSegmentSequence<SharedStringSegment> {
|
|
793
658
|
/**
|
|
@@ -803,34 +668,38 @@ export declare interface ISharedString extends SharedSegmentSequence<SharedStrin
|
|
|
803
668
|
* @param refType - The reference type of the marker
|
|
804
669
|
* @param props - The properties of the marker
|
|
805
670
|
*/
|
|
806
|
-
insertMarker(pos: number, refType: ReferenceType, props?: PropertySet):
|
|
671
|
+
insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void;
|
|
807
672
|
/**
|
|
808
673
|
* {@inheritDoc SharedSegmentSequence.posFromRelativePos}
|
|
809
674
|
*/
|
|
810
675
|
posFromRelativePos(relativePos: IRelativePosition): number;
|
|
811
676
|
}
|
|
812
677
|
|
|
813
|
-
|
|
814
|
-
* Collection of intervals.
|
|
815
|
-
*
|
|
816
|
-
* Provide additional APIs to support efficiently querying a collection of intervals whose startpoints fall within a specified range.
|
|
817
|
-
* @public
|
|
818
|
-
*/
|
|
819
|
-
export declare interface IStartpointInRangeIndex<TInterval extends ISerializableInterval> extends IntervalIndex<TInterval> {
|
|
820
|
-
/**
|
|
821
|
-
* @returns an array of all intervals contained in this collection whose startpoints locate in the range [start, end] (includes both ends)
|
|
822
|
-
*/
|
|
823
|
-
findIntervalsWithStartpointInRange(start: number, end: number): TInterval[];
|
|
824
|
-
}
|
|
678
|
+
/* Excluded from this release type: IStartpointInRangeIndex */
|
|
825
679
|
|
|
826
680
|
/* Excluded from this release type: IValueOpEmitter */
|
|
681
|
+
export { LocalReferencePosition }
|
|
827
682
|
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
*/
|
|
833
|
-
export
|
|
683
|
+
export { MapLike }
|
|
684
|
+
|
|
685
|
+
export { Marker }
|
|
686
|
+
|
|
687
|
+
/* Excluded from this release type: MergeTreeDeltaRevertible */
|
|
688
|
+
export { MergeTreeDeltaType }
|
|
689
|
+
|
|
690
|
+
export { PropertySet }
|
|
691
|
+
|
|
692
|
+
export { ReferencePosition }
|
|
693
|
+
|
|
694
|
+
export { ReferenceType }
|
|
695
|
+
|
|
696
|
+
/* Excluded from this release type: reservedMarkerIdKey */
|
|
697
|
+
|
|
698
|
+
/* Excluded from this release type: reservedRangeLabelsKey */
|
|
699
|
+
|
|
700
|
+
/* Excluded from this release type: reservedTileLabelsKey */
|
|
701
|
+
|
|
702
|
+
/* Excluded from this release type: revertSharedStringRevertibles */
|
|
834
703
|
|
|
835
704
|
/**
|
|
836
705
|
* The event object returned on sequenceDelta events.
|
|
@@ -842,7 +711,7 @@ export declare function revertSharedStringRevertibles(sharedString: SharedString
|
|
|
842
711
|
* For group ops, each op will get its own event, and the group op property will be set on the op args.
|
|
843
712
|
*
|
|
844
713
|
* Ops may get multiple events. For instance, an insert-replace will get a remove then an insert event.
|
|
845
|
-
* @
|
|
714
|
+
* @alpha
|
|
846
715
|
*/
|
|
847
716
|
export declare class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
|
|
848
717
|
readonly opArgs: IMergeTreeDeltaOpArgs;
|
|
@@ -859,7 +728,7 @@ export declare class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOper
|
|
|
859
728
|
* The properties of this object and its sub-objects represent the state of the sequence at the
|
|
860
729
|
* point in time at which the operation was applied.
|
|
861
730
|
* They will not take into any future modifications performed to the underlying sequence and merge tree.
|
|
862
|
-
* @
|
|
731
|
+
* @alpha
|
|
863
732
|
*/
|
|
864
733
|
export declare abstract class SequenceEvent<TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes> {
|
|
865
734
|
readonly deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>;
|
|
@@ -914,7 +783,7 @@ export declare abstract class SequenceEvent<TOperation extends MergeTreeDeltaOpe
|
|
|
914
783
|
* `mergeTreeReferencesCanSlideToEndpoint` feature flag set to true, the endpoints
|
|
915
784
|
* of the interval that are exclusive will have the ability to slide to these
|
|
916
785
|
* special endpoint segments.
|
|
917
|
-
* @
|
|
786
|
+
* @alpha
|
|
918
787
|
*/
|
|
919
788
|
export declare class SequenceInterval implements ISerializableInterval {
|
|
920
789
|
private readonly client;
|
|
@@ -935,8 +804,12 @@ export declare class SequenceInterval implements ISerializableInterval {
|
|
|
935
804
|
* {@inheritDoc ISerializableInterval.properties}
|
|
936
805
|
*/
|
|
937
806
|
properties: PropertySet;
|
|
938
|
-
|
|
939
|
-
|
|
807
|
+
/**
|
|
808
|
+
* {@inheritDoc ISerializableInterval.propertyManager}
|
|
809
|
+
*/
|
|
810
|
+
propertyManager: PropertiesManager;
|
|
811
|
+
/***/
|
|
812
|
+
get stickiness(): IntervalStickiness;
|
|
940
813
|
constructor(client: Client,
|
|
941
814
|
/**
|
|
942
815
|
* Start endpoint of this interval.
|
|
@@ -949,9 +822,18 @@ export declare class SequenceInterval implements ISerializableInterval {
|
|
|
949
822
|
*/
|
|
950
823
|
end: LocalReferencePosition, intervalType: IntervalType, props?: PropertySet, startSide?: Side, endSide?: Side);
|
|
951
824
|
private callbacks?;
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
825
|
+
/**
|
|
826
|
+
* Subscribes to position change events on this interval if there are no current listeners.
|
|
827
|
+
*/
|
|
828
|
+
addPositionChangeListeners(beforePositionChange: () => void, afterPositionChange: () => void): void;
|
|
829
|
+
/**
|
|
830
|
+
* Removes the currently subscribed position change listeners.
|
|
831
|
+
*/
|
|
832
|
+
removePositionChangeListeners(): void;
|
|
833
|
+
/**
|
|
834
|
+
* {@inheritDoc ISerializableInterval.serialize}
|
|
835
|
+
*/
|
|
836
|
+
serialize(): ISerializedInterval;
|
|
955
837
|
/**
|
|
956
838
|
* {@inheritDoc IInterval.clone}
|
|
957
839
|
*/
|
|
@@ -976,48 +858,27 @@ export declare class SequenceInterval implements ISerializableInterval {
|
|
|
976
858
|
* {@inheritDoc ISerializableInterval.getIntervalId}
|
|
977
859
|
*/
|
|
978
860
|
getIntervalId(): string;
|
|
979
|
-
|
|
980
|
-
|
|
861
|
+
/**
|
|
862
|
+
* {@inheritDoc IInterval.union}
|
|
863
|
+
*/
|
|
864
|
+
union(b: SequenceInterval): SequenceInterval;
|
|
865
|
+
/**
|
|
866
|
+
* {@inheritDoc ISerializableInterval.addProperties}
|
|
867
|
+
*/
|
|
868
|
+
addProperties(newProps: PropertySet, collab?: boolean, seq?: number): PropertySet | undefined;
|
|
981
869
|
/**
|
|
982
870
|
* @returns whether this interval overlaps two numerical positions.
|
|
983
871
|
*/
|
|
984
872
|
overlapsPos(bstart: number, bend: number): boolean;
|
|
985
|
-
|
|
986
|
-
|
|
873
|
+
/**
|
|
874
|
+
* {@inheritDoc IInterval.modify}
|
|
875
|
+
*/
|
|
876
|
+
modify(label: string, start: SequencePlace | undefined, end: SequencePlace | undefined, op?: ISequencedDocumentMessage, localSeq?: number, useNewSlidingBehavior?: boolean): SequenceInterval;
|
|
987
877
|
}
|
|
988
878
|
|
|
989
|
-
|
|
990
|
-
* @deprecated The methods within have substitutions
|
|
991
|
-
* @public
|
|
992
|
-
*/
|
|
993
|
-
export declare const sequenceIntervalHelpers: IIntervalHelpers<SequenceInterval>;
|
|
879
|
+
/* Excluded from this release type: sequenceIntervalHelpers */
|
|
994
880
|
|
|
995
|
-
|
|
996
|
-
* This namespace contains specialiazations of indexes which support spatial queries
|
|
997
|
-
* specifically for `SequenceInterval`s.
|
|
998
|
-
* @public
|
|
999
|
-
*/
|
|
1000
|
-
export declare namespace SequenceIntervalIndexes {
|
|
1001
|
-
/**
|
|
1002
|
-
* Collection of intervals.
|
|
1003
|
-
*
|
|
1004
|
-
* Provides additional APIs to support efficiently querying a collection of intervals based on segments and offset.
|
|
1005
|
-
*/
|
|
1006
|
-
export interface Overlapping extends IOverlappingIntervalsIndex<SequenceInterval> {
|
|
1007
|
-
/**
|
|
1008
|
-
* Finds overlapping intervals within the specified range.
|
|
1009
|
-
*
|
|
1010
|
-
* @returns an array of all intervals that overlap with the specified SegOff range (includes both ends)
|
|
1011
|
-
*/
|
|
1012
|
-
findOverlappingIntervalsBySegoff(startSegoff: {
|
|
1013
|
-
segment: ISegment | undefined;
|
|
1014
|
-
offset: number | undefined;
|
|
1015
|
-
}, endSegoff: {
|
|
1016
|
-
segment: ISegment | undefined;
|
|
1017
|
-
offset: number | undefined;
|
|
1018
|
-
}): Iterable<SequenceInterval>;
|
|
1019
|
-
}
|
|
1020
|
-
}
|
|
881
|
+
/* Excluded from this release type: SequenceIntervalIndexes */
|
|
1021
882
|
|
|
1022
883
|
/**
|
|
1023
884
|
* The event object returned on maintenance events.
|
|
@@ -1025,44 +886,14 @@ export declare namespace SequenceIntervalIndexes {
|
|
|
1025
886
|
* The properties of this object and its sub-objects represent the state of the sequence at the
|
|
1026
887
|
* point in time at which the operation was applied.
|
|
1027
888
|
* They will not take into consideration any future modifications performed to the underlying sequence and merge tree.
|
|
1028
|
-
* @
|
|
889
|
+
* @alpha
|
|
1029
890
|
*/
|
|
1030
891
|
export declare class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
|
|
1031
892
|
readonly opArgs: IMergeTreeDeltaOpArgs | undefined;
|
|
1032
893
|
constructor(opArgs: IMergeTreeDeltaOpArgs | undefined, deltaArgs: IMergeTreeMaintenanceCallbackArgs, mergeTreeClient: Client);
|
|
1033
894
|
}
|
|
1034
895
|
|
|
1035
|
-
|
|
1036
|
-
* Optional flags that configure options for sequence DDSs
|
|
1037
|
-
* @public
|
|
1038
|
-
*/
|
|
1039
|
-
export declare interface SequenceOptions {
|
|
1040
|
-
/**
|
|
1041
|
-
* Enable the ability to use interval APIs that rely on positions before and
|
|
1042
|
-
* after individual characters, referred to as "sides". See {@link SequencePlace}
|
|
1043
|
-
* for additional context.
|
|
1044
|
-
*
|
|
1045
|
-
* This flag must be enabled to pass instances of {@link SequencePlace} to
|
|
1046
|
-
* any IIntervalCollection API.
|
|
1047
|
-
*
|
|
1048
|
-
* Also see the feature flag `mergeTreeReferencesCanSlideToEndpoint` to allow
|
|
1049
|
-
* endpoints to slide to the special endpoint segments.
|
|
1050
|
-
*
|
|
1051
|
-
* The default value is false.
|
|
1052
|
-
*/
|
|
1053
|
-
intervalStickinessEnabled: boolean;
|
|
1054
|
-
/**
|
|
1055
|
-
* Enable the ability for interval endpoints to slide to the special endpoint
|
|
1056
|
-
* segments that exist before and after the bounds of the string. This is
|
|
1057
|
-
* primarily useful for workflows involving interval stickiness, and it is
|
|
1058
|
-
* suggested to enable both this flag and `intervalStickinessEnabled` at the
|
|
1059
|
-
* same time.
|
|
1060
|
-
*
|
|
1061
|
-
* The default value is false.
|
|
1062
|
-
*/
|
|
1063
|
-
mergeTreeReferencesCanSlideToEndpoint: boolean;
|
|
1064
|
-
[key: string]: boolean;
|
|
1065
|
-
}
|
|
896
|
+
/* Excluded from this release type: SequenceOptions */
|
|
1066
897
|
|
|
1067
898
|
/**
|
|
1068
899
|
* Defines a position and side relative to a character in a sequence.
|
|
@@ -1087,81 +918,37 @@ export declare interface SequenceOptions {
|
|
|
1087
918
|
* If a SequencePlace is the endpoint of a range (e.g. start/end of an interval or search range),
|
|
1088
919
|
* the Side value means it is exclusive if it is nearer to the other position and inclusive if it is farther.
|
|
1089
920
|
* E.g. the start of a range with Side.After is exclusive of the character at the position.
|
|
1090
|
-
* @
|
|
921
|
+
* @alpha
|
|
1091
922
|
*/
|
|
1092
923
|
export declare type SequencePlace = number | "start" | "end" | InteriorSequencePlace;
|
|
1093
924
|
|
|
1094
925
|
/* Excluded from this release type: SerializedIntervalDelta */
|
|
1095
926
|
|
|
1096
|
-
|
|
1097
|
-
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
1098
|
-
* @public
|
|
1099
|
-
*/
|
|
1100
|
-
export declare class SharedIntervalCollection extends SharedObject implements ISharedIntervalCollection<Interval> {
|
|
1101
|
-
/**
|
|
1102
|
-
* Create a SharedIntervalCollection
|
|
1103
|
-
*
|
|
1104
|
-
* @param runtime - data store runtime the new shared map belongs to
|
|
1105
|
-
* @param id - optional name of the shared map
|
|
1106
|
-
* @returns newly create shared map (but not attached yet)
|
|
1107
|
-
*/
|
|
1108
|
-
static create(runtime: IFluidDataStoreRuntime, id?: string): SharedIntervalCollection;
|
|
1109
|
-
/**
|
|
1110
|
-
* Get a factory for SharedIntervalCollection to register with the data store.
|
|
1111
|
-
*
|
|
1112
|
-
* @returns a factory that creates and load SharedIntervalCollection
|
|
1113
|
-
*/
|
|
1114
|
-
static getFactory(): IChannelFactory;
|
|
1115
|
-
readonly [Symbol.toStringTag]: string;
|
|
1116
|
-
private readonly intervalCollections;
|
|
1117
|
-
/**
|
|
1118
|
-
* Constructs a new shared SharedIntervalCollection. If the object is non-local an id and service interfaces will
|
|
1119
|
-
* be provided
|
|
1120
|
-
*/
|
|
1121
|
-
constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
|
|
1122
|
-
getIntervalCollection(label: string): IIntervalCollection<Interval>;
|
|
1123
|
-
protected summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats;
|
|
1124
|
-
protected reSubmitCore(content: any, localOpMetadata: unknown): void;
|
|
1125
|
-
protected onDisconnect(): void;
|
|
1126
|
-
/**
|
|
1127
|
-
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.loadCore}
|
|
1128
|
-
*/
|
|
1129
|
-
protected loadCore(storage: IChannelStorageService): Promise<void>;
|
|
1130
|
-
protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
|
|
1131
|
-
/**
|
|
1132
|
-
* Creates the full path of the intervalCollection label
|
|
1133
|
-
* @param label - the incoming label
|
|
1134
|
-
*/
|
|
1135
|
-
protected getIntervalCollectionPath(label: string): string;
|
|
1136
|
-
protected applyStashedOp(): void;
|
|
1137
|
-
}
|
|
927
|
+
/* Excluded from this release type: SharedIntervalCollection */
|
|
1138
928
|
|
|
1139
|
-
|
|
1140
|
-
* The factory that defines the SharedIntervalCollection.
|
|
1141
|
-
* @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
|
|
1142
|
-
* @public
|
|
1143
|
-
*/
|
|
1144
|
-
export declare class SharedIntervalCollectionFactory implements IChannelFactory {
|
|
1145
|
-
static readonly Type = "https://graph.microsoft.com/types/sharedIntervalCollection";
|
|
1146
|
-
static readonly Attributes: IChannelAttributes;
|
|
1147
|
-
get type(): string;
|
|
1148
|
-
get attributes(): IChannelAttributes;
|
|
1149
|
-
/**
|
|
1150
|
-
* {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}
|
|
1151
|
-
*/
|
|
1152
|
-
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, attributes: IChannelAttributes): Promise<SharedIntervalCollection>;
|
|
1153
|
-
create(runtime: IFluidDataStoreRuntime, id: string): SharedIntervalCollection;
|
|
1154
|
-
}
|
|
929
|
+
/* Excluded from this release type: SharedIntervalCollectionFactory */
|
|
1155
930
|
|
|
1156
931
|
/**
|
|
1157
|
-
* @
|
|
932
|
+
* @alpha
|
|
1158
933
|
*/
|
|
1159
934
|
export declare abstract class SharedSegmentSequence<T extends ISegment> extends SharedObject<ISharedSegmentSequenceEvents> implements ISharedIntervalCollection<SequenceInterval>, MergeTreeRevertibleDriver {
|
|
1160
935
|
private readonly dataStoreRuntime;
|
|
1161
936
|
id: string;
|
|
1162
937
|
readonly segmentFromSpec: (spec: IJSONSegment) => ISegment;
|
|
1163
938
|
get loaded(): Promise<void>;
|
|
1164
|
-
|
|
939
|
+
/**
|
|
940
|
+
* This is a safeguard to avoid problematic reentrancy of local ops. This type of scenario occurs if the user of SharedString subscribes
|
|
941
|
+
* to the `sequenceDelta` event and uses the callback for a local op to submit further local ops.
|
|
942
|
+
* Historically (before 2.0.0-internal.6.1.0), doing so would result in eventual consistency issues or a corrupted document.
|
|
943
|
+
* These issues were fixed in #16815 which makes such reentrancy no different from applying the ops in order but not from within the change events,
|
|
944
|
+
* but there is still little test coverage for reentrant scenarios.
|
|
945
|
+
* Additionally, applications submitting ops from inside change events need to take extreme care that their data models also support reentrancy.
|
|
946
|
+
* Since this is likely not the case, by default SharedString throws when encountering reentrant ops.
|
|
947
|
+
*
|
|
948
|
+
* An application using SharedString which explicitly wants to opt in to allowing reentrancy anyway can set `sharedStringPreventReentrancy`
|
|
949
|
+
* on the data store options to `false`.
|
|
950
|
+
*/
|
|
951
|
+
protected guardReentrancy: <TRet>(callback: () => TRet) => TRet;
|
|
1165
952
|
private static createOpsFromDelta;
|
|
1166
953
|
protected client: Client;
|
|
1167
954
|
/** `Deferred` that triggers once the object is loaded */
|
|
@@ -1176,9 +963,19 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
1176
963
|
* @param start - The inclusive start of the range to remove
|
|
1177
964
|
* @param end - The exclusive end of the range to remove
|
|
1178
965
|
*/
|
|
1179
|
-
removeRange(start: number, end: number):
|
|
966
|
+
removeRange(start: number, end: number): void;
|
|
967
|
+
/**
|
|
968
|
+
* Obliterate is similar to remove, but differs in that segments concurrently
|
|
969
|
+
* inserted into an obliterated range will also be removed
|
|
970
|
+
*
|
|
971
|
+
* @param start - The inclusive start of the range to obliterate
|
|
972
|
+
* @param end - The exclusive end of the range to obliterate
|
|
973
|
+
*/
|
|
974
|
+
obliterateRange(start: number, end: number): void;
|
|
1180
975
|
/**
|
|
1181
|
-
* @deprecated The ability to create group ops will be removed in an upcoming
|
|
976
|
+
* @deprecated The ability to create group ops will be removed in an upcoming
|
|
977
|
+
* release, as group ops are redundant with the native batching capabilities
|
|
978
|
+
* of the runtime
|
|
1182
979
|
*/
|
|
1183
980
|
groupOperation(groupOp: IMergeTreeGroupMsg): void;
|
|
1184
981
|
/**
|
|
@@ -1206,10 +1003,9 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
1206
1003
|
* @param start - The inclusive start position of the range to annotate
|
|
1207
1004
|
* @param end - The exclusive end position of the range to annotate
|
|
1208
1005
|
* @param props - The properties to annotate the range with
|
|
1209
|
-
* @param combiningOp - Optional. Specifies how to combine values for the property, such as "incr" for increment.
|
|
1210
1006
|
*
|
|
1211
1007
|
*/
|
|
1212
|
-
annotateRange(start: number, end: number, props: PropertySet
|
|
1008
|
+
annotateRange(start: number, end: number, props: PropertySet): void;
|
|
1213
1009
|
getPropertiesAtPosition(pos: number): PropertySet | undefined;
|
|
1214
1010
|
getRangeExtentsOfPosition(pos: number): {
|
|
1215
1011
|
posStart: number | undefined;
|
|
@@ -1247,10 +1043,7 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
1247
1043
|
* @param remoteClientId - The client id of the remote client
|
|
1248
1044
|
*/
|
|
1249
1045
|
resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined;
|
|
1250
|
-
|
|
1251
|
-
* @deprecated This method will no longer be public in an upcoming release as it is not safe to use outside of this class
|
|
1252
|
-
*/
|
|
1253
|
-
submitSequenceMessage(message: IMergeTreeOp): void;
|
|
1046
|
+
private submitSequenceMessage;
|
|
1254
1047
|
/**
|
|
1255
1048
|
* Given a position specified relative to a marker id, lookup the marker
|
|
1256
1049
|
* and convert the position to a character position.
|
|
@@ -1259,22 +1052,19 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
1259
1052
|
posFromRelativePos(relativePos: IRelativePosition): number;
|
|
1260
1053
|
/**
|
|
1261
1054
|
* Walk the underlying segments of the sequence.
|
|
1262
|
-
* The walked segments may extend beyond the range
|
|
1263
|
-
*
|
|
1264
|
-
* Set split range to true to ensure only segments within the
|
|
1265
|
-
* range are walked.
|
|
1055
|
+
* The walked segments may extend beyond the range if the segments cross the
|
|
1056
|
+
* ranges start or end boundaries.
|
|
1266
1057
|
*
|
|
1267
|
-
*
|
|
1058
|
+
* Set split range to true to ensure only segments within the range are walked.
|
|
1059
|
+
*
|
|
1060
|
+
* @param handler - The function to handle each segment. Traversal ends if
|
|
1061
|
+
* this function returns true.
|
|
1268
1062
|
* @param start - Optional. The start of range walk.
|
|
1269
1063
|
* @param end - Optional. The end of range walk
|
|
1270
1064
|
* @param accum - Optional. An object that will be passed to the handler for accumulation
|
|
1271
1065
|
* @param splitRange - Optional. Splits boundary segments on the range boundaries
|
|
1272
1066
|
*/
|
|
1273
1067
|
walkSegments<TClientData>(handler: ISegmentAction<TClientData>, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void;
|
|
1274
|
-
/**
|
|
1275
|
-
* @deprecated this functionality is no longer supported and will be removed
|
|
1276
|
-
*/
|
|
1277
|
-
getStackContext(startPos: number, rangeLabels: string[]): RangeStackMap;
|
|
1278
1068
|
/**
|
|
1279
1069
|
* @returns The most recent sequence number which has been acked by the server and processed by this
|
|
1280
1070
|
* SharedSegmentSequence.
|
|
@@ -1368,36 +1158,7 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
1368
1158
|
private initializeIntervalCollections;
|
|
1369
1159
|
}
|
|
1370
1160
|
|
|
1371
|
-
|
|
1372
|
-
* @deprecated SharedSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
|
|
1373
|
-
* @public
|
|
1374
|
-
*/
|
|
1375
|
-
export declare class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
|
|
1376
|
-
id: string;
|
|
1377
|
-
constructor(document: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes, specToSegment: (spec: IJSONSegment) => ISegment);
|
|
1378
|
-
/**
|
|
1379
|
-
* @param pos - The position to insert the items at.
|
|
1380
|
-
* @param items - The items to insert.
|
|
1381
|
-
* @param props - Optional. Properties to set on the inserted items.
|
|
1382
|
-
*/
|
|
1383
|
-
insert(pos: number, items: Serializable<T>[], props?: PropertySet): void;
|
|
1384
|
-
/**
|
|
1385
|
-
* @param start - The inclusive start of the range to remove
|
|
1386
|
-
* @param end - The exclusive end of the range to remove
|
|
1387
|
-
*/
|
|
1388
|
-
remove(start: number, end: number): void;
|
|
1389
|
-
/**
|
|
1390
|
-
* Returns the total count of items in the sequence
|
|
1391
|
-
*/
|
|
1392
|
-
getItemCount(): number;
|
|
1393
|
-
/**
|
|
1394
|
-
* Gets the items in the specified range
|
|
1395
|
-
*
|
|
1396
|
-
* @param start - The inclusive start of the range
|
|
1397
|
-
* @param end - The exclusive end of the range
|
|
1398
|
-
*/
|
|
1399
|
-
getItems(start: number, end?: number): Serializable<T>[];
|
|
1400
|
-
}
|
|
1161
|
+
/* Excluded from this release type: SharedSequence */
|
|
1401
1162
|
|
|
1402
1163
|
/**
|
|
1403
1164
|
* The Shared String is a specialized data structure for handling collaborative
|
|
@@ -1407,8 +1168,7 @@ export declare class SharedSequence<T> extends SharedSegmentSequence<SubSequence
|
|
|
1407
1168
|
* In addition to text, a Shared String can also contain markers. Markers can be
|
|
1408
1169
|
* used to store metadata at positions within the text, like the details of an
|
|
1409
1170
|
* image or Fluid object that should be rendered with the text.
|
|
1410
|
-
*
|
|
1411
|
-
* @public
|
|
1171
|
+
* @alpha
|
|
1412
1172
|
*/
|
|
1413
1173
|
export declare class SharedString extends SharedSegmentSequence<SharedStringSegment> implements ISharedString {
|
|
1414
1174
|
id: string;
|
|
@@ -1437,7 +1197,7 @@ export declare class SharedString extends SharedSegmentSequence<SharedStringSegm
|
|
|
1437
1197
|
/**
|
|
1438
1198
|
* {@inheritDoc ISharedString.insertMarker}
|
|
1439
1199
|
*/
|
|
1440
|
-
insertMarker(pos: number, refType: ReferenceType, props?: PropertySet):
|
|
1200
|
+
insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void;
|
|
1441
1201
|
/**
|
|
1442
1202
|
* Inserts the text at the position.
|
|
1443
1203
|
* @param relativePos1 - The relative position to insert the text at
|
|
@@ -1463,21 +1223,13 @@ export declare class SharedString extends SharedSegmentSequence<SharedStringSegm
|
|
|
1463
1223
|
* @param end - The exclusive end of the range to replace
|
|
1464
1224
|
* @returns the message sent.
|
|
1465
1225
|
*/
|
|
1466
|
-
removeText(start: number, end: number):
|
|
1467
|
-
/**
|
|
1468
|
-
* Annotates the marker with the provided properties and calls the callback on consensus.
|
|
1469
|
-
* @param marker - The marker to annotate
|
|
1470
|
-
* @param props - The properties to annotate the marker with
|
|
1471
|
-
* @param consensusCallback - The callback called when consensus is reached
|
|
1472
|
-
*/
|
|
1473
|
-
annotateMarkerNotifyConsensus(marker: Marker, props: PropertySet, callback: (m: Marker) => void): void;
|
|
1226
|
+
removeText(start: number, end: number): void;
|
|
1474
1227
|
/**
|
|
1475
1228
|
* Annotates the marker with the provided properties.
|
|
1476
1229
|
* @param marker - The marker to annotate
|
|
1477
1230
|
* @param props - The properties to annotate the marker with
|
|
1478
|
-
* @param combiningOp - Optional. Specifies how to combine values for the property, such as "incr" for increment.
|
|
1479
1231
|
*/
|
|
1480
|
-
annotateMarker(marker: Marker, props: PropertySet
|
|
1232
|
+
annotateMarker(marker: Marker, props: PropertySet): void;
|
|
1481
1233
|
/**
|
|
1482
1234
|
* Finds the nearest reference with ReferenceType.Tile to `startPos` in the direction dictated by `tilePrecedesPos`.
|
|
1483
1235
|
* Note that Markers receive `ReferenceType.Tile` by default.
|
|
@@ -1524,7 +1276,7 @@ export declare class SharedString extends SharedSegmentSequence<SharedStringSegm
|
|
|
1524
1276
|
}
|
|
1525
1277
|
|
|
1526
1278
|
/**
|
|
1527
|
-
* @
|
|
1279
|
+
* @alpha
|
|
1528
1280
|
*/
|
|
1529
1281
|
export declare class SharedStringFactory implements IChannelFactory {
|
|
1530
1282
|
static Type: string;
|
|
@@ -1539,15 +1291,10 @@ export declare class SharedStringFactory implements IChannelFactory {
|
|
|
1539
1291
|
create(document: IFluidDataStoreRuntime, id: string): SharedString;
|
|
1540
1292
|
}
|
|
1541
1293
|
|
|
1542
|
-
|
|
1543
|
-
* Data for undoing edits on SharedStrings and Intervals.
|
|
1544
|
-
*
|
|
1545
|
-
* @alpha
|
|
1546
|
-
*/
|
|
1547
|
-
export declare type SharedStringRevertible = MergeTreeDeltaRevertible | IntervalRevertible;
|
|
1294
|
+
/* Excluded from this release type: SharedStringRevertible */
|
|
1548
1295
|
|
|
1549
1296
|
/**
|
|
1550
|
-
* @
|
|
1297
|
+
* @alpha
|
|
1551
1298
|
*/
|
|
1552
1299
|
export declare type SharedStringSegment = TextSegment | Marker;
|
|
1553
1300
|
|
|
@@ -1555,33 +1302,17 @@ export declare type SharedStringSegment = TextSegment | Marker;
|
|
|
1555
1302
|
* Defines a side relative to a character in a sequence.
|
|
1556
1303
|
*
|
|
1557
1304
|
* @remarks See {@link SequencePlace} for additional context on usage.
|
|
1558
|
-
* @
|
|
1305
|
+
* @alpha
|
|
1559
1306
|
*/
|
|
1560
1307
|
export declare enum Side {
|
|
1561
1308
|
Before = 0,
|
|
1562
1309
|
After = 1
|
|
1563
1310
|
}
|
|
1564
1311
|
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
*/
|
|
1569
|
-
export declare class SubSequence<T> extends BaseSegment {
|
|
1570
|
-
items: Serializable<T>[];
|
|
1571
|
-
static readonly typeString: string;
|
|
1572
|
-
static is(segment: ISegment): segment is SubSequence<any>;
|
|
1573
|
-
static fromJSONObject<U>(spec: Serializable): SubSequence<U> | undefined;
|
|
1574
|
-
readonly type: string;
|
|
1575
|
-
constructor(items: Serializable<T>[]);
|
|
1576
|
-
toJSONObject(): IJSONRunSegment<T>;
|
|
1577
|
-
clone(start?: number, end?: number): SubSequence<T>;
|
|
1578
|
-
canAppend(segment: ISegment): boolean;
|
|
1579
|
-
toString(): string;
|
|
1580
|
-
append(segment: ISegment): void;
|
|
1581
|
-
removeRange(start: number, end: number): boolean;
|
|
1582
|
-
protected createSplitSegmentAt(pos: number): SubSequence<T> | undefined;
|
|
1583
|
-
}
|
|
1312
|
+
/* Excluded from this release type: SubSequence */
|
|
1313
|
+
|
|
1314
|
+
export { TextSegment }
|
|
1584
1315
|
|
|
1585
|
-
|
|
1316
|
+
export { TrackingGroup }
|
|
1586
1317
|
|
|
1587
1318
|
export { }
|