@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.
Files changed (222) hide show
  1. package/CHANGELOG.md +168 -0
  2. package/api-extractor-lint.json +13 -0
  3. package/api-extractor.json +8 -3
  4. package/api-report/sequence.api.md +138 -113
  5. package/dist/defaultMap.d.ts +3 -3
  6. package/dist/defaultMap.d.ts.map +1 -1
  7. package/dist/defaultMap.js +7 -2
  8. package/dist/defaultMap.js.map +1 -1
  9. package/dist/defaultMapInterfaces.d.ts +12 -11
  10. package/dist/defaultMapInterfaces.d.ts.map +1 -1
  11. package/dist/defaultMapInterfaces.js.map +1 -1
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +11 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/intervalCollection.d.ts +70 -16
  17. package/dist/intervalCollection.d.ts.map +1 -1
  18. package/dist/intervalCollection.js +50 -45
  19. package/dist/intervalCollection.js.map +1 -1
  20. package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  21. package/dist/intervalIndex/endpointInRangeIndex.js +1 -1
  22. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  23. package/dist/intervalIndex/endpointIndex.d.ts +2 -2
  24. package/dist/intervalIndex/endpointIndex.js +1 -1
  25. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  26. package/dist/intervalIndex/idIntervalIndex.d.ts +2 -2
  27. package/dist/intervalIndex/idIntervalIndex.js +1 -1
  28. package/dist/intervalIndex/idIntervalIndex.js.map +1 -1
  29. package/dist/intervalIndex/intervalIndex.d.ts +1 -1
  30. package/dist/intervalIndex/intervalIndex.js.map +1 -1
  31. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
  32. package/dist/intervalIndex/overlappingIntervalsIndex.js +1 -1
  33. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  34. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +1 -1
  35. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js +1 -1
  36. package/dist/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  37. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -1
  38. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  39. package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  40. package/dist/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  41. package/dist/intervalIndex/startpointInRangeIndex.js +1 -1
  42. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  43. package/dist/intervalTree.d.ts +1 -2
  44. package/dist/intervalTree.d.ts.map +1 -1
  45. package/dist/intervalTree.js +1 -3
  46. package/dist/intervalTree.js.map +1 -1
  47. package/dist/intervals/interval.d.ts +5 -11
  48. package/dist/intervals/interval.d.ts.map +1 -1
  49. package/dist/intervals/interval.js +10 -18
  50. package/dist/intervals/interval.js.map +1 -1
  51. package/dist/intervals/intervalUtils.d.ts +15 -18
  52. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  53. package/dist/intervals/intervalUtils.js +3 -8
  54. package/dist/intervals/intervalUtils.js.map +1 -1
  55. package/dist/intervals/sequenceInterval.d.ts +5 -15
  56. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  57. package/dist/intervals/sequenceInterval.js +12 -28
  58. package/dist/intervals/sequenceInterval.js.map +1 -1
  59. package/dist/localValues.d.ts +2 -1
  60. package/dist/localValues.d.ts.map +1 -1
  61. package/dist/localValues.js.map +1 -1
  62. package/dist/packageVersion.d.ts +1 -1
  63. package/dist/packageVersion.js +1 -1
  64. package/dist/packageVersion.js.map +1 -1
  65. package/dist/revertibles.d.ts +9 -15
  66. package/dist/revertibles.d.ts.map +1 -1
  67. package/dist/revertibles.js +14 -10
  68. package/dist/revertibles.js.map +1 -1
  69. package/dist/sequence-alpha.d.ts +283 -552
  70. package/dist/sequence-beta.d.ts +139 -1373
  71. package/dist/sequence-public.d.ts +139 -1373
  72. package/dist/sequence-untrimmed.d.ts +186 -141
  73. package/dist/sequence.d.ts +26 -24
  74. package/dist/sequence.d.ts.map +1 -1
  75. package/dist/sequence.js +38 -23
  76. package/dist/sequence.js.map +1 -1
  77. package/dist/sequenceDeltaEvent.d.ts +4 -4
  78. package/dist/sequenceDeltaEvent.d.ts.map +1 -1
  79. package/dist/sequenceDeltaEvent.js +14 -7
  80. package/dist/sequenceDeltaEvent.js.map +1 -1
  81. package/dist/sequenceFactory.d.ts +1 -1
  82. package/dist/sequenceFactory.js +1 -1
  83. package/dist/sequenceFactory.js.map +1 -1
  84. package/dist/sharedIntervalCollection.d.ts +3 -3
  85. package/dist/sharedIntervalCollection.js +2 -2
  86. package/dist/sharedIntervalCollection.js.map +1 -1
  87. package/dist/sharedSequence.d.ts +4 -4
  88. package/dist/sharedSequence.d.ts.map +1 -1
  89. package/dist/sharedSequence.js +8 -2
  90. package/dist/sharedSequence.js.map +1 -1
  91. package/dist/sharedString.d.ts +9 -18
  92. package/dist/sharedString.d.ts.map +1 -1
  93. package/dist/sharedString.js +9 -21
  94. package/dist/sharedString.js.map +1 -1
  95. package/lib/defaultMap.d.ts +3 -3
  96. package/lib/defaultMap.d.ts.map +1 -1
  97. package/lib/defaultMap.js +29 -20
  98. package/lib/defaultMap.js.map +1 -1
  99. package/lib/defaultMapInterfaces.d.ts +12 -11
  100. package/lib/defaultMapInterfaces.d.ts.map +1 -1
  101. package/lib/defaultMapInterfaces.js +2 -1
  102. package/lib/defaultMapInterfaces.js.map +1 -1
  103. package/lib/index.d.ts +1 -0
  104. package/lib/index.d.ts.map +1 -1
  105. package/lib/index.js +55 -10
  106. package/lib/index.js.map +1 -1
  107. package/lib/intervalCollection.d.ts +70 -16
  108. package/lib/intervalCollection.d.ts.map +1 -1
  109. package/lib/intervalCollection.js +174 -156
  110. package/lib/intervalCollection.js.map +1 -1
  111. package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  112. package/lib/intervalIndex/endpointInRangeIndex.js +18 -13
  113. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  114. package/lib/intervalIndex/endpointIndex.d.ts +2 -2
  115. package/lib/intervalIndex/endpointIndex.js +14 -9
  116. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  117. package/lib/intervalIndex/idIntervalIndex.d.ts +2 -2
  118. package/lib/intervalIndex/idIntervalIndex.js +9 -5
  119. package/lib/intervalIndex/idIntervalIndex.js.map +1 -1
  120. package/lib/intervalIndex/index.js +19 -6
  121. package/lib/intervalIndex/index.js.map +1 -1
  122. package/lib/intervalIndex/intervalIndex.d.ts +1 -1
  123. package/lib/intervalIndex/intervalIndex.js +2 -1
  124. package/lib/intervalIndex/intervalIndex.js.map +1 -1
  125. package/lib/intervalIndex/intervalIndexUtils.js +8 -4
  126. package/lib/intervalIndex/intervalIndexUtils.js.map +1 -1
  127. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +2 -2
  128. package/lib/intervalIndex/overlappingIntervalsIndex.js +16 -11
  129. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  130. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.d.ts +1 -1
  131. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js +15 -11
  132. package/lib/intervalIndex/overlappingSequenceIntervalsIndex.js.map +1 -1
  133. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +2 -1
  134. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  135. package/lib/intervalIndex/sequenceIntervalIndexes.js +2 -1
  136. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  137. package/lib/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  138. package/lib/intervalIndex/startpointInRangeIndex.js +18 -13
  139. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  140. package/lib/intervalTree.d.ts +1 -2
  141. package/lib/intervalTree.d.ts.map +1 -1
  142. package/lib/intervalTree.js +7 -4
  143. package/lib/intervalTree.js.map +1 -1
  144. package/lib/intervals/index.js +18 -3
  145. package/lib/intervals/index.js.map +1 -1
  146. package/lib/intervals/interval.d.ts +5 -11
  147. package/lib/intervals/interval.d.ts.map +1 -1
  148. package/lib/intervals/interval.js +26 -29
  149. package/lib/intervals/interval.js.map +1 -1
  150. package/lib/intervals/intervalUtils.d.ts +15 -18
  151. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  152. package/lib/intervals/intervalUtils.js +21 -21
  153. package/lib/intervals/intervalUtils.js.map +1 -1
  154. package/lib/intervals/sequenceInterval.d.ts +5 -15
  155. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  156. package/lib/intervals/sequenceInterval.js +72 -82
  157. package/lib/intervals/sequenceInterval.js.map +1 -1
  158. package/lib/localValues.d.ts +2 -1
  159. package/lib/localValues.d.ts.map +1 -1
  160. package/lib/localValues.js +9 -4
  161. package/lib/localValues.js.map +1 -1
  162. package/lib/packageVersion.d.ts +1 -1
  163. package/lib/packageVersion.js +5 -2
  164. package/lib/packageVersion.js.map +1 -1
  165. package/lib/revertibles.d.ts +9 -15
  166. package/lib/revertibles.d.ts.map +1 -1
  167. package/lib/revertibles.js +83 -69
  168. package/lib/revertibles.js.map +1 -1
  169. package/lib/sequence-alpha.d.ts +283 -552
  170. package/lib/sequence-beta.d.ts +139 -1373
  171. package/lib/sequence-public.d.ts +139 -1373
  172. package/lib/sequence-untrimmed.d.ts +186 -141
  173. package/lib/sequence.d.ts +26 -24
  174. package/lib/sequence.d.ts.map +1 -1
  175. package/lib/sequence.js +81 -61
  176. package/lib/sequence.js.map +1 -1
  177. package/lib/sequenceDeltaEvent.d.ts +4 -4
  178. package/lib/sequenceDeltaEvent.d.ts.map +1 -1
  179. package/lib/sequenceDeltaEvent.js +27 -14
  180. package/lib/sequenceDeltaEvent.js.map +1 -1
  181. package/lib/sequenceFactory.d.ts +1 -1
  182. package/lib/sequenceFactory.js +14 -10
  183. package/lib/sequenceFactory.js.map +1 -1
  184. package/lib/sharedIntervalCollection.d.ts +3 -3
  185. package/lib/sharedIntervalCollection.js +20 -15
  186. package/lib/sharedIntervalCollection.js.map +1 -1
  187. package/lib/sharedSequence.d.ts +4 -4
  188. package/lib/sharedSequence.d.ts.map +1 -1
  189. package/lib/sharedSequence.js +19 -8
  190. package/lib/sharedSequence.js.map +1 -1
  191. package/lib/sharedString.d.ts +9 -18
  192. package/lib/sharedString.d.ts.map +1 -1
  193. package/lib/sharedString.js +30 -37
  194. package/lib/sharedString.js.map +1 -1
  195. package/package.json +44 -22
  196. package/sequence.test-files.tar +0 -0
  197. package/src/defaultMap.ts +22 -16
  198. package/src/defaultMapInterfaces.ts +17 -14
  199. package/src/index.ts +17 -0
  200. package/src/intervalCollection.ts +135 -71
  201. package/src/intervalIndex/endpointInRangeIndex.ts +2 -2
  202. package/src/intervalIndex/endpointIndex.ts +2 -2
  203. package/src/intervalIndex/idIntervalIndex.ts +2 -2
  204. package/src/intervalIndex/intervalIndex.ts +1 -1
  205. package/src/intervalIndex/overlappingIntervalsIndex.ts +2 -2
  206. package/src/intervalIndex/overlappingSequenceIntervalsIndex.ts +1 -1
  207. package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -1
  208. package/src/intervalIndex/startpointInRangeIndex.ts +2 -2
  209. package/src/intervalTree.ts +0 -3
  210. package/src/intervals/interval.ts +7 -26
  211. package/src/intervals/intervalUtils.ts +17 -20
  212. package/src/intervals/sequenceInterval.ts +7 -35
  213. package/src/localValues.ts +2 -1
  214. package/src/packageVersion.ts +1 -1
  215. package/src/revertibles.ts +20 -19
  216. package/src/sequence.ts +61 -43
  217. package/src/sequenceDeltaEvent.ts +12 -6
  218. package/src/sequenceFactory.ts +1 -1
  219. package/src/sharedIntervalCollection.ts +3 -3
  220. package/src/sharedSequence.ts +12 -6
  221. package/src/sharedString.ts +21 -48
  222. package/tsconfig.json +1 -0
