@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
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const assert_1 = require("assert");
|
|
8
8
|
const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const mergeTree_js_1 = require("../mergeTree.js");
|
|
10
|
+
const reconnectHelper_js_1 = require("./reconnectHelper.js");
|
|
11
|
+
const testUtils_js_1 = require("./testUtils.js");
|
|
12
12
|
/**
|
|
13
13
|
* Some tests contain ASCII diagrams of the trees to make it easier to reason about
|
|
14
14
|
* structure. The format of these diagrams is this:
|
|
@@ -40,18 +40,15 @@ const reconnectHelper_1 = require("./reconnectHelper");
|
|
|
40
40
|
*/
|
|
41
41
|
for (const incremental of [true, false]) {
|
|
42
42
|
describe(`obliterate partial lengths incremental = ${incremental}`, () => {
|
|
43
|
+
(0, testUtils_js_1.useStrictPartialLengthChecks)();
|
|
43
44
|
beforeEach(() => {
|
|
44
|
-
|
|
45
|
-
partialLengths_1.PartialSequenceLengths.options.verifyExpected = partialLengths_1.verifyExpected;
|
|
46
|
-
mergeTree_1.MergeTree.options.incrementalUpdate = incremental;
|
|
45
|
+
mergeTree_js_1.MergeTree.options.incrementalUpdate = incremental;
|
|
47
46
|
});
|
|
48
47
|
afterEach(() => {
|
|
49
|
-
|
|
50
|
-
partialLengths_1.PartialSequenceLengths.options.verifyExpected = undefined;
|
|
51
|
-
mergeTree_1.MergeTree.options.incrementalUpdate = true;
|
|
48
|
+
mergeTree_js_1.MergeTree.options.incrementalUpdate = true;
|
|
52
49
|
});
|
|
53
50
|
it("length of children does not differ from parent when overlapping remove+obliterate", () => {
|
|
54
|
-
const helper = new
|
|
51
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
55
52
|
// ABCDEFGH
|
|
56
53
|
// I-[J]-(KLM-[ABC]-D-123456-E-[FG]-H)
|
|
57
54
|
helper.insertText("A", 0, "ABCDEFGH");
|
|
@@ -67,7 +64,7 @@ for (const incremental of [true, false]) {
|
|
|
67
64
|
helper.logger.validate();
|
|
68
65
|
});
|
|
69
66
|
it("deletes concurrent insert that occurs after obliterate", () => {
|
|
70
|
-
const helper = new
|
|
67
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
71
68
|
helper.insertText("B", 0, "ABCD");
|
|
72
69
|
helper.processAllOps();
|
|
73
70
|
helper.obliterateRange("B", 0, 4);
|
|
@@ -78,7 +75,7 @@ for (const incremental of [true, false]) {
|
|
|
78
75
|
helper.logger.validate();
|
|
79
76
|
});
|
|
80
77
|
it("deletes concurrent insert that occurs before obliterate", () => {
|
|
81
|
-
const helper = new
|
|
78
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
82
79
|
helper.insertText("B", 0, "ABCD");
|
|
83
80
|
helper.processAllOps();
|
|
84
81
|
helper.insertText("C", 2, "X");
|
|
@@ -89,7 +86,7 @@ for (const incremental of [true, false]) {
|
|
|
89
86
|
helper.logger.validate();
|
|
90
87
|
});
|
|
91
88
|
it("does not delete unacked segment at start of string", () => {
|
|
92
|
-
const helper = new
|
|
89
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
93
90
|
helper.insertText("C", 0, "ABC");
|
|
94
91
|
helper.obliterateRange("C", 2, 3);
|
|
95
92
|
helper.insertText("B", 0, "X");
|
|
@@ -100,7 +97,7 @@ for (const incremental of [true, false]) {
|
|
|
100
97
|
helper.logger.validate();
|
|
101
98
|
});
|
|
102
99
|
it("throws when local obliterate has range end outside length of local string", () => {
|
|
103
|
-
const helper = new
|
|
100
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
104
101
|
helper.insertText("B", 0, "A");
|
|
105
102
|
helper.insertText("C", 0, "B");
|
|
106
103
|
try {
|
|
@@ -113,7 +110,7 @@ for (const incremental of [true, false]) {
|
|
|
113
110
|
}
|
|
114
111
|
});
|
|
115
112
|
it("does not delete when obliterate immediately after insert", () => {
|
|
116
|
-
const helper = new
|
|
113
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
117
114
|
helper.insertText("C", 0, "A");
|
|
118
115
|
helper.obliterateRange("C", 0, 1);
|
|
119
116
|
helper.insertText("B", 0, "W");
|
|
@@ -126,7 +123,7 @@ for (const incremental of [true, false]) {
|
|
|
126
123
|
helper.logger.validate();
|
|
127
124
|
});
|
|
128
125
|
it("does not delete remote insert when between local insert+obliterate", () => {
|
|
129
|
-
const helper = new
|
|
126
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
130
127
|
helper.insertText("C", 0, "A");
|
|
131
128
|
helper.insertText("B", 0, "X");
|
|
132
129
|
helper.obliterateRange("C", 0, 1);
|
|
@@ -139,7 +136,7 @@ for (const incremental of [true, false]) {
|
|
|
139
136
|
helper.logger.validate();
|
|
140
137
|
});
|
|
141
138
|
it("does not delete remote insert when between local insert+obliterate", () => {
|
|
142
|
-
const helper = new
|
|
139
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
143
140
|
helper.insertText("C", 0, "A");
|
|
144
141
|
helper.obliterateRange("C", 0, 1);
|
|
145
142
|
helper.insertText("B", 0, "B");
|
|
@@ -152,7 +149,7 @@ for (const incremental of [true, false]) {
|
|
|
152
149
|
helper.logger.validate();
|
|
153
150
|
});
|
|
154
151
|
it("does not delete remote insert when in middle of segment", () => {
|
|
155
|
-
const helper = new
|
|
152
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
156
153
|
helper.insertText("C", 0, "ABC");
|
|
157
154
|
helper.obliterateRange("C", 2, 3);
|
|
158
155
|
helper.obliterateRange("C", 0, 1);
|
|
@@ -164,7 +161,7 @@ for (const incremental of [true, false]) {
|
|
|
164
161
|
helper.logger.validate();
|
|
165
162
|
});
|
|
166
163
|
it("deletes segment inserted into locally obliterated segment", () => {
|
|
167
|
-
const helper = new
|
|
164
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
168
165
|
helper.insertText("C", 0, "A");
|
|
169
166
|
helper.insertText("B", 0, "X");
|
|
170
167
|
helper.insertText("C", 0, "B");
|
|
@@ -176,7 +173,7 @@ for (const incremental of [true, false]) {
|
|
|
176
173
|
helper.logger.validate();
|
|
177
174
|
});
|
|
178
175
|
it("updates lengths after obliterated insertion", () => {
|
|
179
|
-
const helper = new
|
|
176
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
180
177
|
helper.insertText("C", 0, "A");
|
|
181
178
|
helper.insertText("B", 0, "X");
|
|
182
179
|
helper.insertText("C", 0, "N");
|
|
@@ -192,7 +189,7 @@ for (const incremental of [true, false]) {
|
|
|
192
189
|
helper.logger.validate();
|
|
193
190
|
});
|
|
194
191
|
it("updates lengths when insertion causes tree to split", () => {
|
|
195
|
-
const helper = new
|
|
192
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
196
193
|
helper.insertText("A", 0, "0");
|
|
197
194
|
helper.insertText("C", 0, "123");
|
|
198
195
|
helper.insertText("B", 0, "BB");
|
|
@@ -207,7 +204,7 @@ for (const incremental of [true, false]) {
|
|
|
207
204
|
helper.logger.validate();
|
|
208
205
|
});
|
|
209
206
|
it("length of node split by insertion does not count remotely obliterated segments", () => {
|
|
210
|
-
const helper = new
|
|
207
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
211
208
|
helper.insertText("A", 0, "1");
|
|
212
209
|
helper.insertText("A", 0, "2");
|
|
213
210
|
helper.insertText("C", 0, "XXXX");
|
|
@@ -221,7 +218,7 @@ for (const incremental of [true, false]) {
|
|
|
221
218
|
helper.logger.validate();
|
|
222
219
|
});
|
|
223
220
|
it("length of node split by obliterate does not count remotely obliterated segments", () => {
|
|
224
|
-
const helper = new
|
|
221
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
225
222
|
helper.insertText("A", 0, "1");
|
|
226
223
|
helper.insertText("A", 0, "2");
|
|
227
224
|
helper.insertText("C", 0, "XXXX");
|
|
@@ -236,7 +233,7 @@ for (const incremental of [true, false]) {
|
|
|
236
233
|
helper.logger.validate();
|
|
237
234
|
});
|
|
238
235
|
it("counts remotely but not concurrently inserted segments for length when tree is split", () => {
|
|
239
|
-
const helper = new
|
|
236
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
240
237
|
// a-b-c-d-e-123
|
|
241
238
|
// (a-b)-c-d-e-1-[2]-3
|
|
242
239
|
helper.insertText("B", 0, "123");
|
|
@@ -254,7 +251,7 @@ for (const incremental of [true, false]) {
|
|
|
254
251
|
helper.logger.validate();
|
|
255
252
|
});
|
|
256
253
|
it("does obliterate X for all clients", () => {
|
|
257
|
-
const helper = new
|
|
254
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
258
255
|
helper.insertText("B", 0, "DE");
|
|
259
256
|
helper.obliterateRange("B", 0, 1);
|
|
260
257
|
helper.insertText("A", 0, "X");
|
|
@@ -266,7 +263,7 @@ for (const incremental of [true, false]) {
|
|
|
266
263
|
helper.logger.validate();
|
|
267
264
|
});
|
|
268
265
|
it("does not include remote but unacked segments in partial len calculation", () => {
|
|
269
|
-
const helper = new
|
|
266
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
270
267
|
// 89-4567-123-X
|
|
271
268
|
// 8-(9-4-w-567-1)-23-Y-X
|
|
272
269
|
helper.insertText("A", 0, "X");
|
|
@@ -283,7 +280,7 @@ for (const incremental of [true, false]) {
|
|
|
283
280
|
helper.logger.validate();
|
|
284
281
|
});
|
|
285
282
|
it("correctly accounts for overlapping obliterate", () => {
|
|
286
|
-
const helper = new
|
|
283
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
287
284
|
helper.insertText("B", 0, "AB");
|
|
288
285
|
helper.processAllOps();
|
|
289
286
|
helper.obliterateRange("C", 0, 1);
|
|
@@ -295,7 +292,7 @@ for (const incremental of [true, false]) {
|
|
|
295
292
|
helper.logger.validate();
|
|
296
293
|
});
|
|
297
294
|
it("correctly accounts for overlapping obliterate and remove", () => {
|
|
298
|
-
const helper = new
|
|
295
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
299
296
|
helper.insertText("B", 0, "AB");
|
|
300
297
|
helper.processAllOps();
|
|
301
298
|
helper.removeRange("C", 0, 1);
|
|
@@ -307,7 +304,7 @@ for (const incremental of [true, false]) {
|
|
|
307
304
|
helper.logger.validate();
|
|
308
305
|
});
|
|
309
306
|
it("clones movedClientIds array during insert", () => {
|
|
310
|
-
const helper = new
|
|
307
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
311
308
|
// the bug found here:
|
|
312
309
|
// the X was skipped over by client `A` because it had already been
|
|
313
310
|
// deleted, so its length at refSeq was 0
|
|
@@ -326,7 +323,7 @@ for (const incremental of [true, false]) {
|
|
|
326
323
|
helper.logger.validate();
|
|
327
324
|
});
|
|
328
325
|
it("client partial lens consider overlapping obliterates", () => {
|
|
329
|
-
const helper = new
|
|
326
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
330
327
|
helper.insertText("A", 0, "123");
|
|
331
328
|
helper.insertText("A", 0, "ABCDEF");
|
|
332
329
|
helper.processAllOps();
|
|
@@ -340,7 +337,7 @@ for (const incremental of [true, false]) {
|
|
|
340
337
|
helper.logger.validate();
|
|
341
338
|
});
|
|
342
339
|
it("client partial lens consider overlapping obliterates", () => {
|
|
343
|
-
const helper = new
|
|
340
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
344
341
|
helper.insertText("C", 0, "X");
|
|
345
342
|
helper.insertText("C", 0, "ABCDEFG");
|
|
346
343
|
helper.processAllOps();
|
|
@@ -353,7 +350,7 @@ for (const incremental of [true, false]) {
|
|
|
353
350
|
helper.logger.validate();
|
|
354
351
|
});
|
|
355
352
|
it("tracks obliterate refSeq when acking op for partial len calculation", () => {
|
|
356
|
-
const helper = new
|
|
353
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
357
354
|
// v-----------------------v
|
|
358
355
|
// v--v
|
|
359
356
|
// v--v
|
|
@@ -371,7 +368,7 @@ for (const incremental of [true, false]) {
|
|
|
371
368
|
helper.logger.validate();
|
|
372
369
|
});
|
|
373
370
|
it("does not have negative len when segment obliterated before insert", () => {
|
|
374
|
-
const helper = new
|
|
371
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
375
372
|
// 1234567-D-C-AB
|
|
376
373
|
// 12-([3-X-45]-67)-D-C-AB
|
|
377
374
|
helper.insertText("A", 0, "AB");
|
|
@@ -390,7 +387,7 @@ for (const incremental of [true, false]) {
|
|
|
390
387
|
helper.logger.validate();
|
|
391
388
|
});
|
|
392
389
|
it("does not have negative len when segment obliterated before insert", () => {
|
|
393
|
-
const helper = new
|
|
390
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
394
391
|
// ABCDE-1-[2]-3
|
|
395
392
|
// (A-XX-B)-(CD)-E-1-3
|
|
396
393
|
helper.insertText("B", 0, "123");
|
|
@@ -408,7 +405,7 @@ for (const incremental of [true, false]) {
|
|
|
408
405
|
helper.logger.validate();
|
|
409
406
|
});
|
|
410
407
|
it("deletes segments between two obliterates with different seq", () => {
|
|
411
|
-
const helper = new
|
|
408
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
412
409
|
// 90-8-1234-(5)-67-D-C-B-A
|
|
413
410
|
// 9-(EFG-[0-8-1234-(5)-67)]-D-C-B-A
|
|
414
411
|
helper.insertText("A", 0, "A");
|
|
@@ -428,7 +425,7 @@ for (const incremental of [true, false]) {
|
|
|
428
425
|
helper.logger.validate();
|
|
429
426
|
});
|
|
430
427
|
it("deletes inserted segment when obliterate of different seq in-between", () => {
|
|
431
|
-
const helper = new
|
|
428
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
432
429
|
helper.insertText("A", 0, "AB");
|
|
433
430
|
helper.insertText("B", 0, "E");
|
|
434
431
|
helper.obliterateRange("A", 0, 1);
|
|
@@ -442,7 +439,7 @@ for (const incremental of [true, false]) {
|
|
|
442
439
|
helper.logger.validate();
|
|
443
440
|
});
|
|
444
441
|
it("deletes inserted segment when obliterate of different seq in-between", () => {
|
|
445
|
-
const helper = new
|
|
442
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
446
443
|
helper.insertText("A", 0, "ABC");
|
|
447
444
|
helper.obliterateRange("A", 1, 2);
|
|
448
445
|
helper.processAllOps();
|
|
@@ -455,7 +452,7 @@ for (const incremental of [true, false]) {
|
|
|
455
452
|
helper.logger.validate();
|
|
456
453
|
});
|
|
457
454
|
it("deletes inserted segment when obliterate of different seq in-between", () => {
|
|
458
|
-
const helper = new
|
|
455
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
459
456
|
helper.insertText("A", 0, "ABC");
|
|
460
457
|
helper.obliterateRange("A", 1, 2);
|
|
461
458
|
helper.processAllOps();
|
|
@@ -468,7 +465,7 @@ for (const incremental of [true, false]) {
|
|
|
468
465
|
helper.logger.validate();
|
|
469
466
|
});
|
|
470
467
|
it("considers obliterated local segments as remotely obliterate", () => {
|
|
471
|
-
const helper = new
|
|
468
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
472
469
|
// G-(H-F-I-C)-J-DE-A-(B)
|
|
473
470
|
// G-J-(H-F-I-CD)-E
|
|
474
471
|
helper.insertText("A", 0, "AB");
|
|
@@ -485,7 +482,7 @@ for (const incremental of [true, false]) {
|
|
|
485
482
|
helper.logger.validate();
|
|
486
483
|
});
|
|
487
484
|
it("traverses hier block in obliterated when len at ref seq is >0 and len at len seq == 0", () => {
|
|
488
|
-
const helper = new
|
|
485
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
489
486
|
helper.insertText("A", 0, "AB");
|
|
490
487
|
helper.insertText("A", 2, "CD");
|
|
491
488
|
helper.removeRange("A", 1, 3);
|
|
@@ -503,7 +500,7 @@ for (const incremental of [true, false]) {
|
|
|
503
500
|
helper.logger.validate();
|
|
504
501
|
});
|
|
505
502
|
it("traverses hier block in obliterate when len at ref seq is >0 and len at len seq == 0", () => {
|
|
506
|
-
const helper = new
|
|
503
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
507
504
|
// [E]-FGH-12-[A]-[B]-CD
|
|
508
505
|
// 3-4-F-[G-(H-1)-2]-CD
|
|
509
506
|
helper.insertText("B", 0, "ABCD");
|
|
@@ -524,7 +521,7 @@ for (const incremental of [true, false]) {
|
|
|
524
521
|
helper.logger.validate();
|
|
525
522
|
});
|
|
526
523
|
it("ignores segments where movedSeq < seq for partial len calculations", () => {
|
|
527
|
-
const helper = new
|
|
524
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
528
525
|
helper.insertText("B", 0, "ABC");
|
|
529
526
|
helper.insertText("A", 0, "DEF");
|
|
530
527
|
helper.removeRange("A", 1, 2);
|
|
@@ -541,7 +538,7 @@ for (const incremental of [true, false]) {
|
|
|
541
538
|
helper.logger.validate();
|
|
542
539
|
});
|
|
543
540
|
it("accounts for overlapping obliterates from same client", () => {
|
|
544
|
-
const helper = new
|
|
541
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
545
542
|
helper.insertText("A", 0, "AB");
|
|
546
543
|
helper.processAllOps();
|
|
547
544
|
helper.logger.validate();
|
|
@@ -555,7 +552,7 @@ for (const incremental of [true, false]) {
|
|
|
555
552
|
helper.logger.validate();
|
|
556
553
|
});
|
|
557
554
|
it("accounts for concurrently obliterated segments from the perspective of the inserting client for partial lengths", () => {
|
|
558
|
-
const helper = new
|
|
555
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
559
556
|
helper.insertText("B", 0, "A");
|
|
560
557
|
helper.insertText("C", 0, "B");
|
|
561
558
|
helper.insertText("C", 0, "C");
|
|
@@ -570,7 +567,7 @@ for (const incremental of [true, false]) {
|
|
|
570
567
|
helper.logger.validate();
|
|
571
568
|
});
|
|
572
569
|
it("traverses segments when there is a local obliterate", () => {
|
|
573
|
-
const helper = new
|
|
570
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
574
571
|
helper.insertText("A", 0, "AB");
|
|
575
572
|
helper.obliterateRange("A", 0, 1);
|
|
576
573
|
helper.insertText("C", 0, "12");
|
|
@@ -583,7 +580,7 @@ for (const incremental of [true, false]) {
|
|
|
583
580
|
helper.logger.validate();
|
|
584
581
|
});
|
|
585
582
|
it("keeps track of all obliterates on a segment", () => {
|
|
586
|
-
const helper = new
|
|
583
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
587
584
|
// B-A
|
|
588
585
|
// (B-C-(A))
|
|
589
586
|
helper.insertText("C", 0, "A");
|
|
@@ -604,7 +601,7 @@ for (const incremental of [true, false]) {
|
|
|
604
601
|
helper.logger.validate();
|
|
605
602
|
});
|
|
606
603
|
it("many overlapping obliterates", () => {
|
|
607
|
-
const helper = new
|
|
604
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
608
605
|
// EF-ABCD
|
|
609
606
|
// (1)-2-((E)-F-A)-B-(C)-D
|
|
610
607
|
helper.insertText("C", 0, "ABCD");
|
|
@@ -621,7 +618,7 @@ for (const incremental of [true, false]) {
|
|
|
621
618
|
helper.logger.validate();
|
|
622
619
|
});
|
|
623
620
|
it("overlapping obliterates at start", () => {
|
|
624
|
-
const helper = new
|
|
621
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
625
622
|
// 12345-B-A
|
|
626
623
|
// ((1-C-2)-3)-4-D-5-B-A
|
|
627
624
|
helper.insertText("C", 0, "A");
|
|
@@ -637,7 +634,7 @@ for (const incremental of [true, false]) {
|
|
|
637
634
|
helper.logger.validate();
|
|
638
635
|
});
|
|
639
636
|
it("partial lengths updated when local insert is acked", () => {
|
|
640
|
-
const helper = new
|
|
637
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
641
638
|
// A-BCDEF
|
|
642
639
|
// (A-B-G-C)-D-I-E-H-F
|
|
643
640
|
helper.insertText("A", 0, "A");
|
|
@@ -656,7 +653,7 @@ for (const incremental of [true, false]) {
|
|
|
656
653
|
helper.logger.validate();
|
|
657
654
|
});
|
|
658
655
|
it("two local obliterates get different seq numbers after ack", () => {
|
|
659
|
-
const helper = new
|
|
656
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
660
657
|
// C-AB
|
|
661
658
|
// (C-A)-D-(B)
|
|
662
659
|
helper.insertText("C", 0, "AB");
|
|
@@ -674,7 +671,7 @@ for (const incremental of [true, false]) {
|
|
|
674
671
|
helper.logger.validate();
|
|
675
672
|
});
|
|
676
673
|
it("acks remote segment obliterated by local op", () => {
|
|
677
|
-
const helper = new
|
|
674
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
678
675
|
// (D-C-A)-B
|
|
679
676
|
// (D-C-A)-B-E
|
|
680
677
|
helper.insertText("B", 0, "AB");
|
|
@@ -692,7 +689,7 @@ for (const incremental of [true, false]) {
|
|
|
692
689
|
helper.logger.validate();
|
|
693
690
|
});
|
|
694
691
|
it("skips segments obliterated before refSeq when traversing for insertion", () => {
|
|
695
|
-
const helper = new
|
|
692
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
696
693
|
// CDE-(A)-B
|
|
697
694
|
// C-(DE-F-(A)-B)
|
|
698
695
|
helper.insertText("A", 0, "AB");
|
|
@@ -712,7 +709,7 @@ for (const incremental of [true, false]) {
|
|
|
712
709
|
helper.logger.validate();
|
|
713
710
|
});
|
|
714
711
|
it("applies correct movedSeq when right segment has multiple movedSeqs", () => {
|
|
715
|
-
const helper = new
|
|
712
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
716
713
|
// AB
|
|
717
714
|
// (A-C-D-(B))
|
|
718
715
|
helper.insertText("B", 0, "AB");
|
|
@@ -733,7 +730,7 @@ for (const incremental of [true, false]) {
|
|
|
733
730
|
helper.logger.validate();
|
|
734
731
|
});
|
|
735
732
|
it("takes the correct moved client id when multiple clientIds for right segment", () => {
|
|
736
|
-
const helper = new
|
|
733
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
737
734
|
// AB
|
|
738
735
|
// (A-C-D-(B))
|
|
739
736
|
helper.insertText("A", 0, "AB");
|
|
@@ -753,7 +750,7 @@ for (const incremental of [true, false]) {
|
|
|
753
750
|
helper.logger.validate();
|
|
754
751
|
});
|
|
755
752
|
it("selects clientId if 0", () => {
|
|
756
|
-
const helper = new
|
|
753
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
757
754
|
// AB
|
|
758
755
|
// (A-D-E-(C)-B)
|
|
759
756
|
helper.insertText("B", 0, "AB");
|
|
@@ -773,7 +770,7 @@ for (const incremental of [true, false]) {
|
|
|
773
770
|
helper.logger.validate();
|
|
774
771
|
});
|
|
775
772
|
it("obliterates unacked segment inside non-leaf-segment", () => {
|
|
776
|
-
const helper = new
|
|
773
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
777
774
|
// FGHIJ-E-12345678-D-C-A-K-B
|
|
778
775
|
// FGHIJ-E-12345-(6-[7-L-8-D]-C)-A-K-B
|
|
779
776
|
helper.insertText("A", 0, "AB");
|
|
@@ -800,7 +797,7 @@ for (const incremental of [true, false]) {
|
|
|
800
797
|
helper.logger.validate();
|
|
801
798
|
});
|
|
802
799
|
it("tracks length at seq of lower move/remove seq when overlapping", () => {
|
|
803
|
-
const helper = new
|
|
800
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
804
801
|
// H-FG-A-CDE-B
|
|
805
802
|
// (H-F-[G-A)-C-I-D]-E-B
|
|
806
803
|
helper.insertText("C", 0, "AB");
|
|
@@ -823,7 +820,7 @@ for (const incremental of [true, false]) {
|
|
|
823
820
|
helper.logger.validate();
|
|
824
821
|
});
|
|
825
822
|
it("segment obliterated on insert overlaps with local obliterate", () => {
|
|
826
|
-
const helper = new
|
|
823
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
827
824
|
// AB
|
|
828
825
|
// ((A-C)-B)
|
|
829
826
|
helper.insertText("B", 0, "AB");
|
|
@@ -837,7 +834,7 @@ for (const incremental of [true, false]) {
|
|
|
837
834
|
helper.logger.validate();
|
|
838
835
|
});
|
|
839
836
|
it("obliterates entire string when concurrent inserts inside range", () => {
|
|
840
|
-
const helper = new
|
|
837
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
841
838
|
// GT
|
|
842
839
|
// (G-O-S-Y-T)
|
|
843
840
|
helper.insertText("B", 0, "GT");
|
|
@@ -851,7 +848,7 @@ for (const incremental of [true, false]) {
|
|
|
851
848
|
helper.logger.validate();
|
|
852
849
|
});
|
|
853
850
|
it("obliterate ack traverses over non-obliterated remove", () => {
|
|
854
|
-
const helper = new
|
|
851
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
855
852
|
// ABCDEFGH-1
|
|
856
853
|
// ABCDE-(F-[G]-2-H)-1
|
|
857
854
|
// ABCDE-(F-[G]-2-H)-1-3
|
|
@@ -873,7 +870,7 @@ for (const incremental of [true, false]) {
|
|
|
873
870
|
helper.logger.validate();
|
|
874
871
|
});
|
|
875
872
|
it("overlapping remove and obliterate when remove happens last", () => {
|
|
876
|
-
const helper = new
|
|
873
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
877
874
|
// FGH-E-D-BC-A
|
|
878
875
|
// ([F]-G)-H-E-D-B-I-C-A
|
|
879
876
|
helper.insertText("A", 0, "A");
|
|
@@ -894,7 +891,7 @@ for (const incremental of [true, false]) {
|
|
|
894
891
|
helper.logger.validate();
|
|
895
892
|
});
|
|
896
893
|
it("overlapping remove and obliterate when remove happens last _and_ partial length already exists", () => {
|
|
897
|
-
const helper = new
|
|
894
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
898
895
|
// FGH-CDE-B-A
|
|
899
896
|
// [F-(GH)-C]-D-Z-E-B-A
|
|
900
897
|
helper.insertText("B", 0, "A");
|
|
@@ -911,7 +908,7 @@ for (const incremental of [true, false]) {
|
|
|
911
908
|
helper.logger.validate();
|
|
912
909
|
});
|
|
913
910
|
it("overlapping obliterate and remove when obliterate is larger than remove and happened last", () => {
|
|
914
|
-
const helper = new
|
|
911
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
915
912
|
// H-CDEFG-B-A
|
|
916
913
|
// (H-C-[D]-E)-F-Z-G-B-A
|
|
917
914
|
helper.insertText("B", 0, "A");
|
|
@@ -928,7 +925,7 @@ for (const incremental of [true, false]) {
|
|
|
928
925
|
helper.logger.validate();
|
|
929
926
|
});
|
|
930
927
|
it("wasMovedOnInsert remains after leaf node is split", () => {
|
|
931
|
-
const helper = new
|
|
928
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
932
929
|
// CD-B-A
|
|
933
930
|
// I-(C-(G)H-E)-F-D-B-A
|
|
934
931
|
helper.insertText("C", 0, "A");
|
|
@@ -946,7 +943,7 @@ for (const incremental of [true, false]) {
|
|
|
946
943
|
helper.logger.validate();
|
|
947
944
|
});
|
|
948
945
|
it("overlapping obliterates, segment is obliterated on insert and by local client", () => {
|
|
949
|
-
const helper = new
|
|
946
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
950
947
|
// DEFG-BC-A
|
|
951
948
|
// v-----------v
|
|
952
949
|
// v-----v
|
|
@@ -965,7 +962,7 @@ for (const incremental of [true, false]) {
|
|
|
965
962
|
helper.logger.validate();
|
|
966
963
|
});
|
|
967
964
|
it("overlapping obliterates and remove", () => {
|
|
968
|
-
const helper = new
|
|
965
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
969
966
|
// FGHIJKL-BCDE-A
|
|
970
967
|
// (FGHI-[JK-(L-B)-C]-D)-E-M-A
|
|
971
968
|
helper.insertText("C", 0, "A");
|
|
@@ -982,7 +979,7 @@ for (const incremental of [true, false]) {
|
|
|
982
979
|
helper.logger.validate();
|
|
983
980
|
});
|
|
984
981
|
it("does not mark obliterated on insert for non-acked obliterates", () => {
|
|
985
|
-
const helper = new
|
|
982
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
986
983
|
// CDE-B-A
|
|
987
984
|
// I-((C-F)-G-D)-H-E-B-A
|
|
988
985
|
helper.insertText("B", 0, "A");
|
|
@@ -1000,7 +997,7 @@ for (const incremental of [true, false]) {
|
|
|
1000
997
|
helper.logger.validate();
|
|
1001
998
|
});
|
|
1002
999
|
it("partial len isLocal when seq is -1 but moveSeq > -1", () => {
|
|
1003
|
-
const helper = new
|
|
1000
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1004
1001
|
// CDEFG-AB
|
|
1005
1002
|
// C-((D-I-E)-F)-G-A-H-B
|
|
1006
1003
|
helper.insertText("A", 0, "AB");
|
|
@@ -1016,7 +1013,7 @@ for (const incremental of [true, false]) {
|
|
|
1016
1013
|
helper.logger.validate();
|
|
1017
1014
|
});
|
|
1018
1015
|
it("obliterated on insert by overlapping obliterates", () => {
|
|
1019
|
-
const helper = new
|
|
1016
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1020
1017
|
// B-DEFG-C-A
|
|
1021
1018
|
// ((B-D-H-E)-F-I-G-C)-A
|
|
1022
1019
|
helper.insertText("C", 0, "A");
|
|
@@ -1033,7 +1030,7 @@ for (const incremental of [true, false]) {
|
|
|
1033
1030
|
helper.logger.validate();
|
|
1034
1031
|
});
|
|
1035
1032
|
it("overlapping obliterates", () => {
|
|
1036
|
-
const helper = new
|
|
1033
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1037
1034
|
// ABCDEF
|
|
1038
1035
|
// v-------------v
|
|
1039
1036
|
// v-----------v
|
|
@@ -1052,7 +1049,7 @@ for (const incremental of [true, false]) {
|
|
|
1052
1049
|
helper.logger.validate();
|
|
1053
1050
|
});
|
|
1054
1051
|
it("overlapping obliterates", () => {
|
|
1055
|
-
const helper = new
|
|
1052
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1056
1053
|
// CDEF-AB
|
|
1057
1054
|
// v-------------------v
|
|
1058
1055
|
// v---------v
|
|
@@ -1072,7 +1069,7 @@ for (const incremental of [true, false]) {
|
|
|
1072
1069
|
helper.logger.validate();
|
|
1073
1070
|
});
|
|
1074
1071
|
it("overlapping remove and obliterate, local obliterate does not have a remote obliterated len", () => {
|
|
1075
|
-
const helper = new
|
|
1072
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1076
1073
|
// v-v------v-v
|
|
1077
1074
|
// G-(H-[F]-E)-D-[A]-B-I-C
|
|
1078
1075
|
helper.insertText("A", 0, "ABC");
|
|
@@ -1088,7 +1085,7 @@ for (const incremental of [true, false]) {
|
|
|
1088
1085
|
helper.logger.validate();
|
|
1089
1086
|
});
|
|
1090
1087
|
it("triple overlapping obliterate and overlapping remove", () => {
|
|
1091
|
-
const helper = new
|
|
1088
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1092
1089
|
// I-H-BCDEFG-A
|
|
1093
1090
|
// v------------v
|
|
1094
1091
|
// v-------v
|
|
@@ -1113,7 +1110,7 @@ for (const incremental of [true, false]) {
|
|
|
1113
1110
|
helper.logger.validate();
|
|
1114
1111
|
});
|
|
1115
1112
|
it("triple overlapping obliterate with one being local", () => {
|
|
1116
|
-
const helper = new
|
|
1113
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1117
1114
|
// CDEFG-B-A
|
|
1118
1115
|
// v--------v
|
|
1119
1116
|
// v--------v
|
|
@@ -1135,7 +1132,7 @@ for (const incremental of [true, false]) {
|
|
|
1135
1132
|
helper.logger.validate();
|
|
1136
1133
|
});
|
|
1137
1134
|
it("obliterate ack traversal is not stopped by moved segment", () => {
|
|
1138
|
-
const helper = new
|
|
1135
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1139
1136
|
// ABCD
|
|
1140
1137
|
// (A-(B)-E-C)-D-F
|
|
1141
1138
|
helper.insertText("B", 0, "ABCD");
|
|
@@ -1153,7 +1150,7 @@ for (const incremental of [true, false]) {
|
|
|
1153
1150
|
helper.logger.validate();
|
|
1154
1151
|
});
|
|
1155
1152
|
it("updates partial lengths for segments when doing obliterate ack traversal", () => {
|
|
1156
|
-
const helper = new
|
|
1153
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1157
1154
|
// O-JKLMN-FGHI-E-CD-AB
|
|
1158
1155
|
// v-v---v-----v
|
|
1159
1156
|
// (P-O-JKLMN-FG-[H]-Q-[I-E-C]-D-A)-B
|
|
@@ -1180,7 +1177,7 @@ for (const incremental of [true, false]) {
|
|
|
1180
1177
|
});
|
|
1181
1178
|
// fails only for incremental
|
|
1182
1179
|
it("combines remote obliterated length ", () => {
|
|
1183
|
-
const helper = new
|
|
1180
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1184
1181
|
// R-XYZ12-STUVW-LMNOP-DEFGHIJK-A-34567890-Q-BC
|
|
1185
1182
|
// v---------------v------------v------v--------v------------v
|
|
1186
1183
|
// [R-XYZ12-STUVW-L]-abcdefghij-[MNOP-D]-klmnop-[EFGHIJK-A-34]-5-(6-x-7)-890-Q-BC
|
|
@@ -1223,7 +1220,7 @@ for (const incremental of [true, false]) {
|
|
|
1223
1220
|
helper.logger.validate();
|
|
1224
1221
|
});
|
|
1225
1222
|
it("three obliterates on same segment", () => {
|
|
1226
|
-
const helper = new
|
|
1223
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1227
1224
|
// A
|
|
1228
1225
|
// (C-B-D-((A)))
|
|
1229
1226
|
helper.insertText("B", 0, "A");
|
|
@@ -1240,7 +1237,7 @@ for (const incremental of [true, false]) {
|
|
|
1240
1237
|
});
|
|
1241
1238
|
describe("incremental partial length updates", () => {
|
|
1242
1239
|
it("obliterates concurrently inserted segment", () => {
|
|
1243
|
-
const helper = new
|
|
1240
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1244
1241
|
// (C-B-A)
|
|
1245
1242
|
helper.insertText("A", 0, "A");
|
|
1246
1243
|
helper.insertText("B", 0, "B");
|
|
@@ -1251,7 +1248,7 @@ for (const incremental of [true, false]) {
|
|
|
1251
1248
|
helper.logger.validate();
|
|
1252
1249
|
});
|
|
1253
1250
|
it("obliterates 2 concurrently inserted segments", () => {
|
|
1254
|
-
const helper = new
|
|
1251
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1255
1252
|
// (C-B-D-A)
|
|
1256
1253
|
helper.insertText("B", 0, "A");
|
|
1257
1254
|
helper.insertText("A", 0, "B");
|
|
@@ -1263,7 +1260,7 @@ for (const incremental of [true, false]) {
|
|
|
1263
1260
|
helper.logger.validate();
|
|
1264
1261
|
});
|
|
1265
1262
|
it("obliterates 4 concurrently inserted segments", () => {
|
|
1266
|
-
const helper = new
|
|
1263
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1267
1264
|
// I-F-(G-D-H-E-C-A)-B
|
|
1268
1265
|
helper.insertText("B", 0, "AB");
|
|
1269
1266
|
helper.insertText("B", 0, "C");
|
|
@@ -1277,7 +1274,7 @@ for (const incremental of [true, false]) {
|
|
|
1277
1274
|
helper.logger.validate();
|
|
1278
1275
|
});
|
|
1279
1276
|
it("obliterates 3 concurrently inserted segments", () => {
|
|
1280
|
-
const helper = new
|
|
1277
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1281
1278
|
// I-G-(H-D-F-E-B)-C-A
|
|
1282
1279
|
helper.insertText("B", 0, "A");
|
|
1283
1280
|
helper.insertText("B", 0, "BC");
|
|
@@ -1291,7 +1288,7 @@ for (const incremental of [true, false]) {
|
|
|
1291
1288
|
helper.logger.validate();
|
|
1292
1289
|
});
|
|
1293
1290
|
it("overlapping remove + obliterate, remove happened first", () => {
|
|
1294
|
-
const helper = new
|
|
1291
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1295
1292
|
// D-EFG-B-H-C-A
|
|
1296
1293
|
// I-D-([E]-F)-G-B-H-C-A
|
|
1297
1294
|
helper.insertText("A", 0, "A");
|
|
@@ -1308,7 +1305,7 @@ for (const incremental of [true, false]) {
|
|
|
1308
1305
|
helper.logger.validate();
|
|
1309
1306
|
});
|
|
1310
1307
|
it("overlapping remove + obliterate, remove happened last", () => {
|
|
1311
|
-
const helper = new
|
|
1308
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1312
1309
|
// DEFGH-C-B-A
|
|
1313
1310
|
// [D]-[E-(F)-G]-H-C-B-A
|
|
1314
1311
|
helper.insertText("C", 0, "A");
|
|
@@ -1325,7 +1322,7 @@ for (const incremental of [true, false]) {
|
|
|
1325
1322
|
helper.logger.validate();
|
|
1326
1323
|
});
|
|
1327
1324
|
it("segment inside locally obliterated segment group is split", () => {
|
|
1328
|
-
const helper = new
|
|
1325
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1329
1326
|
// CDEF-AB
|
|
1330
1327
|
// [C]-DE-(F-(G)-H-A)-B
|
|
1331
1328
|
// [C]-DE-(F-(G)-H-A)-(B)
|
|
@@ -1345,7 +1342,7 @@ for (const incremental of [true, false]) {
|
|
|
1345
1342
|
helper.logger.validate();
|
|
1346
1343
|
});
|
|
1347
1344
|
it("continues traversal past locally removed segment inserted before first obliterate", () => {
|
|
1348
|
-
const helper = new
|
|
1345
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1349
1346
|
// ABC
|
|
1350
1347
|
// (E-D-(A)-[B]-C)
|
|
1351
1348
|
helper.insertText("A", 0, "ABC");
|
|
@@ -1361,7 +1358,7 @@ for (const incremental of [true, false]) {
|
|
|
1361
1358
|
helper.logger.validate();
|
|
1362
1359
|
});
|
|
1363
1360
|
it("keeps track of remote obliterated length when hier node contains hier nodes", () => {
|
|
1364
|
-
const helper = new
|
|
1361
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1365
1362
|
// LMNO-HIJ-E-K-FG-D-C-AB
|
|
1366
1363
|
// lmnopq-L-[M]-NO-H-ghijk-I-(J-E-K-FG-D-C-A-a)-bc-ef-d-B
|
|
1367
1364
|
// v--------------------------------------v
|
|
@@ -1398,7 +1395,7 @@ for (const incremental of [true, false]) {
|
|
|
1398
1395
|
helper.logger.validate();
|
|
1399
1396
|
});
|
|
1400
1397
|
it("combines remote obliterated length for parent node of tree with depth >=3", () => {
|
|
1401
|
-
const helper = new
|
|
1398
|
+
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1402
1399
|
// VWXYZ0-(K)-[L]-M-[N]-O-EFGHIJ-[A]-B-P-TU-QRS-CD
|
|
1403
1400
|
// v-v------v------------v
|
|
1404
1401
|
// v--------------------v
|