@fluidframework/merge-tree 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (770) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +4 -1
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +4 -0
  4. package/api-extractor-cjs.json +8 -0
  5. package/api-extractor-lint.json +1 -1
  6. package/api-extractor.json +1 -9
  7. package/api-report/merge-tree.api.md +6 -12
  8. package/dist/MergeTreeTextHelper.d.ts +2 -2
  9. package/dist/MergeTreeTextHelper.d.ts.map +1 -1
  10. package/dist/MergeTreeTextHelper.js +3 -3
  11. package/dist/MergeTreeTextHelper.js.map +1 -1
  12. package/dist/attributionCollection.d.ts +1 -1
  13. package/dist/attributionCollection.d.ts.map +1 -1
  14. package/dist/attributionCollection.js.map +1 -1
  15. package/dist/attributionPolicy.d.ts +1 -1
  16. package/dist/attributionPolicy.d.ts.map +1 -1
  17. package/dist/attributionPolicy.js +15 -15
  18. package/dist/attributionPolicy.js.map +1 -1
  19. package/dist/client.d.ts +31 -12
  20. package/dist/client.d.ts.map +1 -1
  21. package/dist/client.js +103 -92
  22. package/dist/client.js.map +1 -1
  23. package/dist/collections/index.d.ts +2 -2
  24. package/dist/collections/index.d.ts.map +1 -1
  25. package/dist/collections/index.js +6 -6
  26. package/dist/collections/index.js.map +1 -1
  27. package/dist/endOfTreeSegment.d.ts +3 -3
  28. package/dist/endOfTreeSegment.d.ts.map +1 -1
  29. package/dist/endOfTreeSegment.js +8 -8
  30. package/dist/endOfTreeSegment.js.map +1 -1
  31. package/dist/index.d.ts +20 -20
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +71 -71
  34. package/dist/index.js.map +1 -1
  35. package/dist/localReference.d.ts +9 -39
  36. package/dist/localReference.d.ts.map +1 -1
  37. package/dist/localReference.js +29 -24
  38. package/dist/localReference.js.map +1 -1
  39. package/dist/merge-tree-alpha.d.ts +28 -450
  40. package/dist/merge-tree-beta.d.ts +0 -438
  41. package/dist/merge-tree-public.d.ts +0 -438
  42. package/dist/merge-tree-untrimmed.d.ts +28 -787
  43. package/dist/mergeTree.d.ts +11 -19
  44. package/dist/mergeTree.d.ts.map +1 -1
  45. package/dist/mergeTree.js +201 -189
  46. package/dist/mergeTree.js.map +1 -1
  47. package/dist/mergeTreeDeltaCallback.d.ts +3 -7
  48. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  49. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  50. package/dist/mergeTreeNodeWalk.d.ts +1 -1
  51. package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
  52. package/dist/mergeTreeNodeWalk.js.map +1 -1
  53. package/dist/mergeTreeNodes.d.ts +17 -14
  54. package/dist/mergeTreeNodes.d.ts.map +1 -1
  55. package/dist/mergeTreeNodes.js +32 -32
  56. package/dist/mergeTreeNodes.js.map +1 -1
  57. package/dist/mergeTreeTracking.d.ts +2 -2
  58. package/dist/mergeTreeTracking.d.ts.map +1 -1
  59. package/dist/mergeTreeTracking.js +2 -2
  60. package/dist/mergeTreeTracking.js.map +1 -1
  61. package/dist/opBuilder.d.ts +3 -3
  62. package/dist/opBuilder.d.ts.map +1 -1
  63. package/dist/opBuilder.js +7 -7
  64. package/dist/opBuilder.js.map +1 -1
  65. package/dist/package.json +3 -0
  66. package/dist/partialLengths.d.ts +5 -5
  67. package/dist/partialLengths.d.ts.map +1 -1
  68. package/dist/partialLengths.js +29 -29
  69. package/dist/partialLengths.js.map +1 -1
  70. package/dist/referencePositions.d.ts +4 -4
  71. package/dist/referencePositions.d.ts.map +1 -1
  72. package/dist/referencePositions.js +2 -2
  73. package/dist/referencePositions.js.map +1 -1
  74. package/dist/revertibles.d.ts +7 -7
  75. package/dist/revertibles.d.ts.map +1 -1
  76. package/dist/revertibles.js +39 -39
  77. package/dist/revertibles.js.map +1 -1
  78. package/dist/segmentGroupCollection.d.ts +1 -1
  79. package/dist/segmentGroupCollection.d.ts.map +1 -1
  80. package/dist/segmentGroupCollection.js +3 -3
  81. package/dist/segmentGroupCollection.js.map +1 -1
  82. package/dist/segmentPropertiesManager.d.ts +2 -2
  83. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  84. package/dist/segmentPropertiesManager.js +8 -8
  85. package/dist/segmentPropertiesManager.js.map +1 -1
  86. package/dist/snapshotChunks.d.ts +3 -3
  87. package/dist/snapshotChunks.d.ts.map +1 -1
  88. package/dist/snapshotChunks.js +5 -5
  89. package/dist/snapshotChunks.js.map +1 -1
  90. package/dist/snapshotLoader.d.ts +3 -3
  91. package/dist/snapshotLoader.d.ts.map +1 -1
  92. package/dist/snapshotLoader.js +19 -19
  93. package/dist/snapshotLoader.js.map +1 -1
  94. package/dist/snapshotV1.d.ts +3 -3
  95. package/dist/snapshotV1.d.ts.map +1 -1
  96. package/dist/snapshotV1.js +35 -18
  97. package/dist/snapshotV1.js.map +1 -1
  98. package/dist/snapshotlegacy.d.ts +2 -2
  99. package/dist/snapshotlegacy.d.ts.map +1 -1
  100. package/dist/snapshotlegacy.js +22 -10
  101. package/dist/snapshotlegacy.js.map +1 -1
  102. package/dist/sortedSegmentSet.d.ts +3 -3
  103. package/dist/sortedSegmentSet.d.ts.map +1 -1
  104. package/dist/sortedSegmentSet.js +7 -5
  105. package/dist/sortedSegmentSet.js.map +1 -1
  106. package/dist/test/Insertion.perf.spec.js +15 -15
  107. package/dist/test/Insertion.perf.spec.js.map +1 -1
  108. package/dist/test/PartialLengths.perf.spec.js +13 -13
  109. package/dist/test/PartialLengths.perf.spec.js.map +1 -1
  110. package/dist/test/Removal.perf.spec.js +25 -25
  111. package/dist/test/Removal.perf.spec.js.map +1 -1
  112. package/dist/test/Snapshot.perf.spec.js +3 -3
  113. package/dist/test/Snapshot.perf.spec.js.map +1 -1
  114. package/dist/test/attributionCollection.perf.spec.js +9 -9
  115. package/dist/test/attributionCollection.perf.spec.js.map +1 -1
  116. package/dist/test/attributionCollection.spec.js +46 -46
  117. package/dist/test/attributionCollection.spec.js.map +1 -1
  118. package/dist/test/attributionPolicy.spec.js +13 -13
  119. package/dist/test/attributionPolicy.spec.js.map +1 -1
  120. package/dist/test/{beastTest.d.ts → beastTest.spec.d.ts} +3 -3
  121. package/dist/test/beastTest.spec.d.ts.map +1 -0
  122. package/dist/test/{beastTest.js → beastTest.spec.js} +120 -119
  123. package/dist/test/beastTest.spec.js.map +1 -0
  124. package/dist/test/client.annotateMarker.spec.js +13 -13
  125. package/dist/test/client.annotateMarker.spec.js.map +1 -1
  126. package/dist/test/{client.apis.d.ts → client.apis.spec.d.ts} +1 -1
  127. package/dist/test/client.apis.spec.d.ts.map +1 -0
  128. package/dist/test/{client.apis.js → client.apis.spec.js} +8 -8
  129. package/dist/test/client.apis.spec.js.map +1 -0
  130. package/dist/test/client.applyMsg.spec.js +106 -43
  131. package/dist/test/client.applyMsg.spec.js.map +1 -1
  132. package/dist/test/client.applyStashedOpFarm.spec.d.ts +1 -1
  133. package/dist/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
  134. package/dist/test/client.applyStashedOpFarm.spec.js +33 -21
  135. package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -1
  136. package/dist/test/client.attributionFarm.spec.d.ts +1 -1
  137. package/dist/test/client.attributionFarm.spec.d.ts.map +1 -1
  138. package/dist/test/client.attributionFarm.spec.js +13 -13
  139. package/dist/test/client.attributionFarm.spec.js.map +1 -1
  140. package/dist/test/client.conflictFarm.spec.d.ts +1 -1
  141. package/dist/test/client.conflictFarm.spec.d.ts.map +1 -1
  142. package/dist/test/client.conflictFarm.spec.js +9 -9
  143. package/dist/test/client.conflictFarm.spec.js.map +1 -1
  144. package/dist/test/client.getPosition.spec.js +4 -4
  145. package/dist/test/client.getPosition.spec.js.map +1 -1
  146. package/dist/test/client.localReference.spec.js +140 -109
  147. package/dist/test/client.localReference.spec.js.map +1 -1
  148. package/dist/test/client.localReferenceFarm.spec.js +18 -18
  149. package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
  150. package/dist/test/client.rebasePosition.spec.js +2 -2
  151. package/dist/test/client.rebasePosition.spec.js.map +1 -1
  152. package/dist/test/client.reconnectFarm.spec.d.ts +1 -1
  153. package/dist/test/client.reconnectFarm.spec.d.ts.map +1 -1
  154. package/dist/test/client.reconnectFarm.spec.js +10 -10
  155. package/dist/test/client.reconnectFarm.spec.js.map +1 -1
  156. package/dist/test/client.replay.spec.js +11 -11
  157. package/dist/test/client.replay.spec.js.map +1 -1
  158. package/dist/test/client.rollback.spec.js +83 -83
  159. package/dist/test/client.rollback.spec.js.map +1 -1
  160. package/dist/test/client.rollbackFarm.spec.js +9 -9
  161. package/dist/test/client.rollbackFarm.spec.js.map +1 -1
  162. package/dist/test/client.searchForMarker.spec.js +137 -137
  163. package/dist/test/client.searchForMarker.spec.js.map +1 -1
  164. package/dist/test/client.walkSegments.spec.js +2 -2
  165. package/dist/test/client.walkSegments.spec.js.map +1 -1
  166. package/dist/test/collections.list.spec.js +4 -4
  167. package/dist/test/collections.list.spec.js.map +1 -1
  168. package/dist/test/createInsertOnlyAttributionPolicy.spec.js +4 -4
  169. package/dist/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
  170. package/dist/test/dirname.cjs +16 -0
  171. package/dist/test/dirname.cjs.map +1 -0
  172. package/dist/test/dirname.d.cts +6 -0
  173. package/dist/test/dirname.d.cts.map +1 -0
  174. package/dist/test/index.d.ts +8 -8
  175. package/dist/test/index.d.ts.map +1 -1
  176. package/dist/test/index.js +82 -81
  177. package/dist/test/index.js.map +1 -1
  178. package/dist/test/mergeTree.annotate.deltaCallback.spec.js +39 -39
  179. package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  180. package/dist/test/mergeTree.annotate.spec.js +39 -39
  181. package/dist/test/mergeTree.annotate.spec.js.map +1 -1
  182. package/dist/test/mergeTree.insert.deltaCallback.spec.js +35 -35
  183. package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  184. package/dist/test/mergeTree.insertingWalk.spec.js +77 -77
  185. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  186. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +42 -42
  187. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  188. package/dist/test/mergeTree.markRangeRemoved.spec.js +15 -15
  189. package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  190. package/dist/test/mergeTree.walk.spec.js +14 -14
  191. package/dist/test/mergeTree.walk.spec.js.map +1 -1
  192. package/dist/test/mergeTree.zamboni.spec.js +9 -9
  193. package/dist/test/mergeTree.zamboni.spec.js.map +1 -1
  194. package/dist/test/mergeTreeOperationRunner.d.ts +4 -4
  195. package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
  196. package/dist/test/mergeTreeOperationRunner.js +16 -15
  197. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  198. package/dist/test/mergeTreeOperationRunner.spec.js +5 -5
  199. package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -1
  200. package/dist/test/obliterate.concurrent.spec.js +85 -88
  201. package/dist/test/obliterate.concurrent.spec.js.map +1 -1
  202. package/dist/test/obliterate.deltaCallback.spec.d.ts +6 -0
  203. package/dist/test/obliterate.deltaCallback.spec.d.ts.map +1 -0
  204. package/dist/test/obliterate.deltaCallback.spec.js +146 -0
  205. package/dist/test/obliterate.deltaCallback.spec.js.map +1 -0
  206. package/dist/test/obliterate.partialLength.spec.js +39 -44
  207. package/dist/test/obliterate.partialLength.spec.js.map +1 -1
  208. package/dist/test/obliterate.reconnect.spec.js +15 -18
  209. package/dist/test/obliterate.reconnect.spec.js.map +1 -1
  210. package/dist/test/obliterate.spec.js +16 -16
  211. package/dist/test/obliterate.spec.js.map +1 -1
  212. package/dist/test/ordinal.spec.js +5 -5
  213. package/dist/test/ordinal.spec.js.map +1 -1
  214. package/dist/test/partialLength.spec.js +58 -64
  215. package/dist/test/partialLength.spec.js.map +1 -1
  216. package/dist/test/properties.spec.js +15 -15
  217. package/dist/test/properties.spec.js.map +1 -1
  218. package/dist/test/reconnectHelper.d.ts +8 -8
  219. package/dist/test/reconnectHelper.d.ts.map +1 -1
  220. package/dist/test/reconnectHelper.js +3 -3
  221. package/dist/test/reconnectHelper.js.map +1 -1
  222. package/dist/test/resetPendingSegmentsToOp.spec.js +18 -18
  223. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  224. package/dist/test/revertibleFarm.spec.js +21 -21
  225. package/dist/test/revertibleFarm.spec.js.map +1 -1
  226. package/dist/test/revertibles.spec.js +67 -67
  227. package/dist/test/revertibles.spec.js.map +1 -1
  228. package/dist/test/segmentGroupCollection.spec.js +3 -3
  229. package/dist/test/segmentGroupCollection.spec.js.map +1 -1
  230. package/dist/test/snapshot.spec.js +16 -16
  231. package/dist/test/snapshot.spec.js.map +1 -1
  232. package/dist/test/snapshot.utils.d.ts +4 -4
  233. package/dist/test/snapshot.utils.d.ts.map +1 -1
  234. package/dist/test/snapshot.utils.js +11 -11
  235. package/dist/test/snapshot.utils.js.map +1 -1
  236. package/dist/test/snapshotlegacy.spec.js +22 -22
  237. package/dist/test/snapshotlegacy.spec.js.map +1 -1
  238. package/dist/test/sortedSegmentSet.spec.js +9 -9
  239. package/dist/test/sortedSegmentSet.spec.js.map +1 -1
  240. package/dist/test/testClient.d.ts +13 -16
  241. package/dist/test/testClient.d.ts.map +1 -1
  242. package/dist/test/testClient.js +57 -59
  243. package/dist/test/testClient.js.map +1 -1
  244. package/dist/test/testClientLogger.d.ts +3 -3
  245. package/dist/test/testClientLogger.d.ts.map +1 -1
  246. package/dist/test/testClientLogger.js +19 -19
  247. package/dist/test/testClientLogger.js.map +1 -1
  248. package/dist/test/testServer.d.ts +3 -3
  249. package/dist/test/testServer.d.ts.map +1 -1
  250. package/dist/test/testServer.js +8 -8
  251. package/dist/test/testServer.js.map +1 -1
  252. package/dist/test/testUtils.d.ts +14 -6
  253. package/dist/test/testUtils.d.ts.map +1 -1
  254. package/dist/test/testUtils.js +36 -17
  255. package/dist/test/testUtils.js.map +1 -1
  256. package/dist/test/text.d.ts +2 -2
  257. package/dist/test/text.d.ts.map +1 -1
  258. package/dist/test/text.js +10 -10
  259. package/dist/test/text.js.map +1 -1
  260. package/dist/test/tracking.spec.js +12 -12
  261. package/dist/test/tracking.spec.js.map +1 -1
  262. package/dist/test/{wordUnitTests.d.ts → wordUnitTests.spec.d.ts} +1 -1
  263. package/dist/test/wordUnitTests.spec.d.ts.map +1 -0
  264. package/dist/test/{wordUnitTests.js → wordUnitTests.spec.js} +16 -15
  265. package/dist/test/wordUnitTests.spec.js.map +1 -0
  266. package/dist/textSegment.d.ts +3 -3
  267. package/dist/textSegment.d.ts.map +1 -1
  268. package/dist/textSegment.js +2 -2
  269. package/dist/textSegment.js.map +1 -1
  270. package/dist/tsdoc-metadata.json +1 -1
  271. package/dist/zamboni.d.ts +2 -2
  272. package/dist/zamboni.d.ts.map +1 -1
  273. package/dist/zamboni.js +19 -19
  274. package/dist/zamboni.js.map +1 -1
  275. package/lib/{MergeTreeTextHelper.d.mts → MergeTreeTextHelper.d.ts} +3 -3
  276. package/lib/MergeTreeTextHelper.d.ts.map +1 -0
  277. package/lib/{MergeTreeTextHelper.mjs → MergeTreeTextHelper.js} +3 -2
  278. package/lib/MergeTreeTextHelper.js.map +1 -0
  279. package/lib/{attributionCollection.d.mts → attributionCollection.d.ts} +2 -2
  280. package/lib/attributionCollection.d.ts.map +1 -0
  281. package/lib/{attributionCollection.mjs → attributionCollection.js} +1 -1
  282. package/lib/attributionCollection.js.map +1 -0
  283. package/lib/{attributionPolicy.d.mts → attributionPolicy.d.ts} +2 -2
  284. package/lib/attributionPolicy.d.ts.map +1 -0
  285. package/lib/{attributionPolicy.mjs → attributionPolicy.js} +4 -4
  286. package/lib/attributionPolicy.js.map +1 -0
  287. package/lib/{client.d.mts → client.d.ts} +32 -13
  288. package/lib/client.d.ts.map +1 -0
  289. package/lib/{client.mjs → client.js} +42 -31
  290. package/lib/client.js.map +1 -0
  291. package/lib/collections/{index.d.mts → index.d.ts} +3 -3
  292. package/lib/collections/index.d.ts.map +1 -0
  293. package/lib/collections/index.js +7 -0
  294. package/lib/collections/index.js.map +1 -0
  295. package/lib/collections/{list.d.mts → list.d.ts} +1 -1
  296. package/lib/collections/list.d.ts.map +1 -0
  297. package/lib/collections/{list.mjs → list.js} +1 -1
  298. package/lib/collections/list.js.map +1 -0
  299. package/lib/collections/{rbTree.d.mts → rbTree.d.ts} +1 -1
  300. package/lib/collections/rbTree.d.ts.map +1 -0
  301. package/lib/collections/{rbTree.mjs → rbTree.js} +1 -1
  302. package/lib/collections/rbTree.js.map +1 -0
  303. package/lib/{constants.d.mts → constants.d.ts} +1 -1
  304. package/lib/constants.d.ts.map +1 -0
  305. package/lib/{constants.mjs → constants.js} +1 -1
  306. package/lib/constants.js.map +1 -0
  307. package/lib/{endOfTreeSegment.d.mts → endOfTreeSegment.d.ts} +4 -4
  308. package/lib/endOfTreeSegment.d.ts.map +1 -0
  309. package/lib/{endOfTreeSegment.mjs → endOfTreeSegment.js} +3 -3
  310. package/lib/endOfTreeSegment.js.map +1 -0
  311. package/lib/{index.d.mts → index.d.ts} +21 -21
  312. package/lib/index.d.ts.map +1 -0
  313. package/lib/{index.mjs → index.js} +20 -20
  314. package/lib/index.js.map +1 -0
  315. package/lib/{localReference.d.mts → localReference.d.ts} +10 -40
  316. package/lib/localReference.d.ts.map +1 -0
  317. package/lib/{localReference.mjs → localReference.js} +12 -6
  318. package/lib/localReference.js.map +1 -0
  319. package/lib/{merge-tree-alpha.d.mts → merge-tree-alpha.d.ts} +28 -450
  320. package/lib/merge-tree-beta.d.ts +230 -0
  321. package/lib/merge-tree-public.d.ts +230 -0
  322. package/lib/{merge-tree-untrimmed.d.mts → merge-tree-untrimmed.d.ts} +28 -787
  323. package/lib/{mergeTree.d.mts → mergeTree.d.ts} +12 -20
  324. package/lib/mergeTree.d.ts.map +1 -0
  325. package/lib/{mergeTree.mjs → mergeTree.js} +47 -32
  326. package/lib/mergeTree.js.map +1 -0
  327. package/lib/{mergeTreeDeltaCallback.d.mts → mergeTreeDeltaCallback.d.ts} +8 -8
  328. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -0
  329. package/lib/{mergeTreeDeltaCallback.mjs → mergeTreeDeltaCallback.js} +1 -1
  330. package/lib/mergeTreeDeltaCallback.js.map +1 -0
  331. package/lib/{mergeTreeNodeWalk.d.mts → mergeTreeNodeWalk.d.ts} +2 -2
  332. package/lib/mergeTreeNodeWalk.d.ts.map +1 -0
  333. package/lib/{mergeTreeNodeWalk.mjs → mergeTreeNodeWalk.js} +1 -1
  334. package/lib/mergeTreeNodeWalk.js.map +1 -0
  335. package/lib/{mergeTreeNodes.d.mts → mergeTreeNodes.d.ts} +18 -15
  336. package/lib/mergeTreeNodes.d.ts.map +1 -0
  337. package/lib/{mergeTreeNodes.mjs → mergeTreeNodes.js} +12 -10
  338. package/lib/mergeTreeNodes.js.map +1 -0
  339. package/lib/{mergeTreeTracking.d.mts → mergeTreeTracking.d.ts} +3 -3
  340. package/lib/mergeTreeTracking.d.ts.map +1 -0
  341. package/lib/{mergeTreeTracking.mjs → mergeTreeTracking.js} +3 -2
  342. package/lib/mergeTreeTracking.js.map +1 -0
  343. package/lib/{opBuilder.d.mts → opBuilder.d.ts} +4 -4
  344. package/lib/{opBuilder.d.mts.map → opBuilder.d.ts.map} +1 -1
  345. package/lib/{opBuilder.mjs → opBuilder.js} +2 -2
  346. package/lib/opBuilder.js.map +1 -0
  347. package/lib/{ops.d.mts → ops.d.ts} +1 -1
  348. package/lib/ops.d.ts.map +1 -0
  349. package/lib/{ops.mjs → ops.js} +1 -1
  350. package/lib/ops.js.map +1 -0
  351. package/lib/{ordinal.d.mts → ordinal.d.ts} +1 -1
  352. package/lib/ordinal.d.ts.map +1 -0
  353. package/lib/{ordinal.mjs → ordinal.js} +2 -1
  354. package/lib/ordinal.js.map +1 -0
  355. package/lib/{partialLengths.d.mts → partialLengths.d.ts} +6 -6
  356. package/lib/partialLengths.d.ts.map +1 -0
  357. package/lib/{partialLengths.mjs → partialLengths.js} +11 -10
  358. package/lib/partialLengths.js.map +1 -0
  359. package/lib/{properties.d.mts → properties.d.ts} +1 -1
  360. package/lib/properties.d.ts.map +1 -0
  361. package/lib/{properties.mjs → properties.js} +1 -1
  362. package/lib/properties.js.map +1 -0
  363. package/lib/{referencePositions.d.mts → referencePositions.d.ts} +5 -5
  364. package/lib/referencePositions.d.ts.map +1 -0
  365. package/lib/{referencePositions.mjs → referencePositions.js} +2 -2
  366. package/lib/referencePositions.js.map +1 -0
  367. package/lib/{revertibles.d.mts → revertibles.d.ts} +8 -8
  368. package/lib/revertibles.d.ts.map +1 -0
  369. package/lib/{revertibles.mjs → revertibles.js} +13 -13
  370. package/lib/revertibles.js.map +1 -0
  371. package/lib/{segmentGroupCollection.d.mts → segmentGroupCollection.d.ts} +2 -2
  372. package/lib/segmentGroupCollection.d.ts.map +1 -0
  373. package/lib/{segmentGroupCollection.mjs → segmentGroupCollection.js} +2 -2
  374. package/lib/segmentGroupCollection.js.map +1 -0
  375. package/lib/{segmentPropertiesManager.d.mts → segmentPropertiesManager.d.ts} +3 -3
  376. package/lib/segmentPropertiesManager.d.ts.map +1 -0
  377. package/lib/{segmentPropertiesManager.mjs → segmentPropertiesManager.js} +5 -3
  378. package/lib/segmentPropertiesManager.js.map +1 -0
  379. package/lib/{snapshotChunks.d.mts → snapshotChunks.d.ts} +4 -4
  380. package/lib/snapshotChunks.d.ts.map +1 -0
  381. package/lib/{snapshotChunks.mjs → snapshotChunks.js} +2 -2
  382. package/lib/snapshotChunks.js.map +1 -0
  383. package/lib/{snapshotLoader.d.mts → snapshotLoader.d.ts} +4 -4
  384. package/lib/snapshotLoader.d.ts.map +1 -0
  385. package/lib/{snapshotLoader.mjs → snapshotLoader.js} +10 -9
  386. package/lib/snapshotLoader.js.map +1 -0
  387. package/lib/{snapshotV1.d.mts → snapshotV1.d.ts} +4 -4
  388. package/lib/snapshotV1.d.ts.map +1 -0
  389. package/lib/{snapshotV1.mjs → snapshotV1.js} +24 -7
  390. package/lib/snapshotV1.js.map +1 -0
  391. package/lib/{snapshotlegacy.d.mts → snapshotlegacy.d.ts} +3 -3
  392. package/lib/snapshotlegacy.d.ts.map +1 -0
  393. package/lib/{snapshotlegacy.mjs → snapshotlegacy.js} +17 -4
  394. package/lib/snapshotlegacy.js.map +1 -0
  395. package/lib/{sortedSegmentSet.d.mts → sortedSegmentSet.d.ts} +4 -4
  396. package/lib/sortedSegmentSet.d.ts.map +1 -0
  397. package/lib/{sortedSegmentSet.mjs → sortedSegmentSet.js} +8 -5
  398. package/lib/sortedSegmentSet.js.map +1 -0
  399. package/lib/{sortedSet.d.mts → sortedSet.d.ts} +1 -1
  400. package/lib/sortedSet.d.ts.map +1 -0
  401. package/lib/{sortedSet.mjs → sortedSet.js} +1 -1
  402. package/lib/sortedSet.js.map +1 -0
  403. package/lib/test/Insertion.perf.spec.d.ts +6 -0
  404. package/lib/test/Insertion.perf.spec.d.ts.map +1 -0
  405. package/lib/test/Insertion.perf.spec.js +111 -0
  406. package/lib/test/Insertion.perf.spec.js.map +1 -0
  407. package/lib/test/PartialLengths.perf.spec.d.ts +6 -0
  408. package/lib/test/PartialLengths.perf.spec.d.ts.map +1 -0
  409. package/lib/test/PartialLengths.perf.spec.js +65 -0
  410. package/lib/test/PartialLengths.perf.spec.js.map +1 -0
  411. package/lib/test/Removal.perf.spec.d.ts +6 -0
  412. package/lib/test/Removal.perf.spec.d.ts.map +1 -0
  413. package/lib/test/Removal.perf.spec.js +164 -0
  414. package/lib/test/Removal.perf.spec.js.map +1 -0
  415. package/lib/test/Snapshot.perf.spec.d.ts +6 -0
  416. package/lib/test/Snapshot.perf.spec.d.ts.map +1 -0
  417. package/lib/test/Snapshot.perf.spec.js +31 -0
  418. package/lib/test/Snapshot.perf.spec.js.map +1 -0
  419. package/lib/test/attributionCollection.perf.spec.d.ts +6 -0
  420. package/lib/test/attributionCollection.perf.spec.d.ts.map +1 -0
  421. package/lib/test/attributionCollection.perf.spec.js +229 -0
  422. package/lib/test/attributionCollection.perf.spec.js.map +1 -0
  423. package/lib/test/attributionCollection.spec.d.ts +6 -0
  424. package/lib/test/attributionCollection.spec.d.ts.map +1 -0
  425. package/lib/test/attributionCollection.spec.js +484 -0
  426. package/lib/test/attributionCollection.spec.js.map +1 -0
  427. package/lib/test/attributionPolicy.spec.d.ts +6 -0
  428. package/lib/test/attributionPolicy.spec.d.ts.map +1 -0
  429. package/lib/test/attributionPolicy.spec.js +187 -0
  430. package/lib/test/attributionPolicy.spec.js.map +1 -0
  431. package/lib/test/beastTest.spec.d.ts +54 -0
  432. package/lib/test/beastTest.spec.d.ts.map +1 -0
  433. package/lib/test/beastTest.spec.js +1318 -0
  434. package/lib/test/beastTest.spec.js.map +1 -0
  435. package/lib/test/client.annotateMarker.spec.d.ts +6 -0
  436. package/lib/test/client.annotateMarker.spec.d.ts.map +1 -0
  437. package/lib/test/client.annotateMarker.spec.js +43 -0
  438. package/lib/test/client.annotateMarker.spec.js.map +1 -0
  439. package/lib/test/client.apis.spec.d.ts +7 -0
  440. package/lib/test/client.apis.spec.d.ts.map +1 -0
  441. package/lib/test/client.apis.spec.js +67 -0
  442. package/lib/test/client.apis.spec.js.map +1 -0
  443. package/lib/test/client.applyMsg.spec.d.ts +6 -0
  444. package/lib/test/client.applyMsg.spec.d.ts.map +1 -0
  445. package/lib/test/client.applyMsg.spec.js +561 -0
  446. package/lib/test/client.applyMsg.spec.js.map +1 -0
  447. package/lib/test/client.applyStashedOpFarm.spec.d.ts +12 -0
  448. package/lib/test/client.applyStashedOpFarm.spec.d.ts.map +1 -0
  449. package/lib/test/client.applyStashedOpFarm.spec.js +153 -0
  450. package/lib/test/client.applyStashedOpFarm.spec.js.map +1 -0
  451. package/lib/test/client.attributionFarm.spec.d.ts +7 -0
  452. package/lib/test/client.attributionFarm.spec.d.ts.map +1 -0
  453. package/lib/test/client.attributionFarm.spec.js +92 -0
  454. package/lib/test/client.attributionFarm.spec.js.map +1 -0
  455. package/lib/test/client.conflictFarm.spec.d.ts +15 -0
  456. package/lib/test/client.conflictFarm.spec.d.ts.map +1 -0
  457. package/lib/test/client.conflictFarm.spec.js +85 -0
  458. package/lib/test/client.conflictFarm.spec.js.map +1 -0
  459. package/lib/test/client.getPosition.spec.d.ts +6 -0
  460. package/lib/test/client.getPosition.spec.d.ts.map +1 -0
  461. package/lib/test/client.getPosition.spec.js +52 -0
  462. package/lib/test/client.getPosition.spec.js.map +1 -0
  463. package/lib/test/client.localReference.spec.d.ts +6 -0
  464. package/lib/test/client.localReference.spec.d.ts.map +1 -0
  465. package/lib/test/client.localReference.spec.js +468 -0
  466. package/lib/test/client.localReference.spec.js.map +1 -0
  467. package/lib/test/client.localReferenceFarm.spec.d.ts +6 -0
  468. package/lib/test/client.localReferenceFarm.spec.d.ts.map +1 -0
  469. package/lib/test/client.localReferenceFarm.spec.js +86 -0
  470. package/lib/test/client.localReferenceFarm.spec.js.map +1 -0
  471. package/lib/test/client.rebasePosition.spec.d.ts +6 -0
  472. package/lib/test/client.rebasePosition.spec.d.ts.map +1 -0
  473. package/lib/test/client.rebasePosition.spec.js +100 -0
  474. package/lib/test/client.rebasePosition.spec.js.map +1 -0
  475. package/lib/test/client.reconnectFarm.spec.d.ts +12 -0
  476. package/lib/test/client.reconnectFarm.spec.d.ts.map +1 -0
  477. package/lib/test/client.reconnectFarm.spec.js +88 -0
  478. package/lib/test/client.reconnectFarm.spec.js.map +1 -0
  479. package/lib/test/client.replay.spec.d.ts +6 -0
  480. package/lib/test/client.replay.spec.d.ts.map +1 -0
  481. package/lib/test/client.replay.spec.js +57 -0
  482. package/lib/test/client.replay.spec.js.map +1 -0
  483. package/lib/test/client.rollback.spec.d.ts +6 -0
  484. package/lib/test/client.rollback.spec.d.ts.map +1 -0
  485. package/lib/test/client.rollback.spec.js +451 -0
  486. package/lib/test/client.rollback.spec.js.map +1 -0
  487. package/lib/test/client.rollbackFarm.spec.d.ts +6 -0
  488. package/lib/test/client.rollbackFarm.spec.d.ts.map +1 -0
  489. package/lib/test/client.rollbackFarm.spec.js +46 -0
  490. package/lib/test/client.rollbackFarm.spec.js.map +1 -0
  491. package/lib/test/client.searchForMarker.spec.d.ts +6 -0
  492. package/lib/test/client.searchForMarker.spec.d.ts.map +1 -0
  493. package/lib/test/client.searchForMarker.spec.js +495 -0
  494. package/lib/test/client.searchForMarker.spec.js.map +1 -0
  495. package/lib/test/client.walkSegments.spec.d.ts +6 -0
  496. package/lib/test/client.walkSegments.spec.d.ts.map +1 -0
  497. package/lib/test/client.walkSegments.spec.js +52 -0
  498. package/lib/test/client.walkSegments.spec.js.map +1 -0
  499. package/lib/test/collections.list.spec.d.ts +6 -0
  500. package/lib/test/collections.list.spec.d.ts.map +1 -0
  501. package/lib/test/collections.list.spec.js +82 -0
  502. package/lib/test/collections.list.spec.js.map +1 -0
  503. package/lib/test/createInsertOnlyAttributionPolicy.spec.d.ts +6 -0
  504. package/lib/test/createInsertOnlyAttributionPolicy.spec.d.ts.map +1 -0
  505. package/lib/test/createInsertOnlyAttributionPolicy.spec.js +33 -0
  506. package/lib/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -0
  507. package/lib/test/dirname.cjs +16 -0
  508. package/lib/test/dirname.cjs.map +1 -0
  509. package/lib/test/dirname.d.cts +6 -0
  510. package/lib/test/dirname.d.cts.map +1 -0
  511. package/lib/test/index.d.ts +13 -0
  512. package/lib/test/index.d.ts.map +1 -0
  513. package/lib/test/index.js +13 -0
  514. package/lib/test/index.js.map +1 -0
  515. package/lib/test/mergeTree.annotate.deltaCallback.spec.d.ts +6 -0
  516. package/lib/test/mergeTree.annotate.deltaCallback.spec.d.ts.map +1 -0
  517. package/lib/test/mergeTree.annotate.deltaCallback.spec.js +140 -0
  518. package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -0
  519. package/lib/test/mergeTree.annotate.spec.d.ts +6 -0
  520. package/lib/test/mergeTree.annotate.spec.d.ts.map +1 -0
  521. package/lib/test/mergeTree.annotate.spec.js +446 -0
  522. package/lib/test/mergeTree.annotate.spec.js.map +1 -0
  523. package/lib/test/mergeTree.insert.deltaCallback.spec.d.ts +6 -0
  524. package/lib/test/mergeTree.insert.deltaCallback.spec.d.ts.map +1 -0
  525. package/lib/test/mergeTree.insert.deltaCallback.spec.js +124 -0
  526. package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -0
  527. package/lib/test/mergeTree.insertingWalk.spec.d.ts +6 -0
  528. package/lib/test/mergeTree.insertingWalk.spec.d.ts.map +1 -0
  529. package/lib/test/mergeTree.insertingWalk.spec.js +277 -0
  530. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -0
  531. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts +6 -0
  532. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts.map +1 -0
  533. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +176 -0
  534. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -0
  535. package/lib/test/mergeTree.markRangeRemoved.spec.d.ts +6 -0
  536. package/lib/test/mergeTree.markRangeRemoved.spec.d.ts.map +1 -0
  537. package/lib/test/mergeTree.markRangeRemoved.spec.js +128 -0
  538. package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -0
  539. package/lib/test/mergeTree.walk.spec.d.ts +6 -0
  540. package/lib/test/mergeTree.walk.spec.d.ts.map +1 -0
  541. package/lib/test/mergeTree.walk.spec.js +61 -0
  542. package/lib/test/mergeTree.walk.spec.js.map +1 -0
  543. package/lib/test/mergeTree.zamboni.spec.d.ts +6 -0
  544. package/lib/test/mergeTree.zamboni.spec.d.ts.map +1 -0
  545. package/lib/test/mergeTree.zamboni.spec.js +50 -0
  546. package/lib/test/mergeTree.zamboni.spec.js.map +1 -0
  547. package/lib/test/mergeTreeOperationRunner.d.ts +63 -0
  548. package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -0
  549. package/lib/test/mergeTreeOperationRunner.js +207 -0
  550. package/lib/test/mergeTreeOperationRunner.js.map +1 -0
  551. package/lib/test/mergeTreeOperationRunner.spec.d.ts +6 -0
  552. package/lib/test/mergeTreeOperationRunner.spec.d.ts.map +1 -0
  553. package/lib/test/mergeTreeOperationRunner.spec.js +154 -0
  554. package/lib/test/mergeTreeOperationRunner.spec.js.map +1 -0
  555. package/lib/test/obliterate.concurrent.spec.d.ts +6 -0
  556. package/lib/test/obliterate.concurrent.spec.d.ts.map +1 -0
  557. package/lib/test/obliterate.concurrent.spec.js +1441 -0
  558. package/lib/test/obliterate.concurrent.spec.js.map +1 -0
  559. package/lib/test/obliterate.deltaCallback.spec.d.ts +6 -0
  560. package/lib/test/obliterate.deltaCallback.spec.d.ts.map +1 -0
  561. package/lib/test/obliterate.deltaCallback.spec.js +144 -0
  562. package/lib/test/obliterate.deltaCallback.spec.js.map +1 -0
  563. package/lib/test/obliterate.partialLength.spec.d.ts +6 -0
  564. package/lib/test/obliterate.partialLength.spec.d.ts.map +1 -0
  565. package/lib/test/obliterate.partialLength.spec.js +272 -0
  566. package/lib/test/obliterate.partialLength.spec.js.map +1 -0
  567. package/lib/test/obliterate.reconnect.spec.d.ts +6 -0
  568. package/lib/test/obliterate.reconnect.spec.d.ts.map +1 -0
  569. package/lib/test/obliterate.reconnect.spec.js +159 -0
  570. package/lib/test/obliterate.reconnect.spec.js.map +1 -0
  571. package/lib/test/obliterate.spec.d.ts +6 -0
  572. package/lib/test/obliterate.spec.d.ts.map +1 -0
  573. package/lib/test/obliterate.spec.js +160 -0
  574. package/lib/test/obliterate.spec.js.map +1 -0
  575. package/lib/test/ordinal.spec.d.ts +2 -0
  576. package/lib/test/ordinal.spec.d.ts.map +1 -0
  577. package/lib/test/ordinal.spec.js +38 -0
  578. package/lib/test/ordinal.spec.js.map +1 -0
  579. package/lib/test/partialLength.spec.d.ts +6 -0
  580. package/lib/test/partialLength.spec.d.ts.map +1 -0
  581. package/lib/test/partialLength.spec.js +274 -0
  582. package/lib/test/partialLength.spec.js.map +1 -0
  583. package/lib/test/properties.spec.d.ts +6 -0
  584. package/lib/test/properties.spec.d.ts.map +1 -0
  585. package/lib/test/properties.spec.js +53 -0
  586. package/lib/test/properties.spec.js.map +1 -0
  587. package/lib/test/reconnectHelper.d.ts +48 -0
  588. package/lib/test/reconnectHelper.d.ts.map +1 -0
  589. package/lib/test/reconnectHelper.js +82 -0
  590. package/lib/test/reconnectHelper.js.map +1 -0
  591. package/lib/test/resetPendingSegmentsToOp.spec.d.ts +6 -0
  592. package/lib/test/resetPendingSegmentsToOp.spec.d.ts.map +1 -0
  593. package/lib/test/resetPendingSegmentsToOp.spec.js +235 -0
  594. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -0
  595. package/lib/test/revertibleFarm.spec.d.ts +6 -0
  596. package/lib/test/revertibleFarm.spec.d.ts.map +1 -0
  597. package/lib/test/revertibleFarm.spec.js +119 -0
  598. package/lib/test/revertibleFarm.spec.js.map +1 -0
  599. package/lib/test/revertibles.spec.d.ts +17 -0
  600. package/lib/test/revertibles.spec.d.ts.map +1 -0
  601. package/lib/test/revertibles.spec.js +381 -0
  602. package/lib/test/revertibles.spec.js.map +1 -0
  603. package/lib/test/segmentGroupCollection.spec.d.ts +6 -0
  604. package/lib/test/segmentGroupCollection.spec.d.ts.map +1 -0
  605. package/lib/test/segmentGroupCollection.spec.js +58 -0
  606. package/lib/test/segmentGroupCollection.spec.js.map +1 -0
  607. package/lib/test/snapshot.spec.d.ts +6 -0
  608. package/lib/test/snapshot.spec.d.ts.map +1 -0
  609. package/lib/test/snapshot.spec.js +176 -0
  610. package/lib/test/snapshot.spec.js.map +1 -0
  611. package/lib/test/snapshot.utils.d.ts +33 -0
  612. package/lib/test/snapshot.utils.d.ts.map +1 -0
  613. package/lib/test/snapshot.utils.js +104 -0
  614. package/lib/test/snapshot.utils.js.map +1 -0
  615. package/lib/test/snapshotlegacy.spec.d.ts +6 -0
  616. package/lib/test/snapshotlegacy.spec.d.ts.map +1 -0
  617. package/lib/test/snapshotlegacy.spec.js +137 -0
  618. package/lib/test/snapshotlegacy.spec.js.map +1 -0
  619. package/lib/test/sortedSegmentSet.spec.d.ts +6 -0
  620. package/lib/test/sortedSegmentSet.spec.d.ts.map +1 -0
  621. package/lib/test/sortedSegmentSet.spec.js +93 -0
  622. package/lib/test/sortedSegmentSet.spec.js.map +1 -0
  623. package/lib/test/testClient.d.ts +116 -0
  624. package/lib/test/testClient.d.ts.map +1 -0
  625. package/lib/test/testClient.js +430 -0
  626. package/lib/test/testClient.js.map +1 -0
  627. package/lib/test/testClientLogger.d.ts +44 -0
  628. package/lib/test/testClientLogger.d.ts.map +1 -0
  629. package/lib/test/testClientLogger.js +282 -0
  630. package/lib/test/testClientLogger.js.map +1 -0
  631. package/lib/test/testSerializer.d.ts +18 -0
  632. package/lib/test/testSerializer.d.ts.map +1 -0
  633. package/lib/test/testSerializer.js +29 -0
  634. package/lib/test/testSerializer.js.map +1 -0
  635. package/lib/test/testServer.d.ts +36 -0
  636. package/lib/test/testServer.d.ts.map +1 -0
  637. package/lib/test/testServer.js +133 -0
  638. package/lib/test/testServer.js.map +1 -0
  639. package/lib/test/testUtils.d.ts +77 -0
  640. package/lib/test/testUtils.d.ts.map +1 -0
  641. package/lib/test/testUtils.js +151 -0
  642. package/lib/test/testUtils.js.map +1 -0
  643. package/lib/test/text.d.ts +9 -0
  644. package/lib/test/text.d.ts.map +1 -0
  645. package/lib/test/text.js +71 -0
  646. package/lib/test/text.js.map +1 -0
  647. package/lib/test/tracking.spec.d.ts +6 -0
  648. package/lib/test/tracking.spec.d.ts.map +1 -0
  649. package/lib/test/tracking.spec.js +118 -0
  650. package/lib/test/tracking.spec.js.map +1 -0
  651. package/lib/test/types/validateMergeTreePrevious.generated.d.ts +2 -0
  652. package/lib/test/types/validateMergeTreePrevious.generated.d.ts.map +1 -0
  653. package/lib/test/types/validateMergeTreePrevious.generated.js +228 -0
  654. package/lib/test/types/validateMergeTreePrevious.generated.js.map +1 -0
  655. package/lib/test/wordUnitTests.spec.d.ts +6 -0
  656. package/lib/test/wordUnitTests.spec.d.ts.map +1 -0
  657. package/lib/test/wordUnitTests.spec.js +166 -0
  658. package/lib/test/wordUnitTests.spec.js.map +1 -0
  659. package/lib/{textSegment.d.mts → textSegment.d.ts} +4 -4
  660. package/lib/textSegment.d.ts.map +1 -0
  661. package/lib/{textSegment.mjs → textSegment.js} +2 -2
  662. package/lib/textSegment.js.map +1 -0
  663. package/lib/{zamboni.d.mts → zamboni.d.ts} +3 -3
  664. package/lib/zamboni.d.ts.map +1 -0
  665. package/lib/{zamboni.mjs → zamboni.js} +7 -6
  666. package/lib/zamboni.js.map +1 -0
  667. package/package.json +50 -57
  668. package/src/MergeTreeTextHelper.ts +4 -4
  669. package/src/attributionCollection.ts +1 -1
  670. package/src/attributionPolicy.ts +5 -5
  671. package/src/client.ts +50 -41
  672. package/src/collections/index.ts +2 -2
  673. package/src/endOfTreeSegment.ts +5 -5
  674. package/src/index.ts +20 -20
  675. package/src/localReference.ts +13 -7
  676. package/src/mergeTree.ts +53 -44
  677. package/src/mergeTreeDeltaCallback.ts +3 -8
  678. package/src/mergeTreeNodeWalk.ts +1 -1
  679. package/src/mergeTreeNodes.ts +21 -19
  680. package/src/mergeTreeTracking.ts +3 -3
  681. package/src/opBuilder.ts +3 -3
  682. package/src/partialLengths.ts +10 -10
  683. package/src/referencePositions.ts +4 -4
  684. package/src/revertibles.ts +14 -18
  685. package/src/segmentGroupCollection.ts +2 -2
  686. package/src/segmentPropertiesManager.ts +3 -3
  687. package/src/snapshotChunks.ts +4 -4
  688. package/src/snapshotLoader.ts +14 -11
  689. package/src/snapshotV1.ts +29 -9
  690. package/src/snapshotlegacy.ts +19 -5
  691. package/src/sortedSegmentSet.ts +8 -6
  692. package/src/textSegment.ts +3 -3
  693. package/src/zamboni.ts +7 -7
  694. package/tsconfig.cjs.json +7 -0
  695. package/tsconfig.json +2 -5
  696. package/api-extractor-esm.json +0 -17
  697. package/dist/test/beastTest.d.ts.map +0 -1
  698. package/dist/test/beastTest.js.map +0 -1
  699. package/dist/test/client.apis.d.ts.map +0 -1
  700. package/dist/test/client.apis.js.map +0 -1
  701. package/dist/test/wordUnitTests.d.ts.map +0 -1
  702. package/dist/test/wordUnitTests.js.map +0 -1
  703. package/lib/MergeTreeTextHelper.d.mts.map +0 -1
  704. package/lib/MergeTreeTextHelper.mjs.map +0 -1
  705. package/lib/attributionCollection.d.mts.map +0 -1
  706. package/lib/attributionCollection.mjs.map +0 -1
  707. package/lib/attributionPolicy.d.mts.map +0 -1
  708. package/lib/attributionPolicy.mjs.map +0 -1
  709. package/lib/client.d.mts.map +0 -1
  710. package/lib/client.mjs.map +0 -1
  711. package/lib/collections/index.d.mts.map +0 -1
  712. package/lib/collections/index.mjs +0 -7
  713. package/lib/collections/index.mjs.map +0 -1
  714. package/lib/collections/list.d.mts.map +0 -1
  715. package/lib/collections/list.mjs.map +0 -1
  716. package/lib/collections/rbTree.d.mts.map +0 -1
  717. package/lib/collections/rbTree.mjs.map +0 -1
  718. package/lib/constants.d.mts.map +0 -1
  719. package/lib/constants.mjs.map +0 -1
  720. package/lib/endOfTreeSegment.d.mts.map +0 -1
  721. package/lib/endOfTreeSegment.mjs.map +0 -1
  722. package/lib/index.d.mts.map +0 -1
  723. package/lib/index.mjs.map +0 -1
  724. package/lib/localReference.d.mts.map +0 -1
  725. package/lib/localReference.mjs.map +0 -1
  726. package/lib/merge-tree-beta.d.mts +0 -668
  727. package/lib/merge-tree-public.d.mts +0 -668
  728. package/lib/mergeTree.d.mts.map +0 -1
  729. package/lib/mergeTree.mjs.map +0 -1
  730. package/lib/mergeTreeDeltaCallback.d.mts.map +0 -1
  731. package/lib/mergeTreeDeltaCallback.mjs.map +0 -1
  732. package/lib/mergeTreeNodeWalk.d.mts.map +0 -1
  733. package/lib/mergeTreeNodeWalk.mjs.map +0 -1
  734. package/lib/mergeTreeNodes.d.mts.map +0 -1
  735. package/lib/mergeTreeNodes.mjs.map +0 -1
  736. package/lib/mergeTreeTracking.d.mts.map +0 -1
  737. package/lib/mergeTreeTracking.mjs.map +0 -1
  738. package/lib/opBuilder.mjs.map +0 -1
  739. package/lib/ops.d.mts.map +0 -1
  740. package/lib/ops.mjs.map +0 -1
  741. package/lib/ordinal.d.mts.map +0 -1
  742. package/lib/ordinal.mjs.map +0 -1
  743. package/lib/partialLengths.d.mts.map +0 -1
  744. package/lib/partialLengths.mjs.map +0 -1
  745. package/lib/properties.d.mts.map +0 -1
  746. package/lib/properties.mjs.map +0 -1
  747. package/lib/referencePositions.d.mts.map +0 -1
  748. package/lib/referencePositions.mjs.map +0 -1
  749. package/lib/revertibles.d.mts.map +0 -1
  750. package/lib/revertibles.mjs.map +0 -1
  751. package/lib/segmentGroupCollection.d.mts.map +0 -1
  752. package/lib/segmentGroupCollection.mjs.map +0 -1
  753. package/lib/segmentPropertiesManager.d.mts.map +0 -1
  754. package/lib/segmentPropertiesManager.mjs.map +0 -1
  755. package/lib/snapshotChunks.d.mts.map +0 -1
  756. package/lib/snapshotChunks.mjs.map +0 -1
  757. package/lib/snapshotLoader.d.mts.map +0 -1
  758. package/lib/snapshotLoader.mjs.map +0 -1
  759. package/lib/snapshotV1.d.mts.map +0 -1
  760. package/lib/snapshotV1.mjs.map +0 -1
  761. package/lib/snapshotlegacy.d.mts.map +0 -1
  762. package/lib/snapshotlegacy.mjs.map +0 -1
  763. package/lib/sortedSegmentSet.d.mts.map +0 -1
  764. package/lib/sortedSegmentSet.mjs.map +0 -1
  765. package/lib/sortedSet.d.mts.map +0 -1
  766. package/lib/sortedSet.mjs.map +0 -1
  767. package/lib/textSegment.d.mts.map +0 -1
  768. package/lib/textSegment.mjs.map +0 -1
  769. package/lib/zamboni.d.mts.map +0 -1
  770. package/lib/zamboni.mjs.map +0 -1