@@ -3,10 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- /* eslint-disable import/no-deprecated */
7
-
8
6
  import { assert } from "@fluidframework/core-utils";
9
7
  import {
8
+ // eslint-disable-next-line import/no-deprecated
10
9
  Client,
11
10
  IMergeTreeDeltaCallbackArgs,
12
11
  IMergeTreeDeltaOpArgs,
@@ -16,6 +15,7 @@ import {
16
15
  MergeTreeDeltaOperationTypes,
17
16
  MergeTreeMaintenanceType,
18
17
  PropertySet,
18
+ // eslint-disable-next-line import/no-deprecated
19
19
  SortedSegmentSet,
20
20
  } from "@fluidframework/merge-tree";
21
21
 
@@ -25,18 +25,20 @@ import {
25
25
  * The properties of this object and its sub-objects represent the state of the sequence at the
26
26
  * point in time at which the operation was applied.
27
27
  * They will not take into any future modifications performed to the underlying sequence and merge tree.
28
- * @public
28
+ * @alpha
29
29
  */
30
30
  export abstract class SequenceEvent<
31
31
  TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes,
32
32
  > {
33
33
  public readonly deltaOperation: TOperation;
34
+ // eslint-disable-next-line import/no-deprecated
34
35
  private readonly sortedRanges: Lazy<SortedSegmentSet<ISequenceDeltaRange<TOperation>>>;
35
36
  private readonly pFirst: Lazy<ISequenceDeltaRange<TOperation>>;
36
37
  private readonly pLast: Lazy<ISequenceDeltaRange<TOperation>>;
37
38
 
38
39
  constructor(
39
40
  public readonly deltaArgs: IMergeTreeDeltaCallbackArgs<TOperation>,
41
+ // eslint-disable-next-line import/no-deprecated
40
42
  private readonly mergeTreeClient: Client,
41
43
  ) {
42
44
  assert(
@@ -45,7 +47,9 @@ export abstract class SequenceEvent<
45
47
  );
46
48
  this.deltaOperation = deltaArgs.operation;
47
49
 
50
+ // eslint-disable-next-line import/no-deprecated
48
51
  this.sortedRanges = new Lazy<SortedSegmentSet<ISequenceDeltaRange<TOperation>>>(() => {
52
+ // eslint-disable-next-line import/no-deprecated
49
53
  const set = new SortedSegmentSet<ISequenceDeltaRange<TOperation>>();
50
54
  this.deltaArgs.deltaSegments.forEach((delta) => {
51
55
  const newRange: ISequenceDeltaRange<TOperation> = {
@@ -108,7 +112,7 @@ export abstract class SequenceEvent<
108
112
  * For group ops, each op will get its own event, and the group op property will be set on the op args.
109
113
  *
110
114
  * Ops may get multiple events. For instance, an insert-replace will get a remove then an insert event.
111
- * @public
115
+ * @alpha
112
116
  */
113
117
  export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationType> {
114
118
  /**
@@ -119,6 +123,7 @@ export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationTyp
119
123
  constructor(
120
124
  public readonly opArgs: IMergeTreeDeltaOpArgs,
121
125
  deltaArgs: IMergeTreeDeltaCallbackArgs,
126
+ // eslint-disable-next-line import/no-deprecated
122
127
  mergeTreeClient: Client,
123
128
  ) {
124
129
  super(deltaArgs, mergeTreeClient);
@@ -132,12 +137,13 @@ export class SequenceDeltaEvent extends SequenceEvent<MergeTreeDeltaOperationTyp
132
137
  * The properties of this object and its sub-objects represent the state of the sequence at the
133
138
  * point in time at which the operation was applied.
134
139
  * They will not take into consideration any future modifications performed to the underlying sequence and merge tree.
135
- * @public
140
+ * @alpha
136
141
  */
137
142
  export class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenanceType> {
138
143
  constructor(
139
144
  public readonly opArgs: IMergeTreeDeltaOpArgs | undefined,
140
145
  deltaArgs: IMergeTreeMaintenanceCallbackArgs,
146
+ // eslint-disable-next-line import/no-deprecated
141
147
  mergeTreeClient: Client,
142
148
  ) {
143
149
  super(deltaArgs, mergeTreeClient);
@@ -146,7 +152,7 @@ export class SequenceMaintenanceEvent extends SequenceEvent<MergeTreeMaintenance
146
152
 
147
153
  /**
148
154
  * A range that has changed corresponding to a segment modification.
149
- * @public
155
+ * @alpha
150
156
  */
151
157
  export interface ISequenceDeltaRange<
152
158
  TOperation extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationTypes,
@@ -14,7 +14,7 @@ import { pkgVersion } from "./packageVersion";
14
14
  import { SharedString, SharedStringSegment } from "./sharedString";
15
15
 
16
16
  /**
17
- * @public
17
+ * @alpha
18
18
  */
19
19
  export class SharedStringFactory implements IChannelFactory {
20
20
  // TODO rename back to https://graph.microsoft.com/types/mergeTree/string once paparazzi is able to dynamically
@@ -33,7 +33,7 @@ const snapshotFileName = "header";
33
33
  /**
34
34
  * The factory that defines the SharedIntervalCollection.
35
35
  * @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
36
- * @public
36
+ * @internal
37
37
  */
38
38
  export class SharedIntervalCollectionFactory implements IChannelFactory {
39
39
  public static readonly Type = "https://graph.microsoft.com/types/sharedIntervalCollection";
@@ -76,7 +76,7 @@ export class SharedIntervalCollectionFactory implements IChannelFactory {
76
76
  }
77
77
 
78
78
  /**
79
- * @public
79
+ * @alpha
80
80
  */
81
81
  export interface ISharedIntervalCollection<TInterval extends ISerializableInterval> {
82
82
  getIntervalCollection(label: string): IIntervalCollection<TInterval>;
@@ -84,7 +84,7 @@ export interface ISharedIntervalCollection<TInterval extends ISerializableInterv
84
84
 
85
85
  /**
86
86
  * @deprecated `SharedIntervalCollection` is not maintained and is planned to be removed.
87
- * @public
87
+ * @internal
88
88
  */
89
89
  export class SharedIntervalCollection
90
90
  extends SharedObject
@@ -16,7 +16,7 @@ const MaxRun = 128;
16
16
 
17
17
  /**
18
18
  * @deprecated IJSONRunSegment will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
19
- * @public
19
+ * @internal
20
20
  */
21
21
  export interface IJSONRunSegment<T> extends IJSONSegment {
22
22
  items: Serializable<T>[];
@@ -24,14 +24,14 @@ export interface IJSONRunSegment<T> extends IJSONSegment {
24
24
 
25
25
  /**
26
26
  * @deprecated SubSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
27
- * @public
27
+ * @internal
28
28
  */
29
29
  export class SubSequence<T> extends BaseSegment {
30
30
  public static readonly typeString: string = "SubSequence";
31
31
  public static is(segment: ISegment): segment is SubSequence<any> {
32
32
  return segment.type === SubSequence.typeString;
33
33
  }
34
- public static fromJSONObject<U>(spec: Serializable) {
34
+ public static fromJSONObject<U>(spec: any) {
35
35
  if (spec && typeof spec === "object" && "items" in spec) {
36
36
  const segment = new SubSequence<U>(spec.items);
37
37
  if (spec.props) {
@@ -76,7 +76,10 @@ export class SubSequence<T> extends BaseSegment {
76
76
  public append(segment: ISegment) {
77
77
  assert(SubSequence.is(segment), 0x448 /* can only append to another run segment */);
78
78
  super.append(segment);
79
- this.items = this.items.concat(segment.items);
79
+ // assert above checks that segment is a SubSequence but not that generic T matches.
80
+ // Since SubSequence is already deprecated, assume that usage is generic T consistent
81
+ // and just cast here to satisfy concat.
82
+ this.items = this.items.concat((segment as SubSequence<T>).items);
80
83
  }
81
84
 
82
85
  // TODO: retain removed items for undo
@@ -108,7 +111,7 @@ export class SubSequence<T> extends BaseSegment {
108
111
 
109
112
  /**
110
113
  * @deprecated SharedSequence will be removed in a upcoming release. It has been moved to the fluid-experimental/sequence-deprecated package
111
- * @public
114
+ * @internal
112
115
  */
113
116
  export class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
114
117
  constructor(
@@ -169,7 +172,10 @@ export class SharedSequence<T> extends SharedSegmentSequence<SubSequence<T>> {
169
172
  if (firstSegment === undefined) {
170
173
  firstSegment = segment;
171
174
  }
172
- items.push(...segment.items);
175
+ // Condition above checks that segment is a SubSequence but not that
176
+ // generic T matches. Since SubSequence is already deprecated, assume
177
+ // that walk only has SubSequence<T> segments and just cast here.
178
+ items.push(...(segment as SubSequence<T>).items);
173
179
  }
174
180
  return true;
175
181
  },
@@ -4,9 +4,6 @@
4
4
  */
5
5
 
6
6
  import {
7
- ICombiningOp,
8
- IMergeTreeInsertMsg,
9
- IMergeTreeRemoveMsg,
10
7
  IMergeTreeTextHelper,
11
8
  IRelativePosition,
12
9
  ISegment,
@@ -24,7 +21,7 @@ import { SharedStringFactory } from "./sequenceFactory";
24
21
 
25
22
  /**
26
23
  * Fluid object interface describing access methods on a SharedString
27
- * @public
24
+ * @alpha
28
25
  */
29
26
  export interface ISharedString extends SharedSegmentSequence<SharedStringSegment> {
30
27
  /**
@@ -41,11 +38,7 @@ export interface ISharedString extends SharedSegmentSequence<SharedStringSegment
41
38
  * @param refType - The reference type of the marker
42
39
  * @param props - The properties of the marker
43
40
  */
44
- insertMarker(
45
- pos: number,
46
- refType: ReferenceType,
47
- props?: PropertySet,
48
- ): IMergeTreeInsertMsg | undefined;
41
+ insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void;
49
42
 
50
43
  /**
51
44
  * {@inheritDoc SharedSegmentSequence.posFromRelativePos}
@@ -54,7 +47,7 @@ export interface ISharedString extends SharedSegmentSequence<SharedStringSegment
54
47
  }
55
48
 
56
49
  /**
57
- * @public
50
+ * @alpha
58
51
  */
59
52
  export type SharedStringSegment = TextSegment | Marker;
60
53
 
@@ -66,8 +59,7 @@ export type SharedStringSegment = TextSegment | Marker;
66
59
  * In addition to text, a Shared String can also contain markers. Markers can be
67
60
  * used to store metadata at positions within the text, like the details of an
68
61
  * image or Fluid object that should be rendered with the text.
69
- *
70
- * @public
62
+ * @alpha
71
63
  */
72
64
  export class SharedString
73
65
  extends SharedSegmentSequence<SharedStringSegment>
@@ -116,7 +108,7 @@ export class SharedString
116
108
  relativePos1: IRelativePosition,
117
109
  refType: ReferenceType,
118
110
  props?: PropertySet,
119
- ) {
111
+ ): void {
120
112
  const segment = new Marker(refType);
121
113
  if (props) {
122
114
  segment.addProperties(props);
@@ -129,17 +121,13 @@ export class SharedString
129
121
  /**
130
122
  * {@inheritDoc ISharedString.insertMarker}
131
123
  */
132
- public insertMarker(
133
- pos: number,
134
- refType: ReferenceType,
135
- props?: PropertySet,
136
- ): IMergeTreeInsertMsg | undefined {
124
+ public insertMarker(pos: number, refType: ReferenceType, props?: PropertySet): void {
137
125
  const segment = new Marker(refType);
138
126
  if (props) {
139
127
  segment.addProperties(props);
140
128
  }
141
129
 
142
- return this.guardReentrancy(() => this.client.insertSegmentLocal(pos, segment));
130
+ this.guardReentrancy(() => this.client.insertSegmentLocal(pos, segment));
143
131
  }
144
132
 
145
133
  /**
@@ -148,7 +136,11 @@ export class SharedString
148
136
  * @param text - The text to insert
149
137
  * @param props - The properties of text
150
138
  */
151
- public insertTextRelative(relativePos1: IRelativePosition, text: string, props?: PropertySet) {
139
+ public insertTextRelative(
140
+ relativePos1: IRelativePosition,
141
+ text: string,
142
+ props?: PropertySet,
143
+ ): void {
152
144
  const segment = new TextSegment(text);
153
145
  if (props) {
154
146
  segment.addProperties(props);
@@ -161,7 +153,7 @@ export class SharedString
161
153
  /**
162
154
  * {@inheritDoc ISharedString.insertText}
163
155
  */
164
- public insertText(pos: number, text: string, props?: PropertySet) {
156
+ public insertText(pos: number, text: string, props?: PropertySet): void {
165
157
  const segment = new TextSegment(text);
166
158
  if (props) {
167
159
  segment.addProperties(props);
@@ -177,7 +169,7 @@ export class SharedString
177
169
  * @param text - The text to replace the range with
178
170
  * @param props - Optional. The properties of the replacement text
179
171
  */
180
- public replaceText(start: number, end: number, text: string, props?: PropertySet) {
172
+ public replaceText(start: number, end: number, text: string, props?: PropertySet): void {
181
173
  this.replaceRange(start, end, TextSegment.make(text, props));
182
174
  }
183
175
 
@@ -187,34 +179,17 @@ export class SharedString
187
179
  * @param end - The exclusive end of the range to replace
188
180
  * @returns the message sent.
189
181
  */
190
- public removeText(start: number, end: number): IMergeTreeRemoveMsg {
191
- return this.removeRange(start, end);
192
- }
193
-
194
- /**
195
- * Annotates the marker with the provided properties and calls the callback on consensus.
196
- * @param marker - The marker to annotate
197
- * @param props - The properties to annotate the marker with
198
- * @param consensusCallback - The callback called when consensus is reached
199
- */
200
- public annotateMarkerNotifyConsensus(
201
- marker: Marker,
202
- props: PropertySet,
203
- callback: (m: Marker) => void,
204
- ) {
205
- this.guardReentrancy(() =>
206
- this.client.annotateMarkerNotifyConsensus(marker, props, callback),
207
- );
182
+ public removeText(start: number, end: number): void {
183
+ this.removeRange(start, end);
208
184
  }
209
185
 
210
186
  /**
211
187
  * Annotates the marker with the provided properties.
212
188
  * @param marker - The marker to annotate
213
189
  * @param props - The properties to annotate the marker with
214
- * @param combiningOp - Optional. Specifies how to combine values for the property, such as "incr" for increment.
215
190
  */
216
- public annotateMarker(marker: Marker, props: PropertySet, combiningOp?: ICombiningOp) {
217
- this.guardReentrancy(() => this.client.annotateMarker(marker, props, combiningOp));
191
+ public annotateMarker(marker: Marker, props: PropertySet) {
192
+ this.guardReentrancy(() => this.client.annotateMarker(marker, props));
218
193
  }
219
194
 
220
195
  /**
@@ -339,7 +314,7 @@ interface ITextAndMarkerAccumulator {
339
314
  * // parallelMarkers === [<paragraph marker 1 object>, <paragraph marker 2 object>]
340
315
  * // Note parallelText does not include "missing".
341
316
  * ```
342
- * @public
317
+ * @internal
343
318
  */
344
319
  export function getTextAndMarkers(
345
320
  sharedString: SharedString,
@@ -427,10 +402,8 @@ const gatherTextAndMarkers: ISegmentAction<ITextAndMarkerAccumulator> = (
427
402
  } else {
428
403
  if (placeholder && placeholder.length > 0) {
429
404
  const placeholderText =
430
- placeholder === "*"
431
- ? // eslint-disable-next-line @typescript-eslint/no-base-to-string
432
- `\n${segment.toString()}`
433
- : placeholder.repeat(segment.cachedLength);
405
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
406
+ placeholder === "*" ? `\n${segment}` : placeholder.repeat(segment.cachedLength);
434
407
  textSegment.text += placeholderText;
435
408
  } else {
436
409
  const marker = segment as Marker;
package/tsconfig.json CHANGED
@@ -8,5 +8,6 @@
8
8
  "compilerOptions": {
9
9
  "rootDir": "./src",
10
10
  "outDir": "./dist",
11
+ "noImplicitAny": true,
11
12
  },
12
13
  }