@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';
@@ -43,61 +42,6 @@ export declare interface AttributionPolicy {
43
42
  serializer: IAttributionCollectionSerializer;
44
43
  }
45
44
 
46
- /**
47
- * This is a special segment that is not bound or known by the merge tree itself,
48
- * but the segment itself pretends to be a removed segment at an endpoint of the
49
- * tree. It is removed so it appears as a undefined/0 length segment. This segment
50
- * adds the capability to hold local references that have been detached from the
51
- * real merge tree, and give the appearance that they exist at an endpoint of the
52
- * tree.
53
- *
54
- * This is useful today in 2 cases: detached references and interval stickiness.
55
- *
56
- * In general, local references only become detached when the tree becomes empty
57
- * and the EndOfTreeSegment allows us to gracefully handle that case by giving
58
- * those references a place to live.
59
- *
60
- * In the case of interval stickiness, it is desirable to be able to refer to
61
- * the position immediately after or before a segment, in order for the endpoint
62
- * of an interval to be exclusive. This means that in order to support intervals
63
- * that are exclusive and also include the first or last segment of the tree, it
64
- * must be possible in some way to refer to a position before or after the tree
65
- * respectively. The endpoint segments allow us to support such behavior.
66
- */
67
- declare abstract class BaseEndpointSegment {
68
- protected readonly mergeTree: MergeTree;
69
- constructor(mergeTree: MergeTree);
70
- removedSeq: number;
71
- removedClientIds: number[];
72
- attribution: undefined;
73
- propertyManager: undefined;
74
- localSeq: undefined;
75
- localRemovedSeq: undefined;
76
- properties: undefined;
77
- seq: number;
78
- clientId: number;
79
- cachedLength: number;
80
- isLeaf(): this is ISegment;
81
- protected abstract endpointSegmentProps(): {
82
- parent: IMergeBlock;
83
- index: number;
84
- depth: number;
85
- };
86
- get parent(): IMergeBlock;
87
- get index(): number;
88
- abstract get ordinal(): string;
89
- localRefs?: LocalReferenceCollection;
90
- get segmentGroups(): never;
91
- get trackingCollection(): never;
92
- addProperties: () => never;
93
- clone: () => never;
94
- canAppend: () => never;
95
- append: () => never;
96
- splitAt: () => never;
97
- toJSONObject: () => never;
98
- ack: () => never;
99
- }
100
-
101
45
  /**
102
46
  * @alpha
103
47
  */
@@ -144,11 +88,27 @@ export declare abstract class BaseSegment extends MergeNode implements ISegment
144
88
  export declare class Client extends TypedEventEmitter<IClientEvents> {
145
89
  readonly specToSegment: (spec: IJSONSegment) => ISegment;
146
90
  readonly logger: ITelemetryLoggerExt;
91
+ private readonly getMinInFlightRefSeq;
147
92
  longClientId: string | undefined;
148
93
  private readonly _mergeTree;
149
94
  private readonly clientNameToIds;
150
95
  private readonly shortClientIdMap;
151
- constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet);
96
+ /**
97
+ * @param specToSegment - Rehydrates a segment from its JSON representation
98
+ * @param logger - Telemetry logger for diagnostics
99
+ * @param options - Options for this client. See {@link IMergeTreeOptions} for details.
100
+ * @param getMinInFlightRefSeq - Upon applying a message (see {@link Client.applyMsg}), client purges collab-window information which
101
+ * is no longer necessary based on that message's minimum sequence number.
102
+ * However, if the user of this client has in-flight messages which refer to positions in this Client,
103
+ * they may wish to preserve additional merge information.
104
+ * The effective minimum sequence number will be the minimum of the message's minimumSequenceNumber and the result of this function.
105
+ * If this function returns undefined, the message's minimumSequenceNumber will be used.
106
+ *
107
+ * @privateRemarks
108
+ * - Passing specToSegment would be unnecessary if Client were merged with SharedSegmentSequence
109
+ * - AB#6866 tracks a more unified approach to collab window min seq handling.
110
+ */
111
+ constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet, getMinInFlightRefSeq?: () => number | undefined);
152
112
  /**
153
113
  * The merge tree maintains a queue of segment groups for each local operation.
154
114
  * These segment groups track segments modified by an operation.
@@ -232,6 +192,11 @@ export declare class Client extends TypedEventEmitter<IClientEvents> {
232
192
  removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
233
193
  /**
234
194
  * Resolves a `ReferencePosition` into a character position using this client's perspective.
195
+ *
196
+ * Reference positions that point to a character that has been removed will
197
+ * always return the position of the nearest non-removed character, regardless
198
+ * of {@link ReferenceType}. To handle this case specifically, one may wish
199
+ * to look at the segment returned by {@link ReferencePosition.getSegment}.
235
200
  */
