@fluid-experimental/tree 0.58.2001 → 0.59.2000-61729
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/README.md +159 -46
- package/dist/ChangeCompression.d.ts +39 -0
- package/dist/ChangeCompression.d.ts.map +1 -0
- package/dist/ChangeCompression.js +117 -0
- package/dist/ChangeCompression.js.map +1 -0
- package/{lib/default-edits/PersistedTypes.d.ts → dist/ChangeTypes.d.ts} +58 -105
- package/dist/ChangeTypes.d.ts.map +1 -0
- package/dist/{default-edits/PersistedTypes.js → ChangeTypes.js} +21 -76
- package/dist/ChangeTypes.js.map +1 -0
- package/dist/Checkout.d.ts +39 -27
- package/dist/Checkout.d.ts.map +1 -1
- package/dist/Checkout.js +61 -32
- package/dist/Checkout.js.map +1 -1
- package/dist/Common.d.ts +175 -38
- package/dist/Common.d.ts.map +1 -1
- package/dist/Common.js +240 -103
- package/dist/Common.js.map +1 -1
- package/dist/EagerCheckout.d.ts +24 -0
- package/dist/EagerCheckout.d.ts.map +1 -0
- package/dist/{BasicCheckout.js → EagerCheckout.js} +9 -6
- package/dist/EagerCheckout.js.map +1 -0
- package/dist/EditLog.d.ts +77 -63
- package/dist/EditLog.d.ts.map +1 -1
- package/dist/EditLog.js +85 -48
- package/dist/EditLog.js.map +1 -1
- package/dist/EditUtilities.d.ts +168 -0
- package/dist/EditUtilities.d.ts.map +1 -0
- package/dist/EditUtilities.js +373 -0
- package/dist/EditUtilities.js.map +1 -0
- package/dist/EventTypes.d.ts +73 -0
- package/dist/EventTypes.d.ts.map +1 -0
- package/dist/EventTypes.js +78 -0
- package/dist/EventTypes.js.map +1 -0
- package/dist/Forest.d.ts +29 -7
- package/dist/Forest.d.ts.map +1 -1
- package/dist/Forest.js +60 -36
- package/dist/Forest.js.map +1 -1
- package/dist/HistoryEditFactory.d.ts +20 -0
- package/dist/HistoryEditFactory.d.ts.map +1 -0
- package/dist/HistoryEditFactory.js +226 -0
- package/dist/HistoryEditFactory.js.map +1 -0
- package/dist/IdConversion.d.ts +12 -0
- package/dist/IdConversion.d.ts.map +1 -0
- package/dist/IdConversion.js +98 -0
- package/dist/IdConversion.js.map +1 -0
- package/dist/Identifiers.d.ts +89 -2
- package/dist/Identifiers.d.ts.map +1 -1
- package/dist/Identifiers.js +10 -0
- package/dist/Identifiers.js.map +1 -1
- package/dist/InitialTree.d.ts +2 -2
- package/dist/InitialTree.d.ts.map +1 -1
- package/dist/InitialTree.js +2 -1
- package/dist/InitialTree.js.map +1 -1
- package/dist/LazyCheckout.d.ts +28 -0
- package/dist/LazyCheckout.d.ts.map +1 -0
- package/dist/LazyCheckout.js +44 -0
- package/dist/LazyCheckout.js.map +1 -0
- package/dist/LogViewer.d.ts +129 -85
- package/dist/LogViewer.d.ts.map +1 -1
- package/dist/LogViewer.js +111 -85
- package/dist/LogViewer.js.map +1 -1
- package/dist/MergeHealth.d.ts +221 -0
- package/dist/MergeHealth.d.ts.map +1 -0
- package/dist/MergeHealth.js +263 -0
- package/dist/MergeHealth.js.map +1 -0
- package/dist/NodeIdUtilities.d.ts +105 -0
- package/dist/NodeIdUtilities.d.ts.map +1 -0
- package/dist/NodeIdUtilities.js +60 -0
- package/dist/NodeIdUtilities.js.map +1 -0
- package/dist/PayloadUtilities.d.ts +42 -0
- package/dist/PayloadUtilities.d.ts.map +1 -0
- package/dist/PayloadUtilities.js +114 -0
- package/dist/PayloadUtilities.js.map +1 -0
- package/dist/ReconciliationPath.d.ts +18 -13
- package/dist/ReconciliationPath.d.ts.map +1 -1
- package/dist/ReconciliationPath.js.map +1 -1
- package/dist/RevisionValueCache.d.ts +11 -2
- package/dist/RevisionValueCache.d.ts.map +1 -1
- package/dist/RevisionValueCache.js +2 -3
- package/dist/RevisionValueCache.js.map +1 -1
- package/dist/RevisionView.d.ts +83 -0
- package/dist/RevisionView.d.ts.map +1 -0
- package/dist/RevisionView.js +182 -0
- package/dist/RevisionView.js.map +1 -0
- package/dist/SerializationUtilities.d.ts +36 -0
- package/dist/SerializationUtilities.d.ts.map +1 -0
- package/dist/SerializationUtilities.js +102 -0
- package/dist/SerializationUtilities.js.map +1 -0
- package/dist/SharedTree.d.ts +439 -0
- package/dist/SharedTree.d.ts.map +1 -0
- package/dist/SharedTree.js +1109 -0
- package/dist/SharedTree.js.map +1 -0
- package/dist/SharedTreeEncoder.d.ts +102 -0
- package/dist/SharedTreeEncoder.d.ts.map +1 -0
- package/dist/SharedTreeEncoder.js +313 -0
- package/dist/SharedTreeEncoder.js.map +1 -0
- package/dist/StringInterner.d.ts +46 -0
- package/dist/StringInterner.d.ts.map +1 -0
- package/dist/StringInterner.js +61 -0
- package/dist/StringInterner.js.map +1 -0
- package/dist/Summary.d.ts +40 -0
- package/dist/Summary.d.ts.map +1 -0
- package/dist/Summary.js +23 -0
- package/dist/Summary.js.map +1 -0
- package/dist/SummaryBackCompatibility.d.ts +22 -22
- package/dist/SummaryBackCompatibility.d.ts.map +1 -1
- package/dist/SummaryBackCompatibility.js +30 -33
- package/dist/SummaryBackCompatibility.js.map +1 -1
- package/dist/SummaryTestUtilities.d.ts +31 -0
- package/dist/SummaryTestUtilities.d.ts.map +1 -0
- package/dist/SummaryTestUtilities.js +37 -0
- package/dist/SummaryTestUtilities.js.map +1 -0
- package/dist/Transaction.d.ts +71 -0
- package/dist/Transaction.d.ts.map +1 -0
- package/dist/Transaction.js +92 -0
- package/dist/Transaction.js.map +1 -0
- package/dist/TransactionInternal.d.ts +540 -0
- package/dist/TransactionInternal.d.ts.map +1 -0
- package/dist/TransactionInternal.js +626 -0
- package/dist/TransactionInternal.js.map +1 -0
- package/dist/TreeCompressor.d.ts +36 -0
- package/dist/TreeCompressor.d.ts.map +1 -0
- package/dist/TreeCompressor.js +137 -0
- package/dist/TreeCompressor.js.map +1 -0
- package/dist/TreeNodeHandle.d.ts +12 -18
- package/dist/TreeNodeHandle.d.ts.map +1 -1
- package/dist/TreeNodeHandle.js +13 -23
- package/dist/TreeNodeHandle.js.map +1 -1
- package/dist/TreeView.d.ts +166 -0
- package/dist/TreeView.d.ts.map +1 -0
- package/dist/TreeView.js +218 -0
- package/dist/TreeView.js.map +1 -0
- package/dist/TreeViewUtilities.d.ts +21 -0
- package/dist/TreeViewUtilities.d.ts.map +1 -0
- package/dist/TreeViewUtilities.js +77 -0
- package/dist/TreeViewUtilities.js.map +1 -0
- package/dist/{default-edits/UndoRedoHandler.d.ts → UndoRedoHandler.d.ts} +2 -2
- package/dist/UndoRedoHandler.d.ts.map +1 -0
- package/dist/{default-edits/UndoRedoHandler.js → UndoRedoHandler.js} +5 -9
- package/dist/UndoRedoHandler.js.map +1 -0
- package/dist/id-compressor/AppendOnlySortedMap.d.ts +127 -0
- package/dist/id-compressor/AppendOnlySortedMap.d.ts.map +1 -0
- package/dist/id-compressor/AppendOnlySortedMap.js +283 -0
- package/dist/id-compressor/AppendOnlySortedMap.js.map +1 -0
- package/dist/id-compressor/IdCompressor.d.ts +389 -0
- package/dist/id-compressor/IdCompressor.d.ts.map +1 -0
- package/dist/id-compressor/IdCompressor.js +1353 -0
- package/dist/id-compressor/IdCompressor.js.map +1 -0
- package/dist/id-compressor/IdRange.d.ts +11 -0
- package/dist/id-compressor/IdRange.d.ts.map +1 -0
- package/dist/id-compressor/IdRange.js +29 -0
- package/dist/id-compressor/IdRange.js.map +1 -0
- package/dist/id-compressor/NumericUuid.d.ts +63 -0
- package/dist/id-compressor/NumericUuid.d.ts.map +1 -0
- package/dist/id-compressor/NumericUuid.js +377 -0
- package/dist/id-compressor/NumericUuid.js.map +1 -0
- package/dist/id-compressor/index.d.ts +12 -0
- package/dist/id-compressor/index.d.ts.map +1 -0
- package/dist/id-compressor/index.js +26 -0
- package/dist/id-compressor/index.js.map +1 -0
- package/dist/id-compressor/persisted-types/0.0.1.d.ts +156 -0
- package/dist/id-compressor/persisted-types/0.0.1.d.ts.map +1 -0
- package/dist/id-compressor/persisted-types/0.0.1.js +7 -0
- package/dist/id-compressor/persisted-types/0.0.1.js.map +1 -0
- package/dist/id-compressor/persisted-types/index.d.ts +6 -0
- package/dist/id-compressor/persisted-types/index.d.ts.map +1 -0
- package/dist/id-compressor/persisted-types/index.js +18 -0
- package/dist/id-compressor/persisted-types/index.js.map +1 -0
- package/dist/index.d.ts +29 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -35
- package/dist/index.js.map +1 -1
- package/dist/persisted-types/0.0.2.d.ts +385 -0
- package/dist/persisted-types/0.0.2.d.ts.map +1 -0
- package/dist/persisted-types/0.0.2.js +113 -0
- package/dist/persisted-types/0.0.2.js.map +1 -0
- package/dist/persisted-types/0.1.1.d.ts +314 -0
- package/dist/persisted-types/0.1.1.d.ts.map +1 -0
- package/dist/persisted-types/0.1.1.js +153 -0
- package/dist/persisted-types/0.1.1.js.map +1 -0
- package/dist/persisted-types/index.d.ts +7 -0
- package/dist/persisted-types/index.d.ts.map +1 -0
- package/dist/persisted-types/index.js +20 -0
- package/dist/persisted-types/index.js.map +1 -0
- package/docs/0-1-1-Compression.md +228 -0
- package/docs/Breaking-Change-Migration.md +52 -0
- package/docs/Compression.md +2 -2
- package/docs/Telemetry.md +43 -0
- package/docs/Write-Format.md +19 -0
- package/lib/ChangeCompression.d.ts +39 -0
- package/lib/ChangeCompression.d.ts.map +1 -0
- package/lib/ChangeCompression.js +111 -0
- package/lib/ChangeCompression.js.map +1 -0
- package/{dist/default-edits/PersistedTypes.d.ts → lib/ChangeTypes.d.ts} +58 -105
- package/lib/ChangeTypes.d.ts.map +1 -0
- package/lib/{default-edits/PersistedTypes.js → ChangeTypes.js} +15 -68
- package/lib/ChangeTypes.js.map +1 -0
- package/lib/Checkout.d.ts +39 -27
- package/lib/Checkout.d.ts.map +1 -1
- package/lib/Checkout.js +53 -24
- package/lib/Checkout.js.map +1 -1
- package/lib/Common.d.ts +175 -38
- package/lib/Common.d.ts.map +1 -1
- package/lib/Common.js +226 -101
- package/lib/Common.js.map +1 -1
- package/lib/EagerCheckout.d.ts +24 -0
- package/lib/EagerCheckout.d.ts.map +1 -0
- package/lib/{BasicCheckout.js → EagerCheckout.js} +7 -4
- package/lib/EagerCheckout.js.map +1 -0
- package/lib/EditLog.d.ts +77 -63
- package/lib/EditLog.d.ts.map +1 -1
- package/lib/EditLog.js +83 -47
- package/lib/EditLog.js.map +1 -1
- package/lib/EditUtilities.d.ts +168 -0
- package/lib/EditUtilities.d.ts.map +1 -0
- package/lib/EditUtilities.js +353 -0
- package/lib/EditUtilities.js.map +1 -0
- package/lib/EventTypes.d.ts +73 -0
- package/lib/EventTypes.d.ts.map +1 -0
- package/lib/EventTypes.js +75 -0
- package/lib/EventTypes.js.map +1 -0
- package/lib/Forest.d.ts +29 -7
- package/lib/Forest.d.ts.map +1 -1
- package/lib/Forest.js +58 -35
- package/lib/Forest.js.map +1 -1
- package/lib/HistoryEditFactory.d.ts +20 -0
- package/lib/HistoryEditFactory.d.ts.map +1 -0
- package/lib/{default-edits/HistoryEditFactory.js → HistoryEditFactory.js} +78 -39
- package/lib/HistoryEditFactory.js.map +1 -0
- package/lib/IdConversion.d.ts +12 -0
- package/lib/IdConversion.d.ts.map +1 -0
- package/lib/IdConversion.js +91 -0
- package/lib/IdConversion.js.map +1 -0
- package/lib/Identifiers.d.ts +89 -2
- package/lib/Identifiers.d.ts.map +1 -1
- package/lib/Identifiers.js +8 -1
- package/lib/Identifiers.js.map +1 -1
- package/lib/InitialTree.d.ts +2 -2
- package/lib/InitialTree.d.ts.map +1 -1
- package/lib/InitialTree.js +2 -1
- package/lib/InitialTree.js.map +1 -1
- package/lib/LazyCheckout.d.ts +28 -0
- package/lib/LazyCheckout.d.ts.map +1 -0
- package/lib/LazyCheckout.js +40 -0
- package/lib/LazyCheckout.js.map +1 -0
- package/lib/LogViewer.d.ts +129 -85
- package/lib/LogViewer.d.ts.map +1 -1
- package/lib/LogViewer.js +103 -77
- package/lib/LogViewer.js.map +1 -1
- package/lib/MergeHealth.d.ts +221 -0
- package/lib/MergeHealth.d.ts.map +1 -0
- package/lib/MergeHealth.js +258 -0
- package/lib/MergeHealth.js.map +1 -0
- package/lib/NodeIdUtilities.d.ts +105 -0
- package/lib/NodeIdUtilities.d.ts.map +1 -0
- package/lib/NodeIdUtilities.js +53 -0
- package/lib/NodeIdUtilities.js.map +1 -0
- package/lib/PayloadUtilities.d.ts +42 -0
- package/lib/PayloadUtilities.d.ts.map +1 -0
- package/lib/PayloadUtilities.js +110 -0
- package/lib/PayloadUtilities.js.map +1 -0
- package/lib/ReconciliationPath.d.ts +18 -13
- package/lib/ReconciliationPath.d.ts.map +1 -1
- package/lib/ReconciliationPath.js.map +1 -1
- package/lib/RevisionValueCache.d.ts +11 -2
- package/lib/RevisionValueCache.d.ts.map +1 -1
- package/lib/RevisionValueCache.js +2 -3
- package/lib/RevisionValueCache.js.map +1 -1
- package/lib/RevisionView.d.ts +83 -0
- package/lib/RevisionView.d.ts.map +1 -0
- package/lib/RevisionView.js +175 -0
- package/lib/RevisionView.js.map +1 -0
- package/lib/SerializationUtilities.d.ts +36 -0
- package/lib/SerializationUtilities.d.ts.map +1 -0
- package/lib/SerializationUtilities.js +95 -0
- package/lib/SerializationUtilities.js.map +1 -0
- package/lib/SharedTree.d.ts +439 -0
- package/lib/SharedTree.d.ts.map +1 -0
- package/lib/SharedTree.js +1104 -0
- package/lib/SharedTree.js.map +1 -0
- package/lib/SharedTreeEncoder.d.ts +102 -0
- package/lib/SharedTreeEncoder.d.ts.map +1 -0
- package/lib/SharedTreeEncoder.js +308 -0
- package/lib/SharedTreeEncoder.js.map +1 -0
- package/lib/StringInterner.d.ts +46 -0
- package/lib/StringInterner.d.ts.map +1 -0
- package/lib/StringInterner.js +57 -0
- package/lib/StringInterner.js.map +1 -0
- package/lib/Summary.d.ts +40 -0
- package/lib/Summary.d.ts.map +1 -0
- package/lib/Summary.js +19 -0
- package/lib/Summary.js.map +1 -0
- package/lib/SummaryBackCompatibility.d.ts +22 -22
- package/lib/SummaryBackCompatibility.d.ts.map +1 -1
- package/lib/SummaryBackCompatibility.js +29 -32
- package/lib/SummaryBackCompatibility.js.map +1 -1
- package/lib/SummaryTestUtilities.d.ts +31 -0
- package/lib/SummaryTestUtilities.d.ts.map +1 -0
- package/lib/SummaryTestUtilities.js +32 -0
- package/lib/SummaryTestUtilities.js.map +1 -0
- package/lib/Transaction.d.ts +71 -0
- package/lib/Transaction.d.ts.map +1 -0
- package/lib/Transaction.js +88 -0
- package/lib/Transaction.js.map +1 -0
- package/lib/TransactionInternal.d.ts +540 -0
- package/lib/TransactionInternal.d.ts.map +1 -0
- package/lib/TransactionInternal.js +622 -0
- package/lib/TransactionInternal.js.map +1 -0
- package/lib/TreeCompressor.d.ts +36 -0
- package/lib/TreeCompressor.d.ts.map +1 -0
- package/lib/TreeCompressor.js +133 -0
- package/lib/TreeCompressor.js.map +1 -0
- package/lib/TreeNodeHandle.d.ts +12 -18
- package/lib/TreeNodeHandle.d.ts.map +1 -1
- package/lib/TreeNodeHandle.js +14 -24
- package/lib/TreeNodeHandle.js.map +1 -1
- package/lib/TreeView.d.ts +166 -0
- package/lib/TreeView.d.ts.map +1 -0
- package/lib/TreeView.js +214 -0
- package/lib/TreeView.js.map +1 -0
- package/lib/TreeViewUtilities.d.ts +21 -0
- package/lib/TreeViewUtilities.d.ts.map +1 -0
- package/lib/TreeViewUtilities.js +71 -0
- package/lib/TreeViewUtilities.js.map +1 -0
- package/lib/{default-edits/UndoRedoHandler.d.ts → UndoRedoHandler.d.ts} +2 -2
- package/lib/UndoRedoHandler.d.ts.map +1 -0
- package/lib/{default-edits/UndoRedoHandler.js → UndoRedoHandler.js} +3 -7
- package/lib/UndoRedoHandler.js.map +1 -0
- package/lib/id-compressor/AppendOnlySortedMap.d.ts +127 -0
- package/lib/id-compressor/AppendOnlySortedMap.d.ts.map +1 -0
- package/lib/id-compressor/AppendOnlySortedMap.js +278 -0
- package/lib/id-compressor/AppendOnlySortedMap.js.map +1 -0
- package/lib/id-compressor/IdCompressor.d.ts +389 -0
- package/lib/id-compressor/IdCompressor.d.ts.map +1 -0
- package/lib/id-compressor/IdCompressor.js +1343 -0
- package/lib/id-compressor/IdCompressor.js.map +1 -0
- package/lib/id-compressor/IdRange.d.ts +11 -0
- package/lib/id-compressor/IdRange.d.ts.map +1 -0
- package/lib/id-compressor/IdRange.js +25 -0
- package/lib/id-compressor/IdRange.js.map +1 -0
- package/lib/id-compressor/NumericUuid.d.ts +63 -0
- package/lib/id-compressor/NumericUuid.d.ts.map +1 -0
- package/lib/id-compressor/NumericUuid.js +365 -0
- package/lib/id-compressor/NumericUuid.js.map +1 -0
- package/lib/id-compressor/index.d.ts +12 -0
- package/lib/id-compressor/index.d.ts.map +1 -0
- package/lib/id-compressor/index.js +12 -0
- package/lib/id-compressor/index.js.map +1 -0
- package/lib/id-compressor/persisted-types/0.0.1.d.ts +156 -0
- package/lib/id-compressor/persisted-types/0.0.1.d.ts.map +1 -0
- package/lib/{test/Snapshot.tests.d.ts → id-compressor/persisted-types/0.0.1.js} +1 -1
- package/lib/id-compressor/persisted-types/0.0.1.js.map +1 -0
- package/lib/id-compressor/persisted-types/index.d.ts +6 -0
- package/lib/id-compressor/persisted-types/index.d.ts.map +1 -0
- package/lib/id-compressor/persisted-types/index.js +6 -0
- package/lib/id-compressor/persisted-types/index.js.map +1 -0
- package/lib/index.d.ts +29 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +23 -6
- package/lib/index.js.map +1 -1
- package/lib/persisted-types/0.0.2.d.ts +385 -0
- package/lib/persisted-types/0.0.2.d.ts.map +1 -0
- package/lib/persisted-types/0.0.2.js +110 -0
- package/lib/persisted-types/0.0.2.js.map +1 -0
- package/lib/persisted-types/0.1.1.d.ts +314 -0
- package/lib/persisted-types/0.1.1.d.ts.map +1 -0
- package/lib/persisted-types/0.1.1.js +150 -0
- package/lib/persisted-types/0.1.1.js.map +1 -0
- package/lib/persisted-types/index.d.ts +7 -0
- package/lib/persisted-types/index.d.ts.map +1 -0
- package/lib/persisted-types/index.js +8 -0
- package/lib/persisted-types/index.js.map +1 -0
- package/lib/test/AppendOnlySortedMap.tests.d.ts +6 -0
- package/lib/test/AppendOnlySortedMap.tests.d.ts.map +1 -0
- package/lib/test/AppendOnlySortedMap.tests.js +169 -0
- package/lib/test/AppendOnlySortedMap.tests.js.map +1 -0
- package/lib/test/{SnapshotUtilities.tests.d.ts → ChangeCompression.tests.d.ts} +1 -1
- package/lib/test/ChangeCompression.tests.d.ts.map +1 -0
- package/lib/test/ChangeCompression.tests.js +145 -0
- package/lib/test/ChangeCompression.tests.js.map +1 -0
- package/lib/test/Checkout.tests.d.ts +2 -3
- package/lib/test/Checkout.tests.d.ts.map +1 -1
- package/lib/test/Checkout.tests.js +126 -69
- package/lib/test/Checkout.tests.js.map +1 -1
- package/lib/test/Common.tests.js +60 -2
- package/lib/test/Common.tests.js.map +1 -1
- package/lib/test/{BasicCheckout.tests.d.ts → EagerCheckout.tests.d.ts} +1 -1
- package/lib/test/EagerCheckout.tests.d.ts.map +1 -0
- package/lib/test/EagerCheckout.tests.js +20 -0
- package/lib/test/EagerCheckout.tests.js.map +1 -0
- package/lib/test/Edit.tests.js +22 -14
- package/lib/test/Edit.tests.js.map +1 -1
- package/lib/test/{Anchors.glassBox.tests.d.ts → EditLog.perf.tests.d.ts} +1 -1
- package/lib/test/EditLog.perf.tests.d.ts.map +1 -0
- package/lib/test/EditLog.perf.tests.js +30 -0
- package/lib/test/EditLog.perf.tests.js.map +1 -0
- package/lib/test/EditLog.tests.js +10 -6
- package/lib/test/EditLog.tests.js.map +1 -1
- package/lib/test/EditUtilities.tests.d.ts +6 -0
- package/lib/test/EditUtilities.tests.d.ts.map +1 -0
- package/lib/test/EditUtilities.tests.js +503 -0
- package/lib/test/EditUtilities.tests.js.map +1 -0
- package/lib/test/Forest.perf.tests.d.ts +6 -0
- package/lib/test/Forest.perf.tests.d.ts.map +1 -0
- package/lib/test/Forest.perf.tests.js +133 -0
- package/lib/test/Forest.perf.tests.js.map +1 -0
- package/lib/test/Forest.tests.js +54 -27
- package/lib/test/Forest.tests.js.map +1 -1
- package/lib/test/GenericTransaction.tests.js +12 -3
- package/lib/test/GenericTransaction.tests.js.map +1 -1
- package/lib/test/HistoryEditFactory.tests.d.ts +6 -0
- package/lib/test/HistoryEditFactory.tests.d.ts.map +1 -0
- package/lib/test/HistoryEditFactory.tests.js +90 -0
- package/lib/test/HistoryEditFactory.tests.js.map +1 -0
- package/lib/test/IdCompressor.perf.tests.d.ts +6 -0
- package/lib/test/IdCompressor.perf.tests.d.ts.map +1 -0
- package/lib/test/IdCompressor.perf.tests.js +304 -0
- package/lib/test/IdCompressor.perf.tests.js.map +1 -0
- package/lib/test/IdCompressor.tests.d.ts +6 -0
- package/lib/test/IdCompressor.tests.d.ts.map +1 -0
- package/lib/test/IdCompressor.tests.js +1075 -0
- package/lib/test/IdCompressor.tests.js.map +1 -0
- package/lib/test/IdConversion.tests.d.ts +6 -0
- package/lib/test/IdConversion.tests.d.ts.map +1 -0
- package/lib/test/IdConversion.tests.js +36 -0
- package/lib/test/IdConversion.tests.js.map +1 -0
- package/lib/test/LazyCheckout.tests.d.ts +6 -0
- package/lib/test/LazyCheckout.tests.d.ts.map +1 -0
- package/lib/test/LazyCheckout.tests.js +22 -0
- package/lib/test/LazyCheckout.tests.js.map +1 -0
- package/lib/test/LogViewer.tests.js +276 -191
- package/lib/test/LogViewer.tests.js.map +1 -1
- package/lib/test/{SharedTreeWithAnchors.tests.d.ts → MergeHealthTelemetryHeartbeat.tests.d.ts} +1 -1
- package/lib/test/MergeHealthTelemetryHeartbeat.tests.d.ts.map +1 -0
- package/lib/test/MergeHealthTelemetryHeartbeat.tests.js +342 -0
- package/lib/test/MergeHealthTelemetryHeartbeat.tests.js.map +1 -0
- package/lib/test/NumericUuid.perf.tests.d.ts +6 -0
- package/lib/test/NumericUuid.perf.tests.d.ts.map +1 -0
- package/lib/test/NumericUuid.perf.tests.js +68 -0
- package/lib/test/NumericUuid.perf.tests.js.map +1 -0
- package/lib/test/NumericUuid.tests.d.ts +6 -0
- package/lib/test/NumericUuid.tests.d.ts.map +1 -0
- package/lib/test/NumericUuid.tests.js +191 -0
- package/lib/test/NumericUuid.tests.js.map +1 -0
- package/lib/test/RevisionView.tests.d.ts +6 -0
- package/lib/test/RevisionView.tests.d.ts.map +1 -0
- package/lib/test/RevisionView.tests.js +133 -0
- package/lib/test/RevisionView.tests.js.map +1 -0
- package/lib/test/SharedTree.perf.tests.d.ts +6 -0
- package/lib/test/SharedTree.perf.tests.d.ts.map +1 -0
- package/lib/test/SharedTree.perf.tests.js +39 -0
- package/lib/test/SharedTree.perf.tests.js.map +1 -0
- package/lib/test/SharedTree.tests.js +15 -3
- package/lib/test/SharedTree.tests.js.map +1 -1
- package/lib/test/StringInterner.tests.d.ts +6 -0
- package/lib/test/StringInterner.tests.d.ts.map +1 -0
- package/lib/test/StringInterner.tests.js +71 -0
- package/lib/test/StringInterner.tests.js.map +1 -0
- package/lib/test/Summary.tests.d.ts +8 -0
- package/lib/test/Summary.tests.d.ts.map +1 -0
- package/lib/test/Summary.tests.js +407 -0
- package/lib/test/Summary.tests.js.map +1 -0
- package/lib/test/Transaction.tests.js +109 -329
- package/lib/test/Transaction.tests.js.map +1 -1
- package/lib/test/TransactionInternal.tests.d.ts +6 -0
- package/lib/test/TransactionInternal.tests.d.ts.map +1 -0
- package/lib/test/TransactionInternal.tests.js +568 -0
- package/lib/test/TransactionInternal.tests.js.map +1 -0
- package/lib/test/TreeCompression.tests.d.ts +6 -0
- package/lib/test/TreeCompression.tests.d.ts.map +1 -0
- package/lib/test/TreeCompression.tests.js +292 -0
- package/lib/test/TreeCompression.tests.js.map +1 -0
- package/lib/test/TreeView.tests.d.ts +6 -0
- package/lib/test/TreeView.tests.d.ts.map +1 -0
- package/lib/test/TreeView.tests.js +176 -0
- package/lib/test/TreeView.tests.js.map +1 -0
- package/lib/test/UndoRedoHandler.tests.js +2 -2
- package/lib/test/UndoRedoHandler.tests.js.map +1 -1
- package/lib/test/Virtualization.tests.js +146 -62
- package/lib/test/Virtualization.tests.js.map +1 -1
- package/lib/test/fuzz/Generators.d.ts +19 -0
- package/lib/test/fuzz/Generators.d.ts.map +1 -0
- package/lib/test/fuzz/Generators.js +420 -0
- package/lib/test/fuzz/Generators.js.map +1 -0
- package/lib/test/fuzz/SharedTreeFuzzTests.d.ts +20 -0
- package/lib/test/fuzz/SharedTreeFuzzTests.d.ts.map +1 -0
- package/lib/test/fuzz/SharedTreeFuzzTests.js +217 -0
- package/lib/test/fuzz/SharedTreeFuzzTests.js.map +1 -0
- package/lib/test/fuzz/Types.d.ts +133 -0
- package/lib/test/fuzz/Types.d.ts.map +1 -0
- package/lib/test/{GenericTransactionWithAnchors.tests.d.ts → fuzz/Types.js} +2 -2
- package/lib/test/fuzz/Types.js.map +1 -0
- package/lib/test/utilities/IdCompressorTestUtilities.d.ts +180 -0
- package/lib/test/utilities/IdCompressorTestUtilities.d.ts.map +1 -0
- package/lib/test/utilities/IdCompressorTestUtilities.js +528 -0
- package/lib/test/utilities/IdCompressorTestUtilities.js.map +1 -0
- package/lib/test/utilities/MockTransaction.d.ts +26 -7
- package/lib/test/utilities/MockTransaction.d.ts.map +1 -1
- package/lib/test/utilities/MockTransaction.js +40 -11
- package/lib/test/utilities/MockTransaction.js.map +1 -1
- package/lib/test/utilities/PendingLocalStateTests.d.ts +12 -0
- package/lib/test/utilities/PendingLocalStateTests.d.ts.map +1 -0
- package/lib/test/utilities/PendingLocalStateTests.js +105 -0
- package/lib/test/utilities/PendingLocalStateTests.js.map +1 -0
- package/lib/test/utilities/SharedTreeTests.d.ts +3 -4
- package/lib/test/utilities/SharedTreeTests.d.ts.map +1 -1
- package/lib/test/utilities/SharedTreeTests.js +696 -439
- package/lib/test/utilities/SharedTreeTests.js.map +1 -1
- package/lib/test/utilities/SharedTreeVersioningTests.d.ts +11 -0
- package/lib/test/utilities/SharedTreeVersioningTests.d.ts.map +1 -0
- package/lib/test/utilities/SharedTreeVersioningTests.js +370 -0
- package/lib/test/utilities/SharedTreeVersioningTests.js.map +1 -0
- package/lib/test/utilities/SummaryLoadPerfTests.d.ts +10 -0
- package/lib/test/utilities/SummaryLoadPerfTests.d.ts.map +1 -0
- package/lib/test/utilities/SummaryLoadPerfTests.js +102 -0
- package/lib/test/utilities/SummaryLoadPerfTests.js.map +1 -0
- package/lib/test/utilities/SummarySizeTests.d.ts +11 -0
- package/lib/test/utilities/SummarySizeTests.d.ts.map +1 -0
- package/lib/test/utilities/SummarySizeTests.js +158 -0
- package/lib/test/utilities/SummarySizeTests.js.map +1 -0
- package/lib/test/utilities/TestCommon.d.ts +9 -0
- package/lib/test/utilities/TestCommon.d.ts.map +1 -0
- package/lib/test/utilities/TestCommon.js +13 -0
- package/lib/test/utilities/TestCommon.js.map +1 -0
- package/lib/test/utilities/TestNode.d.ts +140 -0
- package/lib/test/utilities/TestNode.d.ts.map +1 -0
- package/lib/test/utilities/TestNode.js +292 -0
- package/lib/test/utilities/TestNode.js.map +1 -0
- package/lib/test/utilities/TestUtilities.d.ts +84 -70
- package/lib/test/utilities/TestUtilities.d.ts.map +1 -1
- package/lib/test/utilities/TestUtilities.js +218 -143
- package/lib/test/utilities/TestUtilities.js.map +1 -1
- package/lib/test/utilities/UndoRedoTests.d.ts +4 -5
- package/lib/test/utilities/UndoRedoTests.d.ts.map +1 -1
- package/lib/test/utilities/UndoRedoTests.js +138 -149
- package/lib/test/utilities/UndoRedoTests.js.map +1 -1
- package/package.json +22 -17
- package/src/ChangeCompression.ts +159 -0
- package/src/{default-edits/PersistedTypes.ts → ChangeTypes.ts} +62 -125
- package/src/Checkout.ts +82 -53
- package/src/Common.ts +317 -117
- package/src/EagerCheckout.ts +38 -0
- package/src/EditLog.ts +153 -100
- package/src/EditUtilities.ts +559 -0
- package/src/EventTypes.ts +74 -0
- package/src/Forest.ts +81 -73
- package/src/{default-edits/HistoryEditFactory.ts → HistoryEditFactory.ts} +103 -53
- package/src/IdConversion.ts +125 -0
- package/src/Identifiers.ts +101 -1
- package/src/InitialTree.ts +5 -4
- package/src/LazyCheckout.ts +51 -0
- package/src/LogViewer.ts +242 -166
- package/src/MergeHealth.ts +447 -0
- package/src/NodeIdUtilities.ts +156 -0
- package/src/PayloadUtilities.ts +124 -0
- package/src/ReconciliationPath.ts +18 -13
- package/src/RevisionValueCache.ts +14 -5
- package/src/RevisionView.ts +252 -0
- package/src/SerializationUtilities.ts +130 -0
- package/src/SharedTree.ts +1501 -0
- package/src/SharedTreeEncoder.ts +493 -0
- package/src/StringInterner.ts +72 -0
- package/src/Summary.ts +48 -0
- package/src/SummaryBackCompatibility.ts +47 -57
- package/src/SummaryTestUtilities.ts +54 -0
- package/src/Transaction.ts +120 -0
- package/src/TransactionInternal.ts +1087 -0
- package/src/TreeCompressor.ts +213 -0
- package/src/TreeNodeHandle.ts +19 -32
- package/src/TreeView.ts +322 -0
- package/src/TreeViewUtilities.ts +77 -0
- package/src/{default-edits/UndoRedoHandler.ts → UndoRedoHandler.ts} +8 -13
- package/src/id-compressor/AppendOnlySortedMap.ts +325 -0
- package/src/id-compressor/IdCompressor.md +3 -0
- package/src/id-compressor/IdCompressor.ts +1848 -0
- package/src/id-compressor/IdRange.ts +33 -0
- package/src/id-compressor/NumericUuid.ts +414 -0
- package/src/id-compressor/index.ts +13 -0
- package/src/id-compressor/persisted-types/0.0.1.ts +179 -0
- package/src/id-compressor/persisted-types/README.md +3 -0
- package/src/id-compressor/persisted-types/index.ts +6 -0
- package/src/index.ts +118 -59
- package/src/persisted-types/0.0.2.ts +442 -0
- package/src/persisted-types/0.1.1.ts +476 -0
- package/src/persisted-types/README.md +22 -0
- package/src/persisted-types/index.ts +9 -0
- package/.mocharc.js +0 -41
- package/api/tree.api.md +0 -729
- package/dist/BasicCheckout.d.ts +0 -23
- package/dist/BasicCheckout.d.ts.map +0 -1
- package/dist/BasicCheckout.js.map +0 -1
- package/dist/Snapshot.d.ts +0 -198
- package/dist/Snapshot.d.ts.map +0 -1
- package/dist/Snapshot.js +0 -267
- package/dist/Snapshot.js.map +0 -1
- package/dist/SnapshotUtilities.d.ts +0 -29
- package/dist/SnapshotUtilities.d.ts.map +0 -1
- package/dist/SnapshotUtilities.js +0 -73
- package/dist/SnapshotUtilities.js.map +0 -1
- package/dist/anchored-edits/AnchorResolution.d.ts +0 -144
- package/dist/anchored-edits/AnchorResolution.d.ts.map +0 -1
- package/dist/anchored-edits/AnchorResolution.js +0 -162
- package/dist/anchored-edits/AnchorResolution.js.map +0 -1
- package/dist/anchored-edits/Factory.d.ts +0 -56
- package/dist/anchored-edits/Factory.d.ts.map +0 -1
- package/dist/anchored-edits/Factory.js +0 -79
- package/dist/anchored-edits/Factory.js.map +0 -1
- package/dist/anchored-edits/PersistedTypes.d.ts +0 -245
- package/dist/anchored-edits/PersistedTypes.d.ts.map +0 -1
- package/dist/anchored-edits/PersistedTypes.js +0 -131
- package/dist/anchored-edits/PersistedTypes.js.map +0 -1
- package/dist/anchored-edits/SharedTreeWithAnchors.d.ts +0 -120
- package/dist/anchored-edits/SharedTreeWithAnchors.d.ts.map +0 -1
- package/dist/anchored-edits/SharedTreeWithAnchors.js +0 -115
- package/dist/anchored-edits/SharedTreeWithAnchors.js.map +0 -1
- package/dist/anchored-edits/TransactionWithAnchors.d.ts +0 -28
- package/dist/anchored-edits/TransactionWithAnchors.d.ts.map +0 -1
- package/dist/anchored-edits/TransactionWithAnchors.js +0 -36
- package/dist/anchored-edits/TransactionWithAnchors.js.map +0 -1
- package/dist/anchored-edits/index.d.ts +0 -10
- package/dist/anchored-edits/index.d.ts.map +0 -1
- package/dist/anchored-edits/index.js +0 -34
- package/dist/anchored-edits/index.js.map +0 -1
- package/dist/default-edits/EditUtilities.d.ts +0 -57
- package/dist/default-edits/EditUtilities.d.ts.map +0 -1
- package/dist/default-edits/EditUtilities.js +0 -192
- package/dist/default-edits/EditUtilities.js.map +0 -1
- package/dist/default-edits/Factory.d.ts +0 -56
- package/dist/default-edits/Factory.d.ts.map +0 -1
- package/dist/default-edits/Factory.js +0 -79
- package/dist/default-edits/Factory.js.map +0 -1
- package/dist/default-edits/HistoryEditFactory.d.ts +0 -19
- package/dist/default-edits/HistoryEditFactory.d.ts.map +0 -1
- package/dist/default-edits/HistoryEditFactory.js +0 -187
- package/dist/default-edits/HistoryEditFactory.js.map +0 -1
- package/dist/default-edits/PersistedTypes.d.ts.map +0 -1
- package/dist/default-edits/PersistedTypes.js.map +0 -1
- package/dist/default-edits/SharedTree.d.ts +0 -111
- package/dist/default-edits/SharedTree.d.ts.map +0 -1
- package/dist/default-edits/SharedTree.js +0 -124
- package/dist/default-edits/SharedTree.js.map +0 -1
- package/dist/default-edits/Summary.d.ts +0 -15
- package/dist/default-edits/Summary.d.ts.map +0 -1
- package/dist/default-edits/Summary.js +0 -35
- package/dist/default-edits/Summary.js.map +0 -1
- package/dist/default-edits/Transaction.d.ts +0 -41
- package/dist/default-edits/Transaction.d.ts.map +0 -1
- package/dist/default-edits/Transaction.js +0 -225
- package/dist/default-edits/Transaction.js.map +0 -1
- package/dist/default-edits/UndoRedoHandler.d.ts.map +0 -1
- package/dist/default-edits/UndoRedoHandler.js.map +0 -1
- package/dist/default-edits/index.d.ts +0 -13
- package/dist/default-edits/index.d.ts.map +0 -1
- package/dist/default-edits/index.js +0 -41
- package/dist/default-edits/index.js.map +0 -1
- package/dist/generic/GenericEditUtilities.d.ts +0 -26
- package/dist/generic/GenericEditUtilities.d.ts.map +0 -1
- package/dist/generic/GenericEditUtilities.js +0 -45
- package/dist/generic/GenericEditUtilities.js.map +0 -1
- package/dist/generic/GenericSharedTree.d.ts +0 -221
- package/dist/generic/GenericSharedTree.d.ts.map +0 -1
- package/dist/generic/GenericSharedTree.js +0 -447
- package/dist/generic/GenericSharedTree.js.map +0 -1
- package/dist/generic/GenericTransaction.d.ts +0 -87
- package/dist/generic/GenericTransaction.d.ts.map +0 -1
- package/dist/generic/GenericTransaction.js +0 -144
- package/dist/generic/GenericTransaction.js.map +0 -1
- package/dist/generic/PersistedTypes.d.ts +0 -194
- package/dist/generic/PersistedTypes.d.ts.map +0 -1
- package/dist/generic/PersistedTypes.js +0 -42
- package/dist/generic/PersistedTypes.js.map +0 -1
- package/dist/generic/Summary.d.ts +0 -63
- package/dist/generic/Summary.d.ts.map +0 -1
- package/dist/generic/Summary.js +0 -64
- package/dist/generic/Summary.js.map +0 -1
- package/dist/generic/index.d.ts +0 -10
- package/dist/generic/index.d.ts.map +0 -1
- package/dist/generic/index.js +0 -26
- package/dist/generic/index.js.map +0 -1
- package/docs/Future.md +0 -155
- package/lib/BasicCheckout.d.ts +0 -23
- package/lib/BasicCheckout.d.ts.map +0 -1
- package/lib/BasicCheckout.js.map +0 -1
- package/lib/Snapshot.d.ts +0 -198
- package/lib/Snapshot.d.ts.map +0 -1
- package/lib/Snapshot.js +0 -263
- package/lib/Snapshot.js.map +0 -1
- package/lib/SnapshotUtilities.d.ts +0 -29
- package/lib/SnapshotUtilities.d.ts.map +0 -1
- package/lib/SnapshotUtilities.js +0 -67
- package/lib/SnapshotUtilities.js.map +0 -1
- package/lib/anchored-edits/AnchorResolution.d.ts +0 -144
- package/lib/anchored-edits/AnchorResolution.d.ts.map +0 -1
- package/lib/anchored-edits/AnchorResolution.js +0 -152
- package/lib/anchored-edits/AnchorResolution.js.map +0 -1
- package/lib/anchored-edits/Factory.d.ts +0 -56
- package/lib/anchored-edits/Factory.d.ts.map +0 -1
- package/lib/anchored-edits/Factory.js +0 -74
- package/lib/anchored-edits/Factory.js.map +0 -1
- package/lib/anchored-edits/PersistedTypes.d.ts +0 -245
- package/lib/anchored-edits/PersistedTypes.d.ts.map +0 -1
- package/lib/anchored-edits/PersistedTypes.js +0 -128
- package/lib/anchored-edits/PersistedTypes.js.map +0 -1
- package/lib/anchored-edits/SharedTreeWithAnchors.d.ts +0 -120
- package/lib/anchored-edits/SharedTreeWithAnchors.d.ts.map +0 -1
- package/lib/anchored-edits/SharedTreeWithAnchors.js +0 -110
- package/lib/anchored-edits/SharedTreeWithAnchors.js.map +0 -1
- package/lib/anchored-edits/TransactionWithAnchors.d.ts +0 -28
- package/lib/anchored-edits/TransactionWithAnchors.d.ts.map +0 -1
- package/lib/anchored-edits/TransactionWithAnchors.js +0 -32
- package/lib/anchored-edits/TransactionWithAnchors.js.map +0 -1
- package/lib/anchored-edits/index.d.ts +0 -10
- package/lib/anchored-edits/index.d.ts.map +0 -1
- package/lib/anchored-edits/index.js +0 -11
- package/lib/anchored-edits/index.js.map +0 -1
- package/lib/default-edits/EditUtilities.d.ts +0 -57
- package/lib/default-edits/EditUtilities.d.ts.map +0 -1
- package/lib/default-edits/EditUtilities.js +0 -181
- package/lib/default-edits/EditUtilities.js.map +0 -1
- package/lib/default-edits/Factory.d.ts +0 -56
- package/lib/default-edits/Factory.d.ts.map +0 -1
- package/lib/default-edits/Factory.js +0 -74
- package/lib/default-edits/Factory.js.map +0 -1
- package/lib/default-edits/HistoryEditFactory.d.ts +0 -19
- package/lib/default-edits/HistoryEditFactory.d.ts.map +0 -1
- package/lib/default-edits/HistoryEditFactory.js.map +0 -1
- package/lib/default-edits/PersistedTypes.d.ts.map +0 -1
- package/lib/default-edits/PersistedTypes.js.map +0 -1
- package/lib/default-edits/SharedTree.d.ts +0 -111
- package/lib/default-edits/SharedTree.d.ts.map +0 -1
- package/lib/default-edits/SharedTree.js +0 -100
- package/lib/default-edits/SharedTree.js.map +0 -1
- package/lib/default-edits/Summary.d.ts +0 -15
- package/lib/default-edits/Summary.d.ts.map +0 -1
- package/lib/default-edits/Summary.js +0 -31
- package/lib/default-edits/Summary.js.map +0 -1
- package/lib/default-edits/Transaction.d.ts +0 -41
- package/lib/default-edits/Transaction.d.ts.map +0 -1
- package/lib/default-edits/Transaction.js +0 -221
- package/lib/default-edits/Transaction.js.map +0 -1
- package/lib/default-edits/UndoRedoHandler.d.ts.map +0 -1
- package/lib/default-edits/UndoRedoHandler.js.map +0 -1
- package/lib/default-edits/index.d.ts +0 -13
- package/lib/default-edits/index.d.ts.map +0 -1
- package/lib/default-edits/index.js +0 -14
- package/lib/default-edits/index.js.map +0 -1
- package/lib/generic/GenericEditUtilities.d.ts +0 -26
- package/lib/generic/GenericEditUtilities.d.ts.map +0 -1
- package/lib/generic/GenericEditUtilities.js +0 -38
- package/lib/generic/GenericEditUtilities.js.map +0 -1
- package/lib/generic/GenericSharedTree.d.ts +0 -221
- package/lib/generic/GenericSharedTree.d.ts.map +0 -1
- package/lib/generic/GenericSharedTree.js +0 -443
- package/lib/generic/GenericSharedTree.js.map +0 -1
- package/lib/generic/GenericTransaction.d.ts +0 -87
- package/lib/generic/GenericTransaction.d.ts.map +0 -1
- package/lib/generic/GenericTransaction.js +0 -140
- package/lib/generic/GenericTransaction.js.map +0 -1
- package/lib/generic/PersistedTypes.d.ts +0 -194
- package/lib/generic/PersistedTypes.d.ts.map +0 -1
- package/lib/generic/PersistedTypes.js +0 -39
- package/lib/generic/PersistedTypes.js.map +0 -1
- package/lib/generic/Summary.d.ts +0 -63
- package/lib/generic/Summary.d.ts.map +0 -1
- package/lib/generic/Summary.js +0 -58
- package/lib/generic/Summary.js.map +0 -1
- package/lib/generic/index.d.ts +0 -10
- package/lib/generic/index.d.ts.map +0 -1
- package/lib/generic/index.js +0 -11
- package/lib/generic/index.js.map +0 -1
- package/lib/test/Anchors.glassBox.tests.d.ts.map +0 -1
- package/lib/test/Anchors.glassBox.tests.js +0 -410
- package/lib/test/Anchors.glassBox.tests.js.map +0 -1
- package/lib/test/BasicCheckout.tests.d.ts.map +0 -1
- package/lib/test/BasicCheckout.tests.js +0 -8
- package/lib/test/BasicCheckout.tests.js.map +0 -1
- package/lib/test/GenericTransactionWithAnchors.tests.d.ts.map +0 -1
- package/lib/test/GenericTransactionWithAnchors.tests.js +0 -25
- package/lib/test/GenericTransactionWithAnchors.tests.js.map +0 -1
- package/lib/test/SharedTreeWithAnchors.tests.d.ts.map +0 -1
- package/lib/test/SharedTreeWithAnchors.tests.js +0 -420
- package/lib/test/SharedTreeWithAnchors.tests.js.map +0 -1
- package/lib/test/Snapshot.tests.d.ts.map +0 -1
- package/lib/test/Snapshot.tests.js +0 -96
- package/lib/test/Snapshot.tests.js.map +0 -1
- package/lib/test/SnapshotUtilities.tests.d.ts.map +0 -1
- package/lib/test/SnapshotUtilities.tests.js +0 -168
- package/lib/test/SnapshotUtilities.tests.js.map +0 -1
- package/lib/test/undoRedoStackManager.d.ts +0 -26
- package/lib/test/undoRedoStackManager.d.ts.map +0 -1
- package/lib/test/undoRedoStackManager.js +0 -176
- package/lib/test/undoRedoStackManager.js.map +0 -1
- package/lib/test/utilities/SummaryFormatCompatibilityTests.d.ts +0 -13
- package/lib/test/utilities/SummaryFormatCompatibilityTests.d.ts.map +0 -1
- package/lib/test/utilities/SummaryFormatCompatibilityTests.js +0 -154
- package/lib/test/utilities/SummaryFormatCompatibilityTests.js.map +0 -1
- package/src/BasicCheckout.ts +0 -34
- package/src/Snapshot.ts +0 -363
- package/src/SnapshotUtilities.ts +0 -88
- package/src/anchored-edits/AnchorResolution.ts +0 -442
- package/src/anchored-edits/Factory.ts +0 -94
- package/src/anchored-edits/PersistedTypes.ts +0 -310
- package/src/anchored-edits/SharedTreeWithAnchors.ts +0 -200
- package/src/anchored-edits/TransactionWithAnchors.ts +0 -39
- package/src/anchored-edits/index.ts +0 -21
- package/src/default-edits/EditUtilities.ts +0 -220
- package/src/default-edits/Factory.ts +0 -94
- package/src/default-edits/SharedTree.ts +0 -174
- package/src/default-edits/Summary.ts +0 -44
- package/src/default-edits/Transaction.ts +0 -262
- package/src/default-edits/index.ts +0 -29
- package/src/generic/GenericEditUtilities.ts +0 -46
- package/src/generic/GenericSharedTree.ts +0 -593
- package/src/generic/GenericTransaction.ts +0 -194
- package/src/generic/PersistedTypes.ts +0 -221
- package/src/generic/Summary.ts +0 -113
- package/src/generic/index.ts +0 -41
package/lib/generic/Summary.d.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
6
|
-
import { IFluidSerializer } from '@fluidframework/shared-object-base';
|
|
7
|
-
import { EditLogSummary, OrderedEditSet } from '../EditLog';
|
|
8
|
-
import { Snapshot } from '../Snapshot';
|
|
9
|
-
import { SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';
|
|
10
|
-
import { ChangeNode } from './PersistedTypes';
|
|
11
|
-
/**
|
|
12
|
-
* Format version for summaries that are written.
|
|
13
|
-
* When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent
|
|
14
|
-
* version number.
|
|
15
|
-
*/
|
|
16
|
-
export declare const formatVersion = "0.0.2";
|
|
17
|
-
/**
|
|
18
|
-
* Handler for summarizing the tree state.
|
|
19
|
-
* The handler is invoked when saving a summary. It accepts a view of the current state of the tree, the sequenced edits known
|
|
20
|
-
* to the SharedTree, and optional helpers for serializing the edit information.
|
|
21
|
-
* @returns a summary of the supplied state.
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
export declare type SharedTreeSummarizer<TChange> = (editLog: OrderedEditSet<TChange>, currentView: Snapshot) => SharedTreeSummaryBase;
|
|
25
|
-
/**
|
|
26
|
-
* The minimal information on a SharedTree summary. Contains the summary format version.
|
|
27
|
-
*/
|
|
28
|
-
export interface SharedTreeSummaryBase {
|
|
29
|
-
/**
|
|
30
|
-
* Field on summary under which version is stored.
|
|
31
|
-
*/
|
|
32
|
-
readonly version: string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* The contents of a SharedTree summary: the current tree, and the edits needed to get from `initialTree` to the current tree.
|
|
36
|
-
* @public
|
|
37
|
-
*/
|
|
38
|
-
export interface SharedTreeSummary<TChange> extends SharedTreeSummaryBase {
|
|
39
|
-
readonly currentTree: ChangeNode;
|
|
40
|
-
/**
|
|
41
|
-
* Information that can populate an edit log.
|
|
42
|
-
*/
|
|
43
|
-
readonly editHistory?: EditLogSummary<TChange>;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`
|
|
47
|
-
* Also replaces handle objects with their serialized form.
|
|
48
|
-
*
|
|
49
|
-
* @param summary - The SharedTree summary to serialize.
|
|
50
|
-
* @param serializer - The serializer required to serialize handles in the summary.
|
|
51
|
-
* @param bind - The object handle required to serialize handles in the summary
|
|
52
|
-
*/
|
|
53
|
-
export declare function serialize(summary: SharedTreeSummaryBase, serializer: IFluidSerializer, bind: IFluidHandle): string;
|
|
54
|
-
/**
|
|
55
|
-
* Preserves the full history in the generated summary.
|
|
56
|
-
* @public
|
|
57
|
-
*/
|
|
58
|
-
export declare function fullHistorySummarizer<TChange>(editLog: OrderedEditSet<TChange>, currentView: Snapshot): SharedTreeSummary_0_0_2<TChange>;
|
|
59
|
-
/**
|
|
60
|
-
* Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.
|
|
61
|
-
*/
|
|
62
|
-
export declare function fullHistorySummarizer_0_1_0<TChange>(editLog: OrderedEditSet<TChange>, currentView: Snapshot): SharedTreeSummary<TChange>;
|
|
63
|
-
//# sourceMappingURL=Summary.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Summary.d.ts","sourceRoot":"","sources":["../../src/generic/Summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oCAAoC,CAAC;AAExF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAqB,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC;;;;;;GAMG;AACH,oBAAY,oBAAoB,CAAC,OAAO,IAAI,CAC3C,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,QAAQ,KACjB,qBAAqB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,CAAE,SAAQ,qBAAqB;IACxE,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAElH;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAC5C,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,QAAQ,GACnB,uBAAuB,CAAC,OAAO,CAAC,CAwBlC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAClD,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,QAAQ,GACnB,iBAAiB,CAAC,OAAO,CAAC,CAM5B"}
|
package/lib/generic/Summary.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { serializeHandles } from '@fluidframework/shared-object-base';
|
|
6
|
-
import { assert, assertNotUndefined } from '../Common';
|
|
7
|
-
import { readFormatVersion } from '../SummaryBackCompatibility';
|
|
8
|
-
/**
|
|
9
|
-
* Format version for summaries that are written.
|
|
10
|
-
* When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent
|
|
11
|
-
* version number.
|
|
12
|
-
*/
|
|
13
|
-
export const formatVersion = '0.0.2';
|
|
14
|
-
/**
|
|
15
|
-
* Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`
|
|
16
|
-
* Also replaces handle objects with their serialized form.
|
|
17
|
-
*
|
|
18
|
-
* @param summary - The SharedTree summary to serialize.
|
|
19
|
-
* @param serializer - The serializer required to serialize handles in the summary.
|
|
20
|
-
* @param bind - The object handle required to serialize handles in the summary
|
|
21
|
-
*/
|
|
22
|
-
export function serialize(summary, serializer, bind) {
|
|
23
|
-
return assertNotUndefined(serializeHandles(summary, serializer, bind));
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Preserves the full history in the generated summary.
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
export function fullHistorySummarizer(editLog, currentView) {
|
|
30
|
-
const { editChunks, editIds } = editLog.getEditLogSummary();
|
|
31
|
-
const sequencedEdits = [];
|
|
32
|
-
let idIndex = 0;
|
|
33
|
-
editChunks.forEach(({ chunk }) => {
|
|
34
|
-
assert(Array.isArray(chunk), 'Handles should not be included in the summary until format version 0.1.0 is being written.');
|
|
35
|
-
chunk.forEach(({ changes }) => {
|
|
36
|
-
sequencedEdits.push({
|
|
37
|
-
changes,
|
|
38
|
-
id: assertNotUndefined(editIds[idIndex++], 'Number of edits should match number of edit IDs.'),
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
return {
|
|
43
|
-
currentTree: currentView.getChangeNodeTree(),
|
|
44
|
-
sequencedEdits,
|
|
45
|
-
version: formatVersion,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.
|
|
50
|
-
*/
|
|
51
|
-
export function fullHistorySummarizer_0_1_0(editLog, currentView) {
|
|
52
|
-
return {
|
|
53
|
-
currentTree: currentView.getChangeNodeTree(),
|
|
54
|
-
editHistory: editLog.getEditLogSummary(true),
|
|
55
|
-
version: readFormatVersion,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=Summary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Summary.js","sourceRoot":"","sources":["../../src/generic/Summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAoB,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAA2B,MAAM,6BAA6B,CAAC;AAGzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAqCrC;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,OAA8B,EAAE,UAA4B,EAAE,IAAkB;IACzG,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACpC,OAAgC,EAChC,WAAqB;IAErB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5D,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,MAAM,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,4FAA4F,CAC5F,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,cAAc,CAAC,IAAI,CAAC;gBACnB,OAAO;gBACP,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,kDAAkD,CAAC;aAC9F,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,WAAW,EAAE,WAAW,CAAC,iBAAiB,EAAE;QAC5C,cAAc;QACd,OAAO,EAAE,aAAa;KACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAC1C,OAAgC,EAChC,WAAqB;IAErB,OAAO;QACN,WAAW,EAAE,WAAW,CAAC,iBAAiB,EAAE;QAC5C,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC5C,OAAO,EAAE,iBAAiB;KAC1B,CAAC;AACH,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from '@fluidframework/core-interfaces';\nimport { IFluidSerializer, serializeHandles } from '@fluidframework/shared-object-base';\nimport { assert, assertNotUndefined } from '../Common';\nimport { EditLogSummary, OrderedEditSet } from '../EditLog';\nimport { Snapshot } from '../Snapshot';\nimport { readFormatVersion, SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';\nimport { ChangeNode, Edit } from './PersistedTypes';\n\n/**\n * Format version for summaries that are written.\n * When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent\n * version number.\n */\nexport const formatVersion = '0.0.2';\n\n/**\n * Handler for summarizing the tree state.\n * The handler is invoked when saving a summary. It accepts a view of the current state of the tree, the sequenced edits known\n * to the SharedTree, and optional helpers for serializing the edit information.\n * @returns a summary of the supplied state.\n * @internal\n */\nexport type SharedTreeSummarizer<TChange> = (\n\teditLog: OrderedEditSet<TChange>,\n\tcurrentView: Snapshot\n) => SharedTreeSummaryBase;\n\n/**\n * The minimal information on a SharedTree summary. Contains the summary format version.\n */\nexport interface SharedTreeSummaryBase {\n\t/**\n\t * Field on summary under which version is stored.\n\t */\n\treadonly version: string;\n}\n\n/**\n * The contents of a SharedTree summary: the current tree, and the edits needed to get from `initialTree` to the current tree.\n * @public\n */\nexport interface SharedTreeSummary<TChange> extends SharedTreeSummaryBase {\n\treadonly currentTree: ChangeNode;\n\n\t/**\n\t * Information that can populate an edit log.\n\t */\n\treadonly editHistory?: EditLogSummary<TChange>;\n}\n\n/**\n * Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`\n * Also replaces handle objects with their serialized form.\n *\n * @param summary - The SharedTree summary to serialize.\n * @param serializer - The serializer required to serialize handles in the summary.\n * @param bind - The object handle required to serialize handles in the summary\n */\nexport function serialize(summary: SharedTreeSummaryBase, serializer: IFluidSerializer, bind: IFluidHandle): string {\n\treturn assertNotUndefined(serializeHandles(summary, serializer, bind));\n}\n\n/**\n * Preserves the full history in the generated summary.\n * @public\n */\nexport function fullHistorySummarizer<TChange>(\n\teditLog: OrderedEditSet<TChange>,\n\tcurrentView: Snapshot\n): SharedTreeSummary_0_0_2<TChange> {\n\tconst { editChunks, editIds } = editLog.getEditLogSummary();\n\n\tconst sequencedEdits: Edit<TChange>[] = [];\n\tlet idIndex = 0;\n\teditChunks.forEach(({ chunk }) => {\n\t\tassert(\n\t\t\tArray.isArray(chunk),\n\t\t\t'Handles should not be included in the summary until format version 0.1.0 is being written.'\n\t\t);\n\n\t\tchunk.forEach(({ changes }) => {\n\t\t\tsequencedEdits.push({\n\t\t\t\tchanges,\n\t\t\t\tid: assertNotUndefined(editIds[idIndex++], 'Number of edits should match number of edit IDs.'),\n\t\t\t});\n\t\t});\n\t});\n\n\treturn {\n\t\tcurrentTree: currentView.getChangeNodeTree(),\n\t\tsequencedEdits,\n\t\tversion: formatVersion,\n\t};\n}\n\n/**\n * Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.\n */\nexport function fullHistorySummarizer_0_1_0<TChange>(\n\teditLog: OrderedEditSet<TChange>,\n\tcurrentView: Snapshot\n): SharedTreeSummary<TChange> {\n\treturn {\n\t\tcurrentTree: currentView.getChangeNodeTree(),\n\t\teditHistory: editLog.getEditLogSummary(true),\n\t\tversion: readFormatVersion,\n\t};\n}\n"]}
|
package/lib/generic/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export { EditCommittedHandler, EditCommittedEventArguments, ISharedTreeEvents, GenericSharedTree, SharedTreeEvent, SharedTreeDiagnosticEvent, } from './GenericSharedTree';
|
|
6
|
-
export { Edit, EditWithoutId, EditBase, TraitMap, TreeNodeSequence, Payload, NodeData, TreeNode, ChangeNode, BuildNode, EditStatus, TraitLocation, SharedTreeOpType, } from './PersistedTypes';
|
|
7
|
-
export { newEdit, newEditId } from './GenericEditUtilities';
|
|
8
|
-
export { GenericTransaction, EditingResult, ValidEditingResult } from './GenericTransaction';
|
|
9
|
-
export { SharedTreeSummary, SharedTreeSummaryBase, SharedTreeSummarizer, fullHistorySummarizer, fullHistorySummarizer_0_1_0, formatVersion, serialize, } from './Summary';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generic/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACb,SAAS,GACT,MAAM,WAAW,CAAC"}
|
package/lib/generic/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
// API Exports
|
|
6
|
-
export { GenericSharedTree, SharedTreeEvent, SharedTreeDiagnosticEvent, } from './GenericSharedTree';
|
|
7
|
-
export { EditStatus, SharedTreeOpType, } from './PersistedTypes';
|
|
8
|
-
export { newEdit, newEditId } from './GenericEditUtilities';
|
|
9
|
-
export { GenericTransaction } from './GenericTransaction';
|
|
10
|
-
export { fullHistorySummarizer, fullHistorySummarizer_0_1_0, formatVersion, serialize, } from './Summary';
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
package/lib/generic/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generic/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AAEd,OAAO,EAIN,iBAAiB,EACjB,eAAe,EACf,yBAAyB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAWN,UAAU,EAEV,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAqC,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAIN,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACb,SAAS,GACT,MAAM,WAAW,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// API Exports\n\nexport {\n\tEditCommittedHandler,\n\tEditCommittedEventArguments,\n\tISharedTreeEvents,\n\tGenericSharedTree,\n\tSharedTreeEvent,\n\tSharedTreeDiagnosticEvent,\n} from './GenericSharedTree';\nexport {\n\tEdit,\n\tEditWithoutId,\n\tEditBase,\n\tTraitMap,\n\tTreeNodeSequence,\n\tPayload,\n\tNodeData,\n\tTreeNode,\n\tChangeNode,\n\tBuildNode,\n\tEditStatus,\n\tTraitLocation,\n\tSharedTreeOpType,\n} from './PersistedTypes';\nexport { newEdit, newEditId } from './GenericEditUtilities';\nexport { GenericTransaction, EditingResult, ValidEditingResult } from './GenericTransaction';\nexport {\n\tSharedTreeSummary,\n\tSharedTreeSummaryBase,\n\tSharedTreeSummarizer,\n\tfullHistorySummarizer,\n\tfullHistorySummarizer_0_1_0,\n\tformatVersion,\n\tserialize,\n} from './Summary';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Anchors.glassBox.tests.d.ts","sourceRoot":"","sources":["../../src/test/Anchors.glassBox.tests.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { expect } from 'chai';
|
|
6
|
-
import { StablePlace, ConstraintEffect } from '../default-edits';
|
|
7
|
-
import { AnchoredChange, PlaceAnchor, PlaceAnchorSemanticsChoice, RangeAnchor, resolveChangeAnchors, findLastOffendingChange, resolveNodeAnchor, resolvePlaceAnchor, resolveRangeAnchor, updateRelativePlaceAnchorForChange, updateRelativePlaceAnchorForPath, } from '../anchored-edits';
|
|
8
|
-
import { assert, fail } from '../Common';
|
|
9
|
-
import { Side, Snapshot } from '../Snapshot';
|
|
10
|
-
import { EditValidationResult } from '../Checkout';
|
|
11
|
-
import { makeEmptyNode, leftTraitLabel, rightTraitLabel } from './utilities/TestUtilities';
|
|
12
|
-
const left = makeEmptyNode('left');
|
|
13
|
-
const priorSibling = makeEmptyNode('prior');
|
|
14
|
-
const nextSibling = makeEmptyNode('next');
|
|
15
|
-
const right = makeEmptyNode('right');
|
|
16
|
-
const parent = Object.assign(Object.assign({}, makeEmptyNode('parent')), { traits: { [leftTraitLabel]: [left], [rightTraitLabel]: [right] } });
|
|
17
|
-
const initialTree = Object.assign(Object.assign({}, makeEmptyNode('root')), { traits: {
|
|
18
|
-
parentTraitLabel: [parent],
|
|
19
|
-
} });
|
|
20
|
-
const leftTraitLocation = {
|
|
21
|
-
parent: parent.identifier,
|
|
22
|
-
label: leftTraitLabel,
|
|
23
|
-
};
|
|
24
|
-
const startPlace = StablePlace.atStartOf(leftTraitLocation);
|
|
25
|
-
const endPlace = StablePlace.atEndOf(leftTraitLocation);
|
|
26
|
-
const beforePlace = StablePlace.before(left);
|
|
27
|
-
const afterPlace = StablePlace.after(left);
|
|
28
|
-
const startAnchor = PlaceAnchor.atStartOf(leftTraitLocation, PlaceAnchorSemanticsChoice.RelativeToNode);
|
|
29
|
-
const endAnchor = PlaceAnchor.atEndOf(leftTraitLocation, PlaceAnchorSemanticsChoice.RelativeToNode);
|
|
30
|
-
const beforeAnchor = PlaceAnchor.before(left, PlaceAnchorSemanticsChoice.RelativeToNode);
|
|
31
|
-
const afterAnchor = PlaceAnchor.after(left, PlaceAnchorSemanticsChoice.RelativeToNode);
|
|
32
|
-
const mockDetachedSequenceId = 42;
|
|
33
|
-
const mockNodeId = 'mock-node-id';
|
|
34
|
-
const mockPlace = 'mock-place';
|
|
35
|
-
const mockRange = 'mock-range';
|
|
36
|
-
const mockPlaceAnchor = 'mock-place-anchor';
|
|
37
|
-
const mockSnapshot = 'mock-snapshot';
|
|
38
|
-
const mockPath = 'mock-path';
|
|
39
|
-
const mockEvaluatedChange = 'mock-evaluated-change';
|
|
40
|
-
describe('Anchor Glass Box Tests', () => {
|
|
41
|
-
describe(resolveChangeAnchors.name, () => {
|
|
42
|
-
const testCases = [
|
|
43
|
-
{
|
|
44
|
-
name: 'Insert',
|
|
45
|
-
input: AnchoredChange.insert(mockDetachedSequenceId, beforeAnchor),
|
|
46
|
-
expected: AnchoredChange.insert(mockDetachedSequenceId, mockPlace),
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: 'Detach',
|
|
50
|
-
input: AnchoredChange.detach(RangeAnchor.only(right), mockDetachedSequenceId),
|
|
51
|
-
expected: AnchoredChange.detach(mockRange, mockDetachedSequenceId),
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: 'SetValue (set payload)',
|
|
55
|
-
input: AnchoredChange.setPayload(left.identifier, 42),
|
|
56
|
-
expected: AnchoredChange.setPayload(mockNodeId, 42),
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'SetValue (clear payload)',
|
|
60
|
-
input: AnchoredChange.clearPayload(left.identifier),
|
|
61
|
-
expected: AnchoredChange.clearPayload(mockNodeId),
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: 'Constraint',
|
|
65
|
-
input: AnchoredChange.constraint(RangeAnchor.only(right), ConstraintEffect.ValidRetry),
|
|
66
|
-
expected: AnchoredChange.constraint(mockRange, ConstraintEffect.ValidRetry),
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
for (const testCase of testCases) {
|
|
70
|
-
it(`attempts to resolve anchors in ${testCase.name} changes`, () => {
|
|
71
|
-
const change = testCase.input;
|
|
72
|
-
const actualHappy = resolveChangeAnchors(change, mockSnapshot, [], {
|
|
73
|
-
nodeResolver: () => mockNodeId,
|
|
74
|
-
placeResolver: () => mockPlace,
|
|
75
|
-
rangeResolver: () => mockRange,
|
|
76
|
-
});
|
|
77
|
-
expect(actualHappy).deep.equal(testCase.expected);
|
|
78
|
-
const actualSad = resolveChangeAnchors(change, mockSnapshot, [], {
|
|
79
|
-
nodeResolver: () => undefined,
|
|
80
|
-
placeResolver: () => undefined,
|
|
81
|
-
rangeResolver: () => undefined,
|
|
82
|
-
});
|
|
83
|
-
expect(actualSad).equal(undefined);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
it('throws when given an unsupported change type', () => {
|
|
87
|
-
const fakeChange = { type: -42 };
|
|
88
|
-
expect(() => resolveChangeAnchors(fakeChange, mockSnapshot, [])).throws();
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
describe(resolveNodeAnchor.name, () => {
|
|
92
|
-
it('returns the given NodeAnchor as a NodeId if the node exists in the snapshot', () => {
|
|
93
|
-
const snapshot = Snapshot.fromTree(left);
|
|
94
|
-
expect(resolveNodeAnchor(left.identifier, snapshot, [])).equals(left.identifier);
|
|
95
|
-
});
|
|
96
|
-
it('returns undefined if the node does not exists in the snapshot', () => {
|
|
97
|
-
const snapshot = Snapshot.fromTree(left);
|
|
98
|
-
expect(resolveNodeAnchor(mockNodeId, snapshot, [])).equals(undefined);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe(resolveRangeAnchor.name, () => {
|
|
102
|
-
it('returns a range with resolved places when possible', () => {
|
|
103
|
-
expect(resolveRangeAnchor(RangeAnchor.only(left), mockSnapshot, [], {
|
|
104
|
-
placeResolver: () => mockPlace,
|
|
105
|
-
rangeValidator: () => EditValidationResult.Valid,
|
|
106
|
-
})).deep.equals(RangeAnchor.from(mockPlace).to(mockPlace));
|
|
107
|
-
});
|
|
108
|
-
it('returns undefined if either place cannot be resolved', () => {
|
|
109
|
-
expect(resolveRangeAnchor(RangeAnchor.only(left), mockSnapshot, [], {
|
|
110
|
-
placeResolver: (place) => (place.side === Side.After ? mockPlace : undefined),
|
|
111
|
-
rangeValidator: () => EditValidationResult.Valid,
|
|
112
|
-
})).equals(undefined);
|
|
113
|
-
expect(resolveRangeAnchor(RangeAnchor.only(left), mockSnapshot, [], {
|
|
114
|
-
placeResolver: (place) => (place.side === Side.Before ? undefined : mockPlace),
|
|
115
|
-
rangeValidator: () => EditValidationResult.Valid,
|
|
116
|
-
})).equals(undefined);
|
|
117
|
-
});
|
|
118
|
-
it('returns undefined the resolved places do not make a valid range', () => {
|
|
119
|
-
expect(resolveRangeAnchor(RangeAnchor.only(left), mockSnapshot, [], {
|
|
120
|
-
placeResolver: () => mockPlace,
|
|
121
|
-
rangeValidator: () => EditValidationResult.Malformed,
|
|
122
|
-
})).equals(undefined);
|
|
123
|
-
expect(resolveRangeAnchor(RangeAnchor.only(left), mockSnapshot, [], {
|
|
124
|
-
placeResolver: () => mockPlace,
|
|
125
|
-
rangeValidator: () => EditValidationResult.Invalid,
|
|
126
|
-
})).equals(undefined);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
describe(resolvePlaceAnchor.name, () => {
|
|
130
|
-
it('returns the given anchor when that anchor is valid in the current snapshot', () => {
|
|
131
|
-
const snapshot = Snapshot.fromTree(initialTree);
|
|
132
|
-
const testWithPlace = (place) => resolvePlaceAnchor(place, snapshot, []);
|
|
133
|
-
expect(testWithPlace(startPlace)).contains(startPlace);
|
|
134
|
-
expect(testWithPlace(endPlace)).contains(endPlace);
|
|
135
|
-
expect(testWithPlace(beforePlace)).contains(beforePlace);
|
|
136
|
-
expect(testWithPlace(afterPlace)).contains(afterPlace);
|
|
137
|
-
expect(testWithPlace(PlaceAnchor.atStartOf(leftTraitLocation))).contains(startPlace);
|
|
138
|
-
expect(testWithPlace(PlaceAnchor.atEndOf(leftTraitLocation))).contains(endPlace);
|
|
139
|
-
expect(testWithPlace(PlaceAnchor.before(left))).contains(beforePlace);
|
|
140
|
-
expect(testWithPlace(PlaceAnchor.after(left))).contains(afterPlace);
|
|
141
|
-
});
|
|
142
|
-
it('returns undefined when the anchor is invalid and not updatable', () => {
|
|
143
|
-
expect(resolvePlaceAnchor(mockPlace, mockSnapshot, [], {
|
|
144
|
-
placeUpdatorForPath: () => undefined,
|
|
145
|
-
placeValidator: () => EditValidationResult.Invalid,
|
|
146
|
-
})).equals(undefined);
|
|
147
|
-
});
|
|
148
|
-
it('returns undefined when the anchor is invalid and bound to the node', () => {
|
|
149
|
-
const resolvePlaceAnchorForInvalidPlace = (place) => resolvePlaceAnchor(place, mockSnapshot, [], {
|
|
150
|
-
placeUpdatorForPath: () => fail(),
|
|
151
|
-
placeValidator: () => EditValidationResult.Invalid,
|
|
152
|
-
});
|
|
153
|
-
expect(resolvePlaceAnchorForInvalidPlace(startPlace)).equals(undefined);
|
|
154
|
-
expect(resolvePlaceAnchorForInvalidPlace(endPlace)).equals(undefined);
|
|
155
|
-
expect(resolvePlaceAnchorForInvalidPlace(beforePlace)).equals(undefined);
|
|
156
|
-
expect(resolvePlaceAnchorForInvalidPlace(afterPlace)).equals(undefined);
|
|
157
|
-
});
|
|
158
|
-
it('returns an updated anchor when the anchor is invalid but updatable to be valid', () => {
|
|
159
|
-
let updateCountdown = 5;
|
|
160
|
-
const inputSnapshot = Snapshot.fromTree(initialTree);
|
|
161
|
-
const inputPlace = PlaceAnchor.after(mockNodeId);
|
|
162
|
-
const placeUpdatorForPath = (place, path) => {
|
|
163
|
-
expect(place).equals(inputPlace);
|
|
164
|
-
expect(path).equals(mockPath);
|
|
165
|
-
return --updateCountdown ? inputPlace : afterAnchor;
|
|
166
|
-
};
|
|
167
|
-
const placeValidator = (snapshot, place) => {
|
|
168
|
-
expect(snapshot).equals(inputSnapshot);
|
|
169
|
-
return place === inputPlace ? EditValidationResult.Invalid : EditValidationResult.Valid;
|
|
170
|
-
};
|
|
171
|
-
expect(resolvePlaceAnchor(inputPlace, inputSnapshot, mockPath, {
|
|
172
|
-
placeUpdatorForPath,
|
|
173
|
-
placeValidator,
|
|
174
|
-
})).contains(PlaceAnchor.after(left));
|
|
175
|
-
// Check that it took the expected number of updates
|
|
176
|
-
expect(updateCountdown).equals(0);
|
|
177
|
-
});
|
|
178
|
-
it('returns undefined when the anchor is invalid and updatable to be invalid', () => {
|
|
179
|
-
let updateCountdown = 5;
|
|
180
|
-
const inputSnapshot = Snapshot.fromTree(initialTree);
|
|
181
|
-
const inputPlace = PlaceAnchor.after(mockNodeId);
|
|
182
|
-
const placeUpdatorForPath = (place, path) => {
|
|
183
|
-
expect(place).equals(inputPlace);
|
|
184
|
-
expect(path).equals(mockPath);
|
|
185
|
-
return --updateCountdown ? inputPlace : undefined;
|
|
186
|
-
};
|
|
187
|
-
const placeValidator = (snapshot, place) => {
|
|
188
|
-
expect(snapshot).equals(inputSnapshot);
|
|
189
|
-
expect(place).equals(inputPlace);
|
|
190
|
-
return EditValidationResult.Invalid;
|
|
191
|
-
};
|
|
192
|
-
expect(resolvePlaceAnchor(inputPlace, inputSnapshot, mockPath, {
|
|
193
|
-
placeUpdatorForPath,
|
|
194
|
-
placeValidator,
|
|
195
|
-
})).equals(undefined);
|
|
196
|
-
// Check that it took the expected number of updates
|
|
197
|
-
expect(updateCountdown).equals(0);
|
|
198
|
-
});
|
|
199
|
-
it('throws when given an unsupported choice of anchor semantics', () => {
|
|
200
|
-
const fakeAnchor = { semantics: -42 };
|
|
201
|
-
expect(() => resolvePlaceAnchor(fakeAnchor, mockSnapshot, [])).throws();
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
describe(updateRelativePlaceAnchorForPath.name, () => {
|
|
205
|
-
it('does not update anchors for start and end of traits', () => {
|
|
206
|
-
expect(updateRelativePlaceAnchorForPath(startAnchor, [])).equals(undefined);
|
|
207
|
-
expect(updateRelativePlaceAnchorForPath(endAnchor, [])).equals(undefined);
|
|
208
|
-
});
|
|
209
|
-
it('does not update anchors when the last offending change is not found', () => {
|
|
210
|
-
expect(updateRelativePlaceAnchorForPath(startAnchor, [], {
|
|
211
|
-
lastOffendingChangeFinder: () => undefined,
|
|
212
|
-
placeUpdatorForChange: () => fail(),
|
|
213
|
-
})).equals(undefined);
|
|
214
|
-
});
|
|
215
|
-
it('tries to update anchors when the last offending change is found', () => {
|
|
216
|
-
expect(updateRelativePlaceAnchorForPath(beforeAnchor, [], {
|
|
217
|
-
lastOffendingChangeFinder: () => mockEvaluatedChange,
|
|
218
|
-
placeUpdatorForChange: (place, change) => {
|
|
219
|
-
expect(place).equals(beforeAnchor);
|
|
220
|
-
expect(change).equals(mockEvaluatedChange);
|
|
221
|
-
return mockPlace;
|
|
222
|
-
},
|
|
223
|
-
})).equals(mockPlace);
|
|
224
|
-
expect(updateRelativePlaceAnchorForPath(beforeAnchor, [], {
|
|
225
|
-
lastOffendingChangeFinder: () => mockEvaluatedChange,
|
|
226
|
-
placeUpdatorForChange: (place, change) => {
|
|
227
|
-
expect(place).equals(beforeAnchor);
|
|
228
|
-
expect(change).equals(mockEvaluatedChange);
|
|
229
|
-
return undefined;
|
|
230
|
-
},
|
|
231
|
-
})).equals(undefined);
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
describe(findLastOffendingChange.name, () => {
|
|
235
|
-
function makeEdit(changes) {
|
|
236
|
-
assert(changes.length > 0);
|
|
237
|
-
const steps = changes.map(makeChange);
|
|
238
|
-
return Object.assign(steps, {
|
|
239
|
-
before: snapshotBeforeChange(changes[0]),
|
|
240
|
-
after: steps[steps.length - 1].after,
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
function makeChange(change) {
|
|
244
|
-
return {
|
|
245
|
-
resolvedChange: change,
|
|
246
|
-
after: snapshotAfterChange(change),
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
function snapshotBeforeChange(change) {
|
|
250
|
-
return change === stayInvalidChange || change === mendingChange ? invalidSnapshot : validSnapshot;
|
|
251
|
-
}
|
|
252
|
-
function snapshotAfterChange(change) {
|
|
253
|
-
return change === stayValidChange || change === mendingChange ? validSnapshot : invalidSnapshot;
|
|
254
|
-
}
|
|
255
|
-
const validSnapshot = 'valid-snapshot';
|
|
256
|
-
const invalidSnapshot = 'invalid-snapshot';
|
|
257
|
-
const priorOffendingChange = 'prior-offending-change';
|
|
258
|
-
const lastOffendingChange = 'last-offending-change';
|
|
259
|
-
const stayValidChange = 'stay-valid-change';
|
|
260
|
-
const stayInvalidChange = 'stay-invalid-change';
|
|
261
|
-
const mendingChange = 'mending-change';
|
|
262
|
-
const priorOffendingEdit = makeEdit([priorOffendingChange]);
|
|
263
|
-
const lastOffendingEdit = makeEdit([lastOffendingChange]);
|
|
264
|
-
const mendingEdit = makeEdit([mendingChange]);
|
|
265
|
-
const stayValidEdit = makeEdit([stayValidChange]);
|
|
266
|
-
const stayInvalidEdit = makeEdit([stayInvalidChange]);
|
|
267
|
-
const testWithPath = (path) => findLastOffendingChange(mockPlaceAnchor, path, {
|
|
268
|
-
placeValidator: (snapshot) => snapshot === invalidSnapshot
|
|
269
|
-
? EditValidationResult.Invalid
|
|
270
|
-
: snapshot === validSnapshot
|
|
271
|
-
? EditValidationResult.Valid
|
|
272
|
-
: fail(),
|
|
273
|
-
});
|
|
274
|
-
describe('returns undefined when the place is invalid throughout the path', () => {
|
|
275
|
-
const testCases = [
|
|
276
|
-
[],
|
|
277
|
-
[stayInvalidEdit],
|
|
278
|
-
[stayInvalidEdit, stayInvalidEdit, stayInvalidEdit],
|
|
279
|
-
[makeEdit([stayInvalidChange, stayInvalidChange, stayInvalidChange])],
|
|
280
|
-
];
|
|
281
|
-
for (let i = 0; i < testCases.length; ++i) {
|
|
282
|
-
it(`Test Case ${i}`, () => {
|
|
283
|
-
expect(testWithPath(testCases[i])).equals(undefined);
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
describe('returns the last offending change when there is one', () => {
|
|
288
|
-
const testCases = [
|
|
289
|
-
[lastOffendingEdit],
|
|
290
|
-
[lastOffendingEdit, stayInvalidEdit],
|
|
291
|
-
[stayValidEdit, lastOffendingEdit],
|
|
292
|
-
[stayValidEdit, lastOffendingEdit, stayInvalidEdit],
|
|
293
|
-
[stayValidEdit, priorOffendingEdit, stayInvalidEdit, mendingEdit, lastOffendingEdit],
|
|
294
|
-
[stayValidEdit, priorOffendingEdit, stayInvalidEdit, mendingEdit, lastOffendingEdit, stayInvalidEdit],
|
|
295
|
-
[priorOffendingEdit, mendingEdit, priorOffendingEdit, mendingEdit, lastOffendingEdit],
|
|
296
|
-
[makeEdit([stayValidChange, lastOffendingChange])],
|
|
297
|
-
[makeEdit([lastOffendingChange, stayInvalidChange])],
|
|
298
|
-
[makeEdit([stayValidChange, lastOffendingChange, stayInvalidChange])],
|
|
299
|
-
[makeEdit([stayValidChange, priorOffendingChange, mendingChange, lastOffendingChange])],
|
|
300
|
-
[
|
|
301
|
-
makeEdit([
|
|
302
|
-
priorOffendingChange,
|
|
303
|
-
mendingChange,
|
|
304
|
-
priorOffendingChange,
|
|
305
|
-
mendingChange,
|
|
306
|
-
lastOffendingChange,
|
|
307
|
-
]),
|
|
308
|
-
],
|
|
309
|
-
[stayInvalidEdit, makeEdit([mendingChange, lastOffendingChange])],
|
|
310
|
-
];
|
|
311
|
-
for (let i = 0; i < testCases.length; ++i) {
|
|
312
|
-
it(`Test Case ${i}`, () => {
|
|
313
|
-
const actual = testWithPath(testCases[i]);
|
|
314
|
-
expect(actual).deep.equals({
|
|
315
|
-
before: validSnapshot,
|
|
316
|
-
after: invalidSnapshot,
|
|
317
|
-
change: lastOffendingChange,
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
});
|
|
323
|
-
describe(updateRelativePlaceAnchorForChange.name, () => {
|
|
324
|
-
const afterPrior = PlaceAnchor.after(priorSibling);
|
|
325
|
-
const beforeNext = PlaceAnchor.before(nextSibling);
|
|
326
|
-
const rangesInSitu = [
|
|
327
|
-
{
|
|
328
|
-
range: RangeAnchor.from(startAnchor).to(beforeNext),
|
|
329
|
-
trait: [left, nextSibling],
|
|
330
|
-
},
|
|
331
|
-
{
|
|
332
|
-
range: RangeAnchor.from(startAnchor).to(afterAnchor),
|
|
333
|
-
trait: [left],
|
|
334
|
-
},
|
|
335
|
-
{
|
|
336
|
-
range: RangeAnchor.from(startAnchor).to(endAnchor),
|
|
337
|
-
trait: [left],
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
range: RangeAnchor.from(beforeAnchor).to(beforeNext),
|
|
341
|
-
trait: [left, nextSibling],
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
range: RangeAnchor.from(beforeAnchor).to(afterAnchor),
|
|
345
|
-
trait: [left],
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
range: RangeAnchor.from(beforeAnchor).to(endAnchor),
|
|
349
|
-
trait: [left],
|
|
350
|
-
},
|
|
351
|
-
{
|
|
352
|
-
range: RangeAnchor.from(afterPrior).to(beforeNext),
|
|
353
|
-
trait: [priorSibling, left, nextSibling],
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
range: RangeAnchor.from(afterPrior).to(afterAnchor),
|
|
357
|
-
trait: [priorSibling, left],
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
range: RangeAnchor.from(afterPrior).to(endAnchor),
|
|
361
|
-
trait: [priorSibling, left],
|
|
362
|
-
},
|
|
363
|
-
];
|
|
364
|
-
function evaluateCase(caseIndex, anchor) {
|
|
365
|
-
const before = Snapshot.fromTree(Object.assign(Object.assign({}, parent), { traits: { [leftTraitLabel]: rangesInSitu[caseIndex].trait } }));
|
|
366
|
-
const filteredTrait = rangesInSitu[caseIndex].trait.filter((sibling) => sibling !== left);
|
|
367
|
-
const after = Snapshot.fromTree(Object.assign(Object.assign({}, parent), { traits: filteredTrait.length ? { [leftTraitLabel]: filteredTrait } : {} }));
|
|
368
|
-
const evaluatedChange = {
|
|
369
|
-
change: AnchoredChange.detach(rangesInSitu[caseIndex].range),
|
|
370
|
-
before,
|
|
371
|
-
after,
|
|
372
|
-
};
|
|
373
|
-
return updateRelativePlaceAnchorForChange(anchor, evaluatedChange);
|
|
374
|
-
}
|
|
375
|
-
describe('can update before(X) and after(X) when X is detached', () => {
|
|
376
|
-
for (let i = 0; i < rangesInSitu.length; ++i) {
|
|
377
|
-
it(`Test Case ${i}`, () => {
|
|
378
|
-
const expectedAfter = rangesInSitu[i].trait[0] === priorSibling ? afterPrior : startAnchor;
|
|
379
|
-
const expectedBefore = rangesInSitu[i].trait[rangesInSitu[i].trait.length - 1] === nextSibling
|
|
380
|
-
? beforeNext
|
|
381
|
-
: endAnchor;
|
|
382
|
-
expect(evaluateCase(i, afterAnchor)).deep.equals(expectedAfter);
|
|
383
|
-
expect(evaluateCase(i, beforeAnchor)).deep.equals(expectedBefore);
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
});
|
|
387
|
-
describe('does not update anchors for start and end of traits', () => {
|
|
388
|
-
for (let i = 0; i < rangesInSitu.length; ++i) {
|
|
389
|
-
it(`Test Case ${i}`, () => {
|
|
390
|
-
expect(evaluateCase(i, startAnchor)).equals(undefined);
|
|
391
|
-
expect(evaluateCase(i, endAnchor)).equals(undefined);
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
});
|
|
395
|
-
it('does not update anchors when the containing parent is deleted', () => {
|
|
396
|
-
const before = Snapshot.fromTree(initialTree);
|
|
397
|
-
const after = Snapshot.fromTree(Object.assign(Object.assign({}, initialTree), { traits: {} }));
|
|
398
|
-
const evaluatedChange = {
|
|
399
|
-
change: AnchoredChange.detach(RangeAnchor.only(parent)),
|
|
400
|
-
before,
|
|
401
|
-
after,
|
|
402
|
-
};
|
|
403
|
-
expect(updateRelativePlaceAnchorForChange(startAnchor, evaluatedChange)).equals(undefined);
|
|
404
|
-
expect(updateRelativePlaceAnchorForChange(endAnchor, evaluatedChange)).equals(undefined);
|
|
405
|
-
expect(updateRelativePlaceAnchorForChange(afterAnchor, evaluatedChange)).equals(undefined);
|
|
406
|
-
expect(updateRelativePlaceAnchorForChange(beforeAnchor, evaluatedChange)).equals(undefined);
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
});
|
|
410
|
-
//# sourceMappingURL=Anchors.glassBox.tests.js.map
|