@fluidframework/merge-tree 2.30.0 → 2.31.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 (308) hide show
  1. package/CHANGELOG.md +403 -399
  2. package/api-report/merge-tree.legacy.alpha.api.md +1 -0
  3. package/dist/MergeTreeTextHelper.d.ts +9 -3
  4. package/dist/MergeTreeTextHelper.d.ts.map +1 -1
  5. package/dist/MergeTreeTextHelper.js +5 -5
  6. package/dist/MergeTreeTextHelper.js.map +1 -1
  7. package/dist/client.d.ts +7 -13
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +136 -110
  10. package/dist/client.js.map +1 -1
  11. package/dist/endOfTreeSegment.d.ts +12 -8
  12. package/dist/endOfTreeSegment.d.ts.map +1 -1
  13. package/dist/endOfTreeSegment.js +2 -4
  14. package/dist/endOfTreeSegment.js.map +1 -1
  15. package/dist/index.d.ts +6 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/mergeTree.d.ts +37 -23
  20. package/dist/mergeTree.d.ts.map +1 -1
  21. package/dist/mergeTree.js +400 -483
  22. package/dist/mergeTree.js.map +1 -1
  23. package/dist/mergeTreeDeltaCallback.d.ts +4 -8
  24. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  25. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  26. package/dist/mergeTreeNodes.d.ts +32 -10
  27. package/dist/mergeTreeNodes.d.ts.map +1 -1
  28. package/dist/mergeTreeNodes.js +43 -28
  29. package/dist/mergeTreeNodes.js.map +1 -1
  30. package/dist/partialLengths.d.ts +2 -2
  31. package/dist/partialLengths.d.ts.map +1 -1
  32. package/dist/partialLengths.js +181 -109
  33. package/dist/partialLengths.js.map +1 -1
  34. package/dist/perspective.d.ts +8 -27
  35. package/dist/perspective.d.ts.map +1 -1
  36. package/dist/perspective.js +7 -67
  37. package/dist/perspective.js.map +1 -1
  38. package/dist/revertibles.d.ts.map +1 -1
  39. package/dist/revertibles.js +2 -2
  40. package/dist/revertibles.js.map +1 -1
  41. package/dist/segmentInfos.d.ts +20 -106
  42. package/dist/segmentInfos.d.ts.map +1 -1
  43. package/dist/segmentInfos.js +28 -42
  44. package/dist/segmentInfos.js.map +1 -1
  45. package/dist/segmentPropertiesManager.d.ts +1 -14
  46. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  47. package/dist/segmentPropertiesManager.js +3 -17
  48. package/dist/segmentPropertiesManager.js.map +1 -1
  49. package/dist/snapshotLoader.d.ts.map +1 -1
  50. package/dist/snapshotLoader.js +62 -19
  51. package/dist/snapshotLoader.js.map +1 -1
  52. package/dist/snapshotV1.d.ts.map +1 -1
  53. package/dist/snapshotV1.js +55 -24
  54. package/dist/snapshotV1.js.map +1 -1
  55. package/dist/snapshotlegacy.d.ts.map +1 -1
  56. package/dist/snapshotlegacy.js +6 -9
  57. package/dist/snapshotlegacy.js.map +1 -1
  58. package/dist/stamps.d.ts +1 -1
  59. package/dist/stamps.js +1 -1
  60. package/dist/stamps.js.map +1 -1
  61. package/dist/test/Insertion.perf.spec.js +6 -51
  62. package/dist/test/Insertion.perf.spec.js.map +1 -1
  63. package/dist/test/PartialLengths.perf.spec.js +18 -25
  64. package/dist/test/PartialLengths.perf.spec.js.map +1 -1
  65. package/dist/test/Removal.perf.spec.js +13 -41
  66. package/dist/test/Removal.perf.spec.js.map +1 -1
  67. package/dist/test/beastTest.spec.d.ts.map +1 -1
  68. package/dist/test/beastTest.spec.js +41 -66
  69. package/dist/test/beastTest.spec.js.map +1 -1
  70. package/dist/test/client.annotateMarker.spec.js +1 -11
  71. package/dist/test/client.annotateMarker.spec.js.map +1 -1
  72. package/dist/test/client.applyMsg.spec.js +14 -14
  73. package/dist/test/client.applyMsg.spec.js.map +1 -1
  74. package/dist/test/client.getPosition.spec.js +1 -1
  75. package/dist/test/client.getPosition.spec.js.map +1 -1
  76. package/dist/test/client.localReference.spec.js +1 -1
  77. package/dist/test/client.localReference.spec.js.map +1 -1
  78. package/dist/test/client.rollback.spec.js +49 -58
  79. package/dist/test/client.rollback.spec.js.map +1 -1
  80. package/dist/test/client.rollbackFarm.spec.js +1 -1
  81. package/dist/test/client.rollbackFarm.spec.js.map +1 -1
  82. package/dist/test/client.searchForMarker.spec.js +4 -21
  83. package/dist/test/client.searchForMarker.spec.js.map +1 -1
  84. package/dist/test/index.d.ts +2 -2
  85. package/dist/test/index.d.ts.map +1 -1
  86. package/dist/test/index.js +2 -6
  87. package/dist/test/index.js.map +1 -1
  88. package/dist/test/mergeTree.annotate.deltaCallback.spec.js +14 -59
  89. package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  90. package/dist/test/mergeTree.annotate.spec.js +47 -63
  91. package/dist/test/mergeTree.annotate.spec.js.map +1 -1
  92. package/dist/test/mergeTree.insert.deltaCallback.spec.js +9 -62
  93. package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  94. package/dist/test/mergeTree.insertingWalk.spec.js +59 -125
  95. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  96. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +12 -93
  97. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  98. package/dist/test/mergeTree.markRangeRemoved.spec.js +10 -7
  99. package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  100. package/dist/test/mergeTree.walk.spec.js +2 -14
  101. package/dist/test/mergeTree.walk.spec.js.map +1 -1
  102. package/dist/test/mergeTreeOperationRunner.js +2 -2
  103. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  104. package/dist/test/obliterate.concurrent.spec.js +18 -23
  105. package/dist/test/obliterate.concurrent.spec.js.map +1 -1
  106. package/dist/test/obliterate.partialLength.spec.js +166 -136
  107. package/dist/test/obliterate.partialLength.spec.js.map +1 -1
  108. package/dist/test/obliterate.spec.js +16 -126
  109. package/dist/test/obliterate.spec.js.map +1 -1
  110. package/dist/test/partialLength.spec.js +28 -196
  111. package/dist/test/partialLength.spec.js.map +1 -1
  112. package/dist/test/perspective.spec.js +34 -0
  113. package/dist/test/perspective.spec.js.map +1 -1
  114. package/dist/test/propertyManager.spec.js +1 -1
  115. package/dist/test/propertyManager.spec.js.map +1 -1
  116. package/dist/test/resetPendingSegmentsToOp.spec.js +0 -2
  117. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  118. package/dist/test/segmentGroupCollection.spec.js +10 -4
  119. package/dist/test/segmentGroupCollection.spec.js.map +1 -1
  120. package/dist/test/testClient.d.ts +1 -0
  121. package/dist/test/testClient.d.ts.map +1 -1
  122. package/dist/test/testClient.js +16 -26
  123. package/dist/test/testClient.js.map +1 -1
  124. package/dist/test/testClientLogger.d.ts.map +1 -1
  125. package/dist/test/testClientLogger.js +3 -10
  126. package/dist/test/testClientLogger.js.map +1 -1
  127. package/dist/test/testServer.d.ts +2 -1
  128. package/dist/test/testServer.d.ts.map +1 -1
  129. package/dist/test/testServer.js +7 -5
  130. package/dist/test/testServer.js.map +1 -1
  131. package/dist/test/testUtils.d.ts +36 -56
  132. package/dist/test/testUtils.d.ts.map +1 -1
  133. package/dist/test/testUtils.js +68 -77
  134. package/dist/test/testUtils.js.map +1 -1
  135. package/dist/test/text.d.ts +2 -2
  136. package/dist/test/text.d.ts.map +1 -1
  137. package/dist/test/text.js +5 -2
  138. package/dist/test/text.js.map +1 -1
  139. package/dist/textSegment.d.ts +0 -6
  140. package/dist/textSegment.d.ts.map +1 -1
  141. package/dist/textSegment.js.map +1 -1
  142. package/dist/zamboni.d.ts.map +1 -1
  143. package/dist/zamboni.js +53 -26
  144. package/dist/zamboni.js.map +1 -1
  145. package/lib/MergeTreeTextHelper.d.ts +9 -3
  146. package/lib/MergeTreeTextHelper.d.ts.map +1 -1
  147. package/lib/MergeTreeTextHelper.js +5 -5
  148. package/lib/MergeTreeTextHelper.js.map +1 -1
  149. package/lib/client.d.ts +7 -13
  150. package/lib/client.d.ts.map +1 -1
  151. package/lib/client.js +117 -116
  152. package/lib/client.js.map +1 -1
  153. package/lib/endOfTreeSegment.d.ts +12 -8
  154. package/lib/endOfTreeSegment.d.ts.map +1 -1
  155. package/lib/endOfTreeSegment.js +2 -4
  156. package/lib/endOfTreeSegment.js.map +1 -1
  157. package/lib/index.d.ts +6 -3
  158. package/lib/index.d.ts.map +1 -1
  159. package/lib/index.js +1 -1
  160. package/lib/index.js.map +1 -1
  161. package/lib/mergeTree.d.ts +37 -23
  162. package/lib/mergeTree.d.ts.map +1 -1
  163. package/lib/mergeTree.js +381 -488
  164. package/lib/mergeTree.js.map +1 -1
  165. package/lib/mergeTreeDeltaCallback.d.ts +4 -8
  166. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  167. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  168. package/lib/mergeTreeNodes.d.ts +32 -10
  169. package/lib/mergeTreeNodes.d.ts.map +1 -1
  170. package/lib/mergeTreeNodes.js +42 -29
  171. package/lib/mergeTreeNodes.js.map +1 -1
  172. package/lib/partialLengths.d.ts +2 -2
  173. package/lib/partialLengths.d.ts.map +1 -1
  174. package/lib/partialLengths.js +160 -111
  175. package/lib/partialLengths.js.map +1 -1
  176. package/lib/perspective.d.ts +8 -27
  177. package/lib/perspective.d.ts.map +1 -1
  178. package/lib/perspective.js +8 -68
  179. package/lib/perspective.js.map +1 -1
  180. package/lib/revertibles.d.ts.map +1 -1
  181. package/lib/revertibles.js +2 -2
  182. package/lib/revertibles.js.map +1 -1
  183. package/lib/segmentInfos.d.ts +20 -106
  184. package/lib/segmentInfos.d.ts.map +1 -1
  185. package/lib/segmentInfos.js +26 -37
  186. package/lib/segmentInfos.js.map +1 -1
  187. package/lib/segmentPropertiesManager.d.ts +1 -14
  188. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  189. package/lib/segmentPropertiesManager.js +2 -16
  190. package/lib/segmentPropertiesManager.js.map +1 -1
  191. package/lib/snapshotLoader.d.ts.map +1 -1
  192. package/lib/snapshotLoader.js +39 -19
  193. package/lib/snapshotLoader.js.map +1 -1
  194. package/lib/snapshotV1.d.ts.map +1 -1
  195. package/lib/snapshotV1.js +34 -26
  196. package/lib/snapshotV1.js.map +1 -1
  197. package/lib/snapshotlegacy.d.ts.map +1 -1
  198. package/lib/snapshotlegacy.js +7 -10
  199. package/lib/snapshotlegacy.js.map +1 -1
  200. package/lib/stamps.d.ts +1 -1
  201. package/lib/stamps.js +1 -1
  202. package/lib/stamps.js.map +1 -1
  203. package/lib/test/Insertion.perf.spec.js +6 -51
  204. package/lib/test/Insertion.perf.spec.js.map +1 -1
  205. package/lib/test/PartialLengths.perf.spec.js +18 -25
  206. package/lib/test/PartialLengths.perf.spec.js.map +1 -1
  207. package/lib/test/Removal.perf.spec.js +13 -41
  208. package/lib/test/Removal.perf.spec.js.map +1 -1
  209. package/lib/test/beastTest.spec.d.ts.map +1 -1
  210. package/lib/test/beastTest.spec.js +42 -67
  211. package/lib/test/beastTest.spec.js.map +1 -1
  212. package/lib/test/client.annotateMarker.spec.js +1 -11
  213. package/lib/test/client.annotateMarker.spec.js.map +1 -1
  214. package/lib/test/client.applyMsg.spec.js +14 -14
  215. package/lib/test/client.applyMsg.spec.js.map +1 -1
  216. package/lib/test/client.getPosition.spec.js +1 -1
  217. package/lib/test/client.getPosition.spec.js.map +1 -1
  218. package/lib/test/client.localReference.spec.js +1 -1
  219. package/lib/test/client.localReference.spec.js.map +1 -1
  220. package/lib/test/client.rollback.spec.js +50 -59
  221. package/lib/test/client.rollback.spec.js.map +1 -1
  222. package/lib/test/client.rollbackFarm.spec.js +1 -1
  223. package/lib/test/client.rollbackFarm.spec.js.map +1 -1
  224. package/lib/test/client.searchForMarker.spec.js +4 -21
  225. package/lib/test/client.searchForMarker.spec.js.map +1 -1
  226. package/lib/test/index.d.ts +2 -2
  227. package/lib/test/index.d.ts.map +1 -1
  228. package/lib/test/index.js +1 -1
  229. package/lib/test/index.js.map +1 -1
  230. package/lib/test/mergeTree.annotate.deltaCallback.spec.js +15 -60
  231. package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  232. package/lib/test/mergeTree.annotate.spec.js +48 -64
  233. package/lib/test/mergeTree.annotate.spec.js.map +1 -1
  234. package/lib/test/mergeTree.insert.deltaCallback.spec.js +10 -63
  235. package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  236. package/lib/test/mergeTree.insertingWalk.spec.js +61 -127
  237. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
  238. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +13 -94
  239. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  240. package/lib/test/mergeTree.markRangeRemoved.spec.js +10 -7
  241. package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  242. package/lib/test/mergeTree.walk.spec.js +2 -14
  243. package/lib/test/mergeTree.walk.spec.js.map +1 -1
  244. package/lib/test/mergeTreeOperationRunner.js +3 -3
  245. package/lib/test/mergeTreeOperationRunner.js.map +1 -1
  246. package/lib/test/obliterate.concurrent.spec.js +18 -23
  247. package/lib/test/obliterate.concurrent.spec.js.map +1 -1
  248. package/lib/test/obliterate.partialLength.spec.js +167 -137
  249. package/lib/test/obliterate.partialLength.spec.js.map +1 -1
  250. package/lib/test/obliterate.spec.js +17 -127
  251. package/lib/test/obliterate.spec.js.map +1 -1
  252. package/lib/test/partialLength.spec.js +29 -197
  253. package/lib/test/partialLength.spec.js.map +1 -1
  254. package/lib/test/perspective.spec.js +34 -0
  255. package/lib/test/perspective.spec.js.map +1 -1
  256. package/lib/test/propertyManager.spec.js +2 -2
  257. package/lib/test/propertyManager.spec.js.map +1 -1
  258. package/lib/test/resetPendingSegmentsToOp.spec.js +0 -2
  259. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  260. package/lib/test/segmentGroupCollection.spec.js +10 -4
  261. package/lib/test/segmentGroupCollection.spec.js.map +1 -1
  262. package/lib/test/testClient.d.ts +1 -0
  263. package/lib/test/testClient.d.ts.map +1 -1
  264. package/lib/test/testClient.js +18 -28
  265. package/lib/test/testClient.js.map +1 -1
  266. package/lib/test/testClientLogger.d.ts.map +1 -1
  267. package/lib/test/testClientLogger.js +3 -10
  268. package/lib/test/testClientLogger.js.map +1 -1
  269. package/lib/test/testServer.d.ts +2 -1
  270. package/lib/test/testServer.d.ts.map +1 -1
  271. package/lib/test/testServer.js +7 -5
  272. package/lib/test/testServer.js.map +1 -1
  273. package/lib/test/testUtils.d.ts +36 -56
  274. package/lib/test/testUtils.d.ts.map +1 -1
  275. package/lib/test/testUtils.js +66 -48
  276. package/lib/test/testUtils.js.map +1 -1
  277. package/lib/test/text.d.ts +2 -2
  278. package/lib/test/text.d.ts.map +1 -1
  279. package/lib/test/text.js +6 -3
  280. package/lib/test/text.js.map +1 -1
  281. package/lib/textSegment.d.ts +0 -6
  282. package/lib/textSegment.d.ts.map +1 -1
  283. package/lib/textSegment.js.map +1 -1
  284. package/lib/tsdoc-metadata.json +1 -1
  285. package/lib/zamboni.d.ts.map +1 -1
  286. package/lib/zamboni.js +32 -28
  287. package/lib/zamboni.js.map +1 -1
  288. package/package.json +17 -20
  289. package/src/MergeTreeTextHelper.ts +17 -12
  290. package/src/client.ts +141 -197
  291. package/src/endOfTreeSegment.ts +11 -8
  292. package/src/index.ts +4 -3
  293. package/src/mergeTree.ts +482 -633
  294. package/src/mergeTreeDeltaCallback.ts +4 -8
  295. package/src/mergeTreeNodes.ts +66 -45
  296. package/src/partialLengths.ts +181 -137
  297. package/src/perspective.ts +17 -95
  298. package/src/revertibles.ts +2 -7
  299. package/src/segmentInfos.ts +48 -141
  300. package/src/segmentPropertiesManager.ts +2 -16
  301. package/src/snapshotLoader.ts +62 -30
  302. package/src/snapshotV1.ts +36 -28
  303. package/src/snapshotlegacy.ts +7 -16
  304. package/src/stamps.ts +1 -1
  305. package/src/textSegment.ts +0 -13
  306. package/src/zamboni.ts +38 -32
  307. package/tsconfig.json +1 -0
  308. package/prettier.config.cjs +0 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @fluidframework/merge-tree
