@fluidframework/sequence 2.0.0-rc.4.0.6 → 2.0.0-rc.5.0.1
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 +14 -0
- package/api-extractor/api-extractor-lint-beta.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-beta.esm.json +5 -0
- package/api-extractor/api-extractor-lint-bundle.json +5 -0
- package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
- package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
- package/api-extractor/api-extractor-lint-public.esm.json +5 -0
- package/api-extractor.json +1 -1
- package/api-report/{sequence.api.md → sequence.alpha.api.md} +71 -244
- package/api-report/sequence.beta.api.md +83 -0
- package/api-report/sequence.public.api.md +83 -0
- package/biome.jsonc +4 -0
- package/dist/IntervalCollectionValues.d.ts +1 -1
- package/dist/IntervalCollectionValues.d.ts.map +1 -1
- package/dist/IntervalCollectionValues.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/intervalCollection.d.ts +1 -1
- package/dist/intervalCollection.d.ts.map +1 -1
- package/dist/intervalCollection.js +4 -6
- package/dist/intervalCollection.js.map +1 -1
- package/dist/intervalCollectionMap.d.ts +2 -2
- package/dist/intervalCollectionMap.d.ts.map +1 -1
- package/dist/intervalCollectionMap.js.map +1 -1
- package/dist/intervalCollectionMapInterfaces.d.ts +2 -2
- package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
- package/dist/intervalCollectionMapInterfaces.js.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/dist/intervalIndex/endpointIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -3
- package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/dist/intervalTree.js.map +1 -1
- package/dist/intervals/interval.d.ts +1 -1
- package/dist/intervals/interval.d.ts.map +1 -1
- package/dist/intervals/interval.js.map +1 -1
- package/dist/intervals/intervalUtils.d.ts +2 -2
- package/dist/intervals/intervalUtils.d.ts.map +1 -1
- package/dist/intervals/intervalUtils.js +0 -1
- package/dist/intervals/intervalUtils.js.map +1 -1
- package/dist/intervals/sequenceInterval.d.ts +1 -1
- package/dist/intervals/sequenceInterval.d.ts.map +1 -1
- package/dist/intervals/sequenceInterval.js +1 -1
- package/dist/intervals/sequenceInterval.js.map +1 -1
- package/dist/legacy.d.ts +1 -0
- 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.map +1 -1
- package/dist/revertibles.js +3 -3
- package/dist/revertibles.js.map +1 -1
- package/dist/sequence.d.ts +168 -133
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +59 -240
- package/dist/sequence.js.map +1 -1
- package/dist/sequenceDeltaEvent.js.map +1 -1
- package/dist/sequenceFactory.d.ts +2 -3
- package/dist/sequenceFactory.d.ts.map +1 -1
- package/dist/sequenceFactory.js.map +1 -1
- package/dist/sharedIntervalCollection.d.ts +4 -5
- package/dist/sharedIntervalCollection.d.ts.map +1 -1
- package/dist/sharedIntervalCollection.js +5 -5
- package/dist/sharedIntervalCollection.js.map +1 -1
- package/dist/sharedSequence.d.ts +1 -2
- package/dist/sharedSequence.d.ts.map +1 -1
- package/dist/sharedSequence.js.map +1 -1
- package/dist/sharedString.d.ts +3 -3
- package/dist/sharedString.d.ts.map +1 -1
- package/dist/sharedString.js.map +1 -1
- package/lib/IntervalCollectionValues.d.ts +1 -1
- package/lib/IntervalCollectionValues.d.ts.map +1 -1
- package/lib/IntervalCollectionValues.js +1 -1
- package/lib/IntervalCollectionValues.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/intervalCollection.d.ts +1 -1
- package/lib/intervalCollection.d.ts.map +1 -1
- package/lib/intervalCollection.js +4 -6
- package/lib/intervalCollection.js.map +1 -1
- package/lib/intervalCollectionMap.d.ts +2 -2
- package/lib/intervalCollectionMap.d.ts.map +1 -1
- package/lib/intervalCollectionMap.js +1 -1
- package/lib/intervalCollectionMap.js.map +1 -1
- package/lib/intervalCollectionMapInterfaces.d.ts +2 -2
- package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
- package/lib/intervalCollectionMapInterfaces.js.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.js +1 -1
- package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
- package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
- package/lib/intervalIndex/endpointIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -3
- package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.js +1 -1
- package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
- package/lib/intervalTree.js.map +1 -1
- package/lib/intervals/interval.d.ts +1 -1
- package/lib/intervals/interval.d.ts.map +1 -1
- package/lib/intervals/interval.js.map +1 -1
- package/lib/intervals/intervalUtils.d.ts +2 -2
- package/lib/intervals/intervalUtils.d.ts.map +1 -1
- package/lib/intervals/intervalUtils.js +0 -1
- package/lib/intervals/intervalUtils.js.map +1 -1
- package/lib/intervals/sequenceInterval.d.ts +1 -1
- package/lib/intervals/sequenceInterval.d.ts.map +1 -1
- package/lib/intervals/sequenceInterval.js +1 -1
- package/lib/intervals/sequenceInterval.js.map +1 -1
- package/lib/legacy.d.ts +1 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +3 -3
- package/lib/revertibles.js.map +1 -1
- package/lib/sequence.d.ts +168 -133
- package/lib/sequence.d.ts.map +1 -1
- package/lib/sequence.js +42 -223
- package/lib/sequence.js.map +1 -1
- package/lib/sequenceDeltaEvent.js.map +1 -1
- package/lib/sequenceFactory.d.ts +2 -3
- package/lib/sequenceFactory.d.ts.map +1 -1
- package/lib/sequenceFactory.js.map +1 -1
- package/lib/sharedIntervalCollection.d.ts +4 -5
- package/lib/sharedIntervalCollection.d.ts.map +1 -1
- package/lib/sharedIntervalCollection.js +2 -2
- package/lib/sharedIntervalCollection.js.map +1 -1
- package/lib/sharedSequence.d.ts +1 -2
- package/lib/sharedSequence.d.ts.map +1 -1
- package/lib/sharedSequence.js.map +1 -1
- package/lib/sharedString.d.ts +3 -3
- package/lib/sharedString.d.ts.map +1 -1
- package/lib/sharedString.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +77 -30
- package/src/IntervalCollectionValues.ts +8 -3
- package/src/index.ts +5 -1
- package/src/intervalCollection.ts +29 -18
- package/src/intervalCollectionMap.ts +6 -4
- package/src/intervalCollectionMapInterfaces.ts +2 -2
- package/src/intervalIndex/endpointInRangeIndex.ts +28 -22
- package/src/intervalIndex/endpointIndex.ts +3 -1
- package/src/intervalIndex/overlappingIntervalsIndex.ts +2 -2
- package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +0 -3
- package/src/intervalIndex/startpointInRangeIndex.ts +26 -20
- package/src/intervals/interval.ts +12 -9
- package/src/intervals/intervalUtils.ts +13 -5
- package/src/intervals/sequenceInterval.ts +2 -2
- package/src/packageVersion.ts +1 -1
- package/src/revertibles.ts +15 -11
- package/src/sequence.ts +302 -277
- package/src/sequenceFactory.ts +3 -5
- package/src/sharedIntervalCollection.ts +12 -6
- package/src/sharedSequence.ts +5 -2
- package/src/sharedString.ts +11 -4
- package/tsconfig.json +2 -0
- package/tsdoc.json +4 -0
package/dist/sequence.d.ts
CHANGED
|
@@ -3,13 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { IEventThisPlaceHolder } from "@fluidframework/core-interfaces";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { IChannelAttributes, IFluidDataStoreRuntime, IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
|
|
7
|
+
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
8
8
|
import { Client, IJSONSegment, IMergeTreeGroupMsg, IRelativePosition, ISegment, ISegmentAction, LocalReferencePosition, MergeTreeRevertibleDriver, PropertySet, ReferencePosition, ReferenceType, SlidingPreference } from "@fluidframework/merge-tree/internal";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { IFluidSerializer, ISharedObjectEvents } from "@fluidframework/shared-object-base";
|
|
12
|
-
import { SharedObject } from "@fluidframework/shared-object-base/internal";
|
|
9
|
+
import { ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtime-definitions/internal";
|
|
10
|
+
import { IFluidSerializer, ISharedObjectEvents, SharedObject, type ISharedObject } from "@fluidframework/shared-object-base/internal";
|
|
13
11
|
import { IIntervalCollection } from "./intervalCollection.js";
|
|
14
12
|
import { SequenceInterval } from "./intervals/index.js";
|
|
15
13
|
import { SequenceDeltaEvent, SequenceMaintenanceEvent } from "./sequenceDeltaEvent.js";
|
|
@@ -56,10 +54,172 @@ export interface ISharedSegmentSequenceEvents extends ISharedObjectEvents {
|
|
|
56
54
|
/**
|
|
57
55
|
* @alpha
|
|
58
56
|
*/
|
|
59
|
-
export
|
|
60
|
-
|
|
57
|
+
export interface ISharedSegmentSequence<T extends ISegment> extends ISharedObject<ISharedSegmentSequenceEvents>, ISharedIntervalCollection<SequenceInterval>, MergeTreeRevertibleDriver {
|
|
58
|
+
/**
|
|
59
|
+
* Creates a `LocalReferencePosition` on this SharedString. If the refType does not include
|
|
60
|
+
* ReferenceType.Transient, the returned reference will be added to the localRefs on the provided segment.
|
|
61
|
+
* @param segment - Segment to add the local reference on
|
|
62
|
+
* @param offset - Offset on the segment at which to place the local reference
|
|
63
|
+
* @param refType - ReferenceType for the created local reference
|
|
64
|
+
* @param properties - PropertySet to place on the created local reference
|
|
65
|
+
*/
|
|
66
|
+
createLocalReferencePosition(segment: T, offset: number, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition;
|
|
67
|
+
/**
|
|
68
|
+
* Removes a `LocalReferencePosition` from this SharedString.
|
|
69
|
+
*/
|
|
70
|
+
removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Returns the length of the current sequence for the client
|
|
73
|
+
*/
|
|
74
|
+
getLength(): number;
|
|
75
|
+
/**
|
|
76
|
+
* Returns the current position of a segment, and -1 if the segment
|
|
77
|
+
* does not exist in this sequence
|
|
78
|
+
* @param segment - The segment to get the position of
|
|
79
|
+
*/
|
|
80
|
+
getPosition(segment: ISegment): number;
|
|
81
|
+
/**
|
|
82
|
+
* Resolves a `ReferencePosition` into a character position using this client's perspective.
|
|
83
|
+
*
|
|
84
|
+
* Reference positions that point to a character that has been removed will
|
|
85
|
+
* always return the position of the nearest non-removed character, regardless
|
|
86
|
+
* of `ReferenceType`. To handle this case specifically, one may wish
|
|
87
|
+
* to look at the segment returned by `ReferencePosition.getSegment`.
|
|
88
|
+
*/
|
|
89
|
+
localReferencePositionToPosition(lref: ReferencePosition): number;
|
|
90
|
+
/**
|
|
91
|
+
* Walk the underlying segments of the sequence.
|
|
92
|
+
* The walked segments may extend beyond the range if the segments cross the
|
|
93
|
+
* ranges start or end boundaries.
|
|
94
|
+
*
|
|
95
|
+
* Set split range to true to ensure only segments within the range are walked.
|
|
96
|
+
*
|
|
97
|
+
* @param handler - The function to handle each segment. Traversal ends if
|
|
98
|
+
* this function returns true.
|
|
99
|
+
* @param start - Optional. The start of range walk.
|
|
100
|
+
* @param end - Optional. The end of range walk
|
|
101
|
+
* @param accum - Optional. An object that will be passed to the handler for accumulation
|
|
102
|
+
* @param splitRange - Optional. Splits boundary segments on the range boundaries. Defaults to false.
|
|
103
|
+
*/
|
|
104
|
+
walkSegments<TClientData>(handler: ISegmentAction<TClientData>, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void;
|
|
105
|
+
/**
|
|
106
|
+
* Inserts a segment directly before a `ReferencePosition`.
|
|
107
|
+
* @param refPos - The reference position to insert the segment at
|
|
108
|
+
* @param segment - The segment to insert
|
|
109
|
+
*/
|
|
110
|
+
insertAtReferencePosition(pos: ReferencePosition, segment: T): void;
|
|
111
|
+
/**
|
|
112
|
+
* Finds the segment information (i.e. segment + offset) corresponding to a character position in the SharedString.
|
|
113
|
+
* If the position is past the end of the string, `segment` and `offset` on the returned object may be undefined.
|
|
114
|
+
* @param pos - Character position (index) into the current local view of the SharedString.
|
|
115
|
+
*/
|
|
116
|
+
getContainingSegment(pos: number): {
|
|
117
|
+
segment: T | undefined;
|
|
118
|
+
offset: number | undefined;
|
|
119
|
+
};
|
|
120
|
+
getPropertiesAtPosition(pos: number): PropertySet | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* @returns An iterable object that enumerates the IntervalCollection labels.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
*
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const iter = this.getIntervalCollectionKeys();
|
|
128
|
+
* for (key of iter)
|
|
129
|
+
* const collection = this.getIntervalCollection(key);
|
|
130
|
+
* ...
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
getIntervalCollectionLabels(): IterableIterator<string>;
|
|
134
|
+
/**
|
|
135
|
+
* Retrieves the interval collection keyed on `label`. If no such interval collection exists,
|
|
136
|
+
* creates one.
|
|
137
|
+
*/
|
|
138
|
+
getIntervalCollection(label: string): IIntervalCollection<SequenceInterval>;
|
|
139
|
+
/**
|
|
140
|
+
* Obliterate is similar to remove, but differs in that segments concurrently
|
|
141
|
+
* inserted into an obliterated range will also be removed
|
|
142
|
+
*
|
|
143
|
+
* @param start - The inclusive start of the range to obliterate
|
|
144
|
+
* @param end - The exclusive end of the range to obliterate
|
|
145
|
+
*/
|
|
146
|
+
obliterateRange(start: number, end: number): void;
|
|
147
|
+
/**
|
|
148
|
+
* @returns The most recent sequence number which has been acked by the server and processed by this
|
|
149
|
+
* SharedSegmentSequence.
|
|
150
|
+
*/
|
|
151
|
+
getCurrentSeq(): number;
|
|
152
|
+
/**
|
|
153
|
+
* Annotates the range with the provided properties
|
|
154
|
+
*
|
|
155
|
+
* @param start - The inclusive start position of the range to annotate
|
|
156
|
+
* @param end - The exclusive end position of the range to annotate
|
|
157
|
+
* @param props - The properties to annotate the range with
|
|
158
|
+
*
|
|
159
|
+
*/
|
|
160
|
+
annotateRange(start: number, end: number, props: PropertySet): void;
|
|
161
|
+
/**
|
|
162
|
+
* @param start - The inclusive start of the range to remove
|
|
163
|
+
* @param end - The exclusive end of the range to remove
|
|
164
|
+
*/
|
|
165
|
+
removeRange(start: number, end: number): void;
|
|
166
|
+
/**
|
|
167
|
+
* Resolves a remote client's position against the local sequence
|
|
168
|
+
* and returns the remote client's position relative to the local
|
|
169
|
+
* sequence. The client ref seq must be above the minimum sequence number
|
|
170
|
+
* or the return value will be undefined.
|
|
171
|
+
* Generally this method is used in conjunction with signals which provide
|
|
172
|
+
* point in time values for the below parameters, and is useful for things
|
|
173
|
+
* like displaying user position. It should not be used with persisted values
|
|
174
|
+
* as persisted values will quickly become invalid as the remoteClientRefSeq
|
|
175
|
+
* moves below the minimum sequence number
|
|
176
|
+
* @param remoteClientPosition - The remote client's position to resolve
|
|
177
|
+
* @param remoteClientRefSeq - The reference sequence number of the remote client
|
|
178
|
+
* @param remoteClientId - The client id of the remote client
|
|
179
|
+
*/
|
|
180
|
+
resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* Initializes the object as a local, non-shared object. This object can become shared after
|
|
183
|
+
* it is attached to the document.
|
|
184
|
+
* @privateRemarks
|
|
185
|
+
* TODO: determine if this API (from SharedObject) is needed by users of the encapsulated API, declarative API or both,
|
|
186
|
+
* and handle exposing it in a consistent way for all SharedObjects if needed.
|
|
187
|
+
*/
|
|
188
|
+
initializeLocal(): void;
|
|
189
|
+
/**
|
|
190
|
+
* @deprecated The ability to create group ops will be removed in an upcoming
|
|
191
|
+
* release, as group ops are redundant with the native batching capabilities
|
|
192
|
+
* of the runtime
|
|
193
|
+
*/
|
|
194
|
+
groupOperation(groupOp: IMergeTreeGroupMsg): void;
|
|
195
|
+
getRangeExtentsOfPosition(pos: number): {
|
|
196
|
+
posStart: number | undefined;
|
|
197
|
+
posAfterEnd: number | undefined;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Inserts a segment
|
|
201
|
+
* @param start - The position to insert the segment at
|
|
202
|
+
* @param spec - The segment to inserts spec
|
|
203
|
+
*/
|
|
204
|
+
insertFromSpec(pos: number, spec: IJSONSegment): void;
|
|
205
|
+
/**
|
|
206
|
+
* Given a position specified relative to a marker id, lookup the marker
|
|
207
|
+
* and convert the position to a character position.
|
|
208
|
+
* @param relativePos - Id of marker (may be indirect) and whether position is before or after marker.
|
|
209
|
+
*/
|
|
210
|
+
posFromRelativePos(relativePos: IRelativePosition): number;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* @alpha
|
|
214
|
+
*/
|
|
215
|
+
export declare abstract class SharedSegmentSequence<T extends ISegment> extends SharedObject<ISharedSegmentSequenceEvents> implements ISharedSegmentSequence<T> {
|
|
61
216
|
id: string;
|
|
62
217
|
readonly segmentFromSpec: (spec: IJSONSegment) => ISegment;
|
|
218
|
+
/**
|
|
219
|
+
* This promise is always immediately resolved, and awaiting it has no effect.
|
|
220
|
+
* @deprecated SharedSegmentSequence no longer supports partial loading.
|
|
221
|
+
* References to this promise may safely be deleted without affecting behavior.
|
|
222
|
+
*/
|
|
63
223
|
get loaded(): Promise<void>;
|
|
64
224
|
/**
|
|
65
225
|
* This is a safeguard to avoid problematic reentrancy of local ops. This type of scenario occurs if the user of SharedString subscribes
|
|
@@ -105,159 +265,35 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
105
265
|
*/
|
|
106
266
|
private get currentRefSeq();
|
|
107
267
|
protected client: Client;
|
|
108
|
-
/** `Deferred` that triggers once the object is loaded */
|
|
109
|
-
protected loadedDeferred: Deferred<void>;
|
|
110
|
-
private readonly loadedDeferredOutgoingOps;
|
|
111
|
-
private deferIncomingOps;
|
|
112
|
-
private readonly loadedDeferredIncomingOps;
|
|
113
268
|
private messagesSinceMSNChange;
|
|
114
269
|
private readonly intervalCollections;
|
|
115
270
|
constructor(dataStoreRuntime: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes, segmentFromSpec: (spec: IJSONSegment) => ISegment);
|
|
116
|
-
/**
|
|
117
|
-
* @param start - The inclusive start of the range to remove
|
|
118
|
-
* @param end - The exclusive end of the range to remove
|
|
119
|
-
*/
|
|
120
271
|
removeRange(start: number, end: number): void;
|
|
121
|
-
/**
|
|
122
|
-
* Obliterate is similar to remove, but differs in that segments concurrently
|
|
123
|
-
* inserted into an obliterated range will also be removed
|
|
124
|
-
*
|
|
125
|
-
* @param start - The inclusive start of the range to obliterate
|
|
126
|
-
* @param end - The exclusive end of the range to obliterate
|
|
127
|
-
*/
|
|
128
272
|
obliterateRange(start: number, end: number): void;
|
|
129
|
-
/**
|
|
130
|
-
* @deprecated The ability to create group ops will be removed in an upcoming
|
|
131
|
-
* release, as group ops are redundant with the native batching capabilities
|
|
132
|
-
* of the runtime
|
|
133
|
-
*/
|
|
134
273
|
groupOperation(groupOp: IMergeTreeGroupMsg): void;
|
|
135
|
-
/**
|
|
136
|
-
* Finds the segment information (i.e. segment + offset) corresponding to a character position in the SharedString.
|
|
137
|
-
* If the position is past the end of the string, `segment` and `offset` on the returned object may be undefined.
|
|
138
|
-
* @param pos - Character position (index) into the current local view of the SharedString.
|
|
139
|
-
*/
|
|
140
274
|
getContainingSegment(pos: number): {
|
|
141
275
|
segment: T | undefined;
|
|
142
276
|
offset: number | undefined;
|
|
143
277
|
};
|
|
144
|
-
/**
|
|
145
|
-
* Returns the length of the current sequence for the client
|
|
146
|
-
*/
|
|
147
278
|
getLength(): number;
|
|
148
|
-
/**
|
|
149
|
-
* Returns the current position of a segment, and -1 if the segment
|
|
150
|
-
* does not exist in this sequence
|
|
151
|
-
* @param segment - The segment to get the position of
|
|
152
|
-
*/
|
|
153
279
|
getPosition(segment: ISegment): number;
|
|
154
|
-
/**
|
|
155
|
-
* Annotates the range with the provided properties
|
|
156
|
-
*
|
|
157
|
-
* @param start - The inclusive start position of the range to annotate
|
|
158
|
-
* @param end - The exclusive end position of the range to annotate
|
|
159
|
-
* @param props - The properties to annotate the range with
|
|
160
|
-
*
|
|
161
|
-
*/
|
|
162
280
|
annotateRange(start: number, end: number, props: PropertySet): void;
|
|
163
281
|
getPropertiesAtPosition(pos: number): PropertySet | undefined;
|
|
164
282
|
getRangeExtentsOfPosition(pos: number): {
|
|
165
283
|
posStart: number | undefined;
|
|
166
284
|
posAfterEnd: number | undefined;
|
|
167
285
|
};
|
|
168
|
-
/**
|
|
169
|
-
* Creates a `LocalReferencePosition` on this SharedString. If the refType does not include
|
|
170
|
-
* ReferenceType.Transient, the returned reference will be added to the localRefs on the provided segment.
|
|
171
|
-
* @param segment - Segment to add the local reference on
|
|
172
|
-
* @param offset - Offset on the segment at which to place the local reference
|
|
173
|
-
* @param refType - ReferenceType for the created local reference
|
|
174
|
-
* @param properties - PropertySet to place on the created local reference
|
|
175
|
-
*/
|
|
176
286
|
createLocalReferencePosition(segment: T, offset: number, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition;
|
|
177
|
-
/**
|
|
178
|
-
* Resolves a `ReferencePosition` into a character position using this client's perspective.
|
|
179
|
-
*
|
|
180
|
-
* Reference positions that point to a character that has been removed will
|
|
181
|
-
* always return the position of the nearest non-removed character, regardless
|
|
182
|
-
* of `ReferenceType`. To handle this case specifically, one may wish
|
|
183
|
-
* to look at the segment returned by `ReferencePosition.getSegment`.
|
|
184
|
-
*/
|
|
185
287
|
localReferencePositionToPosition(lref: ReferencePosition): number;
|
|
186
|
-
/**
|
|
187
|
-
* Removes a `LocalReferencePosition` from this SharedString.
|
|
188
|
-
*/
|
|
189
288
|
removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
|
|
190
|
-
/**
|
|
191
|
-
* Resolves a remote client's position against the local sequence
|
|
192
|
-
* and returns the remote client's position relative to the local
|
|
193
|
-
* sequence. The client ref seq must be above the minimum sequence number
|
|
194
|
-
* or the return value will be undefined.
|
|
195
|
-
* Generally this method is used in conjunction with signals which provide
|
|
196
|
-
* point in time values for the below parameters, and is useful for things
|
|
197
|
-
* like displaying user position. It should not be used with persisted values
|
|
198
|
-
* as persisted values will quickly become invalid as the remoteClientRefSeq
|
|
199
|
-
* moves below the minimum sequence number
|
|
200
|
-
* @param remoteClientPosition - The remote client's position to resolve
|
|
201
|
-
* @param remoteClientRefSeq - The reference sequence number of the remote client
|
|
202
|
-
* @param remoteClientId - The client id of the remote client
|
|
203
|
-
*/
|
|
204
289
|
resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: string): number | undefined;
|
|
205
290
|
private submitSequenceMessage;
|
|
206
|
-
/**
|
|
207
|
-
* Given a position specified relative to a marker id, lookup the marker
|
|
208
|
-
* and convert the position to a character position.
|
|
209
|
-
* @param relativePos - Id of marker (may be indirect) and whether position is before or after marker.
|
|
210
|
-
*/
|
|
211
291
|
posFromRelativePos(relativePos: IRelativePosition): number;
|
|
212
|
-
/**
|
|
213
|
-
* Walk the underlying segments of the sequence.
|
|
214
|
-
* The walked segments may extend beyond the range if the segments cross the
|
|
215
|
-
* ranges start or end boundaries.
|
|
216
|
-
*
|
|
217
|
-
* Set split range to true to ensure only segments within the range are walked.
|
|
218
|
-
*
|
|
219
|
-
* @param handler - The function to handle each segment. Traversal ends if
|
|
220
|
-
* this function returns true.
|
|
221
|
-
* @param start - Optional. The start of range walk.
|
|
222
|
-
* @param end - Optional. The end of range walk
|
|
223
|
-
* @param accum - Optional. An object that will be passed to the handler for accumulation
|
|
224
|
-
* @param splitRange - Optional. Splits boundary segments on the range boundaries
|
|
225
|
-
*/
|
|
226
292
|
walkSegments<TClientData>(handler: ISegmentAction<TClientData>, start?: number, end?: number, accum?: TClientData, splitRange?: boolean): void;
|
|
227
|
-
/**
|
|
228
|
-
* @returns The most recent sequence number which has been acked by the server and processed by this
|
|
229
|
-
* SharedSegmentSequence.
|
|
230
|
-
*/
|
|
231
293
|
getCurrentSeq(): number;
|
|
232
|
-
/**
|
|
233
|
-
* Inserts a segment directly before a `ReferencePosition`.
|
|
234
|
-
* @param refPos - The reference position to insert the segment at
|
|
235
|
-
* @param segment - The segment to insert
|
|
236
|
-
*/
|
|
237
294
|
insertAtReferencePosition(pos: ReferencePosition, segment: T): void;
|
|
238
|
-
/**
|
|
239
|
-
* Inserts a segment
|
|
240
|
-
* @param start - The position to insert the segment at
|
|
241
|
-
* @param spec - The segment to inserts spec
|
|
242
|
-
*/
|
|
243
295
|
insertFromSpec(pos: number, spec: IJSONSegment): void;
|
|
244
|
-
/**
|
|
245
|
-
* Retrieves the interval collection keyed on `label`. If no such interval collection exists,
|
|
246
|
-
* creates one.
|
|
247
|
-
*/
|
|
248
296
|
getIntervalCollection(label: string): IIntervalCollection<SequenceInterval>;
|
|
249
|
-
/**
|
|
250
|
-
* @returns An iterable object that enumerates the IntervalCollection labels.
|
|
251
|
-
*
|
|
252
|
-
* @example
|
|
253
|
-
*
|
|
254
|
-
* ```typescript
|
|
255
|
-
* const iter = this.getIntervalCollectionKeys();
|
|
256
|
-
* for (key of iter)
|
|
257
|
-
* const collection = this.getIntervalCollection(key);
|
|
258
|
-
* ...
|
|
259
|
-
* ```
|
|
260
|
-
*/
|
|
261
297
|
getIntervalCollectionLabels(): IterableIterator<string>;
|
|
262
298
|
/**
|
|
263
299
|
* {@inheritDoc @fluidframework/shared-object-base#SharedObject.summarizeCore}
|
|
@@ -317,7 +353,6 @@ export declare abstract class SharedSegmentSequence<T extends ISegment> extends
|
|
|
317
353
|
*/
|
|
318
354
|
private processMergeTreeMsg;
|
|
319
355
|
private processMinSequenceNumberChanged;
|
|
320
|
-
private loadFinished;
|
|
321
356
|
private initializeIntervalCollections;
|
|
322
357
|
/**
|
|
323
358
|
* Overrides the "currently applicable reference sequence number" for the duration of the callback.
|
package/dist/sequence.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"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"}
|