@fluidframework/merge-tree 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{.eslintrc.js → .eslintrc.cjs} +4 -1
- package/{.mocharc.js → .mocharc.cjs} +1 -1
- package/CHANGELOG.md +4 -0
- package/api-extractor-cjs.json +8 -0
- package/api-extractor-lint.json +1 -1
- package/api-extractor.json +1 -9
- package/api-report/merge-tree.api.md +6 -12
- package/dist/MergeTreeTextHelper.d.ts +2 -2
- package/dist/MergeTreeTextHelper.d.ts.map +1 -1
- package/dist/MergeTreeTextHelper.js +3 -3
- package/dist/MergeTreeTextHelper.js.map +1 -1
- package/dist/attributionCollection.d.ts +1 -1
- package/dist/attributionCollection.d.ts.map +1 -1
- package/dist/attributionCollection.js.map +1 -1
- package/dist/attributionPolicy.d.ts +1 -1
- package/dist/attributionPolicy.d.ts.map +1 -1
- package/dist/attributionPolicy.js +15 -15
- package/dist/attributionPolicy.js.map +1 -1
- package/dist/client.d.ts +31 -12
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +103 -92
- package/dist/client.js.map +1 -1
- package/dist/collections/index.d.ts +2 -2
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +6 -6
- package/dist/collections/index.js.map +1 -1
- package/dist/endOfTreeSegment.d.ts +3 -3
- package/dist/endOfTreeSegment.d.ts.map +1 -1
- package/dist/endOfTreeSegment.js +8 -8
- package/dist/endOfTreeSegment.js.map +1 -1
- package/dist/index.d.ts +20 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -71
- package/dist/index.js.map +1 -1
- package/dist/localReference.d.ts +9 -39
- package/dist/localReference.d.ts.map +1 -1
- package/dist/localReference.js +29 -24
- package/dist/localReference.js.map +1 -1
- package/dist/merge-tree-alpha.d.ts +28 -450
- package/dist/merge-tree-beta.d.ts +0 -438
- package/dist/merge-tree-public.d.ts +0 -438
- package/dist/merge-tree-untrimmed.d.ts +28 -787
- package/dist/mergeTree.d.ts +11 -19
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +201 -189
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +3 -7
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodeWalk.d.ts +1 -1
- package/dist/mergeTreeNodeWalk.d.ts.map +1 -1
- package/dist/mergeTreeNodeWalk.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +17 -14
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +32 -32
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/mergeTreeTracking.d.ts +2 -2
- package/dist/mergeTreeTracking.d.ts.map +1 -1
- package/dist/mergeTreeTracking.js +2 -2
- package/dist/mergeTreeTracking.js.map +1 -1
- package/dist/opBuilder.d.ts +3 -3
- package/dist/opBuilder.d.ts.map +1 -1
- package/dist/opBuilder.js +7 -7
- package/dist/opBuilder.js.map +1 -1
- package/dist/package.json +3 -0
- package/dist/partialLengths.d.ts +5 -5
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +29 -29
- package/dist/partialLengths.js.map +1 -1
- package/dist/referencePositions.d.ts +4 -4
- package/dist/referencePositions.d.ts.map +1 -1
- package/dist/referencePositions.js +2 -2
- package/dist/referencePositions.js.map +1 -1
- package/dist/revertibles.d.ts +7 -7
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +39 -39
- package/dist/revertibles.js.map +1 -1
- package/dist/segmentGroupCollection.d.ts +1 -1
- package/dist/segmentGroupCollection.d.ts.map +1 -1
- package/dist/segmentGroupCollection.js +3 -3
- package/dist/segmentGroupCollection.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +2 -2
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +8 -8
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotChunks.d.ts +3 -3
- package/dist/snapshotChunks.d.ts.map +1 -1
- package/dist/snapshotChunks.js +5 -5
- package/dist/snapshotChunks.js.map +1 -1
- package/dist/snapshotLoader.d.ts +3 -3
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js +19 -19
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts +3 -3
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js +35 -18
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts +2 -2
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +22 -10
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/sortedSegmentSet.d.ts +3 -3
- package/dist/sortedSegmentSet.d.ts.map +1 -1
- package/dist/sortedSegmentSet.js +7 -5
- package/dist/sortedSegmentSet.js.map +1 -1
- package/dist/test/Insertion.perf.spec.js +15 -15
- package/dist/test/Insertion.perf.spec.js.map +1 -1
- package/dist/test/PartialLengths.perf.spec.js +13 -13
- package/dist/test/PartialLengths.perf.spec.js.map +1 -1
- package/dist/test/Removal.perf.spec.js +25 -25
- package/dist/test/Removal.perf.spec.js.map +1 -1
- package/dist/test/Snapshot.perf.spec.js +3 -3
- package/dist/test/Snapshot.perf.spec.js.map +1 -1
- package/dist/test/attributionCollection.perf.spec.js +9 -9
- package/dist/test/attributionCollection.perf.spec.js.map +1 -1
- package/dist/test/attributionCollection.spec.js +46 -46
- package/dist/test/attributionCollection.spec.js.map +1 -1
- package/dist/test/attributionPolicy.spec.js +13 -13
- package/dist/test/attributionPolicy.spec.js.map +1 -1
- package/dist/test/{beastTest.d.ts → beastTest.spec.d.ts} +3 -3
- package/dist/test/beastTest.spec.d.ts.map +1 -0
- package/dist/test/{beastTest.js → beastTest.spec.js} +120 -119
- package/dist/test/beastTest.spec.js.map +1 -0
- package/dist/test/client.annotateMarker.spec.js +13 -13
- package/dist/test/client.annotateMarker.spec.js.map +1 -1
- package/dist/test/{client.apis.d.ts → client.apis.spec.d.ts} +1 -1
- package/dist/test/client.apis.spec.d.ts.map +1 -0
- package/dist/test/{client.apis.js → client.apis.spec.js} +8 -8
- package/dist/test/client.apis.spec.js.map +1 -0
- package/dist/test/client.applyMsg.spec.js +106 -43
- package/dist/test/client.applyMsg.spec.js.map +1 -1
- package/dist/test/client.applyStashedOpFarm.spec.d.ts +1 -1
- package/dist/test/client.applyStashedOpFarm.spec.d.ts.map +1 -1
- package/dist/test/client.applyStashedOpFarm.spec.js +33 -21
- package/dist/test/client.applyStashedOpFarm.spec.js.map +1 -1
- package/dist/test/client.attributionFarm.spec.d.ts +1 -1
- package/dist/test/client.attributionFarm.spec.d.ts.map +1 -1
- package/dist/test/client.attributionFarm.spec.js +13 -13
- package/dist/test/client.attributionFarm.spec.js.map +1 -1
- package/dist/test/client.conflictFarm.spec.d.ts +1 -1
- package/dist/test/client.conflictFarm.spec.d.ts.map +1 -1
- package/dist/test/client.conflictFarm.spec.js +9 -9
- package/dist/test/client.conflictFarm.spec.js.map +1 -1
- package/dist/test/client.getPosition.spec.js +4 -4
- package/dist/test/client.getPosition.spec.js.map +1 -1
- package/dist/test/client.localReference.spec.js +140 -109
- package/dist/test/client.localReference.spec.js.map +1 -1
- package/dist/test/client.localReferenceFarm.spec.js +18 -18
- package/dist/test/client.localReferenceFarm.spec.js.map +1 -1
- package/dist/test/client.rebasePosition.spec.js +2 -2
- package/dist/test/client.rebasePosition.spec.js.map +1 -1
- package/dist/test/client.reconnectFarm.spec.d.ts +1 -1
- package/dist/test/client.reconnectFarm.spec.d.ts.map +1 -1
- package/dist/test/client.reconnectFarm.spec.js +10 -10
- package/dist/test/client.reconnectFarm.spec.js.map +1 -1
- package/dist/test/client.replay.spec.js +11 -11
- package/dist/test/client.replay.spec.js.map +1 -1
- package/dist/test/client.rollback.spec.js +83 -83
- package/dist/test/client.rollback.spec.js.map +1 -1
- package/dist/test/client.rollbackFarm.spec.js +9 -9
- package/dist/test/client.rollbackFarm.spec.js.map +1 -1
- package/dist/test/client.searchForMarker.spec.js +137 -137
- package/dist/test/client.searchForMarker.spec.js.map +1 -1
- package/dist/test/client.walkSegments.spec.js +2 -2
- package/dist/test/client.walkSegments.spec.js.map +1 -1
- package/dist/test/collections.list.spec.js +4 -4
- package/dist/test/collections.list.spec.js.map +1 -1
- package/dist/test/createInsertOnlyAttributionPolicy.spec.js +4 -4
- package/dist/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -1
- package/dist/test/dirname.cjs +16 -0
- package/dist/test/dirname.cjs.map +1 -0
- package/dist/test/dirname.d.cts +6 -0
- package/dist/test/dirname.d.cts.map +1 -0
- package/dist/test/index.d.ts +8 -8
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +82 -81
- package/dist/test/index.js.map +1 -1
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js +39 -39
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.annotate.spec.js +39 -39
- package/dist/test/mergeTree.annotate.spec.js.map +1 -1
- package/dist/test/mergeTree.insert.deltaCallback.spec.js +35 -35
- package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.insertingWalk.spec.js +77 -77
- package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +42 -42
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.spec.js +15 -15
- package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/dist/test/mergeTree.walk.spec.js +14 -14
- package/dist/test/mergeTree.walk.spec.js.map +1 -1
- package/dist/test/mergeTree.zamboni.spec.js +9 -9
- package/dist/test/mergeTree.zamboni.spec.js.map +1 -1
- package/dist/test/mergeTreeOperationRunner.d.ts +4 -4
- package/dist/test/mergeTreeOperationRunner.d.ts.map +1 -1
- package/dist/test/mergeTreeOperationRunner.js +16 -15
- package/dist/test/mergeTreeOperationRunner.js.map +1 -1
- package/dist/test/mergeTreeOperationRunner.spec.js +5 -5
- package/dist/test/mergeTreeOperationRunner.spec.js.map +1 -1
- package/dist/test/obliterate.concurrent.spec.js +85 -88
- package/dist/test/obliterate.concurrent.spec.js.map +1 -1
- package/dist/test/obliterate.deltaCallback.spec.d.ts +6 -0
- package/dist/test/obliterate.deltaCallback.spec.d.ts.map +1 -0
- package/dist/test/obliterate.deltaCallback.spec.js +146 -0
- package/dist/test/obliterate.deltaCallback.spec.js.map +1 -0
- package/dist/test/obliterate.partialLength.spec.js +39 -44
- package/dist/test/obliterate.partialLength.spec.js.map +1 -1
- package/dist/test/obliterate.reconnect.spec.js +15 -18
- package/dist/test/obliterate.reconnect.spec.js.map +1 -1
- package/dist/test/obliterate.spec.js +16 -16
- package/dist/test/obliterate.spec.js.map +1 -1
- package/dist/test/ordinal.spec.js +5 -5
- package/dist/test/ordinal.spec.js.map +1 -1
- package/dist/test/partialLength.spec.js +58 -64
- 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 +8 -8
- package/dist/test/reconnectHelper.d.ts.map +1 -1
- package/dist/test/reconnectHelper.js +3 -3
- package/dist/test/reconnectHelper.js.map +1 -1
- package/dist/test/resetPendingSegmentsToOp.spec.js +18 -18
- package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/dist/test/revertibleFarm.spec.js +21 -21
- package/dist/test/revertibleFarm.spec.js.map +1 -1
- package/dist/test/revertibles.spec.js +67 -67
- package/dist/test/revertibles.spec.js.map +1 -1
- package/dist/test/segmentGroupCollection.spec.js +3 -3
- package/dist/test/segmentGroupCollection.spec.js.map +1 -1
- package/dist/test/snapshot.spec.js +16 -16
- package/dist/test/snapshot.spec.js.map +1 -1
- package/dist/test/snapshot.utils.d.ts +4 -4
- package/dist/test/snapshot.utils.d.ts.map +1 -1
- package/dist/test/snapshot.utils.js +11 -11
- package/dist/test/snapshot.utils.js.map +1 -1
- package/dist/test/snapshotlegacy.spec.js +22 -22
- package/dist/test/snapshotlegacy.spec.js.map +1 -1
- package/dist/test/sortedSegmentSet.spec.js +9 -9
- package/dist/test/sortedSegmentSet.spec.js.map +1 -1
- package/dist/test/testClient.d.ts +13 -16
- package/dist/test/testClient.d.ts.map +1 -1
- package/dist/test/testClient.js +57 -59
- package/dist/test/testClient.js.map +1 -1
- package/dist/test/testClientLogger.d.ts +3 -3
- package/dist/test/testClientLogger.d.ts.map +1 -1
- package/dist/test/testClientLogger.js +19 -19
- package/dist/test/testClientLogger.js.map +1 -1
- package/dist/test/testServer.d.ts +3 -3
- package/dist/test/testServer.d.ts.map +1 -1
- package/dist/test/testServer.js +8 -8
- package/dist/test/testServer.js.map +1 -1
- package/dist/test/testUtils.d.ts +14 -6
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +36 -17
- package/dist/test/testUtils.js.map +1 -1
- package/dist/test/text.d.ts +2 -2
- package/dist/test/text.d.ts.map +1 -1
- package/dist/test/text.js +10 -10
- package/dist/test/text.js.map +1 -1
- package/dist/test/tracking.spec.js +12 -12
- package/dist/test/tracking.spec.js.map +1 -1
- package/dist/test/{wordUnitTests.d.ts → wordUnitTests.spec.d.ts} +1 -1
- package/dist/test/wordUnitTests.spec.d.ts.map +1 -0
- package/dist/test/{wordUnitTests.js → wordUnitTests.spec.js} +16 -15
- package/dist/test/wordUnitTests.spec.js.map +1 -0
- package/dist/textSegment.d.ts +3 -3
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js +2 -2
- package/dist/textSegment.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/zamboni.d.ts +2 -2
- package/dist/zamboni.d.ts.map +1 -1
- package/dist/zamboni.js +19 -19
- package/dist/zamboni.js.map +1 -1
- package/lib/{MergeTreeTextHelper.d.mts → MergeTreeTextHelper.d.ts} +3 -3
- package/lib/MergeTreeTextHelper.d.ts.map +1 -0
- package/lib/{MergeTreeTextHelper.mjs → MergeTreeTextHelper.js} +3 -2
- package/lib/MergeTreeTextHelper.js.map +1 -0
- package/lib/{attributionCollection.d.mts → attributionCollection.d.ts} +2 -2
- package/lib/attributionCollection.d.ts.map +1 -0
- package/lib/{attributionCollection.mjs → attributionCollection.js} +1 -1
- package/lib/attributionCollection.js.map +1 -0
- package/lib/{attributionPolicy.d.mts → attributionPolicy.d.ts} +2 -2
- package/lib/attributionPolicy.d.ts.map +1 -0
- package/lib/{attributionPolicy.mjs → attributionPolicy.js} +4 -4
- package/lib/attributionPolicy.js.map +1 -0
- package/lib/{client.d.mts → client.d.ts} +32 -13
- package/lib/client.d.ts.map +1 -0
- package/lib/{client.mjs → client.js} +42 -31
- package/lib/client.js.map +1 -0
- package/lib/collections/{index.d.mts → index.d.ts} +3 -3
- package/lib/collections/index.d.ts.map +1 -0
- package/lib/collections/index.js +7 -0
- package/lib/collections/index.js.map +1 -0
- package/lib/collections/{list.d.mts → list.d.ts} +1 -1
- package/lib/collections/list.d.ts.map +1 -0
- package/lib/collections/{list.mjs → list.js} +1 -1
- package/lib/collections/list.js.map +1 -0
- package/lib/collections/{rbTree.d.mts → rbTree.d.ts} +1 -1
- package/lib/collections/rbTree.d.ts.map +1 -0
- package/lib/collections/{rbTree.mjs → rbTree.js} +1 -1
- package/lib/collections/rbTree.js.map +1 -0
- package/lib/{constants.d.mts → constants.d.ts} +1 -1
- package/lib/constants.d.ts.map +1 -0
- package/lib/{constants.mjs → constants.js} +1 -1
- package/lib/constants.js.map +1 -0
- package/lib/{endOfTreeSegment.d.mts → endOfTreeSegment.d.ts} +4 -4
- package/lib/endOfTreeSegment.d.ts.map +1 -0
- package/lib/{endOfTreeSegment.mjs → endOfTreeSegment.js} +3 -3
- package/lib/endOfTreeSegment.js.map +1 -0
- package/lib/{index.d.mts → index.d.ts} +21 -21
- package/lib/index.d.ts.map +1 -0
- package/lib/{index.mjs → index.js} +20 -20
- package/lib/index.js.map +1 -0
- package/lib/{localReference.d.mts → localReference.d.ts} +10 -40
- package/lib/localReference.d.ts.map +1 -0
- package/lib/{localReference.mjs → localReference.js} +12 -6
- package/lib/localReference.js.map +1 -0
- package/lib/{merge-tree-alpha.d.mts → merge-tree-alpha.d.ts} +28 -450
- package/lib/merge-tree-beta.d.ts +230 -0
- package/lib/merge-tree-public.d.ts +230 -0
- package/lib/{merge-tree-untrimmed.d.mts → merge-tree-untrimmed.d.ts} +28 -787
- package/lib/{mergeTree.d.mts → mergeTree.d.ts} +12 -20
- package/lib/mergeTree.d.ts.map +1 -0
- package/lib/{mergeTree.mjs → mergeTree.js} +47 -32
- package/lib/mergeTree.js.map +1 -0
- package/lib/{mergeTreeDeltaCallback.d.mts → mergeTreeDeltaCallback.d.ts} +8 -8
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -0
- package/lib/{mergeTreeDeltaCallback.mjs → mergeTreeDeltaCallback.js} +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -0
- package/lib/{mergeTreeNodeWalk.d.mts → mergeTreeNodeWalk.d.ts} +2 -2
- package/lib/mergeTreeNodeWalk.d.ts.map +1 -0
- package/lib/{mergeTreeNodeWalk.mjs → mergeTreeNodeWalk.js} +1 -1
- package/lib/mergeTreeNodeWalk.js.map +1 -0
- package/lib/{mergeTreeNodes.d.mts → mergeTreeNodes.d.ts} +18 -15
- package/lib/mergeTreeNodes.d.ts.map +1 -0
- package/lib/{mergeTreeNodes.mjs → mergeTreeNodes.js} +12 -10
- package/lib/mergeTreeNodes.js.map +1 -0
- package/lib/{mergeTreeTracking.d.mts → mergeTreeTracking.d.ts} +3 -3
- package/lib/mergeTreeTracking.d.ts.map +1 -0
- package/lib/{mergeTreeTracking.mjs → mergeTreeTracking.js} +3 -2
- package/lib/mergeTreeTracking.js.map +1 -0
- package/lib/{opBuilder.d.mts → opBuilder.d.ts} +4 -4
- package/lib/{opBuilder.d.mts.map → opBuilder.d.ts.map} +1 -1
- package/lib/{opBuilder.mjs → opBuilder.js} +2 -2
- package/lib/opBuilder.js.map +1 -0
- package/lib/{ops.d.mts → ops.d.ts} +1 -1
- package/lib/ops.d.ts.map +1 -0
- package/lib/{ops.mjs → ops.js} +1 -1
- package/lib/ops.js.map +1 -0
- package/lib/{ordinal.d.mts → ordinal.d.ts} +1 -1
- package/lib/ordinal.d.ts.map +1 -0
- package/lib/{ordinal.mjs → ordinal.js} +2 -1
- package/lib/ordinal.js.map +1 -0
- package/lib/{partialLengths.d.mts → partialLengths.d.ts} +6 -6
- package/lib/partialLengths.d.ts.map +1 -0
- package/lib/{partialLengths.mjs → partialLengths.js} +11 -10
- package/lib/partialLengths.js.map +1 -0
- package/lib/{properties.d.mts → properties.d.ts} +1 -1
- package/lib/properties.d.ts.map +1 -0
- package/lib/{properties.mjs → properties.js} +1 -1
- package/lib/properties.js.map +1 -0
- package/lib/{referencePositions.d.mts → referencePositions.d.ts} +5 -5
- package/lib/referencePositions.d.ts.map +1 -0
- package/lib/{referencePositions.mjs → referencePositions.js} +2 -2
- package/lib/referencePositions.js.map +1 -0
- package/lib/{revertibles.d.mts → revertibles.d.ts} +8 -8
- package/lib/revertibles.d.ts.map +1 -0
- package/lib/{revertibles.mjs → revertibles.js} +13 -13
- package/lib/revertibles.js.map +1 -0
- package/lib/{segmentGroupCollection.d.mts → segmentGroupCollection.d.ts} +2 -2
- package/lib/segmentGroupCollection.d.ts.map +1 -0
- package/lib/{segmentGroupCollection.mjs → segmentGroupCollection.js} +2 -2
- package/lib/segmentGroupCollection.js.map +1 -0
- package/lib/{segmentPropertiesManager.d.mts → segmentPropertiesManager.d.ts} +3 -3
- package/lib/segmentPropertiesManager.d.ts.map +1 -0
- package/lib/{segmentPropertiesManager.mjs → segmentPropertiesManager.js} +5 -3
- package/lib/segmentPropertiesManager.js.map +1 -0
- package/lib/{snapshotChunks.d.mts → snapshotChunks.d.ts} +4 -4
- package/lib/snapshotChunks.d.ts.map +1 -0
- package/lib/{snapshotChunks.mjs → snapshotChunks.js} +2 -2
- package/lib/snapshotChunks.js.map +1 -0
- package/lib/{snapshotLoader.d.mts → snapshotLoader.d.ts} +4 -4
- package/lib/snapshotLoader.d.ts.map +1 -0
- package/lib/{snapshotLoader.mjs → snapshotLoader.js} +10 -9
- package/lib/snapshotLoader.js.map +1 -0
- package/lib/{snapshotV1.d.mts → snapshotV1.d.ts} +4 -4
- package/lib/snapshotV1.d.ts.map +1 -0
- package/lib/{snapshotV1.mjs → snapshotV1.js} +24 -7
- package/lib/snapshotV1.js.map +1 -0
- package/lib/{snapshotlegacy.d.mts → snapshotlegacy.d.ts} +3 -3
- package/lib/snapshotlegacy.d.ts.map +1 -0
- package/lib/{snapshotlegacy.mjs → snapshotlegacy.js} +17 -4
- package/lib/snapshotlegacy.js.map +1 -0
- package/lib/{sortedSegmentSet.d.mts → sortedSegmentSet.d.ts} +4 -4
- package/lib/sortedSegmentSet.d.ts.map +1 -0
- package/lib/{sortedSegmentSet.mjs → sortedSegmentSet.js} +8 -5
- package/lib/sortedSegmentSet.js.map +1 -0
- package/lib/{sortedSet.d.mts → sortedSet.d.ts} +1 -1
- package/lib/sortedSet.d.ts.map +1 -0
- package/lib/{sortedSet.mjs → sortedSet.js} +1 -1
- package/lib/sortedSet.js.map +1 -0
- package/lib/test/Insertion.perf.spec.d.ts +6 -0
- package/lib/test/Insertion.perf.spec.d.ts.map +1 -0
- package/lib/test/Insertion.perf.spec.js +111 -0
- package/lib/test/Insertion.perf.spec.js.map +1 -0
- package/lib/test/PartialLengths.perf.spec.d.ts +6 -0
- package/lib/test/PartialLengths.perf.spec.d.ts.map +1 -0
- package/lib/test/PartialLengths.perf.spec.js +65 -0
- package/lib/test/PartialLengths.perf.spec.js.map +1 -0
- package/lib/test/Removal.perf.spec.d.ts +6 -0
- package/lib/test/Removal.perf.spec.d.ts.map +1 -0
- package/lib/test/Removal.perf.spec.js +164 -0
- package/lib/test/Removal.perf.spec.js.map +1 -0
- package/lib/test/Snapshot.perf.spec.d.ts +6 -0
- package/lib/test/Snapshot.perf.spec.d.ts.map +1 -0
- package/lib/test/Snapshot.perf.spec.js +31 -0
- package/lib/test/Snapshot.perf.spec.js.map +1 -0
- package/lib/test/attributionCollection.perf.spec.d.ts +6 -0
- package/lib/test/attributionCollection.perf.spec.d.ts.map +1 -0
- package/lib/test/attributionCollection.perf.spec.js +229 -0
- package/lib/test/attributionCollection.perf.spec.js.map +1 -0
- package/lib/test/attributionCollection.spec.d.ts +6 -0
- package/lib/test/attributionCollection.spec.d.ts.map +1 -0
- package/lib/test/attributionCollection.spec.js +484 -0
- package/lib/test/attributionCollection.spec.js.map +1 -0
- package/lib/test/attributionPolicy.spec.d.ts +6 -0
- package/lib/test/attributionPolicy.spec.d.ts.map +1 -0
- package/lib/test/attributionPolicy.spec.js +187 -0
- package/lib/test/attributionPolicy.spec.js.map +1 -0
- package/lib/test/beastTest.spec.d.ts +54 -0
- package/lib/test/beastTest.spec.d.ts.map +1 -0
- package/lib/test/beastTest.spec.js +1318 -0
- package/lib/test/beastTest.spec.js.map +1 -0
- package/lib/test/client.annotateMarker.spec.d.ts +6 -0
- package/lib/test/client.annotateMarker.spec.d.ts.map +1 -0
- package/lib/test/client.annotateMarker.spec.js +43 -0
- package/lib/test/client.annotateMarker.spec.js.map +1 -0
- package/lib/test/client.apis.spec.d.ts +7 -0
- package/lib/test/client.apis.spec.d.ts.map +1 -0
- package/lib/test/client.apis.spec.js +67 -0
- package/lib/test/client.apis.spec.js.map +1 -0
- package/lib/test/client.applyMsg.spec.d.ts +6 -0
- package/lib/test/client.applyMsg.spec.d.ts.map +1 -0
- package/lib/test/client.applyMsg.spec.js +561 -0
- package/lib/test/client.applyMsg.spec.js.map +1 -0
- package/lib/test/client.applyStashedOpFarm.spec.d.ts +12 -0
- package/lib/test/client.applyStashedOpFarm.spec.d.ts.map +1 -0
- package/lib/test/client.applyStashedOpFarm.spec.js +153 -0
- package/lib/test/client.applyStashedOpFarm.spec.js.map +1 -0
- package/lib/test/client.attributionFarm.spec.d.ts +7 -0
- package/lib/test/client.attributionFarm.spec.d.ts.map +1 -0
- package/lib/test/client.attributionFarm.spec.js +92 -0
- package/lib/test/client.attributionFarm.spec.js.map +1 -0
- package/lib/test/client.conflictFarm.spec.d.ts +15 -0
- package/lib/test/client.conflictFarm.spec.d.ts.map +1 -0
- package/lib/test/client.conflictFarm.spec.js +85 -0
- package/lib/test/client.conflictFarm.spec.js.map +1 -0
- package/lib/test/client.getPosition.spec.d.ts +6 -0
- package/lib/test/client.getPosition.spec.d.ts.map +1 -0
- package/lib/test/client.getPosition.spec.js +52 -0
- package/lib/test/client.getPosition.spec.js.map +1 -0
- package/lib/test/client.localReference.spec.d.ts +6 -0
- package/lib/test/client.localReference.spec.d.ts.map +1 -0
- package/lib/test/client.localReference.spec.js +468 -0
- package/lib/test/client.localReference.spec.js.map +1 -0
- package/lib/test/client.localReferenceFarm.spec.d.ts +6 -0
- package/lib/test/client.localReferenceFarm.spec.d.ts.map +1 -0
- package/lib/test/client.localReferenceFarm.spec.js +86 -0
- package/lib/test/client.localReferenceFarm.spec.js.map +1 -0
- package/lib/test/client.rebasePosition.spec.d.ts +6 -0
- package/lib/test/client.rebasePosition.spec.d.ts.map +1 -0
- package/lib/test/client.rebasePosition.spec.js +100 -0
- package/lib/test/client.rebasePosition.spec.js.map +1 -0
- package/lib/test/client.reconnectFarm.spec.d.ts +12 -0
- package/lib/test/client.reconnectFarm.spec.d.ts.map +1 -0
- package/lib/test/client.reconnectFarm.spec.js +88 -0
- package/lib/test/client.reconnectFarm.spec.js.map +1 -0
- package/lib/test/client.replay.spec.d.ts +6 -0
- package/lib/test/client.replay.spec.d.ts.map +1 -0
- package/lib/test/client.replay.spec.js +57 -0
- package/lib/test/client.replay.spec.js.map +1 -0
- package/lib/test/client.rollback.spec.d.ts +6 -0
- package/lib/test/client.rollback.spec.d.ts.map +1 -0
- package/lib/test/client.rollback.spec.js +451 -0
- package/lib/test/client.rollback.spec.js.map +1 -0
- package/lib/test/client.rollbackFarm.spec.d.ts +6 -0
- package/lib/test/client.rollbackFarm.spec.d.ts.map +1 -0
- package/lib/test/client.rollbackFarm.spec.js +46 -0
- package/lib/test/client.rollbackFarm.spec.js.map +1 -0
- package/lib/test/client.searchForMarker.spec.d.ts +6 -0
- package/lib/test/client.searchForMarker.spec.d.ts.map +1 -0
- package/lib/test/client.searchForMarker.spec.js +495 -0
- package/lib/test/client.searchForMarker.spec.js.map +1 -0
- package/lib/test/client.walkSegments.spec.d.ts +6 -0
- package/lib/test/client.walkSegments.spec.d.ts.map +1 -0
- package/lib/test/client.walkSegments.spec.js +52 -0
- package/lib/test/client.walkSegments.spec.js.map +1 -0
- package/lib/test/collections.list.spec.d.ts +6 -0
- package/lib/test/collections.list.spec.d.ts.map +1 -0
- package/lib/test/collections.list.spec.js +82 -0
- package/lib/test/collections.list.spec.js.map +1 -0
- package/lib/test/createInsertOnlyAttributionPolicy.spec.d.ts +6 -0
- package/lib/test/createInsertOnlyAttributionPolicy.spec.d.ts.map +1 -0
- package/lib/test/createInsertOnlyAttributionPolicy.spec.js +33 -0
- package/lib/test/createInsertOnlyAttributionPolicy.spec.js.map +1 -0
- package/lib/test/dirname.cjs +16 -0
- package/lib/test/dirname.cjs.map +1 -0
- package/lib/test/dirname.d.cts +6 -0
- package/lib/test/dirname.d.cts.map +1 -0
- package/lib/test/index.d.ts +13 -0
- package/lib/test/index.d.ts.map +1 -0
- package/lib/test/index.js +13 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/mergeTree.annotate.deltaCallback.spec.d.ts +6 -0
- package/lib/test/mergeTree.annotate.deltaCallback.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js +140 -0
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -0
- package/lib/test/mergeTree.annotate.spec.d.ts +6 -0
- package/lib/test/mergeTree.annotate.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.annotate.spec.js +446 -0
- package/lib/test/mergeTree.annotate.spec.js.map +1 -0
- package/lib/test/mergeTree.insert.deltaCallback.spec.d.ts +6 -0
- package/lib/test/mergeTree.insert.deltaCallback.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.insert.deltaCallback.spec.js +124 -0
- package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -0
- package/lib/test/mergeTree.insertingWalk.spec.d.ts +6 -0
- package/lib/test/mergeTree.insertingWalk.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.insertingWalk.spec.js +277 -0
- package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -0
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts +6 -0
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +176 -0
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -0
- package/lib/test/mergeTree.markRangeRemoved.spec.d.ts +6 -0
- package/lib/test/mergeTree.markRangeRemoved.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.markRangeRemoved.spec.js +128 -0
- package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -0
- package/lib/test/mergeTree.walk.spec.d.ts +6 -0
- package/lib/test/mergeTree.walk.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.walk.spec.js +61 -0
- package/lib/test/mergeTree.walk.spec.js.map +1 -0
- package/lib/test/mergeTree.zamboni.spec.d.ts +6 -0
- package/lib/test/mergeTree.zamboni.spec.d.ts.map +1 -0
- package/lib/test/mergeTree.zamboni.spec.js +50 -0
- package/lib/test/mergeTree.zamboni.spec.js.map +1 -0
- package/lib/test/mergeTreeOperationRunner.d.ts +63 -0
- package/lib/test/mergeTreeOperationRunner.d.ts.map +1 -0
- package/lib/test/mergeTreeOperationRunner.js +207 -0
- package/lib/test/mergeTreeOperationRunner.js.map +1 -0
- package/lib/test/mergeTreeOperationRunner.spec.d.ts +6 -0
- package/lib/test/mergeTreeOperationRunner.spec.d.ts.map +1 -0
- package/lib/test/mergeTreeOperationRunner.spec.js +154 -0
- package/lib/test/mergeTreeOperationRunner.spec.js.map +1 -0
- package/lib/test/obliterate.concurrent.spec.d.ts +6 -0
- package/lib/test/obliterate.concurrent.spec.d.ts.map +1 -0
- package/lib/test/obliterate.concurrent.spec.js +1441 -0
- package/lib/test/obliterate.concurrent.spec.js.map +1 -0
- package/lib/test/obliterate.deltaCallback.spec.d.ts +6 -0
- package/lib/test/obliterate.deltaCallback.spec.d.ts.map +1 -0
- package/lib/test/obliterate.deltaCallback.spec.js +144 -0
- package/lib/test/obliterate.deltaCallback.spec.js.map +1 -0
- package/lib/test/obliterate.partialLength.spec.d.ts +6 -0
- package/lib/test/obliterate.partialLength.spec.d.ts.map +1 -0
- package/lib/test/obliterate.partialLength.spec.js +272 -0
- package/lib/test/obliterate.partialLength.spec.js.map +1 -0
- package/lib/test/obliterate.reconnect.spec.d.ts +6 -0
- package/lib/test/obliterate.reconnect.spec.d.ts.map +1 -0
- package/lib/test/obliterate.reconnect.spec.js +159 -0
- package/lib/test/obliterate.reconnect.spec.js.map +1 -0
- package/lib/test/obliterate.spec.d.ts +6 -0
- package/lib/test/obliterate.spec.d.ts.map +1 -0
- package/lib/test/obliterate.spec.js +160 -0
- package/lib/test/obliterate.spec.js.map +1 -0
- package/lib/test/ordinal.spec.d.ts +2 -0
- package/lib/test/ordinal.spec.d.ts.map +1 -0
- package/lib/test/ordinal.spec.js +38 -0
- package/lib/test/ordinal.spec.js.map +1 -0
- package/lib/test/partialLength.spec.d.ts +6 -0
- package/lib/test/partialLength.spec.d.ts.map +1 -0
- package/lib/test/partialLength.spec.js +274 -0
- package/lib/test/partialLength.spec.js.map +1 -0
- package/lib/test/properties.spec.d.ts +6 -0
- package/lib/test/properties.spec.d.ts.map +1 -0
- package/lib/test/properties.spec.js +53 -0
- package/lib/test/properties.spec.js.map +1 -0
- package/lib/test/reconnectHelper.d.ts +48 -0
- package/lib/test/reconnectHelper.d.ts.map +1 -0
- package/lib/test/reconnectHelper.js +82 -0
- package/lib/test/reconnectHelper.js.map +1 -0
- package/lib/test/resetPendingSegmentsToOp.spec.d.ts +6 -0
- package/lib/test/resetPendingSegmentsToOp.spec.d.ts.map +1 -0
- package/lib/test/resetPendingSegmentsToOp.spec.js +235 -0
- package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -0
- package/lib/test/revertibleFarm.spec.d.ts +6 -0
- package/lib/test/revertibleFarm.spec.d.ts.map +1 -0
- package/lib/test/revertibleFarm.spec.js +119 -0
- package/lib/test/revertibleFarm.spec.js.map +1 -0
- package/lib/test/revertibles.spec.d.ts +17 -0
- package/lib/test/revertibles.spec.d.ts.map +1 -0
- package/lib/test/revertibles.spec.js +381 -0
- package/lib/test/revertibles.spec.js.map +1 -0
- package/lib/test/segmentGroupCollection.spec.d.ts +6 -0
- package/lib/test/segmentGroupCollection.spec.d.ts.map +1 -0
- package/lib/test/segmentGroupCollection.spec.js +58 -0
- package/lib/test/segmentGroupCollection.spec.js.map +1 -0
- package/lib/test/snapshot.spec.d.ts +6 -0
- package/lib/test/snapshot.spec.d.ts.map +1 -0
- package/lib/test/snapshot.spec.js +176 -0
- package/lib/test/snapshot.spec.js.map +1 -0
- package/lib/test/snapshot.utils.d.ts +33 -0
- package/lib/test/snapshot.utils.d.ts.map +1 -0
- package/lib/test/snapshot.utils.js +104 -0
- package/lib/test/snapshot.utils.js.map +1 -0
- package/lib/test/snapshotlegacy.spec.d.ts +6 -0
- package/lib/test/snapshotlegacy.spec.d.ts.map +1 -0
- package/lib/test/snapshotlegacy.spec.js +137 -0
- package/lib/test/snapshotlegacy.spec.js.map +1 -0
- package/lib/test/sortedSegmentSet.spec.d.ts +6 -0
- package/lib/test/sortedSegmentSet.spec.d.ts.map +1 -0
- package/lib/test/sortedSegmentSet.spec.js +93 -0
- package/lib/test/sortedSegmentSet.spec.js.map +1 -0
- package/lib/test/testClient.d.ts +116 -0
- package/lib/test/testClient.d.ts.map +1 -0
- package/lib/test/testClient.js +430 -0
- package/lib/test/testClient.js.map +1 -0
- package/lib/test/testClientLogger.d.ts +44 -0
- package/lib/test/testClientLogger.d.ts.map +1 -0
- package/lib/test/testClientLogger.js +282 -0
- package/lib/test/testClientLogger.js.map +1 -0
- package/lib/test/testSerializer.d.ts +18 -0
- package/lib/test/testSerializer.d.ts.map +1 -0
- package/lib/test/testSerializer.js +29 -0
- package/lib/test/testSerializer.js.map +1 -0
- package/lib/test/testServer.d.ts +36 -0
- package/lib/test/testServer.d.ts.map +1 -0
- package/lib/test/testServer.js +133 -0
- package/lib/test/testServer.js.map +1 -0
- package/lib/test/testUtils.d.ts +77 -0
- package/lib/test/testUtils.d.ts.map +1 -0
- package/lib/test/testUtils.js +151 -0
- package/lib/test/testUtils.js.map +1 -0
- package/lib/test/text.d.ts +9 -0
- package/lib/test/text.d.ts.map +1 -0
- package/lib/test/text.js +71 -0
- package/lib/test/text.js.map +1 -0
- package/lib/test/tracking.spec.d.ts +6 -0
- package/lib/test/tracking.spec.d.ts.map +1 -0
- package/lib/test/tracking.spec.js +118 -0
- package/lib/test/tracking.spec.js.map +1 -0
- package/lib/test/types/validateMergeTreePrevious.generated.d.ts +2 -0
- package/lib/test/types/validateMergeTreePrevious.generated.d.ts.map +1 -0
- package/lib/test/types/validateMergeTreePrevious.generated.js +228 -0
- package/lib/test/types/validateMergeTreePrevious.generated.js.map +1 -0
- package/lib/test/wordUnitTests.spec.d.ts +6 -0
- package/lib/test/wordUnitTests.spec.d.ts.map +1 -0
- package/lib/test/wordUnitTests.spec.js +166 -0
- package/lib/test/wordUnitTests.spec.js.map +1 -0
- package/lib/{textSegment.d.mts → textSegment.d.ts} +4 -4
- package/lib/textSegment.d.ts.map +1 -0
- package/lib/{textSegment.mjs → textSegment.js} +2 -2
- package/lib/textSegment.js.map +1 -0
- package/lib/{zamboni.d.mts → zamboni.d.ts} +3 -3
- package/lib/zamboni.d.ts.map +1 -0
- package/lib/{zamboni.mjs → zamboni.js} +7 -6
- package/lib/zamboni.js.map +1 -0
- package/package.json +50 -57
- package/src/MergeTreeTextHelper.ts +4 -4
- package/src/attributionCollection.ts +1 -1
- package/src/attributionPolicy.ts +5 -5
- package/src/client.ts +50 -41
- package/src/collections/index.ts +2 -2
- package/src/endOfTreeSegment.ts +5 -5
- package/src/index.ts +20 -20
- package/src/localReference.ts +13 -7
- package/src/mergeTree.ts +53 -44
- package/src/mergeTreeDeltaCallback.ts +3 -8
- package/src/mergeTreeNodeWalk.ts +1 -1
- package/src/mergeTreeNodes.ts +21 -19
- package/src/mergeTreeTracking.ts +3 -3
- package/src/opBuilder.ts +3 -3
- package/src/partialLengths.ts +10 -10
- package/src/referencePositions.ts +4 -4
- package/src/revertibles.ts +14 -18
- package/src/segmentGroupCollection.ts +2 -2
- package/src/segmentPropertiesManager.ts +3 -3
- package/src/snapshotChunks.ts +4 -4
- package/src/snapshotLoader.ts +14 -11
- package/src/snapshotV1.ts +29 -9
- package/src/snapshotlegacy.ts +19 -5
- package/src/sortedSegmentSet.ts +8 -6
- package/src/textSegment.ts +3 -3
- package/src/zamboni.ts +7 -7
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +2 -5
- package/api-extractor-esm.json +0 -17
- package/dist/test/beastTest.d.ts.map +0 -1
- package/dist/test/beastTest.js.map +0 -1
- package/dist/test/client.apis.d.ts.map +0 -1
- package/dist/test/client.apis.js.map +0 -1
- package/dist/test/wordUnitTests.d.ts.map +0 -1
- package/dist/test/wordUnitTests.js.map +0 -1
- package/lib/MergeTreeTextHelper.d.mts.map +0 -1
- package/lib/MergeTreeTextHelper.mjs.map +0 -1
- package/lib/attributionCollection.d.mts.map +0 -1
- package/lib/attributionCollection.mjs.map +0 -1
- package/lib/attributionPolicy.d.mts.map +0 -1
- package/lib/attributionPolicy.mjs.map +0 -1
- package/lib/client.d.mts.map +0 -1
- package/lib/client.mjs.map +0 -1
- package/lib/collections/index.d.mts.map +0 -1
- package/lib/collections/index.mjs +0 -7
- package/lib/collections/index.mjs.map +0 -1
- package/lib/collections/list.d.mts.map +0 -1
- package/lib/collections/list.mjs.map +0 -1
- package/lib/collections/rbTree.d.mts.map +0 -1
- package/lib/collections/rbTree.mjs.map +0 -1
- package/lib/constants.d.mts.map +0 -1
- package/lib/constants.mjs.map +0 -1
- package/lib/endOfTreeSegment.d.mts.map +0 -1
- package/lib/endOfTreeSegment.mjs.map +0 -1
- package/lib/index.d.mts.map +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/localReference.d.mts.map +0 -1
- package/lib/localReference.mjs.map +0 -1
- package/lib/merge-tree-beta.d.mts +0 -668
- package/lib/merge-tree-public.d.mts +0 -668
- package/lib/mergeTree.d.mts.map +0 -1
- package/lib/mergeTree.mjs.map +0 -1
- package/lib/mergeTreeDeltaCallback.d.mts.map +0 -1
- package/lib/mergeTreeDeltaCallback.mjs.map +0 -1
- package/lib/mergeTreeNodeWalk.d.mts.map +0 -1
- package/lib/mergeTreeNodeWalk.mjs.map +0 -1
- package/lib/mergeTreeNodes.d.mts.map +0 -1
- package/lib/mergeTreeNodes.mjs.map +0 -1
- package/lib/mergeTreeTracking.d.mts.map +0 -1
- package/lib/mergeTreeTracking.mjs.map +0 -1
- package/lib/opBuilder.mjs.map +0 -1
- package/lib/ops.d.mts.map +0 -1
- package/lib/ops.mjs.map +0 -1
- package/lib/ordinal.d.mts.map +0 -1
- package/lib/ordinal.mjs.map +0 -1
- package/lib/partialLengths.d.mts.map +0 -1
- package/lib/partialLengths.mjs.map +0 -1
- package/lib/properties.d.mts.map +0 -1
- package/lib/properties.mjs.map +0 -1
- package/lib/referencePositions.d.mts.map +0 -1
- package/lib/referencePositions.mjs.map +0 -1
- package/lib/revertibles.d.mts.map +0 -1
- package/lib/revertibles.mjs.map +0 -1
- package/lib/segmentGroupCollection.d.mts.map +0 -1
- package/lib/segmentGroupCollection.mjs.map +0 -1
- package/lib/segmentPropertiesManager.d.mts.map +0 -1
- package/lib/segmentPropertiesManager.mjs.map +0 -1
- package/lib/snapshotChunks.d.mts.map +0 -1
- package/lib/snapshotChunks.mjs.map +0 -1
- package/lib/snapshotLoader.d.mts.map +0 -1
- package/lib/snapshotLoader.mjs.map +0 -1
- package/lib/snapshotV1.d.mts.map +0 -1
- package/lib/snapshotV1.mjs.map +0 -1
- package/lib/snapshotlegacy.d.mts.map +0 -1
- package/lib/snapshotlegacy.mjs.map +0 -1
- package/lib/sortedSegmentSet.d.mts.map +0 -1
- package/lib/sortedSegmentSet.mjs.map +0 -1
- package/lib/sortedSet.d.mts.map +0 -1
- package/lib/sortedSet.mjs.map +0 -1
- package/lib/textSegment.d.mts.map +0 -1
- package/lib/textSegment.mjs.map +0 -1
- package/lib/zamboni.d.mts.map +0 -1
- package/lib/zamboni.mjs.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AttributionKey } from '@fluidframework/runtime-definitions';
|
|
2
|
-
import { Heap } from '@fluidframework/core-utils';
|
|
3
2
|
import { IChannelStorageService } from '@fluidframework/datastore-definitions';
|
|
4
3
|
import { IEventThisPlaceHolder } from '@fluidframework/core-interfaces';
|
|
5
4
|
import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
|
|
@@ -43,61 +42,6 @@ export declare interface AttributionPolicy {
|
|
|
43
42
|
serializer: IAttributionCollectionSerializer;
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
/**
|
|
47
|
-
* This is a special segment that is not bound or known by the merge tree itself,
|
|
48
|
-
* but the segment itself pretends to be a removed segment at an endpoint of the
|
|
49
|
-
* tree. It is removed so it appears as a undefined/0 length segment. This segment
|
|
50
|
-
* adds the capability to hold local references that have been detached from the
|
|
51
|
-
* real merge tree, and give the appearance that they exist at an endpoint of the
|
|
52
|
-
* tree.
|
|
53
|
-
*
|
|
54
|
-
* This is useful today in 2 cases: detached references and interval stickiness.
|
|
55
|
-
*
|
|
56
|
-
* In general, local references only become detached when the tree becomes empty
|
|
57
|
-
* and the EndOfTreeSegment allows us to gracefully handle that case by giving
|
|
58
|
-
* those references a place to live.
|
|
59
|
-
*
|
|
60
|
-
* In the case of interval stickiness, it is desirable to be able to refer to
|
|
61
|
-
* the position immediately after or before a segment, in order for the endpoint
|
|
62
|
-
* of an interval to be exclusive. This means that in order to support intervals
|
|
63
|
-
* that are exclusive and also include the first or last segment of the tree, it
|
|
64
|
-
* must be possible in some way to refer to a position before or after the tree
|
|
65
|
-
* respectively. The endpoint segments allow us to support such behavior.
|
|
66
|
-
*/
|
|
67
|
-
declare abstract class BaseEndpointSegment {
|
|
68
|
-
protected readonly mergeTree: MergeTree;
|
|
69
|
-
constructor(mergeTree: MergeTree);
|
|
70
|
-
removedSeq: number;
|
|
71
|
-
removedClientIds: number[];
|
|
72
|
-
attribution: undefined;
|
|
73
|
-
propertyManager: undefined;
|
|
74
|
-
localSeq: undefined;
|
|
75
|
-
localRemovedSeq: undefined;
|
|
76
|
-
properties: undefined;
|
|
77
|
-
seq: number;
|
|
78
|
-
clientId: number;
|
|
79
|
-
cachedLength: number;
|
|
80
|
-
isLeaf(): this is ISegment;
|
|
81
|
-
protected abstract endpointSegmentProps(): {
|
|
82
|
-
parent: IMergeBlock;
|
|
83
|
-
index: number;
|
|
84
|
-
depth: number;
|
|
85
|
-
};
|
|
86
|
-
get parent(): IMergeBlock;
|
|
87
|
-
get index(): number;
|
|
88
|
-
abstract get ordinal(): string;
|
|
89
|
-
localRefs?: LocalReferenceCollection;
|
|
90
|
-
get segmentGroups(): never;
|
|
91
|
-
get trackingCollection(): never;
|
|
92
|
-
addProperties: () => never;
|
|
93
|
-
clone: () => never;
|
|
94
|
-
canAppend: () => never;
|
|
95
|
-
append: () => never;
|
|
96
|
-
splitAt: () => never;
|
|
97
|
-
toJSONObject: () => never;
|
|
98
|
-
ack: () => never;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
45
|
/**
|
|
102
46
|
* @alpha
|
|
103
47
|
*/
|
|
@@ -144,11 +88,27 @@ export declare abstract class BaseSegment extends MergeNode implements ISegment
|
|
|
144
88
|
export declare class Client extends TypedEventEmitter<IClientEvents> {
|
|
145
89
|
readonly specToSegment: (spec: IJSONSegment) => ISegment;
|
|
146
90
|
readonly logger: ITelemetryLoggerExt;
|
|
91
|
+
private readonly getMinInFlightRefSeq;
|
|
147
92
|
longClientId: string | undefined;
|
|
148
93
|
private readonly _mergeTree;
|
|
149
94
|
private readonly clientNameToIds;
|
|
150
95
|
private readonly shortClientIdMap;
|
|
151
|
-
|
|
96
|
+
/**
|
|
97
|
+
* @param specToSegment - Rehydrates a segment from its JSON representation
|
|
98
|
+
* @param logger - Telemetry logger for diagnostics
|
|
99
|
+
* @param options - Options for this client. See {@link IMergeTreeOptions} for details.
|
|
100
|
+
* @param getMinInFlightRefSeq - Upon applying a message (see {@link Client.applyMsg}), client purges collab-window information which
|
|
101
|
+
* is no longer necessary based on that message's minimum sequence number.
|
|
102
|
+
* However, if the user of this client has in-flight messages which refer to positions in this Client,
|
|
103
|
+
* they may wish to preserve additional merge information.
|
|
104
|
+
* The effective minimum sequence number will be the minimum of the message's minimumSequenceNumber and the result of this function.
|
|
105
|
+
* If this function returns undefined, the message's minimumSequenceNumber will be used.
|
|
106
|
+
*
|
|
107
|
+
* @privateRemarks
|
|
108
|
+
* - Passing specToSegment would be unnecessary if Client were merged with SharedSegmentSequence
|
|
109
|
+
* - AB#6866 tracks a more unified approach to collab window min seq handling.
|
|
110
|
+
*/
|
|
111
|
+
constructor(specToSegment: (spec: IJSONSegment) => ISegment, logger: ITelemetryLoggerExt, options?: IMergeTreeOptions & PropertySet, getMinInFlightRefSeq?: () => number | undefined);
|
|
152
112
|
/**
|
|
153
113
|
* The merge tree maintains a queue of segment groups for each local operation.
|
|
154
114
|
* These segment groups track segments modified by an operation.
|
|
@@ -232,6 +192,11 @@ export declare class Client extends TypedEventEmitter<IClientEvents> {
|
|
|
232
192
|
removeLocalReferencePosition(lref: LocalReferencePosition): LocalReferencePosition | undefined;
|
|
233
193
|
/**
|
|
234
194
|
* Resolves a `ReferencePosition` into a character position using this client's perspective.
|
|
195
|
+
*
|
|
196
|
+
* Reference positions that point to a character that has been removed will
|
|
197
|
+
* always return the position of the nearest non-removed character, regardless
|
|
198
|
+
* of {@link ReferenceType}. To handle this case specifically, one may wish
|
|
199
|
+
* to look at the segment returned by {@link ReferencePosition.getSegment}.
|
|
235
200
|
*/
|
|
236
201
|
localReferencePositionToPosition(lref: ReferencePosition): number;
|
|
237
202
|
/**
|
|
@@ -296,9 +261,7 @@ export declare class Client extends TypedEventEmitter<IClientEvents> {
|
|
|
296
261
|
findReconnectionPosition(segment: ISegment, localSeq: number): number;
|
|
297
262
|
private resetPendingDeltaToOps;
|
|
298
263
|
private applyRemoteOp;
|
|
299
|
-
applyStashedOp(op:
|
|
300
|
-
applyStashedOp(op: IMergeTreeGroupMsg): SegmentGroup[];
|
|
301
|
-
applyStashedOp(op: IMergeTreeOp): SegmentGroup | SegmentGroup[];
|
|
264
|
+
applyStashedOp(op: IMergeTreeOp): void;
|
|
302
265
|
applyMsg(msg: ISequencedDocumentMessage, local?: boolean): void;
|
|
303
266
|
private updateSeqNumbers;
|
|
304
267
|
/**
|
|
@@ -467,61 +430,8 @@ export declare class CollaborationWindow {
|
|
|
467
430
|
*/
|
|
468
431
|
export declare function discardMergeTreeDeltaRevertible(revertibles: MergeTreeDeltaRevertible[]): void;
|
|
469
432
|
|
|
470
|
-
declare class DoublyLinkedList<T> implements Iterable<ListNode<T>>, Partial<ListNodeRange<T>>, Pick<ListNode<T>[], "pop" | "shift" | "length" | "includes"> {
|
|
471
|
-
find(predicate: (value: ListNode<T>, obj: DoublyLinkedList<T>) => unknown): ListNode<T> | undefined;
|
|
472
|
-
map<U>(callbackfn: (value: ListNode<T>) => U): Iterable<U>;
|
|
473
|
-
insertAfter(preceding: ListNode<T>, ...items: T[]): ListNodeRange<T>;
|
|
474
|
-
pop(): ListNode<T> | undefined;
|
|
475
|
-
push(...items: T[]): ListNodeRange<T>;
|
|
476
|
-
/**
|
|
477
|
-
* Remove and return the first element
|
|
478
|
-
*/
|
|
479
|
-
shift(): ListNode<T> | undefined;
|
|
480
|
-
/**
|
|
481
|
-
* Insert `items` at start of list
|
|
482
|
-
*/
|
|
483
|
-
unshift(...items: T[]): ListNodeRange<T>;
|
|
484
|
-
/**
|
|
485
|
-
* Remove nodes starting at `start` until either the `end` node is reached
|
|
486
|
-
* or until `count` nodes have been removed. Returns the removed nodes as
|
|
487
|
-
* a separate linked list
|
|
488
|
-
*/
|
|
489
|
-
splice(start: ListNode<T>, countOrEnd?: ListNode<T> | number): DoublyLinkedList<T>;
|
|
490
|
-
includes(node: ListNode<T> | undefined): node is ListNode<T>;
|
|
491
|
-
private _includes;
|
|
492
|
-
private _remove;
|
|
493
|
-
remove(node: ListNode<T> | undefined): ListNode<T> | undefined;
|
|
494
|
-
[Symbol.iterator](): IterableIterator<ListNode<T>>;
|
|
495
|
-
private _len;
|
|
496
|
-
private readonly headNode;
|
|
497
|
-
get length(): number;
|
|
498
|
-
get empty(): boolean;
|
|
499
|
-
get first(): ListNode<T> | undefined;
|
|
500
|
-
get last(): ListNode<T> | undefined;
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* The position immediately after the end of the tree
|
|
505
|
-
*/
|
|
506
|
-
declare class EndOfTreeSegment extends BaseEndpointSegment implements ISegment, IRemovalInfo {
|
|
507
|
-
type: string;
|
|
508
|
-
readonly endpointType = "end";
|
|
509
|
-
/**
|
|
510
|
-
* this segment pretends to be a sibling of the last real segment.
|
|
511
|
-
* so compute the necessary properties to pretend to be that segment.
|
|
512
|
-
*/
|
|
513
|
-
protected endpointSegmentProps(): {
|
|
514
|
-
parent: IMergeBlock;
|
|
515
|
-
index: number;
|
|
516
|
-
depth: number;
|
|
517
|
-
};
|
|
518
|
-
get ordinal(): string;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
433
|
/* Excluded from this release type: getSlideToSegoff */
|
|
522
434
|
|
|
523
|
-
/* Excluded from this release type: Heap */
|
|
524
|
-
|
|
525
435
|
/**
|
|
526
436
|
* @alpha
|
|
527
437
|
*/
|
|
@@ -604,8 +514,6 @@ export declare interface IClientEvents {
|
|
|
604
514
|
(event: "maintenance", listener: (args: IMergeTreeMaintenanceCallbackArgs, deltaArgs: IMergeTreeDeltaOpArgs | undefined, target: IEventThisPlaceHolder) => void): void;
|
|
605
515
|
}
|
|
606
516
|
|
|
607
|
-
/* Excluded from this release type: IHierBlock */
|
|
608
|
-
|
|
609
517
|
/**
|
|
610
518
|
* @alpha
|
|
611
519
|
*/
|
|
@@ -634,14 +542,6 @@ export declare interface IMarkerDef {
|
|
|
634
542
|
refType?: ReferenceType;
|
|
635
543
|
}
|
|
636
544
|
|
|
637
|
-
/* Excluded from this release type: IMergeBlock */
|
|
638
|
-
|
|
639
|
-
declare type IMergeLeaf = ISegment & {
|
|
640
|
-
parent?: IMergeBlock;
|
|
641
|
-
};
|
|
642
|
-
|
|
643
|
-
declare type IMergeNode = IMergeBlock | IMergeLeaf;
|
|
644
|
-
|
|
645
545
|
/**
|
|
646
546
|
* Common properties for a node in a merge tree.
|
|
647
547
|
* @alpha
|
|
@@ -737,10 +637,6 @@ export declare interface IMergeTreeDeltaOpArgs {
|
|
|
737
637
|
* Delta op args are for an unacked local change
|
|
738
638
|
*/
|
|
739
639
|
readonly sequencedMessage?: ISequencedDocumentMessage;
|
|
740
|
-
/**
|
|
741
|
-
* If the operation is being applied as a stashed op, which means it may have been previously submitted, and therefore should not be resubmitted
|
|
742
|
-
*/
|
|
743
|
-
readonly stashed?: boolean;
|
|
744
640
|
}
|
|
745
641
|
|
|
746
642
|
/**
|
|
@@ -935,21 +831,10 @@ export declare interface IMoveInfo {
|
|
|
935
831
|
wasMovedOnInsert: boolean;
|
|
936
832
|
}
|
|
937
833
|
|
|
938
|
-
declare interface IOverlapClient {
|
|
939
|
-
clientId: number;
|
|
940
|
-
seglen: number;
|
|
941
|
-
}
|
|
942
|
-
|
|
943
834
|
/* Excluded from this release type: IRBAugmentation */
|
|
944
835
|
|
|
945
836
|
/* Excluded from this release type: IRBMatcher */
|
|
946
837
|
|
|
947
|
-
declare interface IRefsAtOffset {
|
|
948
|
-
before?: DoublyLinkedList<LocalReference>;
|
|
949
|
-
at?: DoublyLinkedList<LocalReference>;
|
|
950
|
-
after?: DoublyLinkedList<LocalReference>;
|
|
951
|
-
}
|
|
952
|
-
|
|
953
838
|
/**
|
|
954
839
|
* A position specified relative to a segment.
|
|
955
840
|
* @alpha
|
|
@@ -993,10 +878,6 @@ export declare interface IRemovalInfo {
|
|
|
993
878
|
removedClientIds: number[];
|
|
994
879
|
}
|
|
995
880
|
|
|
996
|
-
declare interface IRootMergeBlock extends IMergeBlock {
|
|
997
|
-
mergeTree?: MergeTree;
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
881
|
/**
|
|
1001
882
|
* A segment representing a portion of the merge tree.
|
|
1002
883
|
* Segments are leaf nodes of the merge tree and contain data.
|
|
@@ -1108,12 +989,6 @@ export declare interface ISegmentAction<TClientData> {
|
|
|
1108
989
|
(segment: ISegment, pos: number, refSeq: number, clientId: number, start: number, end: number, accum: TClientData): boolean;
|
|
1109
990
|
}
|
|
1110
991
|
|
|
1111
|
-
/**
|
|
1112
|
-
* someday we may split tree leaves from segments, but for now they are the same
|
|
1113
|
-
* this is just a convenience type that makes it clear that we need something that is both a segment and a leaf node
|
|
1114
|
-
*/
|
|
1115
|
-
declare type ISegmentLeaf = ISegment & IMergeLeaf;
|
|
1116
|
-
|
|
1117
992
|
/* Excluded from this release type: isMergeTreeDeltaRevertible */
|
|
1118
993
|
|
|
1119
994
|
/**
|
|
@@ -1129,36 +1004,23 @@ export declare interface ITrackingGroup {
|
|
|
1129
1004
|
|
|
1130
1005
|
/* Excluded from this release type: KeyComparer */
|
|
1131
1006
|
|
|
1132
|
-
declare interface ListNode<T> {
|
|
1133
|
-
readonly list: DoublyLinkedList<T> | undefined;
|
|
1134
|
-
readonly data: T;
|
|
1135
|
-
readonly next: ListNode<T> | undefined;
|
|
1136
|
-
readonly prev: ListNode<T> | undefined;
|
|
1137
|
-
}
|
|
1138
|
-
|
|
1139
|
-
declare interface ListNodeRange<T> {
|
|
1140
|
-
first: ListNode<T>;
|
|
1141
|
-
last: ListNode<T>;
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
/* Excluded from this release type: LocalReference */
|
|
1145
|
-
|
|
1146
1007
|
/**
|
|
1147
1008
|
* Represents a collection of {@link LocalReferencePosition}s associated with
|
|
1148
1009
|
* one segment in a merge-tree.
|
|
1149
1010
|
* Represents a collection of {@link LocalReferencePosition}s associated with one segment in a merge-tree.
|
|
1011
|
+
* @sealed
|
|
1012
|
+
*
|
|
1150
1013
|
* @alpha
|
|
1151
1014
|
*/
|
|
1152
1015
|
export declare class LocalReferenceCollection {
|
|
1153
1016
|
/** Segment this `LocalReferenceCollection` is associated to. */
|
|
1154
1017
|
private readonly segment;
|
|
1155
1018
|
static append(seg1: ISegment, seg2: ISegment): void;
|
|
1019
|
+
static setOrGet(segment: ISegment): LocalReferenceCollection;
|
|
1156
1020
|
private readonly refsByOffset;
|
|
1157
1021
|
private refCount;
|
|
1158
1022
|
/***/
|
|
1159
|
-
constructor(
|
|
1160
|
-
/** Segment this `LocalReferenceCollection` is associated to. */
|
|
1161
|
-
segment: ISegment, initialRefsByfOffset?: (IRefsAtOffset | undefined)[]);
|
|
1023
|
+
private constructor();
|
|
1162
1024
|
/**
|
|
1163
1025
|
* @remarks This method should only be called by mergeTree.
|
|
1164
1026
|
*/
|
|
@@ -1244,8 +1106,6 @@ export declare interface LocalReferencePosition extends ReferencePosition {
|
|
|
1244
1106
|
readonly canSlideToEndpoint?: boolean;
|
|
1245
1107
|
}
|
|
1246
1108
|
|
|
1247
|
-
/* Excluded from this release type: LRUSegment */
|
|
1248
|
-
|
|
1249
1109
|
/**
|
|
1250
1110
|
* Any mapping from a string to values of type `T`
|
|
1251
1111
|
* @alpha
|
|
@@ -1289,8 +1149,6 @@ export declare class Marker extends BaseSegment implements ReferencePosition, IS
|
|
|
1289
1149
|
|
|
1290
1150
|
/* Excluded from this release type: maxReferencePosition */
|
|
1291
1151
|
|
|
1292
|
-
/* Excluded from this release type: MergeBlock */
|
|
1293
|
-
|
|
1294
1152
|
/**
|
|
1295
1153
|
* @alpha
|
|
1296
1154
|
*/
|
|
@@ -1301,10 +1159,6 @@ export declare class MergeNode implements IMergeNodeCommon {
|
|
|
1301
1159
|
isLeaf(): this is ISegment;
|
|
1302
1160
|
}
|
|
1303
1161
|
|
|
1304
|
-
/* Excluded from this release type: MergeTree */
|
|
1305
|
-
|
|
1306
|
-
/* Excluded from this release type: MergeTreeDeltaCallback */
|
|
1307
|
-
|
|
1308
1162
|
/**
|
|
1309
1163
|
* @alpha
|
|
1310
1164
|
*/
|
|
@@ -1349,8 +1203,6 @@ export declare const MergeTreeDeltaType: {
|
|
|
1349
1203
|
*/
|
|
1350
1204
|
export declare type MergeTreeDeltaType = (typeof MergeTreeDeltaType)[keyof typeof MergeTreeDeltaType];
|
|
1351
1205
|
|
|
1352
|
-
/* Excluded from this release type: MergeTreeMaintenanceCallback */
|
|
1353
|
-
|
|
1354
1206
|
/**
|
|
1355
1207
|
* Enum-like constant defining the types of "maintenance" events on a merge tree.
|
|
1356
1208
|
* Maintenance events correspond to structural segment changes or acks of pending segments.
|
|
@@ -1402,262 +1254,6 @@ export declare interface MergeTreeRevertibleDriver {
|
|
|
1402
1254
|
|
|
1403
1255
|
/* Excluded from this release type: minReferencePosition */
|
|
1404
1256
|
|
|
1405
|
-
/**
|
|
1406
|
-
* Tracks length information for a part of a MergeTree (block) at a given time (seq).
|
|
1407
|
-
* These objects are associated with internal nodes (i.e. blocks).
|
|
1408
|
-
*/
|
|
1409
|
-
declare interface PartialSequenceLength {
|
|
1410
|
-
/**
|
|
1411
|
-
* Sequence number
|
|
1412
|
-
*/
|
|
1413
|
-
seq: number;
|
|
1414
|
-
/**
|
|
1415
|
-
* The length of the associated block.
|
|
1416
|
-
*/
|
|
1417
|
-
len: number;
|
|
1418
|
-
/**
|
|
1419
|
-
* The delta between the current length of the associated block and its length at the previous seq number.
|
|
1420
|
-
*/
|
|
1421
|
-
seglen: number;
|
|
1422
|
-
/**
|
|
1423
|
-
* clientId for the client that submitted the op with sequence number `seq`.
|
|
1424
|
-
*/
|
|
1425
|
-
clientId?: number;
|
|
1426
|
-
/**
|
|
1427
|
-
* If this partial length obliterated remote segments, this is the length of
|
|
1428
|
-
* those segments
|
|
1429
|
-
*/
|
|
1430
|
-
remoteObliteratedLen?: number;
|
|
1431
|
-
/**
|
|
1432
|
-
* This field maps each client to the size of the intersection between segments deleted at this seq
|
|
1433
|
-
* and segments concurrently deleted by that client.
|
|
1434
|
-
*
|
|
1435
|
-
* For example, this PartialSequenceLength:
|
|
1436
|
-
* ```typescript
|
|
1437
|
-
* {
|
|
1438
|
-
* seq: 5,
|
|
1439
|
-
* len: 100,
|
|
1440
|
-
* seglen: -10,
|
|
1441
|
-
* clientId: 0,
|
|
1442
|
-
* overlapRemoveClients: <RedBlack tree with key-values expressed by>{
|
|
1443
|
-
* 1: { clientId: 1, seglen: -5 },
|
|
1444
|
-
* 3: { clientId: 3, seglen: -10 }
|
|
1445
|
-
* }
|
|
1446
|
-
* }
|
|
1447
|
-
* ```
|
|
1448
|
-
*
|
|
1449
|
-
* corresponds to an op submitted by client 0 which:
|
|
1450
|
-
* - reduces the length of this block by 10 (it may have deleted a single segment of length 10,
|
|
1451
|
-
* several segments totalling length 10, or even delete and add content for a total reduction of 10 length)
|
|
1452
|
-
* - was concurrent to one or more ops submitted by client 1 that also removed some of the same segments,
|
|
1453
|
-
* whose length totalled 5
|
|
1454
|
-
* - was concurrent to one or more ops submitted by client 3 that removed some of the same segments,
|
|
1455
|
-
* whose length totalled 10
|
|
1456
|
-
*/
|
|
1457
|
-
overlapRemoveClients?: RedBlackTree<number, IOverlapClient>;
|
|
1458
|
-
/**
|
|
1459
|
-
* This field is the same as `overlapRemoveClients`, except that it tracks
|
|
1460
|
-
* overlapping obliterates rather than removes.
|
|
1461
|
-
*/
|
|
1462
|
-
overlapObliterateClients?: RedBlackTree<number, IOverlapClient>;
|
|
1463
|
-
}
|
|
1464
|
-
|
|
1465
|
-
/**
|
|
1466
|
-
* Keeps track of partial sums of segment lengths for all sequence numbers in the current collaboration window.
|
|
1467
|
-
* Only used during active collaboration.
|
|
1468
|
-
*
|
|
1469
|
-
* This class is associated with an internal node (block) of a MergeTree. It efficiently answers queries of the form
|
|
1470
|
-
* "What is the length of `block` from the perspective of some particular seq and clientId?".
|
|
1471
|
-
*
|
|
1472
|
-
* It also supports incremental updating of state for newly-sequenced ops that don't affect the structure of the
|
|
1473
|
-
* MergeTree.
|
|
1474
|
-
*
|
|
1475
|
-
* To answer these queries, it pre-builds several lists which track the length of the block at a per-sequence-number
|
|
1476
|
-
* level. These lists are:
|
|
1477
|
-
*
|
|
1478
|
-
* 1. (`partialLengths`): Stores the total length of the block.
|
|
1479
|
-
* 2. (`clientSeqNumbers[clientId]`): Stores only the total lengths of segments submitted by `clientId`. [see footnote]
|
|
1480
|
-
*
|
|
1481
|
-
* The reason both lists are necessary is that resolving the length of the block from the perspective of
|
|
1482
|
-
* (clientId, refSeq) requires including both of the following types of segments:
|
|
1483
|
-
* 1. Segments sequenced before `refSeq`
|
|
1484
|
-
* 2. Segments submitted by `clientId`
|
|
1485
|
-
*
|
|
1486
|
-
* This is possible with the above bookkeeping, using:
|
|
1487
|
-
*
|
|
1488
|
-
* (length of the block at the minimum sequence number)
|
|
1489
|
-
* + (partialLengths total length at refSeq)
|
|
1490
|
-
* + (clientSeqNumbers total length at most recent op)
|
|
1491
|
-
* - (clientSeqNumbers total length at refSeq)
|
|
1492
|
-
*
|
|
1493
|
-
* where the subtraction avoids double-counting segments submitted by clientId sequenced within the collab window.
|
|
1494
|
-
*
|
|
1495
|
-
* To enable reconnect, if constructed with `computeLocalPartials === true` it also supports querying for the length of
|
|
1496
|
-
* the block from the perspective of the local client at a particular `refSeq` and `localSeq`. This computation is
|
|
1497
|
-
* similar to the above:
|
|
1498
|
-
*
|
|
1499
|
-
* (length of the block at the minimum sequence number)
|
|
1500
|
-
* + (partialLengths total length at refSeq)
|
|
1501
|
-
* + (unsequenced edits' total length submitted before localSeq)
|
|
1502
|
-
* - (overlapping remove of the unsequenced edits' total length at refSeq)
|
|
1503
|
-
*
|
|
1504
|
-
* This algorithm scales roughly linearly with number of editing clients and the size of the collab window.
|
|
1505
|
-
* (certain unlikely sequences of operations may introduce log factors on those variables)
|
|
1506
|
-
*
|
|
1507
|
-
* Note: there is some slight complication with clientSeqNumbers resulting from the possibility of different clients
|
|
1508
|
-
* concurrently removing the same segment. See the field's documentation for more details.
|
|
1509
|
-
*/
|
|
1510
|
-
declare class PartialSequenceLengths {
|
|
1511
|
-
/**
|
|
1512
|
-
* The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
|
|
1513
|
-
* or if no such calls have been made, the one used on construction.
|
|
1514
|
-
*/
|
|
1515
|
-
minSeq: number;
|
|
1516
|
-
static options: PartialSequenceLengthsOptions;
|
|
1517
|
-
/**
|
|
1518
|
-
* Combine the partial lengths of block's children
|
|
1519
|
-
* @param block - an interior node. If `recur` is false, it is assumed that each interior node child of this block
|
|
1520
|
-
* has its partials up to date.
|
|
1521
|
-
* @param collabWindow - segment window of the segment tree containing `block`.
|
|
1522
|
-
* @param recur - whether to recursively compute partial lengths for internal children of `block`.
|
|
1523
|
-
* This incurs more work, but gives correct bookkeeping in the case that a descendant in the merge tree has been
|
|
1524
|
-
* modified without bubbling up the resulting partial length change to this block's partials.
|
|
1525
|
-
* @param computeLocalPartials - whether to compute partial length information about local unsequenced ops.
|
|
1526
|
-
* This enables querying for the length of the block at a given localSeq, but incurs extra work.
|
|
1527
|
-
* Local partial information doesn't support `update`.
|
|
1528
|
-
*/
|
|
1529
|
-
static combine(block: IMergeBlock, collabWindow: CollaborationWindow, recur?: boolean, computeLocalPartials?: boolean): PartialSequenceLengths;
|
|
1530
|
-
/**
|
|
1531
|
-
* @returns a PartialSequenceLengths structure which tracks only lengths of leaf children of the provided
|
|
1532
|
-
* IMergeBlock.
|
|
1533
|
-
*/
|
|
1534
|
-
private static fromLeaves;
|
|
1535
|
-
private static getOverlapClients;
|
|
1536
|
-
private static accumulateRemoveClientOverlap;
|
|
1537
|
-
private static accumulateMoveClientOverlap;
|
|
1538
|
-
/**
|
|
1539
|
-
* Coalesce overlapping move lengths for a partial length entry that already
|
|
1540
|
-
* exists
|
|
1541
|
-
*
|
|
1542
|
-
* @param segmentLen - Length of segment with overlapping moves
|
|
1543
|
-
* @param segment - Segment with overlapping moves
|
|
1544
|
-
* @param firstGte - Existing partial length entry
|
|
1545
|
-
* @param clientIds - Ids of clients that concurrently obliterated this segment
|
|
1546
|
-
*/
|
|
1547
|
-
static accumulateMoveOverlapForExisting(segmentLen: number, segment: ISegment, firstGte: PartialSequenceLength, clientIds: number[]): void;
|
|
1548
|
-
/**
|
|
1549
|
-
* @param obliterateOverlapLen - Length of segment with overlap
|
|
1550
|
-
* @param clientIds - Ids of clients that have concurrently obliterated this
|
|
1551
|
-
* segment
|
|
1552
|
-
*/
|
|
1553
|
-
private static getMoveOverlapForExisting;
|
|
1554
|
-
private static updatePartialsAfterInsertion;
|
|
1555
|
-
/**
|
|
1556
|
-
* Inserts length information about the insertion of `segment` into
|
|
1557
|
-
* `combinedPartialLengths.partialLengths`.
|
|
1558
|
-
*
|
|
1559
|
-
* Does not update the clientSeqNumbers field to account for this segment.
|
|
1560
|
-
*
|
|
1561
|
-
* If `removalInfo` or `moveInfo` are defined, this operation updates the
|
|
1562
|
-
* bookkeeping to account for the (re)moval of this segment at the (re)movedSeq
|
|
1563
|
-
* instead.
|
|
1564
|
-
*
|
|
1565
|
-
* When the insertion or (re)moval of the segment is un-acked and
|
|
1566
|
-
* `combinedPartialLengths` is meant to compute such records, this does the
|
|
1567
|
-
* analogous addition to the bookkeeping for the local segment in
|
|
1568
|
-
* `combinedPartialLengths.unsequencedRecords`.
|
|
1569
|
-
*/
|
|
1570
|
-
private static insertSegment;
|
|
1571
|
-
private static addSeq;
|
|
1572
|
-
/**
|
|
1573
|
-
* Length of the block this PartialSequenceLength corresponds to when viewed at `minSeq`.
|
|
1574
|
-
*/
|
|
1575
|
-
private minLength;
|
|
1576
|
-
/**
|
|
1577
|
-
* Total number of segments in the subtree rooted at the block this PartialSequenceLength corresponds to.
|
|
1578
|
-
*/
|
|
1579
|
-
private segmentCount;
|
|
1580
|
-
/**
|
|
1581
|
-
* List of PartialSequenceLength objects--ordered by increasing seq--giving length information about
|
|
1582
|
-
* the block associated with this PartialSequenceLengths object.
|
|
1583
|
-
*
|
|
1584
|
-
* `partialLengths[i].len` contains the length of this block considering only sequenced segments with
|
|
1585
|
-
* `sequenceNumber <= partialLengths[i].seq`.
|
|
1586
|
-
*/
|
|
1587
|
-
private readonly partialLengths;
|
|
1588
|
-
/**
|
|
1589
|
-
* clientSeqNumbers[clientId] is a list of partial lengths for sequenced ops which either:
|
|
1590
|
-
* - were submitted by `clientId`.
|
|
1591
|
-
* - deleted a range containing segments that were concurrently deleted by `clientId`
|
|
1592
|
-
*
|
|
1593
|
-
* The second case is referred to as the "overlapping delete" case. It is necessary to avoid double-counting
|
|
1594
|
-
* the removal of those segments in queries including clientId.
|
|
1595
|
-
*/
|
|
1596
|
-
private readonly clientSeqNumbers;
|
|
1597
|
-
/**
|
|
1598
|
-
* Contains information required to answer queries for the length of this segment from the perspective of
|
|
1599
|
-
* the local client but not including all local segments (i.e., `localSeq !== collabWindow.localSeq`).
|
|
1600
|
-
* This field is only computed if requested in the constructor (i.e. `computeLocalPartials === true`).
|
|
1601
|
-
*/
|
|
1602
|
-
private unsequencedRecords;
|
|
1603
|
-
constructor(
|
|
1604
|
-
/**
|
|
1605
|
-
* The minimumSequenceNumber as defined by the collab window used in the last call to `update`,
|
|
1606
|
-
* or if no such calls have been made, the one used on construction.
|
|
1607
|
-
*/
|
|
1608
|
-
minSeq: number, computeLocalPartials: boolean);
|
|
1609
|
-
update(node: IMergeBlock, seq: number, clientId: number, collabWindow: CollaborationWindow): void;
|
|
1610
|
-
/**
|
|
1611
|
-
* Returns the length of this block as viewed from the perspective of `clientId` at `refSeq`.
|
|
1612
|
-
* This is the total length of all segments sequenced at or before refSeq OR submitted by `clientId`.
|
|
1613
|
-
* If `clientId` is the local client, `localSeq` can also be provided. In that case, it is the total
|
|
1614
|
-
* length of all segments submitted at or before `refSeq` in addition to any local, unacked segments
|
|
1615
|
-
* with `segment.localSeq <= localSeq`.
|
|
1616
|
-
*
|
|
1617
|
-
* Note: the local case (where `localSeq !== undefined`) is only supported on a PartialSequenceLength object
|
|
1618
|
-
* constructed with `computeLocalPartials` set to true and not subsequently updated with `update`.
|
|
1619
|
-
*/
|
|
1620
|
-
getPartialLength(refSeq: number, clientId: number, localSeq?: number): number;
|
|
1621
|
-
/**
|
|
1622
|
-
* Computes the seglen for the double-counted removed overlap at (refSeq, localSeq). This logic is equivalent
|
|
1623
|
-
* to the following:
|
|
1624
|
-
*
|
|
1625
|
-
* ```typescript
|
|
1626
|
-
* let total = 0;
|
|
1627
|
-
* for (const partialLength of this.unsequencedRecords!.overlappingRemoves) {
|
|
1628
|
-
* if (partialLength.seq > refSeq) {
|
|
1629
|
-
* break;
|
|
1630
|
-
* }
|
|
1631
|
-
*
|
|
1632
|
-
* if (partialLength.localSeq <= localSeq) {
|
|
1633
|
-
* total += partialLength.seglen;
|
|
1634
|
-
* }
|
|
1635
|
-
* }
|
|
1636
|
-
*
|
|
1637
|
-
* return total;
|
|
1638
|
-
* ```
|
|
1639
|
-
*
|
|
1640
|
-
* Reconnect happens to only need to compute these lengths for two refSeq values: before and
|
|
1641
|
-
* after the rebase. Since these lists potentially scale with O(collab window * number of local edits)
|
|
1642
|
-
* and potentially need to be queried for each local op that gets rebased,
|
|
1643
|
-
* we cache the results for a given refSeq in `this.unsequencedRecords.cachedOverlappingByRefSeq` so
|
|
1644
|
-
* that they can be binary-searched the same way the usual partialLengths lists are.
|
|
1645
|
-
*/
|
|
1646
|
-
private computeOverlappingLocalRemoves;
|
|
1647
|
-
toString(glc?: (id: number) => string, indentCount?: number): string;
|
|
1648
|
-
private zamboni;
|
|
1649
|
-
private addClientSeqNumber;
|
|
1650
|
-
private addClientSeqNumberFromPartial;
|
|
1651
|
-
private cliLatestLEQ;
|
|
1652
|
-
private cliLatest;
|
|
1653
|
-
}
|
|
1654
|
-
|
|
1655
|
-
declare interface PartialSequenceLengthsOptions {
|
|
1656
|
-
verifier?: (partialLengths: PartialSequenceLengths) => void;
|
|
1657
|
-
verifyExpected?: (mergeTree: MergeTree, node: IMergeBlock, refSeq: number, clientId: number, localSeq?: number) => void;
|
|
1658
|
-
zamboni: boolean;
|
|
1659
|
-
}
|
|
1660
|
-
|
|
1661
1257
|
/**
|
|
1662
1258
|
* @alpha
|
|
1663
1259
|
*/
|
|
@@ -1816,7 +1412,7 @@ export declare function revertMergeTreeDeltaRevertibles(driver: MergeTreeReverti
|
|
|
1816
1412
|
* @alpha
|
|
1817
1413
|
*/
|
|
1818
1414
|
export declare interface SegmentGroup {
|
|
1819
|
-
segments:
|
|
1415
|
+
segments: ISegment[];
|
|
1820
1416
|
previousProps?: PropertySet[];
|
|
1821
1417
|
localSeq?: number;
|
|
1822
1418
|
refSeq: number;
|
|
@@ -1900,24 +1496,6 @@ export declare type SlidingPreference = (typeof SlidingPreference)[keyof typeof
|
|
|
1900
1496
|
|
|
1901
1497
|
/* Excluded from this release type: SortedSet */
|
|
1902
1498
|
|
|
1903
|
-
/**
|
|
1904
|
-
* The position immediately prior to the start of the tree
|
|
1905
|
-
*/
|
|
1906
|
-
declare class StartOfTreeSegment extends BaseEndpointSegment implements ISegment, IRemovalInfo {
|
|
1907
|
-
type: string;
|
|
1908
|
-
readonly endpointType = "start";
|
|
1909
|
-
/**
|
|
1910
|
-
* this segment pretends to be a sibling of the first real segment.
|
|
1911
|
-
* so compute the necessary properties to pretend to be that segment.
|
|
1912
|
-
*/
|
|
1913
|
-
protected endpointSegmentProps(): {
|
|
1914
|
-
parent: IMergeBlock;
|
|
1915
|
-
index: number;
|
|
1916
|
-
depth: number;
|
|
1917
|
-
};
|
|
1918
|
-
get ordinal(): string;
|
|
1919
|
-
}
|
|
1920
|
-
|
|
1921
1499
|
/**
|
|
1922
1500
|
* @alpha
|
|
1923
1501
|
*/
|