@fluidframework/merge-tree 2.0.0-rc.2.0.1 → 2.0.0-rc.3.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 (461) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/api-report/merge-tree.api.md +16 -4
  3. package/dist/MergeTreeTextHelper.d.ts.map +1 -1
  4. package/dist/MergeTreeTextHelper.js.map +1 -1
  5. package/dist/attributionCollection.d.ts +1 -1
  6. package/dist/attributionCollection.d.ts.map +1 -1
  7. package/dist/attributionCollection.js +6 -6
  8. package/dist/attributionCollection.js.map +1 -1
  9. package/dist/attributionPolicy.d.ts +2 -2
  10. package/dist/attributionPolicy.d.ts.map +1 -1
  11. package/dist/attributionPolicy.js +5 -5
  12. package/dist/attributionPolicy.js.map +1 -1
  13. package/dist/client.d.ts +8 -8
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +37 -48
  16. package/dist/client.js.map +1 -1
  17. package/dist/collections/list.js +3 -3
  18. package/dist/collections/list.js.map +1 -1
  19. package/dist/endOfTreeSegment.d.ts +5 -5
  20. package/dist/endOfTreeSegment.d.ts.map +1 -1
  21. package/dist/endOfTreeSegment.js +2 -2
  22. package/dist/endOfTreeSegment.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +4 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/legacy.d.ts +76 -0
  28. package/dist/localReference.d.ts.map +1 -1
  29. package/dist/localReference.js +7 -7
  30. package/dist/localReference.js.map +1 -1
  31. package/dist/mergeTree.d.ts +8 -8
  32. package/dist/mergeTree.d.ts.map +1 -1
  33. package/dist/mergeTree.js +44 -57
  34. package/dist/mergeTree.js.map +1 -1
  35. package/dist/mergeTreeDeltaCallback.d.ts +1 -1
  36. package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
  37. package/dist/mergeTreeDeltaCallback.js +4 -0
  38. package/dist/mergeTreeDeltaCallback.js.map +1 -1
  39. package/dist/mergeTreeNodeWalk.d.ts +3 -3
  40. package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
  41. package/dist/mergeTreeNodeWalk.js.map +1 -1
  42. package/dist/mergeTreeNodes.d.ts +37 -55
  43. package/dist/mergeTreeNodes.d.ts.map +1 -1
  44. package/dist/mergeTreeNodes.js +40 -19
  45. package/dist/mergeTreeNodes.js.map +1 -1
  46. package/dist/opBuilder.d.ts +1 -1
  47. package/dist/opBuilder.d.ts.map +1 -1
  48. package/dist/opBuilder.js.map +1 -1
  49. package/dist/ordinal.js +2 -2
  50. package/dist/ordinal.js.map +1 -1
  51. package/dist/partialLengths.d.ts +6 -6
  52. package/dist/partialLengths.d.ts.map +1 -1
  53. package/dist/partialLengths.js +13 -13
  54. package/dist/partialLengths.js.map +1 -1
  55. package/dist/public.d.ts +12 -0
  56. package/dist/revertibles.d.ts +1 -1
  57. package/dist/revertibles.d.ts.map +1 -1
  58. package/dist/revertibles.js +15 -15
  59. package/dist/revertibles.js.map +1 -1
  60. package/dist/segmentPropertiesManager.d.ts.map +1 -1
  61. package/dist/segmentPropertiesManager.js +2 -2
  62. package/dist/segmentPropertiesManager.js.map +1 -1
  63. package/dist/snapshotChunks.d.ts +2 -2
  64. package/dist/snapshotChunks.d.ts.map +1 -1
  65. package/dist/snapshotChunks.js.map +1 -1
  66. package/dist/snapshotLoader.d.ts +2 -2
  67. package/dist/snapshotLoader.d.ts.map +1 -1
  68. package/dist/snapshotLoader.js +11 -11
  69. package/dist/snapshotLoader.js.map +1 -1
  70. package/dist/snapshotV1.d.ts +3 -3
  71. package/dist/snapshotV1.d.ts.map +1 -1
  72. package/dist/snapshotV1.js +10 -10
  73. package/dist/snapshotV1.js.map +1 -1
  74. package/dist/snapshotlegacy.d.ts +4 -4
  75. package/dist/snapshotlegacy.d.ts.map +1 -1
  76. package/dist/snapshotlegacy.js +9 -10
  77. package/dist/snapshotlegacy.js.map +1 -1
  78. package/dist/test/Insertion.perf.spec.js.map +1 -1
  79. package/dist/test/PartialLengths.perf.spec.js +1 -1
  80. package/dist/test/PartialLengths.perf.spec.js.map +1 -1
  81. package/dist/test/Removal.perf.spec.js +1 -1
  82. package/dist/test/Removal.perf.spec.js.map +1 -1
  83. package/dist/test/Snapshot.perf.spec.js.map +1 -1
  84. package/dist/test/attributionCollection.perf.spec.js +2 -2
  85. package/dist/test/attributionCollection.perf.spec.js.map +1 -1
  86. package/dist/test/attributionCollection.spec.js.map +1 -1
  87. package/dist/test/attributionPolicy.spec.js.map +1 -1
  88. package/dist/test/beastTest.spec.d.ts.map +1 -1
  89. package/dist/test/beastTest.spec.js +7 -7
  90. package/dist/test/beastTest.spec.js.map +1 -1
  91. package/dist/test/client.annotateMarker.spec.js.map +1 -1
  92. package/dist/test/client.apis.spec.d.ts.map +1 -1
  93. package/dist/test/client.apis.spec.js.map +1 -1
  94. package/dist/test/client.applyMsg.spec.js +2 -2
  95. package/dist/test/client.applyMsg.spec.js.map +1 -1
  96. package/dist/test/client.applyStashedOpFarm.spec.d.ts +1 -1
  97. package/dist/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
  98. package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -1
  99. package/dist/test/client.attributionFarm.spec.d.ts.map +1 -1
  100. package/dist/test/client.attributionFarm.spec.js +1 -1
  101. package/dist/test/client.attributionFarm.spec.js.map +1 -1
  102. package/dist/test/client.conflictFarm.spec.d.ts.map +1 -1
  103. package/dist/test/client.conflictFarm.spec.js.map +1 -1
  104. package/dist/test/client.getPosition.spec.js +1 -1
  105. package/dist/test/client.getPosition.spec.js.map +1 -1
  106. package/dist/test/client.localReference.spec.js +6 -6
  107. package/dist/test/client.localReference.spec.js.map +1 -1
  108. package/dist/test/client.localReferenceFarm.spec.js +2 -2
  109. package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
  110. package/dist/test/client.rebasePosition.spec.js.map +1 -1
  111. package/dist/test/client.reconnectFarm.spec.d.ts +1 -1
  112. package/dist/test/client.reconnectFarm.spec.d.ts.map +1 -1
  113. package/dist/test/client.reconnectFarm.spec.js +1 -1
  114. package/dist/test/client.reconnectFarm.spec.js.map +1 -1
  115. package/dist/test/client.replay.spec.js +4 -4
  116. package/dist/test/client.replay.spec.js.map +1 -1
  117. package/dist/test/client.rollback.spec.js +2 -2
  118. package/dist/test/client.rollback.spec.js.map +1 -1
  119. package/dist/test/client.rollbackFarm.spec.js.map +1 -1
  120. package/dist/test/client.searchForMarker.spec.js +1 -1
  121. package/dist/test/client.searchForMarker.spec.js.map +1 -1
  122. package/dist/test/client.walkSegments.spec.js.map +1 -1
  123. package/dist/test/collections.list.spec.js.map +1 -1
  124. package/dist/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
  125. package/dist/test/mergeTree.annotate.deltaCallback.spec.js +3 -3
  126. package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  127. package/dist/test/mergeTree.annotate.spec.js +1 -1
  128. package/dist/test/mergeTree.annotate.spec.js.map +1 -1
  129. package/dist/test/mergeTree.insert.deltaCallback.spec.js +1 -1
  130. package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  131. package/dist/test/mergeTree.insertingWalk.spec.js +3 -3
  132. package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
  133. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +1 -1
  134. package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  135. package/dist/test/mergeTree.markRangeRemoved.spec.js +1 -1
  136. package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  137. package/dist/test/mergeTree.walk.spec.js +2 -2
  138. package/dist/test/mergeTree.walk.spec.js.map +1 -1
  139. package/dist/test/mergeTree.zamboni.spec.js.map +1 -1
  140. package/dist/test/mergeTreeOperationRunner.d.ts +2 -2
  141. package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
  142. package/dist/test/mergeTreeOperationRunner.js +3 -3
  143. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  144. package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -1
  145. package/dist/test/obliterate.concurrent.spec.js +2 -2
  146. package/dist/test/obliterate.concurrent.spec.js.map +1 -1
  147. package/dist/test/obliterate.deltaCallback.spec.js +1 -1
  148. package/dist/test/obliterate.deltaCallback.spec.js.map +1 -1
  149. package/dist/test/obliterate.partialLength.spec.js.map +1 -1
  150. package/dist/test/obliterate.reconnect.spec.js.map +1 -1
  151. package/dist/test/obliterate.spec.js.map +1 -1
  152. package/dist/test/ordinal.spec.d.ts +4 -0
  153. package/dist/test/ordinal.spec.d.ts.map +1 -1
  154. package/dist/test/ordinal.spec.js +4 -4
  155. package/dist/test/ordinal.spec.js.map +1 -1
  156. package/dist/test/partialLength.spec.js.map +1 -1
  157. package/dist/test/properties.spec.js.map +1 -1
  158. package/dist/test/reconnectHelper.d.ts +1 -1
  159. package/dist/test/reconnectHelper.d.ts.map +1 -1
  160. package/dist/test/reconnectHelper.js.map +1 -1
  161. package/dist/test/resetPendingSegmentsToOp.spec.js +1 -1
  162. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  163. package/dist/test/revertibleFarm.spec.js +1 -1
  164. package/dist/test/revertibleFarm.spec.js.map +1 -1
  165. package/dist/test/revertibles.spec.d.ts.map +1 -1
  166. package/dist/test/revertibles.spec.js +1 -1
  167. package/dist/test/revertibles.spec.js.map +1 -1
  168. package/dist/test/segmentGroupCollection.spec.js.map +1 -1
  169. package/dist/test/snapshot.spec.js +1 -1
  170. package/dist/test/snapshot.spec.js.map +1 -1
  171. package/dist/test/snapshot.utils.d.ts +1 -1
  172. package/dist/test/snapshot.utils.d.ts.map +1 -1
  173. package/dist/test/snapshot.utils.js +3 -3
  174. package/dist/test/snapshot.utils.js.map +1 -1
  175. package/dist/test/snapshotlegacy.spec.js +8 -8
  176. package/dist/test/snapshotlegacy.spec.js.map +1 -1
  177. package/dist/test/sortedSegmentSet.spec.js +2 -2
  178. package/dist/test/sortedSegmentSet.spec.js.map +1 -1
  179. package/dist/test/testClient.d.ts +5 -5
  180. package/dist/test/testClient.d.ts.map +1 -1
  181. package/dist/test/testClient.js +11 -11
  182. package/dist/test/testClient.js.map +1 -1
  183. package/dist/test/testClientLogger.d.ts +1 -1
  184. package/dist/test/testClientLogger.d.ts.map +1 -1
  185. package/dist/test/testClientLogger.js +10 -8
  186. package/dist/test/testClientLogger.js.map +1 -1
  187. package/dist/test/testSerializer.d.ts.map +1 -1
  188. package/dist/test/testSerializer.js +2 -2
  189. package/dist/test/testSerializer.js.map +1 -1
  190. package/dist/test/testServer.d.ts +1 -1
  191. package/dist/test/testServer.d.ts.map +1 -1
  192. package/dist/test/testServer.js +4 -4
  193. package/dist/test/testServer.js.map +1 -1
  194. package/dist/test/testUtils.d.ts +5 -5
  195. package/dist/test/testUtils.d.ts.map +1 -1
  196. package/dist/test/testUtils.js +3 -3
  197. package/dist/test/testUtils.js.map +1 -1
  198. package/dist/test/text.d.ts +1 -1
  199. package/dist/test/text.d.ts.map +1 -1
  200. package/dist/test/text.js.map +1 -1
  201. package/dist/test/tracking.spec.js.map +1 -1
  202. package/dist/test/wordUnitTests.spec.d.ts.map +1 -1
  203. package/dist/test/wordUnitTests.spec.js +2 -2
  204. package/dist/test/wordUnitTests.spec.js.map +1 -1
  205. package/dist/textSegment.d.ts.map +1 -1
  206. package/dist/textSegment.js +2 -2
  207. package/dist/textSegment.js.map +1 -1
  208. package/dist/zamboni.d.ts +2 -2
  209. package/dist/zamboni.d.ts.map +1 -1
  210. package/dist/zamboni.js.map +1 -1
  211. package/internal.d.ts +11 -0
  212. package/legacy.d.ts +11 -0
  213. package/lib/MergeTreeTextHelper.d.ts.map +1 -1
  214. package/lib/MergeTreeTextHelper.js.map +1 -1
  215. package/lib/attributionCollection.d.ts +1 -1
  216. package/lib/attributionCollection.d.ts.map +1 -1
  217. package/lib/attributionCollection.js +1 -1
  218. package/lib/attributionCollection.js.map +1 -1
  219. package/lib/attributionPolicy.d.ts +2 -2
  220. package/lib/attributionPolicy.d.ts.map +1 -1
  221. package/lib/attributionPolicy.js +4 -4
  222. package/lib/attributionPolicy.js.map +1 -1
  223. package/lib/client.d.ts +8 -8
  224. package/lib/client.d.ts.map +1 -1
  225. package/lib/client.js +14 -25
  226. package/lib/client.js.map +1 -1
  227. package/lib/collections/list.js +1 -1
  228. package/lib/collections/list.js.map +1 -1
  229. package/lib/endOfTreeSegment.d.ts +5 -5
  230. package/lib/endOfTreeSegment.d.ts.map +1 -1
  231. package/lib/endOfTreeSegment.js +2 -2
  232. package/lib/endOfTreeSegment.js.map +1 -1
  233. package/lib/index.d.ts +1 -1
  234. package/lib/index.d.ts.map +1 -1
  235. package/lib/index.js +1 -1
  236. package/lib/index.js.map +1 -1
  237. package/lib/legacy.d.ts +76 -0
  238. package/lib/localReference.d.ts.map +1 -1
  239. package/lib/localReference.js +2 -2
  240. package/lib/localReference.js.map +1 -1
  241. package/lib/mergeTree.d.ts +8 -8
  242. package/lib/mergeTree.d.ts.map +1 -1
  243. package/lib/mergeTree.js +23 -36
  244. package/lib/mergeTree.js.map +1 -1
  245. package/lib/mergeTreeDeltaCallback.d.ts +1 -1
  246. package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
  247. package/lib/mergeTreeDeltaCallback.js +4 -0
  248. package/lib/mergeTreeDeltaCallback.js.map +1 -1
  249. package/lib/mergeTreeNodeWalk.d.ts +3 -3
  250. package/lib/mergeTreeNodeWalk.d.ts.map +1 -1
  251. package/lib/mergeTreeNodeWalk.js.map +1 -1
  252. package/lib/mergeTreeNodes.d.ts +37 -55
  253. package/lib/mergeTreeNodes.d.ts.map +1 -1
  254. package/lib/mergeTreeNodes.js +28 -8
  255. package/lib/mergeTreeNodes.js.map +1 -1
  256. package/lib/opBuilder.d.ts +1 -1
  257. package/lib/opBuilder.d.ts.map +1 -1
  258. package/lib/opBuilder.js.map +1 -1
  259. package/lib/ordinal.js +1 -1
  260. package/lib/ordinal.js.map +1 -1
  261. package/lib/partialLengths.d.ts +6 -6
  262. package/lib/partialLengths.d.ts.map +1 -1
  263. package/lib/partialLengths.js +3 -3
  264. package/lib/partialLengths.js.map +1 -1
  265. package/lib/public.d.ts +12 -0
  266. package/lib/revertibles.d.ts +1 -1
  267. package/lib/revertibles.d.ts.map +1 -1
  268. package/lib/revertibles.js +4 -4
  269. package/lib/revertibles.js.map +1 -1
  270. package/lib/segmentPropertiesManager.d.ts.map +1 -1
  271. package/lib/segmentPropertiesManager.js +1 -1
  272. package/lib/segmentPropertiesManager.js.map +1 -1
  273. package/lib/snapshotChunks.d.ts +2 -2
  274. package/lib/snapshotChunks.d.ts.map +1 -1
  275. package/lib/snapshotChunks.js.map +1 -1
  276. package/lib/snapshotLoader.d.ts +2 -2
  277. package/lib/snapshotLoader.d.ts.map +1 -1
  278. package/lib/snapshotLoader.js +2 -2
  279. package/lib/snapshotLoader.js.map +1 -1
  280. package/lib/snapshotV1.d.ts +3 -3
  281. package/lib/snapshotV1.d.ts.map +1 -1
  282. package/lib/snapshotV1.js +5 -5
  283. package/lib/snapshotV1.js.map +1 -1
  284. package/lib/snapshotlegacy.d.ts +4 -4
  285. package/lib/snapshotlegacy.d.ts.map +1 -1
  286. package/lib/snapshotlegacy.js +3 -4
  287. package/lib/snapshotlegacy.js.map +1 -1
  288. package/lib/test/Insertion.perf.spec.js +1 -1
  289. package/lib/test/Insertion.perf.spec.js.map +1 -1
  290. package/lib/test/PartialLengths.perf.spec.js +2 -2
  291. package/lib/test/PartialLengths.perf.spec.js.map +1 -1
  292. package/lib/test/Removal.perf.spec.js +2 -2
  293. package/lib/test/Removal.perf.spec.js.map +1 -1
  294. package/lib/test/Snapshot.perf.spec.js +2 -2
  295. package/lib/test/Snapshot.perf.spec.js.map +1 -1
  296. package/lib/test/attributionCollection.perf.spec.js +4 -4
  297. package/lib/test/attributionCollection.perf.spec.js.map +1 -1
  298. package/lib/test/attributionCollection.spec.js.map +1 -1
  299. package/lib/test/attributionPolicy.spec.js.map +1 -1
  300. package/lib/test/beastTest.spec.d.ts.map +1 -1
  301. package/lib/test/beastTest.spec.js +8 -8
  302. package/lib/test/beastTest.spec.js.map +1 -1
  303. package/lib/test/client.annotateMarker.spec.js.map +1 -1
  304. package/lib/test/client.apis.spec.d.ts.map +1 -1
  305. package/lib/test/client.apis.spec.js.map +1 -1
  306. package/lib/test/client.applyMsg.spec.js +3 -3
  307. package/lib/test/client.applyMsg.spec.js.map +1 -1
  308. package/lib/test/client.applyStashedOpFarm.spec.d.ts +1 -1
  309. package/lib/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
  310. package/lib/test/client.applyStashedOpFarm.spec.js +1 -1
  311. package/lib/test/client.applyStashedOpFarm.spec.js.map +1 -1
  312. package/lib/test/client.attributionFarm.spec.d.ts.map +1 -1
  313. package/lib/test/client.attributionFarm.spec.js +2 -2
  314. package/lib/test/client.attributionFarm.spec.js.map +1 -1
  315. package/lib/test/client.conflictFarm.spec.d.ts.map +1 -1
  316. package/lib/test/client.conflictFarm.spec.js +1 -1
  317. package/lib/test/client.conflictFarm.spec.js.map +1 -1
  318. package/lib/test/client.getPosition.spec.js.map +1 -1
  319. package/lib/test/client.localReference.spec.js +5 -5
  320. package/lib/test/client.localReference.spec.js.map +1 -1
  321. package/lib/test/client.localReferenceFarm.spec.js +2 -2
  322. package/lib/test/client.localReferenceFarm.spec.js.map +1 -1
  323. package/lib/test/client.rebasePosition.spec.js.map +1 -1
  324. package/lib/test/client.reconnectFarm.spec.d.ts +1 -1
  325. package/lib/test/client.reconnectFarm.spec.d.ts.map +1 -1
  326. package/lib/test/client.reconnectFarm.spec.js +2 -2
  327. package/lib/test/client.reconnectFarm.spec.js.map +1 -1
  328. package/lib/test/client.replay.spec.js +3 -3
  329. package/lib/test/client.replay.spec.js.map +1 -1
  330. package/lib/test/client.rollback.spec.js +1 -1
  331. package/lib/test/client.rollback.spec.js.map +1 -1
  332. package/lib/test/client.rollbackFarm.spec.js +1 -1
  333. package/lib/test/client.rollbackFarm.spec.js.map +1 -1
  334. package/lib/test/client.searchForMarker.spec.js +2 -2
  335. package/lib/test/client.searchForMarker.spec.js.map +1 -1
  336. package/lib/test/client.walkSegments.spec.js.map +1 -1
  337. package/lib/test/collections.list.spec.js.map +1 -1
  338. package/lib/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
  339. package/lib/test/mergeTree.annotate.deltaCallback.spec.js +3 -3
  340. package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
  341. package/lib/test/mergeTree.annotate.spec.js +1 -1
  342. package/lib/test/mergeTree.annotate.spec.js.map +1 -1
  343. package/lib/test/mergeTree.insert.deltaCallback.spec.js +1 -1
  344. package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
  345. package/lib/test/mergeTree.insertingWalk.spec.js +3 -3
  346. package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
  347. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +1 -1
  348. package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
  349. package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  350. package/lib/test/mergeTree.walk.spec.js +2 -2
  351. package/lib/test/mergeTree.walk.spec.js.map +1 -1
  352. package/lib/test/mergeTree.zamboni.spec.js +1 -1
  353. package/lib/test/mergeTree.zamboni.spec.js.map +1 -1
  354. package/lib/test/mergeTreeOperationRunner.d.ts +2 -2
  355. package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -1
  356. package/lib/test/mergeTreeOperationRunner.js +3 -3
  357. package/lib/test/mergeTreeOperationRunner.js.map +1 -1
  358. package/lib/test/mergeTreeOperationRunner.spec.js.map +1 -1
  359. package/lib/test/obliterate.concurrent.spec.js +1 -1
  360. package/lib/test/obliterate.concurrent.spec.js.map +1 -1
  361. package/lib/test/obliterate.deltaCallback.spec.js +1 -1
  362. package/lib/test/obliterate.deltaCallback.spec.js.map +1 -1
  363. package/lib/test/obliterate.partialLength.spec.js.map +1 -1
  364. package/lib/test/obliterate.reconnect.spec.js.map +1 -1
  365. package/lib/test/obliterate.spec.js.map +1 -1
  366. package/lib/test/ordinal.spec.d.ts +4 -0
  367. package/lib/test/ordinal.spec.d.ts.map +1 -1
  368. package/lib/test/ordinal.spec.js.map +1 -1
  369. package/lib/test/partialLength.spec.js.map +1 -1
  370. package/lib/test/properties.spec.js.map +1 -1
  371. package/lib/test/reconnectHelper.d.ts +1 -1
  372. package/lib/test/reconnectHelper.d.ts.map +1 -1
  373. package/lib/test/reconnectHelper.js +1 -1
  374. package/lib/test/reconnectHelper.js.map +1 -1
  375. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  376. package/lib/test/revertibleFarm.spec.js +3 -3
  377. package/lib/test/revertibleFarm.spec.js.map +1 -1
  378. package/lib/test/revertibles.spec.d.ts.map +1 -1
  379. package/lib/test/revertibles.spec.js +2 -2
  380. package/lib/test/revertibles.spec.js.map +1 -1
  381. package/lib/test/segmentGroupCollection.spec.js.map +1 -1
  382. package/lib/test/snapshot.spec.js +2 -2
  383. package/lib/test/snapshot.spec.js.map +1 -1
  384. package/lib/test/snapshot.utils.d.ts +1 -1
  385. package/lib/test/snapshot.utils.d.ts.map +1 -1
  386. package/lib/test/snapshot.utils.js +2 -2
  387. package/lib/test/snapshot.utils.js.map +1 -1
  388. package/lib/test/snapshotlegacy.spec.js +4 -4
  389. package/lib/test/snapshotlegacy.spec.js.map +1 -1
  390. package/lib/test/sortedSegmentSet.spec.js +2 -2
  391. package/lib/test/sortedSegmentSet.spec.js.map +1 -1
  392. package/lib/test/testClient.d.ts +5 -5
  393. package/lib/test/testClient.d.ts.map +1 -1
  394. package/lib/test/testClient.js +7 -7
  395. package/lib/test/testClient.js.map +1 -1
  396. package/lib/test/testClientLogger.d.ts +1 -1
  397. package/lib/test/testClientLogger.d.ts.map +1 -1
  398. package/lib/test/testClientLogger.js +9 -7
  399. package/lib/test/testClientLogger.js.map +1 -1
  400. package/lib/test/testSerializer.d.ts.map +1 -1
  401. package/lib/test/testSerializer.js +1 -1
  402. package/lib/test/testSerializer.js.map +1 -1
  403. package/lib/test/testServer.d.ts +1 -1
  404. package/lib/test/testServer.d.ts.map +1 -1
  405. package/lib/test/testServer.js +2 -2
  406. package/lib/test/testServer.js.map +1 -1
  407. package/lib/test/testUtils.d.ts +5 -5
  408. package/lib/test/testUtils.d.ts.map +1 -1
  409. package/lib/test/testUtils.js +3 -3
  410. package/lib/test/testUtils.js.map +1 -1
  411. package/lib/test/text.d.ts +1 -1
  412. package/lib/test/text.d.ts.map +1 -1
  413. package/lib/test/text.js.map +1 -1
  414. package/lib/test/tracking.spec.js.map +1 -1
  415. package/lib/test/wordUnitTests.spec.d.ts.map +1 -1
  416. package/lib/test/wordUnitTests.spec.js +2 -2
  417. package/lib/test/wordUnitTests.spec.js.map +1 -1
  418. package/lib/textSegment.d.ts.map +1 -1
  419. package/lib/textSegment.js +1 -1
  420. package/lib/textSegment.js.map +1 -1
  421. package/lib/zamboni.d.ts +2 -2
  422. package/lib/zamboni.d.ts.map +1 -1
  423. package/lib/zamboni.js.map +1 -1
  424. package/package.json +37 -58
  425. package/src/MergeTreeTextHelper.ts +1 -1
  426. package/src/attributionCollection.ts +4 -3
  427. package/src/attributionPolicy.ts +7 -6
  428. package/src/client.ts +32 -45
  429. package/src/collections/list.ts +1 -1
  430. package/src/endOfTreeSegment.ts +5 -4
  431. package/src/index.ts +5 -1
  432. package/src/localReference.ts +4 -3
  433. package/src/mergeTree.ts +66 -84
  434. package/src/mergeTreeDeltaCallback.ts +3 -1
  435. package/src/mergeTreeNodeWalk.ts +6 -6
  436. package/src/mergeTreeNodes.ts +59 -61
  437. package/src/opBuilder.ts +3 -3
  438. package/src/ordinal.ts +1 -1
  439. package/src/partialLengths.ts +11 -10
  440. package/src/revertibles.ts +6 -5
  441. package/src/segmentPropertiesManager.ts +3 -2
  442. package/src/snapshotChunks.ts +3 -2
  443. package/src/snapshotLoader.ts +10 -12
  444. package/src/snapshotV1.ts +15 -12
  445. package/src/snapshotlegacy.ts +8 -6
  446. package/src/textSegment.ts +2 -1
  447. package/src/zamboni.ts +7 -7
  448. package/api-extractor-cjs.json +0 -8
  449. package/dist/merge-tree-alpha.d.ts +0 -1558
  450. package/dist/merge-tree-beta.d.ts +0 -230
  451. package/dist/merge-tree-public.d.ts +0 -230
  452. package/dist/merge-tree-untrimmed.d.ts +0 -1894
  453. package/lib/merge-tree-alpha.d.ts +0 -1558
  454. package/lib/merge-tree-beta.d.ts +0 -230
  455. package/lib/merge-tree-public.d.ts +0 -230
  456. package/lib/merge-tree-untrimmed.d.ts +0 -1894
  457. package/lib/test/types/validateMergeTreePrevious.generated.d.ts +0 -2
  458. package/lib/test/types/validateMergeTreePrevious.generated.d.ts.map +0 -1
  459. package/lib/test/types/validateMergeTreePrevious.generated.js +0 -228
  460. package/lib/test/types/validateMergeTreePrevious.generated.js.map +0 -1
  461. /package/{dist → lib}/tsdoc-metadata.json +0 -0