@@ -1,5 +1,4 @@
1
1
  import { AttributionKey } from '@fluidframework/runtime-definitions';
2
- import { Heap } from '@fluidframework/core-utils';
3
2
  import { IChannelStorageService } from '@fluidframework/datastore-definitions';
4
3
  import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
5
4
  import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
@@ -48,61 +47,6 @@ export declare interface AttributionPolicy {
48
47
  serializer: IAttributionCollectionSerializer;
49
48
  }
50
49
 
51
- /**
52
- * This is a special segment that is not bound or known by the merge tree itself,
53
- * but the segment itself pretends to be a removed segment at an endpoint of the
54
- * tree. It is removed so it appears as a undefined/0 length segment. This segment
55
- * adds the capability to hold local references that have been detached from the
56
- * real merge tree, and give the appearance that they exist at an endpoint of the
57
- * tree.
58
- *
59
- * This is useful today in 2 cases: detached references and interval stickiness.
60
- *
61
- * In general, local references only become detached when the tree becomes empty
62
- * and the EndOfTreeSegment allows us to gracefully handle that case by giving
63
- * those references a place to live.
64
- *
65
- * In the case of interval stickiness, it is desirable to be able to refer to
66
- * the position immediately after or before a segment, in order for the endpoint
67
- * of an interval to be exclusive. This means that in order to support intervals
68
- * that are exclusive and also include the first or last segment of the tree, it
69
- * must be possible in some way to refer to a position before or after the tree
70
- * respectively. The endpoint segments allow us to support such behavior.
71
- */
72
- declare abstract class BaseEndpointSegment {
73
- protected readonly mergeTree: MergeTree;
74
- constructor(mergeTree: MergeTree);
75
- removedSeq: number;
76
- removedClientIds: number[];
77
- attribution: undefined;
78
- propertyManager: undefined;
79
- localSeq: undefined;
80
- localRemovedSeq: undefined;
81
- properties: undefined;
82
- seq: number;
83
- clientId: number;
84
- cachedLength: number;
85
- isLeaf(): this is ISegment;
86
- protected abstract endpointSegmentProps(): {
87
- parent: IMergeBlock;
88
- index: number;
89
- depth: number;
90
- };
91
- get parent(): IMergeBlock;
92
- get index(): number;
93
- abstract get ordinal(): string;
94
- localRefs?: LocalReferenceCollection;
95
- get segmentGroups(): never;
96
- get trackingCollection(): never;
97
- addProperties: () => never;
98
- clone: () => never;
99
- canAppend: () => never;
100
- append: () => never;
101
- splitAt: () => never;
102
- toJSONObject: () => never;
103
- ack: () => never;
104
- }
105
-
106
50
  /**
107
51
  * @alpha
108
52
  */
