@fluidframework/merge-tree 2.23.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 (323) hide show
  1. package/CHANGELOG.md +407 -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 +38 -22
  20. package/dist/mergeTree.d.ts.map +1 -1
  21. package/dist/mergeTree.js +408 -486
  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 +84 -65
  35. package/dist/perspective.d.ts.map +1 -1
  36. package/dist/perspective.js +109 -108
  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 +90 -0
  59. package/dist/stamps.d.ts.map +1 -0
  60. package/dist/stamps.js +90 -0
  61. package/dist/stamps.js.map +1 -0
  62. package/dist/test/Insertion.perf.spec.js +6 -51
  63. package/dist/test/Insertion.perf.spec.js.map +1 -1
  64. package/dist/test/PartialLengths.perf.spec.js +18 -25
  65. package/dist/test/PartialLengths.perf.spec.js.map +1 -1
  66. package/dist/test/Removal.perf.spec.js +13 -41
  67. package/dist/test/Removal.perf.spec.js.map +1 -1
  68. package/dist/test/beastTest.spec.d.ts.map +1 -1
  69. package/dist/test/beastTest.spec.js +41 -66
  70. package/dist/test/beastTest.spec.js.map +1 -1
  71. package/dist/test/client.annotateMarker.spec.js +1 -11
  72. package/dist/test/client.annotateMarker.spec.js.map +1 -1
  73. package/dist/test/client.applyMsg.spec.js +14 -14
  74. package/dist/test/client.applyMsg.spec.js.map +1 -1
  75. package/dist/test/client.getPosition.spec.js +1 -1
  76. package/dist/test/client.getPosition.spec.js.map +1 -1
  77. package/dist/test/client.localReference.spec.js +1 -1
  78. package/dist/test/client.localReference.spec.js.map +1 -1
  79. package/dist/test/client.rollback.spec.js +49 -58
  80. package/dist/test/client.rollback.spec.js.map +1 -1
  81. package/dist/test/client.rollbackFarm.spec.js +1 -1
  82. package/dist/test/client.rollbackFarm.spec.js.map +1 -1
  83. package/dist/test/client.searchForMarker.spec.js +4 -21
  84. package/dist/test/client.searchForMarker.spec.js.map +1 -1
  85. package/dist/test/index.d.ts +2 -2
  86. package/dist/test/index.d.ts.map +1 -1
  87. package/dist/test/index.js +2 -6
  88. package/dist/test/index.js.map +1 -1
  89. package/dist/test/mergeTree.annotate.deltaCallback.spec.js +14 -59
  90. package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  91. package/dist/test/mergeTree.annotate.spec.js +47 -63
  92. package/dist/test/mergeTree.annotate.spec.js.map +1 -1
  93. package/dist/test/mergeTree.insert.deltaCallback.spec.js +9 -62
  94. package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  95. package/dist/test/mergeTree.insertingWalk.spec.js +59 -125
  96. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  97. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +12 -93
  98. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  99. package/dist/test/mergeTree.markRangeRemoved.spec.js +10 -7
  100. package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  101. package/dist/test/mergeTree.walk.spec.js +2 -14
  102. package/dist/test/mergeTree.walk.spec.js.map +1 -1
  103. package/dist/test/mergeTreeOperationRunner.js +2 -2
  104. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  105. package/dist/test/obliterate.concurrent.spec.js +18 -23
  106. package/dist/test/obliterate.concurrent.spec.js.map +1 -1
  107. package/dist/test/obliterate.partialLength.spec.js +166 -136
  108. package/dist/test/obliterate.partialLength.spec.js.map +1 -1
  109. package/dist/test/obliterate.spec.js +16 -126
  110. package/dist/test/obliterate.spec.js.map +1 -1
  111. package/dist/test/partialLength.spec.js +28 -196
  112. package/dist/test/partialLength.spec.js.map +1 -1
  113. package/{prettier.config.cjs → dist/test/perspective.spec.d.ts} +2 -4
  114. package/dist/test/perspective.spec.d.ts.map +1 -0
  115. package/dist/test/perspective.spec.js +153 -0
  116. package/dist/test/perspective.spec.js.map +1 -0
  117. package/dist/test/propertyManager.spec.js +1 -1
  118. package/dist/test/propertyManager.spec.js.map +1 -1
  119. package/dist/test/resetPendingSegmentsToOp.spec.js +0 -2
  120. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  121. package/dist/test/segmentGroupCollection.spec.js +10 -4
  122. package/dist/test/segmentGroupCollection.spec.js.map +1 -1
  123. package/dist/test/stamps.spec.d.ts +6 -0
  124. package/dist/test/stamps.spec.d.ts.map +1 -0
  125. package/dist/test/stamps.spec.js +130 -0
  126. package/dist/test/stamps.spec.js.map +1 -0
  127. package/dist/test/testClient.d.ts +1 -0
  128. package/dist/test/testClient.d.ts.map +1 -1
  129. package/dist/test/testClient.js +16 -26
  130. package/dist/test/testClient.js.map +1 -1
  131. package/dist/test/testClientLogger.d.ts +9 -0
  132. package/dist/test/testClientLogger.d.ts.map +1 -1
  133. package/dist/test/testClientLogger.js +59 -47
  134. package/dist/test/testClientLogger.js.map +1 -1
  135. package/dist/test/testServer.d.ts +2 -1
  136. package/dist/test/testServer.d.ts.map +1 -1
  137. package/dist/test/testServer.js +7 -5
  138. package/dist/test/testServer.js.map +1 -1
  139. package/dist/test/testUtils.d.ts +36 -56
  140. package/dist/test/testUtils.d.ts.map +1 -1
  141. package/dist/test/testUtils.js +68 -77
  142. package/dist/test/testUtils.js.map +1 -1
  143. package/dist/test/text.d.ts +2 -2
  144. package/dist/test/text.d.ts.map +1 -1
  145. package/dist/test/text.js +5 -2
  146. package/dist/test/text.js.map +1 -1
  147. package/dist/textSegment.d.ts +0 -6
  148. package/dist/textSegment.d.ts.map +1 -1
  149. package/dist/textSegment.js.map +1 -1
  150. package/dist/zamboni.d.ts.map +1 -1
  151. package/dist/zamboni.js +53 -26
  152. package/dist/zamboni.js.map +1 -1
  153. package/lib/MergeTreeTextHelper.d.ts +9 -3
  154. package/lib/MergeTreeTextHelper.d.ts.map +1 -1
  155. package/lib/MergeTreeTextHelper.js +5 -5
  156. package/lib/MergeTreeTextHelper.js.map +1 -1
  157. package/lib/client.d.ts +7 -13
  158. package/lib/client.d.ts.map +1 -1
  159. package/lib/client.js +117 -116
  160. package/lib/client.js.map +1 -1
  161. package/lib/endOfTreeSegment.d.ts +12 -8
  162. package/lib/endOfTreeSegment.d.ts.map +1 -1
  163. package/lib/endOfTreeSegment.js +2 -4
  164. package/lib/endOfTreeSegment.js.map +1 -1
  165. package/lib/index.d.ts +6 -3
  166. package/lib/index.d.ts.map +1 -1
  167. package/lib/index.js +1 -1
  168. package/lib/index.js.map +1 -1
  169. package/lib/mergeTree.d.ts +38 -22
  170. package/lib/mergeTree.d.ts.map +1 -1
  171. package/lib/mergeTree.js +389 -491
  172. package/lib/mergeTree.js.map +1 -1
  173. package/lib/mergeTreeDeltaCallback.d.ts +4 -8
  174. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  175. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  176. package/lib/mergeTreeNodes.d.ts +32 -10
  177. package/lib/mergeTreeNodes.d.ts.map +1 -1
  178. package/lib/mergeTreeNodes.js +42 -29
  179. package/lib/mergeTreeNodes.js.map +1 -1
  180. package/lib/partialLengths.d.ts +2 -2
  181. package/lib/partialLengths.d.ts.map +1 -1
  182. package/lib/partialLengths.js +160 -111
  183. package/lib/partialLengths.js.map +1 -1
  184. package/lib/perspective.d.ts +84 -65
  185. package/lib/perspective.d.ts.map +1 -1
  186. package/lib/perspective.js +82 -103
  187. package/lib/perspective.js.map +1 -1
  188. package/lib/revertibles.d.ts.map +1 -1
  189. package/lib/revertibles.js +2 -2
  190. package/lib/revertibles.js.map +1 -1
  191. package/lib/segmentInfos.d.ts +20 -106
  192. package/lib/segmentInfos.d.ts.map +1 -1
  193. package/lib/segmentInfos.js +26 -37
  194. package/lib/segmentInfos.js.map +1 -1
  195. package/lib/segmentPropertiesManager.d.ts +1 -14
  196. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  197. package/lib/segmentPropertiesManager.js +2 -16
  198. package/lib/segmentPropertiesManager.js.map +1 -1
  199. package/lib/snapshotLoader.d.ts.map +1 -1
  200. package/lib/snapshotLoader.js +39 -19
  201. package/lib/snapshotLoader.js.map +1 -1
  202. package/lib/snapshotV1.d.ts.map +1 -1
  203. package/lib/snapshotV1.js +34 -26
  204. package/lib/snapshotV1.js.map +1 -1
  205. package/lib/snapshotlegacy.d.ts.map +1 -1
  206. package/lib/snapshotlegacy.js +7 -10
  207. package/lib/snapshotlegacy.js.map +1 -1
  208. package/lib/stamps.d.ts +90 -0
  209. package/lib/stamps.d.ts.map +1 -0
  210. package/lib/stamps.js +77 -0
  211. package/lib/stamps.js.map +1 -0
  212. package/lib/test/Insertion.perf.spec.js +6 -51
  213. package/lib/test/Insertion.perf.spec.js.map +1 -1
  214. package/lib/test/PartialLengths.perf.spec.js +18 -25
  215. package/lib/test/PartialLengths.perf.spec.js.map +1 -1
  216. package/lib/test/Removal.perf.spec.js +13 -41
  217. package/lib/test/Removal.perf.spec.js.map +1 -1
  218. package/lib/test/beastTest.spec.d.ts.map +1 -1
  219. package/lib/test/beastTest.spec.js +42 -67
  220. package/lib/test/beastTest.spec.js.map +1 -1
  221. package/lib/test/client.annotateMarker.spec.js +1 -11
  222. package/lib/test/client.annotateMarker.spec.js.map +1 -1
  223. package/lib/test/client.applyMsg.spec.js +14 -14
  224. package/lib/test/client.applyMsg.spec.js.map +1 -1
  225. package/lib/test/client.getPosition.spec.js +1 -1
  226. package/lib/test/client.getPosition.spec.js.map +1 -1
  227. package/lib/test/client.localReference.spec.js +1 -1
  228. package/lib/test/client.localReference.spec.js.map +1 -1
  229. package/lib/test/client.rollback.spec.js +50 -59
  230. package/lib/test/client.rollback.spec.js.map +1 -1
  231. package/lib/test/client.rollbackFarm.spec.js +1 -1
  232. package/lib/test/client.rollbackFarm.spec.js.map +1 -1
  233. package/lib/test/client.searchForMarker.spec.js +4 -21
  234. package/lib/test/client.searchForMarker.spec.js.map +1 -1
  235. package/lib/test/index.d.ts +2 -2
  236. package/lib/test/index.d.ts.map +1 -1
  237. package/lib/test/index.js +1 -1
  238. package/lib/test/index.js.map +1 -1
  239. package/lib/test/mergeTree.annotate.deltaCallback.spec.js +15 -60
  240. package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  241. package/lib/test/mergeTree.annotate.spec.js +48 -64
  242. package/lib/test/mergeTree.annotate.spec.js.map +1 -1
  243. package/lib/test/mergeTree.insert.deltaCallback.spec.js +10 -63
  244. package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  245. package/lib/test/mergeTree.insertingWalk.spec.js +61 -127
  246. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
  247. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +13 -94
  248. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  249. package/lib/test/mergeTree.markRangeRemoved.spec.js +10 -7
  250. package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  251. package/lib/test/mergeTree.walk.spec.js +2 -14
  252. package/lib/test/mergeTree.walk.spec.js.map +1 -1
  253. package/lib/test/mergeTreeOperationRunner.js +3 -3
  254. package/lib/test/mergeTreeOperationRunner.js.map +1 -1
  255. package/lib/test/obliterate.concurrent.spec.js +18 -23
  256. package/lib/test/obliterate.concurrent.spec.js.map +1 -1
  257. package/lib/test/obliterate.partialLength.spec.js +167 -137
  258. package/lib/test/obliterate.partialLength.spec.js.map +1 -1
  259. package/lib/test/obliterate.spec.js +17 -127
  260. package/lib/test/obliterate.spec.js.map +1 -1
  261. package/lib/test/partialLength.spec.js +29 -197
  262. package/lib/test/partialLength.spec.js.map +1 -1
  263. package/lib/test/perspective.spec.d.ts +6 -0
  264. package/lib/test/perspective.spec.d.ts.map +1 -0
  265. package/lib/test/perspective.spec.js +151 -0
  266. package/lib/test/perspective.spec.js.map +1 -0
  267. package/lib/test/propertyManager.spec.js +2 -2
  268. package/lib/test/propertyManager.spec.js.map +1 -1
  269. package/lib/test/resetPendingSegmentsToOp.spec.js +0 -2
  270. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  271. package/lib/test/segmentGroupCollection.spec.js +10 -4
  272. package/lib/test/segmentGroupCollection.spec.js.map +1 -1
  273. package/lib/test/stamps.spec.d.ts +6 -0
  274. package/lib/test/stamps.spec.d.ts.map +1 -0
  275. package/lib/test/stamps.spec.js +105 -0
  276. package/lib/test/stamps.spec.js.map +1 -0
  277. package/lib/test/testClient.d.ts +1 -0
  278. package/lib/test/testClient.d.ts.map +1 -1
  279. package/lib/test/testClient.js +18 -28
  280. package/lib/test/testClient.js.map +1 -1
  281. package/lib/test/testClientLogger.d.ts +9 -0
  282. package/lib/test/testClientLogger.d.ts.map +1 -1
  283. package/lib/test/testClientLogger.js +60 -48
  284. package/lib/test/testClientLogger.js.map +1 -1
  285. package/lib/test/testServer.d.ts +2 -1
  286. package/lib/test/testServer.d.ts.map +1 -1
  287. package/lib/test/testServer.js +7 -5
  288. package/lib/test/testServer.js.map +1 -1
  289. package/lib/test/testUtils.d.ts +36 -56
  290. package/lib/test/testUtils.d.ts.map +1 -1
  291. package/lib/test/testUtils.js +66 -48
  292. package/lib/test/testUtils.js.map +1 -1
  293. package/lib/test/text.d.ts +2 -2
  294. package/lib/test/text.d.ts.map +1 -1
  295. package/lib/test/text.js +6 -3
  296. package/lib/test/text.js.map +1 -1
  297. package/lib/textSegment.d.ts +0 -6
  298. package/lib/textSegment.d.ts.map +1 -1
  299. package/lib/textSegment.js.map +1 -1
  300. package/lib/tsdoc-metadata.json +1 -1
  301. package/lib/zamboni.d.ts.map +1 -1
  302. package/lib/zamboni.js +32 -28
  303. package/lib/zamboni.js.map +1 -1
  304. package/package.json +18 -21
  305. package/src/MergeTreeTextHelper.ts +17 -12
  306. package/src/client.ts +141 -197
  307. package/src/endOfTreeSegment.ts +11 -8
  308. package/src/index.ts +4 -3
  309. package/src/mergeTree.ts +501 -631
  310. package/src/mergeTreeDeltaCallback.ts +4 -8
  311. package/src/mergeTreeNodes.ts +66 -45
  312. package/src/partialLengths.ts +181 -137
  313. package/src/perspective.ts +127 -129
  314. package/src/revertibles.ts +2 -7
  315. package/src/segmentInfos.ts +48 -141
  316. package/src/segmentPropertiesManager.ts +2 -16
  317. package/src/snapshotLoader.ts +62 -30
  318. package/src/snapshotV1.ts +36 -28
  319. package/src/snapshotlegacy.ts +7 -16
  320. package/src/stamps.ts +164 -0
  321. package/src/textSegment.ts +0 -13
  322. package/src/zamboni.ts +38 -32
  323. package/tsconfig.json +1 -0