236
201
  localReferencePositionToPosition(lref: ReferencePosition): number;
237
202
  /**
@@ -296,9 +261,7 @@ export declare class Client extends TypedEventEmitter<IClientEvents> {
296
261
  findReconnectionPosition(segment: ISegment, localSeq: number): number;
297
262
  private resetPendingDeltaToOps;
298
263
  private applyRemoteOp;
299
- applyStashedOp(op: IMergeTreeDeltaOp): SegmentGroup;
300
- applyStashedOp(op: IMergeTreeGroupMsg): SegmentGroup[];
301
- applyStashedOp(op: IMergeTreeOp): SegmentGroup | SegmentGroup[];
264
+ applyStashedOp(op: IMergeTreeOp): void;
302
265
  applyMsg(msg: ISequencedDocumentMessage, local?: boolean): void;
303
266
  private updateSeqNumbers;
304
267
  /**
@@ -467,61 +430,8 @@ export declare class CollaborationWindow {
467
430
  */
468
431
  export declare function discardMergeTreeDeltaRevertible(revertibles: MergeTreeDeltaRevertible[]): void;
469
432
 
470
- declare class DoublyLinkedList<T> implements Iterable<ListNode<T>>, Partial<ListNodeRange<T>>, Pick<ListNode<T>[], "pop" | "shift" | "length" | "includes"> {
471
- find(predicate: (value: ListNode<T>, obj: DoublyLinkedList<T>) => unknown): ListNode<T> | undefined;
472
- map<U>(callbackfn: (value: ListNode<T>) => U): Iterable<U>;
473
- insertAfter(preceding: ListNode<T>, ...items: T[]): ListNodeRange<T>;
474
- pop(): ListNode<T> | undefined;
475
- push(...items: T[]): ListNodeRange<T>;
476
- /**
477
- * Remove and return the first element
478
- */
479
- shift(): ListNode<T> | undefined;
480
- /**
481
- * Insert `items` at start of list
482
- */
483
- unshift(...items: T[]): ListNodeRange<T>;
484
- /**
485
- * Remove nodes starting at `start` until either the `end` node is reached
486
- * or until `count` nodes have been removed. Returns the removed nodes as
487
- * a separate linked list
488
- */
489
- splice(start: ListNode<T>, countOrEnd?: ListNode<T> | number): DoublyLinkedList<T>;
490
- includes(node: ListNode<T> | undefined): node is ListNode<T>;
491
- private _includes;
492
- private _remove;
493
- remove(node: ListNode<T> | undefined): ListNode<T> | undefined;
494
- [Symbol.iterator](): IterableIterator<ListNode<T>>;
495
- private _len;
496
- private readonly headNode;
497
- get length(): number;
498
- get empty(): boolean;
499
- get first(): ListNode<T> | undefined;
500
- get last(): ListNode<T> | undefined;
501
- }
502
-
503
- /**
504
- * The position immediately after the end of the tree
505
- */
506
- declare class EndOfTreeSegment extends BaseEndpointSegment implements ISegment, IRemovalInfo {
507
- type: string;
508
- readonly endpointType = "end";
509
- /**
510
- * this segment pretends to be a sibling of the last real segment.
511
- * so compute the necessary properties to pretend to be that segment.
512
- */
513
- protected endpointSegmentProps(): {
514
- parent: IMergeBlock;
515
- index: number;
516
- depth: number;
517
- };
518
- get ordinal(): string;
519
- }
520
-
521
433
  /* Excluded from this release type: getSlideToSegoff */
522
434
 
523
- /* Excluded from this release type: Heap */
524
-
525
435
  /**
526
436
  * @alpha
527
437
  */