@@ -3,9 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
6
+ import { ISegment } from "./mergeTreeNodes.js";
6
7
  import { IMergeTreeGroupMsg, IMergeTreeOp, MergeTreeDeltaType } from "./ops.js";
7
8
  import { PropertySet } from "./properties.js";
8
- import { ISegment } from "./mergeTreeNodes.js";
9
9
  /**
10
10
  * @alpha
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeDeltaCallback.d.ts","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,2BAA2B,GACpC,OAAO,kBAAkB,CAAC,QAAQ,GAClC,OAAO,kBAAkB,CAAC,MAAM,GAChC,OAAO,kBAAkB,CAAC,MAAM,GAChC,OAAO,kBAAkB,CAAC,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;IACpC;;;;;;OAMG;;IAEH;;;OAGG;;IAEH;;;;;OAKG;;IAEH;;;OAGG;;CAEM,CAAC;AACX;;GAEG;AACH,MAAM,MAAM,wBAAwB,GACnC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,2BAA2B,GAAG,wBAAwB,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAC3C,cAAc,SAAS,4BAA4B,GAAG,2BAA2B;IAEjF,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IAEH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACpC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,2BAA2B,KAClC,IAAI,CAAC;AAEV;;GAEG;AAEH,MAAM,WAAW,iCAChB,SAAQ,2BAA2B,CAAC,wBAAwB,CAAC;CAAG;AAEjE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAC1C,eAAe,EAAE,iCAAiC,EAClD,MAAM,EAAE,qBAAqB,GAAG,SAAS,KACrC,IAAI,CAAC"}
1
+ {"version":3,"file":"mergeTreeDeltaCallback.d.ts","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,2BAA2B,GACpC,OAAO,kBAAkB,CAAC,QAAQ,GAClC,OAAO,kBAAkB,CAAC,MAAM,GAChC,OAAO,kBAAkB,CAAC,MAAM,GAChC,OAAO,kBAAkB,CAAC,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;IACpC;;;;;;OAMG;;IAEH;;;OAGG;;IAEH;;;;;OAKG;;IAEH;;;OAGG;;CAEM,CAAC;AACX;;GAEG;AACH,MAAM,MAAM,wBAAwB,GACnC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,2BAA2B,GAAG,wBAAwB,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAC3C,cAAc,SAAS,4BAA4B,GAAG,2BAA2B;IAEjF,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IAEH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACpC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,2BAA2B,KAClC,IAAI,CAAC;AAEV;;GAEG;AAEH,MAAM,WAAW,iCAChB,SAAQ,2BAA2B,CAAC,wBAAwB,CAAC;CAAG;AAEjE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAC1C,eAAe,EAAE,iCAAiC,EAClD,MAAM,EAAE,qBAAqB,GAAG,SAAS,KACrC,IAAI,CAAC"}
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
7
  exports.MergeTreeMaintenanceType = void 0;
4
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeDeltaCallback.js","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":";;;AAmBA;;;;;;GAMG;AACU,QAAA,wBAAwB,GAAG;IACvC;;;;;;OAMG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC;IACT;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC;CACP,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\n// eslint-disable-next-line import/no-deprecated\nimport { IMergeTreeGroupMsg, IMergeTreeOp, MergeTreeDeltaType } from \"./ops.js\";\nimport { PropertySet } from \"./properties.js\";\nimport { ISegment } from \"./mergeTreeNodes.js\";\n\n/**\n * @alpha\n */\nexport type MergeTreeDeltaOperationType =\n\t| typeof MergeTreeDeltaType.ANNOTATE\n\t| typeof MergeTreeDeltaType.INSERT\n\t| typeof MergeTreeDeltaType.REMOVE\n\t| typeof MergeTreeDeltaType.OBLITERATE;\n\n/**\n * Enum-like constant defining the types of \"maintenance\" events on a merge tree.\n * Maintenance events correspond to structural segment changes or acks of pending segments.\n *\n * Note: these values are assigned negative integers to avoid clashing with `MergeTreeDeltaType`.\n * @alpha\n */\nexport const MergeTreeMaintenanceType = {\n\t/**\n\t * Notification that a segment \"append\" has occurred, i.e. two adjacent segments have been merged.\n\t * BEWARE: `deltaSegments` on the corresponding event will contain both the merged segment and the latter\n\t * segment, pre-merge.\n\t * For example, if the merge tree originally had two adjacent segments [A][B] and called A.append(B) to get\n\t * segment [AB], `deltaSegments` would contain [AB] and [B].\n\t */\n\tAPPEND: -1,\n\t/**\n\t * Notification that a segment has been split in two.\n\t * `deltaSegments` on the corresponding event will contain the resulting two segments.\n\t */\n\tSPLIT: -2,\n\t/**\n\t * Notification that a segment has been unlinked (i.e. removed) from the MergeTree.\n\t * This occurs on leaf segments during Zamboni when the segment's tracking collection is empty\n\t * (e.g., not being tracked for undo/redo).\n\t * It also occurs on internal merge tree segments when re-packing children to maintain tree balancing invariants.\n\t */\n\tUNLINK: -3,\n\t/**\n\t * Notification that a local change has been acknowledged by the server.\n\t * This means that it has made the round trip to the server and has had a sequence number assigned.\n\t */\n\tACKNOWLEDGED: -4,\n} as const;\n/**\n * @alpha\n */\nexport type MergeTreeMaintenanceType =\n\t(typeof MergeTreeMaintenanceType)[keyof typeof MergeTreeMaintenanceType];\n\n/**\n * @alpha\n */\nexport type MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType | MergeTreeMaintenanceType;\n\n/**\n * @alpha\n */\nexport interface IMergeTreeDeltaCallbackArgs<\n\tTOperationType extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType,\n> {\n\treadonly operation: TOperationType;\n\treadonly deltaSegments: IMergeTreeSegmentDelta[];\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeSegmentDelta {\n\tsegment: ISegment;\n\tpropertyDeltas?: PropertySet;\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeDeltaOpArgs {\n\t/**\n\t * The group op which contains the operation\n\t * if there operation is part of a group op.\n\t */\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly groupOp?: IMergeTreeGroupMsg;\n\t/**\n\t * The merge tree operation\n\t */\n\treadonly op: IMergeTreeOp;\n\t/**\n\t * Get the sequence message, should only be null if the\n\t * Delta op args are for an unacked local change\n\t */\n\treadonly sequencedMessage?: ISequencedDocumentMessage;\n}\n\n/**\n * @internal\n */\nexport interface IMergeTreeClientSequenceArgs {\n\treadonly clientId: number;\n\treadonly referenceSequenceNumber: number;\n\treadonly sequenceNumber: number;\n}\n\n/**\n * @internal\n */\nexport type MergeTreeDeltaCallback = (\n\topArgs: IMergeTreeDeltaOpArgs,\n\tdeltaArgs: IMergeTreeDeltaCallbackArgs,\n) => void;\n\n/**\n * @alpha\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IMergeTreeMaintenanceCallbackArgs\n\textends IMergeTreeDeltaCallbackArgs<MergeTreeMaintenanceType> {}\n\n/**\n * @internal\n */\nexport type MergeTreeMaintenanceCallback = (\n\tMaintenanceArgs: IMergeTreeMaintenanceCallbackArgs,\n\topArgs: IMergeTreeDeltaOpArgs | undefined,\n) => void;\n"]}
1
+ {"version":3,"file":"mergeTreeDeltaCallback.js","sourceRoot":"","sources":["../src/mergeTreeDeltaCallback.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkBH;;;;;;GAMG;AACU,QAAA,wBAAwB,GAAG;IACvC;;;;;;OAMG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC;IACT;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC;CACP,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\n\nimport { ISegment } from \"./mergeTreeNodes.js\";\n// eslint-disable-next-line import/no-deprecated\nimport { IMergeTreeGroupMsg, IMergeTreeOp, MergeTreeDeltaType } from \"./ops.js\";\nimport { PropertySet } from \"./properties.js\";\n\n/**\n * @alpha\n */\nexport type MergeTreeDeltaOperationType =\n\t| typeof MergeTreeDeltaType.ANNOTATE\n\t| typeof MergeTreeDeltaType.INSERT\n\t| typeof MergeTreeDeltaType.REMOVE\n\t| typeof MergeTreeDeltaType.OBLITERATE;\n\n/**\n * Enum-like constant defining the types of \"maintenance\" events on a merge tree.\n * Maintenance events correspond to structural segment changes or acks of pending segments.\n *\n * Note: these values are assigned negative integers to avoid clashing with `MergeTreeDeltaType`.\n * @alpha\n */\nexport const MergeTreeMaintenanceType = {\n\t/**\n\t * Notification that a segment \"append\" has occurred, i.e. two adjacent segments have been merged.\n\t * BEWARE: `deltaSegments` on the corresponding event will contain both the merged segment and the latter\n\t * segment, pre-merge.\n\t * For example, if the merge tree originally had two adjacent segments [A][B] and called A.append(B) to get\n\t * segment [AB], `deltaSegments` would contain [AB] and [B].\n\t */\n\tAPPEND: -1,\n\t/**\n\t * Notification that a segment has been split in two.\n\t * `deltaSegments` on the corresponding event will contain the resulting two segments.\n\t */\n\tSPLIT: -2,\n\t/**\n\t * Notification that a segment has been unlinked (i.e. removed) from the MergeTree.\n\t * This occurs on leaf segments during Zamboni when the segment's tracking collection is empty\n\t * (e.g., not being tracked for undo/redo).\n\t * It also occurs on internal merge tree segments when re-packing children to maintain tree balancing invariants.\n\t */\n\tUNLINK: -3,\n\t/**\n\t * Notification that a local change has been acknowledged by the server.\n\t * This means that it has made the round trip to the server and has had a sequence number assigned.\n\t */\n\tACKNOWLEDGED: -4,\n} as const;\n/**\n * @alpha\n */\nexport type MergeTreeMaintenanceType =\n\t(typeof MergeTreeMaintenanceType)[keyof typeof MergeTreeMaintenanceType];\n\n/**\n * @alpha\n */\nexport type MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType | MergeTreeMaintenanceType;\n\n/**\n * @alpha\n */\nexport interface IMergeTreeDeltaCallbackArgs<\n\tTOperationType extends MergeTreeDeltaOperationTypes = MergeTreeDeltaOperationType,\n> {\n\treadonly operation: TOperationType;\n\treadonly deltaSegments: IMergeTreeSegmentDelta[];\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeSegmentDelta {\n\tsegment: ISegment;\n\tpropertyDeltas?: PropertySet;\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeDeltaOpArgs {\n\t/**\n\t * The group op which contains the operation\n\t * if there operation is part of a group op.\n\t */\n\t// eslint-disable-next-line import/no-deprecated\n\treadonly groupOp?: IMergeTreeGroupMsg;\n\t/**\n\t * The merge tree operation\n\t */\n\treadonly op: IMergeTreeOp;\n\t/**\n\t * Get the sequence message, should only be null if the\n\t * Delta op args are for an unacked local change\n\t */\n\treadonly sequencedMessage?: ISequencedDocumentMessage;\n}\n\n/**\n * @internal\n */\nexport interface IMergeTreeClientSequenceArgs {\n\treadonly clientId: number;\n\treadonly referenceSequenceNumber: number;\n\treadonly sequenceNumber: number;\n}\n\n/**\n * @internal\n */\nexport type MergeTreeDeltaCallback = (\n\topArgs: IMergeTreeDeltaOpArgs,\n\tdeltaArgs: IMergeTreeDeltaCallbackArgs,\n) => void;\n\n/**\n * @alpha\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IMergeTreeMaintenanceCallbackArgs\n\textends IMergeTreeDeltaCallbackArgs<MergeTreeMaintenanceType> {}\n\n/**\n * @internal\n */\nexport type MergeTreeMaintenanceCallback = (\n\tMaintenanceArgs: IMergeTreeMaintenanceCallbackArgs,\n\topArgs: IMergeTreeDeltaOpArgs | undefined,\n) => void;\n"]}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IMergeBlock, IMergeNode, ISegment } from "./mergeTreeNodes.js";
5
+ import { type MergeBlock, IMergeNode, ISegment } from "./mergeTreeNodes.js";
6
6
  export declare const LeafAction: {
7
7
  readonly Exit: false;
8
8
  };
@@ -24,7 +24,7 @@ export type NodeAction = (typeof NodeAction)[keyof typeof NodeAction] | Exclude<
24
24
  * @param forward - whether to walk forward or backward
25
25
  * @returns true if we naturally exit, false if exiting due to Exit action result
26
26
  */
27
- export declare function depthFirstNodeWalk(startBlock: IMergeBlock, startChild: IMergeNode | undefined, downAction?: (node: IMergeNode) => NodeAction, leafActionOverride?: (seg: ISegment) => LeafAction, upAction?: (block: IMergeBlock) => void, forward?: boolean): boolean;
27
+ export declare function depthFirstNodeWalk(startBlock: MergeBlock, startChild: IMergeNode | undefined, downAction?: (node: IMergeNode) => NodeAction, leafActionOverride?: (seg: ISegment) => LeafAction, upAction?: (block: MergeBlock) => void, forward?: boolean): boolean;
28
28
  /**
29
29
  * Visit segments starting from node's right/far/forward siblings, then up to node's parent.
30
30
  * All segments past `node` are visited, regardless of their visibility.
@@ -41,5 +41,5 @@ export declare function backwardExcursion(startNode: IMergeNode, leafAction: (se
41
41
  * @param leafAction - The action to perform on the leaves
42
42
  * @returns true if we naturally exit, false if exiting due to leaf action result
43
43
  */
44
- export declare function walkAllChildSegments(startBlock: IMergeBlock, leafAction: (segment: ISegment) => boolean | undefined | void): boolean;
44
+ export declare function walkAllChildSegments(startBlock: MergeBlock, leafAction: (segment: ISegment) => boolean | undefined | void): boolean;
45
45
  //# sourceMappingURL=mergeTreeNodeWalk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeNodeWalk.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodeWalk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAExE,eAAO,MAAM,UAAU;;CAEb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAEpD,eAAO,MAAM,UAAU;;;;CAKb,CAAC;AAGX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAElG;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,EAC7C,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,UAAU,EAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACvC,OAAO,GAAE,OAAc,GACrB,OAAO,CAyET;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,SAAS,GAChD,OAAO,CAcT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,SAAS,GAChD,OAAO,CAeT;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,GAC3D,OAAO,CAoBT"}
1
+ {"version":3,"file":"mergeTreeNodeWalk.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodeWalk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE5E,eAAO,MAAM,UAAU;;CAEb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAEpD,eAAO,MAAM,UAAU;;;;CAKb,CAAC;AAGX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAElG;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,EAC7C,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,UAAU,EAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACtC,OAAO,GAAE,OAAc,GACrB,OAAO,CAyET;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,SAAS,GAChD,OAAO,CAcT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,GAAG,SAAS,GAChD,OAAO,CAeT;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,GAC3D,OAAO,CAoBT"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeNodeWalk.js","sourceRoot":"","sources":["../src/mergeTreeNodeWalk.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IMergeBlock, IMergeNode, ISegment } from \"./mergeTreeNodes.js\";\n\nexport const LeafAction = {\n\tExit: false,\n} as const;\n\nexport type LeafAction = boolean | undefined | void;\n\nexport const NodeAction = {\n\tContinue: undefined,\n\t// exit is false to unify with leafActionOverride\n\tExit: LeafAction.Exit,\n\tSkip: 2,\n} as const;\n\n// we exclude true from, as we only want one continue value, undefined\nexport type NodeAction = (typeof NodeAction)[keyof typeof NodeAction] | Exclude<LeafAction, true>;\n\n/**\n * Does a depth first walk of the tree from the specific start.\n *\n * @param startBlock - The block of the tree to start the walk from\n * @param startChild - The child of that block to start from\n * @param downAction - Called as we walk down the tree to the leaves.\n * @param leafActionOverride - Overrides downAction for leaves, generally used without downAction\n * @param upAction - Called after all the children of a block are walked.\n * @param forward - whether to walk forward or backward\n * @returns true if we naturally exit, false if exiting due to Exit action result\n */\nexport function depthFirstNodeWalk(\n\tstartBlock: IMergeBlock,\n\tstartChild: IMergeNode | undefined,\n\tdownAction?: (node: IMergeNode) => NodeAction,\n\tleafActionOverride?: (seg: ISegment) => LeafAction,\n\tupAction?: (block: IMergeBlock) => void,\n\tforward: boolean = true,\n): boolean {\n\tconst increment = forward ? 1 : -1;\n\tconst leafAction = leafActionOverride ?? downAction;\n\tif (leafAction === undefined) {\n\t\treturn true;\n\t}\n\n\tlet block = startBlock;\n\tlet childCount = block.childCount;\n\tlet start: IMergeNode | undefined = startChild;\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// go down to the leaf level\n\t\tlet blockResult: NodeAction;\n\t\twhile (start?.isLeaf() === false) {\n\t\t\t// cast is safe due to isLeaf === false in while above\n\t\t\tblock = start as IMergeBlock;\n\t\t\tchildCount = block.childCount;\n\t\t\tblockResult = downAction?.(block);\n\t\t\t// setting start undefined will skip the leaf walk\n\t\t\t// so if the block result isn't continue, set it\n\t\t\t// undefined\n\t\t\tstart =\n\t\t\t\tblockResult === NodeAction.Continue\n\t\t\t\t\t? block.children[forward ? 0 : childCount - 1]\n\t\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet exit = blockResult === NodeAction.Exit;\n\n\t\t// walk the leaves if we reached them\n\t\tif (start !== undefined) {\n\t\t\tfor (let i = start.index; i !== -1 && i !== childCount; i += increment) {\n\t\t\t\t// the above loop ensures start is a leaf or undefined, so all children\n\t\t\t\t// will be leaves if start exits, so the cast is safe\n\t\t\t\tif (leafAction(block.children[i] as ISegment) === LeafAction.Exit) {\n\t\t\t\t\texit = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if there is no upAction, we don't need to walk up before exiting\n\t\tif (upAction === undefined && exit) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// since we already enumerated the children\n\t\t// we walk up to the next level until there is a sibling\n\t\t// or all the way up if exit is true\n\t\tlet nextIndex = -1;\n\t\tdo {\n\t\t\t// if the blockAction was exit or skip\n\t\t\t// we shouldn't process that block again,\n\t\t\t// if there are subsequent parents while walking up\n\t\t\t// we will process those.\n\t\t\tif (blockResult === NodeAction.Continue) {\n\t\t\t\tupAction?.(block);\n\t\t\t} else {\n\t\t\t\tblockResult = NodeAction.Continue;\n\t\t\t}\n\t\t\tif (block.parent === undefined) {\n\t\t\t\treturn !exit;\n\t\t\t}\n\t\t\tstart = block;\n\t\t\tblock = block.parent;\n\t\t\tchildCount = block.childCount;\n\t\t\tnextIndex = start.index + increment;\n\t\t} while (exit || nextIndex === -1 || nextIndex === childCount);\n\t\t// the above loop ensured that siblings are possible\n\t\tstart = block.children[nextIndex];\n\t}\n}\n\n/**\n * Visit segments starting from node's right/far/forward siblings, then up to node's parent.\n * All segments past `node` are visited, regardless of their visibility.\n */\nexport function forwardExcursion(\n\tstartNode: IMergeNode,\n\tleafAction: (seg: ISegment) => boolean | undefined,\n): boolean {\n\tif (startNode.parent === undefined) {\n\t\treturn true;\n\t}\n\n\treturn depthFirstNodeWalk(\n\t\tstartNode.parent,\n\t\t// this will either be the sibling, or undefined\n\t\t// either is fine, and will result in skipping\n\t\t// the startNode only\n\t\tstartNode.parent.children[startNode.index + 1],\n\t\tundefined /* downAction */,\n\t\tleafAction,\n\t);\n}\n\n/**\n * Visit segments starting from node's left/near/backwards siblings, then up to node's parent.\n * All segments past `node` are visited, regardless of their visibility.\n */\nexport function backwardExcursion(\n\tstartNode: IMergeNode,\n\tleafAction: (seg: ISegment) => boolean | undefined,\n): boolean {\n\tif (startNode.parent === undefined) {\n\t\treturn true;\n\t}\n\treturn depthFirstNodeWalk(\n\t\tstartNode.parent,\n\t\t// this will either be the sibling, or undefined\n\t\t// either is fine, and will result in skipping\n\t\t// the startNode only\n\t\tstartNode.parent.children[startNode.index - 1],\n\t\tundefined /* downAction */,\n\t\tleafAction,\n\t\tundefined /* upAction */,\n\t\tfalse /* forward */,\n\t);\n}\n\n/**\n * Walks all segments below the specific start block\n * @param startBlock - The block to start the walk at\n * @param leafAction - The action to perform on the leaves\n * @returns true if we naturally exit, false if exiting due to leaf action result\n */\nexport function walkAllChildSegments(\n\tstartBlock: IMergeBlock,\n\tleafAction: (segment: ISegment) => boolean | undefined | void,\n): boolean {\n\tif (startBlock.childCount === 0) {\n\t\treturn true;\n\t}\n\n\t// undefined shouldn't actually be added, but this allows subsequent check for `node.parent` to typecheck\n\t// without further runtime work.\n\tconst ancestors = new Set<IMergeBlock | undefined>();\n\tfor (let cur = startBlock.parent; cur !== undefined; cur = cur.parent) {\n\t\tancestors.add(cur);\n\t}\n\n\treturn depthFirstNodeWalk(\n\t\tstartBlock,\n\t\tstartBlock.children[0],\n\t\tancestors.size === 0\n\t\t\t? undefined\n\t\t\t: (node) => (ancestors.has(node.parent) ? NodeAction.Exit : NodeAction.Continue),\n\t\tleafAction,\n\t);\n}\n"]}
1
+ {"version":3,"file":"mergeTreeNodeWalk.js","sourceRoot":"","sources":["../src/mergeTreeNodeWalk.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { type MergeBlock, IMergeNode, ISegment } from \"./mergeTreeNodes.js\";\n\nexport const LeafAction = {\n\tExit: false,\n} as const;\n\nexport type LeafAction = boolean | undefined | void;\n\nexport const NodeAction = {\n\tContinue: undefined,\n\t// exit is false to unify with leafActionOverride\n\tExit: LeafAction.Exit,\n\tSkip: 2,\n} as const;\n\n// we exclude true from, as we only want one continue value, undefined\nexport type NodeAction = (typeof NodeAction)[keyof typeof NodeAction] | Exclude<LeafAction, true>;\n\n/**\n * Does a depth first walk of the tree from the specific start.\n *\n * @param startBlock - The block of the tree to start the walk from\n * @param startChild - The child of that block to start from\n * @param downAction - Called as we walk down the tree to the leaves.\n * @param leafActionOverride - Overrides downAction for leaves, generally used without downAction\n * @param upAction - Called after all the children of a block are walked.\n * @param forward - whether to walk forward or backward\n * @returns true if we naturally exit, false if exiting due to Exit action result\n */\nexport function depthFirstNodeWalk(\n\tstartBlock: MergeBlock,\n\tstartChild: IMergeNode | undefined,\n\tdownAction?: (node: IMergeNode) => NodeAction,\n\tleafActionOverride?: (seg: ISegment) => LeafAction,\n\tupAction?: (block: MergeBlock) => void,\n\tforward: boolean = true,\n): boolean {\n\tconst increment = forward ? 1 : -1;\n\tconst leafAction = leafActionOverride ?? downAction;\n\tif (leafAction === undefined) {\n\t\treturn true;\n\t}\n\n\tlet block = startBlock;\n\tlet childCount = block.childCount;\n\tlet start: IMergeNode | undefined = startChild;\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// go down to the leaf level\n\t\tlet blockResult: NodeAction;\n\t\twhile (start?.isLeaf() === false) {\n\t\t\t// cast is safe due to isLeaf === false in while above\n\t\t\tblock = start as MergeBlock;\n\t\t\tchildCount = block.childCount;\n\t\t\tblockResult = downAction?.(block);\n\t\t\t// setting start undefined will skip the leaf walk\n\t\t\t// so if the block result isn't continue, set it\n\t\t\t// undefined\n\t\t\tstart =\n\t\t\t\tblockResult === NodeAction.Continue\n\t\t\t\t\t? block.children[forward ? 0 : childCount - 1]\n\t\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet exit = blockResult === NodeAction.Exit;\n\n\t\t// walk the leaves if we reached them\n\t\tif (start !== undefined) {\n\t\t\tfor (let i = start.index; i !== -1 && i !== childCount; i += increment) {\n\t\t\t\t// the above loop ensures start is a leaf or undefined, so all children\n\t\t\t\t// will be leaves if start exits, so the cast is safe\n\t\t\t\tif (leafAction(block.children[i] as ISegment) === LeafAction.Exit) {\n\t\t\t\t\texit = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if there is no upAction, we don't need to walk up before exiting\n\t\tif (upAction === undefined && exit) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// since we already enumerated the children\n\t\t// we walk up to the next level until there is a sibling\n\t\t// or all the way up if exit is true\n\t\tlet nextIndex = -1;\n\t\tdo {\n\t\t\t// if the blockAction was exit or skip\n\t\t\t// we shouldn't process that block again,\n\t\t\t// if there are subsequent parents while walking up\n\t\t\t// we will process those.\n\t\t\tif (blockResult === NodeAction.Continue) {\n\t\t\t\tupAction?.(block);\n\t\t\t} else {\n\t\t\t\tblockResult = NodeAction.Continue;\n\t\t\t}\n\t\t\tif (block.parent === undefined) {\n\t\t\t\treturn !exit;\n\t\t\t}\n\t\t\tstart = block;\n\t\t\tblock = block.parent;\n\t\t\tchildCount = block.childCount;\n\t\t\tnextIndex = start.index + increment;\n\t\t} while (exit || nextIndex === -1 || nextIndex === childCount);\n\t\t// the above loop ensured that siblings are possible\n\t\tstart = block.children[nextIndex];\n\t}\n}\n\n/**\n * Visit segments starting from node's right/far/forward siblings, then up to node's parent.\n * All segments past `node` are visited, regardless of their visibility.\n */\nexport function forwardExcursion(\n\tstartNode: IMergeNode,\n\tleafAction: (seg: ISegment) => boolean | undefined,\n): boolean {\n\tif (startNode.parent === undefined) {\n\t\treturn true;\n\t}\n\n\treturn depthFirstNodeWalk(\n\t\tstartNode.parent,\n\t\t// this will either be the sibling, or undefined\n\t\t// either is fine, and will result in skipping\n\t\t// the startNode only\n\t\tstartNode.parent.children[startNode.index + 1],\n\t\tundefined /* downAction */,\n\t\tleafAction,\n\t);\n}\n\n/**\n * Visit segments starting from node's left/near/backwards siblings, then up to node's parent.\n * All segments past `node` are visited, regardless of their visibility.\n */\nexport function backwardExcursion(\n\tstartNode: IMergeNode,\n\tleafAction: (seg: ISegment) => boolean | undefined,\n): boolean {\n\tif (startNode.parent === undefined) {\n\t\treturn true;\n\t}\n\treturn depthFirstNodeWalk(\n\t\tstartNode.parent,\n\t\t// this will either be the sibling, or undefined\n\t\t// either is fine, and will result in skipping\n\t\t// the startNode only\n\t\tstartNode.parent.children[startNode.index - 1],\n\t\tundefined /* downAction */,\n\t\tleafAction,\n\t\tundefined /* upAction */,\n\t\tfalse /* forward */,\n\t);\n}\n\n/**\n * Walks all segments below the specific start block\n * @param startBlock - The block to start the walk at\n * @param leafAction - The action to perform on the leaves\n * @returns true if we naturally exit, false if exiting due to leaf action result\n */\nexport function walkAllChildSegments(\n\tstartBlock: MergeBlock,\n\tleafAction: (segment: ISegment) => boolean | undefined | void,\n): boolean {\n\tif (startBlock.childCount === 0) {\n\t\treturn true;\n\t}\n\n\t// undefined shouldn't actually be added, but this allows subsequent check for `node.parent` to typecheck\n\t// without further runtime work.\n\tconst ancestors = new Set<MergeBlock | undefined>();\n\tfor (let cur = startBlock.parent; cur !== undefined; cur = cur.parent) {\n\t\tancestors.add(cur);\n\t}\n\n\treturn depthFirstNodeWalk(\n\t\tstartBlock,\n\t\tstartBlock.children[0],\n\t\tancestors.size === 0\n\t\t\t? undefined\n\t\t\t: (node) => (ancestors.has(node.parent) ? NodeAction.Exit : NodeAction.Continue),\n\t\tleafAction,\n\t);\n}\n"]}
@@ -2,14 +2,14 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { AttributionKey } from "@fluidframework/runtime-definitions";
5
+ import { AttributionKey } from "@fluidframework/runtime-definitions/internal";
6
6
  import { IAttributionCollection } from "./attributionCollection.js";
