@fluidframework/merge-tree 2.1.0-276985 → 2.1.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/.eslintrc.cjs +2 -4
- package/CHANGELOG.md +15 -0
- package/README.md +109 -1
- 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
package/dist/properties.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CACnB;AAED;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,eAAe,CAC9B,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACxB,OAAO,CA0BT;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAiBzF;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAelF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,QAAQ,EAAE,WAAW,GACnB,WAAW,CAKb;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAC/B,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAEzC"}
|
package/dist/properties.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createMap = exports.extendIfUndefined = exports.addProperties = exports.clone = exports.extend = exports.matchProperties = void 0;
|
|
8
8
|
/**
|
|
9
|
+
* Compares two PropertySets for equality.
|
|
10
|
+
*
|
|
9
11
|
* @internal
|
|
10
12
|
*/
|
|
11
13
|
function matchProperties(a, b) {
|
|
@@ -22,6 +24,7 @@ function matchProperties(a, b) {
|
|
|
22
24
|
return false;
|
|
23
25
|
}
|
|
24
26
|
else if (typeof b[key] === "object") {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
25
28
|
if (!matchProperties(a?.[key], b[key])) {
|
|
26
29
|
return false;
|
|
27
30
|
}
|
|
@@ -34,8 +37,8 @@ function matchProperties(a, b) {
|
|
|
34
37
|
}
|
|
35
38
|
exports.matchProperties = matchProperties;
|
|
36
39
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
40
|
+
* Adds properties from one PropertySet to another.
|
|
41
|
+
*
|
|
39
42
|
* @internal
|
|
40
43
|
*/
|
|
41
44
|
function extend(base, extension) {
|
|
@@ -43,11 +46,14 @@ function extend(base, extension) {
|
|
|
43
46
|
// eslint-disable-next-line guard-for-in, no-restricted-syntax
|
|
44
47
|
for (const key in extension) {
|
|
45
48
|
const v = extension[key];
|
|
49
|
+
// TODO Non null asserting, why is this not null?
|
|
46
50
|
if (v === null) {
|
|
47
51
|
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
48
52
|
delete base[key];
|
|
49
53
|
}
|
|
50
54
|
else {
|
|
55
|
+
// Non null aseerting here since we are checking if v is not null
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
51
57
|
base[key] = v;
|
|
52
58
|
}
|
|
53
59
|
}
|
|
@@ -56,8 +62,8 @@ function extend(base, extension) {
|
|
|
56
62
|
}
|
|
57
63
|
exports.extend = extend;
|
|
58
64
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
65
|
+
* Clones properties in a given PropertySet into a new PropertySet.
|
|
66
|
+
*
|
|
61
67
|
* @internal
|
|
62
68
|
*/
|
|
63
69
|
function clone(extension) {
|
|
@@ -69,6 +75,8 @@ function clone(extension) {
|
|
|
69
75
|
for (const key in extension) {
|
|
70
76
|
const v = extension[key];
|
|
71
77
|
if (v !== null) {
|
|
78
|
+
// If `v` is undefined, undefined must have been assignable to `T`.
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
72
80
|
cloneMap[key] = v;
|
|
73
81
|
}
|
|
74
82
|
}
|
|
@@ -76,19 +84,21 @@ function clone(extension) {
|
|
|
76
84
|
}
|
|
77
85
|
exports.clone = clone;
|
|
78
86
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
87
|
+
* Add properties in one PropertySet to another PropertySet. If the PropertySet we are adding
|
|
88
|
+
* to does not exist, create one.
|
|
89
|
+
*
|
|
81
90
|
* @internal
|
|
82
91
|
*/
|
|
83
92
|
function addProperties(oldProps, newProps) {
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
84
94
|
const _oldProps = oldProps ?? createMap();
|
|
85
95
|
extend(_oldProps, newProps);
|
|
86
96
|
return { ..._oldProps };
|
|
87
97
|
}
|
|
88
98
|
exports.addProperties = addProperties;
|
|
89
99
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
100
|
+
* Replace values of undefined in one PropertySet with values for the same key from another PropertySet.
|
|
101
|
+
*
|
|
92
102
|
* @internal
|
|
93
103
|
*/
|
|
94
104
|
function extendIfUndefined(base, extension) {
|
|
@@ -96,6 +106,8 @@ function extendIfUndefined(base, extension) {
|
|
|
96
106
|
// eslint-disable-next-line no-restricted-syntax
|
|
97
107
|
for (const key in extension) {
|
|
98
108
|
if (base[key] === undefined) {
|
|
109
|
+
// TODO Non null asserting, why is this not null?
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
99
111
|
base[key] = extension[key];
|
|
100
112
|
}
|
|
101
113
|
}
|
|
@@ -104,11 +116,10 @@ function extendIfUndefined(base, extension) {
|
|
|
104
116
|
}
|
|
105
117
|
exports.extendIfUndefined = extendIfUndefined;
|
|
106
118
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
119
|
+
* Create a MapLike with good performance.
|
|
120
|
+
*
|
|
109
121
|
* @internal
|
|
110
122
|
*/
|
|
111
|
-
// Create a MapLike with good performance.
|
|
112
123
|
function createMap() {
|
|
113
124
|
return Object.create(null);
|
|
114
125
|
}
|
package/dist/properties.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAyBH;;;;GAIG;AACH,SAAgB,eAAe,CAC9B,CAA0B,EAC1B,CAA0B;IAE1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACd,CAAC;aAAM,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvC,iEAAiE;YACjE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AA7BD,0CA6BC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAI,IAAgB,EAAE,SAAiC;IAC5E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,8DAA8D;QAC9D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,iDAAiD;YACjD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChB,gEAAgE;gBAChE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACP,iEAAiE;gBACjE,oEAAoE;gBACpE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAChB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAjBD,wBAiBC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAI,SAAiC;IACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,EAAK,CAAC;IAChC,8DAA8D;IAC9D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAChB,mEAAmE;YACnE,oEAAoE;YACpE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAfD,sBAeC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAC5B,QAAiC,EACjC,QAAqB;IAErB,8DAA8D;IAC9D,MAAM,SAAS,GAAG,QAAQ,IAAI,SAAS,EAAO,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5B,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;AACzB,CAAC;AARD,sCAQC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAChC,IAAgB,EAChB,SAAiC;IAEjC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,gDAAgD;QAChD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7B,iDAAiD;gBACjD,oEAAoE;gBACpE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAE,CAAC;YAC7B,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAfD,8CAeC;AAED;;;;GAIG;AACH,SAAgB,SAAS;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAe,CAAC;AAC1C,CAAC;AAFD,8BAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Any mapping from a string to values of type `T`\n * @legacy\n * @alpha\n */\nexport interface MapLike<T> {\n\t[index: string]: T;\n}\n\n/**\n * A loosely-typed mapping from strings to any value.\n *\n * @remarks Property sets are expected to be JSON-stringify-able.\n *\n * @privateRemarks PropertySet is typed using `any` because when you include\n * custom methods such as toJSON(), JSON.stringify accepts most types other than\n * functions\n * @legacy\n * @alpha\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertySet = MapLike<any>;\n\n/**\n * Compares two PropertySets for equality.\n *\n * @internal\n */\nexport function matchProperties(\n\ta: PropertySet | undefined,\n\tb: PropertySet | undefined,\n): boolean {\n\tif (!a && !b) {\n\t\treturn true;\n\t}\n\n\tconst keysA = a ? Object.keys(a) : [];\n\tconst keysB = b ? Object.keys(b) : [];\n\n\tif (keysA.length !== keysB.length) {\n\t\treturn false;\n\t}\n\n\tfor (const key of keysA) {\n\t\tif (b?.[key] === undefined) {\n\t\t\treturn false;\n\t\t} else if (typeof b[key] === \"object\") {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tif (!matchProperties(a?.[key], b[key])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (b[key] !== a?.[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Adds properties from one PropertySet to another.\n *\n * @internal\n */\nexport function extend<T>(base: MapLike<T>, extension: MapLike<T> | undefined): MapLike<T> {\n\tif (extension !== undefined) {\n\t\t// eslint-disable-next-line guard-for-in, no-restricted-syntax\n\t\tfor (const key in extension) {\n\t\t\tconst v = extension[key];\n\t\t\t// TODO Non null asserting, why is this not null?\n\t\t\tif (v === null) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\t\tdelete base[key];\n\t\t\t} else {\n\t\t\t\t// Non null aseerting here since we are checking if v is not null\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\tbase[key] = v!;\n\t\t\t}\n\t\t}\n\t}\n\treturn base;\n}\n\n/**\n * Clones properties in a given PropertySet into a new PropertySet.\n *\n * @internal\n */\nexport function clone<T>(extension: MapLike<T> | undefined): MapLike<T> | undefined {\n\tif (extension === undefined) {\n\t\treturn undefined;\n\t}\n\tconst cloneMap = createMap<T>();\n\t// eslint-disable-next-line guard-for-in, no-restricted-syntax\n\tfor (const key in extension) {\n\t\tconst v = extension[key];\n\t\tif (v !== null) {\n\t\t\t// If `v` is undefined, undefined must have been assignable to `T`.\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tcloneMap[key] = v!;\n\t\t}\n\t}\n\treturn cloneMap;\n}\n\n/**\n * Add properties in one PropertySet to another PropertySet. If the PropertySet we are adding\n * to does not exist, create one.\n *\n * @internal\n */\nexport function addProperties(\n\toldProps: PropertySet | undefined,\n\tnewProps: PropertySet,\n): PropertySet {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst _oldProps = oldProps ?? createMap<any>();\n\textend(_oldProps, newProps);\n\treturn { ..._oldProps };\n}\n\n/**\n * Replace values of undefined in one PropertySet with values for the same key from another PropertySet.\n *\n * @internal\n */\nexport function extendIfUndefined<T>(\n\tbase: MapLike<T>,\n\textension: MapLike<T> | undefined,\n): MapLike<T> {\n\tif (extension !== undefined) {\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const key in extension) {\n\t\t\tif (base[key] === undefined) {\n\t\t\t\t// TODO Non null asserting, why is this not null?\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\tbase[key] = extension[key]!;\n\t\t\t}\n\t\t}\n\t}\n\treturn base;\n}\n\n/**\n * Create a MapLike with good performance.\n *\n * @internal\n */\nexport function createMap<T>(): MapLike<T> {\n\treturn Object.create(null) as MapLike<T>;\n}\n"]}
|
package/dist/public.d.ts
CHANGED
|
@@ -15,20 +15,24 @@ export declare const reservedTileLabelsKey = "referenceTileLabels";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare const reservedRangeLabelsKey = "referenceRangeLabels";
|
|
17
17
|
/**
|
|
18
|
+
* Determines if the given reference type includes the given flags.
|
|
18
19
|
* @internal
|
|
19
20
|
*/
|
|
20
21
|
export declare function refTypeIncludesFlag(refPosOrType: ReferencePosition | ReferenceType, flags: ReferenceType): boolean;
|
|
21
22
|
/**
|
|
23
|
+
* Gets the tile labels stored in the given reference position.
|
|
22
24
|
* @legacy
|
|
23
25
|
* @alpha
|
|
24
26
|
*/
|
|
25
27
|
export declare const refGetTileLabels: (refPos: ReferencePosition) => string[] | undefined;
|
|
26
28
|
/**
|
|
29
|
+
* Determines if a reference position has the given tile label.
|
|
27
30
|
* @legacy
|
|
28
31
|
* @alpha
|
|
29
32
|
*/
|
|
30
33
|
export declare function refHasTileLabel(refPos: ReferencePosition, label: string): boolean;
|
|
31
34
|
/**
|
|
35
|
+
* Determines if a reference position has any tile labels.
|
|
32
36
|
* @internal
|
|
33
37
|
*/
|
|
34
38
|
export declare function refHasTileLabels(refPos: ReferencePosition): boolean;
|
|
@@ -79,14 +83,17 @@ export interface ReferencePosition {
|
|
|
79
83
|
*/
|
|
80
84
|
export declare const DetachedReferencePosition = -1;
|
|
81
85
|
/**
|
|
86
|
+
* Finds the minimum reference position.
|
|
82
87
|
* @internal
|
|
83
88
|
*/
|
|
84
89
|
export declare function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
|
|
85
90
|
/**
|
|
91
|
+
* Finds the maximum reference position.
|
|
86
92
|
* @internal
|
|
87
93
|
*/
|
|
88
94
|
export declare function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T;
|
|
89
95
|
/**
|
|
96
|
+
* Compares two reference positions.
|
|
90
97
|
* @internal
|
|
91
98
|
*/
|
|
92
99
|
export declare function compareReferencePositions(a: ReferencePosition, b: ReferencePosition): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referencePositions.d.ts","sourceRoot":"","sources":["../src/referencePositions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D;;GAEG;AACH,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"referencePositions.d.ts","sourceRoot":"","sources":["../src/referencePositions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAC3D;;GAEG;AACH,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,iBAAiB,GAAG,aAAa,EAC/C,KAAK,EAAE,aAAa,GAClB,OAAO,CAIT;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAY,iBAAiB,KAAG,MAAM,EAAE,GAAG,SAG3D,CAAC;AAEd;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGjF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC,OAAO,EAAE,aAAa,CAAC;IAEvB;;;OAGG;IACH,UAAU,IAAI,QAAQ,GAAG,SAAS,CAAC;IAEnC;;;;;;;OAOG;IACH,SAAS,IAAI,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAE/E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAE/E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAQ5F"}
|
|
@@ -15,6 +15,7 @@ exports.reservedTileLabelsKey = "referenceTileLabels";
|
|
|
15
15
|
*/
|
|
16
16
|
exports.reservedRangeLabelsKey = "referenceRangeLabels";
|
|
17
17
|
/**
|
|
18
|
+
* Determines if the given reference type includes the given flags.
|
|
18
19
|
* @internal
|
|
19
20
|
*/
|
|
20
21
|
function refTypeIncludesFlag(refPosOrType, flags) {
|
|
@@ -24,6 +25,7 @@ function refTypeIncludesFlag(refPosOrType, flags) {
|
|
|
24
25
|
}
|
|
25
26
|
exports.refTypeIncludesFlag = refTypeIncludesFlag;
|
|
26
27
|
/**
|
|
28
|
+
* Gets the tile labels stored in the given reference position.
|
|
27
29
|
* @legacy
|
|
28
30
|
* @alpha
|
|
29
31
|
*/
|
|
@@ -32,6 +34,7 @@ const refGetTileLabels = (refPos) => refTypeIncludesFlag(refPos, ops_js_1.Refere
|
|
|
32
34
|
: undefined;
|
|
33
35
|
exports.refGetTileLabels = refGetTileLabels;
|
|
34
36
|
/**
|
|
37
|
+
* Determines if a reference position has the given tile label.
|
|
35
38
|
* @legacy
|
|
36
39
|
* @alpha
|
|
37
40
|
*/
|
|
@@ -41,6 +44,7 @@ function refHasTileLabel(refPos, label) {
|
|
|
41
44
|
}
|
|
42
45
|
exports.refHasTileLabel = refHasTileLabel;
|
|
43
46
|
/**
|
|
47
|
+
* Determines if a reference position has any tile labels.
|
|
44
48
|
* @internal
|
|
45
49
|
*/
|
|
46
50
|
function refHasTileLabels(refPos) {
|
|
@@ -52,6 +56,7 @@ exports.refHasTileLabels = refHasTileLabels;
|
|
|
52
56
|
*/
|
|
53
57
|
exports.DetachedReferencePosition = -1;
|
|
54
58
|
/**
|
|
59
|
+
* Finds the minimum reference position.
|
|
55
60
|
* @internal
|
|
56
61
|
*/
|
|
57
62
|
function minReferencePosition(a, b) {
|
|
@@ -59,6 +64,7 @@ function minReferencePosition(a, b) {
|
|
|
59
64
|
}
|
|
60
65
|
exports.minReferencePosition = minReferencePosition;
|
|
61
66
|
/**
|
|
67
|
+
* Finds the maximum reference position.
|
|
62
68
|
* @internal
|
|
63
69
|
*/
|
|
64
70
|
function maxReferencePosition(a, b) {
|
|
@@ -66,6 +72,7 @@ function maxReferencePosition(a, b) {
|
|
|
66
72
|
}
|
|
67
73
|
exports.maxReferencePosition = maxReferencePosition;
|
|
68
74
|
/**
|
|
75
|
+
* Compares two reference positions.
|
|
69
76
|
* @internal
|
|
70
77
|
*/
|
|
71
78
|
function compareReferencePositions(a, b) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referencePositions.js","sourceRoot":"","sources":["../src/referencePositions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,qCAAyC;AAGzC;;GAEG;AACU,QAAA,qBAAqB,GAAG,qBAAqB,CAAC;AAC3D;;GAEG;AACU,QAAA,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"referencePositions.js","sourceRoot":"","sources":["../src/referencePositions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,qCAAyC;AAGzC;;GAEG;AACU,QAAA,qBAAqB,GAAG,qBAAqB,CAAC;AAC3D;;GAEG;AACU,QAAA,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D;;;GAGG;AACH,SAAgB,mBAAmB,CAClC,YAA+C,EAC/C,KAAoB;IAEpB,MAAM,OAAO,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;IACvF,sCAAsC;IACtC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAPD,kDAOC;AAED;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,MAAyB,EAAwB,EAAE,CACnF,mBAAmB,CAAC,MAAM,EAAE,sBAAa,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU;IACnE,CAAC,CAAE,MAAM,CAAC,UAAU,CAAC,6BAAqB,CAAc;IACxD,CAAC,CAAC,SAAS,CAAC;AAHD,QAAA,gBAAgB,oBAGf;AAEd;;;;GAIG;AACH,SAAgB,eAAe,CAAC,MAAyB,EAAE,KAAa;IACvE,MAAM,UAAU,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC7C,CAAC;AAHD,0CAGC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAyB;IACzD,OAAO,IAAA,wBAAgB,EAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,4CAEC;AAkDD;;GAEG;AACU,QAAA,yBAAyB,GAAG,CAAC,CAAC,CAAC;AAE5C;;;GAGG;AACH,SAAgB,oBAAoB,CAA8B,CAAI,EAAE,CAAI;IAC3E,OAAO,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAFD,oDAEC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAA8B,CAAI,EAAE,CAAI;IAC3E,OAAO,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAFD,oDAEC;AAED;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,CAAoB,EAAE,CAAoB;IACnF,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;AACF,CAAC;AARD,8DAQC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { SlidingPreference } from \"./localReference.js\";\nimport { ISegment } from \"./mergeTreeNodes.js\";\nimport { ReferenceType } from \"./ops.js\";\nimport { PropertySet } from \"./properties.js\";\n\n/**\n * @internal\n */\nexport const reservedTileLabelsKey = \"referenceTileLabels\";\n/**\n * @internal\n */\nexport const reservedRangeLabelsKey = \"referenceRangeLabels\";\n\n/**\n * Determines if the given reference type includes the given flags.\n * @internal\n */\nexport function refTypeIncludesFlag(\n\trefPosOrType: ReferencePosition | ReferenceType,\n\tflags: ReferenceType,\n): boolean {\n\tconst refType = typeof refPosOrType === \"number\" ? refPosOrType : refPosOrType.refType;\n\t// eslint-disable-next-line no-bitwise\n\treturn (refType & flags) !== 0;\n}\n\n/**\n * Gets the tile labels stored in the given reference position.\n * @legacy\n * @alpha\n */\nexport const refGetTileLabels = (refPos: ReferencePosition): string[] | undefined =>\n\trefTypeIncludesFlag(refPos, ReferenceType.Tile) && refPos.properties\n\t\t? (refPos.properties[reservedTileLabelsKey] as string[])\n\t\t: undefined;\n\n/**\n * Determines if a reference position has the given tile label.\n * @legacy\n * @alpha\n */\nexport function refHasTileLabel(refPos: ReferencePosition, label: string): boolean {\n\tconst tileLabels = refGetTileLabels(refPos);\n\treturn tileLabels?.includes(label) ?? false;\n}\n\n/**\n * Determines if a reference position has any tile labels.\n * @internal\n */\nexport function refHasTileLabels(refPos: ReferencePosition): boolean {\n\treturn refGetTileLabels(refPos) !== undefined;\n}\n\n/**\n * Represents a reference to a place within a merge tree. This place conceptually remains stable over time\n * by referring to a particular segment and offset within that segment.\n * Thus, this reference's character position changes as the tree is edited.\n * @legacy\n * @alpha\n */\nexport interface ReferencePosition {\n\t/**\n\t * Properties associated with this reference\n\t */\n\tproperties?: PropertySet;\n\n\t/**\n\t * The direction for this reference position to slide when the segment it\n\t * points to is removed. See {@link (SlidingPreference:type)} for additional context.\n\t *\n\t * Defaults to SlidingPreference.Forward\n\t */\n\tslidingPreference?: SlidingPreference;\n\n\trefType: ReferenceType;\n\n\t/**\n\t * Gets the segment that this reference position is semantically associated with. Returns undefined iff the\n\t * reference became detached from the string.\n\t */\n\tgetSegment(): ISegment | undefined;\n\n\t/**\n\t * Gets the offset for this reference position within its associated segment.\n\t *\n\t * @example\n\t *\n\t * If a merge-tree has 3 leaf segments [\"hello\", \" \", \"world\"] and a ReferencePosition refers to the \"l\"\n\t * in \"world\", that reference's offset would be 3 as \"l\" is the character at index 3 within \"world\".\n\t */\n\tgetOffset(): number;\n\n\t/**\n\t * @param newProps - Properties to add to this reference.\n\t * @remarks Note that merge-tree does not broadcast changes to other clients. It is up to the consumer\n\t * to ensure broadcast happens if that is desired.\n\t */\n\taddProperties(newProps: PropertySet): void;\n\tisLeaf(): this is ISegment;\n}\n\n/**\n * @internal\n */\nexport const DetachedReferencePosition = -1;\n\n/**\n * Finds the minimum reference position.\n * @internal\n */\nexport function minReferencePosition<T extends ReferencePosition>(a: T, b: T): T {\n\treturn compareReferencePositions(a, b) < 0 ? a : b;\n}\n\n/**\n * Finds the maximum reference position.\n * @internal\n */\nexport function maxReferencePosition<T extends ReferencePosition>(a: T, b: T): T {\n\treturn compareReferencePositions(a, b) > 0 ? a : b;\n}\n\n/**\n * Compares two reference positions.\n * @internal\n */\nexport function compareReferencePositions(a: ReferencePosition, b: ReferencePosition): number {\n\tconst aSeg = a.getSegment();\n\tconst bSeg = b.getSegment();\n\tif (aSeg === bSeg) {\n\t\treturn a.getOffset() - b.getOffset();\n\t} else {\n\t\treturn aSeg === undefined || (bSeg !== undefined && aSeg.ordinal < bSeg.ordinal) ? -1 : 1;\n\t}\n}\n"]}
|
package/dist/revertibles.d.ts
CHANGED
|
@@ -50,16 +50,22 @@ export interface MergeTreeWithRevert extends MergeTree {
|
|
|
50
50
|
}
|
|
51
51
|
export type PickPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
52
52
|
/**
|
|
53
|
+
* Appends a merge tree delta to the list of revertibles.
|
|
54
|
+
*
|
|
53
55
|
* @legacy
|
|
54
56
|
* @alpha
|
|
55
57
|
*/
|
|
56
58
|
export declare function appendToMergeTreeDeltaRevertibles(deltaArgs: IMergeTreeDeltaCallbackArgs, revertibles: MergeTreeDeltaRevertible[]): void;
|
|
57
59
|
/**
|
|
60
|
+
* Removes all revertibles from the list of revertibles.
|
|
61
|
+
*
|
|
58
62
|
* @legacy
|
|
59
63
|
* @alpha
|
|
60
64
|
*/
|
|
61
65
|
export declare function discardMergeTreeDeltaRevertible(revertibles: MergeTreeDeltaRevertible[]): void;
|
|
62
66
|
/**
|
|
67
|
+
* Reverts all operations in the list of revertibles.
|
|
68
|
+
*
|
|
63
69
|
* @legacy
|
|
64
70
|
* @alpha
|
|
65
71
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revertibles.d.ts","sourceRoot":"","sources":["../src/revertibles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAA4B,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EAAE,cAAc,EAAqC,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAiB,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAG/D;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GACjC;IACA,SAAS,EAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,cAAc,CAAC;CAC7B,GACD;IACA,SAAS,EAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,cAAc,CAAC;CAC7B,GACD;IACA,SAAS,EAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IAC9C,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEL;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,wBAAwB,CAEpF;AAkBD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACzC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACtD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACrD,qBAAqB,EAAE;QACtB,kBAAkB,EAAE,gBAAgB,CAAC;QACrC,YAAY,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;KAClD,CAAC;CACF;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"revertibles.d.ts","sourceRoot":"","sources":["../src/revertibles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAA4B,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EAAE,cAAc,EAAqC,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAiB,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAG/D;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GACjC;IACA,SAAS,EAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,cAAc,CAAC;CAC7B,GACD;IACA,SAAS,EAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,cAAc,CAAC;CAC7B,GACD;IACA,SAAS,EAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IAC9C,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEL;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,wBAAwB,CAEpF;AAkBD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACzC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACtD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACrD,qBAAqB,EAAE;QACtB,kBAAkB,EAAE,gBAAgB,CAAC;QACrC,YAAY,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;KAClD,CAAC;CACF;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAkHjF;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAChD,SAAS,EAAE,2BAA2B,EACtC,WAAW,EAAE,wBAAwB,EAAE,GACrC,IAAI,CA0BN;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC9C,WAAW,EAAE,wBAAwB,EAAE,GACrC,IAAI,CAUN;AA2JD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,yBAAyB,EACjC,WAAW,EAAE,wBAAwB,EAAE,GACrC,IAAI,CA8BN"}
|
package/dist/revertibles.js
CHANGED
|
@@ -54,8 +54,11 @@ function appendLocalInsertToRevertibles(deltaArgs, revertibles) {
|
|
|
54
54
|
trackingGroup: new mergeTreeTracking_js_1.UnorderedTrackingGroup(),
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
+
// TODO Non null asserting, why is this not null?
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
57
59
|
const last = revertibles[revertibles.length - 1];
|
|
58
|
-
|
|
60
|
+
for (const t of deltaArgs.deltaSegments)
|
|
61
|
+
last.trackingGroup.link(t.segment);
|
|
59
62
|
return revertibles;
|
|
60
63
|
}
|
|
61
64
|
function appendLocalRemoveToRevertibles(deltaArgs, revertibles) {
|
|
@@ -65,26 +68,30 @@ function appendLocalRemoveToRevertibles(deltaArgs, revertibles) {
|
|
|
65
68
|
trackingGroup: new mergeTreeTracking_js_1.UnorderedTrackingGroup(),
|
|
66
69
|
});
|
|
67
70
|
}
|
|
71
|
+
// TODO Non null asserting, why is this not null?
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
68
73
|
const last = revertibles[revertibles.length - 1];
|
|
74
|
+
// TODO Non null asserting, why is this not null?
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
69
76
|
const mergeTreeWithRevert = findMergeTreeWithRevert(deltaArgs.deltaSegments[0].segment);
|
|
70
|
-
deltaArgs.deltaSegments
|
|
77
|
+
for (const t of deltaArgs.deltaSegments) {
|
|
71
78
|
const props = {
|
|
72
79
|
segSpec: t.segment.toJSONObject(),
|
|
73
80
|
referenceSpace: "mergeTreeDeltaRevertible",
|
|
74
81
|
};
|
|
75
82
|
const ref = mergeTreeWithRevert.createLocalReferencePosition(t.segment, 0, ops_js_1.ReferenceType.SlideOnRemove, props);
|
|
76
83
|
ref.callbacks = mergeTreeWithRevert.__mergeTreeRevertible.refCallbacks;
|
|
77
|
-
t.segment.trackingCollection.trackingGroups
|
|
84
|
+
for (const tg of t.segment.trackingCollection.trackingGroups) {
|
|
78
85
|
tg.link(ref);
|
|
79
86
|
tg.unlink(t.segment);
|
|
80
|
-
}
|
|
87
|
+
}
|
|
81
88
|
last.trackingGroup.link(ref);
|
|
82
|
-
}
|
|
89
|
+
}
|
|
83
90
|
return revertibles;
|
|
84
91
|
}
|
|
85
92
|
function appendLocalAnnotateToRevertibles(deltaArgs, revertibles) {
|
|
86
93
|
let last = revertibles[revertibles.length - 1];
|
|
87
|
-
deltaArgs.deltaSegments
|
|
94
|
+
for (const ds of deltaArgs.deltaSegments) {
|
|
88
95
|
const propertyDeltas = ds.propertyDeltas;
|
|
89
96
|
if (propertyDeltas) {
|
|
90
97
|
if (last?.operation === ops_js_1.MergeTreeDeltaType.ANNOTATE &&
|
|
@@ -101,10 +108,12 @@ function appendLocalAnnotateToRevertibles(deltaArgs, revertibles) {
|
|
|
101
108
|
revertibles.push(last);
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
|
-
}
|
|
111
|
+
}
|
|
105
112
|
return revertibles;
|
|
106
113
|
}
|
|
107
114
|
/**
|
|
115
|
+
* Appends a merge tree delta to the list of revertibles.
|
|
116
|
+
*
|
|
108
117
|
* @legacy
|
|
109
118
|
* @alpha
|
|
110
119
|
*/
|
|
@@ -113,40 +122,48 @@ function appendToMergeTreeDeltaRevertibles(deltaArgs, revertibles) {
|
|
|
113
122
|
return;
|
|
114
123
|
}
|
|
115
124
|
switch (deltaArgs.operation) {
|
|
116
|
-
case ops_js_1.MergeTreeDeltaType.INSERT:
|
|
125
|
+
case ops_js_1.MergeTreeDeltaType.INSERT: {
|
|
117
126
|
appendLocalInsertToRevertibles(deltaArgs, revertibles);
|
|
118
127
|
break;
|
|
119
|
-
|
|
128
|
+
}
|
|
129
|
+
case ops_js_1.MergeTreeDeltaType.REMOVE: {
|
|
120
130
|
appendLocalRemoveToRevertibles(deltaArgs, revertibles);
|
|
121
131
|
break;
|
|
122
|
-
|
|
132
|
+
}
|
|
133
|
+
case ops_js_1.MergeTreeDeltaType.ANNOTATE: {
|
|
123
134
|
appendLocalAnnotateToRevertibles(deltaArgs, revertibles);
|
|
124
135
|
break;
|
|
125
|
-
|
|
136
|
+
}
|
|
137
|
+
default: {
|
|
126
138
|
throw new internal_2.UsageError("Unsupported event delta type", {
|
|
127
139
|
operation: deltaArgs.operation,
|
|
128
140
|
});
|
|
141
|
+
}
|
|
129
142
|
}
|
|
130
143
|
}
|
|
131
144
|
exports.appendToMergeTreeDeltaRevertibles = appendToMergeTreeDeltaRevertibles;
|
|
132
145
|
/**
|
|
146
|
+
* Removes all revertibles from the list of revertibles.
|
|
147
|
+
*
|
|
133
148
|
* @legacy
|
|
134
149
|
* @alpha
|
|
135
150
|
*/
|
|
136
151
|
function discardMergeTreeDeltaRevertible(revertibles) {
|
|
137
|
-
|
|
138
|
-
r.trackingGroup.tracked
|
|
152
|
+
for (const r of revertibles) {
|
|
153
|
+
for (const t of r.trackingGroup.tracked) {
|
|
139
154
|
t.trackingCollection.unlink(r.trackingGroup);
|
|
140
155
|
// remove untracked local references
|
|
141
156
|
if (t.trackingCollection.empty && !t.isLeaf()) {
|
|
142
157
|
t.getSegment()?.localRefs?.removeLocalRef(t);
|
|
143
158
|
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
146
161
|
}
|
|
147
162
|
exports.discardMergeTreeDeltaRevertible = discardMergeTreeDeltaRevertible;
|
|
148
163
|
function revertLocalInsert(driver, mergeTreeWithRevert, revertible) {
|
|
149
164
|
while (revertible.trackingGroup.size > 0) {
|
|
165
|
+
// TODO Non null asserting, why is this not null?
|
|
166
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
150
167
|
const tracked = revertible.trackingGroup.tracked[0];
|
|
151
168
|
(0, internal_1.assert)(tracked.trackingCollection.unlink(revertible.trackingGroup), 0x3f1 /* tracking group removed */);
|
|
152
169
|
(0, internal_1.assert)(tracked.isLeaf(), 0x3f2 /* inserts must track segments */);
|
|
@@ -158,6 +175,8 @@ function revertLocalInsert(driver, mergeTreeWithRevert, revertible) {
|
|
|
158
175
|
}
|
|
159
176
|
function revertLocalRemove(driver, mergeTreeWithRevert, revertible) {
|
|
160
177
|
while (revertible.trackingGroup.size > 0) {
|
|
178
|
+
// TODO Non null asserting, why is this not null?
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
161
180
|
const tracked = revertible.trackingGroup.tracked[0];
|
|
162
181
|
(0, internal_1.assert)(tracked.trackingCollection.unlink(revertible.trackingGroup), 0x3f3 /* tracking group removed */);
|
|
163
182
|
(0, internal_1.assert)(!tracked.isLeaf(), 0x3f4 /* removes must track local refs */);
|
|
@@ -219,15 +238,17 @@ function revertLocalRemove(driver, mergeTreeWithRevert, revertible) {
|
|
|
219
238
|
localRefs.addAfterTombstones(insertRef.after.map((n) => n.data));
|
|
220
239
|
}
|
|
221
240
|
}
|
|
222
|
-
tracked.trackingCollection.trackingGroups
|
|
241
|
+
for (const tg of tracked.trackingCollection.trackingGroups) {
|
|
223
242
|
tg.link(insertSegment);
|
|
224
243
|
tg.unlink(tracked);
|
|
225
|
-
}
|
|
244
|
+
}
|
|
226
245
|
tracked.getSegment()?.localRefs?.removeLocalRef(tracked);
|
|
227
246
|
}
|
|
228
247
|
}
|
|
229
248
|
function revertLocalAnnotate(driver, mergeTreeWithRevert, revertible) {
|
|
230
249
|
while (revertible.trackingGroup.size > 0) {
|
|
250
|
+
// TODO Non null asserting, why is this not null?
|
|
251
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
231
252
|
const tracked = revertible.trackingGroup.tracked[0];
|
|
232
253
|
const unlinked = tracked.trackingCollection.unlink(revertible.trackingGroup);
|
|
233
254
|
(0, internal_1.assert)(unlinked && tracked.isLeaf(), 0x3f7 /* annotates must track segments */);
|
|
@@ -241,6 +262,8 @@ function getPosition(mergeTreeWithRevert, segment) {
|
|
|
241
262
|
return mergeTreeWithRevert.getPosition(segment, mergeTreeWithRevert.collabWindow.currentSeq, mergeTreeWithRevert.collabWindow.clientId);
|
|
242
263
|
}
|
|
243
264
|
/**
|
|
265
|
+
* Reverts all operations in the list of revertibles.
|
|
266
|
+
*
|
|
244
267
|
* @legacy
|
|
245
268
|
* @alpha
|
|
246
269
|
*/
|
|
@@ -251,19 +274,25 @@ function revertMergeTreeDeltaRevertibles(driver, revertibles) {
|
|
|
251
274
|
const r = revertibles.pop();
|
|
252
275
|
const operation = r.operation;
|
|
253
276
|
if (r.trackingGroup.size > 0) {
|
|
277
|
+
// TODO Non null asserting, why is this not null?
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
254
279
|
mergeTreeWithRevert ?? (mergeTreeWithRevert = findMergeTreeWithRevert(r.trackingGroup.tracked[0]));
|
|
255
280
|
switch (operation) {
|
|
256
|
-
case ops_js_1.MergeTreeDeltaType.INSERT:
|
|
281
|
+
case ops_js_1.MergeTreeDeltaType.INSERT: {
|
|
257
282
|
revertLocalInsert(driver, mergeTreeWithRevert, r);
|
|
258
283
|
break;
|
|
259
|
-
|
|
284
|
+
}
|
|
285
|
+
case ops_js_1.MergeTreeDeltaType.REMOVE: {
|
|
260
286
|
revertLocalRemove(driver, mergeTreeWithRevert, r);
|
|
261
287
|
break;
|
|
262
|
-
|
|
288
|
+
}
|
|
289
|
+
case ops_js_1.MergeTreeDeltaType.ANNOTATE: {
|
|
263
290
|
revertLocalAnnotate(driver, mergeTreeWithRevert, r);
|
|
264
291
|
break;
|
|
265
|
-
|
|
292
|
+
}
|
|
293
|
+
default: {
|
|
266
294
|
(0, internal_1.unreachableCase)(operation);
|
|
295
|
+
}
|
|
267
296
|
}
|
|
268
297
|
}
|
|
269
298
|
}
|