@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
package/dist/mergeTree.js CHANGED
@@ -9,23 +9,23 @@ exports.MergeTree = exports.getSlideToSegoff = exports.findRootMergeBlock = void
9
9
  /* eslint-disable no-bitwise */
10
10
  const core_utils_1 = require("@fluidframework/core-utils");
11
11
  const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
12
- const collections_1 = require("./collections");
13
- const constants_1 = require("./constants");
14
- const localReference_1 = require("./localReference");
15
- const mergeTreeNodes_1 = require("./mergeTreeNodes");
16
- const mergeTreeDeltaCallback_1 = require("./mergeTreeDeltaCallback");
17
- const opBuilder_1 = require("./opBuilder");
18
- const ops_1 = require("./ops");
19
- const partialLengths_1 = require("./partialLengths");
12
+ const index_js_1 = require("./collections/index.js");
13
+ const constants_js_1 = require("./constants.js");
14
+ const localReference_js_1 = require("./localReference.js");
15
+ const mergeTreeNodes_js_1 = require("./mergeTreeNodes.js");
16
+ const mergeTreeDeltaCallback_js_1 = require("./mergeTreeDeltaCallback.js");
17
+ const opBuilder_js_1 = require("./opBuilder.js");
18
+ const ops_js_1 = require("./ops.js");
19
+ const partialLengths_js_1 = require("./partialLengths.js");
20
20
  // eslint-disable-next-line import/no-deprecated
