@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.
Files changed (168) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/api-extractor/api-extractor-lint-beta.cjs.json +5 -0
  3. package/api-extractor/api-extractor-lint-beta.esm.json +5 -0
  4. package/api-extractor/api-extractor-lint-bundle.json +5 -0
  5. package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
  6. package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
  7. package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
  8. package/api-extractor/api-extractor-lint-public.esm.json +5 -0
  9. package/api-extractor.json +1 -1
  10. package/api-report/{sequence.api.md → sequence.alpha.api.md} +71 -244
  11. package/api-report/sequence.beta.api.md +83 -0
  12. package/api-report/sequence.public.api.md +83 -0
  13. package/biome.jsonc +4 -0
  14. package/dist/IntervalCollectionValues.d.ts +1 -1
  15. package/dist/IntervalCollectionValues.d.ts.map +1 -1
  16. package/dist/IntervalCollectionValues.js.map +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/intervalCollection.d.ts +1 -1
  21. package/dist/intervalCollection.d.ts.map +1 -1
  22. package/dist/intervalCollection.js +4 -6
  23. package/dist/intervalCollection.js.map +1 -1
  24. package/dist/intervalCollectionMap.d.ts +2 -2
  25. package/dist/intervalCollectionMap.d.ts.map +1 -1
  26. package/dist/intervalCollectionMap.js.map +1 -1
  27. package/dist/intervalCollectionMapInterfaces.d.ts +2 -2
  28. package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
  29. package/dist/intervalCollectionMapInterfaces.js.map +1 -1
  30. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  31. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  32. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  33. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  34. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  35. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
  36. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -3
  37. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  38. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  39. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  40. package/dist/intervalTree.js.map +1 -1
  41. package/dist/intervals/interval.d.ts +1 -1
  42. package/dist/intervals/interval.d.ts.map +1 -1
  43. package/dist/intervals/interval.js.map +1 -1
  44. package/dist/intervals/intervalUtils.d.ts +2 -2
  45. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  46. package/dist/intervals/intervalUtils.js +0 -1
  47. package/dist/intervals/intervalUtils.js.map +1 -1
  48. package/dist/intervals/sequenceInterval.d.ts +1 -1
  49. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  50. package/dist/intervals/sequenceInterval.js +1 -1
  51. package/dist/intervals/sequenceInterval.js.map +1 -1
  52. package/dist/legacy.d.ts +1 -0
  53. package/dist/packageVersion.d.ts +1 -1
  54. package/dist/packageVersion.js +1 -1
  55. package/dist/packageVersion.js.map +1 -1
  56. package/dist/revertibles.d.ts.map +1 -1
  57. package/dist/revertibles.js +3 -3
  58. package/dist/revertibles.js.map +1 -1
  59. package/dist/sequence.d.ts +168 -133
  60. package/dist/sequence.d.ts.map +1 -1
  61. package/dist/sequence.js +59 -240
  62. package/dist/sequence.js.map +1 -1
  63. package/dist/sequenceDeltaEvent.js.map +1 -1
  64. package/dist/sequenceFactory.d.ts +2 -3
  65. package/dist/sequenceFactory.d.ts.map +1 -1
  66. package/dist/sequenceFactory.js.map +1 -1
  67. package/dist/sharedIntervalCollection.d.ts +4 -5
  68. package/dist/sharedIntervalCollection.d.ts.map +1 -1
  69. package/dist/sharedIntervalCollection.js +5 -5
  70. package/dist/sharedIntervalCollection.js.map +1 -1
  71. package/dist/sharedSequence.d.ts +1 -2
  72. package/dist/sharedSequence.d.ts.map +1 -1
  73. package/dist/sharedSequence.js.map +1 -1
  74. package/dist/sharedString.d.ts +3 -3
  75. package/dist/sharedString.d.ts.map +1 -1
  76. package/dist/sharedString.js.map +1 -1
  77. package/lib/IntervalCollectionValues.d.ts +1 -1
  78. package/lib/IntervalCollectionValues.d.ts.map +1 -1
  79. package/lib/IntervalCollectionValues.js +1 -1
  80. package/lib/IntervalCollectionValues.js.map +1 -1
  81. package/lib/index.d.ts +1 -1
  82. package/lib/index.d.ts.map +1 -1
  83. package/lib/index.js +1 -1
  84. package/lib/index.js.map +1 -1
  85. package/lib/intervalCollection.d.ts +1 -1
  86. package/lib/intervalCollection.d.ts.map +1 -1
  87. package/lib/intervalCollection.js +4 -6
  88. package/lib/intervalCollection.js.map +1 -1
  89. package/lib/intervalCollectionMap.d.ts +2 -2
  90. package/lib/intervalCollectionMap.d.ts.map +1 -1
  91. package/lib/intervalCollectionMap.js +1 -1
  92. package/lib/intervalCollectionMap.js.map +1 -1
  93. package/lib/intervalCollectionMapInterfaces.d.ts +2 -2
  94. package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
  95. package/lib/intervalCollectionMapInterfaces.js.map +1 -1
  96. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  97. package/lib/intervalIndex/endpointInRangeIndex.js +1 -1
  98. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  99. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
  100. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  101. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  102. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts.map +1 -1
  103. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +0 -3
  104. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  105. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  106. package/lib/intervalIndex/startpointInRangeIndex.js +1 -1
  107. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  108. package/lib/intervalTree.js.map +1 -1
  109. package/lib/intervals/interval.d.ts +1 -1
  110. package/lib/intervals/interval.d.ts.map +1 -1
  111. package/lib/intervals/interval.js.map +1 -1
  112. package/lib/intervals/intervalUtils.d.ts +2 -2
  113. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  114. package/lib/intervals/intervalUtils.js +0 -1
  115. package/lib/intervals/intervalUtils.js.map +1 -1
  116. package/lib/intervals/sequenceInterval.d.ts +1 -1
  117. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  118. package/lib/intervals/sequenceInterval.js +1 -1
  119. package/lib/intervals/sequenceInterval.js.map +1 -1
  120. package/lib/legacy.d.ts +1 -0
  121. package/lib/packageVersion.d.ts +1 -1
  122. package/lib/packageVersion.js +1 -1
  123. package/lib/packageVersion.js.map +1 -1
  124. package/lib/revertibles.d.ts.map +1 -1
  125. package/lib/revertibles.js +3 -3
  126. package/lib/revertibles.js.map +1 -1
  127. package/lib/sequence.d.ts +168 -133
  128. package/lib/sequence.d.ts.map +1 -1
  129. package/lib/sequence.js +42 -223
  130. package/lib/sequence.js.map +1 -1
  131. package/lib/sequenceDeltaEvent.js.map +1 -1
  132. package/lib/sequenceFactory.d.ts +2 -3
  133. package/lib/sequenceFactory.d.ts.map +1 -1
  134. package/lib/sequenceFactory.js.map +1 -1
  135. package/lib/sharedIntervalCollection.d.ts +4 -5
  136. package/lib/sharedIntervalCollection.d.ts.map +1 -1
  137. package/lib/sharedIntervalCollection.js +2 -2
  138. package/lib/sharedIntervalCollection.js.map +1 -1
  139. package/lib/sharedSequence.d.ts +1 -2
  140. package/lib/sharedSequence.d.ts.map +1 -1
  141. package/lib/sharedSequence.js.map +1 -1
  142. package/lib/sharedString.d.ts +3 -3
  143. package/lib/sharedString.d.ts.map +1 -1
  144. package/lib/sharedString.js.map +1 -1
  145. package/lib/tsdoc-metadata.json +1 -1
  146. package/package.json +77 -30
  147. package/src/IntervalCollectionValues.ts +8 -3
  148. package/src/index.ts +5 -1
  149. package/src/intervalCollection.ts +29 -18
  150. package/src/intervalCollectionMap.ts +6 -4
  151. package/src/intervalCollectionMapInterfaces.ts +2 -2
  152. package/src/intervalIndex/endpointInRangeIndex.ts +28 -22
  153. package/src/intervalIndex/endpointIndex.ts +3 -1
  154. package/src/intervalIndex/overlappingIntervalsIndex.ts +2 -2
  155. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +0 -3
  156. package/src/intervalIndex/startpointInRangeIndex.ts +26 -20
  157. package/src/intervals/interval.ts +12 -9
  158. package/src/intervals/intervalUtils.ts +13 -5
  159. package/src/intervals/sequenceInterval.ts +2 -2
  160. package/src/packageVersion.ts +1 -1
  161. package/src/revertibles.ts +15 -11
  162. package/src/sequence.ts +302 -277
  163. package/src/sequenceFactory.ts +3 -5
  164. package/src/sharedIntervalCollection.ts +12 -6
  165. package/src/sharedSequence.ts +5 -2
  166. package/src/sharedString.ts +11 -4
  167. package/tsconfig.json +2 -0
  168. package/tsdoc.json +4 -0
@@ -3,13 +3,11 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { IEventThisPlaceHolder } from "@fluidframework/core-interfaces";
6
- import { Deferred } from "@fluidframework/core-utils/internal";
7
- import { IChannelAttributes, IChannelStorageService, IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
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 { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
10
- import { ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtime-definitions";
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 declare abstract class SharedSegmentSequence<T extends ISegment> extends SharedObject<ISharedSegmentSequenceEvents> implements ISharedIntervalCollection<SequenceInterval>, MergeTreeRevertibleDriver {
60
- private readonly dataStoreRuntime;
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.
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"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"}