@@ -11,11 +11,14 @@ import { LocalReferencePosition, SlidingPreference } from "./localReference.js";
11
11
  import { IMergeTreeDeltaOpArgs, MergeTreeDeltaCallback, MergeTreeMaintenanceCallback } from "./mergeTreeDeltaCallback.js";
12
12
  import { CollaborationWindow, IMergeNode, ISegmentAction, Marker, MergeBlock, SegmentGroup, type ISegmentInternal, type ISegmentLeaf, type ISegmentPrivate } from "./mergeTreeNodes.js";
13
13
  import { IMergeTreeDeltaOp, IRelativePosition, ReferenceType } from "./ops.js";
14
+ import { type Perspective } from "./perspective.js";
14
15
  import { PropertySet } from "./properties.js";
15
16
  import { ReferencePosition } from "./referencePositions.js";
16
- import { type IInsertionInfo, type SegmentWithInfo } from "./segmentInfos.js";
17
- import { PropertiesRollback, type PropsOrAdjust } from "./segmentPropertiesManager.js";
17
+ import { type IHasInsertionInfo, type IHasRemovalInfo, type SegmentWithInfo } from "./segmentInfos.js";
18
+ import { type PropsOrAdjust } from "./segmentPropertiesManager.js";
18
19
  import { type InteriorSequencePlace } from "./sequencePlace.js";