@@ -149,11 +93,27 @@ export declare abstract class BaseSegment extends MergeNode implements ISegment
149
93
  export declare class Client extends TypedEventEmitter<IClientEvents> {
150
94
  readonly specToSegment: (spec: IJSONSegment) => ISegment;
151
95
  readonly logger: ITelemetryLoggerExt;
96
+ private readonly getMinInFlightRefSeq;
152
97
  longClientId: string | undefined;
153
98
  private readonly _mergeTree;
154
99
  private readonly clientNameToIds;
155
100
  private readonly shortClientIdMap;
156
- constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet);
101
+ /**
102
+ * @param specToSegment - Rehydrates a segment from its JSON representation
103
+ * @param logger - Telemetry logger for diagnostics
104
+ * @param options - Options for this client. See {@link IMergeTreeOptions} for details.
105
+ * @param getMinInFlightRefSeq - Upon applying a message (see {@link Client.applyMsg}), client purges collab-window information which
106
+ * is no longer necessary based on that message's minimum sequence number.
107
+ * However, if the user of this client has in-flight messages which refer to positions in this Client,
108
+ * they may wish to preserve additional merge information.
109
+ * The effective minimum sequence number will be the minimum of the message's minimumSequenceNumber and the result of this function.
110
+ * If this function returns undefined, the message's minimumSequenceNumber will be used.
111
+ *
112
+ * @privateRemarks
113
+ * - Passing specToSegment would be unnecessary if Client were merged with SharedSegmentSequence
114
+ * - AB#6866 tracks a more unified approach to collab window min seq handling.
115
+ */
116
+ constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet, getMinInFlightRefSeq?: () => number | undefined);
157
117
  /**
158
118
  * The merge tree maintains a queue of segment groups for each local operation.
159
119
  * These segment groups track segments modified by an operation.
@@ -237,6 +197,11 @@ export declare class Client extends TypedEventEmitter<IClientEvents> {
237
197
  removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
238
198
  /**
239
199
  * Resolves a `ReferencePosition` into a character position using this client's perspective.
200
+ *
201
+ * Reference positions that point to a character that has been removed will
202
+ * always return the position of the nearest non-removed character, regardless
203
+ * of {@link ReferenceType}. To handle this case specifically, one may wish
204
+ * to look at the segment returned by {@link ReferencePosition.getSegment}.
240
205
  */