2
2
 
3
+ ## 2.31.0
4
+
5
+ Dependency updates only.
6
+
3
7
  ## 2.30.0
4
8
 
5
9
  Dependency updates only.
@@ -20,43 +24,43 @@ Dependency updates only.
20
24
 
21
25
  ### Minor Changes
22
26
 
23
- - Previously deprecated Merge-Tree and SharedString ISegment members have been removed ([#23448](https://github.com/microsoft/FluidFramework/pull/23448)) [e98574fc62](https://github.com/microsoft/FluidFramework/commit/e98574fc625bea7ebce6d79284f32556aaec1c50)
27
+ - Previously deprecated Merge-Tree and SharedString ISegment members have been removed ([#23448](https://github.com/microsoft/FluidFramework/pull/23448)) [e98574fc62](https://github.com/microsoft/FluidFramework/commit/e98574fc625bea7ebce6d79284f32556aaec1c50)
24
28
 
25
- The current `ISegment` interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption.
26
- [In Fluid Framework release 2.12.0 these properties and associated types were deprecated.](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-merge-tree-and-sharedstring-isegment-deprecations-23323)
29
+ The current `ISegment` interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption.
30
+ [In Fluid Framework release 2.12.0 these properties and associated types were deprecated.](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-merge-tree-and-sharedstring-isegment-deprecations-23323)
27
31
 
28
- The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function `segmentIsRemoved(segment: ISegment): boolean`.
32
+ The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function `segmentIsRemoved(segment: ISegment): boolean`.
29
33
 
30
- For example, checking if a segment is not removed would change as follows:
34
+ For example, checking if a segment is not removed would change as follows:
31
35
 
32
- ```diff
33
- - if(segment.removedSeq === undefined){
34
- + if(!segmentIsRemoved(segment)){
35
- ```
36
+ ```diff
37
+ - if(segment.removedSeq === undefined){
38
+ + if(!segmentIsRemoved(segment)){
39
+ ```
36
40
 
37
- The following properties are removed from `ISegment` and its implementations:
41
+ The following properties are removed from `ISegment` and its implementations:
38
42
 
39
- - clientId
40
- - index
41
- - localMovedSeq
42
- - localRefs
43
- - localRemovedSeq
44
- - localSeq
45
- - movedClientsIds
46
- - movedSeq
47
- - movedSeqs
48
- - ordinal
49
- - removedClientIds
50
- - removedSeq
51
- - seq
52
- - wasMovedOnInsert
43
+ - clientId
44
+ - index
45
+ - localMovedSeq
46
+ - localRefs
47
+ - localRemovedSeq
48
+ - localSeq
49
+ - movedClientsIds
50
+ - movedSeq
51
+ - movedSeqs
52
+ - ordinal
53
+ - removedClientIds
54
+ - removedSeq
55
+ - seq
56
+ - wasMovedOnInsert
53
57
 
54
- Additionally, the following types are also removed:
58
+ Additionally, the following types are also removed:
55
59
 
56
- - IMergeNodeCommon
57
- - IMoveInfo
58
- - IRemovalInfo
59
- - LocalReferenceCollection
60
+ - IMergeNodeCommon
61
+ - IMoveInfo
62
+ - IRemovalInfo
63
+ - LocalReferenceCollection
60
64
 
61
65
  ## 2.13.0
62
66
 
@@ -66,42 +70,42 @@ Dependency updates only.
66
70
 
67
71
  ### Minor Changes
68
72
 
69
- - Merge-Tree and SharedString ISegment Deprecations ([#23323](https://github.com/microsoft/FluidFramework/pull/23323)) [e8762e37cd](https://github.com/microsoft/FluidFramework/commit/e8762e37cd5edbad36b78b5a40d62a730522e18f)
73
+ - Merge-Tree and SharedString ISegment Deprecations ([#23323](https://github.com/microsoft/FluidFramework/pull/23323)) [e8762e37cd](https://github.com/microsoft/FluidFramework/commit/e8762e37cd5edbad36b78b5a40d62a730522e18f)
70
74
 
71
- The current ISegment interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption.
75
+ The current ISegment interface over-exposes a number of properties which do not have an external use case, and any external usage could result in damage to the underlying merge-tree including data corruption.
72
76
 
73
- The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function `segmentIsRemoved(segment: ISegment): boolean`.
77
+ The only use case that will continue to be supported is determining if a segment is removed. For this purpose we've added the free function `segmentIsRemoved(segment: ISegment): boolean`.
74
78
 
75
- For example, checking if a segment is not removed would change as follows:
79
+ For example, checking if a segment is not removed would change as follows:
76
80
 
77
- ```diff
78
- - if(segment.removedSeq === undefined){
79
- + if(!segmentIsRemoved(segment)){
80
- ```
81
+ ```diff
82
+ - if(segment.removedSeq === undefined){
83
+ + if(!segmentIsRemoved(segment)){
84
+ ```
81
85
 
82
- The following properties are deprecated on ISegment and its implementations:
86
+ The following properties are deprecated on ISegment and its implementations:
83
87
 
84
- - clientId
85
- - index
86
- - localMovedSeq
87
- - localRefs
88
- - localRemovedSeq
89
- - localSeq
90
- - movedClientsIds
91
- - movedSeq
92
- - movedSeqs
93
- - ordinal
94
- - removedClientIds
95
- - removedSeq
96
- - seq
97
- - wasMovedOnInsert
88
+ - clientId
89
+ - index
90
+ - localMovedSeq
91
+ - localRefs
92
+ - localRemovedSeq
93
+ - localSeq
94
+ - movedClientsIds
95
+ - movedSeq
96
+ - movedSeqs
97
+ - ordinal
98
+ - removedClientIds
99
+ - removedSeq
100
+ - seq
101
+ - wasMovedOnInsert
98
102
 
99
- Additionally, the following types are also deprecated, and will become internal (i.e. users of the Fluid Framework will not have access to them):
103
+ Additionally, the following types are also deprecated, and will become internal (i.e. users of the Fluid Framework will not have access to them):
100
104
 
101
- - IMergeNodeCommon
102
- - IMoveInfo
103
- - IRemovalInfo
104
- - LocalReferenceCollection
105
+ - IMergeNodeCommon
106
+ - IMoveInfo
107
+ - IRemovalInfo
108
+ - LocalReferenceCollection
105
109
 
106
110
  ## 2.11.0
107
111
 
@@ -111,133 +115,133 @@ Dependency updates only.
111
115
 
112
116
  ### Minor Changes
113
117
 
114
- - Unsupported merge-tree types and related exposed internals have been removed ([#22696](https://github.com/microsoft/FluidFramework/pull/22696)) [7a032533a6](https://github.com/microsoft/FluidFramework/commit/7a032533a6ee6a6f76fe154ef65dfa33f87e5a7b)
118
+ - Unsupported merge-tree types and related exposed internals have been removed ([#22696](https://github.com/microsoft/FluidFramework/pull/22696)) [7a032533a6](https://github.com/microsoft/FluidFramework/commit/7a032533a6ee6a6f76fe154ef65dfa33f87e5a7b)
115
119
 
116
- As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers.
120
+ As part of ongoing improvements, several internal types and related APIs have been removed. These types are unnecessary for any supported scenarios and could lead to errors if used. Since directly using these types would likely result in errors, these changes are not likely to impact any Fluid Framework consumers.
117
121
 
118
- Removed types:
122
+ Removed types:
119
123
 
120
- - IMergeTreeTextHelper
121
- - MergeNode
122
- - ObliterateInfo
123
- - PropertiesManager
124
- - PropertiesRollback
125
- - SegmentGroup
126
- - SegmentGroupCollection
124
+ - IMergeTreeTextHelper
125
+ - MergeNode
126
+ - ObliterateInfo
127
+ - PropertiesManager
128
+ - PropertiesRollback
129
+ - SegmentGroup
130
+ - SegmentGroupCollection
127
131
 
128
- In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`.
132
+ In addition to removing the above types, they are no longer exposed through the following interfaces and their implementations: `ISegment`, `ReferencePosition`, and `ISerializableInterval`.
129
133
 
130
- Removed functions:
134
+ Removed functions:
131
135
 
132
- - addProperties
133
- - ack
136
+ - addProperties
137
+ - ack
134
138
 
135
- Removed properties:
139
+ Removed properties:
136
140
 
137
- - propertyManager
138
- - segmentGroups
141
+ - propertyManager
142
+ - segmentGroups
139
143
 
140
- The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0:
141
- [Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md)
144
+ The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.2.0:
145
+ [Fluid Framework v2.2.0](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.2.0.md)
142
146
 
143
- - SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526)
147
+ - SharedString DDS annotateAdjustRange ([#22751](https://github.com/microsoft/FluidFramework/pull/22751)) [d54b9dde14](https://github.com/microsoft/FluidFramework/commit/d54b9dde14e9e0e5eb7999db8ebf6da98fdfb526)
144
148
 
145
- This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications.
149
+ This update introduces a new feature to the `SharedString` DDS, allowing for the adjustment of properties over a specified range. The `annotateAdjustRange` method enables users to apply adjustments to properties within a given range, providing more flexibility and control over property modifications.
146
150
 
147
- An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments.
151
+ An adjustment is a modification applied to a property value within a specified range. Adjustments can be used to increment or decrement property values dynamically. They are particularly useful in scenarios where property values need to be updated based on user interactions or other events. For example, in a rich text editor, adjustments can be used for modifying indentation levels or font sizes, where multiple users could apply differing numerical adjustments.
148
152
 
149
- ### Key Features and Use Cases:
153
+ ### Key Features and Use Cases:
150
154
 
151
- - **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors.
152
- - **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously.
153
- - **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions.
155
+ - **Adjustments with Constraints**: Adjustments can include optional minimum and maximum constraints to ensure the final value falls within specified bounds. This is particularly useful for maintaining consistent formatting in rich text editors.
156
+ - **Consistent Property Changes**: The feature ensures that property changes are consistent, managing both local and remote changes effectively. This is essential for collaborative rich text editing where multiple users may be making adjustments simultaneously.
157
+ - **Rich Text Formatting**: Adjustments can be used to modify text properties such as font size, indentation, or other formatting attributes dynamically based on user actions.
154
158
 
155
- ### Configuration and Compatibility Requirements:
159
+ ### Configuration and Compatibility Requirements:
156
160
 
157
- This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default.
161
+ This feature is only available when the configuration `Fluid.Sequence.mergeTreeEnableAnnotateAdjust` is set to `true`. Additionally, all collaborating clients must have this feature enabled to use it. If any client does not have this feature enabled, it will lead to the client exiting collaboration. A future major version of Fluid will enable this feature by default.
158
162
 
159
- ### Usage Example:
163
+ ### Usage Example:
160
164
 
161
- ```typescript
162
- sharedString.annotateAdjustRange(start, end, {
163
- key: { value: 5, min: 0, max: 10 },
164
- });
165
- ```
165
+ ```typescript
166
+ sharedString.annotateAdjustRange(start, end, {
167
+ key: { value: 5, min: 0, max: 10 },
168
+ });
169
+ ```
166
170
 
167
- - MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3)
171
+ - MergeTree `Client` Legacy API Removed ([#22697](https://github.com/microsoft/FluidFramework/pull/22697)) [2aa0b5e794](https://github.com/microsoft/FluidFramework/commit/2aa0b5e7941efe52386782595f96ff847c786fc3)
168
172
 
169
- The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed.
173
+ The `Client` class in the merge-tree package has been removed. Types that directly or indirectly expose the merge-tree `Client` class have also been removed.
170
174
 
171
- The removed types were not meant to be used directly, and direct usage was not supported:
175
+ The removed types were not meant to be used directly, and direct usage was not supported:
172
176
 
173
- - AttributionPolicy
174
- - IClientEvents
175
- - IMergeTreeAttributionOptions
176
- - SharedSegmentSequence
177
- - SharedStringClass
177
+ - AttributionPolicy
178
+ - IClientEvents
179
+ - IMergeTreeAttributionOptions
180
+ - SharedSegmentSequence
181
+ - SharedStringClass
178
182
 
179
- Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types:
183
+ Some classes that referenced the `Client` class have been transitioned to interfaces. Direct instantiation of these classes was not supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types:
180
184
 
181
- - SequenceInterval
182
- - SequenceEvent
183
- - SequenceDeltaEvent
184
- - SequenceMaintenanceEvent
185
+ - SequenceInterval
186
+ - SequenceEvent
187
+ - SequenceDeltaEvent
188
+ - SequenceMaintenanceEvent
185
189
 
186
- The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0:
187
- [Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629)
190
+ The initial deprecations of the now changed or removed types were announced in Fluid Framework v2.4.0:
191
+ [Several MergeTree Client Legacy APIs are now deprecated](https://github.com/microsoft/FluidFramework/blob/main/RELEASE_NOTES/2.4.0.md#several-mergetree-client-legacy-apis-are-now-deprecated-22629)
188
192
 
189
193
  ## 2.5.0
190
194
 
191
195
  ### Minor Changes
192
196
 
193
- - Compilation no longer fails when building with TypeScript's libCheck option ([#22923](https://github.com/microsoft/FluidFramework/pull/22923)) [a1b4cdd45e](https://github.com/microsoft/FluidFramework/commit/a1b4cdd45ee9812e2598ab8d2854333d26a06eb4)
197
+ - Compilation no longer fails when building with TypeScript's libCheck option ([#22923](https://github.com/microsoft/FluidFramework/pull/22923)) [a1b4cdd45e](https://github.com/microsoft/FluidFramework/commit/a1b4cdd45ee9812e2598ab8d2854333d26a06eb4)
194
198
 
195
- When compiling code using Fluid Framework with TypeScript's `libCheck` (meaning without [skipLibCheck](https://www.typescriptlang.org/tsconfig/#skipLibCheck)), two compile errors can be encountered:
199
+ When compiling code using Fluid Framework with TypeScript's `libCheck` (meaning without [skipLibCheck](https://www.typescriptlang.org/tsconfig/#skipLibCheck)), two compile errors can be encountered:
196
200
 
197
- ```
198
- > tsc
201
+ ```
202
+ > tsc
199
203
 
200
- node_modules/@fluidframework/merge-tree/lib/client.d.ts:124:18 - error TS2368: Type parameter name cannot be 'undefined'.
204
+ node_modules/@fluidframework/merge-tree/lib/client.d.ts:124:18 - error TS2368: Type parameter name cannot be 'undefined'.
201
205
 
202
- 124 walkSegments<undefined>(handler: ISegmentAction<undefined>, start?: number, end?: number, accum?: undefined, splitRange?: boolean): void;
203
- ~~~~~~~~~
206
+ 124 walkSegments<undefined>(handler: ISegmentAction<undefined>, start?: number, end?: number, accum?: undefined, splitRange?: boolean): void;
207
+ ~~~~~~~~~
204
208
 
205
- node_modules/@fluidframework/tree/lib/util/utils.d.ts:5:29 - error TS7016: Could not find a declaration file for module '@ungap/structured-clone'. 'node_modules/@ungap/structured-clone/esm/index.js' implicitly has an 'any' type.
206
- Try `npm i --save-dev @types/ungap__structured-clone` if it exists or add a new declaration (.d.ts) file containing `declare module '@ungap/structured-clone';`
209
+ node_modules/@fluidframework/tree/lib/util/utils.d.ts:5:29 - error TS7016: Could not find a declaration file for module '@ungap/structured-clone'. 'node_modules/@ungap/structured-clone/esm/index.js' implicitly has an 'any' type.
210
+ Try `npm i --save-dev @types/ungap__structured-clone` if it exists or add a new declaration (.d.ts) file containing `declare module '@ungap/structured-clone';`
207
211
 
208
- 5 import structuredClone from "@ungap/structured-clone";
209
- ~~~~~~~~~~~~~~~~~~~~~~~~~
210
- ```
212
+ 5 import structuredClone from "@ungap/structured-clone";
213
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
214
+ ```
211
215
 
212
- The first error impacts projects using TypeScript 5.5 or greater and either of the `fluid-framework` or `@fluidframework/merge-tree` packages.
213
- The second error impacts projects using the `noImplicitAny` tsconfig setting and the `fluid-framework` or `@fluidframework/tree` packages.
216
+ The first error impacts projects using TypeScript 5.5 or greater and either of the `fluid-framework` or `@fluidframework/merge-tree` packages.
217
+ The second error impacts projects using the `noImplicitAny` tsconfig setting and the `fluid-framework` or `@fluidframework/tree` packages.
214
218
 
215
- Both errors have been fixed.
219
+ Both errors have been fixed.
216
220
 
217
- This should allow `libCheck` to be reenabled in any impacted projects.
221
+ This should allow `libCheck` to be reenabled in any impacted projects.
218
222
 
219
223
  ## 2.4.0
220
224
 
221
225
  ### Minor Changes
222
226
 
223
- - Several MergeTree `Client` Legacy APIs are now deprecated ([#22629](https://github.com/microsoft/FluidFramework/pull/22629)) [0b59ae89e0](https://github.com/microsoft/FluidFramework/commit/0b59ae89e0aefefad0ccef198adf99929bc4d783)
227
+ - Several MergeTree `Client` Legacy APIs are now deprecated ([#22629](https://github.com/microsoft/FluidFramework/pull/22629)) [0b59ae89e0](https://github.com/microsoft/FluidFramework/commit/0b59ae89e0aefefad0ccef198adf99929bc4d783)
224
228
 
225
- To reduce exposure of the `Client` class in the merge-tree package, several types have been deprecated. These types directly or indirectly expose the merge-tree `Client` class.
229
+ To reduce exposure of the `Client` class in the merge-tree package, several types have been deprecated. These types directly or indirectly expose the merge-tree `Client` class.
226
230
 
227
- Most of these types are not meant to be used directly, and direct use is not supported:
231
+ Most of these types are not meant to be used directly, and direct use is not supported:
228
232
 
229
- - AttributionPolicy
230
- - IClientEvents
231
- - IMergeTreeAttributionOptions
232
- - SharedSegmentSequence
233
- - SharedStringClass
233
+ - AttributionPolicy
234
+ - IClientEvents
235
+ - IMergeTreeAttributionOptions
236
+ - SharedSegmentSequence
237
+ - SharedStringClass
234
238
 
235
- Some of the deprecations are class constructors. In those cases, we plan to replace the class with an interface which has an equivalent API. Direct instantiation of these classes is not currently supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types:
239
+ Some of the deprecations are class constructors. In those cases, we plan to replace the class with an interface which has an equivalent API. Direct instantiation of these classes is not currently supported or necessary for any supported scenario, so the change to an interface should not impact usage. This applies to the following types:
236
240
 
237
- - SequenceInterval
238
- - SequenceEvent
239
- - SequenceDeltaEvent
240
- - SequenceMaintenanceEvent
241
+ - SequenceInterval
242
+ - SequenceEvent
243
+ - SequenceDeltaEvent
244
+ - SequenceMaintenanceEvent
241
245
 
242
246
  ## 2.3.0
243
247
 
@@ -247,46 +251,46 @@ Dependency updates only.
247
251
 
248
252
  ### Minor Changes
249
253
 
250
- - The PropertyManager class and related functions and properties are deprecated ([#22183](https://github.com/microsoft/FluidFramework/pull/22183)) [cbba69554f](https://github.com/microsoft/FluidFramework/commit/cbba69554fc5026f562f44683a902474fabd6e81)
254
+ - The PropertyManager class and related functions and properties are deprecated ([#22183](https://github.com/microsoft/FluidFramework/pull/22183)) [cbba69554f](https://github.com/microsoft/FluidFramework/commit/cbba69554fc5026f562f44683a902474fabd6e81)
251
255
 
252
- The `PropertyManager` class, along with the `propertyManager` properties and `addProperties` functions on segments and intervals, are not intended for external use.
253
- These elements will be removed in a future release for the following reasons:
256
+ The `PropertyManager` class, along with the `propertyManager` properties and `addProperties` functions on segments and intervals, are not intended for external use.
257
+ These elements will be removed in a future release for the following reasons:
254
258
 
255
- - There are no scenarios where they need to be used directly.
256
- - Using them directly will cause eventual consistency problems.
257
- - Upcoming features will require modifications to these mechanisms.
259
+ - There are no scenarios where they need to be used directly.
260
+ - Using them directly will cause eventual consistency problems.
261
+ - Upcoming features will require modifications to these mechanisms.
258
262
 
259
- - Deprecate segmentGroups and ack on ISegment ([#22212](https://github.com/microsoft/FluidFramework/pull/22212)) [2b0199dae3](https://github.com/microsoft/FluidFramework/commit/2b0199dae3d73cc7d4fab0f4848614b42e212220)
263
+ - Deprecate segmentGroups and ack on ISegment ([#22212](https://github.com/microsoft/FluidFramework/pull/22212)) [2b0199dae3](https://github.com/microsoft/FluidFramework/commit/2b0199dae3d73cc7d4fab0f4848614b42e212220)
260
264
 
261
- The `SegmentGroupCollection` class, along with the `segmentGroups` property and `ack` function on segments, are not intended for external use.
262
- These elements will be removed in a future release for the following reasons:
265
+ The `SegmentGroupCollection` class, along with the `segmentGroups` property and `ack` function on segments, are not intended for external use.
266
+ These elements will be removed in a future release for the following reasons:
263
267
 
264
- - There are no scenarios where they need to be used directly.
265
- - Using them directly will cause eventual consistency problems.
266
- - Upcoming features will require modifications to these mechanisms.
268
+ - There are no scenarios where they need to be used directly.
269
+ - Using them directly will cause eventual consistency problems.
270
+ - Upcoming features will require modifications to these mechanisms.
267
271
 
268
272
  ## 2.1.0
269
273
 
270
274
  ### Minor Changes
271
275
 
272
- - The Marker.fromJSONObject and TextSegment.fromJSONObject argument types have been corrected ([#21684](https://github.com/microsoft/FluidFramework/pull/21684)) [d2d472bd88](https://github.com/microsoft/FluidFramework/commit/d2d472bd88d8360bb77303079eebef16d5a69131)
276
+ - The Marker.fromJSONObject and TextSegment.fromJSONObject argument types have been corrected ([#21684](https://github.com/microsoft/FluidFramework/pull/21684)) [d2d472bd88](https://github.com/microsoft/FluidFramework/commit/d2d472bd88d8360bb77303079eebef16d5a69131)
273
277
 
274
- Previously, the arguments of `Marker.fromJSONObject` and `TextSegment.fromJSONObject` were of type `any`. However, at
275
- runtime only certain types were expected and using other types would cause errors.
278
+ Previously, the arguments of `Marker.fromJSONObject` and `TextSegment.fromJSONObject` were of type `any`. However, at
279
+ runtime only certain types were expected and using other types would cause errors.
276
280
 
277
- Now, the argument for the Marker implementation is of type `IJSONSegment` and the argument for the TextSegment
278
- implementation is of type `string | IJSONSegment`. This reflects actual runtime support.
281
+ Now, the argument for the Marker implementation is of type `IJSONSegment` and the argument for the TextSegment
282
+ implementation is of type `string | IJSONSegment`. This reflects actual runtime support.
279
283
 
280
- This change should have no impact on existing code unless the code is using incorrect types. Such code already does not
281
- function and should be corrected.
284
+ This change should have no impact on existing code unless the code is using incorrect types. Such code already does not
285
+ function and should be corrected.
282
286
 
283
287
  ## 2.0.0-rc.5.0.0
284
288
 
285
289
  ### Minor Changes
286
290
 
287
- - Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
291
+ - Update to TypeScript 5.4 ([#21214](https://github.com/microsoft/FluidFramework/pull/21214)) [0e6256c722](https://github.com/microsoft/FluidFramework/commit/0e6256c722d8bf024f4325bf02547daeeb18bfa6)
288
292
 
289
- Update package implementations to use TypeScript 5.4.5.
293
+ Update package implementations to use TypeScript 5.4.5.
290
294
 
291
295
  ## 2.0.0-rc.4.0.0
292
296
 
@@ -296,24 +300,24 @@ Dependency updates only.
296
300
 
297
301
  ### Major Changes
298
302
 
299
- - Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
303
+ - Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
300
304
 
301
- Fluid Framework packages have been updated to use the [package.json "exports"
302
- field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
303
- TypeScript types and implementation code.
305
+ Fluid Framework packages have been updated to use the [package.json "exports"
306
+ field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
307
+ TypeScript types and implementation code.
304
308
 
305
- This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
309
+ This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
306
310
 
307
- - `"moduleResolution": "Node16"` with `"module": "Node16"`
308
- - `"moduleResolution": "Bundler"` with `"module": "ESNext"`
311
+ - `"moduleResolution": "Node16"` with `"module": "Node16"`
312
+ - `"moduleResolution": "Bundler"` with `"module": "ESNext"`
309
313
 
310
- We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
311
- for use with modern versions of Node.js _and_ Bundlers.
312
- [See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
313
- regarding the module and moduleResolution options.
314
+ We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
315
+ for use with modern versions of Node.js _and_ Bundlers.
316
+ [See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
317
+ regarding the module and moduleResolution options.
314
318
 
315
- **Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
316
- to distinguish stable APIs from those that are in development.**
319
+ **Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
320
+ to distinguish stable APIs from those that are in development.**
317
321
 
318
322
  ## 2.0.0-rc.2.0.0
319
323
 
@@ -323,169 +327,169 @@ Dependency updates only.
323
327
 
324
328
  ### Minor Changes
325
329
 
326
- - Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
330
+ - Updated server dependencies ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
327
331
 
328
- The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
332
+ The following Fluid server dependencies have been updated to the latest version, 3.0.0. [See the full changelog.](https://github.com/microsoft/FluidFramework/releases/tag/server_v3.0.0)
329
333
 
330
- - @fluidframework/gitresources
331
- - @fluidframework/server-kafka-orderer
332
- - @fluidframework/server-lambdas
333
- - @fluidframework/server-lambdas-driver
334
- - @fluidframework/server-local-server
335
- - @fluidframework/server-memory-orderer
336
- - @fluidframework/protocol-base
337
- - @fluidframework/server-routerlicious
338
- - @fluidframework/server-routerlicious-base
339
- - @fluidframework/server-services
340
- - @fluidframework/server-services-client
341
- - @fluidframework/server-services-core
342
- - @fluidframework/server-services-ordering-kafkanode
343
- - @fluidframework/server-services-ordering-rdkafka
344
- - @fluidframework/server-services-ordering-zookeeper
345
- - @fluidframework/server-services-shared
346
- - @fluidframework/server-services-telemetry
347
- - @fluidframework/server-services-utils
348
- - @fluidframework/server-test-utils
349
- - tinylicious
334
+ - @fluidframework/gitresources
335
+ - @fluidframework/server-kafka-orderer
336
+ - @fluidframework/server-lambdas
337
+ - @fluidframework/server-lambdas-driver
338
+ - @fluidframework/server-local-server
339
+ - @fluidframework/server-memory-orderer
340
+ - @fluidframework/protocol-base
341
+ - @fluidframework/server-routerlicious
342
+ - @fluidframework/server-routerlicious-base
343
+ - @fluidframework/server-services
344
+ - @fluidframework/server-services-client
345
+ - @fluidframework/server-services-core
346
+ - @fluidframework/server-services-ordering-kafkanode
347
+ - @fluidframework/server-services-ordering-rdkafka
348
+ - @fluidframework/server-services-ordering-zookeeper
349
+ - @fluidframework/server-services-shared
350
+ - @fluidframework/server-services-telemetry
351
+ - @fluidframework/server-services-utils
352
+ - @fluidframework/server-test-utils
353
+ - tinylicious
350
354
 
351
- - Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
355
+ - Updated @fluidframework/protocol-definitions ([#19122](https://github.com/microsoft/FluidFramework/issues/19122)) [25366b4229](https://github.com/microsoft/FluidFramework/commits/25366b422918cb43685c5f328b50450749592902)
352
356
 
353
- The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
354
- changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
357
+ The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. [See the full
358
+ changelog.](https://github.com/microsoft/FluidFramework/blob/main/common/lib/protocol-definitions/CHANGELOG.md#310)
355
359
 
356
- - sequence: Remove the findTile API ([#18908](https://github.com/microsoft/FluidFramework/issues/18908)) [29b093e55c](https://github.com/microsoft/FluidFramework/commits/29b093e55cb2a7e98c9445b735783f463acfb3bb)
360
+ - sequence: Remove the findTile API ([#18908](https://github.com/microsoft/FluidFramework/issues/18908)) [29b093e55c](https://github.com/microsoft/FluidFramework/commits/29b093e55cb2a7e98c9445b735783f463acfb3bb)
357
361
 
358
- The `findTile` API that was previously deprecated is now being removed. The new `searchForMarker` function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of `true` indicates a forward search.
362
+ The `findTile` API that was previously deprecated is now being removed. The new `searchForMarker` function provides similar functionality, and can be called with the start position, the client ID, the desired marker label to find, and the search direction, where a value of `true` indicates a forward search.
359
363
 
360
364
  ## 2.0.0-internal.8.0.0
361
365
 
362
366
  ### Major Changes
363
367
 
364
- - sequence: Some function return types are now void instead of any [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
368
+ - sequence: Some function return types are now void instead of any [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
365
369
 
366
- The return types of some functions have changed from `any` to `void` because the projects are now being compiled with
367
- the `noImplicitAny` TypeScript compilation option. This does not represent a logic change and only serves to make the
368
- typing of these functions more accurate.
370
+ The return types of some functions have changed from `any` to `void` because the projects are now being compiled with
371
+ the `noImplicitAny` TypeScript compilation option. This does not represent a logic change and only serves to make the
372
+ typing of these functions more accurate.
369
373
 
370
- - sequence: Add experimental support for the obliterate operation [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
374
+ - sequence: Add experimental support for the obliterate operation [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
371
375
 
372
- This change adds experimental support for _obliterate_, a form of _remove_ that deletes concurrently inserted segments.
373
- To use, enable the `mergeTreeEnableObliterate` feature flag and call the new `obliterateRange` functions.
376
+ This change adds experimental support for _obliterate_, a form of _remove_ that deletes concurrently inserted segments.
377
+ To use, enable the `mergeTreeEnableObliterate` feature flag and call the new `obliterateRange` functions.
374
378
 
375
- Note: this change may cause compilation errors for those attaching event listeners. As long as obliterate isn't used in
376
- current handlers, their current implementation is sound.
379
+ Note: this change may cause compilation errors for those attaching event listeners. As long as obliterate isn't used in
380
+ current handlers, their current implementation is sound.
377
381
 
378
- - sequence: Removed Marker.hasSimpleType and made sequence operations return void [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
382
+ - sequence: Removed Marker.hasSimpleType and made sequence operations return void [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
379
383
 
380
- `Marker.hasSimpleType` was unused. Sequence operations now no longer return IMergeTree\*Msg types.
381
- These types are redundant with the input.
384
+ `Marker.hasSimpleType` was unused. Sequence operations now no longer return IMergeTree\*Msg types.
385
+ These types are redundant with the input.
382
386
 
383
- - sequence: Removed several public exports from merge-tree and sequence [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
387
+ - sequence: Removed several public exports from merge-tree and sequence [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
384
388
 
385
- The following APIs have been removed or marked internal in merge-tree and sequence. This functionality was never
386
- intended for public export.
389
+ The following APIs have been removed or marked internal in merge-tree and sequence. This functionality was never
390
+ intended for public export.
387
391
 
388
- - `BaseSegment.ack`
389
- - `Client`
390
- - `CollaborationWindow`
391
- - `compareNumbers`
392
- - `compareStrings`
393
- - `createAnnotateMarkerOp`
394
- - `createAnnotateRangeOp`
395
- - `createGroupOp`
396
- - `createInsertOp`
397
- - `createInsertSegmentOp`
398
- - `createRemoveRangeOp`
399
- - `IConsensusInfo`
400
- - `IConsensusValue`
401
- - `IMarkerModifiedAction`
402
- - `IMergeTreeTextHelper`
403
- - `LocalClientId`
404
- - `MergeTreeDeltaCallback`
405
- - `MergeTreeMaintenanceCallback`
406
- - `NonCollabClient`
407
- - `SegmentAccumulator`
408
- - `SegmentGroup`
409
- - `SegmentGroupCollection.enqueue`
410
- - `SegmentGroupCollection.dequeue`
411
- - `SegmentGroupCollection.pop`
412
- - `SortedSegmentSet`
413
- - `SortedSegmentSetItem`
414
- - `SortedSet`
415
- - `toRemovalInfo`
416
- - `TreeMaintenanceSequenceNumber`
417
- - `UniversalSequenceNumber`
418
- - `SharedSegmentSequence.submitSequenceMessage`
392
+ - `BaseSegment.ack`
393
+ - `Client`
394
+ - `CollaborationWindow`
395
+ - `compareNumbers`
396
+ - `compareStrings`
397
+ - `createAnnotateMarkerOp`
398
+ - `createAnnotateRangeOp`
399
+ - `createGroupOp`
400
+ - `createInsertOp`
401
+ - `createInsertSegmentOp`
402
+ - `createRemoveRangeOp`
403
+ - `IConsensusInfo`
404
+ - `IConsensusValue`
405
+ - `IMarkerModifiedAction`
406
+ - `IMergeTreeTextHelper`
407
+ - `LocalClientId`
408
+ - `MergeTreeDeltaCallback`
409
+ - `MergeTreeMaintenanceCallback`
410
+ - `NonCollabClient`
411
+ - `SegmentAccumulator`
412
+ - `SegmentGroup`
413
+ - `SegmentGroupCollection.enqueue`
414
+ - `SegmentGroupCollection.dequeue`
415
+ - `SegmentGroupCollection.pop`
416
+ - `SortedSegmentSet`
417
+ - `SortedSegmentSetItem`
418
+ - `SortedSet`
419
+ - `toRemovalInfo`
420
+ - `TreeMaintenanceSequenceNumber`
421
+ - `UniversalSequenceNumber`
422
+ - `SharedSegmentSequence.submitSequenceMessage`
419
423
 
420
- - merge-tree: Remove `IIntegerRange` [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
424
+ - merge-tree: Remove `IIntegerRange` [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
421
425
 
422
- This interface is deprecated and was not intended for public export.
426
+ This interface is deprecated and was not intended for public export.
423
427
 
424
- - sequence: Remove support for combining ops [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
428
+ - sequence: Remove support for combining ops [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
425
429
 
426
- In sequence, removed the following APIs:
430
+ In sequence, removed the following APIs:
427
431
 
428
- - the `combiningOp` argument from `SharedSegmentSequence.annotateRange` and `SharedString.annotateMarker`
429
- - the function `SharedString.annotateMarkerNotifyConsensus`
432
+ - the `combiningOp` argument from `SharedSegmentSequence.annotateRange` and `SharedString.annotateMarker`
433
+ - the function `SharedString.annotateMarkerNotifyConsensus`
430
434
 
431
- In merge-tree, removed the following APIs:
435
+ In merge-tree, removed the following APIs:
432
436
 
433
- - `ICombiningOp`
434
- - the `combiningOp` field from `IMergeTreeAnnotateMsg`
435
- - the `op` argument from `BaseSegment.addProperties`, `PropertiesManager.addProperties`, and `ReferencePosition.addProperties`
436
- - the enum variant `PropertiesRollback.Rewrite`.
437
+ - `ICombiningOp`
438
+ - the `combiningOp` field from `IMergeTreeAnnotateMsg`
439
+ - the `op` argument from `BaseSegment.addProperties`, `PropertiesManager.addProperties`, and `ReferencePosition.addProperties`
440
+ - the enum variant `PropertiesRollback.Rewrite`.
437
441
 
438
- This functionality was largely unused and had no test coverage.
442
+ This functionality was largely unused and had no test coverage.
439
443
 
440
- - sequence: Removed several APIs [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
444
+ - sequence: Removed several APIs [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
441
445
 
442
- The following APIs have been removed:
446
+ The following APIs have been removed:
443
447
 
444
- - `Client.getStackContext`
445
- - `SharedSegmentSequence.getStackContext`
446
- - `IntervalType.Nest`
447
- - `ReferenceType.NestBegin`
448
- - `ReferenceType.NestEnd`
449
- - `internedSpaces`
450
- - `RangeStackMap`
451
- - `refGetRangeLabels`
452
- - `refHasRangeLabel`
453
- - `refHasRangeLabels`
448
+ - `Client.getStackContext`
449
+ - `SharedSegmentSequence.getStackContext`
450
+ - `IntervalType.Nest`
451
+ - `ReferenceType.NestBegin`
452
+ - `ReferenceType.NestEnd`
453
+ - `internedSpaces`
454
+ - `RangeStackMap`
455
+ - `refGetRangeLabels`
456
+ - `refHasRangeLabel`
457
+ - `refHasRangeLabels`
454
458
 
455
- This functionality is deprecated, has low test coverage, and is largely unused.
459
+ This functionality is deprecated, has low test coverage, and is largely unused.
456
460
 
457
- - merge-tree: Remove several APIs [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
461
+ - merge-tree: Remove several APIs [9a451d4946](https://github.com/microsoft/FluidFramework/commits/9a451d4946b5c51a52e4d1ab5bf51e7b285b0d74)
458
462
 
459
- Removed the following APIs:
463
+ Removed the following APIs:
460
464
 
461
- - `Stack`
462
- - `clone`
463
- - `combine`
464
- - `createMap`
465
- - `extend`
466
- - `extendIfUndefined`
467
- - `matchProperties`
465
+ - `Stack`
466
+ - `clone`
467
+ - `combine`
468
+ - `createMap`
469
+ - `extend`
470
+ - `extendIfUndefined`
471
+ - `matchProperties`
468
472
 
469
- This functionality is deprecated and was not intended for public export.
473
+ This functionality is deprecated and was not intended for public export.
470
474
 
471
475
  ## 2.0.0-internal.7.4.0
472
476
 
473
477
  ### Minor Changes
474
478
 
475
- - sequence: Deprecated ICombiningOp, PropertiesRollback.Rewrite, and SharedString.annotateMarkerNotifyConsensus ([#18318](https://github.com/microsoft/FluidFramework/issues/18318)) [e67c2cac5f](https://github.com/microsoft/FluidFramework/commits/e67c2cac5f275fc5c875c0bc044bbb72aaf76648)
479
+ - sequence: Deprecated ICombiningOp, PropertiesRollback.Rewrite, and SharedString.annotateMarkerNotifyConsensus ([#18318](https://github.com/microsoft/FluidFramework/issues/18318)) [e67c2cac5f](https://github.com/microsoft/FluidFramework/commits/e67c2cac5f275fc5c875c0bc044bbb72aaf76648)
476
480
 
477
- The `ICombiningOp` and its usage in various APIs has been deprecated. APIs affected include
478
- `SharedSegmentSequence.annotateRange` and `SharedString.annotateMarker`. `SharedString.annotateMarkerNotifyConsensus`
479
- has also been deprecated, because it is related to combining ops. This functionality had no test coverage and was
480
- largely unused.
481
+ The `ICombiningOp` and its usage in various APIs has been deprecated. APIs affected include
482
+ `SharedSegmentSequence.annotateRange` and `SharedString.annotateMarker`. `SharedString.annotateMarkerNotifyConsensus`
483
+ has also been deprecated, because it is related to combining ops. This functionality had no test coverage and was
484
+ largely unused.
481
485
 
482
486
  ## 2.0.0-internal.7.3.0
483
487
 
484
488
  ### Minor Changes
485
489
 
486
- - Deprecate BaseSegment.ack, Client, CollaborationWindow, compareNumbers, compareStrings, createAnnotateMarkerOp, createAnnotateRangeOp, createInsertOp, createInsertSegmentOp, createRemoveRangeOp, IConsensusInfo, IConsensusValue, IMarkerModifiedAction, IMergeTreeTextHelper, ISegment.ack, LocalClientId, MergeTreeDeltaCallback, MergeTreeMaintenanceCallback, NonCollabClient, SegmentAccumulator, SegmentGroup, SegmentGroupCollection.dequeue, SegmentGroupCollection.enqueue, SegmentGroupCollection.pop, SortedSegmentSet, SortedSegmentSetItem, SortedSet, toRemovalInfo, TreeMaintenanceSequenceNumber, UnassignedSequenceNumber, UniversalSequenceNumber ([#17952](https://github.com/microsoft/FluidFramework/issues/17952)) [b762798c48](https://github.com/microsoft/FluidFramework/commits/b762798c48ec581202fb5335e907637b8482edcc)
490
+ - Deprecate BaseSegment.ack, Client, CollaborationWindow, compareNumbers, compareStrings, createAnnotateMarkerOp, createAnnotateRangeOp, createInsertOp, createInsertSegmentOp, createRemoveRangeOp, IConsensusInfo, IConsensusValue, IMarkerModifiedAction, IMergeTreeTextHelper, ISegment.ack, LocalClientId, MergeTreeDeltaCallback, MergeTreeMaintenanceCallback, NonCollabClient, SegmentAccumulator, SegmentGroup, SegmentGroupCollection.dequeue, SegmentGroupCollection.enqueue, SegmentGroupCollection.pop, SortedSegmentSet, SortedSegmentSetItem, SortedSet, toRemovalInfo, TreeMaintenanceSequenceNumber, UnassignedSequenceNumber, UniversalSequenceNumber ([#17952](https://github.com/microsoft/FluidFramework/issues/17952)) [b762798c48](https://github.com/microsoft/FluidFramework/commits/b762798c48ec581202fb5335e907637b8482edcc)
487
491
 
488
- This functionality was not intended for export and will be removed in a future release.
492
+ This functionality was not intended for export and will be removed in a future release.
489
493
 
490
494
  ## 2.0.0-internal.7.2.0
491
495
 
@@ -495,82 +499,82 @@ Dependency updates only.
495
499
 
496
500
  ### Minor Changes
497
501
 
498
- - merge-tree: Deprecate Stack, clone, combine, createMap, extend, extendIfUndefined, and matchProperties ([#17650](https://github.com/microsoft/FluidFramework/issues/17650)) [2b12bc7e59](https://github.com/microsoft/FluidFramework/commits/2b12bc7e59f7825a222ad33b7faff17477d0fa66)
502
+ - merge-tree: Deprecate Stack, clone, combine, createMap, extend, extendIfUndefined, and matchProperties ([#17650](https://github.com/microsoft/FluidFramework/issues/17650)) [2b12bc7e59](https://github.com/microsoft/FluidFramework/commits/2b12bc7e59f7825a222ad33b7faff17477d0fa66)
499
503
 
500
- The following classes and functions have been deprecated. They were not intended for public export and will be removed
501
- in a future release.
504
+ The following classes and functions have been deprecated. They were not intended for public export and will be removed
505
+ in a future release.
502
506
 
503
- - Stack
504
- - clone
505
- - combine
506
- - createMap
507
- - extend
508
- - extendIfUndefined
509
- - matchProperties
507
+ - Stack
508
+ - clone
509
+ - combine
510
+ - createMap
511
+ - extend
512
+ - extendIfUndefined
513
+ - matchProperties
510
514
 
511
- - merge-tree: Deprecate IntervalType.Nest, internedSpaces, RangeStackMap, refGetRangeLabels, refHasRangeLabel, and refHasRangeLabels ([#17555](https://github.com/microsoft/FluidFramework/issues/17555)) [e4c11874ef](https://github.com/microsoft/FluidFramework/commits/e4c11874ef7c62b7cde7c282bc7997519d35fbbc)
515
+ - merge-tree: Deprecate IntervalType.Nest, internedSpaces, RangeStackMap, refGetRangeLabels, refHasRangeLabel, and refHasRangeLabels ([#17555](https://github.com/microsoft/FluidFramework/issues/17555)) [e4c11874ef](https://github.com/microsoft/FluidFramework/commits/e4c11874ef7c62b7cde7c282bc7997519d35fbbc)
512
516
 
513
- The following classes and functions have been deprecated. The functionality has poor test coverage and is largely
514
- unused. They will be removed in a future release.
517
+ The following classes and functions have been deprecated. The functionality has poor test coverage and is largely
518
+ unused. They will be removed in a future release.
515
519
 
516
- - IntervalType.Nest
517
- - internedSpaces
518
- - RangeStackMap
519
- - refGetRangeLabels
520
- - refHasRangeLabel
521
- - refHasRangeLabels
520
+ - IntervalType.Nest
521
+ - internedSpaces
522
+ - RangeStackMap
523
+ - refGetRangeLabels
524
+ - refHasRangeLabel
525
+ - refHasRangeLabels
522
526
 
523
527
  ## 2.0.0-internal.7.0.0
524
528
 
525
529
  ### Major Changes
526
530
 
527
- - sequence: New API for specifying spatial positioning of intervals [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
531
+ - sequence: New API for specifying spatial positioning of intervals [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
528
532
 
529
- Previously intervals were specified with only an index. Now the model is a bit more nuanced in that you can specify positions that lie before or after a given index. This makes it more clear how interval endpoints should interact with changes to the sequence. See the docs for SequencePlace for additional context.
533
+ Previously intervals were specified with only an index. Now the model is a bit more nuanced in that you can specify positions that lie before or after a given index. This makes it more clear how interval endpoints should interact with changes to the sequence. See the docs for SequencePlace for additional context.
530
534
 
531
- - Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
535
+ - Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
532
536
 
533
- This included the following changes from the protocol-definitions release:
537
+ This included the following changes from the protocol-definitions release:
534
538
 
535
- - Updating signal interfaces for some planned improvements. The intention is split the interface between signals
536
- submitted by clients to the server and the resulting signals sent from the server to clients.
537
- - A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
538
- been added, which will be the typing for signals sent from the client to the server. Both extend a new
539
- ISignalMessageBase interface that contains common members.
540
- - The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
539
+ - Updating signal interfaces for some planned improvements. The intention is split the interface between signals
540
+ submitted by clients to the server and the resulting signals sent from the server to clients.
541
+ - A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
542
+ been added, which will be the typing for signals sent from the client to the server. Both extend a new
543
+ ISignalMessageBase interface that contains common members.
544
+ - The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
541
545
 
542
- - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
546
+ - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
543
547
 
544
- Dependencies on the following Fluid server package have been updated to version 2.0.1:
548
+ Dependencies on the following Fluid server package have been updated to version 2.0.1:
545
549
 
546
- - @fluidframework/gitresources: 2.0.1
547
- - @fluidframework/server-kafka-orderer: 2.0.1
548
- - @fluidframework/server-lambdas: 2.0.1
549
- - @fluidframework/server-lambdas-driver: 2.0.1
550
- - @fluidframework/server-local-server: 2.0.1
551
- - @fluidframework/server-memory-orderer: 2.0.1
552
- - @fluidframework/protocol-base: 2.0.1
553
- - @fluidframework/server-routerlicious: 2.0.1
554
- - @fluidframework/server-routerlicious-base: 2.0.1
555
- - @fluidframework/server-services: 2.0.1
556
- - @fluidframework/server-services-client: 2.0.1
557
- - @fluidframework/server-services-core: 2.0.1
558
- - @fluidframework/server-services-ordering-kafkanode: 2.0.1
559
- - @fluidframework/server-services-ordering-rdkafka: 2.0.1
560
- - @fluidframework/server-services-ordering-zookeeper: 2.0.1
561
- - @fluidframework/server-services-shared: 2.0.1
562
- - @fluidframework/server-services-telemetry: 2.0.1
563
- - @fluidframework/server-services-utils: 2.0.1
564
- - @fluidframework/server-test-utils: 2.0.1
565
- - tinylicious: 2.0.1
550
+ - @fluidframework/gitresources: 2.0.1
551
+ - @fluidframework/server-kafka-orderer: 2.0.1
552
+ - @fluidframework/server-lambdas: 2.0.1
553
+ - @fluidframework/server-lambdas-driver: 2.0.1
554
+ - @fluidframework/server-local-server: 2.0.1
555
+ - @fluidframework/server-memory-orderer: 2.0.1
556
+ - @fluidframework/protocol-base: 2.0.1
557
+ - @fluidframework/server-routerlicious: 2.0.1
558
+ - @fluidframework/server-routerlicious-base: 2.0.1
559
+ - @fluidframework/server-services: 2.0.1
560
+ - @fluidframework/server-services-client: 2.0.1
561
+ - @fluidframework/server-services-core: 2.0.1
562
+ - @fluidframework/server-services-ordering-kafkanode: 2.0.1
563
+ - @fluidframework/server-services-ordering-rdkafka: 2.0.1
564
+ - @fluidframework/server-services-ordering-zookeeper: 2.0.1
565
+ - @fluidframework/server-services-shared: 2.0.1
566
+ - @fluidframework/server-services-telemetry: 2.0.1
567
+ - @fluidframework/server-services-utils: 2.0.1
568
+ - @fluidframework/server-test-utils: 2.0.1
569
+ - tinylicious: 2.0.1
566
570
 
567
- - Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
571
+ - Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
568
572
 
569
- The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
573
+ The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
570
574
 
571
- - sequence: Remove the mergeTreeUseNewLengthCalculations flag [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
575
+ - sequence: Remove the mergeTreeUseNewLengthCalculations flag [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
572
576
 
573
- The `mergeTreeUseNewLengthCalculations` flag has been removed, because the feature was enabled by default in 2.0.0-internal.6.0.0.
577
+ The `mergeTreeUseNewLengthCalculations` flag has been removed, because the feature was enabled by default in 2.0.0-internal.6.0.0.
574
578
 
575
579
  ## 2.0.0-internal.6.4.0
576
580
 
@@ -584,41 +588,41 @@ Dependency updates only.
584
588
 
585
589
  ### Minor Changes
586
590
 
587
- - Deprecate getStackContext and associated NestBegin/End ([#16877](https://github.com/microsoft/FluidFramework/issues/16877)) [8e743fe1dd](https://github.com/microsoft/FluidFramework/commits/8e743fe1dde9adb3a1240971987d3abd51ab2fbe)
588
-
589
- Deprecate SharedSegmentSequence.getStackContext and Client.getStackContext (and the enums ReferenceType.NestBegin and NestEnd they use).
590
- This functionality is unused, poorly tested, and incurs performance overhead.
591
-
592
- - Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
593
-
594
- The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
595
- imported from the **@fluidframework/core-interfaces** package:
596
-
597
- - interface IDisposable
598
- - interface IErrorEvent
599
- - interface IErrorEvent
600
- - interface IEvent
601
- - interface IEventProvider
602
- - interface ILoggingError
603
- - interface ITaggedTelemetryPropertyType
604
- - interface ITelemetryBaseEvent
605
- - interface ITelemetryBaseLogger
606
- - interface ITelemetryErrorEvent
607
- - interface ITelemetryGenericEvent
608
- - interface ITelemetryLogger
609
- - interface ITelemetryPerformanceEvent
610
- - interface ITelemetryProperties
611
- - type ExtendEventProvider
612
- - type IEventThisPlaceHolder
613
- - type IEventTransformer
614
- - type ReplaceIEventThisPlaceHolder
615
- - type ReplaceIEventThisPlaceHolder
616
- - type TelemetryEventCategory
617
- - type TelemetryEventPropertyType
618
-
619
- - Deprecation of findTile in favor of searchForMarker, which uses depthFirstNodeWalk to locate the nearest marker. ([#16517](https://github.com/microsoft/FluidFramework/issues/16517)) [e928b1f185](https://github.com/microsoft/FluidFramework/commits/e928b1f185ca32123eff9d4bfc5bce28ba1b95c1)
620
-
621
- findTile has a decent amount of buggy behavior, which leads partners who want to use it to implement workarounds for the odd behavior. searchForMarker is being introduced as a replacement. It performs the same basic functionality of searching for the nearest marker to a given start position in the indicated direction. However, it includes the start position as one of the nodes to search, so markers at the start position will be returned as the nearest marker to that position. Notably, positions 0 and length-1 will be included in the search as well, so searching forwards from position 0 or backwards from position length-1 would allow the entire string to be searched.
591
+ - Deprecate getStackContext and associated NestBegin/End ([#16877](https://github.com/microsoft/FluidFramework/issues/16877)) [8e743fe1dd](https://github.com/microsoft/FluidFramework/commits/8e743fe1dde9adb3a1240971987d3abd51ab2fbe)
592
+
593
+ Deprecate SharedSegmentSequence.getStackContext and Client.getStackContext (and the enums ReferenceType.NestBegin and NestEnd they use).
594
+ This functionality is unused, poorly tested, and incurs performance overhead.
595
+
596
+ - Remove use of @fluidframework/common-definitions ([#16638](https://github.com/microsoft/FluidFramework/issues/16638)) [a8c81509c9](https://github.com/microsoft/FluidFramework/commits/a8c81509c9bf09cfb2092ebcf7265205f9eb6dbf)
597
+
598
+ The **@fluidframework/common-definitions** package is being deprecated, so the following interfaces and types are now
599
+ imported from the **@fluidframework/core-interfaces** package:
600
+
601
+ - interface IDisposable
602
+ - interface IErrorEvent
603
+ - interface IErrorEvent
604
+ - interface IEvent
605
+ - interface IEventProvider
606
+ - interface ILoggingError
607
+ - interface ITaggedTelemetryPropertyType
608
+ - interface ITelemetryBaseEvent
609
+ - interface ITelemetryBaseLogger
610
+ - interface ITelemetryErrorEvent
611
+ - interface ITelemetryGenericEvent
612
+ - interface ITelemetryLogger
613
+ - interface ITelemetryPerformanceEvent
614
+ - interface ITelemetryProperties
615
+ - type ExtendEventProvider
616
+ - type IEventThisPlaceHolder
617
+ - type IEventTransformer
618
+ - type ReplaceIEventThisPlaceHolder
619
+ - type ReplaceIEventThisPlaceHolder
620
+ - type TelemetryEventCategory
621
+ - type TelemetryEventPropertyType
622
+
623
+ - Deprecation of findTile in favor of searchForMarker, which uses depthFirstNodeWalk to locate the nearest marker. ([#16517](https://github.com/microsoft/FluidFramework/issues/16517)) [e928b1f185](https://github.com/microsoft/FluidFramework/commits/e928b1f185ca32123eff9d4bfc5bce28ba1b95c1)
624
+
625
+ findTile has a decent amount of buggy behavior, which leads partners who want to use it to implement workarounds for the odd behavior. searchForMarker is being introduced as a replacement. It performs the same basic functionality of searching for the nearest marker to a given start position in the indicated direction. However, it includes the start position as one of the nodes to search, so markers at the start position will be returned as the nearest marker to that position. Notably, positions 0 and length-1 will be included in the search as well, so searching forwards from position 0 or backwards from position length-1 would allow the entire string to be searched.
622
626
 
623
627
  ## 2.0.0-internal.6.1.0
624
628
 
@@ -628,36 +632,36 @@ Dependency updates only.
628
632
 
629
633
  ### Major Changes
630
634
 
631
- - Client.getSlideToSegment removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
635
+ - Client.getSlideToSegment removed [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
632
636
 
633
- Client.getSlideToSegment was deprecated in 2.0.0-internal.5.3.0 and has been removed. Use getSlideToSegoff function instead.
637
+ Client.getSlideToSegment was deprecated in 2.0.0-internal.5.3.0 and has been removed. Use getSlideToSegoff function instead.
634
638
 
635
- - Remove ISegment.parent [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
639
+ - Remove ISegment.parent [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
636
640
 
637
- This change removed the parent property on the ISegment interface. The property will still exist, but should not generally be used by outside consumers.
641
+ This change removed the parent property on the ISegment interface. The property will still exist, but should not generally be used by outside consumers.
638
642
 
639
- There are some circumstances where a consumer may wish to know if a segment is still in the underlying tree and were using the parent property to determine that.
643
+ There are some circumstances where a consumer may wish to know if a segment is still in the underlying tree and were using the parent property to determine that.
640
644
 
641
- Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
645
+ Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
642
646
 
643
- - merge-tree now has new length calculations by default [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
647
+ - merge-tree now has new length calculations by default [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
644
648
 
645
- The merge-tree now enables new length calculations by default and resolves some related performance bugs by making cached segment length
646
- nullable.
649
+ The merge-tree now enables new length calculations by default and resolves some related performance bugs by making cached segment length
650
+ nullable.
647
651
 
648
- Hierarchy cached segment length is `undefined` if the length of all child nodes is `undefined`.
652
+ Hierarchy cached segment length is `undefined` if the length of all child nodes is `undefined`.
649
653
 
650
- - Segments Property Removed from TrackingGroup [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
654
+ - Segments Property Removed from TrackingGroup [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
651
655
 
652
- Tracking groups can contain more than just segments, so the deprecated segments property has been removed. Use the tracked property instead to see all tracked objects.
656
+ Tracking groups can contain more than just segments, so the deprecated segments property has been removed. Use the tracked property instead to see all tracked objects.
653
657
 
654
- - Remove unnecessary exports [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
658
+ - Remove unnecessary exports [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
655
659
 
656
- This change removes a number of interfaces in the merge tree package that are not used in the exported apis surface and therefore should not be used.
660
+ This change removes a number of interfaces in the merge tree package that are not used in the exported apis surface and therefore should not be used.
657
661
 
658
- - Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
662
+ - Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
659
663
 
660
- Upgraded typescript transpilation target to ES2020. This is done in order to decrease the bundle sizes of Fluid Framework packages. This has provided size improvements across the board for ex. Loader, Driver, Runtime etc. Reduced bundle sizes helps to load lesser code in apps and hence also helps to improve the perf.If any app wants to target any older versions of browsers with which this target version is not compatible, then they can use packages like babel to transpile to a older target.
664
+ Upgraded typescript transpilation target to ES2020. This is done in order to decrease the bundle sizes of Fluid Framework packages. This has provided size improvements across the board for ex. Loader, Driver, Runtime etc. Reduced bundle sizes helps to load lesser code in apps and hence also helps to improve the perf.If any app wants to target any older versions of browsers with which this target version is not compatible, then they can use packages like babel to transpile to a older target.
661
665
 
662
666
  ## 2.0.0-internal.5.4.0
663
667
 
@@ -671,25 +675,25 @@ Dependency updates only.
671
675
 
672
676
  ### Minor Changes
673
677
 
674
- - Deprecate unnecessary exports ([#16097](https://github.com/microsoft/FluidFramework/issues/16097)) [9486bec0ea](https://github.com/microsoft/FluidFramework/commits/9486bec0ea2f9f1dd3e40fc3b4c42af6b6a44697)
678
+ - Deprecate unnecessary exports ([#16097](https://github.com/microsoft/FluidFramework/issues/16097)) [9486bec0ea](https://github.com/microsoft/FluidFramework/commits/9486bec0ea2f9f1dd3e40fc3b4c42af6b6a44697)
675
679
 
676
- This change deprecates a number of interfaces in the merge tree package that are not used in the exported apis surface and therefore should not be used.
680
+ This change deprecates a number of interfaces in the merge tree package that are not used in the exported apis surface and therefore should not be used.
677
681
 
678
- - Deprecate ISegment.parent ([#16097](https://github.com/microsoft/FluidFramework/issues/16097)) [9486bec0ea](https://github.com/microsoft/FluidFramework/commits/9486bec0ea2f9f1dd3e40fc3b4c42af6b6a44697)
682
+ - Deprecate ISegment.parent ([#16097](https://github.com/microsoft/FluidFramework/issues/16097)) [9486bec0ea](https://github.com/microsoft/FluidFramework/commits/9486bec0ea2f9f1dd3e40fc3b4c42af6b6a44697)
679
683
 
680
- This change deprecates the parent property on the ISegment interface. The property will still exist, but should not generally be used by outside consumers.
684
+ This change deprecates the parent property on the ISegment interface. The property will still exist, but should not generally be used by outside consumers.
681
685
 
682
- There are some circumstances where a consumer may wish to know if a segment is still in the underlying tree and were using the parent property to determine that.
686
+ There are some circumstances where a consumer may wish to know if a segment is still in the underlying tree and were using the parent property to determine that.
683
687
 
684
- Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
688
+ Please change those checks to use the following `"parent" in segment && segment.parent !== undefined`
685
689
 
686
690
  ## 2.0.0-internal.5.1.0
687
691
 
688
692
  ### Minor Changes
689
693
 
690
- - New APIs for interval querying by range ([#15837](https://github.com/microsoft/FluidFramework/issues/15837)) [2a4242e1b5](https://github.com/microsoft/FluidFramework/commits/2a4242e1b5f15442b13ae413124ec76315a4cc52)
694
+ - New APIs for interval querying by range ([#15837](https://github.com/microsoft/FluidFramework/issues/15837)) [2a4242e1b5](https://github.com/microsoft/FluidFramework/commits/2a4242e1b5f15442b13ae413124ec76315a4cc52)
691
695
 
692
- SharedString now supports querying intervals whose start/end-points fall in a specified range.
696
+ SharedString now supports querying intervals whose start/end-points fall in a specified range.
693
697
 
694
698
  ## 2.0.0-internal.5.0.0
695
699
 
@@ -699,7 +703,7 @@ Dependency updates only.
699
703
 
700
704
  ### Minor Changes
701
705
 
702
- - New feature: Revertibles for SharedString and Interval provide undo-redo functionality. This includes all direct interval edits as well as string edits that indirectly affect intervals, wrapping merge-tree revertibles. ([#15778](https://github.com/microsoft/FluidFramework/pull/15778)) [6433cb2937](https://github.com/microsoft/FluidFramework/commits/6433cb2937d9a6bc39ac93b0eca2c073e6d5be52)
706
+ - New feature: Revertibles for SharedString and Interval provide undo-redo functionality. This includes all direct interval edits as well as string edits that indirectly affect intervals, wrapping merge-tree revertibles. ([#15778](https://github.com/microsoft/FluidFramework/pull/15778)) [6433cb2937](https://github.com/microsoft/FluidFramework/commits/6433cb2937d9a6bc39ac93b0eca2c073e6d5be52)
703
707
 
704
708
  ## 2.0.0-internal.4.1.0
705
709