@@ -604,8 +514,6 @@ export declare interface IClientEvents {
604
514
  (event: "maintenance", listener: (args: IMergeTreeMaintenanceCallbackArgs, deltaArgs: IMergeTreeDeltaOpArgs | undefined, target: IEventThisPlaceHolder) => void): void;
605
515
  }
606
516
 
607
- /* Excluded from this release type: IHierBlock */
608
-
609
517
  /**
610
518
  * @alpha
611
519
  */
@@ -634,14 +542,6 @@ export declare interface IMarkerDef {
634
542
  refType?: ReferenceType;
635
543
  }
636
544
 
637
- /* Excluded from this release type: IMergeBlock */
638
-
639
- declare type IMergeLeaf = ISegment & {
640
- parent?: IMergeBlock;
641
- };
642
-
643
- declare type IMergeNode = IMergeBlock | IMergeLeaf;
644
-
645
545
  /**
646
546
  * Common properties for a node in a merge tree.
647
547
  * @alpha
@@ -737,10 +637,6 @@ export declare interface IMergeTreeDeltaOpArgs {
737
637
  * Delta op args are for an unacked local change
738
638
  */
739
639
  readonly sequencedMessage?: ISequencedDocumentMessage;
740
- /**
741
- * If the operation is being applied as a stashed op, which means it may have been previously submitted, and therefore should not be resubmitted
742
- */
743
- readonly stashed?: boolean;
744
640
  }
745
641
 
746
642
  /**
@@ -935,21 +831,10 @@ export declare interface IMoveInfo {
935
831
  wasMovedOnInsert: boolean;
936
832
  }
937
833
 
938
- declare interface IOverlapClient {
939
- clientId: number;
940
- seglen: number;
941
- }
942
-
943
834
  /* Excluded from this release type: IRBAugmentation */
944
835
 
945
836
  /* Excluded from this release type: IRBMatcher */
946
837
 
947
- declare interface IRefsAtOffset {
948
- before?: DoublyLinkedList<LocalReference>;
949
- at?: DoublyLinkedList<LocalReference>;
950
- after?: DoublyLinkedList<LocalReference>;
951
- }
952
-
953
838
  /**
954
839
  * A position specified relative to a segment.
955
840
  * @alpha
@@ -993,10 +878,6 @@ export declare interface IRemovalInfo {
993
878
  removedClientIds: number[];
994
879
  }
995
880
 
996
- declare interface IRootMergeBlock extends IMergeBlock {
997
- mergeTree?: MergeTree;
998
- }
999
-
1000
881
  /**
1001
882
  * A segment representing a portion of the merge tree.
1002
883
  * Segments are leaf nodes of the merge tree and contain data.
@@ -1108,12 +989,6 @@ export declare interface ISegmentAction<TClientData> {
1108
989
  (segment: ISegment, pos: number, refSeq: number, clientId: number, start: number, end: number, accum: TClientData): boolean;
1109
990
  }
1110
991
 
1111
- /**
1112
- * someday we may split tree leaves from segments, but for now they are the same
1113
- * this is just a convenience type that makes it clear that we need something that is both a segment and a leaf node
1114
- */
1115
- declare type ISegmentLeaf = ISegment & IMergeLeaf;
1116
-
1117
992
  /* Excluded from this release type: isMergeTreeDeltaRevertible */
1118
993
 
1119
994
  /**
@@ -1129,36 +1004,23 @@ export declare interface ITrackingGroup {
1129
1004
 
1130
1005
  /* Excluded from this release type: KeyComparer */
1131
1006
 
1132
- declare interface ListNode<T> {
1133
- readonly list: DoublyLinkedList<T> | undefined;
1134
- readonly data: T;
1135
- readonly next: ListNode<T> | undefined;
1136
- readonly prev: ListNode<T> | undefined;
1137
- }
1138
-
1139
- declare interface ListNodeRange<T> {
1140
- first: ListNode<T>;
1141
- last: ListNode<T>;
1142
- }
1143
-
1144
- /* Excluded from this release type: LocalReference */
1145
-
1146
1007
  /**
1147
1008
  * Represents a collection of {@link LocalReferencePosition}s associated with
1148
1009
  * one segment in a merge-tree.
1149
1010
  * Represents a collection of {@link LocalReferencePosition}s associated with one segment in a merge-tree.
1011
+ * @sealed
1012
+ *
1150
1013
  * @alpha
1151
1014
  */