241
206
  localReferencePositionToPosition(lref: ReferencePosition): number;
242
207
  /**
@@ -301,9 +266,7 @@ export declare class Client extends TypedEventEmitter<IClientEvents> {
301
266
  findReconnectionPosition(segment: ISegment, localSeq: number): number;
302
267
  private resetPendingDeltaToOps;
303
268
  private applyRemoteOp;
304
- applyStashedOp(op: IMergeTreeDeltaOp): SegmentGroup;
305
- applyStashedOp(op: IMergeTreeGroupMsg): SegmentGroup[];
306
- applyStashedOp(op: IMergeTreeOp): SegmentGroup | SegmentGroup[];
269
+ applyStashedOp(op: IMergeTreeOp): void;
307
270
  applyMsg(msg: ISequencedDocumentMessage, local?: boolean): void;
308
271
  private updateSeqNumbers;
309
272
  /**
@@ -554,57 +517,6 @@ export declare interface Dictionary<TKey, TData> {
554
517
  */
555
518
  export declare function discardMergeTreeDeltaRevertible(revertibles: MergeTreeDeltaRevertible[]): void;
556
519
 
557
- declare class DoublyLinkedList<T> implements Iterable<ListNode<T>>, Partial<ListNodeRange<T>>, Pick<ListNode<T>[], "pop" | "shift" | "length" | "includes"> {
558
- find(predicate: (value: ListNode<T>, obj: DoublyLinkedList<T>) => unknown): ListNode<T> | undefined;
559
- map<U>(callbackfn: (value: ListNode<T>) => U): Iterable<U>;
560
- insertAfter(preceding: ListNode<T>, ...items: T[]): ListNodeRange<T>;
561
- pop(): ListNode<T> | undefined;
562
- push(...items: T[]): ListNodeRange<T>;
563
- /**
564
- * Remove and return the first element
565
- */
566
- shift(): ListNode<T> | undefined;
567
- /**
568
- * Insert `items` at start of list
569
- */
570
- unshift(...items: T[]): ListNodeRange<T>;
571
- /**
572
- * Remove nodes starting at `start` until either the `end` node is reached
573
- * or until `count` nodes have been removed. Returns the removed nodes as
574
- * a separate linked list
575
- */
576
- splice(start: ListNode<T>, countOrEnd?: ListNode<T> | number): DoublyLinkedList<T>;
577
- includes(node: ListNode<T> | undefined): node is ListNode<T>;
578
- private _includes;
579
- private _remove;
580
- remove(node: ListNode<T> | undefined): ListNode<T> | undefined;
581
- [Symbol.iterator](): IterableIterator<ListNode<T>>;
582
- private _len;
583
- private readonly headNode;
584
- get length(): number;
585
- get empty(): boolean;
586
- get first(): ListNode<T> | undefined;
587
- get last(): ListNode<T> | undefined;
588
- }
589
-
590
- /**
591
- * The position immediately after the end of the tree
592
- */
593
- declare class EndOfTreeSegment extends BaseEndpointSegment implements ISegment, IRemovalInfo {
594
- type: string;
595
- readonly endpointType = "end";
596
- /**
597
- * this segment pretends to be a sibling of the last real segment.
598
- * so compute the necessary properties to pretend to be that segment.
599
- */
600
- protected endpointSegmentProps(): {
601
- parent: IMergeBlock;
602
- index: number;
603
- depth: number;
604
- };
605
- get ordinal(): string;
606
- }
607
-
608
520
  /**
609
521
  * Returns the position to slide a reference to if a slide is required.
610
522
  * @param segoff - The segment and offset to slide from
@@ -701,14 +613,6 @@ export declare interface IClientEvents {
701
613
  (event: "maintenance", listener: (args: IMergeTreeMaintenanceCallbackArgs, deltaArgs: IMergeTreeDeltaOpArgs | undefined, target: IEventThisPlaceHolder) => void): void;
702
614
  }
703
615
 
704
- /**
705
- * @internal
706
- */
707
- declare interface IHierBlock extends IMergeBlock {
708
- rightmostTiles: MapLike<ReferencePosition>;
709
- leftmostTiles: MapLike<ReferencePosition>;
710
- }
711
-
712
616
  /**
713
617
  * @alpha
714
618
  */
