@fluidframework/sequence 2.91.0 → 2.93.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 (187) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/api-report/sequence.legacy.beta.api.md +2 -2
  4. package/dist/IntervalCollectionValues.d.ts +3 -3
  5. package/dist/IntervalCollectionValues.d.ts.map +1 -1
  6. package/dist/IntervalCollectionValues.js.map +1 -1
  7. package/dist/index.d.ts +10 -10
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/intervalCollection.d.ts +6 -5
  11. package/dist/intervalCollection.d.ts.map +1 -1
  12. package/dist/intervalCollection.js +10 -9
  13. package/dist/intervalCollection.js.map +1 -1
  14. package/dist/intervalCollectionMap.d.ts +4 -5
  15. package/dist/intervalCollectionMap.d.ts.map +1 -1
  16. package/dist/intervalCollectionMap.js +3 -3
  17. package/dist/intervalCollectionMap.js.map +1 -1
  18. package/dist/intervalCollectionMapInterfaces.d.ts +3 -3
  19. package/dist/intervalCollectionMapInterfaces.d.ts.map +1 -1
  20. package/dist/intervalCollectionMapInterfaces.js.map +1 -1
  21. package/dist/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  22. package/dist/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  23. package/dist/intervalIndex/endpointInRangeIndex.js.map +1 -1
  24. package/dist/intervalIndex/endpointIndex.d.ts +2 -2
  25. package/dist/intervalIndex/endpointIndex.d.ts.map +1 -1
  26. package/dist/intervalIndex/endpointIndex.js.map +1 -1
  27. package/dist/intervalIndex/index.d.ts +7 -7
  28. package/dist/intervalIndex/index.d.ts.map +1 -1
  29. package/dist/intervalIndex/index.js.map +1 -1
  30. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts +3 -3
  31. package/dist/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  32. package/dist/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  33. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
  34. package/dist/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  35. package/dist/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  36. package/dist/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  37. package/dist/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  38. package/dist/intervalIndex/startpointInRangeIndex.js.map +1 -1
  39. package/dist/intervalTree.d.ts +3 -2
  40. package/dist/intervalTree.d.ts.map +1 -1
  41. package/dist/intervalTree.js.map +1 -1
  42. package/dist/intervals/index.d.ts +2 -2
  43. package/dist/intervals/index.d.ts.map +1 -1
  44. package/dist/intervals/index.js.map +1 -1
  45. package/dist/intervals/intervalUtils.d.ts +2 -1
  46. package/dist/intervals/intervalUtils.d.ts.map +1 -1
  47. package/dist/intervals/intervalUtils.js +0 -1
  48. package/dist/intervals/intervalUtils.js.map +1 -1
  49. package/dist/intervals/sequenceInterval.d.ts +5 -3
  50. package/dist/intervals/sequenceInterval.d.ts.map +1 -1
  51. package/dist/intervals/sequenceInterval.js.map +1 -1
  52. package/dist/legacy.d.ts +1 -1
  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/public.d.ts +1 -1
  57. package/dist/revertibles.d.ts +5 -4
  58. package/dist/revertibles.d.ts.map +1 -1
  59. package/dist/revertibles.js +26 -20
  60. package/dist/revertibles.js.map +1 -1
  61. package/dist/sequence.d.ts +8 -6
  62. package/dist/sequence.d.ts.map +1 -1
  63. package/dist/sequence.js +9 -10
  64. package/dist/sequence.js.map +1 -1
  65. package/dist/sequenceDeltaEvent.d.ts +2 -1
  66. package/dist/sequenceDeltaEvent.d.ts.map +1 -1
  67. package/dist/sequenceDeltaEvent.js +2 -2
  68. package/dist/sequenceDeltaEvent.js.map +1 -1
  69. package/dist/sequenceFactory.d.ts +3 -2
  70. package/dist/sequenceFactory.d.ts.map +1 -1
  71. package/dist/sequenceFactory.js +3 -2
  72. package/dist/sequenceFactory.js.map +1 -1
  73. package/dist/sharedSequence.d.ts +3 -2
  74. package/dist/sharedSequence.d.ts.map +1 -1
  75. package/dist/sharedSequence.js.map +1 -1
  76. package/dist/sharedString.d.ts +3 -2
  77. package/dist/sharedString.d.ts.map +1 -1
  78. package/dist/sharedString.js.map +1 -1
  79. package/eslint.config.mts +16 -4
  80. package/internal.d.ts +1 -1
  81. package/legacy.d.ts +1 -1
  82. package/lib/IntervalCollectionValues.d.ts +3 -3
  83. package/lib/IntervalCollectionValues.d.ts.map +1 -1
  84. package/lib/IntervalCollectionValues.js +1 -1
  85. package/lib/IntervalCollectionValues.js.map +1 -1
  86. package/lib/index.d.ts +10 -10
  87. package/lib/index.d.ts.map +1 -1
  88. package/lib/index.js.map +1 -1
  89. package/lib/intervalCollection.d.ts +6 -5
  90. package/lib/intervalCollection.d.ts.map +1 -1
  91. package/lib/intervalCollection.js +10 -9
  92. package/lib/intervalCollection.js.map +1 -1
  93. package/lib/intervalCollectionMap.d.ts +4 -5
  94. package/lib/intervalCollectionMap.d.ts.map +1 -1
  95. package/lib/intervalCollectionMap.js +3 -3
  96. package/lib/intervalCollectionMap.js.map +1 -1
  97. package/lib/intervalCollectionMapInterfaces.d.ts +3 -3
  98. package/lib/intervalCollectionMapInterfaces.d.ts.map +1 -1
  99. package/lib/intervalCollectionMapInterfaces.js.map +1 -1
  100. package/lib/intervalIndex/endpointInRangeIndex.d.ts +2 -2
  101. package/lib/intervalIndex/endpointInRangeIndex.d.ts.map +1 -1
  102. package/lib/intervalIndex/endpointInRangeIndex.js +1 -1
  103. package/lib/intervalIndex/endpointInRangeIndex.js.map +1 -1
  104. package/lib/intervalIndex/endpointIndex.d.ts +2 -2
  105. package/lib/intervalIndex/endpointIndex.d.ts.map +1 -1
  106. package/lib/intervalIndex/endpointIndex.js.map +1 -1
  107. package/lib/intervalIndex/index.d.ts +7 -7
  108. package/lib/intervalIndex/index.d.ts.map +1 -1
  109. package/lib/intervalIndex/index.js.map +1 -1
  110. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts +3 -3
  111. package/lib/intervalIndex/overlappingIntervalsIndex.d.ts.map +1 -1
  112. package/lib/intervalIndex/overlappingIntervalsIndex.js +1 -1
  113. package/lib/intervalIndex/overlappingIntervalsIndex.js.map +1 -1
  114. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts +2 -2
  115. package/lib/intervalIndex/sequenceIntervalIndexes.d.ts.map +1 -1
  116. package/lib/intervalIndex/sequenceIntervalIndexes.js.map +1 -1
  117. package/lib/intervalIndex/startpointInRangeIndex.d.ts +2 -2
  118. package/lib/intervalIndex/startpointInRangeIndex.d.ts.map +1 -1
  119. package/lib/intervalIndex/startpointInRangeIndex.js +1 -1
  120. package/lib/intervalIndex/startpointInRangeIndex.js.map +1 -1
  121. package/lib/intervalTree.d.ts +3 -2
  122. package/lib/intervalTree.d.ts.map +1 -1
  123. package/lib/intervalTree.js +1 -1
  124. package/lib/intervalTree.js.map +1 -1
  125. package/lib/intervals/index.d.ts +2 -2
  126. package/lib/intervals/index.d.ts.map +1 -1
  127. package/lib/intervals/index.js.map +1 -1
  128. package/lib/intervals/intervalUtils.d.ts +2 -1
  129. package/lib/intervals/intervalUtils.d.ts.map +1 -1
  130. package/lib/intervals/intervalUtils.js +0 -1
  131. package/lib/intervals/intervalUtils.js.map +1 -1
  132. package/lib/intervals/sequenceInterval.d.ts +5 -3
  133. package/lib/intervals/sequenceInterval.d.ts.map +1 -1
  134. package/lib/intervals/sequenceInterval.js.map +1 -1
  135. package/lib/legacy.d.ts +1 -1
  136. package/lib/packageVersion.d.ts +1 -1
  137. package/lib/packageVersion.js +1 -1
  138. package/lib/packageVersion.js.map +1 -1
  139. package/lib/public.d.ts +1 -1
  140. package/lib/revertibles.d.ts +5 -4
  141. package/lib/revertibles.d.ts.map +1 -1
  142. package/lib/revertibles.js +26 -20
  143. package/lib/revertibles.js.map +1 -1
  144. package/lib/sequence.d.ts +8 -6
  145. package/lib/sequence.d.ts.map +1 -1
  146. package/lib/sequence.js +11 -12
  147. package/lib/sequence.js.map +1 -1
  148. package/lib/sequenceDeltaEvent.d.ts +2 -1
  149. package/lib/sequenceDeltaEvent.d.ts.map +1 -1
  150. package/lib/sequenceDeltaEvent.js +2 -2
  151. package/lib/sequenceDeltaEvent.js.map +1 -1
  152. package/lib/sequenceFactory.d.ts +3 -2
  153. package/lib/sequenceFactory.d.ts.map +1 -1
  154. package/lib/sequenceFactory.js +3 -2
  155. package/lib/sequenceFactory.js.map +1 -1
  156. package/lib/sharedSequence.d.ts +3 -2
  157. package/lib/sharedSequence.d.ts.map +1 -1
  158. package/lib/sharedSequence.js +1 -1
  159. package/lib/sharedSequence.js.map +1 -1
  160. package/lib/sharedString.d.ts +3 -2
  161. package/lib/sharedString.d.ts.map +1 -1
  162. package/lib/sharedString.js +1 -1
  163. package/lib/sharedString.js.map +1 -1
  164. package/lib/tsdoc-metadata.json +1 -1
  165. package/package.json +27 -32
  166. package/src/IntervalCollectionValues.ts +4 -6
  167. package/src/index.ts +25 -25
  168. package/src/intervalCollection.ts +25 -20
  169. package/src/intervalCollectionMap.ts +8 -8
  170. package/src/intervalCollectionMapInterfaces.ts +4 -4
  171. package/src/intervalIndex/endpointInRangeIndex.ts +7 -8
  172. package/src/intervalIndex/endpointIndex.ts +3 -2
  173. package/src/intervalIndex/index.ts +7 -7
  174. package/src/intervalIndex/overlappingIntervalsIndex.ts +8 -9
  175. package/src/intervalIndex/sequenceIntervalIndexes.ts +2 -2
  176. package/src/intervalIndex/startpointInRangeIndex.ts +7 -8
  177. package/src/intervalTree.ts +3 -3
  178. package/src/intervals/index.ts +6 -6
  179. package/src/intervals/intervalUtils.ts +2 -1
  180. package/src/intervals/sequenceInterval.ts +7 -6
  181. package/src/packageVersion.ts +1 -1
  182. package/src/revertibles.ts +35 -26
  183. package/src/sequence.ts +25 -26
  184. package/src/sequenceDeltaEvent.ts +6 -4
  185. package/src/sequenceFactory.ts +6 -4
  186. package/src/sharedSequence.ts +3 -7
  187. package/src/sharedString.ts +3 -5