21
- const properties_1 = require("./properties");
22
- const referencePositions_1 = require("./referencePositions");
23
- const segmentPropertiesManager_1 = require("./segmentPropertiesManager");
24
- const mergeTreeNodeWalk_1 = require("./mergeTreeNodeWalk");
25
- const zamboni_1 = require("./zamboni");
26
- const endOfTreeSegment_1 = require("./endOfTreeSegment");
21
+ const properties_js_1 = require("./properties.js");
22
+ const referencePositions_js_1 = require("./referencePositions.js");
23
+ const segmentPropertiesManager_js_1 = require("./segmentPropertiesManager.js");
24
+ const mergeTreeNodeWalk_js_1 = require("./mergeTreeNodeWalk.js");
25
+ const zamboni_js_1 = require("./zamboni.js");
26
+ const endOfTreeSegment_js_1 = require("./endOfTreeSegment.js");
27
27
  function wasRemovedAfter(seg, seq) {
28
- return (seg.removedSeq !== constants_1.UnassignedSequenceNumber &&
28
+ return (seg.removedSeq !== constants_js_1.UnassignedSequenceNumber &&
29
29
  (seg.removedSeq === undefined || seg.removedSeq > seq));
30
30
  }
31
31
  function markSegmentMoved(seg, moveInfo) {
@@ -37,22 +37,25 @@ function markSegmentMoved(seg, moveInfo) {
37
37
  seg.wasMovedOnInsert = moveInfo.wasMovedOnInsert;
38
38
  }
39
39
  function isMoved(segment) {
40
- return (0, mergeTreeNodes_1.toMoveInfo)(segment) !== undefined;
40
+ return (0, mergeTreeNodes_js_1.toMoveInfo)(segment) !== undefined;
41
41
  }
42
42
  function isRemoved(segment) {
43
- return (0, mergeTreeNodes_1.toRemovalInfo)(segment) !== undefined;
43
+ return (0, mergeTreeNodes_js_1.toRemovalInfo)(segment) !== undefined;
44
44
  }
45
45
  function isRemovedAndAcked(segment) {
46
- const removalInfo = (0, mergeTreeNodes_1.toRemovalInfo)(segment);
47
- return removalInfo !== undefined && removalInfo.removedSeq !== constants_1.UnassignedSequenceNumber;
46
+ const removalInfo = (0, mergeTreeNodes_js_1.toRemovalInfo)(segment);
47
+ return removalInfo !== undefined && removalInfo.removedSeq !== constants_js_1.UnassignedSequenceNumber;
48
48
  }
49
49
  function isMovedAndAcked(segment) {
50
- const moveInfo = (0, mergeTreeNodes_1.toMoveInfo)(segment);
51
- return moveInfo !== undefined && moveInfo.movedSeq !== constants_1.UnassignedSequenceNumber;
50
+ const moveInfo = (0, mergeTreeNodes_js_1.toMoveInfo)(segment);
51
+ return moveInfo !== undefined && moveInfo.movedSeq !== constants_js_1.UnassignedSequenceNumber;
52
52
  }
53
53
  function isRemovedAndAckedOrMovedAndAcked(segment) {
54
54
  return isRemovedAndAcked(segment) || isMovedAndAcked(segment);
55
55
  }
56
+ function isRemovedOrMoved(segment) {
57
+ return isRemoved(segment) || isMoved(segment);
58
+ }
56
59
  function nodeTotalLength(mergeTree, node) {
57
60
  if (!node.isLeaf()) {
58
61
  return node.cachedLength;
@@ -64,7 +67,7 @@ const LRUSegmentComparer = {
64
67
  compare: (a, b) => a.maxSeq - b.maxSeq,
65
68
  };
66
69
  function addTile(tile, tiles) {
67
- const tileLabels = (0, referencePositions_1.refGetTileLabels)(tile);
70
+ const tileLabels = (0, referencePositions_js_1.refGetTileLabels)(tile);
68
71
  if (tileLabels) {
69
72
  for (const tileLabel of tileLabels) {
70
73
  tiles[tileLabel] = tile;
@@ -72,7 +75,7 @@ function addTile(tile, tiles) {
72
75
  }
73
76
  }
74
77
  function addTileIfNotPresent(tile, tiles) {
75
- const tileLabels = (0, referencePositions_1.refGetTileLabels)(tile);
78
+ const tileLabels = (0, referencePositions_js_1.refGetTileLabels)(tile);
76
79
  if (tileLabels) {
77
80
  for (const tileLabel of tileLabels) {
78
81
  if (tiles[tileLabel] === undefined) {
@@ -81,13 +84,13 @@ function addTileIfNotPresent(tile, tiles) {
81
84
  }
82
85
  }
83
86
  }
84
- class HierMergeBlock extends mergeTreeNodes_1.MergeBlock {
87
+ class HierMergeBlock extends mergeTreeNodes_js_1.MergeBlock {
85
88
  constructor(childCount) {
86
89
  super(childCount);
87
90
  // eslint-disable-next-line import/no-deprecated
88
- this.rightmostTiles = (0, properties_1.createMap)();
91
+ this.rightmostTiles = (0, properties_js_1.createMap)();
89
92
  // eslint-disable-next-line import/no-deprecated
90
- this.leftmostTiles = (0, properties_1.createMap)();
93
+ this.leftmostTiles = (0, properties_js_1.createMap)();
91
94
  }
92
95
  hierBlock() {
93
96
  return this;
@@ -117,7 +120,7 @@ exports.findRootMergeBlock = findRootMergeBlock;
117
120
  * valid segment (i.e. the tree is empty).
118
121
  * @internal
119
122
  */
120
- function getSlideToSegment(segment, slidingPreference = localReference_1.SlidingPreference.FORWARD, cache, useNewSlidingBehavior = false) {
123
+ function getSlideToSegment(segment, slidingPreference = localReference_js_1.SlidingPreference.FORWARD, cache, useNewSlidingBehavior = false) {
121
124
  if (!segment ||
122
125
  !isRemovedAndAckedOrMovedAndAcked(segment) ||
123
126
  segment.endpointType !== undefined) {
@@ -130,7 +133,7 @@ function getSlideToSegment(segment, slidingPreference = localReference_1.Sliding
130
133
  const result = {};
131
134
  cache?.set(segment, result);
132
135
  const goFurtherToFindSlideToSegment = (seg) => {
133
- if (seg.seq !== constants_1.UnassignedSequenceNumber && !isRemovedAndAckedOrMovedAndAcked(seg)) {
136
+ if (seg.seq !== constants_js_1.UnassignedSequenceNumber && !isRemovedAndAckedOrMovedAndAcked(seg)) {
134
137
  result.seg = seg;
135
138
  return false;
136
139
  }
@@ -140,11 +143,11 @@ function getSlideToSegment(segment, slidingPreference = localReference_1.Sliding
140
143
  }
141
144
  return true;
142
145
  };
143
- if (slidingPreference === localReference_1.SlidingPreference.BACKWARD) {
144
- (0, mergeTreeNodeWalk_1.backwardExcursion)(segment, goFurtherToFindSlideToSegment);
146
+ if (slidingPreference === localReference_js_1.SlidingPreference.BACKWARD) {
147
+ (0, mergeTreeNodeWalk_js_1.backwardExcursion)(segment, goFurtherToFindSlideToSegment);
145
148
  }
146
149
  else {
147
- (0, mergeTreeNodeWalk_1.forwardExcursion)(segment, goFurtherToFindSlideToSegment);
150
+ (0, mergeTreeNodeWalk_js_1.forwardExcursion)(segment, goFurtherToFindSlideToSegment);
148
151
  }
149
152
  if (result.seg !== undefined) {
150
153
  return [result.seg, undefined];
@@ -159,18 +162,18 @@ function getSlideToSegment(segment, slidingPreference = localReference_1.Sliding
159
162
  // in both of these cases detached may be substituted for one of the special
160
163
  // endpoint segments, if such behavior is enabled
161
164
  if (!useNewSlidingBehavior) {
162
- if (slidingPreference === localReference_1.SlidingPreference.BACKWARD) {
163
- (0, mergeTreeNodeWalk_1.forwardExcursion)(segment, goFurtherToFindSlideToSegment);
165
+ if (slidingPreference === localReference_js_1.SlidingPreference.BACKWARD) {
166
+ (0, mergeTreeNodeWalk_js_1.forwardExcursion)(segment, goFurtherToFindSlideToSegment);
164
167
  }
165
168
  else {
166
- (0, mergeTreeNodeWalk_1.backwardExcursion)(segment, goFurtherToFindSlideToSegment);
169
+ (0, mergeTreeNodeWalk_js_1.backwardExcursion)(segment, goFurtherToFindSlideToSegment);
167
170
  }
168
171
  }
169
172
  let maybeEndpoint;
170
- if (slidingPreference === localReference_1.SlidingPreference.BACKWARD) {
173
+ if (slidingPreference === localReference_js_1.SlidingPreference.BACKWARD) {
171
174
  maybeEndpoint = "start";
172
175
  }
173
- else if (slidingPreference === localReference_1.SlidingPreference.FORWARD) {
176
+ else if (slidingPreference === localReference_js_1.SlidingPreference.FORWARD) {
174
177
  maybeEndpoint = "end";
175
178
  }
176
179
  return [result.seg, maybeEndpoint];
@@ -181,7 +184,7 @@ function getSlideToSegment(segment, slidingPreference = localReference_1.Sliding
181
184
  * @returns segment and offset to slide the reference to
182
185
  * @internal
183
186
  */
184
- function getSlideToSegoff(segoff, slidingPreference = localReference_1.SlidingPreference.FORWARD, useNewSlidingBehavior = false) {
187
+ function getSlideToSegoff(segoff, slidingPreference = localReference_js_1.SlidingPreference.FORWARD, useNewSlidingBehavior = false) {
185
188
  if (segoff.segment === undefined) {
186
189
  return segoff;
187
190
  }
@@ -203,9 +206,9 @@ class MergeTree {
203
206
  constructor(options) {
204
207
  this.options = options;
205
208
  // eslint-disable-next-line import/no-deprecated
206
- this.collabWindow = new mergeTreeNodes_1.CollaborationWindow();
209
+ this.collabWindow = new mergeTreeNodes_js_1.CollaborationWindow();
207
210
  // eslint-disable-next-line import/no-deprecated
208
- this.pendingSegments = new collections_1.DoublyLinkedList();
211
+ this.pendingSegments = new index_js_1.DoublyLinkedList();
209
212
  this.segmentsToScour = new core_utils_1.Heap(LRUSegmentComparer);
210
213
  /**
211
214
  * Whether or not all blocks in the mergeTree currently have information about local partial lengths computed.
@@ -252,13 +255,13 @@ class MergeTree {
252
255
  }
253
256
  const next = segment.splitAt(pos);
254
257
  this.mergeTreeMaintenanceCallback?.({
255
- operation: mergeTreeDeltaCallback_1.MergeTreeMaintenanceType.SPLIT,
258
+ operation: mergeTreeDeltaCallback_js_1.MergeTreeMaintenanceType.SPLIT,
256
259
  deltaSegments: [{ segment }, { segment: next }],
257
260
  }, undefined);
258
261
  return { next };
259
262
  };
260
- this.startOfTree = new endOfTreeSegment_1.StartOfTreeSegment(this);
261
- this.endOfTree = new endOfTreeSegment_1.EndOfTreeSegment(this);
263
+ this.startOfTree = new endOfTreeSegment_js_1.StartOfTreeSegment(this);
264
+ this.endOfTree = new endOfTreeSegment_js_1.EndOfTreeSegment(this);
262
265
  this._root = this.makeBlock(0);
263
266
  this._root.mergeTree = this;
264
267
  this.attributionPolicy = options?.attribution?.policyFactory?.();
@@ -283,12 +286,12 @@ class MergeTree {
283
286
  * numbers corresponding to un-acked operations give valid results.
284
287
  */
285
288
  localNetLength(segment, refSeq, localSeq) {
286
- const removalInfo = (0, mergeTreeNodes_1.toRemovalInfo)(segment);
287
- const moveInfo = (0, mergeTreeNodes_1.toMoveInfo)(segment);
289
+ const removalInfo = (0, mergeTreeNodes_js_1.toRemovalInfo)(segment);
290
+ const moveInfo = (0, mergeTreeNodes_js_1.toMoveInfo)(segment);
288
291
  if (localSeq === undefined) {
289
292
  if (removalInfo !== undefined || moveInfo !== undefined) {
290
- if ((!!removalInfo && !(0, mergeTreeNodes_1.seqLTE)(removalInfo.removedSeq, this.collabWindow.minSeq)) ||
291
- (!!moveInfo && !(0, mergeTreeNodes_1.seqLTE)(moveInfo.movedSeq, this.collabWindow.minSeq))) {
293
+ if ((!!removalInfo && !(0, mergeTreeNodes_js_1.seqLTE)(removalInfo.removedSeq, this.collabWindow.minSeq)) ||
294
+ (!!moveInfo && !(0, mergeTreeNodes_js_1.seqLTE)(moveInfo.movedSeq, this.collabWindow.minSeq))) {
292
295
  return 0;
293
296
  }
294
297
  // this segment removed and outside the collab window which means it is zamboni eligible
@@ -303,14 +306,14 @@ class MergeTree {
303
306
  (0, core_utils_1.assert)(refSeq !== undefined, 0x398 /* localSeq provided for local length without refSeq */);
304
307
  (0, core_utils_1.assert)(segment.seq !== undefined, 0x399 /* segment with no seq in mergeTree */);
305
308
  const { seq, removedSeq, localRemovedSeq, movedSeq, localMovedSeq } = segment;
306
- if (seq !== constants_1.UnassignedSequenceNumber) {
309
+ if (seq !== constants_js_1.UnassignedSequenceNumber) {
307
310
  // inserted remotely
308
311
  if (seq > refSeq ||
309
312
  (removedSeq !== undefined &&
310
- removedSeq !== constants_1.UnassignedSequenceNumber &&
313
+ removedSeq !== constants_js_1.UnassignedSequenceNumber &&
311
314
  removedSeq <= refSeq) ||
312
315
  (movedSeq !== undefined &&
313
- movedSeq !== constants_1.UnassignedSequenceNumber &&
316
+ movedSeq !== constants_js_1.UnassignedSequenceNumber &&
314
317
  movedSeq <= refSeq) ||
315
318
  (localRemovedSeq !== undefined && localRemovedSeq <= localSeq) ||
316
319
  (localMovedSeq !== undefined && localMovedSeq <= localSeq)) {
@@ -343,7 +346,7 @@ class MergeTree {
343
346
  reloadFromSegments(segments) {
344
347
  // This code assumes that a later call to `startCollaboration()` will initialize partial lengths.
345
348
  (0, core_utils_1.assert)(!this.collabWindow.collaborating, 0x049 /* "Trying to reload from segments while collaborating!" */);
346
- const maxChildren = mergeTreeNodes_1.MaxNodesInBlock - 1;
349
+ const maxChildren = mergeTreeNodes_js_1.MaxNodesInBlock - 1;
347
350
  // Starting with the leaf segments, recursively builds the B-Tree layer by layer from the bottom up.
348
351
  const buildMergeBlock = (nodes) => {
349
352
  const blockCount = Math.ceil(nodes.length / maxChildren); // Compute # blocks require for this level of B-Tree
@@ -466,20 +469,20 @@ class MergeTree {
466
469
  let currentForwardMaybeEndpoint;
467
470
  let currentForwardSlideDestination;
468
471
  let currentForwardSlideIsForward;
469
- const forwardPred = (ref) => ref.slidingPreference !== localReference_1.SlidingPreference.BACKWARD;
472
+ const forwardPred = (ref) => ref.slidingPreference !== localReference_js_1.SlidingPreference.BACKWARD;
470
473
  let currentBackwardMaybeEndpoint;
471
474
  let currentBackwardSlideDestination;
472
475
  let currentBackwardSlideIsForward;
473
- const backwardPred = (ref) => ref.slidingPreference === localReference_1.SlidingPreference.BACKWARD;
476
+ const backwardPred = (ref) => ref.slidingPreference === localReference_js_1.SlidingPreference.BACKWARD;
474
477
  const slideGroup = (currentSlideDestination, currentSlideIsForward, currentSlideGroup, pred, maybeEndpoint) => {
475
478
  if (currentSlideIsForward === undefined) {
476
479
  return;
477
480
  }
478
- const nonEndpointRefsToAdd = currentSlideGroup.map((collection) => (0, localReference_1.filterLocalReferencePositions)(collection, (ref) => pred(ref) && (maybeEndpoint ? !ref.canSlideToEndpoint : true)));
479
- const endpointRefsToAdd = currentSlideGroup.map((collection) => (0, localReference_1.filterLocalReferencePositions)(collection, (ref) => pred(ref) && !!ref.canSlideToEndpoint));
481
+ const nonEndpointRefsToAdd = currentSlideGroup.map((collection) => (0, localReference_js_1.filterLocalReferencePositions)(collection, (ref) => pred(ref) && (maybeEndpoint ? !ref.canSlideToEndpoint : true)));
482
+ const endpointRefsToAdd = currentSlideGroup.map((collection) => (0, localReference_js_1.filterLocalReferencePositions)(collection, (ref) => pred(ref) && !!ref.canSlideToEndpoint));
480
483
  if (maybeEndpoint) {
481
484
  const endpoint = maybeEndpoint === "start" ? this.startOfTree : this.endOfTree;
482
- const localRefs = (endpoint.localRefs ?? (endpoint.localRefs = new localReference_1.LocalReferenceCollection(endpoint)));
485
+ const localRefs = localReference_js_1.LocalReferenceCollection.setOrGet(endpoint);
483
486
  if (currentSlideIsForward) {
484
487
  localRefs.addBeforeTombstones(...endpointRefsToAdd);
485
488
  }
@@ -488,7 +491,7 @@ class MergeTree {
488
491
  }
489
492
  }
490
493
  if (currentSlideDestination !== undefined) {
491
- const localRefs = (currentSlideDestination.localRefs ?? (currentSlideDestination.localRefs = new localReference_1.LocalReferenceCollection(currentSlideDestination)));
494
+ const localRefs = localReference_js_1.LocalReferenceCollection.setOrGet(currentSlideDestination);
492
495
  if (currentSlideIsForward) {
493
496
  localRefs.addBeforeTombstones(...nonEndpointRefsToAdd);
494
497
  }
@@ -499,7 +502,7 @@ class MergeTree {
499
502
  else {
500
503
  for (const collection of currentSlideGroup) {
501
504
  for (const ref of collection) {
502
- if (pred(ref) && !(0, referencePositions_1.refTypeIncludesFlag)(ref, ops_1.ReferenceType.StayOnRemove)) {
505
+ if (pred(ref) && !(0, referencePositions_js_1.refTypeIncludesFlag)(ref, ops_js_1.ReferenceType.StayOnRemove)) {
503
506
  ref.callbacks?.beforeSlide?.(ref);
504
507
  collection.removeLocalRef(ref);
505
508
  ref.callbacks?.afterSlide?.(ref);
@@ -511,10 +514,10 @@ class MergeTree {
511
514
  const trySlideSegment = (segment, currentSlideDestination, currentSlideIsForward, currentSlideGroup, pred, slidingPreference, currentMaybeEndpoint, reassign) => {
512
515
  // avoid sliding logic if this segment doesn't have any references
513
516
  // with the given sliding preference
514
- if (!segment.localRefs || !(0, localReference_1.anyLocalReferencePosition)(segment.localRefs, pred)) {
517
+ if (!segment.localRefs || !(0, localReference_js_1.anyLocalReferencePosition)(segment.localRefs, pred)) {
515
518
  return;
516
519
  }
517
- const [slideToSegment, maybeEndpoint] = getSlideToSegment(segment, slidingPreference, slidingPreference === localReference_1.SlidingPreference.FORWARD
520
+ const [slideToSegment, maybeEndpoint] = getSlideToSegment(segment, slidingPreference, slidingPreference === localReference_js_1.SlidingPreference.FORWARD
518
521
  ? forwardSegmentCache
519
522
  : backwardSegmentCache, this.options?.mergeTreeReferencesCanSlideToEndpoint);
520
523
  const slideIsForward = slideToSegment === undefined ? false : slideToSegment.ordinal > segment.ordinal;
@@ -535,13 +538,13 @@ class MergeTree {
535
538
  if (segment.localRefs === undefined || segment.localRefs.empty) {
536
539
  continue;
537
540
  }
538
- trySlideSegment(segment, currentForwardSlideDestination, currentForwardSlideIsForward, currentForwardSlideGroup, forwardPred, localReference_1.SlidingPreference.FORWARD, currentForwardMaybeEndpoint, (localRefs, slideToSegment, slideIsForward, maybeEndpoint) => {
541
+ trySlideSegment(segment, currentForwardSlideDestination, currentForwardSlideIsForward, currentForwardSlideGroup, forwardPred, localReference_js_1.SlidingPreference.FORWARD, currentForwardMaybeEndpoint, (localRefs, slideToSegment, slideIsForward, maybeEndpoint) => {
539
542
  currentForwardSlideGroup = [localRefs];
540
543
  currentForwardSlideDestination = slideToSegment;
541
544
  currentForwardSlideIsForward = slideIsForward;
542
545
  currentForwardMaybeEndpoint = maybeEndpoint;
543
546
  });
544
- trySlideSegment(segment, currentBackwardSlideDestination, currentBackwardSlideIsForward, currentBackwardSlideGroup, backwardPred, localReference_1.SlidingPreference.BACKWARD, currentBackwardMaybeEndpoint, (localRefs, slideToSegment, slideIsForward, maybeEndpoint) => {
547
+ trySlideSegment(segment, currentBackwardSlideDestination, currentBackwardSlideIsForward, currentBackwardSlideGroup, backwardPred, localReference_js_1.SlidingPreference.BACKWARD, currentBackwardMaybeEndpoint, (localRefs, slideToSegment, slideIsForward, maybeEndpoint) => {
545
548
  currentBackwardSlideGroup = [localRefs];
546
549
  currentBackwardSlideDestination = slideToSegment;
547
550
  currentBackwardSlideIsForward = slideIsForward;
@@ -566,12 +569,12 @@ class MergeTree {
566
569
  return;
567
570
  }
568
571
  // eslint-disable-next-line import/no-deprecated
569
- const rebaseCollabWindow = new mergeTreeNodes_1.CollaborationWindow();
572
+ const rebaseCollabWindow = new mergeTreeNodes_js_1.CollaborationWindow();
570
573
  rebaseCollabWindow.loadFrom(this.collabWindow);
571
574
  if (refSeq < this.collabWindow.minSeq) {
572
575
  rebaseCollabWindow.minSeq = refSeq;
573
576
  }
574
- this.root.partialLengths = partialLengths_1.PartialSequenceLengths.combine(this.root, rebaseCollabWindow, true, true);
577
+ this.root.partialLengths = partialLengths_js_1.PartialSequenceLengths.combine(this.root, rebaseCollabWindow, true, true);
575
578
  this.localPartialsComputed = true;
576
579
  }
577
580
  nodeLength(node, refSeq, clientId, localSeq) {
@@ -587,7 +590,7 @@ class MergeTree {
587
590
  this.computeLocalPartials(refSeq);
588
591
  // Local client should see all segments except those after localSeq.
589
592
  const partialLen = node.partialLengths.getPartialLength(refSeq, clientId, localSeq);
590
- partialLengths_1.PartialSequenceLengths.options.verifyExpected?.(this, node, refSeq, clientId, localSeq);
593
+ partialLengths_js_1.PartialSequenceLengths.options.verifyExpected?.(this, node, refSeq, clientId, localSeq);
591
594
  return partialLen;
592
595
  }
593
596
  }
@@ -595,32 +598,32 @@ class MergeTree {
595
598
  // Sequence number within window
596
599
  if (!node.isLeaf()) {
597
600
  const partialLen = node.partialLengths.getPartialLength(refSeq, clientId);
598
- partialLengths_1.PartialSequenceLengths.options.verifyExpected?.(this, node, refSeq, clientId);
601
+ partialLengths_js_1.PartialSequenceLengths.options.verifyExpected?.(this, node, refSeq, clientId);
599
602
  return partialLen;
600
603
  }
601
604
  else {
602
605
  const segment = node;
603
- const removalInfo = (0, mergeTreeNodes_1.toRemovalInfo)(segment);
604
- const moveInfo = (0, mergeTreeNodes_1.toMoveInfo)(segment);
606
+ const removalInfo = (0, mergeTreeNodes_js_1.toRemovalInfo)(segment);
607
+ const moveInfo = (0, mergeTreeNodes_js_1.toMoveInfo)(segment);
605
608
  if (removalInfo !== undefined) {
606
- if ((0, mergeTreeNodes_1.seqLTE)(removalInfo.removedSeq, this.collabWindow.minSeq)) {
609
+ if ((0, mergeTreeNodes_js_1.seqLTE)(removalInfo.removedSeq, this.collabWindow.minSeq)) {
607
610
  return undefined;
608
611
  }
609
- if ((0, mergeTreeNodes_1.seqLTE)(removalInfo.removedSeq, refSeq) ||
612
+ if ((0, mergeTreeNodes_js_1.seqLTE)(removalInfo.removedSeq, refSeq) ||
610
613
  removalInfo.removedClientIds.includes(clientId)) {
611
614
  return 0;
612
615
  }
613
616
  }
614
617
  if (moveInfo !== undefined) {
615
- if ((0, mergeTreeNodes_1.seqLTE)(moveInfo.movedSeq, this.collabWindow.minSeq)) {
618
+ if ((0, mergeTreeNodes_js_1.seqLTE)(moveInfo.movedSeq, this.collabWindow.minSeq)) {
616
619
  return undefined;
617
620
  }
618
- if ((0, mergeTreeNodes_1.seqLTE)(moveInfo.movedSeq, refSeq) ||
621
+ if ((0, mergeTreeNodes_js_1.seqLTE)(moveInfo.movedSeq, refSeq) ||
619
622
  moveInfo.movedClientIds.includes(clientId)) {
620
623
  return 0;
621
624
  }
622
625
  }
623
- return (0, mergeTreeNodes_1.seqLTE)(node.seq ?? 0, refSeq) || segment.clientId === clientId
626
+ return (0, mergeTreeNodes_js_1.seqLTE)(node.seq ?? 0, refSeq) || segment.clientId === clientId
624
627
  ? segment.cachedLength
625
628
  : 0;
626
629
  }
@@ -635,23 +638,27 @@ class MergeTree {
635
638
  const firstMoveSeqIdx = this.moveSeqs.findIndex((seq) => seq >= minSeq);
636
639
  this.moveSeqs = firstMoveSeqIdx === -1 ? [] : this.moveSeqs.slice(firstMoveSeqIdx);
637
640
  if (MergeTree.options.zamboniSegments) {
638
- (0, zamboni_1.zamboniSegments)(this);
641
+ (0, zamboni_js_1.zamboniSegments)(this);
639
642
  }
640
643
  }
641
644
  }
642
645
  referencePositionToLocalPosition(refPos, refSeq = this.collabWindow.currentSeq, clientId = this.collabWindow.clientId) {
643
646
  const seg = refPos.getSegment();
644
647
  if (seg?.parent === undefined) {
645
- return referencePositions_1.DetachedReferencePosition;
648
+ return referencePositions_js_1.DetachedReferencePosition;
646
649
  }
647
650
  if (refPos.isLeaf()) {
648
651
  return this.getPosition(refPos, refSeq, clientId);
649
652
  }
650
- if ((0, referencePositions_1.refTypeIncludesFlag)(refPos, ops_1.ReferenceType.Transient) || seg.localRefs?.has(refPos)) {
651
- const offset = isRemoved(seg) || isMoved(seg) ? 0 : refPos.getOffset();
652
- return offset + this.getPosition(seg, refSeq, clientId);
653
+ if ((0, referencePositions_js_1.refTypeIncludesFlag)(refPos, ops_js_1.ReferenceType.Transient) || seg.localRefs?.has(refPos)) {
654
+ const offset = isRemovedOrMoved(seg) ? 0 : refPos.getOffset();
655
+ const pos = this.getPosition(seg, refSeq, clientId);
656
+ if (isRemovedOrMoved(seg) && refPos.slidingPreference === localReference_js_1.SlidingPreference.BACKWARD) {
657
+ return pos === 0 ? 0 : pos - 1;
658
+ }
659
+ return offset + pos;
653
660
  }
654
- return referencePositions_1.DetachedReferencePosition;
661
+ return referencePositions_js_1.DetachedReferencePosition;
655
662
  }
656
663
  /**
657
664
  * Finds the nearest reference with ReferenceType.Tile to `startPos` in the direction dictated by `forwards`.
@@ -667,14 +674,14 @@ class MergeTree {
667
674
  */
668
675
  searchForMarker(startPos, clientId, markerLabel, forwards = true) {
669
676
  let foundMarker;
670
- const { segment } = this.getContainingSegment(startPos, constants_1.UniversalSequenceNumber, clientId);
677
+ const { segment } = this.getContainingSegment(startPos, constants_js_1.UniversalSequenceNumber, clientId);
671
678
  const segWithParent = segment;
672
679
  if (segWithParent?.parent === undefined) {
673
680
  return undefined;
674
681
  }
675
- (0, mergeTreeNodeWalk_1.depthFirstNodeWalk)(segWithParent.parent, segWithParent, (seg) => {
682
+ (0, mergeTreeNodeWalk_js_1.depthFirstNodeWalk)(segWithParent.parent, segWithParent, (seg) => {
676
683
  if (seg.isLeaf()) {
677
- if (mergeTreeNodes_1.Marker.is(seg) && (0, referencePositions_1.refHasTileLabel)(seg, markerLabel)) {
684
+ if (mergeTreeNodes_js_1.Marker.is(seg) && (0, referencePositions_js_1.refHasTileLabel)(seg, markerLabel)) {
678
685
  foundMarker = seg;
679
686
  }
680
687
  }
@@ -684,11 +691,11 @@ class MergeTree {
684
691
  ? block.leftmostTiles[markerLabel]
685
692
  : block.rightmostTiles[markerLabel];
686
693
  if (marker !== undefined) {
687
- (0, core_utils_1.assert)(marker.isLeaf() && mergeTreeNodes_1.Marker.is(marker), 0x751 /* Object returned is not a valid marker */);
694
+ (0, core_utils_1.assert)(marker.isLeaf() && mergeTreeNodes_js_1.Marker.is(marker), 0x751 /* Object returned is not a valid marker */);
688
695
  foundMarker = marker;
689
696
  }
690
697
  }
691
- return foundMarker !== undefined ? mergeTreeNodeWalk_1.NodeAction.Exit : mergeTreeNodeWalk_1.NodeAction.Skip;
698
+ return foundMarker !== undefined ? mergeTreeNodeWalk_js_1.NodeAction.Exit : mergeTreeNodeWalk_js_1.NodeAction.Skip;
692
699
  }, undefined, undefined, forwards);
693
700
  return foundMarker;
694
701
  }
@@ -717,24 +724,24 @@ class MergeTree {
717
724
  pendingSegmentGroup.segments.map((pendingSegment) => {
718
725
  const localMovedSeq = pendingSegment.localMovedSeq;
719
726
  const overlappingRemove = !pendingSegment.ack(pendingSegmentGroup, opArgs);
720
- if (opArgs.op.type === ops_1.MergeTreeDeltaType.OBLITERATE &&
727
+ if (opArgs.op.type === ops_js_1.MergeTreeDeltaType.OBLITERATE &&
721
728
  localMovedSeq !== undefined) {
722
729
  const locallyMovedSegments = this.locallyMovedSegments.get(localMovedSeq);
723
730
  if (locallyMovedSegments) {
724
- for (const segment of locallyMovedSegments.segments) {
731
+ locallyMovedSegments.segments.forEach((segment) => {
725
732
  segment.localMovedSeq = undefined;
726
733
  if (!nodesToUpdate.includes(segment.parent)) {
727
734
  nodesToUpdate.push(segment.parent);
728
735
  }
729
- if (segment.movedSeq === constants_1.UnassignedSequenceNumber) {
736
+ if (segment.movedSeq === constants_js_1.UnassignedSequenceNumber) {
730
737
  segment.movedSeq = seq;
731
738
  }
732
- }
739
+ });
733
740
  this.locallyMovedSegments.delete(localMovedSeq);
734
741
  }
735
742
  }
736
743
  overwrite = overlappingRemove || overwrite;
737
- if (opArgs.op.type === ops_1.MergeTreeDeltaType.OBLITERATE) {
744
+ if (opArgs.op.type === ops_js_1.MergeTreeDeltaType.OBLITERATE) {
738
745
  if (seq !== this.moveSeqs[this.moveSeqs.length - 1]) {
739
746
  this.moveSeqs.push(seq);
740
747
  }
@@ -755,13 +762,13 @@ class MergeTree {
755
762
  });
756
763
  // Perform slides after all segments have been acked, so that
757
764
  // positions after slide are final
758
- if (opArgs.op.type === ops_1.MergeTreeDeltaType.REMOVE ||
759
- opArgs.op.type === ops_1.MergeTreeDeltaType.OBLITERATE) {
765
+ if (opArgs.op.type === ops_js_1.MergeTreeDeltaType.REMOVE ||
766
+ opArgs.op.type === ops_js_1.MergeTreeDeltaType.OBLITERATE) {
760
767
  this.slideAckedRemovedSegmentReferences(pendingSegmentGroup.segments);
761
768
  }
762
769
  this.mergeTreeMaintenanceCallback?.({
763
770
  deltaSegments,
764
- operation: mergeTreeDeltaCallback_1.MergeTreeMaintenanceType.ACKNOWLEDGED,
771
+ operation: mergeTreeDeltaCallback_js_1.MergeTreeMaintenanceType.ACKNOWLEDGED,
765
772
  }, opArgs);
766
773
  const clientId = this.collabWindow.clientId;
767
774
  for (const node of nodesToUpdate) {
@@ -769,7 +776,7 @@ class MergeTree {
769
776
  }
770
777
  }
771
778
  if (MergeTree.options.zamboniSegments) {
772
- (0, zamboni_1.zamboniSegments)(this);
779
+ (0, zamboni_js_1.zamboniSegments)(this);
773
780
  }
774
781
  }
775
782
  addToPendingList(segment,
@@ -837,19 +844,24 @@ class MergeTree {
837
844
  }
838
845
  insertSegments(pos, segments, refSeq, clientId, seq, opArgs) {
839
846
  this.ensureIntervalBoundary(pos, refSeq, clientId);
840
- const localSeq = seq === constants_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
847
+ const localSeq = seq === constants_js_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
841
848
  this.blockInsert(pos, refSeq, clientId, seq, localSeq, segments);
842
849
  // opArgs == undefined => loading snapshot or test code
843
850
  if (opArgs !== undefined) {
844
- this.mergeTreeDeltaCallback?.(opArgs, {
845
- operation: ops_1.MergeTreeDeltaType.INSERT,
846
- deltaSegments: segments.map((segment) => ({ segment })),
847
- });
851
+ const deltaSegments = segments
852
+ .filter((segment) => !(0, mergeTreeNodes_js_1.toMoveInfo)(segment))
853
+ .map((segment) => ({ segment }));
854
+ if (deltaSegments.length > 0) {
855
+ this.mergeTreeDeltaCallback?.(opArgs, {
856
+ operation: ops_js_1.MergeTreeDeltaType.INSERT,
857
+ deltaSegments,
858
+ });
859
+ }
848
860
  }
849
861
  if (this.collabWindow.collaborating &&
850
862
  MergeTree.options.zamboniSegments &&
851
- seq !== constants_1.UnassignedSequenceNumber) {
852
- (0, zamboni_1.zamboniSegments)(this);
863
+ seq !== constants_js_1.UnassignedSequenceNumber) {
864
+ (0, zamboni_js_1.zamboniSegments)(this);
853
865
  }
854
866
  }
855
867
  /**
@@ -885,7 +897,7 @@ class MergeTree {
885
897
  blockInsert(pos, refSeq, clientId, seq, localSeq, newSegments) {
886
898
  const continueFrom = (node) => {
887
899
  let siblingExists = false;
888
- (0, mergeTreeNodeWalk_1.forwardExcursion)(node, () => {
900
+ (0, mergeTreeNodeWalk_js_1.forwardExcursion)(node, () => {
889
901
  siblingExists = true;
890
902
  return false;
891
903
  });
@@ -896,7 +908,7 @@ class MergeTree {
896
908
  const saveIfLocal = (locSegment) => {
897
909
  // Save segment so we can assign sequence number when acked by server
898
910
  if (this.collabWindow.collaborating) {
899
- if (locSegment.seq === constants_1.UnassignedSequenceNumber &&
911
+ if (locSegment.seq === constants_js_1.UnassignedSequenceNumber &&
900
912
  clientId === this.collabWindow.clientId) {
901
913
  segmentGroup = this.addToPendingList(locSegment, segmentGroup, localSeq);
902
914
  }
@@ -928,7 +940,7 @@ class MergeTree {
928
940
  newSegment.seq = seq;
929
941
  newSegment.localSeq = localSeq;
930
942
  newSegment.clientId = clientId;
931
- if (mergeTreeNodes_1.Marker.is(newSegment)) {
943
+ if (mergeTreeNodes_js_1.Marker.is(newSegment)) {
932
944
  const markerId = newSegment.getId();
933
945
  if (markerId) {
934
946
  this.idToMarker.set(markerId, newSegment);
@@ -1001,7 +1013,7 @@ class MergeTree {
1001
1013
  const left = leftLocalSegments[localMovedSeq];
1002
1014
  if (left) {
1003
1015
  _localMovedSeq = localMovedSeq;
1004
- const clientIdIdx = left.movedSeqs?.indexOf(constants_1.UnassignedSequenceNumber) ?? -1;
1016
+ const clientIdIdx = left.movedSeqs?.indexOf(constants_js_1.UnassignedSequenceNumber) ?? -1;
1005
1017
  const movedClientId = left.movedClientIds?.[clientIdIdx];
1006
1018
  (0, core_utils_1.assert)(movedClientId !== undefined, 0x86a /* expected client id to exist */);
1007
1019
  movedClientIds = [movedClientId];
@@ -1018,17 +1030,17 @@ class MergeTree {
1018
1030
  // happened, no need to continue.
1019
1031
  return moveUpperBound >= smallestSeqMoveOp;
1020
1032
  };
1021
- (0, mergeTreeNodeWalk_1.backwardExcursion)(newSegment, findLeftMovedSegment);
1033
+ (0, mergeTreeNodeWalk_js_1.backwardExcursion)(newSegment, findLeftMovedSegment);
1022
1034
  moveUpperBound = Number.POSITIVE_INFINITY;
1023
- (0, mergeTreeNodeWalk_1.forwardExcursion)(newSegment, findRightMovedSegment);
1035
+ (0, mergeTreeNodeWalk_js_1.forwardExcursion)(newSegment, findRightMovedSegment);
1024
1036
  if (_localMovedSeq !== undefined || _movedSeq !== undefined) {
1025
1037
  (0, core_utils_1.assert)(movedClientIds !== undefined, 0x86b /* movedClientIds should be set if local/moved seq is set */);
1026
1038
  const moveInfo = {
1027
1039
  movedClientIds,
1028
- movedSeq: _movedSeq ?? constants_1.UnassignedSequenceNumber,
1029
- movedSeqs: _movedSeq === undefined ? [constants_1.UnassignedSequenceNumber] : [_movedSeq],
1040
+ movedSeq: _movedSeq ?? constants_js_1.UnassignedSequenceNumber,
1041
+ movedSeqs: _movedSeq === undefined ? [constants_js_1.UnassignedSequenceNumber] : [_movedSeq],
1030
1042
  localMovedSeq: _localMovedSeq,
1031
- wasMovedOnInsert: (_movedSeq ?? -1) !== constants_1.UnassignedSequenceNumber,
1043
+ wasMovedOnInsert: (_movedSeq ?? -1) !== constants_js_1.UnassignedSequenceNumber,
1032
1044
  };
1033
1045
  markSegmentMoved(newSegment, moveInfo);
1034
1046
  if (moveInfo.localMovedSeq !== undefined) {
@@ -1044,7 +1056,7 @@ class MergeTree {
1044
1056
  }
1045
1057
  }
1046
1058
  ensureIntervalBoundary(pos, refSeq, clientId) {
1047
- const splitNode = this.insertingWalk(this.root, pos, refSeq, clientId, constants_1.TreeMaintenanceSequenceNumber, { leaf: this.splitLeafSegment });
1059
+ const splitNode = this.insertingWalk(this.root, pos, refSeq, clientId, constants_js_1.TreeMaintenanceSequenceNumber, { leaf: this.splitLeafSegment });
1048
1060
  this.updateRoot(splitNode);
1049
1061
  }
1050
1062
  // Assume called only when pos == len
@@ -1058,14 +1070,14 @@ class MergeTree {
1058
1070
  // seq for comparison, as it will get a seq higher than any other seq once sequences
1059
1071
  // if the current seg is local (UnassignedSequenceNumber) give it the second highest
1060
1072
  // possible seq, as the highest is reserved for the previous.
1061
- const newSeq = seq === constants_1.UnassignedSequenceNumber ? Number.MAX_SAFE_INTEGER : seq;
1062
- const segSeq = node.seq === constants_1.UnassignedSequenceNumber ? Number.MAX_SAFE_INTEGER - 1 : node.seq ?? 0;
1073
+ const newSeq = seq === constants_js_1.UnassignedSequenceNumber ? Number.MAX_SAFE_INTEGER : seq;
1074
+ const segSeq = node.seq === constants_js_1.UnassignedSequenceNumber ? Number.MAX_SAFE_INTEGER - 1 : node.seq ?? 0;
1063
1075
  return (newSeq > segSeq ||
1064
1076
  (node.movedSeq !== undefined &&
1065
- node.movedSeq !== constants_1.UnassignedSequenceNumber &&
1077
+ node.movedSeq !== constants_js_1.UnassignedSequenceNumber &&
1066
1078
  node.movedSeq > seq) ||
1067
1079
  (node.removedSeq !== undefined &&
1068
- node.removedSeq !== constants_1.UnassignedSequenceNumber &&
1080
+ node.removedSeq !== constants_js_1.UnassignedSequenceNumber &&
1069
1081
  node.removedSeq > seq));
1070
1082
  }
1071
1083
  else {
@@ -1155,7 +1167,7 @@ class MergeTree {
1155
1167
  block.assignChild(newNode, childIndex, false);
1156
1168
  block.childCount++;
1157
1169
  block.setOrdinal(newNode, childIndex);
1158
- if (block.childCount < mergeTreeNodes_1.MaxNodesInBlock) {
1170
+ if (block.childCount < mergeTreeNodes_js_1.MaxNodesInBlock) {
1159
1171
  if (fromSplit) {
1160
1172
  this.nodeUpdateOrdinals(fromSplit);
1161
1173
  }
@@ -1165,8 +1177,8 @@ class MergeTree {
1165
1177
  else {
1166
1178
  // Don't update ordinals because higher block will do it
1167
1179
  const newNodeFromSplit = this.split(block);
1168
- partialLengths_1.PartialSequenceLengths.options.verifyExpected?.(this, block, refSeq, clientId);
1169
- partialLengths_1.PartialSequenceLengths.options.verifyExpected?.(this, newNodeFromSplit, refSeq, clientId);
1180
+ partialLengths_js_1.PartialSequenceLengths.options.verifyExpected?.(this, block, refSeq, clientId);
1181
+ partialLengths_js_1.PartialSequenceLengths.options.verifyExpected?.(this, newNodeFromSplit, refSeq, clientId);
1170
1182
  return newNodeFromSplit;
1171
1183
  }
1172
1184
  }
@@ -1175,7 +1187,7 @@ class MergeTree {
1175
1187
  }
1176
1188
  }
1177
1189
  split(node) {
1178
- const halfCount = mergeTreeNodes_1.MaxNodesInBlock / 2;
1190
+ const halfCount = mergeTreeNodes_js_1.MaxNodesInBlock / 2;
1179
1191
  const newNode = this.makeBlock(halfCount);
1180
1192
  node.childCount = halfCount;
1181
1193
  // Update ordinals to reflect lowered child count
@@ -1208,21 +1220,21 @@ class MergeTree {
1208
1220
  * @param opArgs - The op args for the annotate op. this is passed to the merge tree callback if there is one
1209
1221
  * @param rollback - Whether this is for a local rollback and what kind
1210
1222
  */
1211
- annotateRange(start, end, props, refSeq, clientId, seq, opArgs, rollback = segmentPropertiesManager_1.PropertiesRollback.None) {
1223
+ annotateRange(start, end, props, refSeq, clientId, seq, opArgs, rollback = segmentPropertiesManager_js_1.PropertiesRollback.None) {
1212
1224
  this.ensureIntervalBoundary(start, refSeq, clientId);
1213
1225
  this.ensureIntervalBoundary(end, refSeq, clientId);
1214
1226
  const deltaSegments = [];
1215
- const localSeq = seq === constants_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
1227
+ const localSeq = seq === constants_js_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
1216
1228
  // eslint-disable-next-line import/no-deprecated
1217
1229
  let segmentGroup;
1218
1230
  const annotateSegment = (segment) => {
1219
- (0, core_utils_1.assert)(!mergeTreeNodes_1.Marker.is(segment) ||
1220
- !(mergeTreeNodes_1.reservedMarkerIdKey in props) ||
1231
+ (0, core_utils_1.assert)(!mergeTreeNodes_js_1.Marker.is(segment) ||
1232
+ !(mergeTreeNodes_js_1.reservedMarkerIdKey in props) ||
1221
1233
  props.markerId === segment.properties?.markerId, 0x5ad /* Cannot change the markerId of an existing marker */);
1222
1234
  const propertyDeltas = segment.addProperties(props, seq, this.collabWindow.collaborating, rollback);
1223
1235
  deltaSegments.push({ segment, propertyDeltas });
1224
1236
  if (this.collabWindow.collaborating) {
1225
- if (seq === constants_1.UnassignedSequenceNumber) {
1237
+ if (seq === constants_js_1.UnassignedSequenceNumber) {
1226
1238
  segmentGroup = this.addToPendingList(segment, segmentGroup, localSeq, propertyDeltas);
1227
1239
  }
1228
1240
  else {
@@ -1237,19 +1249,16 @@ class MergeTree {
1237
1249
  // OpArgs == undefined => test code
1238
1250
  if (deltaSegments.length > 0) {
1239
1251
  this.mergeTreeDeltaCallback?.(opArgs, {
1240
- operation: ops_1.MergeTreeDeltaType.ANNOTATE,
1252
+ operation: ops_js_1.MergeTreeDeltaType.ANNOTATE,
1241
1253
  deltaSegments,
1242
1254
  });
1243
1255
  }
1244
- if (this.collabWindow.collaborating && seq !== constants_1.UnassignedSequenceNumber) {
1256
+ if (this.collabWindow.collaborating && seq !== constants_js_1.UnassignedSequenceNumber) {
1245
1257
  if (MergeTree.options.zamboniSegments) {
1246
- (0, zamboni_1.zamboniSegments)(this);
1258
+ (0, zamboni_js_1.zamboniSegments)(this);
1247
1259
  }
1248
1260
  }
1249
1261
  }
1250
- /**
1251
- * @alpha
1252
- */
1253
1262
  obliterateRange(start, end, refSeq, clientId, seq, overwrite = false, opArgs) {
1254
1263
  if (!this.options?.mergeTreeEnableObliterate) {
1255
1264
  throw new telemetry_utils_1.UsageError("Attempted to send obliterate op without enabling feature flag.");
@@ -1259,26 +1268,26 @@ class MergeTree {
1259
1268
  let _overwrite = overwrite;
1260
1269
  const localOverlapWithRefs = [];
1261
1270
  const movedSegments = [];
1262
- const localSeq = seq === constants_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
1263
- if (seq !== constants_1.UnassignedSequenceNumber && seq !== this.moveSeqs[this.moveSeqs.length - 1]) {
1271
+ const localSeq = seq === constants_js_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
1272
+ if (seq !== constants_js_1.UnassignedSequenceNumber && seq !== this.moveSeqs[this.moveSeqs.length - 1]) {
1264
1273
  this.moveSeqs.push(seq);
1265
1274
  }
1266
- else if (seq === constants_1.UnassignedSequenceNumber && localSeq !== undefined) {
1275
+ else if (seq === constants_js_1.UnassignedSequenceNumber && localSeq !== undefined) {
1267
1276
  this.localMoveSeqs.add(localSeq);
1268
1277
  }
1269
1278
  // eslint-disable-next-line import/no-deprecated
1270
1279
  let segmentGroup;
1271
1280
  const markMoved = (segment, pos, _start, _end) => {
1272
- const existingMoveInfo = (0, mergeTreeNodes_1.toMoveInfo)(segment);
1281
+ const existingMoveInfo = (0, mergeTreeNodes_js_1.toMoveInfo)(segment);
1273
1282
  if (clientId !== segment.clientId &&
1274
1283
  segment.seq !== undefined &&
1275
- seq !== constants_1.UnassignedSequenceNumber &&
1276
- (refSeq < segment.seq || segment.seq === constants_1.UnassignedSequenceNumber)) {
1284
+ seq !== constants_js_1.UnassignedSequenceNumber &&
1285
+ (refSeq < segment.seq || segment.seq === constants_js_1.UnassignedSequenceNumber)) {
1277
1286
  segment.wasMovedOnInsert = true;
1278
1287
  }
1279
1288
  if (existingMoveInfo !== undefined) {
1280
1289
  _overwrite = true;
1281
- if (existingMoveInfo.movedSeq === constants_1.UnassignedSequenceNumber) {
1290
+ if (existingMoveInfo.movedSeq === constants_js_1.UnassignedSequenceNumber) {
1282
1291
  // we moved this locally, but someone else moved it first
1283
1292
  // so put them at the head of the list
1284
1293
  // The list isn't ordered, but we keep the first move at the head
@@ -1301,11 +1310,13 @@ class MergeTree {
1301
1310
  segment.movedSeq = seq;
1302
1311
  segment.localMovedSeq = localSeq;
1303
1312
  segment.movedSeqs = [seq];
1304
- movedSegments.push({ segment });
1313
+ if (!(0, mergeTreeNodes_js_1.toRemovalInfo)(segment)) {
1314
+ movedSegments.push({ segment });
1315
+ }
1305
1316
  }
1306
1317
  // Save segment so can assign moved sequence number when acked by server
1307
1318
  if (this.collabWindow.collaborating) {
1308
- if (segment.movedSeq === constants_1.UnassignedSequenceNumber &&
1319
+ if (segment.movedSeq === constants_js_1.UnassignedSequenceNumber &&
1309
1320
  clientId === this.collabWindow.clientId) {
1310
1321
  segmentGroup = this.addToPendingList(segment, segmentGroup, localSeq);
1311
1322
  }
@@ -1326,12 +1337,12 @@ class MergeTree {
1326
1337
  }
1327
1338
  return true;
1328
1339
  };
1329
- this.nodeMap(refSeq, clientId, markMoved, undefined, afterMarkMoved, start, end, undefined, seq !== constants_1.UnassignedSequenceNumber ? seq : undefined);
1340
+ this.nodeMap(refSeq, clientId, markMoved, undefined, afterMarkMoved, start, end, undefined, seq !== constants_js_1.UnassignedSequenceNumber ? seq : undefined);
1330
1341
  this.slideAckedRemovedSegmentReferences(localOverlapWithRefs);
1331
1342
  // opArgs == undefined => test code
1332
1343
  if (movedSegments.length > 0) {
1333
1344
  this.mergeTreeDeltaCallback?.(opArgs, {
1334
- operation: ops_1.MergeTreeDeltaType.OBLITERATE,
1345
+ operation: ops_js_1.MergeTreeDeltaType.OBLITERATE,
1335
1346
  deltaSegments: movedSegments,
1336
1347
  });
1337
1348
  }
@@ -1344,9 +1355,9 @@ class MergeTree {
1344
1355
  if (!this.collabWindow.collaborating || clientId !== this.collabWindow.clientId) {
1345
1356
  this.slideAckedRemovedSegmentReferences(movedSegments.map(({ segment }) => segment));
1346
1357
  }
1347
- if (this.collabWindow.collaborating && seq !== constants_1.UnassignedSequenceNumber) {
1358
+ if (this.collabWindow.collaborating && seq !== constants_js_1.UnassignedSequenceNumber) {
1348
1359
  if (MergeTree.options.zamboniSegments) {
1349
- (0, zamboni_1.zamboniSegments)(this);
1360
+ (0, zamboni_js_1.zamboniSegments)(this);
1350
1361
  }
1351
1362
  }
1352
1363
  }
@@ -1358,12 +1369,12 @@ class MergeTree {
1358
1369
  let segmentGroup;
1359
1370
  const removedSegments = [];
1360
1371
  const localOverlapWithRefs = [];
1361
- const localSeq = seq === constants_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
1372
+ const localSeq = seq === constants_js_1.UnassignedSequenceNumber ? ++this.collabWindow.localSeq : undefined;
1362
1373
  const markRemoved = (segment, pos, _start, _end) => {
1363
- const existingRemovalInfo = (0, mergeTreeNodes_1.toRemovalInfo)(segment);
1374
+ const existingRemovalInfo = (0, mergeTreeNodes_js_1.toRemovalInfo)(segment);
1364
1375
  if (existingRemovalInfo !== undefined) {
1365
1376
  _overwrite = true;
1366
- if (existingRemovalInfo.removedSeq === constants_1.UnassignedSequenceNumber) {
1377
+ if (existingRemovalInfo.removedSeq === constants_js_1.UnassignedSequenceNumber) {
1367
1378
  // we removed this locally, but someone else removed it first
1368
1379
  // so put them at the head of the list
1369
1380
  // The list isn't ordered, but we keep the first removal at the head
@@ -1383,11 +1394,13 @@ class MergeTree {
1383
1394
  segment.removedClientIds = [clientId];
1384
1395
  segment.removedSeq = seq;
1385
1396
  segment.localRemovedSeq = localSeq;
1386
- removedSegments.push({ segment });
1397
+ if (!(0, mergeTreeNodes_js_1.toMoveInfo)(segment)) {
1398
+ removedSegments.push({ segment });
1399
+ }
1387
1400
  }
1388
1401
  // Save segment so we can assign removed sequence number when acked by server
1389
1402
  if (this.collabWindow.collaborating) {
1390
- if (segment.removedSeq === constants_1.UnassignedSequenceNumber &&
1403
+ if (segment.removedSeq === constants_js_1.UnassignedSequenceNumber &&
1391
1404
  clientId === this.collabWindow.clientId) {
1392
1405
  segmentGroup = this.addToPendingList(segment, segmentGroup, localSeq);
1393
1406
  }
@@ -1415,7 +1428,7 @@ class MergeTree {
1415
1428
  // opArgs == undefined => test code
1416
1429
  if (removedSegments.length > 0) {
1417
1430
  this.mergeTreeDeltaCallback?.(opArgs, {
1418
- operation: ops_1.MergeTreeDeltaType.REMOVE,
1431
+ operation: ops_js_1.MergeTreeDeltaType.REMOVE,
1419
1432
  deltaSegments: removedSegments,
1420
1433
  });
1421
1434
  }
@@ -1425,9 +1438,9 @@ class MergeTree {
1425
1438
  if (!this.collabWindow.collaborating || clientId !== this.collabWindow.clientId) {
1426
1439
  this.slideAckedRemovedSegmentReferences(removedSegments.map(({ segment }) => segment));
1427
1440
  }
1428
- if (this.collabWindow.collaborating && seq !== constants_1.UnassignedSequenceNumber) {
1441
+ if (this.collabWindow.collaborating && seq !== constants_js_1.UnassignedSequenceNumber) {
1429
1442
  if (MergeTree.options.zamboniSegments) {
1430
- (0, zamboni_1.zamboniSegments)(this);
1443
+ (0, zamboni_js_1.zamboniSegments)(this);
1431
1444
  }
1432
1445
  }
1433
1446
  }
@@ -1436,7 +1449,7 @@ class MergeTree {
1436
1449
  */
1437
1450
  // eslint-disable-next-line import/no-deprecated
1438
1451
  rollback(op, localOpMetadata) {
1439
- if (op.type === ops_1.MergeTreeDeltaType.REMOVE) {
1452
+ if (op.type === ops_js_1.MergeTreeDeltaType.REMOVE) {
1440
1453
  const pendingSegmentGroup = this.pendingSegments.pop?.()?.data;
1441
1454
  if (pendingSegmentGroup === undefined || pendingSegmentGroup !== localOpMetadata) {
1442
1455
  throw new Error("Rollback op doesn't match last edit");
@@ -1451,21 +1464,21 @@ class MergeTree {
1451
1464
  segment.localRemovedSeq = undefined;
1452
1465
  // Note: optional chaining short-circuits:
1453
1466
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining#short-circuiting
1454
- this.mergeTreeDeltaCallback?.({ op: (0, opBuilder_1.createInsertSegmentOp)(this.findRollbackPosition(segment), segment) }, {
1455
- operation: ops_1.MergeTreeDeltaType.INSERT,
1467
+ this.mergeTreeDeltaCallback?.({ op: (0, opBuilder_js_1.createInsertSegmentOp)(this.findRollbackPosition(segment), segment) }, {
1468
+ operation: ops_js_1.MergeTreeDeltaType.INSERT,
1456
1469
  deltaSegments: [{ segment }],
1457
1470
  });
1458
1471
  for (let updateNode = segment.parent; updateNode !== undefined; updateNode = updateNode.parent) {
1459
- this.blockUpdateLength(updateNode, constants_1.UnassignedSequenceNumber, this.collabWindow.clientId);
1472
+ this.blockUpdateLength(updateNode, constants_js_1.UnassignedSequenceNumber, this.collabWindow.clientId);
1460
1473
  }
1461
1474
  });
1462
1475
  }
1463
- else if (op.type === ops_1.MergeTreeDeltaType.INSERT ||
1464
- op.type === ops_1.MergeTreeDeltaType.ANNOTATE) {
1476
+ else if (op.type === ops_js_1.MergeTreeDeltaType.INSERT ||
1477
+ op.type === ops_js_1.MergeTreeDeltaType.ANNOTATE) {
1465
1478
  const pendingSegmentGroup = this.pendingSegments.pop?.()?.data;
1466
1479
  if (pendingSegmentGroup === undefined ||
1467
1480
  pendingSegmentGroup !== localOpMetadata ||
1468
- (op.type === ops_1.MergeTreeDeltaType.ANNOTATE && !pendingSegmentGroup.previousProps)) {
1481
+ (op.type === ops_js_1.MergeTreeDeltaType.ANNOTATE && !pendingSegmentGroup.previousProps)) {
1469
1482
  throw new Error("Rollback op doesn't match last edit");
1470
1483
  }
1471
1484
  let i = 0;
@@ -1473,16 +1486,16 @@ class MergeTree {
1473
1486
  const segmentSegmentGroup = segment.segmentGroups.pop?.();
1474
1487
  (0, core_utils_1.assert)(segmentSegmentGroup === pendingSegmentGroup, 0x3ef /* Unexpected segmentGroup in segment */);
1475
1488
  const start = this.findRollbackPosition(segment);
1476
- if (op.type === ops_1.MergeTreeDeltaType.INSERT) {
1477
- segment.seq = constants_1.UniversalSequenceNumber;
1489
+ if (op.type === ops_js_1.MergeTreeDeltaType.INSERT) {
1490
+ segment.seq = constants_js_1.UniversalSequenceNumber;
1478
1491
  segment.localSeq = undefined;
1479
- const removeOp = (0, opBuilder_1.createRemoveRangeOp)(start, start + segment.cachedLength);
1480
- this.markRangeRemoved(start, start + segment.cachedLength, constants_1.UniversalSequenceNumber, this.collabWindow.clientId, constants_1.UniversalSequenceNumber, false, { op: removeOp });
1492
+ const removeOp = (0, opBuilder_js_1.createRemoveRangeOp)(start, start + segment.cachedLength);
1493
+ this.markRangeRemoved(start, start + segment.cachedLength, constants_js_1.UniversalSequenceNumber, this.collabWindow.clientId, constants_js_1.UniversalSequenceNumber, false, { op: removeOp });
1481
1494
  } /* op.type === MergeTreeDeltaType.ANNOTATE */
1482
1495
  else {
1483
1496
  const props = pendingSegmentGroup.previousProps[i];
1484
- const annotateOp = (0, opBuilder_1.createAnnotateRangeOp)(start, start + segment.cachedLength, props);
1485
- this.annotateRange(start, start + segment.cachedLength, props, constants_1.UniversalSequenceNumber, this.collabWindow.clientId, constants_1.UniversalSequenceNumber, { op: annotateOp }, segmentPropertiesManager_1.PropertiesRollback.Rollback);
1497
+ const annotateOp = (0, opBuilder_js_1.createAnnotateRangeOp)(start, start + segment.cachedLength, props);
1498
+ this.annotateRange(start, start + segment.cachedLength, props, constants_js_1.UniversalSequenceNumber, this.collabWindow.clientId, constants_js_1.UniversalSequenceNumber, { op: annotateOp }, segmentPropertiesManager_js_1.PropertiesRollback.Rollback);
1486
1499
  i++;
1487
1500
  }
1488
1501
  }
@@ -1496,7 +1509,7 @@ class MergeTree {
1496
1509
  */
1497
1510
  findRollbackPosition(segment) {
1498
1511
  let segmentPosition = 0;
1499
- (0, mergeTreeNodeWalk_1.walkAllChildSegments)(this.root, (seg) => {
1512
+ (0, mergeTreeNodeWalk_js_1.walkAllChildSegments)(this.root, (seg) => {
1500
1513
  // If we've found the desired segment, terminate the walk and return 'segmentPosition'.
1501
1514
  if (seg === segment) {
1502
1515
  return false;
@@ -1513,7 +1526,7 @@ class MergeTree {
1513
1526
  this.blockUpdate(node);
1514
1527
  if (this.collabWindow.collaborating) {
1515
1528
  this.localPartialsComputed = false;
1516
- node.partialLengths = partialLengths_1.PartialSequenceLengths.combine(node, this.collabWindow, recur);
1529
+ node.partialLengths = partialLengths_js_1.PartialSequenceLengths.combine(node, this.collabWindow, recur);
1517
1530
  }
1518
1531
  }
1519
1532
  removeLocalReferencePosition(lref) {
@@ -1524,7 +1537,7 @@ class MergeTree {
1524
1537
  if (_segment !== "start" &&
1525
1538
  _segment !== "end" &&
1526
1539
  isRemovedAndAckedOrMovedAndAcked(_segment) &&
1527
- !(0, referencePositions_1.refTypeIncludesFlag)(refType, ops_1.ReferenceType.SlideOnRemove | ops_1.ReferenceType.Transient) &&
1540
+ !(0, referencePositions_js_1.refTypeIncludesFlag)(refType, ops_js_1.ReferenceType.SlideOnRemove | ops_js_1.ReferenceType.Transient) &&
1528
1541
  _segment.endpointType === undefined) {
1529
1542
  throw new telemetry_utils_1.UsageError("Can only create SlideOnRemove or Transient local reference position on a removed or obliterated segment");
1530
1543
  }
@@ -1538,8 +1551,7 @@ class MergeTree {
1538
1551
  else {
1539
1552
  segment = _segment;
1540
1553
  }
1541
- const localRefs = segment.localRefs ?? new localReference_1.LocalReferenceCollection(segment);
1542
- segment.localRefs = localRefs;
1554
+ const localRefs = localReference_js_1.LocalReferenceCollection.setOrGet(segment);
1543
1555
  const segRef = localRefs.createLocalRef(offset, refType, properties, slidingPreference, canSlideToEndpoint);
1544
1556
  return segRef;
1545
1557
  }
@@ -1645,7 +1657,7 @@ class MergeTree {
1645
1657
  * it can fix up its local state to align with what would be expected of the op it resubmits.
1646
1658
  */
1647
1659
  normalizeSegmentsOnRebase() {
1648
- let currentRangeToNormalize = new collections_1.DoublyLinkedList();
1660
+ let currentRangeToNormalize = new index_js_1.DoublyLinkedList();
1649
1661
  let rangeContainsLocalSegs = false;
1650
1662
  let rangeContainsRemoteRemovedSegs = false;
1651
1663
  const normalize = () => {
@@ -1655,19 +1667,19 @@ class MergeTree {
1655
1667
  this.normalizeAdjacentSegments(currentRangeToNormalize);
1656
1668
  }
1657
1669
  };
1658
- (0, mergeTreeNodeWalk_1.walkAllChildSegments)(this.root, (seg) => {
1659
- if (isRemoved(seg) || seg.seq === constants_1.UnassignedSequenceNumber) {
1670
+ (0, mergeTreeNodeWalk_js_1.walkAllChildSegments)(this.root, (seg) => {
1671
+ if (isRemoved(seg) || seg.seq === constants_js_1.UnassignedSequenceNumber) {
1660
1672
  if (isRemovedAndAcked(seg)) {
1661
1673
  rangeContainsRemoteRemovedSegs = true;
1662
1674
  }
1663
- if (seg.seq === constants_1.UnassignedSequenceNumber) {
1675
+ if (seg.seq === constants_js_1.UnassignedSequenceNumber) {
1664
1676
  rangeContainsLocalSegs = true;
1665
1677
  }
1666
1678
  currentRangeToNormalize.push(seg);
1667
1679
  }
1668
1680
  else {
1669
1681
  normalize();
1670
- currentRangeToNormalize = new collections_1.DoublyLinkedList();
1682
+ currentRangeToNormalize = new index_js_1.DoublyLinkedList();
1671
1683
  rangeContainsLocalSegs = false;
1672
1684
  rangeContainsRemoteRemovedSegs = false;
1673
1685
  }
@@ -1678,14 +1690,14 @@ class MergeTree {
1678
1690
  addNodeReferences(node, rightmostTiles, leftmostTiles) {
1679
1691
  if (node.isLeaf()) {
1680
1692
  const segment = node;
1681
- if ((this.localNetLength(segment) ?? 0) > 0 && mergeTreeNodes_1.Marker.is(segment)) {
1693
+ if ((this.localNetLength(segment) ?? 0) > 0 && mergeTreeNodes_js_1.Marker.is(segment)) {
1682
1694
  const markerId = segment.getId();
1683
1695
  // Also in insertMarker but need for reload segs case
1684
1696
  // can add option for this only from reload segs
1685
1697
  if (markerId) {
1686
1698
  this.idToMarker.set(markerId, segment);
1687
1699
  }
1688
- if ((0, referencePositions_1.refTypeIncludesFlag)(segment, ops_1.ReferenceType.Tile)) {
1700
+ if ((0, referencePositions_js_1.refTypeIncludesFlag)(segment, ops_js_1.ReferenceType.Tile)) {
1689
1701
  addTile(segment, rightmostTiles);
1690
1702
  addTileIfNotPresent(segment, leftmostTiles);
1691
1703
  }
@@ -1694,9 +1706,9 @@ class MergeTree {
1694
1706
  else {
1695
1707
  const block = node;
1696
1708
  // eslint-disable-next-line import/no-deprecated
1697
- (0, properties_1.extend)(rightmostTiles, block.rightmostTiles);
1709
+ (0, properties_js_1.extend)(rightmostTiles, block.rightmostTiles);
1698
1710
  // eslint-disable-next-line import/no-deprecated
1699
- (0, properties_1.extendIfUndefined)(leftmostTiles, block.leftmostTiles);
1711
+ (0, properties_js_1.extendIfUndefined)(leftmostTiles, block.leftmostTiles);
1700
1712
  }
1701
1713
  }
1702
1714
  blockUpdate(block) {
@@ -1704,9 +1716,9 @@ class MergeTree {
1704
1716
  const hierBlock = block.hierBlock();
1705
1717
  if (hierBlock) {
1706
1718
  // eslint-disable-next-line import/no-deprecated
1707
- hierBlock.rightmostTiles = (0, properties_1.createMap)();
1719
+ hierBlock.rightmostTiles = (0, properties_js_1.createMap)();
1708
1720
  // eslint-disable-next-line import/no-deprecated
1709
- hierBlock.leftmostTiles = (0, properties_1.createMap)();
1721
+ hierBlock.leftmostTiles = (0, properties_js_1.createMap)();
1710
1722
  }
1711
1723
  for (let i = 0; i < block.childCount; i++) {
1712
1724
  const child = block.children[i];
@@ -1737,17 +1749,17 @@ class MergeTree {
1737
1749
  this.blockUpdate(node);
1738
1750
  this.localPartialsComputed = false;
1739
1751
  if (this.collabWindow.collaborating &&
1740
- seq !== constants_1.UnassignedSequenceNumber &&
1741
- seq !== constants_1.TreeMaintenanceSequenceNumber) {
1752
+ seq !== constants_js_1.UnassignedSequenceNumber &&
1753
+ seq !== constants_js_1.TreeMaintenanceSequenceNumber) {
1742
1754
  if (node.partialLengths !== undefined &&
1743
1755
  MergeTree.options.incrementalUpdate &&
1744
- clientId !== constants_1.NonCollabClient) {
1756
+ clientId !== constants_js_1.NonCollabClient) {
1745
1757
  node.partialLengths.update(node, seq, clientId, this.collabWindow);
1746
1758
  }
1747
1759
  else {
1748
- node.partialLengths = partialLengths_1.PartialSequenceLengths.combine(node, this.collabWindow);
1760
+ node.partialLengths = partialLengths_js_1.PartialSequenceLengths.combine(node, this.collabWindow);
1749
1761
  }
1750
- partialLengths_1.PartialSequenceLengths.options.verifyExpected?.(this, node, seq, clientId);
1762
+ partialLengths_js_1.PartialSequenceLengths.options.verifyExpected?.(this, node, seq, clientId);
1751
1763
  }
1752
1764
  }
1753
1765
  /**
@@ -1797,30 +1809,30 @@ class MergeTree {
1797
1809
  return;
1798
1810
  }
1799
1811
  let pos = 0;
1800
- (0, mergeTreeNodeWalk_1.depthFirstNodeWalk)(this.root, this.root.children[0], (node) => {
1812
+ (0, mergeTreeNodeWalk_js_1.depthFirstNodeWalk)(this.root, this.root.children[0], (node) => {
1801
1813
  if (endPos <= pos) {
1802
- return mergeTreeNodeWalk_1.NodeAction.Exit;
1814
+ return mergeTreeNodeWalk_js_1.NodeAction.Exit;
1803
1815
  }
1804
1816
  const len = this.nodeLength(node, visibilitySeq, clientId, localSeq);
1805
1817
  const lenAtRefSeq = (visibilitySeq === refSeq
1806
1818
  ? len
1807
1819
  : this.nodeLength(node, refSeq, clientId, localSeq)) ?? 0;
1808
1820
  const isUnackedAndInObliterate = visibilitySeq !== refSeq &&
1809
- (!node.isLeaf() || node.seq === constants_1.UnassignedSequenceNumber);
1821
+ (!node.isLeaf() || node.seq === constants_js_1.UnassignedSequenceNumber);
1810
1822
  if ((len === undefined && lenAtRefSeq === 0) ||
1811
1823
  (len === 0 && !isUnackedAndInObliterate && lenAtRefSeq === 0)) {
1812
- return mergeTreeNodeWalk_1.NodeAction.Skip;
1824
+ return mergeTreeNodeWalk_js_1.NodeAction.Skip;
1813
1825
  }
1814
1826
  const nextPos = pos + lenAtRefSeq;
1815
1827
  // start is beyond the current node, so we can skip it
1816
1828
  if (start >= nextPos) {
1817
1829
  pos = nextPos;
1818
- return mergeTreeNodeWalk_1.NodeAction.Skip;
1830
+ return mergeTreeNodeWalk_js_1.NodeAction.Skip;
1819
1831
  }
1820
1832
  if (node.isLeaf()) {
1821
1833
  if (leaf(node, pos, refSeq, clientId, start - pos, endPos - pos, accum) ===
1822
1834
  false) {
1823
- return mergeTreeNodeWalk_1.NodeAction.Exit;
1835
+ return mergeTreeNodeWalk_js_1.NodeAction.Exit;
1824
1836
  }
1825
1837
  pos = nextPos;
1826
1838
  }