@@ -737,48 +641,6 @@ export declare interface IMarkerDef {
737
641
  refType?: ReferenceType;
738
642
  }
739
643
 
740
- /**
741
- * Internal (i.e. non-leaf) node in a merge tree.
742
- * @internal
743
- */
744
- declare interface IMergeBlock extends IMergeNodeCommon {
745
- parent?: IMergeBlock;
746
- needsScour?: boolean;
747
- /**
748
- * Number of direct children of this node
749
- */
750
- childCount: number;
751
- /**
752
- * Array of child nodes.
753
- *
754
- * @remarks To avoid reallocation, this is always initialized to have maximum length as deemed by
755
- * the merge tree's branching factor. Use `childCount` to determine how many children this node actually has.
756
- */
757
- children: IMergeNode[];
758
- /**
759
- * Supports querying the total length of all descendants of this IMergeBlock from the perspective of any
760
- * (clientId, seq) within the collab window.
761
- *
762
- * @remarks This is only optional for implementation reasons (internal nodes can be created/moved without
763
- * immediately initializing the partial lengths). Aside from mid-update on tree operations, these lengths
764
- * objects are always defined.
765
- */
766
- partialLengths?: PartialSequenceLengths;
767
- /**
768
- * The length of the contents of the node.
769
- */
770
- cachedLength: number | undefined;
771
- hierBlock(): IHierBlock | undefined;
772
- assignChild(child: IMergeNode, index: number, updateOrdinal?: boolean): void;
773
- setOrdinal(child: IMergeNode, index: number): void;
774
- }
775
-
776
- declare type IMergeLeaf = ISegment & {
777
- parent?: IMergeBlock;
778
- };
779
-
780
- declare type IMergeNode = IMergeBlock | IMergeLeaf;
781
-
782
644
  /**
783
645
  * Common properties for a node in a merge tree.
784
646
  * @alpha
@@ -881,10 +743,6 @@ export declare interface IMergeTreeDeltaOpArgs {
881
743
  * Delta op args are for an unacked local change
882
744
  */
