@fluidframework/sequence 2.90.0 → 2.92.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 (184) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/IntervalCollectionValues.d.ts +3 -3
  3. package/dist/IntervalCollectionValues.d.ts.map +1 -1
  4. package/dist/IntervalCollectionValues.js.map +1 -1
  5. package/dist/index.d.ts +10 -10
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/intervalCollection.d.ts +6 -5
  9. package/dist/intervalCollection.d.ts.map +1 -1
  10. package/dist/intervalCollection.js +10 -9
  11. package/dist/intervalCollection.js.map +1 -1
  12. package/dist/intervalCollectionMap.d.ts +4 -5
  13. package/dist/intervalCollectionMap.d.ts.map +1 -1
  14. package/dist/intervalCollectionMap.js +3 -3
  15. package/dist/intervalCollectionMap.js.map +1 -1
  16. package/dist/intervalCollectionMapInterfaces.d.ts +3 -3
  17. package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
  18. package/dist/intervalCollectionMapInterfaces.js.map +1 -1
  19. package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  20. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  21. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  22. package/dist/intervalIndex/endpointIndex.d.ts +2 -2
  23. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  24. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  25. package/dist/intervalIndex/index.d.ts +7 -7
  26. package/dist/intervalIndex/index.d.ts.map +1 -1
  27. package/dist/intervalIndex/index.js.map +1 -1
  28. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +3 -3
  29. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  30. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  31. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
  32. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  33. package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  34. package/dist/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  35. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  36. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  37. package/dist/intervalTree.d.ts +3 -2
  38. package/dist/intervalTree.d.ts.map +1 -1
  39. package/dist/intervalTree.js.map +1 -1
  40. package/dist/intervals/index.d.ts +2 -2
  41. package/dist/intervals/index.d.ts.map +1 -1
  42. package/dist/intervals/index.js.map +1 -1
  43. package/dist/intervals/intervalUtils.d.ts +2 -1
  44. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  45. package/dist/intervals/intervalUtils.js +0 -1
  46. package/dist/intervals/intervalUtils.js.map +1 -1
  47. package/dist/intervals/sequenceInterval.d.ts +5 -3
  48. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  49. package/dist/intervals/sequenceInterval.js.map +1 -1
  50. package/dist/legacy.d.ts +1 -1
  51. package/dist/packageVersion.d.ts +1 -1
  52. package/dist/packageVersion.js +1 -1
  53. package/dist/packageVersion.js.map +1 -1
  54. package/dist/public.d.ts +1 -1
  55. package/dist/revertibles.d.ts +5 -4
  56. package/dist/revertibles.d.ts.map +1 -1
  57. package/dist/revertibles.js +26 -20
  58. package/dist/revertibles.js.map +1 -1
  59. package/dist/sequence.d.ts +8 -6
  60. package/dist/sequence.d.ts.map +1 -1
  61. package/dist/sequence.js +9 -10
  62. package/dist/sequence.js.map +1 -1
  63. package/dist/sequenceDeltaEvent.d.ts +2 -1
  64. package/dist/sequenceDeltaEvent.d.ts.map +1 -1
  65. package/dist/sequenceDeltaEvent.js +2 -2
  66. package/dist/sequenceDeltaEvent.js.map +1 -1
  67. package/dist/sequenceFactory.d.ts +3 -2
  68. package/dist/sequenceFactory.d.ts.map +1 -1
  69. package/dist/sequenceFactory.js +3 -2
  70. package/dist/sequenceFactory.js.map +1 -1
  71. package/dist/sharedSequence.d.ts +3 -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 -2
  75. package/dist/sharedString.d.ts.map +1 -1
  76. package/dist/sharedString.js.map +1 -1
  77. package/eslint.config.mts +16 -4
  78. package/internal.d.ts +1 -1
  79. package/legacy.d.ts +1 -1
  80. package/lib/IntervalCollectionValues.d.ts +3 -3
  81. package/lib/IntervalCollectionValues.d.ts.map +1 -1
  82. package/lib/IntervalCollectionValues.js +1 -1
  83. package/lib/IntervalCollectionValues.js.map +1 -1
  84. package/lib/index.d.ts +10 -10
  85. package/lib/index.d.ts.map +1 -1
  86. package/lib/index.js.map +1 -1
  87. package/lib/intervalCollection.d.ts +6 -5
  88. package/lib/intervalCollection.d.ts.map +1 -1
  89. package/lib/intervalCollection.js +10 -9
  90. package/lib/intervalCollection.js.map +1 -1
  91. package/lib/intervalCollectionMap.d.ts +4 -5
  92. package/lib/intervalCollectionMap.d.ts.map +1 -1
  93. package/lib/intervalCollectionMap.js +3 -3
  94. package/lib/intervalCollectionMap.js.map +1 -1
  95. package/lib/intervalCollectionMapInterfaces.d.ts +3 -3
  96. package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
  97. package/lib/intervalCollectionMapInterfaces.js.map +1 -1
  98. package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  99. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  100. package/lib/intervalIndex/endpointInRangeIndex.js +1 -1
  101. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  102. package/lib/intervalIndex/endpointIndex.d.ts +2 -2
  103. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
  104. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  105. package/lib/intervalIndex/index.d.ts +7 -7
  106. package/lib/intervalIndex/index.d.ts.map +1 -1
  107. package/lib/intervalIndex/index.js.map +1 -1
  108. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +3 -3
  109. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  110. package/lib/intervalIndex/overlappingIntervalsIndex.js +1 -1
  111. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  112. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
  113. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  114. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  115. package/lib/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  116. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  117. package/lib/intervalIndex/startpointInRangeIndex.js +1 -1
  118. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  119. package/lib/intervalTree.d.ts +3 -2
  120. package/lib/intervalTree.d.ts.map +1 -1
  121. package/lib/intervalTree.js +1 -1
  122. package/lib/intervalTree.js.map +1 -1
  123. package/lib/intervals/index.d.ts +2 -2
  124. package/lib/intervals/index.d.ts.map +1 -1
  125. package/lib/intervals/index.js.map +1 -1
  126. package/lib/intervals/intervalUtils.d.ts +2 -1
  127. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  128. package/lib/intervals/intervalUtils.js +0 -1
  129. package/lib/intervals/intervalUtils.js.map +1 -1
  130. package/lib/intervals/sequenceInterval.d.ts +5 -3
  131. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  132. package/lib/intervals/sequenceInterval.js.map +1 -1
  133. package/lib/legacy.d.ts +1 -1
  134. package/lib/packageVersion.d.ts +1 -1
  135. package/lib/packageVersion.js +1 -1
  136. package/lib/packageVersion.js.map +1 -1
  137. package/lib/public.d.ts +1 -1
  138. package/lib/revertibles.d.ts +5 -4
  139. package/lib/revertibles.d.ts.map +1 -1
  140. package/lib/revertibles.js +26 -20
  141. package/lib/revertibles.js.map +1 -1
  142. package/lib/sequence.d.ts +8 -6
  143. package/lib/sequence.d.ts.map +1 -1
  144. package/lib/sequence.js +11 -12
  145. package/lib/sequence.js.map +1 -1
  146. package/lib/sequenceDeltaEvent.d.ts +2 -1
  147. package/lib/sequenceDeltaEvent.d.ts.map +1 -1
  148. package/lib/sequenceDeltaEvent.js +2 -2
  149. package/lib/sequenceDeltaEvent.js.map +1 -1
  150. package/lib/sequenceFactory.d.ts +3 -2
  151. package/lib/sequenceFactory.d.ts.map +1 -1
  152. package/lib/sequenceFactory.js +3 -2
  153. package/lib/sequenceFactory.js.map +1 -1
  154. package/lib/sharedSequence.d.ts +3 -2
  155. package/lib/sharedSequence.d.ts.map +1 -1
  156. package/lib/sharedSequence.js +1 -1
  157. package/lib/sharedSequence.js.map +1 -1
  158. package/lib/sharedString.d.ts +3 -2
  159. package/lib/sharedString.d.ts.map +1 -1
  160. package/lib/sharedString.js +1 -1
  161. package/lib/sharedString.js.map +1 -1
  162. package/package.json +23 -23
  163. package/src/IntervalCollectionValues.ts +4 -6
  164. package/src/index.ts +25 -25
  165. package/src/intervalCollection.ts +25 -20
  166. package/src/intervalCollectionMap.ts +8 -8
  167. package/src/intervalCollectionMapInterfaces.ts +4 -4
  168. package/src/intervalIndex/endpointInRangeIndex.ts +7 -8
  169. package/src/intervalIndex/endpointIndex.ts +3 -2
  170. package/src/intervalIndex/index.ts +7 -7
  171. package/src/intervalIndex/overlappingIntervalsIndex.ts +8 -9
  172. package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
  173. package/src/intervalIndex/startpointInRangeIndex.ts +7 -8
  174. package/src/intervalTree.ts +3 -3
  175. package/src/intervals/index.ts +6 -6
  176. package/src/intervals/intervalUtils.ts +2 -1
  177. package/src/intervals/sequenceInterval.ts +7 -6
  178. package/src/packageVersion.ts +1 -1
  179. package/src/revertibles.ts +35 -26
  180. package/src/sequence.ts +25 -26
  181. package/src/sequenceDeltaEvent.ts +6 -4
  182. package/src/sequenceFactory.ts +6 -4
  183. package/src/sharedSequence.ts +3 -7
  184. package/src/sharedString.ts +3 -5
