@fluidframework/merge-tree 2.1.0-276326 → 2.1.0-281041
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/.eslintrc.cjs +2 -4
- package/README.md +112 -2
- package/api-extractor/api-extractor.current.json +5 -0
- package/api-extractor/api-extractor.legacy.json +1 -1
- package/api-extractor.json +1 -1
- package/api-report/merge-tree.legacy.alpha.api.md +10 -22
- package/api-report/merge-tree.legacy.public.api.md +9 -0
- package/dist/MergeTreeTextHelper.d.ts.map +1 -1
- package/dist/MergeTreeTextHelper.js +1 -1
- package/dist/MergeTreeTextHelper.js.map +1 -1
- package/dist/attributionCollection.d.ts.map +1 -1
- package/dist/attributionCollection.js +65 -17
- package/dist/attributionCollection.js.map +1 -1
- package/dist/attributionPolicy.d.ts +2 -1
- package/dist/attributionPolicy.d.ts.map +1 -1
- package/dist/attributionPolicy.js +10 -3
- package/dist/attributionPolicy.js.map +1 -1
- package/dist/client.d.ts +3 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +65 -37
- package/dist/client.js.map +1 -1
- package/dist/collections/list.d.ts.map +1 -1
- package/dist/collections/list.js +5 -2
- package/dist/collections/list.js.map +1 -1
- package/dist/collections/rbTree.d.ts +2 -2
- package/dist/collections/rbTree.d.ts.map +1 -1
- package/dist/collections/rbTree.js +23 -35
- package/dist/collections/rbTree.js.map +1 -1
- package/dist/endOfTreeSegment.d.ts.map +1 -1
- package/dist/endOfTreeSegment.js +4 -1
- package/dist/endOfTreeSegment.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/localReference.d.ts +16 -6
- package/dist/localReference.d.ts.map +1 -1
- package/dist/localReference.js +31 -20
- package/dist/localReference.js.map +1 -1
- package/dist/mergeTree.d.ts +0 -1
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +127 -112
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
- package/dist/mergeTreeNodeWalk.js +1 -1
- package/dist/mergeTreeNodeWalk.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +6 -5
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +29 -20
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/mergeTreeTracking.js +3 -3
- package/dist/mergeTreeTracking.js.map +1 -1
- package/dist/opBuilder.d.ts +6 -1
- package/dist/opBuilder.d.ts.map +1 -1
- package/dist/opBuilder.js +5 -0
- package/dist/opBuilder.js.map +1 -1
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js.map +1 -1
- package/dist/ordinal.d.ts.map +1 -1
- package/dist/ordinal.js +7 -0
- package/dist/ordinal.js.map +1 -1
- package/dist/partialLengths.d.ts +4 -2
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +101 -53
- package/dist/partialLengths.js.map +1 -1
- package/dist/perspective.d.ts +4 -1
- package/dist/perspective.d.ts.map +1 -1
- package/dist/perspective.js +7 -6
- package/dist/perspective.js.map +1 -1
- package/dist/properties.d.ts +13 -10
- package/dist/properties.d.ts.map +1 -1
- package/dist/properties.js +22 -11
- package/dist/properties.js.map +1 -1
- package/dist/public.d.ts +1 -1
- package/dist/referencePositions.d.ts +7 -0
- package/dist/referencePositions.d.ts.map +1 -1
- package/dist/referencePositions.js +7 -0
- package/dist/referencePositions.js.map +1 -1
- package/dist/revertibles.d.ts +6 -0
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +50 -21
- package/dist/revertibles.js.map +1 -1
- package/dist/segmentGroupCollection.d.ts.map +1 -1
- package/dist/segmentGroupCollection.js +2 -0
- package/dist/segmentGroupCollection.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +7 -3
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +20 -15
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotChunks.d.ts.map +1 -1
- package/dist/snapshotChunks.js +10 -5
- package/dist/snapshotChunks.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js +14 -10
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js +20 -8
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +4 -2
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/sortedSegmentSet.d.ts.map +1 -1
- package/dist/sortedSegmentSet.js +8 -1
- package/dist/sortedSegmentSet.js.map +1 -1
- package/dist/sortedSet.d.ts.map +1 -1
- package/dist/sortedSet.js +4 -0
- package/dist/sortedSet.js.map +1 -1
- package/dist/test/Insertion.perf.spec.js.map +1 -1
- package/dist/test/Removal.perf.spec.js.map +1 -1
- package/dist/test/Snapshot.perf.spec.js +1 -0
- package/dist/test/Snapshot.perf.spec.js.map +1 -1
- package/dist/test/attributionCollection.perf.spec.js +3 -1
- package/dist/test/attributionCollection.perf.spec.js.map +1 -1
- package/dist/test/attributionCollection.spec.js +69 -68
- package/dist/test/attributionCollection.spec.js.map +1 -1
- package/dist/test/attributionPolicy.spec.js +29 -27
- package/dist/test/attributionPolicy.spec.js.map +1 -1
- package/dist/test/beastTest.spec.d.ts +1 -4
- package/dist/test/beastTest.spec.d.ts.map +1 -1
- package/dist/test/beastTest.spec.js +32 -30
- package/dist/test/beastTest.spec.js.map +1 -1
- package/dist/test/client.annotateMarker.spec.js +5 -5
- package/dist/test/client.annotateMarker.spec.js.map +1 -1
- package/dist/test/client.apis.spec.d.ts.map +1 -1
- package/dist/test/client.apis.spec.js +5 -7
- package/dist/test/client.apis.spec.js.map +1 -1
- package/dist/test/client.applyMsg.spec.js +125 -103
- package/dist/test/client.applyMsg.spec.js.map +1 -1
- package/dist/test/client.applyStashedOpFarm.spec.js +18 -10
- package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -1
- package/dist/test/client.attributionFarm.spec.js +13 -8
- package/dist/test/client.attributionFarm.spec.js.map +1 -1
- package/dist/test/client.conflictFarm.spec.js +4 -2
- package/dist/test/client.conflictFarm.spec.js.map +1 -1
- package/dist/test/client.getPosition.spec.js +10 -10
- package/dist/test/client.getPosition.spec.js.map +1 -1
- package/dist/test/client.localReference.spec.js +111 -104
- package/dist/test/client.localReference.spec.js.map +1 -1
- package/dist/test/client.localReferenceFarm.spec.js +14 -10
- package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
- package/dist/test/client.rebasePosition.spec.js +12 -12
- package/dist/test/client.rebasePosition.spec.js.map +1 -1
- package/dist/test/client.reconnectFarm.spec.js +12 -9
- package/dist/test/client.reconnectFarm.spec.js.map +1 -1
- package/dist/test/client.replay.spec.js +11 -10
- package/dist/test/client.replay.spec.js.map +1 -1
- package/dist/test/client.rollback.spec.js +87 -84
- package/dist/test/client.rollback.spec.js.map +1 -1
- package/dist/test/client.rollbackFarm.spec.js +3 -1
- package/dist/test/client.rollbackFarm.spec.js.map +1 -1
- package/dist/test/client.searchForMarker.spec.js +122 -112
- package/dist/test/client.searchForMarker.spec.js.map +1 -1
- package/dist/test/client.walkSegments.spec.js +7 -7
- package/dist/test/client.walkSegments.spec.js.map +1 -1
- package/dist/test/collections.list.spec.js +14 -14
- package/dist/test/collections.list.spec.js.map +1 -1
- package/dist/test/createInsertOnlyAttributionPolicy.spec.js +3 -3
- package/dist/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
- package/dist/test/dirname.cjs +1 -0
- package/dist/test/dirname.cjs.map +1 -1
- package/dist/test/dirname.d.cts.map +1 -1
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js +7 -7
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.annotate.spec.js +87 -87
- package/dist/test/mergeTree.annotate.spec.js.map +1 -1
- package/dist/test/mergeTree.insert.deltaCallback.spec.js +6 -6
- package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.insertingWalk.spec.js +24 -24
- package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +6 -6
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.spec.js +23 -23
- package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/dist/test/mergeTree.walk.spec.js +3 -3
- package/dist/test/mergeTree.walk.spec.js.map +1 -1
- package/dist/test/mergeTree.zamboni.spec.js +10 -10
- package/dist/test/mergeTree.zamboni.spec.js.map +1 -1
- package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
- package/dist/test/mergeTreeOperationRunner.js +28 -16
- package/dist/test/mergeTreeOperationRunner.js.map +1 -1
- package/dist/test/mergeTreeOperationRunner.spec.js +9 -5
- package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -1
- package/dist/test/obliterate.concurrent.spec.js +165 -165
- package/dist/test/obliterate.concurrent.spec.js.map +1 -1
- package/dist/test/obliterate.deltaCallback.spec.js +20 -21
- package/dist/test/obliterate.deltaCallback.spec.js.map +1 -1
- package/dist/test/obliterate.partialLength.spec.js +7 -7
- package/dist/test/obliterate.partialLength.spec.js.map +1 -1
- package/dist/test/obliterate.reconnect.spec.js +13 -13
- package/dist/test/obliterate.reconnect.spec.js.map +1 -1
- package/dist/test/obliterate.spec.js +9 -9
- package/dist/test/obliterate.spec.js.map +1 -1
- package/dist/test/ordinal.spec.js +10 -4
- package/dist/test/ordinal.spec.js.map +1 -1
- package/dist/test/partialLength.spec.js.map +1 -1
- package/dist/test/properties.spec.js +15 -15
- package/dist/test/properties.spec.js.map +1 -1
- package/dist/test/reconnectHelper.d.ts +4 -4
- package/dist/test/reconnectHelper.d.ts.map +1 -1
- package/dist/test/reconnectHelper.js +28 -20
- package/dist/test/reconnectHelper.js.map +1 -1
- package/dist/test/resetPendingSegmentsToOp.spec.js +35 -29
- package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/dist/test/revertibleFarm.spec.js +11 -10
- package/dist/test/revertibleFarm.spec.js.map +1 -1
- package/dist/test/revertibles.spec.d.ts.map +1 -1
- package/dist/test/revertibles.spec.js +96 -57
- package/dist/test/revertibles.spec.js.map +1 -1
- package/dist/test/segmentGroupCollection.spec.js +17 -17
- package/dist/test/segmentGroupCollection.spec.js.map +1 -1
- package/dist/test/snapshot.spec.js +5 -5
- package/dist/test/snapshot.spec.js.map +1 -1
- package/dist/test/snapshot.utils.d.ts.map +1 -1
- package/dist/test/snapshot.utils.js +6 -6
- package/dist/test/snapshot.utils.js.map +1 -1
- package/dist/test/snapshotlegacy.spec.js +18 -13
- package/dist/test/snapshotlegacy.spec.js.map +1 -1
- package/dist/test/sortedSegmentSet.spec.js +22 -18
- package/dist/test/sortedSegmentSet.spec.js.map +1 -1
- package/dist/test/testClient.d.ts +6 -5
- package/dist/test/testClient.d.ts.map +1 -1
- package/dist/test/testClient.js +30 -32
- package/dist/test/testClient.js.map +1 -1
- package/dist/test/testClientLogger.d.ts.map +1 -1
- package/dist/test/testClientLogger.js +39 -38
- package/dist/test/testClientLogger.js.map +1 -1
- package/dist/test/testSerializer.d.ts +5 -5
- package/dist/test/testSerializer.d.ts.map +1 -1
- package/dist/test/testSerializer.js +0 -1
- package/dist/test/testSerializer.js.map +1 -1
- package/dist/test/testServer.d.ts.map +1 -1
- package/dist/test/testServer.js.map +1 -1
- package/dist/test/testUtils.d.ts +1 -1
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +15 -17
- package/dist/test/testUtils.js.map +1 -1
- package/dist/test/text.d.ts.map +1 -1
- package/dist/test/text.js +1 -1
- package/dist/test/text.js.map +1 -1
- package/dist/test/tracking.spec.js +50 -46
- package/dist/test/tracking.spec.js.map +1 -1
- package/dist/test/wordUnitTests.spec.d.ts.map +1 -1
- package/dist/test/wordUnitTests.spec.js +10 -10
- package/dist/test/wordUnitTests.spec.js.map +1 -1
- package/dist/textSegment.d.ts +1 -1
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js +3 -3
- package/dist/textSegment.js.map +1 -1
- package/dist/zamboni.d.ts.map +1 -1
- package/dist/zamboni.js +7 -2
- package/dist/zamboni.js.map +1 -1
- package/internal.d.ts +1 -1
- package/legacy.d.ts +1 -1
- package/lib/MergeTreeTextHelper.d.ts.map +1 -1
- package/lib/MergeTreeTextHelper.js +1 -1
- package/lib/MergeTreeTextHelper.js.map +1 -1
- package/lib/attributionCollection.d.ts.map +1 -1
- package/lib/attributionCollection.js +65 -17
- package/lib/attributionCollection.js.map +1 -1
- package/lib/attributionPolicy.d.ts +2 -1
- package/lib/attributionPolicy.d.ts.map +1 -1
- package/lib/attributionPolicy.js +10 -3
- package/lib/attributionPolicy.js.map +1 -1
- package/lib/client.d.ts +3 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +65 -37
- package/lib/client.js.map +1 -1
- package/lib/collections/list.d.ts.map +1 -1
- package/lib/collections/list.js +5 -2
- package/lib/collections/list.js.map +1 -1
- package/lib/collections/rbTree.d.ts +2 -2
- package/lib/collections/rbTree.d.ts.map +1 -1
- package/lib/collections/rbTree.js +23 -35
- package/lib/collections/rbTree.js.map +1 -1
- package/lib/endOfTreeSegment.d.ts.map +1 -1
- package/lib/endOfTreeSegment.js +4 -1
- package/lib/endOfTreeSegment.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/localReference.d.ts +16 -6
- package/lib/localReference.d.ts.map +1 -1
- package/lib/localReference.js +31 -20
- package/lib/localReference.js.map +1 -1
- package/lib/mergeTree.d.ts +0 -1
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +127 -112
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeNodeWalk.d.ts.map +1 -1
- package/lib/mergeTreeNodeWalk.js +1 -1
- package/lib/mergeTreeNodeWalk.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +6 -5
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +29 -20
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/mergeTreeTracking.js +3 -3
- package/lib/mergeTreeTracking.js.map +1 -1
- package/lib/opBuilder.d.ts +6 -1
- package/lib/opBuilder.d.ts.map +1 -1
- package/lib/opBuilder.js +5 -0
- package/lib/opBuilder.js.map +1 -1
- package/lib/ops.d.ts.map +1 -1
- package/lib/ops.js.map +1 -1
- package/lib/ordinal.d.ts.map +1 -1
- package/lib/ordinal.js +7 -0
- package/lib/ordinal.js.map +1 -1
- package/lib/partialLengths.d.ts +4 -2
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +101 -53
- package/lib/partialLengths.js.map +1 -1
- package/lib/perspective.d.ts +4 -1
- package/lib/perspective.d.ts.map +1 -1
- package/lib/perspective.js +7 -6
- package/lib/perspective.js.map +1 -1
- package/lib/properties.d.ts +13 -10
- package/lib/properties.d.ts.map +1 -1
- package/lib/properties.js +22 -11
- package/lib/properties.js.map +1 -1
- package/lib/public.d.ts +1 -1
- package/lib/referencePositions.d.ts +7 -0
- package/lib/referencePositions.d.ts.map +1 -1
- package/lib/referencePositions.js +7 -0
- package/lib/referencePositions.js.map +1 -1
- package/lib/revertibles.d.ts +6 -0
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +50 -21
- package/lib/revertibles.js.map +1 -1
- package/lib/segmentGroupCollection.d.ts.map +1 -1
- package/lib/segmentGroupCollection.js +2 -0
- package/lib/segmentGroupCollection.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +7 -3
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +20 -15
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotChunks.d.ts.map +1 -1
- package/lib/snapshotChunks.js +10 -5
- package/lib/snapshotChunks.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js +14 -10
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js +20 -8
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +4 -2
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/sortedSegmentSet.d.ts.map +1 -1
- package/lib/sortedSegmentSet.js +8 -1
- package/lib/sortedSegmentSet.js.map +1 -1
- package/lib/sortedSet.d.ts.map +1 -1
- package/lib/sortedSet.js +4 -0
- package/lib/sortedSet.js.map +1 -1
- package/lib/test/Insertion.perf.spec.js.map +1 -1
- package/lib/test/Removal.perf.spec.js.map +1 -1
- package/lib/test/Snapshot.perf.spec.js +1 -0
- package/lib/test/Snapshot.perf.spec.js.map +1 -1
- package/lib/test/attributionCollection.perf.spec.js +3 -1
- package/lib/test/attributionCollection.perf.spec.js.map +1 -1
- package/lib/test/attributionCollection.spec.js +3 -2
- package/lib/test/attributionCollection.spec.js.map +1 -1
- package/lib/test/attributionPolicy.spec.js +3 -1
- package/lib/test/attributionPolicy.spec.js.map +1 -1
- package/lib/test/beastTest.spec.d.ts +1 -4
- package/lib/test/beastTest.spec.d.ts.map +1 -1
- package/lib/test/beastTest.spec.js +26 -24
- package/lib/test/beastTest.spec.js.map +1 -1
- package/lib/test/client.annotateMarker.spec.js +1 -1
- package/lib/test/client.annotateMarker.spec.js.map +1 -1
- package/lib/test/client.apis.spec.d.ts.map +1 -1
- package/lib/test/client.apis.spec.js +4 -6
- package/lib/test/client.apis.spec.js.map +1 -1
- package/lib/test/client.applyMsg.spec.js +72 -50
- package/lib/test/client.applyMsg.spec.js.map +1 -1
- package/lib/test/client.applyStashedOpFarm.spec.js +18 -10
- package/lib/test/client.applyStashedOpFarm.spec.js.map +1 -1
- package/lib/test/client.attributionFarm.spec.js +12 -7
- package/lib/test/client.attributionFarm.spec.js.map +1 -1
- package/lib/test/client.conflictFarm.spec.js +4 -2
- package/lib/test/client.conflictFarm.spec.js.map +1 -1
- package/lib/test/client.getPosition.spec.js +1 -1
- package/lib/test/client.getPosition.spec.js.map +1 -1
- package/lib/test/client.localReference.spec.js +14 -7
- package/lib/test/client.localReference.spec.js.map +1 -1
- package/lib/test/client.localReferenceFarm.spec.js +13 -9
- package/lib/test/client.localReferenceFarm.spec.js.map +1 -1
- package/lib/test/client.rebasePosition.spec.js +1 -1
- package/lib/test/client.rebasePosition.spec.js.map +1 -1
- package/lib/test/client.reconnectFarm.spec.js +11 -8
- package/lib/test/client.reconnectFarm.spec.js.map +1 -1
- package/lib/test/client.replay.spec.js +8 -7
- package/lib/test/client.replay.spec.js.map +1 -1
- package/lib/test/client.rollback.spec.js +14 -11
- package/lib/test/client.rollback.spec.js.map +1 -1
- package/lib/test/client.rollbackFarm.spec.js +3 -1
- package/lib/test/client.rollbackFarm.spec.js.map +1 -1
- package/lib/test/client.searchForMarker.spec.js +29 -19
- package/lib/test/client.searchForMarker.spec.js.map +1 -1
- package/lib/test/client.walkSegments.spec.js +1 -1
- package/lib/test/client.walkSegments.spec.js.map +1 -1
- package/lib/test/collections.list.spec.js +1 -1
- package/lib/test/collections.list.spec.js.map +1 -1
- package/lib/test/createInsertOnlyAttributionPolicy.spec.js +1 -1
- package/lib/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
- package/lib/test/dirname.cjs +1 -0
- package/lib/test/dirname.cjs.map +1 -1
- package/lib/test/dirname.d.cts.map +1 -1
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js +1 -1
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.annotate.spec.js +1 -1
- package/lib/test/mergeTree.annotate.spec.js.map +1 -1
- package/lib/test/mergeTree.insert.deltaCallback.spec.js +1 -1
- package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.insertingWalk.spec.js +8 -8
- package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +1 -1
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.markRangeRemoved.spec.js +1 -1
- package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/lib/test/mergeTree.walk.spec.js +1 -1
- package/lib/test/mergeTree.walk.spec.js.map +1 -1
- package/lib/test/mergeTree.zamboni.spec.js +1 -1
- package/lib/test/mergeTree.zamboni.spec.js.map +1 -1
- package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -1
- package/lib/test/mergeTreeOperationRunner.js +27 -15
- package/lib/test/mergeTreeOperationRunner.js.map +1 -1
- package/lib/test/mergeTreeOperationRunner.spec.js +5 -1
- package/lib/test/mergeTreeOperationRunner.spec.js.map +1 -1
- package/lib/test/obliterate.concurrent.spec.js +4 -4
- package/lib/test/obliterate.concurrent.spec.js.map +1 -1
- package/lib/test/obliterate.deltaCallback.spec.js +2 -3
- package/lib/test/obliterate.deltaCallback.spec.js.map +1 -1
- package/lib/test/obliterate.partialLength.spec.js +1 -1
- package/lib/test/obliterate.partialLength.spec.js.map +1 -1
- package/lib/test/obliterate.reconnect.spec.js +1 -1
- package/lib/test/obliterate.reconnect.spec.js.map +1 -1
- package/lib/test/obliterate.spec.js +1 -1
- package/lib/test/obliterate.spec.js.map +1 -1
- package/lib/test/ordinal.spec.js +7 -1
- package/lib/test/ordinal.spec.js.map +1 -1
- package/lib/test/partialLength.spec.js.map +1 -1
- package/lib/test/properties.spec.js +1 -1
- package/lib/test/properties.spec.js.map +1 -1
- package/lib/test/reconnectHelper.d.ts +4 -4
- package/lib/test/reconnectHelper.d.ts.map +1 -1
- package/lib/test/reconnectHelper.js +22 -14
- package/lib/test/reconnectHelper.js.map +1 -1
- package/lib/test/resetPendingSegmentsToOp.spec.js +8 -2
- package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/lib/test/revertibleFarm.spec.js +8 -7
- package/lib/test/revertibleFarm.spec.js.map +1 -1
- package/lib/test/revertibles.spec.d.ts.map +1 -1
- package/lib/test/revertibles.spec.js +93 -54
- package/lib/test/revertibles.spec.js.map +1 -1
- package/lib/test/segmentGroupCollection.spec.js +1 -1
- package/lib/test/segmentGroupCollection.spec.js.map +1 -1
- package/lib/test/snapshot.spec.js +1 -1
- package/lib/test/snapshot.spec.js.map +1 -1
- package/lib/test/snapshot.utils.d.ts.map +1 -1
- package/lib/test/snapshot.utils.js +1 -1
- package/lib/test/snapshot.utils.js.map +1 -1
- package/lib/test/snapshotlegacy.spec.js +10 -5
- package/lib/test/snapshotlegacy.spec.js.map +1 -1
- package/lib/test/sortedSegmentSet.spec.js +6 -2
- package/lib/test/sortedSegmentSet.spec.js.map +1 -1
- package/lib/test/testClient.d.ts +6 -5
- package/lib/test/testClient.d.ts.map +1 -1
- package/lib/test/testClient.js +25 -27
- package/lib/test/testClient.js.map +1 -1
- package/lib/test/testClientLogger.d.ts.map +1 -1
- package/lib/test/testClientLogger.js +37 -36
- package/lib/test/testClientLogger.js.map +1 -1
- package/lib/test/testSerializer.d.ts +5 -5
- package/lib/test/testSerializer.d.ts.map +1 -1
- package/lib/test/testSerializer.js +0 -1
- package/lib/test/testSerializer.js.map +1 -1
- package/lib/test/testServer.d.ts.map +1 -1
- package/lib/test/testServer.js.map +1 -1
- package/lib/test/testUtils.d.ts +1 -1
- package/lib/test/testUtils.d.ts.map +1 -1
- package/lib/test/testUtils.js +6 -8
- package/lib/test/testUtils.js.map +1 -1
- package/lib/test/text.d.ts.map +1 -1
- package/lib/test/text.js +1 -1
- package/lib/test/text.js.map +1 -1
- package/lib/test/tracking.spec.js +9 -5
- package/lib/test/tracking.spec.js.map +1 -1
- package/lib/test/wordUnitTests.spec.d.ts.map +1 -1
- package/lib/test/wordUnitTests.spec.js +9 -9
- package/lib/test/wordUnitTests.spec.js.map +1 -1
- package/lib/textSegment.d.ts +1 -1
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js +3 -3
- package/lib/textSegment.js.map +1 -1
- package/lib/zamboni.d.ts.map +1 -1
- package/lib/zamboni.js +7 -2
- package/lib/zamboni.js.map +1 -1
- package/package.json +29 -27
- package/src/MergeTreeTextHelper.ts +2 -2
- package/src/attributionCollection.ts +71 -28
- package/src/attributionPolicy.ts +14 -9
- package/src/client.ts +120 -71
- package/src/collections/list.ts +9 -6
- package/src/collections/rbTree.ts +62 -71
- package/src/endOfTreeSegment.ts +21 -10
- package/src/localReference.ts +61 -43
- package/src/mergeTree.ts +229 -178
- package/src/mergeTreeNodeWalk.ts +2 -1
- package/src/mergeTreeNodes.ts +59 -46
- package/src/mergeTreeTracking.ts +3 -3
- package/src/opBuilder.ts +6 -1
- package/src/ops.ts +5 -0
- package/src/ordinal.ts +8 -1
- package/src/partialLengths.ts +143 -87
- package/src/perspective.ts +10 -7
- package/src/properties.ts +36 -18
- package/src/referencePositions.ts +7 -0
- package/src/revertibles.ts +71 -41
- package/src/segmentGroupCollection.ts +8 -6
- package/src/segmentPropertiesManager.ts +28 -24
- package/src/snapshotChunks.ts +12 -7
- package/src/snapshotLoader.ts +20 -17
- package/src/snapshotV1.ts +36 -18
- package/src/snapshotlegacy.ts +7 -5
- package/src/sortedSegmentSet.ts +9 -3
- package/src/sortedSet.ts +7 -3
- package/src/textSegment.ts +9 -9
- package/src/zamboni.ts +14 -10
- package/tsconfig.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeTree.annotate.deltaCallback.spec.js","sourceRoot":"","sources":["../../src/test/mergeTree.annotate.deltaCallback.spec.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,
|
|
1
|
+
{"version":3,"file":"mergeTree.annotate.deltaCallback.spec.js","sourceRoot":"","sources":["../../src/test/mergeTree.annotate.deltaCallback.spec.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 { strict as assert } from \"node:assert\";\n\nimport {\n\tLocalClientId,\n\tUnassignedSequenceNumber,\n\tUniversalSequenceNumber,\n} from \"../constants.js\";\nimport { MergeTree } from \"../mergeTree.js\";\nimport { MergeTreeMaintenanceType } from \"../mergeTreeDeltaCallback.js\";\nimport { MergeTreeDeltaType } from \"../ops.js\";\nimport { TextSegment } from \"../textSegment.js\";\n\nimport { countOperations, insertSegments, insertText, markRangeRemoved } from \"./testUtils.js\";\n\ndescribe(\"MergeTree\", () => {\n\tlet mergeTree: MergeTree;\n\tconst localClientId = 17;\n\tlet currentSequenceNumber: number;\n\tbeforeEach(() => {\n\t\tmergeTree = new MergeTree();\n\t\tinsertSegments({\n\t\t\tmergeTree,\n\t\t\tpos: 0,\n\t\t\tsegments: [TextSegment.make(\"hello world\")],\n\t\t\trefSeq: UniversalSequenceNumber,\n\t\t\tclientId: LocalClientId,\n\t\t\tseq: UniversalSequenceNumber,\n\t\t\topArgs: undefined,\n\t\t});\n\n\t\tcurrentSequenceNumber = 0;\n\t\tmergeTree.startCollaboration(\n\t\t\tlocalClientId,\n\t\t\t/* minSeq: */ currentSequenceNumber,\n\t\t\t/* currentSeq: */ currentSequenceNumber,\n\t\t);\n\t});\n\n\tdescribe(\"annotateRange\", () => {\n\t\tit(\"Event on annotation\", () => {\n\t\t\tconst count = countOperations(mergeTree);\n\n\t\t\tmergeTree.annotateRange(\n\t\t\t\t4,\n\t\t\t\t6,\n\t\t\t\t{\n\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t},\n\t\t\t\tcurrentSequenceNumber,\n\t\t\t\tlocalClientId,\n\t\t\t\tUnassignedSequenceNumber,\n\t\t\t\tundefined as never,\n\t\t\t);\n\n\t\t\tassert.deepStrictEqual(count, {\n\t\t\t\t[MergeTreeDeltaType.ANNOTATE]: 1,\n\t\t\t\t[MergeTreeMaintenanceType.SPLIT]: 2,\n\t\t\t});\n\t\t});\n\n\t\tit(\"No event on annotation of empty range\", () => {\n\t\t\tconst count = countOperations(mergeTree);\n\t\t\tmergeTree.annotateRange(\n\t\t\t\t3,\n\t\t\t\t3,\n\t\t\t\t{\n\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t},\n\t\t\t\tcurrentSequenceNumber,\n\t\t\t\tlocalClientId,\n\t\t\t\t++currentSequenceNumber,\n\t\t\t\tundefined as never,\n\t\t\t);\n\n\t\t\tassert.deepStrictEqual(count, {\n\t\t\t\t[MergeTreeMaintenanceType.SPLIT]: 1,\n\t\t\t});\n\t\t});\n\n\t\tit(\"Annotate over local insertion\", () => {\n\t\t\tinsertText({\n\t\t\t\tmergeTree,\n\t\t\t\tpos: 4,\n\t\t\t\trefSeq: currentSequenceNumber,\n\t\t\t\tclientId: localClientId,\n\t\t\t\tseq: UnassignedSequenceNumber,\n\t\t\t\ttext: \"a\",\n\t\t\t\tprops: undefined,\n\t\t\t\topArgs: undefined,\n\t\t\t});\n\n\t\t\tconst count = countOperations(mergeTree);\n\n\t\t\tmergeTree.annotateRange(\n\t\t\t\t3,\n\t\t\t\t8,\n\t\t\t\t{\n\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t},\n\t\t\t\tcurrentSequenceNumber,\n\t\t\t\tlocalClientId,\n\t\t\t\tUnassignedSequenceNumber,\n\t\t\t\tundefined as never,\n\t\t\t);\n\n\t\t\tassert.deepStrictEqual(count, {\n\t\t\t\t[MergeTreeDeltaType.ANNOTATE]: 1,\n\t\t\t\t[MergeTreeMaintenanceType.SPLIT]: 2,\n\t\t\t});\n\t\t});\n\n\t\tit(\"Annotate over remote insertion\", () => {\n\t\t\tconst remoteClientId: number = 35;\n\t\t\tlet remoteSequenceNumber = currentSequenceNumber;\n\n\t\t\tinsertText({\n\t\t\t\tmergeTree,\n\t\t\t\tpos: 4,\n\t\t\t\trefSeq: remoteSequenceNumber,\n\t\t\t\tclientId: remoteClientId,\n\t\t\t\tseq: ++remoteSequenceNumber,\n\t\t\t\ttext: \"a\",\n\t\t\t\tprops: undefined,\n\t\t\t\topArgs: undefined,\n\t\t\t});\n\n\t\t\tconst count = countOperations(mergeTree);\n\n\t\t\tmergeTree.annotateRange(\n\t\t\t\t3,\n\t\t\t\t8,\n\t\t\t\t{\n\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t},\n\t\t\t\tcurrentSequenceNumber,\n\t\t\t\tlocalClientId,\n\t\t\t\tUnassignedSequenceNumber,\n\t\t\t\tundefined as never,\n\t\t\t);\n\n\t\t\tassert.deepStrictEqual(count, {\n\t\t\t\t[MergeTreeDeltaType.ANNOTATE]: 1,\n\t\t\t\t[MergeTreeMaintenanceType.SPLIT]: 2,\n\t\t\t});\n\t\t});\n\n\t\tit(\"Annotate over remote deletion\", () => {\n\t\t\tconst remoteClientId: number = 35;\n\t\t\tlet remoteSequenceNumber = currentSequenceNumber;\n\n\t\t\tmarkRangeRemoved({\n\t\t\t\tmergeTree,\n\t\t\t\tstart: 4,\n\t\t\t\tend: 6,\n\t\t\t\trefSeq: remoteSequenceNumber,\n\t\t\t\tclientId: remoteClientId,\n\t\t\t\tseq: ++remoteSequenceNumber,\n\t\t\t\toverwrite: false,\n\t\t\t\topArgs: undefined as never,\n\t\t\t});\n\n\t\t\tconst count = countOperations(mergeTree);\n\n\t\t\tmergeTree.annotateRange(\n\t\t\t\t3,\n\t\t\t\t8,\n\t\t\t\t{\n\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t},\n\t\t\t\tcurrentSequenceNumber,\n\t\t\t\tlocalClientId,\n\t\t\t\tUnassignedSequenceNumber,\n\t\t\t\tundefined as never,\n\t\t\t);\n\n\t\t\tassert.deepStrictEqual(count, {\n\t\t\t\t[MergeTreeDeltaType.ANNOTATE]: 1,\n\t\t\t\t[MergeTreeMaintenanceType.SPLIT]: 2,\n\t\t\t});\n\t\t});\n\n\t\tit(\"Remote annotate within local deletion\", () => {\n\t\t\tconst remoteClientId: number = 35;\n\t\t\tlet remoteSequenceNumber = currentSequenceNumber;\n\n\t\t\tmarkRangeRemoved({\n\t\t\t\tmergeTree,\n\t\t\t\tstart: 3,\n\t\t\t\tend: 8,\n\t\t\t\trefSeq: currentSequenceNumber,\n\t\t\t\tclientId: localClientId,\n\t\t\t\tseq: UnassignedSequenceNumber,\n\t\t\t\toverwrite: false,\n\t\t\t\topArgs: undefined as never,\n\t\t\t});\n\n\t\t\tconst count = countOperations(mergeTree);\n\n\t\t\tmergeTree.annotateRange(\n\t\t\t\t4,\n\t\t\t\t6,\n\t\t\t\t{\n\t\t\t\t\tfoo: \"bar\",\n\t\t\t\t},\n\t\t\t\tremoteSequenceNumber,\n\t\t\t\tremoteClientId,\n\t\t\t\t++remoteSequenceNumber,\n\t\t\t\tundefined as never,\n\t\t\t);\n\n\t\t\tassert.deepStrictEqual(count, {\n\t\t\t\t[MergeTreeMaintenanceType.SPLIT]: 2,\n\t\t\t});\n\t\t});\n\t});\n});\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
7
|
+
const node_assert_1 = require("node:assert");
|
|
8
8
|
const constants_js_1 = require("../constants.js");
|
|
9
9
|
const mergeTree_js_1 = require("../mergeTree.js");
|
|
10
10
|
const mergeTreeNodes_js_1 = require("../mergeTreeNodes.js");
|
|
@@ -50,7 +50,7 @@ describe("MergeTree", () => {
|
|
|
50
50
|
}, currentSequenceNumber, remoteClientId, currentSequenceNumber + 1, undefined);
|
|
51
51
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
52
52
|
const segment = segmentInfo.segment;
|
|
53
|
-
|
|
53
|
+
node_assert_1.strict.equal(segment?.properties?.propertySource, "remote");
|
|
54
54
|
});
|
|
55
55
|
it("local", () => {
|
|
56
56
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -58,7 +58,7 @@ describe("MergeTree", () => {
|
|
|
58
58
|
}, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
59
59
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
60
60
|
const segment = segmentInfo.segment;
|
|
61
|
-
|
|
61
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
64
|
describe("collaborating", () => {
|
|
@@ -77,7 +77,7 @@ describe("MergeTree", () => {
|
|
|
77
77
|
it("unsequenced local", () => {
|
|
78
78
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
79
79
|
const segment = segmentInfo.segment;
|
|
80
|
-
|
|
80
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
81
81
|
});
|
|
82
82
|
it("unsequenced local after unsequenced local", () => {
|
|
83
83
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -85,13 +85,13 @@ describe("MergeTree", () => {
|
|
|
85
85
|
}, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
86
86
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
87
87
|
const segment = segmentInfo.segment;
|
|
88
|
-
|
|
88
|
+
node_assert_1.strict.equal(segment.properties?.secondProperty, "local");
|
|
89
89
|
});
|
|
90
90
|
it("unsequenced local split", () => {
|
|
91
91
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
92
92
|
const segment = segmentInfo.segment;
|
|
93
93
|
const splitSegment = segment.splitAt(splitPos);
|
|
94
|
-
|
|
94
|
+
node_assert_1.strict.equal(splitSegment.properties?.propertySource, "local");
|
|
95
95
|
});
|
|
96
96
|
it("unsequenced local after unsequenced local split", () => {
|
|
97
97
|
const secondChangeProps = {
|
|
@@ -106,14 +106,14 @@ describe("MergeTree", () => {
|
|
|
106
106
|
const segment = segmentInfo.segment;
|
|
107
107
|
const splitSegmentInfo = mergeTree.getContainingSegment(splitPos, currentSequenceNumber, localClientId);
|
|
108
108
|
const splitSegment = splitSegmentInfo.segment;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
(0,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 2);
|
|
110
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
111
|
+
node_assert_1.strict.equal(segment.properties?.secondChange, 1);
|
|
112
|
+
(0, node_assert_1.strict)(!segment.properties?.splitOnly);
|
|
113
|
+
node_assert_1.strict.equal(splitSegment.segmentGroups.size, 3);
|
|
114
|
+
node_assert_1.strict.equal(splitSegment.properties?.propertySource, "local");
|
|
115
|
+
node_assert_1.strict.equal(splitSegment.properties?.secondChange, 1);
|
|
116
|
+
node_assert_1.strict.equal(splitSegment.properties?.splitOnly, 1);
|
|
117
117
|
mergeTree.ackPendingSegment({
|
|
118
118
|
op: {
|
|
119
119
|
pos1: annotateStart,
|
|
@@ -125,14 +125,14 @@ describe("MergeTree", () => {
|
|
|
125
125
|
sequenceNumber: ++currentSequenceNumber,
|
|
126
126
|
},
|
|
127
127
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
(0,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
128
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 1);
|
|
129
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
130
|
+
node_assert_1.strict.equal(segment.properties?.secondChange, 1);
|
|
131
|
+
(0, node_assert_1.strict)(!segment.properties?.splitOnly);
|
|
132
|
+
node_assert_1.strict.equal(splitSegment.segmentGroups.size, 2);
|
|
133
|
+
node_assert_1.strict.equal(splitSegment.properties?.propertySource, "local");
|
|
134
|
+
node_assert_1.strict.equal(splitSegment.properties?.secondChange, 1);
|
|
135
|
+
node_assert_1.strict.equal(splitSegment.properties?.splitOnly, 1);
|
|
136
136
|
mergeTree.ackPendingSegment({
|
|
137
137
|
op: {
|
|
138
138
|
pos1: annotateStart,
|
|
@@ -144,14 +144,14 @@ describe("MergeTree", () => {
|
|
|
144
144
|
sequenceNumber: ++currentSequenceNumber,
|
|
145
145
|
},
|
|
146
146
|
});
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
(0,
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
147
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 0);
|
|
148
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
149
|
+
node_assert_1.strict.equal(segment.properties?.secondChange, 1);
|
|
150
|
+
(0, node_assert_1.strict)(!segment.properties?.splitOnly);
|
|
151
|
+
node_assert_1.strict.equal(splitSegment.segmentGroups.size, 1);
|
|
152
|
+
node_assert_1.strict.equal(splitSegment.properties?.propertySource, "local");
|
|
153
|
+
node_assert_1.strict.equal(splitSegment.properties?.secondChange, 1);
|
|
154
|
+
node_assert_1.strict.equal(splitSegment.properties?.splitOnly, 1);
|
|
155
155
|
mergeTree.ackPendingSegment({
|
|
156
156
|
op: {
|
|
157
157
|
pos1: splitPos,
|
|
@@ -163,14 +163,14 @@ describe("MergeTree", () => {
|
|
|
163
163
|
sequenceNumber: ++currentSequenceNumber,
|
|
164
164
|
},
|
|
165
165
|
});
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
(0,
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
166
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 0);
|
|
167
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
168
|
+
node_assert_1.strict.equal(segment.properties?.secondChange, 1);
|
|
169
|
+
(0, node_assert_1.strict)(!segment.properties?.splitOnly);
|
|
170
|
+
node_assert_1.strict.equal(splitSegment.segmentGroups.size, 0);
|
|
171
|
+
node_assert_1.strict.equal(splitSegment.properties?.propertySource, "local");
|
|
172
|
+
node_assert_1.strict.equal(splitSegment.properties?.secondChange, 1);
|
|
173
|
+
node_assert_1.strict.equal(splitSegment.properties?.splitOnly, 1);
|
|
174
174
|
});
|
|
175
175
|
it("unsequenced local before remote", () => {
|
|
176
176
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -179,9 +179,9 @@ describe("MergeTree", () => {
|
|
|
179
179
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
180
180
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
181
181
|
const segment = segmentInfo.segment;
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 1);
|
|
183
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
184
|
+
node_assert_1.strict.equal(segment.properties?.remoteProperty, 1);
|
|
185
185
|
});
|
|
186
186
|
it("sequenced local", () => {
|
|
187
187
|
mergeTree.ackPendingSegment({
|
|
@@ -197,8 +197,8 @@ describe("MergeTree", () => {
|
|
|
197
197
|
});
|
|
198
198
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
199
199
|
const segment = segmentInfo.segment;
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 0);
|
|
201
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
202
202
|
});
|
|
203
203
|
it("sequenced local before remote", () => {
|
|
204
204
|
mergeTree.ackPendingSegment({
|
|
@@ -218,28 +218,28 @@ describe("MergeTree", () => {
|
|
|
218
218
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
219
219
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
220
220
|
const segment = segmentInfo.segment;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 0);
|
|
222
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "remote");
|
|
223
|
+
node_assert_1.strict.equal(segment.properties?.remoteProperty, 1);
|
|
224
224
|
});
|
|
225
225
|
it("three local changes", () => {
|
|
226
226
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
227
227
|
const segment = segmentInfo.segment;
|
|
228
|
-
|
|
228
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
229
229
|
const props2 = {
|
|
230
230
|
propertySource: "local2",
|
|
231
231
|
secondSource: 1,
|
|
232
232
|
};
|
|
233
233
|
mergeTree.annotateRange(annotateStart, annotateEnd, props2, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local2");
|
|
235
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, 1);
|
|
236
236
|
const props3 = {
|
|
237
237
|
thirdSource: 1,
|
|
238
238
|
};
|
|
239
239
|
mergeTree.annotateRange(annotateStart, annotateEnd, props3, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
240
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local2");
|
|
241
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, 1);
|
|
242
|
+
node_assert_1.strict.equal(segment.properties?.thirdSource, 1);
|
|
243
243
|
mergeTree.ackPendingSegment({
|
|
244
244
|
op: {
|
|
245
245
|
pos1: annotateStart,
|
|
@@ -251,9 +251,9 @@ describe("MergeTree", () => {
|
|
|
251
251
|
sequenceNumber: ++currentSequenceNumber,
|
|
252
252
|
},
|
|
253
253
|
});
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
254
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local2");
|
|
255
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, 1);
|
|
256
|
+
node_assert_1.strict.equal(segment.properties?.thirdSource, 1);
|
|
257
257
|
mergeTree.ackPendingSegment({
|
|
258
258
|
op: {
|
|
259
259
|
pos1: annotateStart,
|
|
@@ -265,9 +265,9 @@ describe("MergeTree", () => {
|
|
|
265
265
|
sequenceNumber: ++currentSequenceNumber,
|
|
266
266
|
},
|
|
267
267
|
});
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
268
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local2");
|
|
269
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, 1);
|
|
270
|
+
node_assert_1.strict.equal(segment.properties?.thirdSource, 1);
|
|
271
271
|
mergeTree.ackPendingSegment({
|
|
272
272
|
op: {
|
|
273
273
|
pos1: annotateStart,
|
|
@@ -279,9 +279,9 @@ describe("MergeTree", () => {
|
|
|
279
279
|
sequenceNumber: ++currentSequenceNumber,
|
|
280
280
|
},
|
|
281
281
|
});
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
282
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local2");
|
|
283
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, 1);
|
|
284
|
+
node_assert_1.strict.equal(segment.properties?.thirdSource, 1);
|
|
285
285
|
});
|
|
286
286
|
it("two local changes with interleaved remote", () => {
|
|
287
287
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -305,9 +305,9 @@ describe("MergeTree", () => {
|
|
|
305
305
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
306
306
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
307
307
|
const segment = segmentInfo.segment;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
308
|
+
node_assert_1.strict.equal(segment.properties?.remoteOnly, 1);
|
|
309
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "remote");
|
|
310
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, "local2");
|
|
311
311
|
});
|
|
312
312
|
});
|
|
313
313
|
describe("remote first", () => {
|
|
@@ -317,20 +317,20 @@ describe("MergeTree", () => {
|
|
|
317
317
|
remoteProperty: 1,
|
|
318
318
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
319
319
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
320
|
-
(0,
|
|
320
|
+
(0, node_assert_1.strict)(segmentInfo.segment?.segmentGroups.empty);
|
|
321
321
|
});
|
|
322
322
|
it("remote only", () => {
|
|
323
323
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
324
324
|
const segment = segmentInfo.segment;
|
|
325
|
-
|
|
326
|
-
|
|
325
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "remote");
|
|
326
|
+
node_assert_1.strict.equal(segment.properties?.remoteProperty, 1);
|
|
327
327
|
});
|
|
328
328
|
it("split remote", () => {
|
|
329
329
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
330
330
|
const segment = segmentInfo.segment;
|
|
331
331
|
const splitSegment = segment.splitAt(1);
|
|
332
|
-
|
|
333
|
-
|
|
332
|
+
node_assert_1.strict.equal(splitSegment.properties?.propertySource, "remote");
|
|
333
|
+
node_assert_1.strict.equal(splitSegment.properties?.remoteProperty, 1);
|
|
334
334
|
});
|
|
335
335
|
it("remote before unsequenced local", () => {
|
|
336
336
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -338,17 +338,17 @@ describe("MergeTree", () => {
|
|
|
338
338
|
}, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
339
339
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
340
340
|
const segment = segmentInfo.segment;
|
|
341
|
-
|
|
342
|
-
|
|
341
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
342
|
+
node_assert_1.strict.equal(segment.properties?.remoteProperty, 1);
|
|
343
343
|
});
|
|
344
344
|
it("remote before sequenced local", () => {
|
|
345
345
|
const props = {
|
|
346
346
|
propertySource: "local",
|
|
347
347
|
};
|
|
348
348
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
349
|
-
(0,
|
|
349
|
+
(0, node_assert_1.strict)(segmentInfo.segment?.segmentGroups.empty);
|
|
350
350
|
mergeTree.annotateRange(annotateStart, annotateEnd, props, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
351
|
-
|
|
351
|
+
node_assert_1.strict.equal(segmentInfo.segment?.segmentGroups.size, 1);
|
|
352
352
|
mergeTree.ackPendingSegment({
|
|
353
353
|
op: {
|
|
354
354
|
pos1: annotateStart,
|
|
@@ -360,9 +360,9 @@ describe("MergeTree", () => {
|
|
|
360
360
|
sequenceNumber: ++currentSequenceNumber,
|
|
361
361
|
},
|
|
362
362
|
});
|
|
363
|
-
(0,
|
|
364
|
-
|
|
365
|
-
|
|
363
|
+
(0, node_assert_1.strict)(segmentInfo.segment?.segmentGroups.empty);
|
|
364
|
+
node_assert_1.strict.equal(segmentInfo.segment?.properties?.propertySource, "local");
|
|
365
|
+
node_assert_1.strict.equal(segmentInfo.segment?.properties?.remoteProperty, 1);
|
|
366
366
|
});
|
|
367
367
|
});
|
|
368
368
|
describe("local with rewrite first", () => {
|
|
@@ -379,8 +379,8 @@ describe("MergeTree", () => {
|
|
|
379
379
|
}, currentSequenceNumber, localClientId, constants_js_1.UnassignedSequenceNumber, undefined);
|
|
380
380
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
381
381
|
const segment = segmentInfo.segment;
|
|
382
|
-
|
|
383
|
-
|
|
382
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local2");
|
|
383
|
+
node_assert_1.strict.equal(segment.properties?.secondProperty, "local");
|
|
384
384
|
});
|
|
385
385
|
it("unsequenced local before remote", () => {
|
|
386
386
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -389,9 +389,9 @@ describe("MergeTree", () => {
|
|
|
389
389
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
390
390
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
391
391
|
const segment = segmentInfo.segment;
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
392
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 1);
|
|
393
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "local");
|
|
394
|
+
node_assert_1.strict.equal(segment.properties?.remoteProperty, 1);
|
|
395
395
|
});
|
|
396
396
|
it("sequenced local before remote", () => {
|
|
397
397
|
mergeTree.ackPendingSegment({
|
|
@@ -411,9 +411,9 @@ describe("MergeTree", () => {
|
|
|
411
411
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
412
412
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
413
413
|
const segment = segmentInfo.segment;
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
414
|
+
node_assert_1.strict.equal(segment.segmentGroups.size, 0);
|
|
415
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "remote");
|
|
416
|
+
node_assert_1.strict.equal(segment.properties?.remoteProperty, 1);
|
|
417
417
|
});
|
|
418
418
|
it("two local changes with interleaved remote", () => {
|
|
419
419
|
mergeTree.annotateRange(annotateStart, annotateEnd, {
|
|
@@ -437,9 +437,9 @@ describe("MergeTree", () => {
|
|
|
437
437
|
}, currentSequenceNumber, remoteClientId, ++currentSequenceNumber, undefined);
|
|
438
438
|
const segmentInfo = mergeTree.getContainingSegment(annotateStart, currentSequenceNumber, localClientId);
|
|
439
439
|
const segment = segmentInfo.segment;
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
440
|
+
node_assert_1.strict.equal(segment.properties?.remoteOnly, 1);
|
|
441
|
+
node_assert_1.strict.equal(segment.properties?.propertySource, "remote");
|
|
442
|
+
node_assert_1.strict.equal(segment.properties?.secondSource, "local2");
|
|
443
443
|
});
|
|
444
444
|
});
|
|
445
445
|
});
|