@fluidframework/merge-tree 2.11.0 → 2.12.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 (174) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/api-report/merge-tree.legacy.alpha.api.md +50 -19
  3. package/dist/MergeTreeTextHelper.js.map +1 -1
  4. package/dist/attributionPolicy.d.ts.map +1 -1
  5. package/dist/attributionPolicy.js +2 -1
  6. package/dist/attributionPolicy.js.map +1 -1
  7. package/dist/client.js.map +1 -1
  8. package/dist/endOfTreeSegment.d.ts +3 -3
  9. package/dist/endOfTreeSegment.d.ts.map +1 -1
  10. package/dist/endOfTreeSegment.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +3 -2
  14. package/dist/index.js.map +1 -1
  15. package/dist/legacy.d.ts +2 -1
  16. package/dist/localReference.d.ts +1 -0
  17. package/dist/localReference.d.ts.map +1 -1
  18. package/dist/localReference.js +1 -0
  19. package/dist/localReference.js.map +1 -1
  20. package/dist/mergeTree.d.ts.map +1 -1
  21. package/dist/mergeTree.js +19 -2
  22. package/dist/mergeTree.js.map +1 -1
  23. package/dist/mergeTreeNodeWalk.d.ts +5 -5
  24. package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
  25. package/dist/mergeTreeNodeWalk.js.map +1 -1
  26. package/dist/mergeTreeNodes.d.ts +115 -7
  27. package/dist/mergeTreeNodes.d.ts.map +1 -1
  28. package/dist/mergeTreeNodes.js +25 -1
  29. package/dist/mergeTreeNodes.js.map +1 -1
  30. package/dist/partialLengths.d.ts +2 -2
  31. package/dist/partialLengths.d.ts.map +1 -1
  32. package/dist/partialLengths.js +5 -1
  33. package/dist/partialLengths.js.map +1 -1
  34. package/dist/perspective.d.ts +9 -9
  35. package/dist/perspective.d.ts.map +1 -1
  36. package/dist/perspective.js.map +1 -1
  37. package/dist/revertibles.d.ts.map +1 -1
  38. package/dist/revertibles.js +3 -0
  39. package/dist/revertibles.js.map +1 -1
  40. package/dist/snapshotLoader.js.map +1 -1
  41. package/dist/snapshotV1.js.map +1 -1
  42. package/dist/snapshotlegacy.d.ts +2 -2
  43. package/dist/snapshotlegacy.d.ts.map +1 -1
  44. package/dist/snapshotlegacy.js.map +1 -1
  45. package/dist/sortedSegmentSet.d.ts +4 -4
  46. package/dist/sortedSegmentSet.d.ts.map +1 -1
  47. package/dist/sortedSegmentSet.js.map +1 -1
  48. package/dist/test/beastTest.spec.d.ts.map +1 -1
  49. package/dist/test/beastTest.spec.js.map +1 -1
  50. package/dist/test/client.applyMsg.spec.js.map +1 -1
  51. package/dist/test/client.attributionFarm.spec.d.ts.map +1 -1
  52. package/dist/test/client.attributionFarm.spec.js.map +1 -1
  53. package/dist/test/client.getPosition.spec.js.map +1 -1
  54. package/dist/test/client.localReference.spec.js.map +1 -1
  55. package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
  56. package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  57. package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
  58. package/dist/test/mergeTreeOperationRunner.js.map +1 -1
  59. package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  60. package/dist/test/snapshot.utils.d.ts +2 -2
  61. package/dist/test/snapshot.utils.d.ts.map +1 -1
  62. package/dist/test/snapshot.utils.js.map +1 -1
  63. package/dist/test/sortedSegmentSet.spec.js.map +1 -1
  64. package/dist/test/testClient.d.ts +6 -6
  65. package/dist/test/testClient.d.ts.map +1 -1
  66. package/dist/test/testClient.js.map +1 -1
  67. package/dist/test/testClientLogger.js.map +1 -1
  68. package/dist/test/testUtils.d.ts +2 -2
  69. package/dist/test/testUtils.d.ts.map +1 -1
  70. package/dist/test/testUtils.js.map +1 -1
  71. package/dist/test/text.d.ts +2 -2
  72. package/dist/test/text.d.ts.map +1 -1
  73. package/dist/test/text.js.map +1 -1
  74. package/dist/test/tracking.spec.js.map +1 -1
  75. package/dist/test/wordUnitTests.spec.d.ts.map +1 -1
  76. package/dist/test/wordUnitTests.spec.js +3 -1
  77. package/dist/test/wordUnitTests.spec.js.map +1 -1
  78. package/dist/zamboni.js.map +1 -1
  79. package/lib/MergeTreeTextHelper.js.map +1 -1
  80. package/lib/attributionPolicy.d.ts.map +1 -1
  81. package/lib/attributionPolicy.js +2 -1
  82. package/lib/attributionPolicy.js.map +1 -1
  83. package/lib/client.js.map +1 -1
  84. package/lib/endOfTreeSegment.d.ts +3 -3
  85. package/lib/endOfTreeSegment.d.ts.map +1 -1
  86. package/lib/endOfTreeSegment.js.map +1 -1
  87. package/lib/index.d.ts +1 -1
  88. package/lib/index.d.ts.map +1 -1
  89. package/lib/index.js +1 -1
  90. package/lib/index.js.map +1 -1
  91. package/lib/legacy.d.ts +2 -1
  92. package/lib/localReference.d.ts +1 -0
  93. package/lib/localReference.d.ts.map +1 -1
  94. package/lib/localReference.js +1 -0
  95. package/lib/localReference.js.map +1 -1
  96. package/lib/mergeTree.d.ts.map +1 -1
  97. package/lib/mergeTree.js +22 -3
  98. package/lib/mergeTree.js.map +1 -1
  99. package/lib/mergeTreeNodeWalk.d.ts +5 -5
  100. package/lib/mergeTreeNodeWalk.d.ts.map +1 -1
  101. package/lib/mergeTreeNodeWalk.js.map +1 -1
  102. package/lib/mergeTreeNodes.d.ts +115 -7
  103. package/lib/mergeTreeNodes.d.ts.map +1 -1
  104. package/lib/mergeTreeNodes.js +23 -0
  105. package/lib/mergeTreeNodes.js.map +1 -1
  106. package/lib/partialLengths.d.ts +2 -2
  107. package/lib/partialLengths.d.ts.map +1 -1
  108. package/lib/partialLengths.js +5 -1
  109. package/lib/partialLengths.js.map +1 -1
  110. package/lib/perspective.d.ts +9 -9
  111. package/lib/perspective.d.ts.map +1 -1
  112. package/lib/perspective.js.map +1 -1
  113. package/lib/revertibles.d.ts.map +1 -1
  114. package/lib/revertibles.js +4 -1
  115. package/lib/revertibles.js.map +1 -1
  116. package/lib/snapshotLoader.js.map +1 -1
  117. package/lib/snapshotV1.js.map +1 -1
  118. package/lib/snapshotlegacy.d.ts +2 -2
  119. package/lib/snapshotlegacy.d.ts.map +1 -1
  120. package/lib/snapshotlegacy.js.map +1 -1
  121. package/lib/sortedSegmentSet.d.ts +4 -4
  122. package/lib/sortedSegmentSet.d.ts.map +1 -1
  123. package/lib/sortedSegmentSet.js.map +1 -1
  124. package/lib/test/beastTest.spec.d.ts.map +1 -1
  125. package/lib/test/beastTest.spec.js.map +1 -1
  126. package/lib/test/client.applyMsg.spec.js.map +1 -1
  127. package/lib/test/client.attributionFarm.spec.d.ts.map +1 -1
  128. package/lib/test/client.attributionFarm.spec.js.map +1 -1
  129. package/lib/test/client.getPosition.spec.js.map +1 -1
  130. package/lib/test/client.localReference.spec.js.map +1 -1
  131. package/lib/test/client.localReferenceFarm.spec.js.map +1 -1
  132. package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
  133. package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -1
  134. package/lib/test/mergeTreeOperationRunner.js.map +1 -1
  135. package/lib/test/resetPendingSegmentsToOp.spec.js +1 -1
  136. package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
  137. package/lib/test/snapshot.utils.d.ts +2 -2
  138. package/lib/test/snapshot.utils.d.ts.map +1 -1
  139. package/lib/test/snapshot.utils.js.map +1 -1
  140. package/lib/test/sortedSegmentSet.spec.js.map +1 -1
  141. package/lib/test/testClient.d.ts +6 -6
  142. package/lib/test/testClient.d.ts.map +1 -1
  143. package/lib/test/testClient.js +1 -1
  144. package/lib/test/testClient.js.map +1 -1
  145. package/lib/test/testClientLogger.js.map +1 -1
  146. package/lib/test/testUtils.d.ts +2 -2
  147. package/lib/test/testUtils.d.ts.map +1 -1
  148. package/lib/test/testUtils.js.map +1 -1
  149. package/lib/test/text.d.ts +2 -2
  150. package/lib/test/text.d.ts.map +1 -1
  151. package/lib/test/text.js.map +1 -1
  152. package/lib/test/tracking.spec.js.map +1 -1
  153. package/lib/test/wordUnitTests.spec.d.ts.map +1 -1
  154. package/lib/test/wordUnitTests.spec.js +3 -1
  155. package/lib/test/wordUnitTests.spec.js.map +1 -1
  156. package/lib/zamboni.js.map +1 -1
  157. package/package.json +17 -17
  158. package/src/MergeTreeTextHelper.ts +2 -2
  159. package/src/attributionPolicy.ts +3 -1
  160. package/src/client.ts +1 -1
  161. package/src/endOfTreeSegment.ts +6 -3
  162. package/src/index.ts +1 -0
  163. package/src/localReference.ts +1 -0
  164. package/src/mergeTree.ts +19 -0
  165. package/src/mergeTreeNodeWalk.ts +6 -6
  166. package/src/mergeTreeNodes.ts +136 -9
  167. package/src/partialLengths.ts +9 -5
  168. package/src/perspective.ts +11 -11
  169. package/src/revertibles.ts +9 -11
  170. package/src/snapshotLoader.ts +7 -7
  171. package/src/snapshotV1.ts +4 -4
  172. package/src/snapshotlegacy.ts +6 -6
  173. package/src/sortedSegmentSet.ts +8 -9
  174. package/src/zamboni.ts +2 -2