package/src/sequence.ts CHANGED
@@ -4,19 +4,16 @@
4
4
  */
5
5
 
6
6
  import { bufferToString } from "@fluid-internal/client-utils";
7
- import { IEventThisPlaceHolder } from "@fluidframework/core-interfaces";
7
+ import type { IEventThisPlaceHolder } from "@fluidframework/core-interfaces";
8
8
  import { assert } from "@fluidframework/core-utils/internal";
9
- import {
9
+ import type {
10
10
  IChannelAttributes,
11
11
  IFluidDataStoreRuntime,
12
12
  IChannelStorageService,
13
13
  } from "@fluidframework/datastore-definitions/internal";
14
- import {
15
- MessageType,
16
- ISequencedDocumentMessage,
17
- } from "@fluidframework/driver-definitions/internal";
18
- import {
19
- Client,
14
+ import type { ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
15
+ import { MessageType } from "@fluidframework/driver-definitions/internal";
16
+ import type {
20
17
  IJSONSegment,
21
18
  IMergeTreeAnnotateMsg,
22
19
  IMergeTreeDeltaOp,
@@ -30,12 +27,15 @@ import {
30
27
  ISegment,
31
28
  ISegmentAction,
32
29
  LocalReferencePosition,
33
- MergeTreeDeltaType,
34
30
  MergeTreeRevertibleDriver,
35
31
  PropertySet,
36
32
  ReferencePosition,
37
33
  ReferenceType,
38
34
  SlidingPreference,
35
+ } from "@fluidframework/merge-tree/internal";
36
+ import {
37
+ Client,
38
+ MergeTreeDeltaType,
39
39
  createAnnotateRangeOp,
40
40
  createGroupOp,
41
41
  createInsertOp,
@@ -46,7 +46,7 @@ import {
46
46
  type InteriorSequencePlace,
47
47
  type MapLike,
48
48
  } from "@fluidframework/merge-tree/internal";
49
- import {
49
+ import type {
50
50
  ISummaryTreeWithStats,
51
51
  ITelemetryContext,
52
52
  IRuntimeMessageCollection,
@@ -57,12 +57,12 @@ import {
57
57
  ObjectStoragePartition,
58
58
  SummaryTreeBuilder,
59
59
  } from "@fluidframework/runtime-utils/internal";
60
- import {
60
+ import type {
61
61
  IFluidSerializer,
62
+ ISharedObject,
62
63
  ISharedObjectEvents,
63
- SharedObject,
64
- type ISharedObject,
65
64
  } from "@fluidframework/shared-object-base/internal";
65
+ import { SharedObject } from "@fluidframework/shared-object-base/internal";
66
66
  import {
67
67
  LoggingError,
68
68
  createChildLogger,
@@ -72,12 +72,12 @@ import {
72
72
  import Deque from "double-ended-queue";
73
73
 
74
74
  import type { ISequenceIntervalCollection } from "./intervalCollection.js";
75
- import { IMapOperation, IntervalCollectionMap } from "./intervalCollectionMap.js";
75
+ import type { IMapOperation } from "./intervalCollectionMap.js";
76
+ import { IntervalCollectionMap } from "./intervalCollectionMap.js";
76
77
  import type { SequenceOptions } from "./intervalCollectionMapInterfaces.js";
78
+ import type { SequenceDeltaEvent, SequenceMaintenanceEvent } from "./sequenceDeltaEvent.js";
77
79
  import {
78
- SequenceDeltaEvent,
79
80
  SequenceDeltaEventClass,
80
- SequenceMaintenanceEvent,
81
81
  SequenceMaintenanceEventClass,
82
82
  } from "./sequenceDeltaEvent.js";
83
83
 
@@ -416,9 +416,10 @@ export abstract class SharedSegmentSequence<T extends ISegment>
416
416
  break;
417
417
  }
418
418
 
419
- case MergeTreeDeltaType.INSERT:
419
+ case MergeTreeDeltaType.INSERT: {
420
420
  ops.push(createInsertOp(r.position, r.segment.clone().toJSONObject()));
421
421
  break;
422
+ }
422
423
 
423
424
  case MergeTreeDeltaType.REMOVE: {
424
425
  const lastRem = ops[ops.length - 1] as IMergeTreeRemoveMsg;
@@ -831,7 +832,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
831
832
  );
832
833
 
833
834
  // process the catch up ops, and finishing the loading process
834
- (await catchupOpsP).forEach((m) => {
835
+ for (const m of await catchupOpsP) {
835
836
  const collabWindow = this.client.getCollabWindow();
836
837
  if (
837
838
  m.minimumSequenceNumber < collabWindow.minSeq ||
@@ -855,7 +856,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
855
856
  );
856
857
  }
857
858
  this.processMergeTreeMsg(m);
858
- });
859
+ }
859
860
 
860
861
  // Initialize the interval collections
861
862
  this.initializeIntervalCollections();
@@ -946,9 +947,9 @@ export abstract class SharedSegmentSequence<T extends ISegment>
946
947
 
947
948
  this.processMinSequenceNumberChanged(minSeq);
948
949
 
949
- this.messagesSinceMSNChange.forEach((m) => {
950
+ for (const m of this.messagesSinceMSNChange) {
950
951
  m.minimumSequenceNumber = minSeq;
951
- });
952
+ }
952
953
 
953
954
  return this.client.summarize(
954
955
  this.runtime,
@@ -970,10 +971,8 @@ export abstract class SharedSegmentSequence<T extends ISegment>
970
971
  }
971
972
  const needsTransformation = message.referenceSequenceNumber !== message.sequenceNumber - 1;
972
973
  let stashMessage: Readonly<ISequencedDocumentMessage> = message;
973
- if (this.runtime.options.newMergeTreeSnapshotFormat !== true) {
974
- if (needsTransformation) {
975
- this.on("sequenceDelta", transformOps);
976
- }
974
+ if (this.runtime.options.newMergeTreeSnapshotFormat !== true && needsTransformation) {
975
+ this.on("sequenceDelta", transformOps);
977
976
  }
978
977
 
979
978
  this.client.applyMsg(message, local);
@@ -986,7 +985,7 @@ export abstract class SharedSegmentSequence<T extends ISegment>
986
985
  stashMessage = {
987
986
  ...message,
988
987
  referenceSequenceNumber: stashMessage.sequenceNumber - 1,
989
- contents: ops.length !== 1 ? createGroupOp(...ops) : ops[0],
988
+ contents: ops.length === 1 ? ops[0] : createGroupOp(...ops),
990
989
  };
991
990
  }
992
991
 
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { assert, Lazy } from "@fluidframework/core-utils/internal";
7
- import {
7
+ import type {
8
8
  Client,
9
9
  IMergeTreeDeltaCallbackArgs,
10
10
  IMergeTreeDeltaOpArgs,
@@ -12,9 +12,11 @@ import {
12
12
  ISegment,
13
13
  MergeTreeDeltaOperationType,
14
14
  MergeTreeDeltaOperationTypes,
15
+ PropertySet,
16
+ } from "@fluidframework/merge-tree/internal";
17
+ import {
15
18
  MergeTreeDeltaType,
16
19
  MergeTreeMaintenanceType,
17
- PropertySet,
18
20
  SortedSegmentSet,
19
21
  } from "@fluidframework/merge-tree/internal";
20
22
 
@@ -88,7 +90,7 @@ export abstract class SequenceEventClass<
88
90
 
89
91
  this.sortedRanges = new Lazy<SortedSegmentSet<ISequenceDeltaRange<TOperation>>>(() => {
90
92
  const set = new SortedSegmentSet<ISequenceDeltaRange<TOperation>>();
91
- this.deltaArgs.deltaSegments.forEach((delta) => {
93
+ for (const delta of this.deltaArgs.deltaSegments) {
92
94
  const newRange: ISequenceDeltaRange<TOperation> = {
93
95
  operation: this.deltaArgs.operation,
94
96
  position: this.mergeTreeClient.getPosition(delta.segment),
@@ -96,7 +98,7 @@ export abstract class SequenceEventClass<
96
98
  segment: delta.segment,
97
99
  };
98
100
  set.addOrUpdate(newRange);
99
- });
101
+ }
100
102
  return set;
101
103
  });
102
104
 
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import {
6
+ import type {
7
7
  IChannelAttributes,
8
8
  IChannelFactory,
9
9
  IFluidDataStoreRuntime,
@@ -13,11 +13,13 @@ import { Marker, TextSegment } from "@fluidframework/merge-tree/internal";
13
13
  import { createSharedObjectKind } from "@fluidframework/shared-object-base/internal";
14
14
 
15
15
  import { pkgVersion } from "./packageVersion.js";
16
- import { SharedStringClass, SharedStringSegment, type ISharedString } from "./sharedString.js";
16
+ import type { ISharedString, SharedStringSegment } from "./sharedString.js";
17
+ import { SharedStringClass } from "./sharedString.js";
17
18
 
18
19
  export class SharedStringFactory implements IChannelFactory<ISharedString> {
19
- // TODO rename back to https://graph.microsoft.com/types/mergeTree/string once paparazzi is able to dynamically
20
- // load code (UPDATE: paparazzi is gone... anything to do here?)
20
+ // New type string, to be activated once the migration has been fully shipped dark and is safe to flip.
21
+ // See LegacyTypeAwareRegistry in packages/runtime/datastore/src/dataStoreRuntime.ts.
22
+ // public static Type = "mergeTree";
21
23
  public static Type = "https://graph.microsoft.com/types/mergeTree";
22
24
 
23
25
  public static readonly Attributes: IChannelAttributes = {
@@ -4,17 +4,13 @@
4
4
  */
5
5
 
6
6
  import { assert } from "@fluidframework/core-utils/internal";
7
- import {
7
+ import type {
8
8
  IChannelAttributes,
9
9
  IFluidDataStoreRuntime,
10
10
  Serializable,
11
11
  } from "@fluidframework/datastore-definitions/internal";
12
- import {
13
- BaseSegment,
14
- IJSONSegment,
15
- ISegment,
16
- PropertySet,
17
- } from "@fluidframework/merge-tree/internal";
12
+ import type { IJSONSegment, ISegment, PropertySet } from "@fluidframework/merge-tree/internal";
13
+ import { BaseSegment } from "@fluidframework/merge-tree/internal";
18
14
 
19
15
  import { SharedSegmentSequence } from "./sequence.js";
20
16
 
@@ -3,21 +3,19 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import {
6
+ import type {
7
7
  IChannelAttributes,
8
8
  IFluidDataStoreRuntime,
9
9
  } from "@fluidframework/datastore-definitions/internal";
10
- import {
10
+ import type {
11
11
  IMergeTreeTextHelper,
12
12
  IRelativePosition,
13
13
  ISegment,
14
14
  ISegmentAction,
15
- Marker,
16
15
  PropertySet,
17
16
  ReferenceType,
18
- TextSegment,
19
- refHasTileLabel,
20
17
  } from "@fluidframework/merge-tree/internal";
18
+ import { Marker, TextSegment, refHasTileLabel } from "@fluidframework/merge-tree/internal";
21
19
 
22
20
  import { SharedSegmentSequence, type ISharedSegmentSequence } from "./sequence.js";
23
21
  import { SharedStringFactory } from "./sequenceFactory.js";