7
7
  import { LocalReferenceCollection } from "./localReference.js";
8
8
  import { IMergeTreeDeltaOpArgs } from "./mergeTreeDeltaCallback.js";
9
9
  import { TrackingGroupCollection } from "./mergeTreeTracking.js";
10
10
  import { IJSONSegment, IMarkerDef, ReferenceType } from "./ops.js";
11
- import { PartialSequenceLengths } from "./partialLengths.js";
12
- import { MapLike, PropertySet } from "./properties.js";
11
+ import type { PartialSequenceLengths } from "./partialLengths.js";
12
+ import { PropertySet, type MapLike } from "./properties.js";
13
13
  import { ReferencePosition } from "./referencePositions.js";
14
14
  import { SegmentGroupCollection } from "./segmentGroupCollection.js";
15
15
  import { PropertiesManager, PropertiesRollback } from "./segmentPropertiesManager.js";
@@ -34,51 +34,9 @@ export interface IMergeNodeCommon {
34
34
  * this is just a convenience type that makes it clear that we need something that is both a segment and a leaf node
35
35
  */
36
36
  export type ISegmentLeaf = ISegment & {
37
- parent?: IMergeBlock;
37
+ parent?: MergeBlock;
38
38
  };
39
- export type IMergeNode = IMergeBlock | ISegmentLeaf;
40
- /**
41
- * Internal (i.e. non-leaf) node in a merge tree.
42
- * @internal
43
- */
44
- export interface IMergeBlock extends IMergeNodeCommon {
45
- parent?: IMergeBlock;
46
- needsScour?: boolean;
47
- /**
48
- * Number of direct children of this node
49
- */
50
- childCount: number;
51
- /**
52
- * Array of child nodes.
53
- *
54
- * @remarks To avoid reallocation, this is always initialized to have maximum length as deemed by
55
- * the merge tree's branching factor. Use `childCount` to determine how many children this node actually has.
56
- */
57
- children: IMergeNode[];
58
- /**
59
- * Supports querying the total length of all descendants of this IMergeBlock from the perspective of any
60
- * (clientId, seq) within the collab window.
61
- *
62
- * @remarks This is only optional for implementation reasons (internal nodes can be created/moved without
63
- * immediately initializing the partial lengths). Aside from mid-update on tree operations, these lengths
64
- * objects are always defined.
65
- */
66
- partialLengths?: PartialSequenceLengths;
67
- /**
68
- * The length of the contents of the node.
69
- */
70
- cachedLength: number | undefined;
71
- hierBlock(): IHierBlock | undefined;
72
- assignChild(child: IMergeNode, index: number, updateOrdinal?: boolean): void;
73
- setOrdinal(child: IMergeNode, index: number): void;
74
- }
75
- /**
76
- * @internal
77
- */
78
- export interface IHierBlock extends IMergeBlock {
79
- rightmostTiles: MapLike<ReferencePosition>;
80
- leftmostTiles: MapLike<ReferencePosition>;
81
- }
39
+ export type IMergeNode = MergeBlock | ISegmentLeaf;
82
40
  /**
83
41
  * Contains removal information associated to an {@link ISegment}.
84
42
  * @alpha
@@ -291,13 +249,13 @@ export interface ISegmentChanges {
291
249
  * @internal
292
250
  */
293
251
  export interface BlockAction<TClientData> {
294
- (block: IMergeBlock, pos: number, refSeq: number, clientId: number, start: number | undefined, end: number | undefined, accum: TClientData): boolean;
252
+ (block: MergeBlock, pos: number, refSeq: number, clientId: number, start: number | undefined, end: number | undefined, accum: TClientData): boolean;
295
253
  }
296
254
  /**
297
255
  * @internal
298
256
  */
299
257
  export interface NodeAction<TClientData> {
300
- (node: IMergeNode, pos: number, refSeq: number, clientId: number, start: number | undefined, end: number | undefined, clientData: TClientData): boolean;
258
+ (node: MergeNode, pos: number, refSeq: number, clientId: number, start: number | undefined, end: number | undefined, clientData: TClientData): boolean;
301
259
  }
302
260
  /**
303
261
  * @internal
@@ -305,7 +263,7 @@ export interface NodeAction<TClientData> {
305
263
  export interface InsertContext {
306
264
  candidateSegment?: ISegment;
307
265
  leaf: (segment: ISegment | undefined, pos: number, ic: InsertContext) => ISegmentChanges;
308
- continuePredicate?: (continueFromBlock: IMergeBlock) => boolean;
266
+ continuePredicate?: (continueFromBlock: MergeBlock) => boolean;
309
267
  }
310
268
  /**
311
269
  * @internal
@@ -329,6 +287,7 @@ export interface SegmentGroup {
329
287
  }
330
288
  /**
331
289
  * @alpha
290
+ * @deprecated - unused and will be removed
332
291
  */
333
292
  export declare class MergeNode implements IMergeNodeCommon {
334
293
  index: number;
@@ -347,20 +306,40 @@ export declare const MaxNodesInBlock = 8;
347
306
  /**
348
307
  * @internal
349
308
  */
350
- export declare class MergeBlock extends MergeNode implements IMergeBlock {
309
+ export declare class MergeBlock implements IMergeNodeCommon {
351
310
  childCount: number;
352
- parent?: IMergeBlock;
353
311
  children: IMergeNode[];
312
+ needsScour?: boolean;
313
+ parent?: MergeBlock;
314
+ index: number;
315
+ ordinal: string;
316
+ cachedLength: number | undefined;
317
+ isLeaf(): this is ISegment;
318
+ /**
319
+ * Supports querying the total length of all descendants of this IMergeBlock from the perspective of any
320
+ * (clientId, seq) within the collab window.
321
+ *
322
+ * @remarks This is only optional for implementation reasons (internal nodes can be created/moved without
323
+ * immediately initializing the partial lengths). Aside from mid-update on tree operations, these lengths
324
+ * objects are always defined.
325
+ */
326
+ partialLengths?: PartialSequenceLengths;
354
327
  constructor(childCount: number);
355
- hierBlock(): IHierBlock | undefined;
328
+ hierBlock(): this is HierMergeBlock;
356
329
  setOrdinal(child: IMergeNode, index: number): void;
357
330
  assignChild(child: IMergeNode, index: number, updateOrdinal?: boolean): void;
358
331
  }
332
+ export declare class HierMergeBlock extends MergeBlock {
333
+ rightmostTiles: MapLike<ReferencePosition>;
334
+ leftmostTiles: MapLike<ReferencePosition>;
335
+ constructor(childCount: number);
336
+ hierBlock(): this is HierMergeBlock;
337
+ }
359
338
  export declare function seqLTE(seq: number, minOrRefSeq: number): boolean;
360
339
  /**
361
340
  * @alpha
362
341
  */
363
- export declare abstract class BaseSegment extends MergeNode implements ISegment {
342
+ export declare abstract class BaseSegment implements ISegment {
364
343
  clientId: number;
365
344
  seq: number;
366
345
  removedSeq?: number;
@@ -369,6 +348,9 @@ export declare abstract class BaseSegment extends MergeNode implements ISegment
369
348
  movedSeqs?: number[];
370
349
  movedClientIds?: number[];
371
350
  wasMovedOnInsert?: boolean | undefined;
351
+ index: number;
352
+ ordinal: string;
353
+ cachedLength: number;
372
354
  readonly segmentGroups: SegmentGroupCollection;
373
355
  readonly trackingCollection: TrackingGroupCollection;
374
356
  /***/
@@ -400,7 +382,7 @@ export declare abstract class BaseSegment extends MergeNode implements ISegment
400
382
  *
401
383
  * @remarks In general, marker ids should be accessed using the inherent method
402
384
  * {@link Marker.getId}. Marker ids should not be updated after creation.
403
- * @internal
385
+ * @alpha
404
386
  */
405
387
  export declare const reservedMarkerIdKey = "markerId";
406
388
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeNodes.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAsB,aAAa,EAAE,MAAM,UAAU,CAAC;AAEvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAoB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAuB,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEtF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC;CAC3B;AACD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;AACpD;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,IAAI,UAAU,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7E,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC9C,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAQhG;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAE5B;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAWvF;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;IACrD;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAExC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAErD;;OAEG;IACH,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CACZ,QAAQ,EAAE,WAAW,EACrB,GAAG,CAAC,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC3B,WAAW,CAAC;IACf,KAAK,IAAI,QAAQ,CAAC;IAClB,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,YAAY,IAAI,GAAG,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAErC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,WAAW;IAE1C,CACC,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,GAChB,OAAO,CAAC;CACX;AACD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC1B;AACD;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,WAAW;IAEvC,CACC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,WAAW,GAChB,OAAO,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,WAAW;IAEtC,CACC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,UAAU,EAAE,WAAW,GACrB,OAAO,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,KAAK,eAAe,CAAC;IACzF,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,WAAW,KAAK,OAAO,CAAC;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,WAAW;IAC1C,IAAI,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,SAAU,YAAW,gBAAgB;IACjD,KAAK,EAAE,MAAM,CAAK;IAClB,OAAO,EAAE,MAAM,CAAM;IACrB,YAAY,EAAE,MAAM,CAAK;IAEzB,MAAM,IAAI,IAAI,IAAI,QAAQ;CAG1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC;;GAEG;AACH,qBAAa,UAAW,SAAQ,SAAU,YAAW,WAAW;IAGrC,UAAU,EAAE,MAAM;IAF5C,MAAM,CAAC,EAAE,WAAW,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;gBACJ,UAAU,EAAE,MAAM;IAKrC,SAAS,IAAI,UAAU,GAAG,SAAS;IAInC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;IAc3C,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,UAAO;CAQzE;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAEtD;AAED;;GAEG;AACH,8BAAsB,WAAY,SAAQ,SAAU,YAAW,QAAQ;IAC/D,QAAQ,EAAE,MAAM,CAAiB;IACjC,GAAG,EAAE,MAAM,CAA2B;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,SAAgB,aAAa,EAAE,sBAAsB,CAAoC;IACzF,SAAgB,kBAAkB,EAAE,uBAAuB,CAAqC;IAChG,KAAK;IACE,WAAW,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAC5C,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,aAAa,CACnB,QAAQ,EAAE,WAAW,EACrB,GAAG,CAAC,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,EACvB,QAAQ,GAAE,kBAA4C;IAchD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,MAAM,IAAI,IAAI,IAAI,QAAQ;IAIjC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ;IAgBxB,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAI5C,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY;aAM/B,YAAY,IAAI,GAAG;IAEnC,KAAK;IACE,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAyDvE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IA4CjD,OAAO,CAAC,gBAAgB;aAaR,KAAK,IAAI,QAAQ;IAE1B,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAqBpC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAC7E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C;;GAEG;AACH,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD,MAAM,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,MAAO,SAAQ,WAAY,YAAW,iBAAiB,EAAE,QAAQ;IAe1D,OAAO,EAAE,aAAa;IAdzC,gBAAuB,IAAI,YAAY;WACzB,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,MAAM;IAGtD,SAAgB,IAAI,YAAe;WAErB,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,WAAW;gBAQ3C,OAAO,EAAE,aAAa;IAKzC,YAAY;IAMZ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG;IAO/B,KAAK;IAML,UAAU;IAIV,SAAS;IAIT,aAAa;IAIb,KAAK,IAAI,MAAM,GAAG,SAAS;IAI3B,QAAQ;IAIR,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAI1C,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAIrC,MAAM;CAGN;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B,QAAQ,SAAiB;IACzB,aAAa,UAAS;IAEtB;;OAEG;IACH,MAAM,SAAK;IACX;;OAEG;IACH,UAAU,SAAK;IAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACH,QAAQ,SAAK;IAEb,QAAQ,CAAC,CAAC,EAAE,mBAAmB;CAM/B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,WAAU,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,WAAuB,CAAC;AAE3E;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkC1D"}
1
+ {"version":3,"file":"mergeTreeNodes.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodes.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.debugMarkerToString = exports.compareStrings = exports.compareNumbers = exports.CollaborationWindow = exports.Marker = exports.reservedMarkerSimpleTypeKey = exports.reservedMarkerIdKey = exports.BaseSegment = exports.seqLTE = exports.MergeBlock = exports.MaxNodesInBlock = exports.MergeNode = exports.toMoveInfo = exports.toRemovalInfo = void 0;
7
+ exports.debugMarkerToString = exports.compareStrings = exports.compareNumbers = exports.CollaborationWindow = exports.Marker = exports.reservedMarkerSimpleTypeKey = exports.reservedMarkerIdKey = exports.BaseSegment = exports.seqLTE = exports.HierMergeBlock = exports.MergeBlock = exports.MaxNodesInBlock = exports.MergeNode = exports.toMoveInfo = exports.toRemovalInfo = void 0;
8
8
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
9
- const core_utils_1 = require("@fluidframework/core-utils");
9
+ const internal_1 = require("@fluidframework/core-utils/internal");
10
10
  const constants_js_1 = require("./constants.js");
11
11
  const localReference_js_1 = require("./localReference.js");
12
12
  const mergeTreeTracking_js_1 = require("./mergeTreeTracking.js");
@@ -24,14 +24,14 @@ function toRemovalInfo(maybe) {
24
24
  if (maybe?.removedClientIds !== undefined && maybe?.removedSeq !== undefined) {
25
25
  return maybe;
26
26
  }
27
- (0, core_utils_1.assert)(maybe?.removedClientIds === undefined && maybe?.removedSeq === undefined, 0x2bf /* "both removedClientIds and removedSeq should be set or not set" */);
27
+ (0, internal_1.assert)(maybe?.removedClientIds === undefined && maybe?.removedSeq === undefined, 0x2bf /* "both removedClientIds and removedSeq should be set or not set" */);
28
28
  }
29
29
  exports.toRemovalInfo = toRemovalInfo;
30
30
  function toMoveInfo(maybe) {
31
31
  if (maybe?.movedClientIds !== undefined && maybe?.movedSeq !== undefined) {
32
32
  return maybe;
33
33
  }
34
- (0, core_utils_1.assert)(maybe?.movedClientIds === undefined &&
34
+ (0, internal_1.assert)(maybe?.movedClientIds === undefined &&
35
35
  maybe?.movedSeq === undefined &&
36
36
  maybe?.movedSeqs === undefined &&
37
37
  maybe?.wasMovedOnInsert === undefined, 0x86d /* movedClientIds, movedSeq, wasMovedOnInsert, and movedSeqs should all be either set or not set */);
@@ -39,6 +39,7 @@ function toMoveInfo(maybe) {
39
39
  exports.toMoveInfo = toMoveInfo;
40
40
  /**
41
41
  * @alpha
42
+ * @deprecated - unused and will be removed
42
43
  */
43
44
  class MergeNode {
44
45
  constructor() {
@@ -62,18 +63,23 @@ exports.MaxNodesInBlock = 8;
62
63
  /**
63
64
  * @internal
64
65
  */
65
- class MergeBlock extends MergeNode {
66
+ class MergeBlock {
67
+ isLeaf() {
68
+ return false;
69
+ }
66
70
  constructor(childCount) {
67
- super();
68
71
  this.childCount = childCount;
72
+ this.index = 0;
73
+ this.ordinal = "";
74
+ this.cachedLength = 0;
69
75
  this.children = new Array(exports.MaxNodesInBlock);
70
76
  }
71
77
  hierBlock() {
72
- return undefined;
78
+ return false;
73
79
  }
74
80
  setOrdinal(child, index) {
75
81
  const childCount = this.childCount;
76
- (0, core_utils_1.assert)(childCount >= 1 && childCount <= exports.MaxNodesInBlock, 0x040 /* "Child count is not within [1,8] range!" */);
82
+ (0, internal_1.assert)(childCount >= 1 && childCount <= exports.MaxNodesInBlock, 0x040 /* "Child count is not within [1,8] range!" */);
77
83
  child.ordinal = (0, ordinal_js_1.computeHierarchicalOrdinal)(exports.MaxNodesInBlock, childCount, this.ordinal, index === 0 ? undefined : this.children[index - 1]?.ordinal);
78
84
  }
79
85
  assignChild(child, index, updateOrdinal = true) {
@@ -86,6 +92,19 @@ class MergeBlock extends MergeNode {
86
92
  }
87
93
  }
88
94
  exports.MergeBlock = MergeBlock;
95
+ class HierMergeBlock extends MergeBlock {
96
+ constructor(childCount) {
97
+ super(childCount);
98
+ // eslint-disable-next-line import/no-deprecated
99
+ this.rightmostTiles = (0, properties_js_1.createMap)();
100
+ // eslint-disable-next-line import/no-deprecated
101
+ this.leftmostTiles = (0, properties_js_1.createMap)();
102
+ }
103
+ hierBlock() {
104
+ return true;
105
+ }
106
+ }
107
+ exports.HierMergeBlock = HierMergeBlock;
89
108
  function seqLTE(seq, minOrRefSeq) {
90
109
  return seq !== constants_js_1.UnassignedSequenceNumber && seq <= minOrRefSeq;
91
110
  }
@@ -93,11 +112,13 @@ exports.seqLTE = seqLTE;
93
112
  /**
94
113
  * @alpha
95
114
  */
96
- class BaseSegment extends MergeNode {
115
+ class BaseSegment {
97
116
  constructor() {
98
- super(...arguments);
99
117
  this.clientId = constants_js_1.LocalClientId;
100
118
  this.seq = constants_js_1.UniversalSequenceNumber;
119
+ this.index = 0;
120
+ this.ordinal = "";
121
+ this.cachedLength = 0;
101
122
  this.segmentGroups = new segmentGroupCollection_js_1.SegmentGroupCollection(this);
102
123
  this.trackingCollection = new mergeTreeTracking_js_1.TrackingGroupCollection(this);
103
124
  }
@@ -139,20 +160,20 @@ class BaseSegment extends MergeNode {
139
160
  /***/
140
161
  ack(segmentGroup, opArgs) {
141
162
  const currentSegmentGroup = this.segmentGroups.dequeue();
142
- (0, core_utils_1.assert)(currentSegmentGroup === segmentGroup, 0x043 /* "On ack, unexpected segmentGroup!" */);
163
+ (0, internal_1.assert)(currentSegmentGroup === segmentGroup, 0x043 /* "On ack, unexpected segmentGroup!" */);
143
164
  switch (opArgs.op.type) {
144
165
  case ops_js_1.MergeTreeDeltaType.ANNOTATE:
145
- (0, core_utils_1.assert)(!!this.propertyManager, 0x044 /* "On annotate ack, missing segment property manager!" */);
166
+ (0, internal_1.assert)(!!this.propertyManager, 0x044 /* "On annotate ack, missing segment property manager!" */);
146
167
  this.propertyManager.ackPendingProperties(opArgs.op);
147
168
  return true;
148
169
  case ops_js_1.MergeTreeDeltaType.INSERT:
149
- (0, core_utils_1.assert)(this.seq === constants_js_1.UnassignedSequenceNumber, 0x045 /* "On insert, seq number already assigned!" */);
170
+ (0, internal_1.assert)(this.seq === constants_js_1.UnassignedSequenceNumber, 0x045 /* "On insert, seq number already assigned!" */);
150
171
  this.seq = opArgs.sequencedMessage.sequenceNumber;
151
172
  this.localSeq = undefined;
152
173
  return true;
153
174
  case ops_js_1.MergeTreeDeltaType.REMOVE:
154
175
  const removalInfo = toRemovalInfo(this);
155
- (0, core_utils_1.assert)(removalInfo !== undefined, 0x046 /* "On remove ack, missing removal info!" */);
176
+ (0, internal_1.assert)(removalInfo !== undefined, 0x046 /* "On remove ack, missing removal info!" */);
156
177
  this.localRemovedSeq = undefined;
157
178
  if (removalInfo.removedSeq === constants_js_1.UnassignedSequenceNumber) {
158
179
  removalInfo.removedSeq = opArgs.sequencedMessage.sequenceNumber;
@@ -161,10 +182,10 @@ class BaseSegment extends MergeNode {
161
182
  return false;
162
183
  case ops_js_1.MergeTreeDeltaType.OBLITERATE:
163
184
  const moveInfo = toMoveInfo(this);
164
- (0, core_utils_1.assert)(moveInfo !== undefined, 0x86e /* On obliterate ack, missing move info! */);
185
+ (0, internal_1.assert)(moveInfo !== undefined, 0x86e /* On obliterate ack, missing move info! */);
165
186
  this.localMovedSeq = undefined;
166
187
  const seqIdx = moveInfo.movedSeqs.indexOf(constants_js_1.UnassignedSequenceNumber);
167
- (0, core_utils_1.assert)(seqIdx !== -1, 0x86f /* expected movedSeqs to contain unacked seq */);
188
+ (0, internal_1.assert)(seqIdx !== -1, 0x86f /* expected movedSeqs to contain unacked seq */);
168
189
  moveInfo.movedSeqs[seqIdx] = opArgs.sequencedMessage.sequenceNumber;
169
190
  if (moveInfo.movedSeq === constants_js_1.UnassignedSequenceNumber) {
170
191
  moveInfo.movedSeq = opArgs.sequencedMessage.sequenceNumber;
@@ -225,11 +246,11 @@ class BaseSegment extends MergeNode {
225
246
  // 'this.cachedLength' is used to adjust the offsets of the local refs.
226
247
  localReference_js_1.LocalReferenceCollection.append(this, other);
227
248
  if (this.attribution) {
228
- (0, core_utils_1.assert)(other.attribution !== undefined, 0x4bd /* attribution should be set on appendee */);
249
+ (0, internal_1.assert)(other.attribution !== undefined, 0x4bd /* attribution should be set on appendee */);
229
250
  this.attribution.append(other.attribution);
230
251
  }
231
252
  else {
232
- (0, core_utils_1.assert)(other.attribution === undefined, 0x4be /* attribution should not be set on appendee */);
253
+ (0, internal_1.assert)(other.attribution === undefined, 0x4be /* attribution should not be set on appendee */);
233
254
  }
234
255
  this.cachedLength ?? (this.cachedLength = 0);
235
256
  this.cachedLength += other.cachedLength;
@@ -241,7 +262,7 @@ exports.BaseSegment = BaseSegment;
241
262
  *
242
263
  * @remarks In general, marker ids should be accessed using the inherent method
243
264
  * {@link Marker.getId}. Marker ids should not be updated after creation.
244
- * @internal
265
+ * @alpha
245
266
  */
246
267
  exports.reservedMarkerIdKey = "markerId";
247
268
  /**