@@ -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 { type MergeBlock, IMergeNode, ISegment } from "./mergeTreeNodes.js";
5
+ import { type ISegmentLeaf, type MergeBlock, IMergeNode } from "./mergeTreeNodes.js";
6
6
  export declare const LeafAction: {
7
7
  readonly Exit: false;
8
8
  };
@@ -24,22 +24,22 @@ 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: MergeBlock, startChild: IMergeNode | undefined, downAction?: (node: IMergeNode) => NodeAction, leafActionOverride?: (seg: ISegment) => LeafAction, upAction?: (block: MergeBlock) => void, forward?: boolean): boolean;
27
+ export declare function depthFirstNodeWalk(startBlock: MergeBlock, startChild: IMergeNode | undefined, downAction?: (node: IMergeNode) => NodeAction, leafActionOverride?: (seg: ISegmentLeaf) => 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.
31
31
  */
32
- export declare function forwardExcursion(startNode: IMergeNode, leafAction: (seg: ISegment) => boolean | undefined): boolean;
32
+ export declare function forwardExcursion(startNode: IMergeNode, leafAction: (seg: ISegmentLeaf) => boolean | undefined): boolean;
33
33
  /**
34
34
  * Visit segments starting from node's left/near/backwards siblings, then up to node's parent.
35
35
  * All segments past `node` are visited, regardless of their visibility.
36
36
  */
37
- export declare function backwardExcursion(startNode: IMergeNode, leafAction: (seg: ISegment) => boolean | undefined): boolean;
37
+ export declare function backwardExcursion(startNode: IMergeNode, leafAction: (seg: ISegmentLeaf) => boolean | undefined): boolean;
38
38
  /**
39
39
  * Walks all segments below the specific start block
40
40
  * @param startBlock - The block to start the walk at
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: MergeBlock, leafAction: (segment: ISegment) => boolean | undefined | void): boolean;
44
+ export declare function walkAllChildSegments(startBlock: MergeBlock, leafAction: (segment: ISegmentLeaf) => 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,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,GACnB,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,GAC5C,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAE7B;;;;;;;;;;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,CAqBT"}
1
+ {"version":3,"file":"mergeTreeNodeWalk.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodeWalk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAErF,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,GACnB,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,GAC5C,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAE7B;;;;;;;;;;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,YAAY,KAAK,UAAU,EACtD,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,YAAY,KAAK,OAAO,GAAG,SAAS,GACpD,OAAO,CAcT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,GAAG,SAAS,GACpD,OAAO,CAeT;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,GAC/D,OAAO,CAqBT"}
@@ -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 { 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 =\n\t| (typeof NodeAction)[keyof typeof NodeAction]\n\t| 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): false | undefined =>\n\t\t\t\t\tancestors.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 ISegmentLeaf, type MergeBlock, IMergeNode } 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 =\n\t| (typeof NodeAction)[keyof typeof NodeAction]\n\t| 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: ISegmentLeaf) => 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 ISegmentLeaf) === 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: ISegmentLeaf) => 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: ISegmentLeaf) => 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: ISegmentLeaf) => 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): false | undefined =>\n\t\t\t\t\tancestors.has(node.parent) ? NodeAction.Exit : NodeAction.Continue,\n\t\tleafAction,\n\t);\n}\n"]}
@@ -16,6 +16,7 @@ import { PropertiesManager } from "./segmentPropertiesManager.js";
16
16
  * Common properties for a node in a merge tree.
17
17
  * @legacy
18
18
  * @alpha
19
+ * @deprecated - This interface will be removed in 2.20 with no replacement.
19
20
  */
20
21
  export interface IMergeNodeCommon {
21
22
  /**
@@ -39,7 +40,7 @@ export interface IMergeNodeCommon {
39
40
  *
40
41
  * @internal
41
42
  */
42
- export type ISegmentInternal = ISegment & {
43
+ export type ISegmentInternal = Omit<ISegment, keyof IRemovalInfo | keyof IMoveInfo> & Partial<IMergeNodeCommon> & Partial<IRemovalInfo> & Partial<IMoveInfo> & {
43
44
  localRefs?: LocalReferenceCollection;
44
45
  };
45
46
  /**
@@ -66,6 +67,7 @@ export type IMergeNode = MergeBlock | ISegmentLeaf;
66
67
  * Contains removal information associated to an {@link ISegment}.
67
68
  * @legacy
68
69
  * @alpha
70
+ * @deprecated - This interface will be removed in 2.20 with no replacement.
69
71
  */
70
72
  export interface IRemovalInfo {
71
73
  /**
@@ -98,6 +100,7 @@ export declare function toRemovalInfo(maybe: Partial<IRemovalInfo> | undefined):
98
100
  * in the future, when moves _are_ supported.
99
101
  * @legacy
100
102
  * @alpha
103
+ * @deprecated - This interface will be removed in 2.20 with no replacement.
101
104
  */
102
105
  export interface IMoveInfo {
103
106
  /**
@@ -158,7 +161,7 @@ export declare function toMoveInfo(maybe: Partial<IMoveInfo> | undefined): IMove
158
161
  * @legacy
159
162
  * @alpha
160
163
  */
161
- export interface ISegment extends IMergeNodeCommon, Partial<IRemovalInfo>, Partial<IMoveInfo> {
164
+ export interface ISegment {
162
165
  readonly type: string;
163
166
  readonly trackingCollection: TrackingGroupCollection;
164
167
  /**
@@ -169,6 +172,7 @@ export interface ISegment extends IMergeNodeCommon, Partial<IRemovalInfo>, Parti
169
172
  * after the tree. These segments cannot be referenced by regular operations
170
173
  * and exist primarily as a bucket for local references to slide onto during
171
174
  * deletion of regular segments.
175
+ * @deprecated - This property will be removed in 2.20 with no replacement.
172
176
  */
173
177
  readonly endpointType?: "start" | "end";
174
178
  /**
@@ -198,6 +202,7 @@ export interface ISegment extends IMergeNodeCommon, Partial<IRemovalInfo>, Parti
198
202
  *
199
203
  * @privateRemarks
200
204
  * See {@link CollaborationWindow.localSeq} for more information on the semantics of localSeq.
205
+ * @deprecated - This property will be removed in 2.20 with no replacement.
201
206
  */
202
207
  localSeq?: number;
203
208
  /**
@@ -209,19 +214,23 @@ export interface ISegment extends IMergeNodeCommon, Partial<IRemovalInfo>, Parti
209
214
  *
210
215
  * @privateRemarks
211
216
  * See {@link CollaborationWindow.localSeq} for more information on the semantics of localSeq.
217
+ * @deprecated - This property will be removed in 2.20 with no replacement.
212
218
  */
213
219
  localRemovedSeq?: number;
214
220
  /**
215
221
  * Seq at which this segment was inserted.
216
222
  * If undefined, it is assumed the segment was inserted prior to the collab window's minimum sequence number.
223
+ * @deprecated - This property will be removed in 2.20 with no replacement.
217
224
  */
218
225
  seq?: number;
219
226
  /**
220
227
  * Short clientId for the client that inserted this segment.
228
+ * @deprecated - This property will be removed in 2.20 with no replacement.
221
229
  */
222
230
  clientId: number;
223
231
  /**
224
232
  * Local references added to this segment.
233
+ * @deprecated - This property will be removed in 2.20 with no replacement.
225
234
  */
226
235
  localRefs?: LocalReferenceCollection;
227
236
  /**
@@ -233,7 +242,64 @@ export interface ISegment extends IMergeNodeCommon, Partial<IRemovalInfo>, Parti
233
242
  append(segment: ISegment): void;
234
243
  splitAt(pos: number): ISegment | undefined;
235
244
  toJSONObject(): any;
245
+ isLeaf(): this is ISegment;
246
+ /**
247
+ * {@inheritDoc @fluidframework/merge-tree#IMergeNodeCommon.index}
248
+ * @deprecated - This property will be removed in 2.20 with no replacement.
249
+ */
250
+ index: number;
251
+ /**
252
+ * {@inheritDoc @fluidframework/merge-tree#IMergeNodeCommon.ordinal}
253
+ * @deprecated - This property will be removed in 2.20 with no replacement.
254
+ */
255
+ ordinal: string;
256
+ /**
257
+ * {@inheritDoc @fluidframework/merge-tree#IRemovalInfo.removedSeq}
258
+ * @deprecated - This property will be removed in 2.20 with no replacement.
259
+ */
260
+ removedSeq?: number;
261
+ /**
262
+ * {@inheritDoc @fluidframework/merge-tree#IRemovalInfo.removedClientIds}
263
+ * @deprecated - This property will be removed in 2.20 with no replacement.
264
+ */
265
+ removedClientIds?: number[];
266
+ /**
267
+ * {@inheritDoc @fluidframework/merge-tree#IMoveInfo.localMovedSeq}
268
+ * @deprecated - This property will be removed in 2.20 with no replacement.
269
+ */
270
+ localMovedSeq?: number;
271
+ /**
272
+ * {@inheritDoc @fluidframework/merge-tree#IMoveInfo.movedSeq}
273
+ * @deprecated - This property will be removed in 2.20 with no replacement.
274
+ */
275
+ movedSeq?: number;
276
+ /**
277
+ * {@inheritDoc @fluidframework/merge-tree#IMoveInfo.movedSeqs}
278
+ * @deprecated - This property will be removed in 2.20 with no replacement.
279
+ */
280
+ movedSeqs?: number[];
281
+ /**
282
+ * {@inheritDoc @fluidframework/merge-tree#IMoveInfo.moveDst}
283
+ * @deprecated - This property will be removed in 2.20 with no replacement.
284
+ */
285
+ moveDst?: ReferencePosition;
286
+ /**
287
+ * {@inheritDoc @fluidframework/merge-tree#IMoveInfo.movedClientIds}
288
+ * @deprecated - This property will be removed in 2.20 with no replacement.
289
+ */
290
+ movedClientIds?: number[];
291
+ /**
292
+ * {@inheritDoc @fluidframework/merge-tree#IMoveInfo.wasMovedOnInsert}
293
+ * @deprecated - This property will be removed in 2.20 with no replacement.
294
+ */
295
+ wasMovedOnInsert?: boolean;
236
296
  }
297
+ /**
298
+ * Determine if a segment has been removed.
299
+ * @legacy
300
+ * @alpha
301
+ */
302
+ export declare function segmentIsRemoved(segment: ISegment): boolean;
237
303
  /**
238
304
  * @internal
239
305
  */
@@ -251,8 +317,8 @@ export interface ISegmentAction<TClientData> {
251
317
  * @internal
252
318
  */
253
319
  export interface ISegmentChanges {
254
- next?: ISegment;
255
- replaceCurrent?: ISegment;
320
+ next?: ISegmentInternal;
321
+ replaceCurrent?: ISegmentInternal;
256
322
  }
257
323
  /**
258
324
  * @internal
@@ -270,8 +336,8 @@ export interface NodeAction<TClientData> {
270
336
  * @internal
271
337
  */
272
338
  export interface InsertContext {
273
- candidateSegment?: ISegment;
274
- leaf: (segment: ISegment | undefined, pos: number, ic: InsertContext) => ISegmentChanges;
339
+ candidateSegment?: ISegmentInternal;
340
+ leaf: (segment: ISegmentInternal | undefined, pos: number, ic: InsertContext) => ISegmentChanges;
275
341
  continuePredicate?: (continueFromBlock: MergeBlock) => boolean;
276
342
  }
277
343
  /**
@@ -337,7 +403,7 @@ export declare class MergeBlock implements IMergeNodeCommon {
337
403
  * with a certain label before a given position
338
404
  */
339
405
  leftmostTiles: Readonly<MapLike<Marker>>;
340
- isLeaf(): this is ISegment;
406
+ isLeaf(): this is ISegmentInternal;
341
407
  /**
342
408
  * Supports querying the total length of all descendants of this IMergeBlock from the perspective of any
343
409
  * (clientId, seq) within the collab window.
@@ -357,25 +423,67 @@ export declare function seqLTE(seq: number, minOrRefSeq: number): boolean;
357
423
  * @alpha
358
424
  */
359
425
  export declare abstract class BaseSegment implements ISegment {
426
+ /**
427
+ * @deprecated - This property will be removed in 2.20 with no replacement.
428
+ */
360
429
  clientId: number;
430
+ /**
431
+ * @deprecated - This property will be removed in 2.20 with no replacement.
432
+ */
361
433
  seq: number;
434
+ /**
435
+ * @deprecated - This property will be removed in 2.20 with no replacement.
436
+ */
362
437
  removedSeq?: number;
438
+ /**
439
+ * @deprecated - This property will be removed in 2.20 with no replacement.
440
+ */
363
441
  removedClientIds?: number[];
442
+ /**
443
+ * @deprecated - This property will be removed in 2.20 with no replacement.
444
+ */
364
445
  movedSeq?: number;
446
+ /**
447
+ * @deprecated - This property will be removed in 2.20 with no replacement.
448
+ */
365
449
  movedSeqs?: number[];
450
+ /**
451
+ * @deprecated - This property will be removed in 2.20 with no replacement.
452
+ */
366
453
  movedClientIds?: number[];
454
+ /**
455
+ * @deprecated - This property will be removed in 2.20 with no replacement.
456
+ */
367
457
  wasMovedOnInsert?: boolean | undefined;
458
+ /**
459
+ * @deprecated - This property will be removed in 2.20 with no replacement.
460
+ */
368
461
  index: number;
462
+ /**
463
+ * @deprecated - This property will be removed in 2.20 with no replacement.
464
+ */
369
465
  ordinal: string;
370
466
  cachedLength: number;
371
467
  readonly trackingCollection: TrackingGroupCollection;
372
468
  /***/
373
469
  attribution?: IAttributionCollection<AttributionKey>;
374
470
  properties?: PropertySet;
471
+ /**
472
+ * @deprecated - This property will be removed in 2.20 with no replacement.
473
+ */
375
474
  localRefs?: LocalReferenceCollection;
376
475
  abstract readonly type: string;
476
+ /**
477
+ * @deprecated - This property will be removed in 2.20 with no replacement.
478
+ */
377
479
  localSeq?: number;
480
+ /**
481
+ * @deprecated - This property will be removed in 2.20 with no replacement.
482
+ */
378
483
  localRemovedSeq?: number;
484
+ /**
485
+ * @deprecated - This property will be removed in 2.20 with no replacement.
486
+ */
379
487
  localMovedSeq?: number;
380
488
  constructor(properties?: PropertySet);
381
489
  hasProperty(key: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"mergeTreeNodes.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mergeTreeNodes.d.ts","sourceRoot":"","sources":["../src/mergeTreeNodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAE9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAOpE,OAAO,EAAE,wBAAwB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAoB,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EACN,iBAAiB,EAGjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;GAKG;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;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,GAClF,OAAO,CAAC,gBAAgB,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,GACrB,OAAO,CAAC,SAAS,CAAC,GAAG;IAEpB,SAAS,CAAC,EAAE,wBAAwB,CAAC;CACrC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC7C,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAEvC,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,cAAc,CAAC;CAC1C,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAEnD;;;;;GAKG;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;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,GACtC,YAAY,GAAG,SAAS,CAQ1B;AAED;;;;;;;;;GASG;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;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;IACrD;;;;;;;;;OASG;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;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IAEH,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,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;IAG3C,YAAY,IAAI,GAAG,CAAC;IACpB,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC;IAE3B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAG3D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAErC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;GAGG;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,gBAAgB,CAAC;IACxB,cAAc,CAAC,EAAE,gBAAgB,CAAC;CAClC;AACD;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,WAAW;IAEvC,CACC,KAAK,EAAE,UAAU,EACjB,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,gBAAgB,CAAC;IACpC,IAAI,EAAE,CACL,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,aAAa,KACb,eAAe,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAU,KAAK,OAAO,CAAC;CAC/D;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;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,GAAG,EAAE,sBAAsB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAC1E,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC;;GAEG;AACH,qBAAa,UAAW,YAAW,gBAAgB;IAmCxB,UAAU,EAAE,MAAM;IAlCrC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,MAAM,CAAK;IAClB,OAAO,EAAE,MAAM,CAAM;IACrB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAK;IAE5C;;;;OAIG;IACI,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD;;;;OAIG;IACI,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhD,MAAM,IAAI,IAAI,IAAI,gBAAgB;IAIlC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;gBAEd,UAAU,EAAE,MAAM;IAUrC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAclD,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,UAAO,GAAG,IAAI;CAQhF;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,8BAAsB,WAAY,YAAW,QAAQ;IACpD;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAiB;IACxC;;OAEG;IACI,GAAG,EAAE,MAAM,CAA2B;IAC7C;;OAEG;IACI,UAAU,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACI,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;OAEG;IACI,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;OAEG;IACI,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACI,KAAK,EAAE,MAAM,CAAK;IACzB;;OAEG;IACI,OAAO,EAAE,MAAM,CAAM;IACrB,YAAY,EAAE,MAAM,CAAK;IAEhC,SAAgB,kBAAkB,EAAE,uBAAuB,CAEzD;IACF,KAAK;IACE,WAAW,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAErD,UAAU,CAAC,EAAE,WAAW,CAAC;IAChC;;OAEG;IAEI,SAAS,CAAC,EAAE,wBAAwB,CAAC;IAC5C,kBAAyB,IAAI,EAAE,MAAM,CAAC;IACtC;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACI,eAAe,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACI,aAAa,CAAC,EAAE,MAAM,CAAC;gBAEX,UAAU,CAAC,EAAE,WAAW;IAMpC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,MAAM,IAAI,IAAI,IAAI,QAAQ;IAIjC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAe/B,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAI5C,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;aAQtC,YAAY,IAAI,GAAG;IAE5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;aA2CjC,KAAK,IAAI,QAAQ;IAE1B,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAsBpC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAC7E;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD,MAAM,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,MAAO,SAAQ,WAAY,YAAW,iBAAiB,EAAE,QAAQ;IAYrE,OAAO,EAAE,aAAa;IAX9B,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,GAAG,MAAM;gBAK/D,OAAO,EAAE,aAAa,EAC7B,KAAK,CAAC,EAAE,WAAW;IAMpB,YAAY,IAAI,kBAAkB;IAMlC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS;IAO7D,KAAK,IAAI,MAAM;IAMf,UAAU,IAAI,MAAM;IAIpB,SAAS,IAAI,MAAM;IAInB,aAAa,IAAI,WAAW,GAAG,SAAS;IAIxC,KAAK,IAAI,MAAM,GAAG,SAAS;IAI3B,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAItD,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO;IAIrC,MAAM,IAAI,IAAI;CAGd;AAED;;;;;GAKG;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,GAAG,IAAI;CAMtC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,KAAG,MAAe,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,cAAc,MAAO,MAAM,KAAK,MAAM,KAAG,MAA4B,CAAC;AAEnF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmC1D"}
@@ -4,10 +4,11 @@
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.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.MergeBlock = exports.MaxNodesInBlock = exports.segmentIsRemoved = exports.toMoveInfo = exports.toRemovalInfo = void 0;
8
8
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
9
9
  const internal_1 = require("@fluidframework/core-utils/internal");
10
10
  const constants_js_1 = require("./constants.js");
11
+ // eslint-disable-next-line import/no-deprecated
11
12
  const localReference_js_1 = require("./localReference.js");
12
13
  const mergeTreeTracking_js_1 = require("./mergeTreeTracking.js");
13
14
  const ops_js_1 = require("./ops.js");
@@ -36,6 +37,16 @@ function toMoveInfo(maybe) {
36
37
  maybe?.wasMovedOnInsert === undefined, 0x86d /* movedClientIds, movedSeq, wasMovedOnInsert, and movedSeqs should all be either set or not set */);
37
38
  }
38
39
  exports.toMoveInfo = toMoveInfo;
40
+ /**
41
+ * Determine if a segment has been removed.
42
+ * @legacy
43
+ * @alpha
44
+ */
45
+ function segmentIsRemoved(segment) {
46
+ const leaf = segment;
47
+ return leaf.removedSeq !== undefined;
48
+ }
49
+ exports.segmentIsRemoved = segmentIsRemoved;
39
50
  /**
40
51
  * Note that the actual branching factor of the MergeTree is `MaxNodesInBlock - 1`. This is because
41
52
  * the MergeTree always inserts first, then checks for overflow and splits if the child count equals
@@ -89,9 +100,21 @@ exports.seqLTE = seqLTE;
89
100
  */
90
101
  class BaseSegment {
91
102
  constructor(properties) {
103
+ /**
104
+ * @deprecated - This property will be removed in 2.20 with no replacement.
105
+ */
92
106
  this.clientId = constants_js_1.LocalClientId;
107
+ /**
108
+ * @deprecated - This property will be removed in 2.20 with no replacement.
109
+ */
93
110
  this.seq = constants_js_1.UniversalSequenceNumber;
111
+ /**
112
+ * @deprecated - This property will be removed in 2.20 with no replacement.
113
+ */
94
114
  this.index = 0;
115
+ /**
116
+ * @deprecated - This property will be removed in 2.20 with no replacement.
117
+ */
95
118
  this.ordinal = "";
96
119
  this.cachedLength = 0;
97
120
  this.trackingCollection = new mergeTreeTracking_js_1.TrackingGroupCollection(this);
@@ -165,6 +188,7 @@ class BaseSegment {
165
188
  append(other) {
166
189
  // Note: Must call 'appendLocalRefs' before modifying this segment's length as
167
190
  // 'this.cachedLength' is used to adjust the offsets of the local refs.
191
+ // eslint-disable-next-line import/no-deprecated
168
192
  localReference_js_1.LocalReferenceCollection.append(this, other);
169
193
  if (this.attribution) {
170
194
  (0, internal_1.assert)(other.attribution !== undefined, 0x4bd /* attribution should be set on appendee */);