@fluidframework/merge-tree 2.0.0-internal.8.0.0 → 2.0.0-rc.1.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.
- package/CHANGELOG.md +38 -0
- package/README.md +0 -6
- package/api-extractor-esm.json +17 -0
- package/api-extractor-lint.json +1 -10
- package/api-extractor.json +0 -4
- package/api-report/merge-tree.api.md +4 -9
- package/dist/client.d.ts +0 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +0 -7
- package/dist/client.js.map +1 -1
- package/dist/merge-tree-alpha.d.ts +27 -12
- package/dist/merge-tree-beta.d.ts +0 -16
- package/dist/merge-tree-public.d.ts +0 -16
- package/dist/merge-tree-untrimmed.d.ts +5 -29
- package/dist/mergeTree.d.ts +0 -17
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +0 -130
- package/dist/mergeTree.js.map +1 -1
- package/dist/ops.d.ts +1 -1
- package/dist/ops.js +1 -1
- package/dist/ops.js.map +1 -1
- package/dist/revertibles.d.ts +4 -4
- package/dist/revertibles.js +3 -3
- package/dist/revertibles.js.map +1 -1
- package/dist/test/Insertion.perf.spec.d.ts +6 -0
- package/dist/test/Insertion.perf.spec.d.ts.map +1 -0
- package/dist/test/Insertion.perf.spec.js +113 -0
- package/dist/test/Insertion.perf.spec.js.map +1 -0
- package/dist/test/PartialLengths.perf.spec.d.ts +6 -0
- package/dist/test/PartialLengths.perf.spec.d.ts.map +1 -0
- package/dist/test/PartialLengths.perf.spec.js +67 -0
- package/dist/test/PartialLengths.perf.spec.js.map +1 -0
- package/dist/test/Removal.perf.spec.d.ts +6 -0
- package/dist/test/Removal.perf.spec.d.ts.map +1 -0
- package/dist/test/Removal.perf.spec.js +166 -0
- package/dist/test/Removal.perf.spec.js.map +1 -0
- package/dist/test/Snapshot.perf.spec.d.ts +6 -0
- package/dist/test/Snapshot.perf.spec.d.ts.map +1 -0
- package/dist/test/Snapshot.perf.spec.js +33 -0
- package/dist/test/Snapshot.perf.spec.js.map +1 -0
- package/dist/test/attributionCollection.perf.spec.d.ts +6 -0
- package/dist/test/attributionCollection.perf.spec.d.ts.map +1 -0
- package/dist/test/attributionCollection.perf.spec.js +231 -0
- package/dist/test/attributionCollection.perf.spec.js.map +1 -0
- package/dist/test/attributionCollection.spec.d.ts +6 -0
- package/dist/test/attributionCollection.spec.d.ts.map +1 -0
- package/dist/test/attributionCollection.spec.js +486 -0
- package/dist/test/attributionCollection.spec.js.map +1 -0
- package/dist/test/attributionPolicy.spec.d.ts +6 -0
- package/dist/test/attributionPolicy.spec.d.ts.map +1 -0
- package/dist/test/attributionPolicy.spec.js +189 -0
- package/dist/test/attributionPolicy.spec.js.map +1 -0
- package/dist/test/beastTest.d.ts +54 -0
- package/dist/test/beastTest.d.ts.map +1 -0
- package/dist/test/beastTest.js +1333 -0
- package/dist/test/beastTest.js.map +1 -0
- package/dist/test/client.annotateMarker.spec.d.ts +6 -0
- package/dist/test/client.annotateMarker.spec.d.ts.map +1 -0
- package/dist/test/client.annotateMarker.spec.js +45 -0
- package/dist/test/client.annotateMarker.spec.js.map +1 -0
- package/dist/test/client.apis.d.ts +7 -0
- package/dist/test/client.apis.d.ts.map +1 -0
- package/dist/test/client.apis.js +72 -0
- package/dist/test/client.apis.js.map +1 -0
- package/dist/test/client.applyMsg.spec.d.ts +6 -0
- package/dist/test/client.applyMsg.spec.d.ts.map +1 -0
- package/dist/test/client.applyMsg.spec.js +500 -0
- package/dist/test/client.applyMsg.spec.js.map +1 -0
- package/dist/test/client.applyStashedOpFarm.spec.d.ts +12 -0
- package/dist/test/client.applyStashedOpFarm.spec.d.ts.map +1 -0
- package/dist/test/client.applyStashedOpFarm.spec.js +144 -0
- package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -0
- package/dist/test/client.attributionFarm.spec.d.ts +7 -0
- package/dist/test/client.attributionFarm.spec.d.ts.map +1 -0
- package/dist/test/client.attributionFarm.spec.js +96 -0
- package/dist/test/client.attributionFarm.spec.js.map +1 -0
- package/dist/test/client.conflictFarm.spec.d.ts +15 -0
- package/dist/test/client.conflictFarm.spec.d.ts.map +1 -0
- package/dist/test/client.conflictFarm.spec.js +88 -0
- package/dist/test/client.conflictFarm.spec.js.map +1 -0
- package/dist/test/client.getPosition.spec.d.ts +6 -0
- package/dist/test/client.getPosition.spec.d.ts.map +1 -0
- package/dist/test/client.getPosition.spec.js +54 -0
- package/dist/test/client.getPosition.spec.js.map +1 -0
- package/dist/test/client.localReference.spec.d.ts +6 -0
- package/dist/test/client.localReference.spec.d.ts.map +1 -0
- package/dist/test/client.localReference.spec.js +439 -0
- package/dist/test/client.localReference.spec.js.map +1 -0
- package/dist/test/client.localReferenceFarm.spec.d.ts +6 -0
- package/dist/test/client.localReferenceFarm.spec.d.ts.map +1 -0
- package/dist/test/client.localReferenceFarm.spec.js +88 -0
- package/dist/test/client.localReferenceFarm.spec.js.map +1 -0
- package/dist/test/client.rebasePosition.spec.d.ts +6 -0
- package/dist/test/client.rebasePosition.spec.d.ts.map +1 -0
- package/dist/test/client.rebasePosition.spec.js +102 -0
- package/dist/test/client.rebasePosition.spec.js.map +1 -0
- package/dist/test/client.reconnectFarm.spec.d.ts +12 -0
- package/dist/test/client.reconnectFarm.spec.d.ts.map +1 -0
- package/dist/test/client.reconnectFarm.spec.js +91 -0
- package/dist/test/client.reconnectFarm.spec.js.map +1 -0
- package/dist/test/client.replay.spec.d.ts +6 -0
- package/dist/test/client.replay.spec.d.ts.map +1 -0
- package/dist/test/client.replay.spec.js +85 -0
- package/dist/test/client.replay.spec.js.map +1 -0
- package/dist/test/client.rollback.spec.d.ts +6 -0
- package/dist/test/client.rollback.spec.d.ts.map +1 -0
- package/dist/test/client.rollback.spec.js +453 -0
- package/dist/test/client.rollback.spec.js.map +1 -0
- package/dist/test/client.rollbackFarm.spec.d.ts +6 -0
- package/dist/test/client.rollbackFarm.spec.d.ts.map +1 -0
- package/dist/test/client.rollbackFarm.spec.js +48 -0
- package/dist/test/client.rollbackFarm.spec.js.map +1 -0
- package/dist/test/client.searchForMarker.spec.d.ts +6 -0
- package/dist/test/client.searchForMarker.spec.d.ts.map +1 -0
- package/dist/test/client.searchForMarker.spec.js +446 -0
- package/dist/test/client.searchForMarker.spec.js.map +1 -0
- package/dist/test/client.walkSegments.spec.d.ts +6 -0
- package/dist/test/client.walkSegments.spec.d.ts.map +1 -0
- package/dist/test/client.walkSegments.spec.js +54 -0
- package/dist/test/client.walkSegments.spec.js.map +1 -0
- package/dist/test/collections.list.spec.d.ts +6 -0
- package/dist/test/collections.list.spec.d.ts.map +1 -0
- package/dist/test/collections.list.spec.js +84 -0
- package/dist/test/collections.list.spec.js.map +1 -0
- package/dist/test/createInsertOnlyAttributionPolicy.spec.d.ts +6 -0
- package/dist/test/createInsertOnlyAttributionPolicy.spec.d.ts.map +1 -0
- package/dist/test/createInsertOnlyAttributionPolicy.spec.js +35 -0
- package/dist/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -0
- package/dist/test/index.d.ts +13 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +88 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/mergeTree.annotate.deltaCallback.spec.d.ts +6 -0
- package/dist/test/mergeTree.annotate.deltaCallback.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js +142 -0
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -0
- package/dist/test/mergeTree.annotate.spec.d.ts +6 -0
- package/dist/test/mergeTree.annotate.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.annotate.spec.js +448 -0
- package/dist/test/mergeTree.annotate.spec.js.map +1 -0
- package/dist/test/mergeTree.insert.deltaCallback.spec.d.ts +6 -0
- package/dist/test/mergeTree.insert.deltaCallback.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.insert.deltaCallback.spec.js +126 -0
- package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -0
- package/dist/test/mergeTree.insertingWalk.spec.d.ts +6 -0
- package/dist/test/mergeTree.insertingWalk.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.insertingWalk.spec.js +279 -0
- package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -0
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts +6 -0
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +178 -0
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -0
- package/dist/test/mergeTree.markRangeRemoved.spec.d.ts +6 -0
- package/dist/test/mergeTree.markRangeRemoved.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.markRangeRemoved.spec.js +130 -0
- package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -0
- package/dist/test/mergeTree.walk.spec.d.ts +6 -0
- package/dist/test/mergeTree.walk.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.walk.spec.js +63 -0
- package/dist/test/mergeTree.walk.spec.js.map +1 -0
- package/dist/test/mergeTree.zamboni.spec.d.ts +6 -0
- package/dist/test/mergeTree.zamboni.spec.d.ts.map +1 -0
- package/dist/test/mergeTree.zamboni.spec.js +52 -0
- package/dist/test/mergeTree.zamboni.spec.js.map +1 -0
- package/dist/test/mergeTreeOperationRunner.d.ts +63 -0
- package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -0
- package/dist/test/mergeTreeOperationRunner.js +245 -0
- package/dist/test/mergeTreeOperationRunner.js.map +1 -0
- package/dist/test/mergeTreeOperationRunner.spec.d.ts +6 -0
- package/dist/test/mergeTreeOperationRunner.spec.d.ts.map +1 -0
- package/dist/test/mergeTreeOperationRunner.spec.js +156 -0
- package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -0
- package/dist/test/obliterate.concurrent.spec.d.ts +6 -0
- package/dist/test/obliterate.concurrent.spec.d.ts.map +1 -0
- package/dist/test/obliterate.concurrent.spec.js +1446 -0
- package/dist/test/obliterate.concurrent.spec.js.map +1 -0
- package/dist/test/obliterate.partialLength.spec.d.ts +6 -0
- package/dist/test/obliterate.partialLength.spec.d.ts.map +1 -0
- package/dist/test/obliterate.partialLength.spec.js +279 -0
- package/dist/test/obliterate.partialLength.spec.js.map +1 -0
- package/dist/test/obliterate.reconnect.spec.d.ts +6 -0
- package/dist/test/obliterate.reconnect.spec.d.ts.map +1 -0
- package/dist/test/obliterate.reconnect.spec.js +164 -0
- package/dist/test/obliterate.reconnect.spec.js.map +1 -0
- package/dist/test/obliterate.spec.d.ts +6 -0
- package/dist/test/obliterate.spec.d.ts.map +1 -0
- package/dist/test/obliterate.spec.js +162 -0
- package/dist/test/obliterate.spec.js.map +1 -0
- package/dist/test/ordinal.spec.d.ts +2 -0
- package/dist/test/ordinal.spec.d.ts.map +1 -0
- package/dist/test/ordinal.spec.js +43 -0
- package/dist/test/ordinal.spec.js.map +1 -0
- package/dist/test/partialLength.spec.d.ts +6 -0
- package/dist/test/partialLength.spec.d.ts.map +1 -0
- package/dist/test/partialLength.spec.js +282 -0
- package/dist/test/partialLength.spec.js.map +1 -0
- package/dist/test/properties.spec.d.ts +6 -0
- package/dist/test/properties.spec.d.ts.map +1 -0
- package/dist/test/properties.spec.js +55 -0
- package/dist/test/properties.spec.js.map +1 -0
- package/dist/test/reconnectHelper.d.ts +48 -0
- package/dist/test/reconnectHelper.d.ts.map +1 -0
- package/dist/test/reconnectHelper.js +86 -0
- package/dist/test/reconnectHelper.js.map +1 -0
- package/dist/test/resetPendingSegmentsToOp.spec.d.ts +6 -0
- package/dist/test/resetPendingSegmentsToOp.spec.d.ts.map +1 -0
- package/dist/test/resetPendingSegmentsToOp.spec.js +218 -0
- package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -0
- package/dist/test/revertibleFarm.spec.d.ts +6 -0
- package/dist/test/revertibleFarm.spec.d.ts.map +1 -0
- package/dist/test/revertibleFarm.spec.js +124 -0
- package/dist/test/revertibleFarm.spec.js.map +1 -0
- package/dist/test/revertibles.spec.d.ts +17 -0
- package/dist/test/revertibles.spec.d.ts.map +1 -0
- package/dist/test/revertibles.spec.js +385 -0
- package/dist/test/revertibles.spec.js.map +1 -0
- package/dist/test/segmentGroupCollection.spec.d.ts +6 -0
- package/dist/test/segmentGroupCollection.spec.d.ts.map +1 -0
- package/dist/test/segmentGroupCollection.spec.js +60 -0
- package/dist/test/segmentGroupCollection.spec.js.map +1 -0
- package/dist/test/snapshot.spec.d.ts +6 -0
- package/dist/test/snapshot.spec.d.ts.map +1 -0
- package/dist/test/snapshot.spec.js +178 -0
- package/dist/test/snapshot.spec.js.map +1 -0
- package/dist/test/snapshot.utils.d.ts +33 -0
- package/dist/test/snapshot.utils.d.ts.map +1 -0
- package/dist/test/snapshot.utils.js +109 -0
- package/dist/test/snapshot.utils.js.map +1 -0
- package/dist/test/snapshotlegacy.spec.d.ts +6 -0
- package/dist/test/snapshotlegacy.spec.d.ts.map +1 -0
- package/dist/test/snapshotlegacy.spec.js +139 -0
- package/dist/test/snapshotlegacy.spec.js.map +1 -0
- package/dist/test/sortedSegmentSet.spec.d.ts +6 -0
- package/dist/test/sortedSegmentSet.spec.d.ts.map +1 -0
- package/dist/test/sortedSegmentSet.spec.js +95 -0
- package/dist/test/sortedSegmentSet.spec.js.map +1 -0
- package/dist/test/testClient.d.ts +119 -0
- package/dist/test/testClient.d.ts.map +1 -0
- package/dist/test/testClient.js +439 -0
- package/dist/test/testClient.js.map +1 -0
- package/dist/test/testClientLogger.d.ts +44 -0
- package/dist/test/testClientLogger.d.ts.map +1 -0
- package/dist/test/testClientLogger.js +287 -0
- package/dist/test/testClientLogger.js.map +1 -0
- package/dist/test/testSerializer.d.ts +18 -0
- package/dist/test/testSerializer.d.ts.map +1 -0
- package/dist/test/testSerializer.js +33 -0
- package/dist/test/testSerializer.js.map +1 -0
- package/dist/test/testServer.d.ts +36 -0
- package/dist/test/testServer.d.ts.map +1 -0
- package/dist/test/testServer.js +138 -0
- package/dist/test/testServer.js.map +1 -0
- package/dist/test/testUtils.d.ts +69 -0
- package/dist/test/testUtils.d.ts.map +1 -0
- package/dist/test/testUtils.js +149 -0
- package/dist/test/testUtils.js.map +1 -0
- package/dist/test/text.d.ts +9 -0
- package/dist/test/text.d.ts.map +1 -0
- package/dist/test/text.js +76 -0
- package/dist/test/text.js.map +1 -0
- package/dist/test/tracking.spec.d.ts +6 -0
- package/dist/test/tracking.spec.d.ts.map +1 -0
- package/dist/test/tracking.spec.js +120 -0
- package/dist/test/tracking.spec.js.map +1 -0
- package/dist/test/wordUnitTests.d.ts +6 -0
- package/dist/test/wordUnitTests.d.ts.map +1 -0
- package/dist/test/wordUnitTests.js +172 -0
- package/dist/test/wordUnitTests.js.map +1 -0
- package/lib/{MergeTreeTextHelper.d.ts → MergeTreeTextHelper.d.mts} +3 -3
- package/lib/MergeTreeTextHelper.d.mts.map +1 -0
- package/lib/{MergeTreeTextHelper.js → MergeTreeTextHelper.mjs} +5 -10
- package/lib/MergeTreeTextHelper.mjs.map +1 -0
- package/lib/{attributionCollection.d.ts → attributionCollection.d.mts} +2 -2
- package/lib/attributionCollection.d.mts.map +1 -0
- package/lib/{attributionCollection.js → attributionCollection.mjs} +9 -14
- package/lib/attributionCollection.mjs.map +1 -0
- package/lib/{attributionPolicy.d.ts → attributionPolicy.d.mts} +2 -2
- package/lib/attributionPolicy.d.mts.map +1 -0
- package/lib/{attributionPolicy.js → attributionPolicy.mjs} +21 -27
- package/lib/attributionPolicy.mjs.map +1 -0
- package/lib/{client.d.ts → client.d.mts} +9 -16
- package/lib/client.d.mts.map +1 -0
- package/lib/{client.js → client.mjs} +101 -110
- package/lib/client.mjs.map +1 -0
- package/lib/collections/{index.d.ts → index.d.mts} +3 -3
- package/lib/collections/index.d.mts.map +1 -0
- package/lib/collections/index.mjs +7 -0
- package/lib/collections/index.mjs.map +1 -0
- package/lib/collections/{list.d.ts → list.d.mts} +1 -1
- package/lib/collections/list.d.mts.map +1 -0
- package/lib/collections/{list.js → list.mjs} +6 -11
- package/lib/collections/list.mjs.map +1 -0
- package/lib/collections/{rbTree.d.ts → rbTree.d.mts} +1 -1
- package/lib/collections/rbTree.d.mts.map +1 -0
- package/lib/collections/{rbTree.js → rbTree.mjs} +16 -20
- package/lib/collections/rbTree.mjs.map +1 -0
- package/lib/{constants.d.ts → constants.d.mts} +1 -1
- package/lib/constants.d.mts.map +1 -0
- package/lib/constants.mjs +32 -0
- package/lib/constants.mjs.map +1 -0
- package/lib/{endOfTreeSegment.d.ts → endOfTreeSegment.d.mts} +4 -4
- package/lib/endOfTreeSegment.d.mts.map +1 -0
- package/lib/{endOfTreeSegment.js → endOfTreeSegment.mjs} +13 -18
- package/lib/endOfTreeSegment.mjs.map +1 -0
- package/lib/{index.d.ts → index.d.mts} +21 -21
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +24 -0
- package/lib/index.mjs.map +1 -0
- package/lib/{localReference.d.ts → localReference.d.mts} +7 -7
- package/lib/localReference.d.mts.map +1 -0
- package/lib/{localReference.js → localReference.mjs} +38 -47
- package/lib/localReference.mjs.map +1 -0
- package/lib/{merge-tree-alpha.d.ts → merge-tree-alpha.d.mts} +27 -12
- package/lib/{merge-tree-beta.d.ts → merge-tree-beta.d.mts} +0 -16
- package/lib/{merge-tree-public.d.ts → merge-tree-public.d.mts} +0 -16
- package/lib/{merge-tree-untrimmed.d.ts → merge-tree-untrimmed.d.mts} +5 -29
- package/lib/{mergeTree.d.ts → mergeTree.d.mts} +12 -29
- package/lib/mergeTree.d.mts.map +1 -0
- package/lib/{mergeTree.js → mergeTree.mjs} +203 -340
- package/lib/mergeTree.mjs.map +1 -0
- package/lib/{mergeTreeDeltaCallback.d.ts → mergeTreeDeltaCallback.d.mts} +4 -8
- package/lib/mergeTreeDeltaCallback.d.mts.map +1 -0
- package/lib/{mergeTreeDeltaCallback.js → mergeTreeDeltaCallback.mjs} +2 -5
- package/lib/mergeTreeDeltaCallback.mjs.map +1 -0
- package/lib/{mergeTreeNodeWalk.d.ts → mergeTreeNodeWalk.d.mts} +2 -2
- package/lib/mergeTreeNodeWalk.d.mts.map +1 -0
- package/lib/{mergeTreeNodeWalk.js → mergeTreeNodeWalk.mjs} +14 -21
- package/lib/mergeTreeNodeWalk.mjs.map +1 -0
- package/lib/{mergeTreeNodes.d.ts → mergeTreeNodes.d.mts} +12 -12
- package/lib/mergeTreeNodes.d.mts.map +1 -0
- package/lib/{mergeTreeNodes.js → mergeTreeNodes.mjs} +60 -76
- package/lib/mergeTreeNodes.mjs.map +1 -0
- package/lib/{mergeTreeTracking.d.ts → mergeTreeTracking.d.mts} +3 -3
- package/lib/mergeTreeTracking.d.mts.map +1 -0
- package/lib/{mergeTreeTracking.js → mergeTreeTracking.mjs} +6 -13
- package/lib/mergeTreeTracking.mjs.map +1 -0
- package/lib/{opBuilder.d.ts → opBuilder.d.mts} +4 -4
- package/lib/opBuilder.d.mts.map +1 -0
- package/lib/{opBuilder.js → opBuilder.mjs} +15 -25
- package/lib/opBuilder.mjs.map +1 -0
- package/lib/{ops.d.ts → ops.d.mts} +2 -2
- package/lib/ops.d.mts.map +1 -0
- package/lib/{ops.js → ops.mjs} +5 -8
- package/lib/ops.mjs.map +1 -0
- package/lib/{ordinal.d.ts → ordinal.d.mts} +1 -1
- package/lib/ordinal.d.mts.map +1 -0
- package/lib/{ordinal.js → ordinal.mjs} +4 -9
- package/lib/ordinal.mjs.map +1 -0
- package/lib/{partialLengths.d.ts → partialLengths.d.mts} +4 -4
- package/lib/partialLengths.d.mts.map +1 -0
- package/lib/{partialLengths.js → partialLengths.mjs} +38 -46
- package/lib/partialLengths.mjs.map +1 -0
- package/lib/{properties.d.ts → properties.d.mts} +1 -1
- package/lib/properties.d.mts.map +1 -0
- package/lib/{properties.js → properties.mjs} +7 -16
- package/lib/properties.mjs.map +1 -0
- package/lib/{referencePositions.d.ts → referencePositions.d.mts} +5 -5
- package/lib/referencePositions.d.mts.map +1 -0
- package/lib/referencePositions.mjs +70 -0
- package/lib/referencePositions.mjs.map +1 -0
- package/lib/{revertibles.d.ts → revertibles.d.mts} +12 -12
- package/lib/revertibles.d.mts.map +1 -0
- package/lib/{revertibles.js → revertibles.mjs} +60 -67
- package/lib/revertibles.mjs.map +1 -0
- package/lib/{segmentGroupCollection.d.ts → segmentGroupCollection.d.mts} +2 -2
- package/lib/segmentGroupCollection.d.mts.map +1 -0
- package/lib/{segmentGroupCollection.js → segmentGroupCollection.mjs} +5 -9
- package/lib/segmentGroupCollection.mjs.map +1 -0
- package/lib/{segmentPropertiesManager.d.ts → segmentPropertiesManager.d.mts} +3 -3
- package/lib/segmentPropertiesManager.d.mts.map +1 -0
- package/lib/{segmentPropertiesManager.js → segmentPropertiesManager.mjs} +14 -20
- package/lib/{segmentPropertiesManager.js.map → segmentPropertiesManager.mjs.map} +1 -1
- package/lib/{snapshotChunks.d.ts → snapshotChunks.d.mts} +4 -4
- package/lib/snapshotChunks.d.mts.map +1 -0
- package/lib/{snapshotChunks.js → snapshotChunks.mjs} +10 -17
- package/lib/snapshotChunks.mjs.map +1 -0
- package/lib/{snapshotLoader.d.ts → snapshotLoader.d.mts} +3 -3
- package/lib/snapshotLoader.d.mts.map +1 -0
- package/lib/{snapshotLoader.js → snapshotLoader.mjs} +33 -38
- package/lib/snapshotLoader.mjs.map +1 -0
- package/lib/{snapshotV1.d.ts → snapshotV1.d.mts} +4 -4
- package/lib/snapshotV1.d.mts.map +1 -0
- package/lib/{snapshotV1.js → snapshotV1.mjs} +28 -32
- package/lib/snapshotV1.mjs.map +1 -0
- package/lib/{snapshotlegacy.d.ts → snapshotlegacy.d.mts} +3 -3
- package/lib/snapshotlegacy.d.mts.map +1 -0
- package/lib/{snapshotlegacy.js → snapshotlegacy.mjs} +21 -26
- package/lib/snapshotlegacy.mjs.map +1 -0
- package/lib/{sortedSegmentSet.d.ts → sortedSegmentSet.d.mts} +4 -4
- package/lib/sortedSegmentSet.d.mts.map +1 -0
- package/lib/{sortedSegmentSet.js → sortedSegmentSet.mjs} +3 -8
- package/lib/sortedSegmentSet.mjs.map +1 -0
- package/lib/{sortedSet.d.ts → sortedSet.d.mts} +1 -1
- package/lib/sortedSet.d.mts.map +1 -0
- package/lib/{sortedSet.js → sortedSet.mjs} +2 -6
- package/lib/sortedSet.mjs.map +1 -0
- package/lib/{textSegment.d.ts → textSegment.d.mts} +4 -4
- package/lib/textSegment.d.mts.map +1 -0
- package/lib/{textSegment.js → textSegment.mjs} +8 -12
- package/lib/textSegment.mjs.map +1 -0
- package/lib/{zamboni.d.ts → zamboni.d.mts} +3 -3
- package/lib/zamboni.d.mts.map +1 -0
- package/lib/{zamboni.js → zamboni.mjs} +22 -28
- package/lib/zamboni.mjs.map +1 -0
- package/package.json +95 -164
- package/src/client.ts +0 -8
- package/src/mergeTree.ts +0 -226
- package/src/ops.ts +1 -1
- package/src/revertibles.ts +4 -4
- package/lib/MergeTreeTextHelper.d.ts.map +0 -1
- package/lib/MergeTreeTextHelper.js.map +0 -1
- package/lib/attributionCollection.d.ts.map +0 -1
- package/lib/attributionCollection.js.map +0 -1
- package/lib/attributionPolicy.d.ts.map +0 -1
- package/lib/attributionPolicy.js.map +0 -1
- package/lib/client.d.ts.map +0 -1
- package/lib/client.js.map +0 -1
- package/lib/collections/index.d.ts.map +0 -1
- package/lib/collections/index.js +0 -14
- package/lib/collections/index.js.map +0 -1
- package/lib/collections/list.d.ts.map +0 -1
- package/lib/collections/list.js.map +0 -1
- package/lib/collections/rbTree.d.ts.map +0 -1
- package/lib/collections/rbTree.js.map +0 -1
- package/lib/constants.d.ts.map +0 -1
- package/lib/constants.js +0 -35
- package/lib/constants.js.map +0 -1
- package/lib/endOfTreeSegment.d.ts.map +0 -1
- package/lib/endOfTreeSegment.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -80
- package/lib/index.js.map +0 -1
- package/lib/localReference.d.ts.map +0 -1
- package/lib/localReference.js.map +0 -1
- package/lib/mergeTree.d.ts.map +0 -1
- package/lib/mergeTree.js.map +0 -1
- package/lib/mergeTreeDeltaCallback.d.ts.map +0 -1
- package/lib/mergeTreeDeltaCallback.js.map +0 -1
- package/lib/mergeTreeNodeWalk.d.ts.map +0 -1
- package/lib/mergeTreeNodeWalk.js.map +0 -1
- package/lib/mergeTreeNodes.d.ts.map +0 -1
- package/lib/mergeTreeNodes.js.map +0 -1
- package/lib/mergeTreeTracking.d.ts.map +0 -1
- package/lib/mergeTreeTracking.js.map +0 -1
- package/lib/opBuilder.d.ts.map +0 -1
- package/lib/opBuilder.js.map +0 -1
- package/lib/ops.d.ts.map +0 -1
- package/lib/ops.js.map +0 -1
- package/lib/ordinal.d.ts.map +0 -1
- package/lib/ordinal.js.map +0 -1
- package/lib/partialLengths.d.ts.map +0 -1
- package/lib/partialLengths.js.map +0 -1
- package/lib/properties.d.ts.map +0 -1
- package/lib/properties.js.map +0 -1
- package/lib/referencePositions.d.ts.map +0 -1
- package/lib/referencePositions.js +0 -80
- package/lib/referencePositions.js.map +0 -1
- package/lib/revertibles.d.ts.map +0 -1
- package/lib/revertibles.js.map +0 -1
- package/lib/segmentGroupCollection.d.ts.map +0 -1
- package/lib/segmentGroupCollection.js.map +0 -1
- package/lib/segmentPropertiesManager.d.ts.map +0 -1
- package/lib/snapshotChunks.d.ts.map +0 -1
- package/lib/snapshotChunks.js.map +0 -1
- package/lib/snapshotLoader.d.ts.map +0 -1
- package/lib/snapshotLoader.js.map +0 -1
- package/lib/snapshotV1.d.ts.map +0 -1
- package/lib/snapshotV1.js.map +0 -1
- package/lib/snapshotlegacy.d.ts.map +0 -1
- package/lib/snapshotlegacy.js.map +0 -1
- package/lib/sortedSegmentSet.d.ts.map +0 -1
- package/lib/sortedSegmentSet.js.map +0 -1
- package/lib/sortedSet.d.ts.map +0 -1
- package/lib/sortedSet.js.map +0 -1
- package/lib/textSegment.d.ts.map +0 -1
- package/lib/textSegment.js.map +0 -1
- package/lib/zamboni.d.ts.map +0 -1
- package/lib/zamboni.js.map +0 -1
- package/merge-tree.test-files.tar +0 -0
- package/src/mergeTreeExample1.pdf +0 -0
- package/tsconfig.esnext.json +0 -6
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*!
|
|
3
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
3
|
* Licensed under the MIT License.
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
exports.createGroupOp = exports.createInsertOp = exports.createInsertSegmentOp = exports.createObliterateRangeOp = exports.createRemoveRangeOp = exports.createAnnotateRangeOp = exports.createAnnotateMarkerOp = void 0;
|
|
8
|
-
const ops_1 = require("./ops");
|
|
5
|
+
import { MergeTreeDeltaType, } from "./ops.mjs";
|
|
9
6
|
/**
|
|
10
7
|
* Creates the op for annotating the markers with the provided properties
|
|
11
8
|
* @param marker - The marker to annotate
|
|
@@ -14,7 +11,7 @@ const ops_1 = require("./ops");
|
|
|
14
11
|
*
|
|
15
12
|
* @internal
|
|
16
13
|
*/
|
|
17
|
-
function createAnnotateMarkerOp(marker, props) {
|
|
14
|
+
export function createAnnotateMarkerOp(marker, props) {
|
|
18
15
|
const id = marker.getId();
|
|
19
16
|
if (!id) {
|
|
20
17
|
return undefined;
|
|
@@ -23,10 +20,9 @@ function createAnnotateMarkerOp(marker, props) {
|
|
|
23
20
|
props,
|
|
24
21
|
relativePos1: { id, before: true },
|
|
25
22
|
relativePos2: { id },
|
|
26
|
-
type:
|
|
23
|
+
type: MergeTreeDeltaType.ANNOTATE,
|
|
27
24
|
};
|
|
28
25
|
}
|
|
29
|
-
exports.createAnnotateMarkerOp = createAnnotateMarkerOp;
|
|
30
26
|
/**
|
|
31
27
|
* Creates the op for annotating the range with the provided properties
|
|
32
28
|
* @param start - The inclusive start position of the range to annotate
|
|
@@ -36,15 +32,14 @@ exports.createAnnotateMarkerOp = createAnnotateMarkerOp;
|
|
|
36
32
|
*
|
|
37
33
|
* @internal
|
|
38
34
|
*/
|
|
39
|
-
function createAnnotateRangeOp(start, end, props) {
|
|
35
|
+
export function createAnnotateRangeOp(start, end, props) {
|
|
40
36
|
return {
|
|
41
37
|
pos1: start,
|
|
42
38
|
pos2: end,
|
|
43
39
|
props,
|
|
44
|
-
type:
|
|
40
|
+
type: MergeTreeDeltaType.ANNOTATE,
|
|
45
41
|
};
|
|
46
42
|
}
|
|
47
|
-
exports.createAnnotateRangeOp = createAnnotateRangeOp;
|
|
48
43
|
/**
|
|
49
44
|
* Creates the op to remove a range
|
|
50
45
|
*
|
|
@@ -53,14 +48,13 @@ exports.createAnnotateRangeOp = createAnnotateRangeOp;
|
|
|
53
48
|
*
|
|
54
49
|
* @internal
|
|
55
50
|
*/
|
|
56
|
-
function createRemoveRangeOp(start, end) {
|
|
51
|
+
export function createRemoveRangeOp(start, end) {
|
|
57
52
|
return {
|
|
58
53
|
pos1: start,
|
|
59
54
|
pos2: end,
|
|
60
|
-
type:
|
|
55
|
+
type: MergeTreeDeltaType.REMOVE,
|
|
61
56
|
};
|
|
62
57
|
}
|
|
63
|
-
exports.createRemoveRangeOp = createRemoveRangeOp;
|
|
64
58
|
/**
|
|
65
59
|
* Creates the op to obliterate a range
|
|
66
60
|
*
|
|
@@ -70,14 +64,13 @@ exports.createRemoveRangeOp = createRemoveRangeOp;
|
|
|
70
64
|
* @internal
|
|
71
65
|
*/
|
|
72
66
|
// eslint-disable-next-line import/no-deprecated
|
|
73
|
-
function createObliterateRangeOp(start, end) {
|
|
67
|
+
export function createObliterateRangeOp(start, end) {
|
|
74
68
|
return {
|
|
75
69
|
pos1: start,
|
|
76
70
|
pos2: end,
|
|
77
|
-
type:
|
|
71
|
+
type: MergeTreeDeltaType.OBLITERATE,
|
|
78
72
|
};
|
|
79
73
|
}
|
|
80
|
-
exports.createObliterateRangeOp = createObliterateRangeOp;
|
|
81
74
|
/**
|
|
82
75
|
*
|
|
83
76
|
* @param pos - The position to insert the segment at
|
|
@@ -85,21 +78,19 @@ exports.createObliterateRangeOp = createObliterateRangeOp;
|
|
|
85
78
|
*
|
|
86
79
|
* @internal
|
|
87
80
|
*/
|
|
88
|
-
function createInsertSegmentOp(pos, segment) {
|
|
81
|
+
export function createInsertSegmentOp(pos, segment) {
|
|
89
82
|
return createInsertOp(pos, segment.toJSONObject());
|
|
90
83
|
}
|
|
91
|
-
exports.createInsertSegmentOp = createInsertSegmentOp;
|
|
92
84
|
/**
|
|
93
85
|
* @internal
|
|
94
86
|
*/
|
|
95
|
-
function createInsertOp(pos, segSpec) {
|
|
87
|
+
export function createInsertOp(pos, segSpec) {
|
|
96
88
|
return {
|
|
97
89
|
pos1: pos,
|
|
98
90
|
seg: segSpec,
|
|
99
|
-
type:
|
|
91
|
+
type: MergeTreeDeltaType.INSERT,
|
|
100
92
|
};
|
|
101
93
|
}
|
|
102
|
-
exports.createInsertOp = createInsertOp;
|
|
103
94
|
/**
|
|
104
95
|
*
|
|
105
96
|
* @param ops - The ops to group
|
|
@@ -112,11 +103,10 @@ exports.createInsertOp = createInsertOp;
|
|
|
112
103
|
* @internal
|
|
113
104
|
*/
|
|
114
105
|
// eslint-disable-next-line import/no-deprecated
|
|
115
|
-
function createGroupOp(...ops) {
|
|
106
|
+
export function createGroupOp(...ops) {
|
|
116
107
|
return {
|
|
117
108
|
ops,
|
|
118
|
-
type:
|
|
109
|
+
type: MergeTreeDeltaType.GROUP,
|
|
119
110
|
};
|
|
120
111
|
}
|
|
121
|
-
|
|
122
|
-
//# sourceMappingURL=opBuilder.js.map
|
|
112
|
+
//# sourceMappingURL=opBuilder.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opBuilder.mjs","sourceRoot":"","sources":["../src/opBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAMN,kBAAkB,GAIlB;AAGD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAc,EACd,KAAkB;IAElB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,EAAE;QACR,OAAO,SAAS,CAAC;KACjB;IAED,OAAO;QACN,KAAK;QACL,YAAY,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAClC,YAAY,EAAE,EAAE,EAAE,EAAE;QACpB,IAAI,EAAE,kBAAkB,CAAC,QAAQ;KACjC,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACpC,KAAa,EACb,GAAW,EACX,KAAkB;IAElB,OAAO;QACN,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,KAAK;QACL,IAAI,EAAE,kBAAkB,CAAC,QAAQ;KACjC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW;IAC7D,OAAO;QACN,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,kBAAkB,CAAC,MAAM;KAC/B,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,gDAAgD;AAChD,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,GAAW;IACjE,OAAO;QACN,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,kBAAkB,CAAC,UAAU;KACnC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW,EAAE,OAAiB;IACnE,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAY;IACvD,OAAO;QACN,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,kBAAkB,CAAC,MAAM;KAC/B,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,gDAAgD;AAChD,MAAM,UAAU,aAAa,CAAC,GAAG,GAAwB;IACxD,OAAO;QACN,GAAG;QACH,IAAI,EAAE,kBAAkB,CAAC,KAAK;KAC9B,CAAC;AACH,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ISegment, Marker } from \"./mergeTreeNodes\";\nimport {\n\tIMergeTreeAnnotateMsg,\n\t// eslint-disable-next-line import/no-deprecated\n\tIMergeTreeGroupMsg,\n\tIMergeTreeInsertMsg,\n\tIMergeTreeRemoveMsg,\n\tMergeTreeDeltaType,\n\tIMergeTreeDeltaOp,\n\t// eslint-disable-next-line import/no-deprecated\n\tIMergeTreeObliterateMsg,\n} from \"./ops\";\nimport { PropertySet } from \"./properties\";\n\n/**\n * Creates the op for annotating the markers with the provided properties\n * @param marker - The marker to annotate\n * @param props - The properties to annotate the marker with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAnnotateMarkerOp(\n\tmarker: Marker,\n\tprops: PropertySet,\n): IMergeTreeAnnotateMsg | undefined {\n\tconst id = marker.getId();\n\tif (!id) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tprops,\n\t\trelativePos1: { id, before: true },\n\t\trelativePos2: { id },\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op for annotating the range with the provided properties\n * @param start - The inclusive start position of the range to annotate\n * @param end - The exclusive end position of the range to annotate\n * @param props - The properties to annotate the range with\n * @returns The annotate op\n *\n * @internal\n */\nexport function createAnnotateRangeOp(\n\tstart: number,\n\tend: number,\n\tprops: PropertySet,\n): IMergeTreeAnnotateMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\tprops,\n\t\ttype: MergeTreeDeltaType.ANNOTATE,\n\t};\n}\n\n/**\n * Creates the op to remove a range\n *\n * @param start - The inclusive start of the range to remove\n * @param end - The exclusive end of the range to remove\n *\n * @internal\n */\nexport function createRemoveRangeOp(start: number, end: number): IMergeTreeRemoveMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\ttype: MergeTreeDeltaType.REMOVE,\n\t};\n}\n\n/**\n * Creates the op to obliterate a range\n *\n * @param start - The inclusive start of the range to obliterate\n * @param end - The exclusive end of the range to obliterate\n *\n * @internal\n */\n// eslint-disable-next-line import/no-deprecated\nexport function createObliterateRangeOp(start: number, end: number): IMergeTreeObliterateMsg {\n\treturn {\n\t\tpos1: start,\n\t\tpos2: end,\n\t\ttype: MergeTreeDeltaType.OBLITERATE,\n\t};\n}\n\n/**\n *\n * @param pos - The position to insert the segment at\n * @param segment - The segment to insert\n *\n * @internal\n */\nexport function createInsertSegmentOp(pos: number, segment: ISegment): IMergeTreeInsertMsg {\n\treturn createInsertOp(pos, segment.toJSONObject());\n}\n\n/**\n * @internal\n */\nexport function createInsertOp(pos: number, segSpec: any): IMergeTreeInsertMsg {\n\treturn {\n\t\tpos1: pos,\n\t\tseg: segSpec,\n\t\ttype: MergeTreeDeltaType.INSERT,\n\t};\n}\n\n/**\n *\n * @param ops - The ops to group\n *\n * @deprecated The ability to create group ops will be removed in an upcoming\n * release, as group ops are redundant with he native batching capabilities of\n * the runtime\n *\n * @deprecated The ability to create group ops will be removed in an upcoming release, as group ops are redundant with he native batching capabilities of the runtime\n * @internal\n */\n// eslint-disable-next-line import/no-deprecated\nexport function createGroupOp(...ops: IMergeTreeDeltaOp[]): IMergeTreeGroupMsg {\n\treturn {\n\t\tops,\n\t\ttype: MergeTreeDeltaType.GROUP,\n\t};\n}\n"]}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
export declare enum ReferenceType {
|
|
10
10
|
Simple = 0,
|
|
11
11
|
/**
|
|
12
|
-
* Allows this reference to be located using the `
|
|
12
|
+
* Allows this reference to be located using the `searchForMarker` API on merge-tree.
|
|
13
13
|
*/
|
|
14
14
|
Tile = 1,
|
|
15
15
|
/**
|
|
@@ -172,4 +172,4 @@ export type IMergeTreeDeltaOp = IMergeTreeInsertMsg | IMergeTreeRemoveMsg | IMer
|
|
|
172
172
|
* @alpha
|
|
173
173
|
*/
|
|
174
174
|
export type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg;
|
|
175
|
-
//# sourceMappingURL=ops.d.
|
|
175
|
+
//# sourceMappingURL=ops.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops.d.mts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"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"}
|
package/lib/{ops.js → ops.mjs}
RENAMED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*!
|
|
3
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
3
|
* Licensed under the MIT License.
|
|
5
4
|
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.MergeTreeDeltaType = exports.ReferenceType = void 0;
|
|
8
5
|
/**
|
|
9
6
|
* Flags enum that dictates behavior of a {@link ReferencePosition}
|
|
10
7
|
* @alpha
|
|
11
8
|
*/
|
|
12
|
-
var ReferenceType;
|
|
9
|
+
export var ReferenceType;
|
|
13
10
|
(function (ReferenceType) {
|
|
14
11
|
ReferenceType[ReferenceType["Simple"] = 0] = "Simple";
|
|
15
12
|
/**
|
|
16
|
-
* Allows this reference to be located using the `
|
|
13
|
+
* Allows this reference to be located using the `searchForMarker` API on merge-tree.
|
|
17
14
|
*/
|
|
18
15
|
ReferenceType[ReferenceType["Tile"] = 1] = "Tile";
|
|
19
16
|
/**
|
|
@@ -45,12 +42,12 @@ var ReferenceType;
|
|
|
45
42
|
* This is useful for comparison/iteration purposes
|
|
46
43
|
*/
|
|
47
44
|
ReferenceType[ReferenceType["Transient"] = 256] = "Transient";
|
|
48
|
-
})(ReferenceType || (
|
|
45
|
+
})(ReferenceType || (ReferenceType = {}));
|
|
49
46
|
// Note: Assigned positive integers to avoid clashing with MergeTreeMaintenanceType
|
|
50
47
|
/**
|
|
51
48
|
* @alpha
|
|
52
49
|
*/
|
|
53
|
-
|
|
50
|
+
export const MergeTreeDeltaType = {
|
|
54
51
|
INSERT: 0,
|
|
55
52
|
REMOVE: 1,
|
|
56
53
|
ANNOTATE: 2,
|
|
@@ -60,4 +57,4 @@ exports.MergeTreeDeltaType = {
|
|
|
60
57
|
GROUP: 3,
|
|
61
58
|
OBLITERATE: 4,
|
|
62
59
|
};
|
|
63
|
-
//# sourceMappingURL=ops.
|
|
60
|
+
//# sourceMappingURL=ops.mjs.map
|
package/lib/ops.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops.mjs","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,CAAN,IAAY,aAsCX;AAtCD,WAAY,aAAa;IACxB,qDAAY,CAAA;IACZ;;OAEG;IACH,iDAAU,CAAA;IAEV;;;;OAIG;IACH,8DAAiB,CAAA;IAEjB;;;;OAIG;IACH,0DAAe,CAAA;IAEf;;;;;;OAMG;IACH,oEAAoB,CAAA;IACpB;;OAEG;IACH,mEAAmB,CAAA;IACnB;;;OAGG;IACH,6DAAiB,CAAA;AAClB,CAAC,EAtCW,aAAa,KAAb,aAAa,QAsCxB;AASD,mFAAmF;AACnF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,CAAC;CACJ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Flags enum that dictates behavior of a {@link ReferencePosition}\n * @alpha\n */\nexport enum ReferenceType {\n\tSimple = 0x0,\n\t/**\n\t * Allows this reference to be located using the `searchForMarker` API on merge-tree.\n\t */\n\tTile = 0x1,\n\n\t/**\n\t * Denotes that this reference begins the start of an interval. This is\n\t * generally not meaningful outside the context of interval collections\n\t * on SharedString.\n\t */\n\tRangeBegin = 0x10,\n\n\t/**\n\t * Denotes that this reference is the end of an interval. This is\n\t * generally not meaningful outside the context of interval collections\n\t * on SharedString.\n\t */\n\tRangeEnd = 0x20,\n\n\t/**\n\t * When a segment is marked removed (locally or with ack), this reference will slide to the first\n\t * valid option of:\n\t * 1. the start of the next furthest segment\n\t * 2. the end of the next nearest segment\n\t * 3. DetachedReferencePosition\n\t */\n\tSlideOnRemove = 0x40,\n\t/**\n\t * When a segment is marked removed (locally or with ack), this reference will remain on that segment.\n\t */\n\tStayOnRemove = 0x80,\n\t/**\n\t * Specifies that the reference position should never be added to the segment it refers to.\n\t * This is useful for comparison/iteration purposes\n\t */\n\tTransient = 0x100,\n}\n\n/**\n * @alpha\n */\nexport interface IMarkerDef {\n\trefType?: ReferenceType;\n}\n\n// Note: Assigned positive integers to avoid clashing with MergeTreeMaintenanceType\n/**\n * @alpha\n */\nexport const MergeTreeDeltaType = {\n\tINSERT: 0,\n\tREMOVE: 1,\n\tANNOTATE: 2,\n\t/**\n\t * @deprecated The ability to create group ops will be removed in an upcoming release, as group ops are redundant with he native batching capabilities of the runtime\n\t */\n\tGROUP: 3,\n\tOBLITERATE: 4,\n} as const;\n\n/**\n * @alpha\n */\nexport type MergeTreeDeltaType = (typeof MergeTreeDeltaType)[keyof typeof MergeTreeDeltaType];\n\n/**\n * @alpha\n */\nexport interface IMergeTreeDelta {\n\t/**\n\t * Type of this change.\n\t */\n\ttype: MergeTreeDeltaType;\n}\n\n/**\n * A position specified relative to a segment.\n * @alpha\n */\nexport interface IRelativePosition {\n\t/**\n\t * String identifier specifying a segment.\n\t */\n\tid?: string;\n\t/**\n\t * If true, insert before the specified segment. If false or not defined,\n\t * insert after the specified segment.\n\t */\n\tbefore?: boolean;\n\t/**\n\t * A positive number \\>= 1. If before is false, offset is added to the position.\n\t * If before is true, offset is subtracted from the position.\n\t */\n\toffset?: number;\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeInsertMsg extends IMergeTreeDelta {\n\ttype: typeof MergeTreeDeltaType.INSERT;\n\tpos1?: number;\n\trelativePos1?: IRelativePosition;\n\tpos2?: number;\n\trelativePos2?: IRelativePosition;\n\tseg?: any;\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeRemoveMsg extends IMergeTreeDelta {\n\ttype: typeof MergeTreeDeltaType.REMOVE;\n\tpos1?: number;\n\trelativePos1?: IRelativePosition;\n\tpos2?: number;\n\trelativePos2?: IRelativePosition;\n}\n\n/**\n * @deprecated We no longer intend to support this functionality and it will\n * be removed in a future release. There is no replacement for this\n * functionality.\n * @alpha\n */\nexport interface IMergeTreeObliterateMsg extends IMergeTreeDelta {\n\ttype: typeof MergeTreeDeltaType.OBLITERATE;\n\tpos1?: number;\n\t/**\n\t * This field is currently unused, but we keep it around to make the union\n\t * type of all merge-tree messages have the same fields\n\t */\n\trelativePos1?: never;\n\tpos2?: number;\n\t/**\n\t * This field is currently unused, but we keep it around to make the union\n\t * type of all merge-tree messages have the same fields\n\t */\n\trelativePos2?: never;\n}\n\n/**\n * @alpha\n */\nexport interface IMergeTreeAnnotateMsg extends IMergeTreeDelta {\n\ttype: typeof MergeTreeDeltaType.ANNOTATE;\n\tpos1?: number;\n\trelativePos1?: IRelativePosition;\n\tpos2?: number;\n\trelativePos2?: IRelativePosition;\n\tprops: Record<string, any>;\n}\n\n/**\n * @deprecated The ability to create group ops will be removed in an upcoming\n * release, as group ops are redundant with the native batching capabilities\n * of the runtime\n *\n * @alpha\n */\nexport interface IMergeTreeGroupMsg extends IMergeTreeDelta {\n\ttype: typeof MergeTreeDeltaType.GROUP;\n\tops: IMergeTreeDeltaOp[];\n}\n\n/**\n * @alpha\n */\nexport interface IJSONSegment {\n\tprops?: Record<string, any>;\n}\n\n/**\n * @alpha\n */\nexport type IMergeTreeDeltaOp =\n\t| IMergeTreeInsertMsg\n\t| IMergeTreeRemoveMsg\n\t| IMergeTreeAnnotateMsg\n\t| IMergeTreeObliterateMsg;\n\n/**\n * @alpha\n */\nexport type IMergeTreeOp = IMergeTreeDeltaOp | IMergeTreeGroupMsg;\n"]}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
export declare function computeHierarchicalOrdinal(maxCount: number, actualCount: number, parentOrdinal: string, previousOrdinal: string | undefined): string;
|
|
6
|
-
//# sourceMappingURL=ordinal.d.
|
|
6
|
+
//# sourceMappingURL=ordinal.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordinal.d.mts","sourceRoot":"","sources":["../src/ordinal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GAAG,SAAS,UAkBnC"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*!
|
|
3
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
3
|
* Licensed under the MIT License.
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/*
|
|
9
|
-
const core_utils_1 = require("@fluidframework/core-utils");
|
|
10
|
-
function computeHierarchicalOrdinal(maxCount, actualCount, parentOrdinal, previousOrdinal) {
|
|
11
|
-
(0, core_utils_1.assert)(maxCount <= 16 && actualCount <= maxCount, 0x3f0 /* count must be less than max, and max must be 16 or less */);
|
|
5
|
+
import { assert } from "@fluidframework/core-utils";
|
|
6
|
+
export function computeHierarchicalOrdinal(maxCount, actualCount, parentOrdinal, previousOrdinal) {
|
|
7
|
+
assert(maxCount <= 16 && actualCount <= maxCount, 0x3f0 /* count must be less than max, and max must be 16 or less */);
|
|
12
8
|
const ordinalWidth = 1 << (maxCount - actualCount);
|
|
13
9
|
let ordinal;
|
|
14
10
|
if (previousOrdinal === undefined) {
|
|
@@ -21,5 +17,4 @@ function computeHierarchicalOrdinal(maxCount, actualCount, parentOrdinal, previo
|
|
|
21
17
|
}
|
|
22
18
|
return ordinal;
|
|
23
19
|
}
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=ordinal.js.map
|
|
20
|
+
//# sourceMappingURL=ordinal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordinal.mjs","sourceRoot":"","sources":["../src/ordinal.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAGI,EAAE,MAAM,EAAE,MAAM,4BAA4B;AAEnD,MAAM,UAAU,0BAA0B,CACzC,QAAgB,EAChB,WAAmB,EACnB,aAAqB,EACrB,eAAmC;IAEnC,MAAM,CACL,QAAQ,IAAI,EAAE,IAAI,WAAW,IAAI,QAAQ,EACzC,KAAK,CAAC,6DAA6D,CACnE,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACnD,IAAI,OAAe,CAAC;IACpB,IAAI,eAAe,KAAK,SAAS,EAAE;QAClC,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;KAChE;SAAM;QACN,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;QAChD,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;KAC5D;IAED,OAAO,OAAO,CAAC;AAChB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint-disable no-bitwise */\nimport { assert } from \"@fluidframework/core-utils\";\n\nexport function computeHierarchicalOrdinal(\n\tmaxCount: number,\n\tactualCount: number,\n\tparentOrdinal: string,\n\tpreviousOrdinal: string | undefined,\n) {\n\tassert(\n\t\tmaxCount <= 16 && actualCount <= maxCount,\n\t\t0x3f0 /* count must be less than max, and max must be 16 or less */,\n\t);\n\n\tconst ordinalWidth = 1 << (maxCount - actualCount);\n\tlet ordinal: string;\n\tif (previousOrdinal === undefined) {\n\t\tordinal = parentOrdinal + String.fromCharCode(ordinalWidth - 1);\n\t} else {\n\t\tconst prevOrdCode = previousOrdinal.charCodeAt(previousOrdinal.length - 1);\n\t\tconst localOrdinal = prevOrdCode + ordinalWidth;\n\t\tordinal = parentOrdinal + String.fromCharCode(localOrdinal);\n\t}\n\n\treturn ordinal;\n}\n"]}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { RedBlackTree } from "./collections";
|
|
6
|
-
import { MergeTree } from "./mergeTree";
|
|
7
|
-
import { CollaborationWindow, IMergeBlock, ISegment } from "./mergeTreeNodes";
|
|
5
|
+
import { RedBlackTree } from "./collections/index.mjs";
|
|
6
|
+
import { MergeTree } from "./mergeTree.mjs";
|
|
7
|
+
import { CollaborationWindow, IMergeBlock, ISegment } from "./mergeTreeNodes.mjs";
|
|
8
8
|
interface IOverlapClient {
|
|
9
9
|
clientId: number;
|
|
10
10
|
seglen: number;
|
|
@@ -273,4 +273,4 @@ export declare function verify(partialSeqLengths: PartialSequenceLengths): void;
|
|
|
273
273
|
*/
|
|
274
274
|
export declare function combineOverlapClients(a: PartialSequenceLength, b: PartialSequenceLength): void;
|
|
275
275
|
export {};
|
|
276
|
-
//# sourceMappingURL=partialLengths.d.
|
|
276
|
+
//# sourceMappingURL=partialLengths.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partialLengths.d.mts","sourceRoot":"","sources":["../src/partialLengths.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*!
|
|
3
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
3
|
* Licensed under the MIT License.
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const mergeTreeNodes_1 = require("./mergeTreeNodes");
|
|
5
|
+
import { assert } from "@fluidframework/core-utils";
|
|
6
|
+
import { RedBlackTree } from "./collections/index.mjs";
|
|
7
|
+
import { UnassignedSequenceNumber } from "./constants.mjs";
|
|
8
|
+
import { compareNumbers, toMoveInfo, seqLTE, toRemovalInfo, } from "./mergeTreeNodes.mjs";
|
|
9
|
+
import { SortedSet } from "./sortedSet.mjs";
|
|
12
10
|
// eslint-disable-next-line import/no-deprecated
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line import/no-deprecated
|
|
15
|
-
class PartialSequenceLengthsSet extends sortedSet_1.SortedSet {
|
|
11
|
+
class PartialSequenceLengthsSet extends SortedSet {
|
|
16
12
|
getKey(item) {
|
|
17
13
|
return item.seq;
|
|
18
14
|
}
|
|
@@ -126,7 +122,7 @@ class PartialSequenceLengthsSet extends sortedSet_1.SortedSet {
|
|
|
126
122
|
* Note: there is some slight complication with clientSeqNumbers resulting from the possibility of different clients
|
|
127
123
|
* concurrently removing the same segment. See the field's documentation for more details.
|
|
128
124
|
*/
|
|
129
|
-
class PartialSequenceLengths {
|
|
125
|
+
export class PartialSequenceLengths {
|
|
130
126
|
/**
|
|
131
127
|
* Combine the partial lengths of block's children
|
|
132
128
|
* @param block - an interior node. If `recur` is false, it is assumed that each interior node child of this block
|
|
@@ -213,18 +209,18 @@ class PartialSequenceLengths {
|
|
|
213
209
|
if (child.isLeaf()) {
|
|
214
210
|
// Leaf segment
|
|
215
211
|
const segment = child;
|
|
216
|
-
if (segment.seq !== undefined &&
|
|
212
|
+
if (segment.seq !== undefined && seqLTE(segment.seq, collabWindow.minSeq)) {
|
|
217
213
|
combinedPartialLengths.minLength += segment.cachedLength;
|
|
218
214
|
}
|
|
219
215
|
else {
|
|
220
216
|
PartialSequenceLengths.insertSegment(combinedPartialLengths, segment);
|
|
221
217
|
}
|
|
222
|
-
const removalInfo =
|
|
223
|
-
const moveInfo =
|
|
218
|
+
const removalInfo = toRemovalInfo(segment);
|
|
219
|
+
const moveInfo = toMoveInfo(segment);
|
|
224
220
|
if ((removalInfo?.removedSeq !== undefined &&
|
|
225
|
-
|
|
221
|
+
seqLTE(removalInfo.removedSeq, collabWindow.minSeq)) ||
|
|
226
222
|
(moveInfo?.movedSeq !== undefined &&
|
|
227
|
-
|
|
223
|
+
seqLTE(moveInfo.movedSeq, collabWindow.minSeq))) {
|
|
228
224
|
combinedPartialLengths.minLength -= segment.cachedLength;
|
|
229
225
|
}
|
|
230
226
|
else if (removalInfo !== undefined || moveInfo !== undefined) {
|
|
@@ -253,7 +249,7 @@ class PartialSequenceLengths {
|
|
|
253
249
|
return combinedPartialLengths;
|
|
254
250
|
}
|
|
255
251
|
static getOverlapClients(overlapClientIds, seglen) {
|
|
256
|
-
const bst = new
|
|
252
|
+
const bst = new RedBlackTree(compareNumbers);
|
|
257
253
|
for (const clientId of overlapClientIds) {
|
|
258
254
|
bst.put(clientId, { clientId, seglen });
|
|
259
255
|
}
|
|
@@ -380,9 +376,9 @@ class PartialSequenceLengths {
|
|
|
380
376
|
* `combinedPartialLengths.unsequencedRecords`.
|
|
381
377
|
*/
|
|
382
378
|
static insertSegment(combinedPartialLengths, segment, removalInfo, moveInfo) {
|
|
383
|
-
const removalIsLocal = !!removalInfo && removalInfo.removedSeq ===
|
|
384
|
-
const moveIsLocal = !!moveInfo && moveInfo.movedSeq ===
|
|
385
|
-
const isLocal = segment.seq ===
|
|
379
|
+
const removalIsLocal = !!removalInfo && removalInfo.removedSeq === UnassignedSequenceNumber;
|
|
380
|
+
const moveIsLocal = !!moveInfo && moveInfo.movedSeq === UnassignedSequenceNumber;
|
|
381
|
+
const isLocal = segment.seq === UnassignedSequenceNumber ||
|
|
386
382
|
(!!removalInfo && removalIsLocal && (!moveInfo || moveIsLocal)) ||
|
|
387
383
|
(!!moveInfo && moveIsLocal && (!removalInfo || removalIsLocal));
|
|
388
384
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -393,7 +389,7 @@ class PartialSequenceLengths {
|
|
|
393
389
|
let moveClientOverlap;
|
|
394
390
|
let remoteObliteratedLen;
|
|
395
391
|
// it's not possible to have an overlapping obliterate and remove that are both local
|
|
396
|
-
|
|
392
|
+
assert((!moveIsLocal && !removalIsLocal) || moveIsLocal !== removalIsLocal, 0x870 /* overlapping local obliterate and remove */);
|
|
397
393
|
const removeHappenedFirst = removalInfo &&
|
|
398
394
|
(!moveInfo ||
|
|
399
395
|
moveIsLocal ||
|
|
@@ -415,7 +411,7 @@ class PartialSequenceLengths {
|
|
|
415
411
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
416
412
|
seqOrLocalSeq = moveIsLocal ? moveInfo.localMovedSeq : moveInfo.movedSeq;
|
|
417
413
|
if (segment.wasMovedOnInsert) {
|
|
418
|
-
|
|
414
|
+
assert(moveInfo.movedSeq !== -1, 0x871 /* wasMovedOnInsert should only be set on acked obliterates */);
|
|
419
415
|
segmentLen = 0;
|
|
420
416
|
}
|
|
421
417
|
else {
|
|
@@ -585,10 +581,10 @@ class PartialSequenceLengths {
|
|
|
585
581
|
}
|
|
586
582
|
else {
|
|
587
583
|
const segment = child;
|
|
588
|
-
const removalInfo =
|
|
589
|
-
const moveInfo =
|
|
590
|
-
const removalIsLocal = !!removalInfo && removalInfo.removedSeq ===
|
|
591
|
-
const moveIsLocal = !!moveInfo && moveInfo.movedSeq ===
|
|
584
|
+
const removalInfo = toRemovalInfo(segment);
|
|
585
|
+
const moveInfo = toMoveInfo(segment);
|
|
586
|
+
const removalIsLocal = !!removalInfo && removalInfo.removedSeq === UnassignedSequenceNumber;
|
|
587
|
+
const moveIsLocal = !!moveInfo && moveInfo.movedSeq === UnassignedSequenceNumber;
|
|
592
588
|
const removeHappenedFirst = removalInfo &&
|
|
593
589
|
(!moveInfo ||
|
|
594
590
|
moveIsLocal ||
|
|
@@ -622,13 +618,13 @@ class PartialSequenceLengths {
|
|
|
622
618
|
remoteObliteratedLen -= segment.cachedLength;
|
|
623
619
|
}
|
|
624
620
|
else if (segment.wasMovedOnInsert &&
|
|
625
|
-
segment.seq !==
|
|
621
|
+
segment.seq !== UnassignedSequenceNumber &&
|
|
626
622
|
segment.seq !== undefined &&
|
|
627
623
|
moveInfo.movedSeq > segment.seq) {
|
|
628
624
|
remoteObliteratedLen += segment.cachedLength;
|
|
629
625
|
seqSeglen -= segment.cachedLength;
|
|
630
626
|
}
|
|
631
|
-
else if (segment.seq !==
|
|
627
|
+
else if (segment.seq !== UnassignedSequenceNumber) {
|
|
632
628
|
seqSeglen -= segment.cachedLength;
|
|
633
629
|
}
|
|
634
630
|
}
|
|
@@ -676,7 +672,7 @@ class PartialSequenceLengths {
|
|
|
676
672
|
}
|
|
677
673
|
}
|
|
678
674
|
else {
|
|
679
|
-
|
|
675
|
+
assert(this.unsequencedRecords !== undefined, 0x39f /* Local getPartialLength invoked without computing local partials. */);
|
|
680
676
|
const unsequencedPartialLengths = this.unsequencedRecords.partialLengths;
|
|
681
677
|
// Local segments at or before localSeq should also be included
|
|
682
678
|
const local = unsequencedPartialLengths.latestLeq(localSeq);
|
|
@@ -805,7 +801,6 @@ class PartialSequenceLengths {
|
|
|
805
801
|
return cliSeqs && cliSeqs.size > 0 ? cliSeqs.size - 1 : -1;
|
|
806
802
|
}
|
|
807
803
|
}
|
|
808
|
-
exports.PartialSequenceLengths = PartialSequenceLengths;
|
|
809
804
|
PartialSequenceLengths.options = {
|
|
810
805
|
zamboni: true,
|
|
811
806
|
};
|
|
@@ -821,14 +816,14 @@ function verifyPartialLengths(partialSeqLengths, partialLengths, clientPartials)
|
|
|
821
816
|
// Count total number of partial length entries
|
|
822
817
|
count++;
|
|
823
818
|
// Sequence number should be larger or equal to minseq
|
|
824
|
-
|
|
819
|
+
assert(partialSeqLengths.minSeq <= partialLength.seq, 0x054 /* "Sequence number less than minSeq!" */);
|
|
825
820
|
// Sequence number should be sorted
|
|
826
|
-
|
|
821
|
+
assert(lastSeqNum < partialLength.seq, 0x055 /* "Sequence number is not sorted!" */);
|
|
827
822
|
lastSeqNum = partialLength.seq;
|
|
828
823
|
// Len is a accumulation of all the seglen adjustments
|
|
829
824
|
accumSegLen += partialLength.seglen;
|
|
830
825
|
if (accumSegLen !== partialLength.len) {
|
|
831
|
-
|
|
826
|
+
assert(false, 0x056 /* "Unexpected total for accumulation of all seglen adjustments!" */);
|
|
832
827
|
}
|
|
833
828
|
if (clientPartials) {
|
|
834
829
|
// Client partials used to track local edits so we can account for them some refSeq.
|
|
@@ -845,19 +840,19 @@ function verifyPartialLengths(partialSeqLengths, partialLengths, clientPartials)
|
|
|
845
840
|
else {
|
|
846
841
|
// Len adjustment should not make length negative
|
|
847
842
|
if (partialSeqLengths["minLength"] + partialLength.len < 0) {
|
|
848
|
-
|
|
843
|
+
assert(false, 0x057 /* "Negative length after length adjustment!" */);
|
|
849
844
|
}
|
|
850
845
|
}
|
|
851
846
|
if (partialLength.overlapRemoveClients) {
|
|
852
847
|
// Only the flat partialLengths can have overlapRemoveClients, the per client view shouldn't
|
|
853
|
-
|
|
848
|
+
assert(!clientPartials, 0x058 /* "Both overlapRemoveClients and clientPartials are set!" */);
|
|
854
849
|
// Each overlap client counts as one, but the first remove to sequence was already counted.
|
|
855
850
|
// (this aligns with the logic to omit the removing client in `addClientSeqNumberFromPartial`)
|
|
856
851
|
count += partialLength.overlapRemoveClients.size() - 1;
|
|
857
852
|
}
|
|
858
853
|
if (partialLength.overlapObliterateClients) {
|
|
859
854
|
// Only the flat partialLengths can have overlapObliterateClients, the per client view shouldn't
|
|
860
|
-
|
|
855
|
+
assert(!clientPartials, 0x872 /* Both overlapObliterateClients and clientPartials are set! */);
|
|
861
856
|
// Each overlap client counts as one, but the first move to sequence was already counted.
|
|
862
857
|
// (this aligns with the logic to omit the moving client in `addClientSeqNumberFromPartial`)
|
|
863
858
|
count += partialLength.overlapObliterateClients.size() - 1;
|
|
@@ -865,7 +860,7 @@ function verifyPartialLengths(partialSeqLengths, partialLengths, clientPartials)
|
|
|
865
860
|
}
|
|
866
861
|
return count;
|
|
867
862
|
}
|
|
868
|
-
function verifyExpected(mergeTree, node, refSeq, clientId, localSeq) {
|
|
863
|
+
export function verifyExpected(mergeTree, node, refSeq, clientId, localSeq) {
|
|
869
864
|
if ((!mergeTree.collabWindow.collaborating || mergeTree.collabWindow.clientId === clientId) &&
|
|
870
865
|
(node.isLeaf() || localSeq === undefined)) {
|
|
871
866
|
return;
|
|
@@ -890,8 +885,7 @@ function verifyExpected(mergeTree, node, refSeq, clientId, localSeq) {
|
|
|
890
885
|
throw new Error(`expected partial length of ${expected} but found ${partialLen}. refSeq: ${refSeq}, clientId: ${clientId}`);
|
|
891
886
|
}
|
|
892
887
|
}
|
|
893
|
-
|
|
894
|
-
function verify(partialSeqLengths) {
|
|
888
|
+
export function verify(partialSeqLengths) {
|
|
895
889
|
if (partialSeqLengths["clientSeqNumbers"]) {
|
|
896
890
|
for (const cliSeq of partialSeqLengths["clientSeqNumbers"]) {
|
|
897
891
|
if (cliSeq) {
|
|
@@ -899,15 +893,14 @@ function verify(partialSeqLengths) {
|
|
|
899
893
|
}
|
|
900
894
|
}
|
|
901
895
|
// If we have client view, we should have the flat view
|
|
902
|
-
|
|
896
|
+
assert(!!partialSeqLengths["partialLengths"], 0x059 /* "Client view exists but flat view does not!" */);
|
|
903
897
|
verifyPartialLengths(partialSeqLengths, partialSeqLengths["partialLengths"], false);
|
|
904
898
|
}
|
|
905
899
|
else {
|
|
906
900
|
// If we don't have a client view, we shouldn't have the flat view either
|
|
907
|
-
|
|
901
|
+
assert(!partialSeqLengths["partialLengths"], 0x05b /* "Flat view exists but client view does not!" */);
|
|
908
902
|
}
|
|
909
903
|
}
|
|
910
|
-
exports.verify = verify;
|
|
911
904
|
/* eslint-enable @typescript-eslint/dot-notation */
|
|
912
905
|
/**
|
|
913
906
|
* Clones an `overlapRemoveClients` red-black tree.
|
|
@@ -916,7 +909,7 @@ function cloneOverlapRemoveClients(oldTree) {
|
|
|
916
909
|
if (!oldTree) {
|
|
917
910
|
return undefined;
|
|
918
911
|
}
|
|
919
|
-
const newTree = new
|
|
912
|
+
const newTree = new RedBlackTree(compareNumbers);
|
|
920
913
|
oldTree.map((bProp) => {
|
|
921
914
|
newTree.put(bProp.data.clientId, { ...bProp.data });
|
|
922
915
|
return true;
|
|
@@ -930,7 +923,7 @@ function cloneOverlapRemoveClients(oldTree) {
|
|
|
930
923
|
*
|
|
931
924
|
* Combination is performed additively on `seglen` on a per-client basis.
|
|
932
925
|
*/
|
|
933
|
-
function combineOverlapClients(a, b) {
|
|
926
|
+
export function combineOverlapClients(a, b) {
|
|
934
927
|
function combine(treeA, treeB) {
|
|
935
928
|
if (treeA) {
|
|
936
929
|
if (treeB) {
|
|
@@ -959,7 +952,6 @@ function combineOverlapClients(a, b) {
|
|
|
959
952
|
a.overlapObliterateClients = overlapObliterateClients;
|
|
960
953
|
}
|
|
961
954
|
}
|
|
962
|
-
exports.combineOverlapClients = combineOverlapClients;
|
|
963
955
|
/**
|
|
964
956
|
* Given a number of seq-sorted `partialLength` lists, merges them into a combined seq-sorted `partialLength`
|
|
965
957
|
* list. This merge includes coalescing `PartialSequenceLength` entries at the same seq.
|
|
@@ -1037,4 +1029,4 @@ function insertIntoList(list, index, elem) {
|
|
|
1037
1029
|
list.push(elem);
|
|
1038
1030
|
}
|
|
1039
1031
|
}
|
|
1040
|
-
//# sourceMappingURL=partialLengths.
|
|
1032
|
+
//# sourceMappingURL=partialLengths.mjs.map
|