20
+ import type { OperationStamp } from "./stamps.js";
21
+ export declare function isRemovedAndAcked(segment: ISegmentPrivate): segment is ISegmentLeaf & IHasRemovalInfo;
19
22
  /**
20
23
  * @legacy
21
24
  * @alpha
@@ -175,11 +178,17 @@ export declare class MergeTree {
175
178
  insertAfterRemovedSegs: boolean;
176
179
  zamboniSegments: boolean;
177
180
  };
181
+ /**
182
+ * A sentinel value that indicates an inserting walk should continue to the next block sibling.
183
+ * This can occur for example when tie-break forces insertion of a segment past an entire block (and
184
+ * the inserting walk first recurses into the block before realizing that).
185
+ */
178
186
  private static readonly theUnfinishedNode;
179
187
  readonly collabWindow: CollaborationWindow;
180
188
  readonly pendingSegments: DoublyLinkedList<SegmentGroup>;
181
189
  readonly segmentsToScour: Heap<LRUSegment>;
182
190
  readonly attributionPolicy: AttributionPolicy | undefined;
191
+ get localPerspective(): Perspective;
183
192
  /**
184
193
  * Whether or not all blocks in the mergeTree currently have information about local partial lengths computed.
185
194
  * This information is only necessary on reconnect, and otherwise costly to bookkeep.
@@ -196,25 +205,23 @@ export declare class MergeTree {
196
205
  set root(value: IRootMergeBlock);
197
206
  makeBlock(childCount: number): MergeBlock;
198
207
  /**
199
- * Compute the net length of this segment from a local perspective.
200
- * @param segment - Segment whose length to find
201
- * @param localSeq - localSeq at which to find the length of this segment. If not provided,
202
- * default is to consider the local client's current perspective. Only local sequence
203
- * numbers corresponding to un-acked operations give valid results.
208
+ * Compute the net length of this segment leaf from some perspective.
209
+ * @returns - Undefined if the segment has been removed and its removal is common knowledge to all collaborators (and therefore
210
+ * may not even be present on clients that have loaded from a summary beyond this point). Otherwise, the length of the segment.
204
211
  */