883
745
  readonly sequencedMessage?: ISequencedDocumentMessage;
884
- /**
885
- * If the operation is being applied as a stashed op, which means it may have been previously submitted, and therefore should not be resubmitted
886
- */
887
- readonly stashed?: boolean;
888
746
  }
889
747
 
890
748
  /**
@@ -1079,11 +937,6 @@ export declare interface IMoveInfo {
1079
937
  wasMovedOnInsert: boolean;
1080
938
  }
1081
939
 
1082
- declare interface IOverlapClient {
1083
- clientId: number;
1084
- seglen: number;
1085
- }
1086
-
1087
940
  /**
1088
941
  * @internal
1089
942
  */
@@ -1099,12 +952,6 @@ export declare interface IRBMatcher<TKey, TData> {
1099
952
  matchNode(node: RBNode<TKey, TData> | undefined, key: TKey): boolean;
1100
953
  }
1101
954
 
1102
- declare interface IRefsAtOffset {
1103
- before?: DoublyLinkedList<LocalReference>;
1104
- at?: DoublyLinkedList<LocalReference>;
1105
- after?: DoublyLinkedList<LocalReference>;
1106
- }
1107
-
1108
955
  /**
1109
956
  * A position specified relative to a segment.
1110
957
  * @alpha
@@ -1148,10 +995,6 @@ export declare interface IRemovalInfo {
1148
995
  removedClientIds: number[];
1149
996
  }
1150
997
 
1151
- declare interface IRootMergeBlock extends IMergeBlock {
1152
- mergeTree?: MergeTree;
1153
- }
1154
-
1155
998
  /**
1156
999
  * A segment representing a portion of the merge tree.
1157
1000
  * Segments are leaf nodes of the merge tree and contain data.
@@ -1263,12 +1106,6 @@ export declare interface ISegmentAction<TClientData> {
1263
1106
  (segment: ISegment, pos: number, refSeq: number, clientId: number, start: number, end: number, accum: TClientData): boolean;
1264
1107
  }
1265
1108
 
1266
- /**
1267
- * someday we may split tree leaves from segments, but for now they are the same
1268
- * this is just a convenience type that makes it clear that we need something that is both a segment and a leaf node
1269
- */
1270
- declare type ISegmentLeaf = ISegment & IMergeLeaf;
1271
-
1272
1109
  /**
1273
1110
  * Tests whether x is a MergeTreeDeltaRevertible
1274
1111
  * @internal
@@ -1293,59 +1130,23 @@ export declare interface KeyComparer<TKey> {
1293
1130
  (a: TKey, b: TKey): number;
1294
1131
  }
1295
1132
 
1296
- declare interface ListNode<T> {
1297
- readonly list: DoublyLinkedList<T> | undefined;
1298
- readonly data: T;
1299
- readonly next: ListNode<T> | undefined;
1300
- readonly prev: ListNode<T> | undefined;
1301
- }
1302
-
1303
- declare interface ListNodeRange<T> {
1304
- first: ListNode<T>;
1305
- last: ListNode<T>;
1306
- }
1307
-
1308
- /**
1309
- * @privateRemarks This should not be exported outside merge tree.
1310
- * @internal
1311
- */
1312
- declare class LocalReference implements LocalReferencePosition {
1313
- refType: ReferenceType;
1314
- readonly slidingPreference: SlidingPreference;
1315
- readonly canSlideToEndpoint?: boolean | undefined;
1316
- properties: PropertySet | undefined;
1317
- private segment;
1318
- private offset;
1319
- private listNode;
1320
- callbacks?: Partial<Record<"beforeSlide" | "afterSlide", (ref: LocalReferencePosition) => void>> | undefined;
1321
- private _trackingCollection?;
1322
- get trackingCollection(): TrackingGroupCollection;
1323
- constructor(refType?: ReferenceType, properties?: PropertySet, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean | undefined);
1324
- link(segment: ISegment | undefined, offset: number, listNode: ListNode<LocalReference> | undefined): void;
1325
- isLeaf(): boolean;
1326
- addProperties(newProps: PropertySet): void;
1327
- getSegment(): ISegment | undefined;
1328
- getOffset(): number;
1329
- getListNode(): ListNode<LocalReference> | undefined;
1330
- getProperties(): PropertySet | undefined;
1331
- }
1332
-
1333
1133
  /**
1334
1134
  * Represents a collection of {@link LocalReferencePosition}s associated with
1335
1135
  * one segment in a merge-tree.
1336
1136
  * Represents a collection of {@link LocalReferencePosition}s associated with one segment in a merge-tree.
1137
+ * @sealed
1138
+ *
1337
1139
  * @alpha
1338
1140
  */