1152
1015
  export declare class LocalReferenceCollection {
1153
1016
  /** Segment this `LocalReferenceCollection` is associated to. */
1154
1017
  private readonly segment;
1155
1018
  static append(seg1: ISegment, seg2: ISegment): void;
1019
+ static setOrGet(segment: ISegment): LocalReferenceCollection;
1156
1020
  private readonly refsByOffset;
1157
1021
  private refCount;
1158
1022
  /***/
1159
- constructor(
1160
- /** Segment this `LocalReferenceCollection` is associated to. */
1161
- segment: ISegment, initialRefsByfOffset?: (IRefsAtOffset | undefined)[]);
1023
+ private constructor();
1162
1024
  /**
1163
1025
  * @remarks This method should only be called by mergeTree.
1164
1026
  */
@@ -1244,8 +1106,6 @@ export declare interface LocalReferencePosition extends ReferencePosition {
1244
1106
  readonly canSlideToEndpoint?: boolean;
1245
1107
  }
1246
1108
 
1247
- /* Excluded from this release type: LRUSegment */
1248
-
1249
1109
  /**
1250
1110
  * Any mapping from a string to values of type `T`
1251
1111
  * @alpha
@@ -1289,8 +1149,6 @@ export declare class Marker extends BaseSegment implements ReferencePosition, IS
1289
1149
 
1290
1150
  /* Excluded from this release type: maxReferencePosition */
1291
1151
 
1292
- /* Excluded from this release type: MergeBlock */
1293
-
1294
1152
  /**
1295
1153
  * @alpha
1296
1154
  */
@@ -1301,10 +1159,6 @@ export declare class MergeNode implements IMergeNodeCommon {
1301
1159
  isLeaf(): this is ISegment;
1302
1160
  }
1303
1161
 
1304
- /* Excluded from this release type: MergeTree */
1305
-
1306
- /* Excluded from this release type: MergeTreeDeltaCallback */
1307
-
1308
1162
  /**
1309
1163
  * @alpha
1310
1164
  */
@@ -1349,8 +1203,6 @@ export declare const MergeTreeDeltaType: {
1349
1203
  */
1350
1204
  export declare type MergeTreeDeltaType = (typeof MergeTreeDeltaType)[keyof typeof MergeTreeDeltaType];
1351
1205
 
1352
- /* Excluded from this release type: MergeTreeMaintenanceCallback */
1353
-
1354
1206
  /**
1355
1207
  * Enum-like constant defining the types of "maintenance" events on a merge tree.
1356
1208
  * Maintenance events correspond to structural segment changes or acks of pending segments.
@@ -1402,262 +1254,6 @@ export declare interface MergeTreeRevertibleDriver {
1402
1254
 
1403
1255
  /* Excluded from this release type: minReferencePosition */
1404
1256
 
1405
- /**
1406
- * Tracks length information for a part of a MergeTree (block) at a given time (seq).
1407
- * These objects are associated with internal nodes (i.e. blocks).
1408
- */
1409
- declare interface PartialSequenceLength {
1410
- /**
1411
- * Sequence number
1412
- */
1413
- seq: number;
1414
- /**
1415
- * The length of the associated block.
1416
- */
1417
- len: number;
1418
- /**
1419
- * The delta between the current length of the associated block and its length at the previous seq number.
1420
- */
1421
- seglen: number;
1422
- /**
1423
- * clientId for the client that submitted the op with sequence number `seq`.
1424
- */
1425
- clientId?: number;
1426
- /**
1427
- * If this partial length obliterated remote segments, this is the length of
1428
- * those segments
1429
- */
1430
- remoteObliteratedLen?: number;
1431
- /**
1432
- * This field maps each client to the size of the intersection between segments deleted at this seq
1433
- * and segments concurrently deleted by that client.
1434
- *
1435
- * For example, this PartialSequenceLength:
1436
- * ```typescript
1437
- * {
1438
- * seq: 5,
1439
- * len: 100,
1440
- * seglen: -10,
1441
- * clientId: 0,
1442
- * overlapRemoveClients: <RedBlack tree with key-values expressed by>{
1443
- * 1: { clientId: 1, seglen: -5 },
1444
- * 3: { clientId: 3, seglen: -10 }
1445
- * }
1446
- * }
1447
- * ```
1448
- *
1449
- * corresponds to an op submitted by client 0 which:
1450
- * - reduces the length of this block by 10 (it may have deleted a single segment of length 10,
1451
- * several segments totalling length 10, or even delete and add content for a total reduction of 10 length)
1452
- * - was concurrent to one or more ops submitted by client 1 that also removed some of the same segments,
1453
- * whose length totalled 5
1454
- * - was concurrent to one or more ops submitted by client 3 that removed some of the same segments,
1455
- * whose length totalled 10
1456
- */
1457
- overlapRemoveClients?: RedBlackTree<number, IOverlapClient>;
1458
- /**
1459
- * This field is the same as `overlapRemoveClients`, except that it tracks
1460
- * overlapping obliterates rather than removes.
1461
- */
1462
- overlapObliterateClients?: RedBlackTree<number, IOverlapClient>;
1463
- }
1464
-
1465
- /**
1466
- * Keeps track of partial sums of segment lengths for all sequence numbers in the current collaboration window.
1467
- * Only used during active collaboration.
1468
- *
1469
- * This class is associated with an internal node (block) of a MergeTree. It efficiently answers queries of the form
1470
- * "What is the length of `block` from the perspective of some particular seq and clientId?".
1471
- *
1472
- * It also supports incremental updating of state for newly-sequenced ops that don't affect the structure of the
1473
- * MergeTree.
1474
- *
1475
- * To answer these queries, it pre-builds several lists which track the length of the block at a per-sequence-number
1476
- * level. These lists are:
1477
- *
1478
- * 1. (`partialLengths`): Stores the total length of the block.
1479
- * 2. (`clientSeqNumbers[clientId]`): Stores only the total lengths of segments submitted by `clientId`. [see footnote]
1480
- *
1481
- * The reason both lists are necessary is that resolving the length of the block from the perspective of
1482
- * (clientId, refSeq) requires including both of the following types of segments:
1483
- * 1. Segments sequenced before `refSeq`
1484
- * 2. Segments submitted by `clientId`
1485
- *
1486
- * This is possible with the above bookkeeping, using:
1487
- *
1488
- * (length of the block at the minimum sequence number)
1489
- * + (partialLengths total length at refSeq)
1490
- * + (clientSeqNumbers total length at most recent op)
1491
- * - (clientSeqNumbers total length at refSeq)
1492
- *
1493
- * where the subtraction avoids double-counting segments submitted by clientId sequenced within the collab window.
1494
- *
1495
- * To enable reconnect, if constructed with `computeLocalPartials === true` it also supports querying for the length of
1496
- * the block from the perspective of the local client at a particular `refSeq` and `localSeq`. This computation is
1497
- * similar to the above:
1498
- *
1499
- * (length of the block at the minimum sequence number)
1500
- * + (partialLengths total length at refSeq)
1501
- * + (unsequenced edits' total length submitted before localSeq)
1502
- * - (overlapping remove of the unsequenced edits' total length at refSeq)
1503
- *
1504
- * This algorithm scales roughly linearly with number of editing clients and the size of the collab window.
1505
- * (certain unlikely sequences of operations may introduce log factors on those variables)
1506
- *
1507
- * Note: there is some slight complication with clientSeqNumbers resulting from the possibility of different clients
1508
- * concurrently removing the same segment. See the field's documentation for more details.
1509
- */
1510
- declare class PartialSequenceLengths {
1511
- /**
1512
- * The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
1513
- * or if no such calls have been made, the one used on construction.
1514
- */
1515
- minSeq: number;
1516
- static options: PartialSequenceLengthsOptions;
1517
- /**
1518
- * Combine the partial lengths of block's children
1519
- * @param block - an interior node. If `recur` is false, it is assumed that each interior node child of this block
1520
- * has its partials up to date.
1521
- * @param collabWindow - segment window of the segment tree containing `block`.
1522
- * @param recur - whether to recursively compute partial lengths for internal children of `block`.
1523
- * This incurs more work, but gives correct bookkeeping in the case that a descendant in the merge tree has been
1524
- * modified without bubbling up the resulting partial length change to this block's partials.
1525
- * @param computeLocalPartials - whether to compute partial length information about local unsequenced ops.
1526
- * This enables querying for the length of the block at a given localSeq, but incurs extra work.
1527
- * Local partial information doesn't support `update`.
1528
- */
1529
- static combine(block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean, computeLocalPartials?: boolean): PartialSequenceLengths;
1530
- /**
1531
- * @returns a PartialSequenceLengths structure which tracks only lengths of leaf children of the provided
1532
- * IMergeBlock.
1533
- */
1534
- private static fromLeaves;
1535
- private static getOverlapClients;
1536
- private static accumulateRemoveClientOverlap;
1537
- private static accumulateMoveClientOverlap;
1538
- /**
1539
- * Coalesce overlapping move lengths for a partial length entry that already
1540
- * exists
1541
- *
1542
- * @param segmentLen - Length of segment with overlapping moves
1543
- * @param segment - Segment with overlapping moves
1544
- * @param firstGte - Existing partial length entry
1545
- * @param clientIds - Ids of clients that concurrently obliterated this segment
1546
- */
1547
- static accumulateMoveOverlapForExisting(segmentLen: number, segment: ISegment, firstGte: PartialSequenceLength, clientIds: number[]): void;
1548
- /**
1549
- * @param obliterateOverlapLen - Length of segment with overlap
1550
- * @param clientIds - Ids of clients that have concurrently obliterated this
1551
- * segment
1552
- */
1553
- private static getMoveOverlapForExisting;
1554
- private static updatePartialsAfterInsertion;
1555
- /**
1556
- * Inserts length information about the insertion of `segment` into
1557
- * `combinedPartialLengths.partialLengths`.
1558
- *
1559
- * Does not update the clientSeqNumbers field to account for this segment.
1560
- *
1561
- * If `removalInfo` or `moveInfo` are defined, this operation updates the
1562
- * bookkeeping to account for the (re)moval of this segment at the (re)movedSeq
1563
- * instead.
1564
- *
1565
- * When the insertion or (re)moval of the segment is un-acked and
1566
- * `combinedPartialLengths` is meant to compute such records, this does the
1567
- * analogous addition to the bookkeeping for the local segment in
1568
- * `combinedPartialLengths.unsequencedRecords`.
1569
- */
1570
- private static insertSegment;
1571
- private static addSeq;
1572
- /**
1573
- * Length of the block this PartialSequenceLength corresponds to when viewed at `minSeq`.
1574
- */
1575
- private minLength;
1576
- /**
1577
- * Total number of segments in the subtree rooted at the block this PartialSequenceLength corresponds to.
1578
- */
1579
- private segmentCount;
1580
- /**
1581
- * List of PartialSequenceLength objects--ordered by increasing seq--giving length information about
1582
- * the block associated with this PartialSequenceLengths object.
1583
- *
1584
- * `partialLengths[i].len` contains the length of this block considering only sequenced segments with
1585
- * `sequenceNumber <= partialLengths[i].seq`.
1586
- */
1587
- private readonly partialLengths;
1588
- /**
1589
- * clientSeqNumbers[clientId] is a list of partial lengths for sequenced ops which either:
1590
- * - were submitted by `clientId`.
1591
- * - deleted a range containing segments that were concurrently deleted by `clientId`
1592
- *
1593
- * The second case is referred to as the "overlapping delete" case. It is necessary to avoid double-counting
1594
- * the removal of those segments in queries including clientId.
1595
- */
1596
- private readonly clientSeqNumbers;
1597
- /**
1598
- * Contains information required to answer queries for the length of this segment from the perspective of
1599
- * the local client but not including all local segments (i.e., `localSeq !== collabWindow.localSeq`).
1600
- * This field is only computed if requested in the constructor (i.e. `computeLocalPartials === true`).
1601
- */
1602
- private unsequencedRecords;
1603
- constructor(
1604
- /**
1605
- * The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
1606
- * or if no such calls have been made, the one used on construction.
1607
- */
1608
- minSeq: number, computeLocalPartials: boolean);
1609
- update(node: IMergeBlock, seq: number, clientId: number, collabWindow: CollaborationWindow): void;
1610
- /**
1611
- * Returns the length of this block as viewed from the perspective of `clientId` at `refSeq`.
1612
- * This is the total length of all segments sequenced at or before refSeq OR submitted by `clientId`.
1613
- * If `clientId` is the local client, `localSeq` can also be provided. In that case, it is the total
1614
- * length of all segments submitted at or before `refSeq` in addition to any local, unacked segments
1615
- * with `segment.localSeq <= localSeq`.
1616
- *
1617
- * Note: the local case (where `localSeq !== undefined`) is only supported on a PartialSequenceLength object
1618
- * constructed with `computeLocalPartials` set to true and not subsequently updated with `update`.
1619
- */
1620
- getPartialLength(refSeq: number, clientId: number, localSeq?: number): number;
1621
- /**
1622
- * Computes the seglen for the double-counted removed overlap at (refSeq, localSeq). This logic is equivalent
1623
- * to the following:
1624
- *
1625
- * ```typescript
1626
- * let total = 0;
1627
- * for (const partialLength of this.unsequencedRecords!.overlappingRemoves) {
1628
- * if (partialLength.seq > refSeq) {
1629
- * break;
1630
- * }
1631
- *
1632
- * if (partialLength.localSeq <= localSeq) {
1633
- * total += partialLength.seglen;
1634
- * }
1635
- * }
1636
- *
1637
- * return total;
1638
- * ```
1639
- *
1640
- * Reconnect happens to only need to compute these lengths for two refSeq values: before and
1641
- * after the rebase. Since these lists potentially scale with O(collab window * number of local edits)
1642
- * and potentially need to be queried for each local op that gets rebased,
1643
- * we cache the results for a given refSeq in `this.unsequencedRecords.cachedOverlappingByRefSeq` so
1644
- * that they can be binary-searched the same way the usual partialLengths lists are.
1645
- */
1646
- private computeOverlappingLocalRemoves;
1647
- toString(glc?: (id: number) => string, indentCount?: number): string;
1648
- private zamboni;
1649
- private addClientSeqNumber;
1650
- private addClientSeqNumberFromPartial;
1651
- private cliLatestLEQ;
1652
- private cliLatest;
1653
- }
1654
-
1655
- declare interface PartialSequenceLengthsOptions {
1656
- verifier?: (partialLengths: PartialSequenceLengths) => void;
1657
- verifyExpected?: (mergeTree: MergeTree, node: IMergeBlock, refSeq: number, clientId: number, localSeq?: number) => void;
1658
- zamboni: boolean;
1659
- }
1660
-
1661
1257
  /**
1662
1258
  * @alpha
1663
1259
  */
@@ -1816,7 +1412,7 @@ export declare function revertMergeTreeDeltaRevertibles(driver: MergeTreeReverti
1816
1412
  * @alpha
1817
1413
  */
1818
1414
  export declare interface SegmentGroup {
1819
- segments: ISegmentLeaf[];
1415
+ segments: ISegment[];
1820
1416
  previousProps?: PropertySet[];
1821
1417
  localSeq?: number;
1822
1418
  refSeq: number;
@@ -1900,24 +1496,6 @@ export declare type SlidingPreference = (typeof SlidingPreference)[keyof typeof
1900
1496
 
1901
1497
  /* Excluded from this release type: SortedSet */
1902
1498
 
1903
- /**
1904
- * The position immediately prior to the start of the tree
1905
- */
1906
- declare class StartOfTreeSegment extends BaseEndpointSegment implements ISegment, IRemovalInfo {
1907
- type: string;
1908
- readonly endpointType = "start";
1909
- /**
1910
- * this segment pretends to be a sibling of the first real segment.
1911
- * so compute the necessary properties to pretend to be that segment.
1912
- */
1913
- protected endpointSegmentProps(): {
1914
- parent: IMergeBlock;
1915
- index: number;
1916
- depth: number;
1917
- };
1918
- get ordinal(): string;
1919
- }
1920
-
1921
1499
  /**
1922
1500
  * @alpha
1923
1501
  */