@@ -6,12 +6,15 @@
6
6
  /* eslint-disable no-bitwise */
7
7
 
8
8
  import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
9
- import {
9
+ import type {
10
10
  LocalReferencePosition,
11
11
  MergeTreeDeltaOperationType,
12
12
  MergeTreeDeltaRevertible,
13
- MergeTreeDeltaType,
14
13
  PropertySet,
14
+ InteriorSequencePlace,
15
+ } from "@fluidframework/merge-tree/internal";
16
+ import {
17
+ MergeTreeDeltaType,
15
18
  ReferenceType,
16
19
  SlidingPreference,
17
20
  appendToMergeTreeDeltaRevertibles,
@@ -20,7 +23,6 @@ import {
20
23
  isMergeTreeDeltaRevertible,
21
24
  refTypeIncludesFlag,
22
25
  revertMergeTreeDeltaRevertibles,
23
- InteriorSequencePlace,
24
26
  Side,
25
27
  type ISegmentInternal,
26
28
  segmentIsRemoved,
@@ -28,9 +30,10 @@ import {
28
30
  type ISegment,
29
31
  } from "@fluidframework/merge-tree/internal";
30
32
 
31
- import { IntervalOpType, SequenceInterval, SequenceIntervalClass } from "./intervals/index.js";
32
- import { ISequenceDeltaRange, SequenceDeltaEvent } from "./sequenceDeltaEvent.js";
33
- import { ISharedString, SharedStringSegment } from "./sharedString.js";
33
+ import type { SequenceInterval } from "./intervals/index.js";
34
+ import { IntervalOpType, SequenceIntervalClass } from "./intervals/index.js";
35
+ import type { ISequenceDeltaRange, SequenceDeltaEvent } from "./sequenceDeltaEvent.js";
36
+ import type { ISharedString, SharedStringSegment } from "./sharedString.js";
34
37
 
35
38
  /**
36
39
  * Data for undoing edits on SharedStrings and Intervals.
@@ -321,7 +324,7 @@ export function appendSharedStringDeltaToRevertibles(
321
324
  };
322
325
 
323
326
  // add an interval for each startInterval, accounting for any corresponding endIntervals
324
- startIntervals.forEach(({ interval, offset }) => {
327
+ for (const { interval, offset } of startIntervals) {
325
328
  // find any corresponding end for this interval
326
329
  const endIntervalIndex = endIntervals.findIndex((end) => {
327
330
  return end.interval === interval;
@@ -338,16 +341,16 @@ export function appendSharedStringDeltaToRevertibles(
338
341
  startOffset: offset,
339
342
  endOffset,
340
343
  });
341
- });
344
+ }
342
345
 
343
346
  // add any remaining endIntervals that aren't matched with a startInterval
344
- endIntervals.forEach(({ interval, offset }) => {
347
+ for (const { interval, offset } of endIntervals) {
345
348
  revertible.intervals.push({
346
349
  intervalId: interval.getIntervalId(),
347
350
  label: interval.start.properties?.referenceRangeLabels[0],
348
351
  endOffset: offset,
349
352
  });
350
- });
353
+ }
351
354
 
352
355
  revertibles.push(revertible);
353
356
  return;
@@ -375,14 +378,14 @@ export function discardSharedStringRevertibles(
375
378
  sharedString: ISharedString,
376
379
  revertibles: SharedStringRevertible[],
377
380
  ) {
378
- revertibles.forEach((r) => {
381
+ for (const r of revertibles) {
379
382
  if (isMergeTreeDeltaRevertible(r)) {
380
383
  discardMergeTreeDeltaRevertible([r]);
381
384
  } else if (r.event === IntervalOpType.CHANGE || r.event === IntervalOpType.DELETE) {
382
385
  sharedString.removeLocalReferencePosition(r.start);
383
386
  sharedString.removeLocalReferencePosition(r.end);
384
387
  }
385
- });
388
+ }
386
389
  }
387
390
 
388
391
  function getSlidePosition(
@@ -478,11 +481,11 @@ function revertLocalDelete(
478
481
  props,
479
482
  });
480
483
 
481
- idMap.forEach((newId, oldId) => {
484
+ for (const [oldId, newId] of idMap.entries()) {
482
485
  if (intervalId === newId) {
483
486
  idMap.set(oldId, getUpdatedIdFromInterval(int));
484
487
  }
485
- });
488
+ }
486
489
  idMap.set(intervalId, int.getIntervalId());
487
490
  }
488
491
 
@@ -587,9 +590,9 @@ function revertLocalSequenceRemove(
587
590
  const saveSegments = (event: SequenceDeltaEvent) => {
588
591
  if (event.ranges.length > 0) {
589
592
  let length = 0;
590
- event.ranges.forEach((range) => {
593
+ for (const range of event.ranges) {
591
594
  length += range.segment.cachedLength;
592
- });
595
+ }
593
596
  restoredRanges.addOrUpdate({
594
597
  ranges: event.ranges,
595
598
  length,
@@ -601,7 +604,7 @@ function revertLocalSequenceRemove(
601
604
  revertMergeTreeDeltaRevertibles(sharedString, [revertible.mergeTreeRevertible]);
602
605
  sharedString.off("sequenceDelta", saveSegments);
603
606
 
604
- revertible.intervals.forEach((intervalInfo) => {
607
+ for (const intervalInfo of revertible.intervals) {
605
608
  const intervalCollection = sharedString.getIntervalCollection(intervalInfo.label);
606
609
  const intervalId = getUpdatedId(intervalInfo.intervalId);
607
610
  const interval = intervalCollection.getIntervalById(intervalId);
@@ -627,10 +630,10 @@ function revertLocalSequenceRemove(
627
630
  });
628
631
  }
629
632
  }
630
- });
633
+ }
631
634
 
632
635
  // fix up the local references used by delete and change revertibles
633
- revertible.revertibleRefs.forEach((revertibleRef) => {
636
+ for (const revertibleRef of revertible.revertibleRefs) {
634
637
  assert(
635
638
  revertibleRef.revertible.event === IntervalOpType.CHANGE ||
636
639
  revertibleRef.revertible.event === IntervalOpType.DELETE,
@@ -660,7 +663,7 @@ function revertLocalSequenceRemove(
660
663
  revertibleRef.revertible.end = newRef;
661
664
  }
662
665
  }
663
- });
666
+ }
664
667
  }
665
668
 
666
669
  /**
@@ -677,23 +680,29 @@ export function revertSharedStringRevertibles(
677
680
  if ("event" in r) {
678
681
  const event = r.event;
679
682
  switch (event) {
680
- case IntervalOpType.ADD:
683
+ case IntervalOpType.ADD: {
681
684
  revertLocalAdd(sharedString, r);
682
685
  break;
683
- case IntervalOpType.DELETE:
686
+ }
687
+ case IntervalOpType.DELETE: {
684
688
  revertLocalDelete(sharedString, r);
685
689
  break;
686
- case IntervalOpType.CHANGE:
690
+ }
691
+ case IntervalOpType.CHANGE: {
687
692
  revertLocalChange(sharedString, r);
688
693
  break;
689
- case IntervalOpType.PROPERTY_CHANGED:
694
+ }
695
+ case IntervalOpType.PROPERTY_CHANGED: {
690
696
  revertLocalPropertyChanged(sharedString, r);
691
697
  break;
692
- case IntervalOpType.POSITION_REMOVE:
698
+ }
699
+ case IntervalOpType.POSITION_REMOVE: {
693
700
  revertLocalSequenceRemove(sharedString, r);
694
701
  break;
695
- default:
702
+ }
703
+ default: {
696
704
  unreachableCase(event);
705
+ }
697
706
  }
698
707
  } else {
699
708
  revertMergeTreeDeltaRevertibles(sharedString, [r]);
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";