1339
1141
  export declare class LocalReferenceCollection {
1340
1142
  /** Segment this `LocalReferenceCollection` is associated to. */
1341
1143
  private readonly segment;
1342
1144
  static append(seg1: ISegment, seg2: ISegment): void;
1145
+ static setOrGet(segment: ISegment): LocalReferenceCollection;
1343
1146
  private readonly refsByOffset;
1344
1147
  private refCount;
1345
1148
  /***/
1346
- constructor(
1347
- /** Segment this `LocalReferenceCollection` is associated to. */
1348
- segment: ISegment, initialRefsByfOffset?: (IRefsAtOffset | undefined)[]);
1149
+ private constructor();
1349
1150
  /**
1350
1151
  * @remarks This method should only be called by mergeTree.
1351
1152
  */
@@ -1431,14 +1232,6 @@ export declare interface LocalReferencePosition extends ReferencePosition {
1431
1232
  readonly canSlideToEndpoint?: boolean;
1432
1233
  }
1433
1234
 
1434
- /**
1435
- * @internal
1436
- */
1437
- declare interface LRUSegment {
1438
- segment?: ISegmentLeaf;
1439
- maxSeq: number;
1440
- }
1441
-
1442
1235
  /**
1443
1236
  * Any mapping from a string to values of type `T`
1444
1237
  * @alpha
@@ -1488,19 +1281,6 @@ export declare function matchProperties(a: PropertySet | undefined, b: PropertyS
1488
1281
  */
1489
1282
  export declare function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
1490
1283
 
1491
- /**
1492
- * @internal
1493
- */
1494
- declare class MergeBlock extends MergeNode implements IMergeBlock {
1495
- childCount: number;
1496
- parent?: IMergeBlock;
1497
- children: IMergeNode[];
1498
- constructor(childCount: number);
1499
- hierBlock(): IHierBlock | undefined;
1500
- setOrdinal(child: IMergeNode, index: number): void;
1501
- assignChild(child: IMergeNode, index: number, updateOrdinal?: boolean): void;
1502
- }
1503
-
1504
1284
  /**
1505
1285
  * @alpha
1506
1286
  */
@@ -1511,266 +1291,6 @@ export declare class MergeNode implements IMergeNodeCommon {
1511
1291
  isLeaf(): this is ISegment;
1512
1292
  }
1513
1293
 
1514
- /**
1515
- * @internal
1516
- */
1517
- declare class MergeTree {
1518
- options?: IMergeTreeOptions | undefined;
1519
- static readonly options: {
1520
- incrementalUpdate: boolean;
1521
- insertAfterRemovedSegs: boolean;
1522
- zamboniSegments: boolean;
1523
- };
1524
- private static readonly theUnfinishedNode;
1525
- readonly collabWindow: CollaborationWindow;
1526
- readonly pendingSegments: DoublyLinkedList<SegmentGroup>;
1527
- readonly segmentsToScour: Heap<LRUSegment>;
1528
- readonly attributionPolicy: AttributionPolicy | undefined;
1529
- /**
1530
- * Whether or not all blocks in the mergeTree currently have information about local partial lengths computed.
1531
- * This information is only necessary on reconnect, and otherwise costly to bookkeep.
1532
- * This field enables tracking whether partials need to be recomputed using localSeq information.
1533
- */
1534
- private localPartialsComputed;
1535
- private readonly idToMarker;
1536
- mergeTreeDeltaCallback?: MergeTreeDeltaCallback;
1537
- mergeTreeMaintenanceCallback?: MergeTreeMaintenanceCallback;
1538
- /**
1539
- * Array containing the sequence number of all move operations within the
1540
- * collab window
1541
- *
1542
- * When a segment is inserted, we must traverse to the left and right of it
1543
- * to determine whether the segment was inserted into an obliterated range.
1544
- * By keeping track of all move seqs, we can significantly reduce the search
1545
- * space we must traverse.
1546
- *
1547
- * Sequence numbers in `moveSeqs` are sorted to accelerate bookkeeping.
1548
- *
1549
- * See https://github.com/microsoft/FluidFramework/blob/main/packages/dds/merge-tree/docs/Obliterate.md#remote-perspective
1550
- * for additional context
1551
- */
1552
- private moveSeqs;
1553
- /**
1554
- * Similar to moveSeqs, but tracks local moves. These are not the move
1555
- * operations within the collab window, but rather local moves that have
1556
- * not been acked.
1557
- */
1558
- private readonly localMoveSeqs;
1559
- /**
1560
- * Groups of segments moved by local moves/obliterates
1561
- *
1562
- * When a local obliterate is acked, we must also ack segments that were
1563
- * concurrently obliterated on insert. We check this segment group to find
1564
- * such segments
1565
- */
1566
- private readonly locallyMovedSegments;
1567
- constructor(options?: IMergeTreeOptions | undefined);
1568
- private _root;
1569
- get root(): IRootMergeBlock;
1570
- set root(value: IRootMergeBlock);
1571
- makeBlock(childCount: number): MergeBlock;
1572
- /**
1573
- * Compute the net length of this segment from a local perspective.
1574
- * @param segment - Segment whose length to find
1575
- * @param localSeq - localSeq at which to find the length of this segment. If not provided,
1576
- * default is to consider the local client's current perspective. Only local sequence
1577
- * numbers corresponding to un-acked operations give valid results.
1578
- */
1579
- localNetLength(segment: ISegment, refSeq?: number, localSeq?: number): number | undefined;
1580
- unlinkMarker(marker: Marker): void;
1581
- private addNode;
1582
- reloadFromSegments(segments: ISegment[]): void;
1583
- startCollaboration(localClientId: number, minSeq: number, currentSeq: number): void;
1584
- private addToLRUSet;
1585
- getLength(refSeq: number, clientId: number): number;
1586
- /**
1587
- * Returns the current length of the MergeTree for the local client.
1588
- */
1589
- get length(): number | undefined;
1590
- getPosition(node: IMergeNode, refSeq: number, clientId: number, localSeq?: number): number;
1591
- getContainingSegment<T extends ISegment>(pos: number, refSeq: number, clientId: number, localSeq?: number): {
1592
- segment: T | undefined;
1593
- offset: number | undefined;
1594
- };
1595
- /**
1596
- * Slides or removes references from the provided list of segments.
1597
- *
1598
- * The order of the references is preserved for references of the same sliding
1599
- * preference. Relative order between references that slide backward and those
1600
- * that slide forward is not preserved, even in the case when they slide to
1601
- * the same segment.
1602
- *
1603
- * @remarks
1604
- *
1605
- * 1. Preserving the order of the references is a useful property for reference-based undo/redo
1606
- * (see revertibles.ts).
1607
- *
1608
- * 2. For use cases which necessitate eventual consistency across clients,
1609
- * this method should only be called with segments for which the current client sequence number is
1610
- * max(remove segment sequence number, add reference sequence number).
1611
- * See `packages\dds\merge-tree\REFERENCEPOSITIONS.md`
1612
- *
1613
- * @param segments - An array of (not necessarily contiguous) segments with increasing ordinals.
1614
- */
1615
- private slideAckedRemovedSegmentReferences;
1616
- private blockLength;
1617
- /**
1618
- * Compute local partial length information
1619
- *
1620
- * Public only for use by internal tests
1621
- */
1622
- computeLocalPartials(refSeq: number): void;
1623
- private nodeLength;
1624
- setMinSeq(minSeq: number): void;
1625
- referencePositionToLocalPosition(refPos: ReferencePosition, refSeq?: number, clientId?: number): number;
1626
- /**
1627
- * Finds the nearest reference with ReferenceType.Tile to `startPos` in the direction dictated by `forwards`.
1628
- * Uses depthFirstNodeWalk in addition to block-accelerated functionality. The search position will be included in
1629
- * the nodes to walk, so searching on all positions, including the endpoints, can be considered inclusive.
1630
- * Any out of bound search positions will return undefined, so in order to search the whole string, a forward
1631
- * search can begin at 0, or a backward search can begin at length-1.
1632
- *
1633
- * @param startPos - Position at which to start the search
1634
- * @param clientId - clientId dictating the perspective to search from
1635
- * @param markerLabel - Label of the marker to search for
1636
- * @param forwards - Whether the string should be searched in the forward or backward direction
1637
- */
1638
- searchForMarker(startPos: number, clientId: number, markerLabel: string, forwards?: boolean): Marker | undefined;
1639
- private updateRoot;
1640
- /**
1641
- * Assign sequence number to existing segment; update partial lengths to reflect the change
1642
- * @param seq - sequence number given by server to pending segment
1643
- */
1644
- ackPendingSegment(opArgs: IMergeTreeDeltaOpArgs): void;
1645
- private addToPendingList;
1646
- getMarkerFromId(id: string): Marker | undefined;
1647
- /**
1648
- * Given a position specified relative to a marker id, lookup the marker
1649
- * and convert the position to a character position.
1650
- * @param relativePos - Id of marker (may be indirect) and whether position is before or after marker.
1651
- * @param refseq - The reference sequence number at which to compute the position.
1652
- * @param clientId - The client id with which to compute the position.
1653
- */
1654
- posFromRelativePos(relativePos: IRelativePosition, refseq?: number, clientId?: number): number;
1655
- insertSegments(pos: number, segments: ISegment[], refSeq: number, clientId: number, seq: number, opArgs: IMergeTreeDeltaOpArgs | undefined): void;
1656
- /**
1657
- * Resolves a remote client's position against the local sequence
1658
- * and returns the remote client's position relative to the local
1659
- * sequence. The client ref seq must be above the minimum sequence number
1660
- * or the return value will be undefined.
1661
- * Generally this method is used in conjunction with signals which provide
1662
- * point in time values for the below parameters, and is useful for things
1663
- * like displaying user position. It should not be used with persisted values
1664
- * as persisted values will quickly become invalid as the remoteClientRefSeq
1665
- * moves below the minimum sequence number
1666
- * @param remoteClientPosition - The remote client's position to resolve
1667
- * @param remoteClientRefSeq - The reference sequence number of the remote client
1668
- * @param remoteClientId - The client id of the remote client
1669
- */
1670
- resolveRemoteClientPosition(remoteClientPosition: number, remoteClientRefSeq: number, remoteClientId: number): number | undefined;
1671
- private blockInsert;
1672
- private readonly splitLeafSegment;
1673
- private ensureIntervalBoundary;
1674
- private breakTie;
1675
- private getSmallestSeqMoveOp;
1676
- private insertingWalk;
1677
- private split;
1678
- nodeUpdateOrdinals(block: IMergeBlock): void;
1679
- /**
1680
- * Annotate a range with properties
1681
- * @param start - The inclusive start position of the range to annotate
1682
- * @param end - The exclusive end position of the range to annotate
1683
- * @param props - The properties to annotate the range with
1684
- * @param refSeq - The reference sequence number to use to apply the annotate
1685
- * @param clientId - The id of the client making the annotate
1686
- * @param seq - The sequence number of the annotate operation
1687
- * @param opArgs - The op args for the annotate op. this is passed to the merge tree callback if there is one
1688
- * @param rollback - Whether this is for a local rollback and what kind
1689
- */
1690
- annotateRange(start: number, end: number, props: PropertySet, refSeq: number, clientId: number, seq: number, opArgs: IMergeTreeDeltaOpArgs, rollback?: PropertiesRollback): void;
1691
- /**
1692
- * @alpha
1693
- */
1694
- obliterateRange(start: number, end: number, refSeq: number, clientId: number, seq: number, overwrite: boolean | undefined, opArgs: IMergeTreeDeltaOpArgs): void;
1695
- markRangeRemoved(start: number, end: number, refSeq: number, clientId: number, seq: number, overwrite: boolean | undefined, opArgs: IMergeTreeDeltaOpArgs): void;
1696
- /**
1697
- * Revert an unacked local op
1698
- */
1699
- rollback(op: IMergeTreeDeltaOp, localOpMetadata: SegmentGroup): void;
1700
- /**
1701
- * Walk the segments up to the current segment and calculate its position
1702
- */
1703
- private findRollbackPosition;
1704
- nodeUpdateLengthNewStructure(node: IMergeBlock, recur?: boolean): void;
1705
- removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
1706
- startOfTree: StartOfTreeSegment;
1707
- endOfTree: EndOfTreeSegment;
1708
- createLocalReferencePosition(_segment: ISegmentLeaf | "start" | "end", offset: number, refType: ReferenceType, properties: PropertySet | undefined, slidingPreference?: SlidingPreference, canSlideToEndpoint?: boolean): LocalReferencePosition;
1709
- private normalizeAdjacentSegments;
1710
- /**
1711
- * Normalizes the segments nearby `segmentGroup` to be ordered as they would if the op submitting `segmentGroup`
1712
- * is rebased to the current sequence number.
1713
- * This primarily affects the ordering of adjacent segments that were removed between the original submission of
1714
- * the local ops and now.
1715
- * Consider the following sequence of events:
1716
- * Initial state: "hi my friend" (seq: 0)
1717
- * - Client 1 inserts "good " to make "hi my good friend" (op1, refSeq: 0)
1718
- * - Client 2 deletes "my " to make "hi friend" (op2, refSeq: 0)
1719
- * - op2 is sequenced giving seq 1
1720
- * - Client 1 disconnects and reconnects at seq: 1.
1721
- *
1722
- * At this point in time, client 1 will have segments ["hi ", Removed"my ", Local"good ", "friend"].
1723
- * However, the rebased op that it submits will cause client 2 to have segments
1724
- * ["hi ", Local"good ", Removed"my ", "friend"].
1725
- *
1726
- * The difference in ordering can be problematic for tie-breaking concurrently inserted segments in some scenarios.
1727
- * Rather than incur extra work tie-breaking these scenarios for all clients, when client 1 rebases its operation,
1728
- * it can fix up its local state to align with what would be expected of the op it resubmits.
1729
- */
1730
- normalizeSegmentsOnRebase(): void;
1731
- private addNodeReferences;
1732
- private blockUpdate;
1733
- blockUpdatePathLengths(startBlock: IMergeBlock | undefined, seq: number, clientId: number, newStructure?: boolean): void;
1734
- private blockUpdateLength;
1735
- /**
1736
- * Map over all visible segments in a given range
1737
- *
1738
- * A segment is visible if its length is greater than 0
1739
- *
1740
- * See `this.nodeMap` for additional documentation
1741
- */
1742
- mapRange<TClientData>(handler: ISegmentAction<TClientData>, refSeq: number, clientId: number, accum: TClientData, start?: number, end?: number, splitRange?: boolean, visibilitySeq?: number): void;
1743
- /**
1744
- * Map over all visible segments in a given range
1745
- *
1746
- * A segment is visible if its length is greater than 0
1747
- *
1748
- * @param refSeq - The sequence number used to determine the range (start
1749
- * and end positions) of segments to iterate over.
1750
- *
1751
- * @param visibilitySeq - An additional sequence number to further configure
1752
- * segment visibility during traversal. This is the same as refSeq, except
1753
- * in the case of obliterate.
1754
- *
1755
- * In the case where `refSeq == visibilitySeq`, mapping is done on all
1756
- * visible segments from `start` to `end`.
1757
- *
1758
- * If a segment is invisible at both `visibilitySeq` and `refSeq`, then it
1759
- * will not be traversed and mapped. Otherwise, if the segment is visible at
1760
- * either seq, it will be mapped.
1761
- *
1762
- * If a segment is only visible at `visibilitySeq`, it will still be mapped,
1763
- * but it will not count as a segment within the range. That is, it will be
1764
- * ignored for the purposes of tracking when traversal should end.
1765
- */
1766
- private nodeMap;
1767
- }
1768
-
1769
- /**
1770
- * @internal
1771
- */
1772
- declare type MergeTreeDeltaCallback = (opArgs: IMergeTreeDeltaOpArgs, deltaArgs: IMergeTreeDeltaCallbackArgs) => void;
1773
-
1774
1294
  /**
1775
1295
  * @alpha
1776
1296
  */
@@ -1815,11 +1335,6 @@ export declare const MergeTreeDeltaType: {
1815
1335
  */
1816
1336
  export declare type MergeTreeDeltaType = (typeof MergeTreeDeltaType)[keyof typeof MergeTreeDeltaType];
1817
1337
 
1818
- /**
1819
- * @internal
1820
- */
1821
- declare type MergeTreeMaintenanceCallback = (MaintenanceArgs: IMergeTreeMaintenanceCallbackArgs, opArgs: IMergeTreeDeltaOpArgs | undefined) => void;
1822
-
1823
1338
  /**
1824
1339
  * Enum-like constant defining the types of "maintenance" events on a merge tree.
1825
1340
  * Maintenance events correspond to structural segment changes or acks of pending segments.
@@ -1874,262 +1389,6 @@ export declare interface MergeTreeRevertibleDriver {
1874
1389
  */
1875
1390
  export declare function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
1876
1391
 
1877
- /**
1878
- * Tracks length information for a part of a MergeTree (block) at a given time (seq).
1879
- * These objects are associated with internal nodes (i.e. blocks).
1880
- */
1881
- declare interface PartialSequenceLength {
1882
- /**
1883
- * Sequence number
1884
- */
1885
- seq: number;
1886
- /**
1887
- * The length of the associated block.
1888
- */
1889
- len: number;
1890
- /**
1891
- * The delta between the current length of the associated block and its length at the previous seq number.
1892
- */
1893
- seglen: number;
1894
- /**
1895
- * clientId for the client that submitted the op with sequence number `seq`.
1896
- */
1897
- clientId?: number;
1898
- /**
1899
- * If this partial length obliterated remote segments, this is the length of
1900
- * those segments
1901
- */
1902
- remoteObliteratedLen?: number;
1903
- /**
1904
- * This field maps each client to the size of the intersection between segments deleted at this seq
1905
- * and segments concurrently deleted by that client.
1906
- *
1907
- * For example, this PartialSequenceLength:
1908
- * ```typescript
1909
- * {
1910
- * seq: 5,
1911
- * len: 100,
1912
- * seglen: -10,
1913
- * clientId: 0,
1914
- * overlapRemoveClients: <RedBlack tree with key-values expressed by>{
1915
- * 1: { clientId: 1, seglen: -5 },
1916
- * 3: { clientId: 3, seglen: -10 }
1917
- * }
1918
- * }
1919
- * ```
1920
- *
1921
- * corresponds to an op submitted by client 0 which:
1922
- * - reduces the length of this block by 10 (it may have deleted a single segment of length 10,
1923
- * several segments totalling length 10, or even delete and add content for a total reduction of 10 length)
1924
- * - was concurrent to one or more ops submitted by client 1 that also removed some of the same segments,
1925
- * whose length totalled 5
1926
- * - was concurrent to one or more ops submitted by client 3 that removed some of the same segments,
1927
- * whose length totalled 10
1928
- */
1929
- overlapRemoveClients?: RedBlackTree<number, IOverlapClient>;
1930
- /**
1931
- * This field is the same as `overlapRemoveClients`, except that it tracks
1932
- * overlapping obliterates rather than removes.
1933
- */
1934
- overlapObliterateClients?: RedBlackTree<number, IOverlapClient>;
1935
- }
1936
-
1937
- /**
1938
- * Keeps track of partial sums of segment lengths for all sequence numbers in the current collaboration window.
1939
- * Only used during active collaboration.
1940
- *
1941
- * This class is associated with an internal node (block) of a MergeTree. It efficiently answers queries of the form
1942
- * "What is the length of `block` from the perspective of some particular seq and clientId?".
1943
- *
1944
- * It also supports incremental updating of state for newly-sequenced ops that don't affect the structure of the
1945
- * MergeTree.
1946
- *
1947
- * To answer these queries, it pre-builds several lists which track the length of the block at a per-sequence-number
1948
- * level. These lists are:
1949
- *
1950
- * 1. (`partialLengths`): Stores the total length of the block.
1951
- * 2. (`clientSeqNumbers[clientId]`): Stores only the total lengths of segments submitted by `clientId`. [see footnote]
1952
- *
1953
- * The reason both lists are necessary is that resolving the length of the block from the perspective of
1954
- * (clientId, refSeq) requires including both of the following types of segments:
1955
- * 1. Segments sequenced before `refSeq`
1956
- * 2. Segments submitted by `clientId`
1957
- *
1958
- * This is possible with the above bookkeeping, using:
1959
- *
1960
- * (length of the block at the minimum sequence number)
1961
- * + (partialLengths total length at refSeq)
1962
- * + (clientSeqNumbers total length at most recent op)
1963
- * - (clientSeqNumbers total length at refSeq)
1964
- *
1965
- * where the subtraction avoids double-counting segments submitted by clientId sequenced within the collab window.
1966
- *
1967
- * To enable reconnect, if constructed with `computeLocalPartials === true` it also supports querying for the length of
1968
- * the block from the perspective of the local client at a particular `refSeq` and `localSeq`. This computation is
1969
- * similar to the above:
1970
- *
1971
- * (length of the block at the minimum sequence number)
1972
- * + (partialLengths total length at refSeq)
1973
- * + (unsequenced edits' total length submitted before localSeq)
1974
- * - (overlapping remove of the unsequenced edits' total length at refSeq)
1975
- *
1976
- * This algorithm scales roughly linearly with number of editing clients and the size of the collab window.
1977
- * (certain unlikely sequences of operations may introduce log factors on those variables)
1978
- *
1979
- * Note: there is some slight complication with clientSeqNumbers resulting from the possibility of different clients
1980
- * concurrently removing the same segment. See the field's documentation for more details.
1981
- */
1982
- declare class PartialSequenceLengths {
1983
- /**
1984
- * The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
1985
- * or if no such calls have been made, the one used on construction.
1986
- */
1987
- minSeq: number;
1988
- static options: PartialSequenceLengthsOptions;
1989
- /**
1990
- * Combine the partial lengths of block's children
1991
- * @param block - an interior node. If `recur` is false, it is assumed that each interior node child of this block
1992
- * has its partials up to date.
1993
- * @param collabWindow - segment window of the segment tree containing `block`.
1994
- * @param recur - whether to recursively compute partial lengths for internal children of `block`.
1995
- * This incurs more work, but gives correct bookkeeping in the case that a descendant in the merge tree has been
1996
- * modified without bubbling up the resulting partial length change to this block's partials.
1997
- * @param computeLocalPartials - whether to compute partial length information about local unsequenced ops.
1998
- * This enables querying for the length of the block at a given localSeq, but incurs extra work.
1999
- * Local partial information doesn't support `update`.
2000
- */
2001
- static combine(block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean, computeLocalPartials?: boolean): PartialSequenceLengths;
2002
- /**
2003
- * @returns a PartialSequenceLengths structure which tracks only lengths of leaf children of the provided
2004
- * IMergeBlock.
2005
- */
2006
- private static fromLeaves;
2007
- private static getOverlapClients;
2008
- private static accumulateRemoveClientOverlap;
2009
- private static accumulateMoveClientOverlap;
2010
- /**
2011
- * Coalesce overlapping move lengths for a partial length entry that already
2012
- * exists
2013
- *
2014
- * @param segmentLen - Length of segment with overlapping moves
2015
- * @param segment - Segment with overlapping moves
2016
- * @param firstGte - Existing partial length entry
2017
- * @param clientIds - Ids of clients that concurrently obliterated this segment
2018
- */
2019
- static accumulateMoveOverlapForExisting(segmentLen: number, segment: ISegment, firstGte: PartialSequenceLength, clientIds: number[]): void;
2020
- /**
2021
- * @param obliterateOverlapLen - Length of segment with overlap
2022
- * @param clientIds - Ids of clients that have concurrently obliterated this
2023
- * segment
2024
- */
2025
- private static getMoveOverlapForExisting;
2026
- private static updatePartialsAfterInsertion;
2027
- /**
2028
- * Inserts length information about the insertion of `segment` into
2029
- * `combinedPartialLengths.partialLengths`.
2030
- *
2031
- * Does not update the clientSeqNumbers field to account for this segment.
2032
- *
2033
- * If `removalInfo` or `moveInfo` are defined, this operation updates the
2034
- * bookkeeping to account for the (re)moval of this segment at the (re)movedSeq
2035
- * instead.
2036
- *
2037
- * When the insertion or (re)moval of the segment is un-acked and
2038
- * `combinedPartialLengths` is meant to compute such records, this does the
2039
- * analogous addition to the bookkeeping for the local segment in
2040
- * `combinedPartialLengths.unsequencedRecords`.
2041
- */
2042
- private static insertSegment;
2043
- private static addSeq;
2044
- /**
2045
- * Length of the block this PartialSequenceLength corresponds to when viewed at `minSeq`.
2046
- */
2047
- private minLength;
2048
- /**
2049
- * Total number of segments in the subtree rooted at the block this PartialSequenceLength corresponds to.
2050
- */
2051
- private segmentCount;
2052
- /**
2053
- * List of PartialSequenceLength objects--ordered by increasing seq--giving length information about
2054
- * the block associated with this PartialSequenceLengths object.
2055
- *
2056
- * `partialLengths[i].len` contains the length of this block considering only sequenced segments with
2057
- * `sequenceNumber <= partialLengths[i].seq`.
2058
- */
2059
- private readonly partialLengths;
2060
- /**
2061
- * clientSeqNumbers[clientId] is a list of partial lengths for sequenced ops which either:
2062
- * - were submitted by `clientId`.
2063
- * - deleted a range containing segments that were concurrently deleted by `clientId`
2064
- *
2065
- * The second case is referred to as the "overlapping delete" case. It is necessary to avoid double-counting
2066
- * the removal of those segments in queries including clientId.
2067
- */
2068
- private readonly clientSeqNumbers;
2069
- /**
2070
- * Contains information required to answer queries for the length of this segment from the perspective of
2071
- * the local client but not including all local segments (i.e., `localSeq !== collabWindow.localSeq`).
2072
- * This field is only computed if requested in the constructor (i.e. `computeLocalPartials === true`).
2073
- */
2074
- private unsequencedRecords;
2075
- constructor(
2076
- /**
2077
- * The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
2078
- * or if no such calls have been made, the one used on construction.
2079
- */
2080
- minSeq: number, computeLocalPartials: boolean);
2081
- update(node: IMergeBlock, seq: number, clientId: number, collabWindow: CollaborationWindow): void;
2082
- /**
2083
- * Returns the length of this block as viewed from the perspective of `clientId` at `refSeq`.
2084
- * This is the total length of all segments sequenced at or before refSeq OR submitted by `clientId`.
2085
- * If `clientId` is the local client, `localSeq` can also be provided. In that case, it is the total
2086
- * length of all segments submitted at or before `refSeq` in addition to any local, unacked segments
2087
- * with `segment.localSeq <= localSeq`.
2088
- *
2089
- * Note: the local case (where `localSeq !== undefined`) is only supported on a PartialSequenceLength object
2090
- * constructed with `computeLocalPartials` set to true and not subsequently updated with `update`.
2091
- */
2092
- getPartialLength(refSeq: number, clientId: number, localSeq?: number): number;
2093
- /**
2094
- * Computes the seglen for the double-counted removed overlap at (refSeq, localSeq). This logic is equivalent
2095
- * to the following:
2096
- *
2097
- * ```typescript
2098
- * let total = 0;
2099
- * for (const partialLength of this.unsequencedRecords!.overlappingRemoves) {
2100
- * if (partialLength.seq > refSeq) {
2101
- * break;
2102
- * }
2103
- *
2104
- * if (partialLength.localSeq <= localSeq) {
2105
- * total += partialLength.seglen;
2106
- * }
2107
- * }
2108
- *
2109
- * return total;
2110
- * ```
2111
- *
2112
- * Reconnect happens to only need to compute these lengths for two refSeq values: before and
2113
- * after the rebase. Since these lists potentially scale with O(collab window * number of local edits)
2114
- * and potentially need to be queried for each local op that gets rebased,
2115
- * we cache the results for a given refSeq in `this.unsequencedRecords.cachedOverlappingByRefSeq` so
2116
- * that they can be binary-searched the same way the usual partialLengths lists are.
2117
- */
2118
- private computeOverlappingLocalRemoves;
2119
- toString(glc?: (id: number) => string, indentCount?: number): string;
2120
- private zamboni;
2121
- private addClientSeqNumber;
2122
- private addClientSeqNumberFromPartial;
2123
- private cliLatestLEQ;
2124
- private cliLatest;
2125
- }
2126
-
2127
- declare interface PartialSequenceLengthsOptions {
2128
- verifier?: (partialLengths: PartialSequenceLengths) => void;
2129
- verifyExpected?: (mergeTree: MergeTree, node: IMergeBlock, refSeq: number, clientId: number, localSeq?: number) => void;
2130
- zamboni: boolean;
2131
- }
2132
-
2133
1392
  /**
2134
1393
  * @alpha
2135
1394
  */
@@ -2425,7 +1684,7 @@ export declare function revertMergeTreeDeltaRevertibles(driver: MergeTreeReverti
2425
1684
  * @alpha
2426
1685
  */
2427
1686
  export declare interface SegmentGroup {
2428
- segments: ISegmentLeaf[];
1687
+ segments: ISegment[];
2429
1688
  previousProps?: PropertySet[];
2430
1689
  localSeq?: number;
2431
1690
  refSeq: number;
@@ -2557,24 +1816,6 @@ export declare abstract class SortedSet<T, U extends string | number> {
2557
1816
  };
2558
1817
  }
2559
1818
 
2560
- /**
2561
- * The position immediately prior to the start of the tree
2562
- */
2563
- declare class StartOfTreeSegment extends BaseEndpointSegment implements ISegment, IRemovalInfo {
2564
- type: string;
2565
- readonly endpointType = "start";
2566
- /**
2567
- * this segment pretends to be a sibling of the first real segment.
2568
- * so compute the necessary properties to pretend to be that segment.
2569
- */
2570
- protected endpointSegmentProps(): {
2571
- parent: IMergeBlock;
2572
- index: number;
2573
- depth: number;
2574
- };
2575
- get ordinal(): string;
2576
- }
2577
-
2578
1819
  /**
2579
1820
  * @alpha
2580
1821
  */