205
- localNetLength(segment: ISegmentLeaf, refSeq?: number, localSeq?: number): number | undefined;
212
+ leafLength(segment: ISegmentLeaf, perspective?: Perspective): number | undefined;
206
213
  unlinkMarker(marker: Marker): void;
207
214
  private addNode;
208
- reloadFromSegments(segments: SegmentWithInfo<IInsertionInfo>[]): void;
215
+ reloadFromSegments(segments: SegmentWithInfo<IHasInsertionInfo>[]): void;
209
216
  startCollaboration(localClientId: number, minSeq: number, currentSeq: number): void;
210
217
  private addToLRUSet;
211
- getLength(refSeq: number, clientId: number): number;
218
+ getLength(perspective: Perspective): number;
212
219
  /**
213
220
  * Returns the current length of the MergeTree for the local client.
214
221
  */
215
222
  get length(): number | undefined;
216
- getPosition(node: IMergeNode, refSeq: number, clientId: number, localSeq?: number): number;
217
- getContainingSegment(pos: number, refSeq: number, clientId: number, localSeq?: number): {
223
+ getPosition(node: IMergeNode, perspective: Perspective): number;
224
+ getContainingSegment(pos: number, perspective: Perspective): {
218
225
  segment: ISegmentLeaf | undefined;
219
226
  offset: number | undefined;
220
227
  };
@@ -239,7 +246,6 @@ export declare class MergeTree {
239
246
  * @param segments - An array of (not necessarily contiguous) segments with increasing ordinals.
240
247
  */
241
248
  private slideAckedRemovedSegmentReferences;
242
- private blockLength;
243
249
  /**
244
250
  * Compute local partial length information
245
251
  *
@@ -258,6 +264,16 @@ export declare class MergeTree {
258
264
  * @param localSeq - The local sequence number to consider. Defaults to including all local edits.
259
265
  */
260
266
  referencePositionToLocalPosition(refPos: ReferencePosition, refSeq?: number, clientId?: number, localSeq?: number | undefined): number;
267
+ /**
268
+ * Returns the immediately adjacent segment in the specified direction from this perspective.
269
+ * There may actually be multiple segments between the given segment and the returned segment,
270
+ * but they were either inserted after this perspective, or have been removed before this perspective.
271
+ *
272
+ * @param segment - The segment to start from.
273
+ * @param forward - The direction to search.
274
+ * @returns the next segment in the specified direction, or the start or end of the tree if there is no next segment.
275
+ */
276
+ private nextSegment;
261
277
  /**
262
278
  * Finds the nearest reference with ReferenceType.Tile to `startPos` in the direction dictated by `forwards`.
263
279
  * Uses depthFirstNodeWalk in addition to block-accelerated functionality. The search position will be included in
@@ -270,7 +286,7 @@ export declare class MergeTree {
270
286
  * @param markerLabel - Label of the marker to search for
271
287
  * @param forwards - Whether the string should be searched in the forward or backward direction
272
288
  */
273
- searchForMarker(startPos: number, clientId: number, markerLabel: string, forwards?: boolean): Marker | undefined;
289
+ searchForMarker(startPos: number, markerLabel: string, forwards?: boolean): Marker | undefined;
274
290
  private updateRoot;
275
291
  /**
276
292
  * Assign sequence number to existing segment; update partial lengths to reflect the change
@@ -286,8 +302,8 @@ export declare class MergeTree {
286
302
  * @param refseq - The reference sequence number at which to compute the position.
287
303
  * @param clientId - The client id with which to compute the position.
288
304
  */
289
- posFromRelativePos(relativePos: IRelativePosition, refseq?: number, clientId?: number): number;
290
- insertSegments(pos: number, segments: ISegmentPrivate[], refSeq: number, clientId: number, seq: number, opArgs: IMergeTreeDeltaOpArgs | undefined): void;
305
+ posFromRelativePos(relativePos: IRelativePosition, perspective: Perspective): number;
306
+ insertSegments(pos: number, segments: ISegmentPrivate[], perspective: Perspective, stampArg: OperationStamp, opArgs: IMergeTreeDeltaOpArgs | undefined): void;
291
307
  /**
292
308
  * Resolves a remote client's position against the local sequence
293
309
  * and returns the remote client's position relative to the local
@@ -308,6 +324,7 @@ export declare class MergeTree {
308
324
  private ensureIntervalBoundary;
309
325
  private breakTie;
310
326
  private insertingWalk;
327
+ private insertRecursive;
311
328
  private split;
312
329
  nodeUpdateOrdinals(block: MergeBlock): void;
313
330
  /**
@@ -319,12 +336,11 @@ export declare class MergeTree {
319
336
  * @param clientId - The id of the client making the annotate
320
337
  * @param seq - The sequence number of the annotate operation
321
338
  * @param opArgs - The op args for the annotate op. this is passed to the merge tree callback if there is one
322
- * @param rollback - Whether this is for a local rollback and what kind
323
339
  */
324
- annotateRange(start: number, end: number, propsOrAdjust: PropsOrAdjust, refSeq: number, clientId: number, seq: number, opArgs: IMergeTreeDeltaOpArgs, rollback?: PropertiesRollback): void;
340
+ annotateRange(start: number, end: number, propsOrAdjust: PropsOrAdjust, perspective: Perspective, stamp: OperationStamp, opArgs: IMergeTreeDeltaOpArgs): void;
325
341
  private obliterateRangeSided;
326
- obliterateRange(start: number | InteriorSequencePlace, end: number | InteriorSequencePlace, refSeq: number, clientId: number, seq: number, opArgs: IMergeTreeDeltaOpArgs): void;
327
- markRangeRemoved(start: number, end: number, refSeq: number, clientId: number, seq: number, opArgs: IMergeTreeDeltaOpArgs): void;
342
+ obliterateRange(start: number | InteriorSequencePlace, end: number | InteriorSequencePlace, perspective: Perspective, stampArg: OperationStamp, opArgs: IMergeTreeDeltaOpArgs): void;
343
+ markRangeRemoved(start: number, end: number, perspective: Perspective, stampArg: OperationStamp, opArgs: IMergeTreeDeltaOpArgs): void;
328
344
  /**
329
345
  * Revert an unacked local op
330
346
  */
@@ -361,7 +377,7 @@ export declare class MergeTree {
361
377
  */
362
378
  normalizeSegmentsOnRebase(): void;
363
379
  private blockUpdate;
364
- blockUpdatePathLengths(startBlock: MergeBlock | undefined, seq: number, clientId: number, newStructure?: boolean): void;
380
+ blockUpdatePathLengths(startBlock: MergeBlock | undefined, stamp: OperationStamp, newStructure?: boolean): void;
365
381
  private blockUpdateLength;
366
382
  /**
367
383
  * Map over all visible segments in a given range
@@ -370,7 +386,7 @@ export declare class MergeTree {
370
386
  *
371
387
  * See `this.nodeMap` for additional documentation
372
388
  */
373
- mapRange<TClientData>(handler: ISegmentAction<TClientData>, refSeq: number, clientId: number, accum: TClientData, start?: number, end?: number, splitRange?: boolean, visibilitySeq?: number): void;
389
+ mapRange<TClientData>(handler: ISegmentAction<TClientData>, perspective: Perspective, accum: TClientData, start?: number, end?: number, splitRange?: boolean, visibilityPerspective?: Perspective): void;
374
390
  /**
375
391
  * Map over all visible segments in a given range
376
392
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mergeTree.d.ts","sourceRoot":"","sources":["../src/mergeTree.ts"],"names":[],"mappings":"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"}