@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SnapshotUtilities.js","sourceRoot":"","sources":["../src/SnapshotUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qCAAgE;AAKhE;;;;;;GAMG;AACH,SAAgB,yBAAyB,CAAC,QAAkB,EAAE,MAAc,EAAE,UAAU,GAAG,KAAK;IAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG;QAChB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC3B,CAAC;IACF,8BAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,UAAU,EAAE;QACf,uCACI,QAAQ,KACX,IAAI,MAAM;gBACT,OAAO,sBAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACrF,CAAC,IACA;KACF;IAED,uCACI,QAAQ,KACX,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IACpD;AACH,CAAC;AArBD,8DAqBC;AAED,oFAAoF;AACpF,SAAS,UAAU,CAClB,QAAkB,EAClB,MAAkD,EAClD,UAAU,GAAG,KAAK;IAElB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;QAC9C,IAAI,UAAU,EAAE;YACf,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACtC,GAAG;oBACF,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CACvD,CAAC;oBACF,OAAO,sBAAa,CAAC,IAA4B,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC1E,CAAC;gBACD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;SACH;aAAM;YACN,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACtC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBACrF,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;SACH;KACD;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,CAAS,EAAE,CAAS;IACxD,OAAO,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAFD,oDAEC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,CAAS,EAAE,CAAS;IAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,wCAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { copyPropertyIfDefined, memoizeGetter } from './Common';\nimport { NodeId, TraitLabel } from './Identifiers';\nimport { ChangeNode, TraitMap } from './generic';\nimport { Snapshot } from './Snapshot';\n\n/**\n * Converts a node in a snapshot to an equivalent `ChangeNode`.\n * @param snapshot - the snapshot in which the node exists\n * @param nodeId - the id of the node in the snapshot\n * @param lazyTraits - whether or not traits should be populated lazily.\n * If lazy, the subtrees under each trait will not be read until the trait is first accessed.\n */\nexport function getChangeNodeFromSnapshot(snapshot: Snapshot, nodeId: NodeId, lazyTraits = false): ChangeNode {\n\tconst node = snapshot.getSnapshotNode(nodeId);\n\tconst nodeData = {\n\t\tdefinition: node.definition,\n\t\tidentifier: node.identifier,\n\t};\n\tcopyPropertyIfDefined(node, nodeData, 'payload');\n\n\tif (lazyTraits) {\n\t\treturn {\n\t\t\t...nodeData,\n\t\t\tget traits() {\n\t\t\t\treturn memoizeGetter(this, 'traits', makeTraits(snapshot, node.traits, lazyTraits));\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t...nodeData,\n\t\ttraits: makeTraits(snapshot, node.traits, lazyTraits),\n\t};\n}\n\n/** Given the traits of a SnapshotNode, return the corresponding traits on a Node */\nfunction makeTraits(\n\tsnapshot: Snapshot,\n\ttraits: ReadonlyMap<TraitLabel, readonly NodeId[]>,\n\tlazyTraits = false\n): TraitMap<ChangeNode> {\n\tconst traitMap = {};\n\tfor (const [label, trait] of traits.entries()) {\n\t\tif (lazyTraits) {\n\t\t\tObject.defineProperty(traitMap, label, {\n\t\t\t\tget() {\n\t\t\t\t\tconst treeNodeTrait = trait.map((nodeId) =>\n\t\t\t\t\t\tgetChangeNodeFromSnapshot(snapshot, nodeId, lazyTraits)\n\t\t\t\t\t);\n\t\t\t\t\treturn memoizeGetter(this as TraitMap<ChangeNode>, label, treeNodeTrait);\n\t\t\t\t},\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t} else {\n\t\t\tObject.defineProperty(traitMap, label, {\n\t\t\t\tvalue: trait.map((nodeId) => getChangeNodeFromSnapshot(snapshot, nodeId, lazyTraits)),\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn traitMap;\n}\n\n/**\n * Compares finite numbers to form a strict partial ordering.\n *\n * Handles +/-0 like Map: -0 is equal to +0.\n *\n * Once https://github.com/qwertie/btree-typescript/pull/15 is merged, we can use the version of this function from it.\n */\nexport function compareFiniteNumbers(a: number, b: number): number {\n\treturn a - b;\n}\n\n/**\n * Compares strings lexically to form a strict partial ordering.\n * Once https://github.com/qwertie/btree-typescript/pull/15 is merged, we can use the version of this function from it.\n */\nexport function compareStrings(a: string, b: string): number {\n\treturn a > b ? 1 : a === b ? 0 : -1;\n}\n"]}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { Snapshot } from '../Snapshot';
|
|
6
|
-
import { Change, StablePlace, StableRange } from '../default-edits';
|
|
7
|
-
import { EditValidationResult } from '../Checkout';
|
|
8
|
-
import { NodeId } from '../Identifiers';
|
|
9
|
-
import { ReconciliationPath } from '../ReconciliationPath';
|
|
10
|
-
import { AnchoredChange, NodeAnchor, PlaceAnchor, RangeAnchor, RelativePlaceAnchor } from './PersistedTypes';
|
|
11
|
-
/**
|
|
12
|
-
* A change and the snapshots that precede and succeed it.
|
|
13
|
-
*/
|
|
14
|
-
export interface EvaluatedChange<TChange> {
|
|
15
|
-
readonly change: TChange;
|
|
16
|
-
/**
|
|
17
|
-
* The snapshot before the change was applied.
|
|
18
|
-
*/
|
|
19
|
-
readonly before: Snapshot;
|
|
20
|
-
/**
|
|
21
|
-
* The snapshot after the change was applied.
|
|
22
|
-
*/
|
|
23
|
-
readonly after: Snapshot;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Object that includes a function for resolving node anchors.
|
|
27
|
-
*/
|
|
28
|
-
export interface HasNodeResolver {
|
|
29
|
-
nodeResolver: (node: NodeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => NodeId | undefined;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Object that includes a function for resolving place anchors.
|
|
33
|
-
*/
|
|
34
|
-
export interface HasPlaceResolver {
|
|
35
|
-
placeResolver: (range: PlaceAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => StablePlace | undefined;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Object that includes a function for resolving range anchors.
|
|
39
|
-
*/
|
|
40
|
-
export interface HasRangeResolver {
|
|
41
|
-
rangeResolver: (range: RangeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => StableRange | undefined;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Object that includes a function for validating places.
|
|
45
|
-
*/
|
|
46
|
-
export interface HasPlaceValidator {
|
|
47
|
-
placeValidator: (snapshot: Snapshot, place: StablePlace) => EditValidationResult;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Reconciliates a given `change` in the face of concurrent edits described in a `ReconciliationPath`.
|
|
51
|
-
* @param change - The anchor to reconciliate.
|
|
52
|
-
* @param before - The state to which the `change` would be applied to.
|
|
53
|
-
* @param path - The reconciliation path for the `change`.
|
|
54
|
-
* @returns A `Change` that satisfies the same semantics of the given `change` but whose tree locations are valid in the `before` snapshot.
|
|
55
|
-
* Undefined if no such change can be produced.
|
|
56
|
-
* @internal
|
|
57
|
-
*/
|
|
58
|
-
export declare function resolveChangeAnchors(change: AnchoredChange, before: Snapshot, path: ReconciliationPath<AnchoredChange>): Change | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* For testing purposes only.
|
|
61
|
-
* @internal
|
|
62
|
-
*/
|
|
63
|
-
export declare function resolveChangeAnchors(change: AnchoredChange, before: Snapshot, path: ReconciliationPath<AnchoredChange>, dependencies?: HasNodeResolver & HasPlaceResolver & HasRangeResolver): Change | undefined;
|
|
64
|
-
/**
|
|
65
|
-
* Resolves a given `node` anchor in the face of a `ReconciliationPath`.
|
|
66
|
-
* @param node - The anchor to resolve.
|
|
67
|
-
* @param before - The state to which the change that the `node` anchor should be applied to.
|
|
68
|
-
* @param path - The reconciliation path for the change that the `node` is part of.
|
|
69
|
-
* @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.
|
|
70
|
-
* @internal
|
|
71
|
-
*/
|
|
72
|
-
export declare function resolveNodeAnchor(node: NodeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>): NodeId | undefined;
|
|
73
|
-
/**
|
|
74
|
-
* Resolves a given `range` anchor in the face of a `ReconciliationPath`.
|
|
75
|
-
* @param range - The anchor to resolve.
|
|
76
|
-
* @param before - The state to which the change that the `range` anchor should be applied to.
|
|
77
|
-
* @param path - The reconciliation path for the change that the `range` is part of.
|
|
78
|
-
* @returns A matching `StableRange` that is valid in the snapshot at the end of the `path`. Undefined if no such valid range exists.
|
|
79
|
-
* @internal
|
|
80
|
-
*/
|
|
81
|
-
export declare function resolveRangeAnchor(range: RangeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>): StableRange | undefined;
|
|
82
|
-
/**
|
|
83
|
-
* For testing purposes only.
|
|
84
|
-
* @internal
|
|
85
|
-
*/
|
|
86
|
-
export declare function resolveRangeAnchor(range: RangeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>, dependencies?: HasPlaceResolver & {
|
|
87
|
-
rangeValidator: (snapshot: Snapshot, range: StableRange) => EditValidationResult;
|
|
88
|
-
}): StableRange | undefined;
|
|
89
|
-
/**
|
|
90
|
-
* Resolves a given `place` anchor in the face of a `ReconciliationPath`.
|
|
91
|
-
* @param place - The anchor to resolve.
|
|
92
|
-
* @param before - The state to which the change that the `place` anchor should be applied to.
|
|
93
|
-
* @param path - The reconciliation path for the change that the `place` is part of.
|
|
94
|
-
* @returns A matching `StablePlace` that is valid in the snapshot at the end of the `path`. Undefined if no such valid place exists.
|
|
95
|
-
* @internal
|
|
96
|
-
*/
|
|
97
|
-
export declare function resolvePlaceAnchor(place: PlaceAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>): StablePlace | undefined;
|
|
98
|
-
/**
|
|
99
|
-
* For testing purposes only.
|
|
100
|
-
* @internal
|
|
101
|
-
*/
|
|
102
|
-
export declare function resolvePlaceAnchor(place: PlaceAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>, dependencies?: HasPlaceValidator & {
|
|
103
|
-
placeUpdatorForPath: (place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>) => PlaceAnchor | undefined;
|
|
104
|
-
}): StablePlace | undefined;
|
|
105
|
-
/**
|
|
106
|
-
* Updates a given `place` anchor in the face of a `ReconciliationPath` that violates its semantics.
|
|
107
|
-
* @param place - The anchor to update. Assumed to be invalid after the latest change.
|
|
108
|
-
* @param path - The sequence of edits that violates the anchor's semantics.
|
|
109
|
-
* @returns A place anchor whose semantics are inline with the given `place`, and valid after the most recent change that made it invalid.
|
|
110
|
-
* Undefined if those semantics cannot be preserved.
|
|
111
|
-
* @internal
|
|
112
|
-
*/
|
|
113
|
-
export declare function updateRelativePlaceAnchorForPath(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>): PlaceAnchor | undefined;
|
|
114
|
-
/**
|
|
115
|
-
* For testing purposes only.
|
|
116
|
-
* @internal
|
|
117
|
-
*/
|
|
118
|
-
export declare function updateRelativePlaceAnchorForPath(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>, dependencies?: {
|
|
119
|
-
lastOffendingChangeFinder: (place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>) => EvaluatedChange<AnchoredChange> | undefined;
|
|
120
|
-
placeUpdatorForChange: (place: RelativePlaceAnchor, change: EvaluatedChange<AnchoredChange>) => PlaceAnchor | undefined;
|
|
121
|
-
}): PlaceAnchor | undefined;
|
|
122
|
-
/**
|
|
123
|
-
* Finds the latest change in the given `path` that last made the given `place` invalid.
|
|
124
|
-
* @param place - A anchor that is invalid in the last snapshot on the path.
|
|
125
|
-
* @param path - The sequence of edits that violates the anchor's semantics.
|
|
126
|
-
* @returns The change that last made the given `place` invalid and the snapshots before and after it. Undefined if `place` was never valid.
|
|
127
|
-
* @internal
|
|
128
|
-
*/
|
|
129
|
-
export declare function findLastOffendingChange(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>): EvaluatedChange<AnchoredChange> | undefined;
|
|
130
|
-
/**
|
|
131
|
-
* For testing purposes only.
|
|
132
|
-
* @internal
|
|
133
|
-
*/
|
|
134
|
-
export declare function findLastOffendingChange(place: RelativePlaceAnchor, path: ReconciliationPath<AnchoredChange>, dependencies?: HasPlaceValidator): EvaluatedChange<AnchoredChange> | undefined;
|
|
135
|
-
/**
|
|
136
|
-
* Updates a given `place` anchor in the face of a change that violates its semantics.
|
|
137
|
-
* @param place - The anchor to update.
|
|
138
|
-
* @param change - The change that violates the anchor's semantics.
|
|
139
|
-
* @returns A place anchor that is valid after the given `change` and in line with the original `place`'s semantics.
|
|
140
|
-
* Undefined if those semantics cannot be preserved.
|
|
141
|
-
* @internal
|
|
142
|
-
*/
|
|
143
|
-
export declare function updateRelativePlaceAnchorForChange(place: RelativePlaceAnchor, change: EvaluatedChange<AnchoredChange>): PlaceAnchor | undefined;
|
|
144
|
-
//# sourceMappingURL=AnchorResolution.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorResolution.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/AnchorResolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.updateRelativePlaceAnchorForChange = exports.findLastOffendingChange = exports.updateRelativePlaceAnchorForPath = exports.resolvePlaceAnchor = exports.resolveRangeAnchor = exports.resolveNodeAnchor = exports.resolveChangeAnchors = void 0;
|
|
8
|
-
const Snapshot_1 = require("../Snapshot");
|
|
9
|
-
const default_edits_1 = require("../default-edits");
|
|
10
|
-
const Common_1 = require("../Common");
|
|
11
|
-
const Checkout_1 = require("../Checkout");
|
|
12
|
-
const PersistedTypes_1 = require("./PersistedTypes");
|
|
13
|
-
function resolveChangeAnchors(change, before, path, { nodeResolver, placeResolver, rangeResolver } = {
|
|
14
|
-
nodeResolver: resolveNodeAnchor,
|
|
15
|
-
placeResolver: resolvePlaceAnchor,
|
|
16
|
-
rangeResolver: resolveRangeAnchor,
|
|
17
|
-
}) {
|
|
18
|
-
switch (change.type) {
|
|
19
|
-
case default_edits_1.ChangeType.Build:
|
|
20
|
-
return change;
|
|
21
|
-
case default_edits_1.ChangeType.Insert: {
|
|
22
|
-
const destination = placeResolver(change.destination, before, path);
|
|
23
|
-
return destination !== undefined ? Object.assign(Object.assign({}, change), { destination }) : undefined;
|
|
24
|
-
}
|
|
25
|
-
case default_edits_1.ChangeType.Detach: {
|
|
26
|
-
const source = rangeResolver(change.source, before, path);
|
|
27
|
-
return source !== undefined ? Object.assign(Object.assign({}, change), { source }) : undefined;
|
|
28
|
-
}
|
|
29
|
-
case default_edits_1.ChangeType.Constraint: {
|
|
30
|
-
const toConstrain = rangeResolver(change.toConstrain, before, path);
|
|
31
|
-
return toConstrain !== undefined ? Object.assign(Object.assign({}, change), { toConstrain }) : undefined;
|
|
32
|
-
}
|
|
33
|
-
case default_edits_1.ChangeType.SetValue: {
|
|
34
|
-
const nodeToModify = nodeResolver(change.nodeToModify, before, path);
|
|
35
|
-
return nodeToModify !== undefined ? Object.assign(Object.assign({}, change), { nodeToModify }) : undefined;
|
|
36
|
-
}
|
|
37
|
-
default:
|
|
38
|
-
return Common_1.fail('Attempted to reconciliate unsupported change');
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.resolveChangeAnchors = resolveChangeAnchors;
|
|
42
|
-
/**
|
|
43
|
-
* Resolves a given `node` anchor in the face of a `ReconciliationPath`.
|
|
44
|
-
* @param node - The anchor to resolve.
|
|
45
|
-
* @param before - The state to which the change that the `node` anchor should be applied to.
|
|
46
|
-
* @param path - The reconciliation path for the change that the `node` is part of.
|
|
47
|
-
* @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.
|
|
48
|
-
* @internal
|
|
49
|
-
*/
|
|
50
|
-
function resolveNodeAnchor(node, before, path) {
|
|
51
|
-
return before.hasNode(node) ? node : undefined;
|
|
52
|
-
}
|
|
53
|
-
exports.resolveNodeAnchor = resolveNodeAnchor;
|
|
54
|
-
function resolveRangeAnchor(range, before, path, { placeResolver, rangeValidator, } = {
|
|
55
|
-
placeResolver: resolvePlaceAnchor,
|
|
56
|
-
rangeValidator: default_edits_1.validateStableRange,
|
|
57
|
-
}) {
|
|
58
|
-
const start = placeResolver(range.start, before, path);
|
|
59
|
-
if (start !== undefined) {
|
|
60
|
-
const end = placeResolver(range.end, before, path);
|
|
61
|
-
if (end !== undefined) {
|
|
62
|
-
const resolvedRange = {
|
|
63
|
-
start,
|
|
64
|
-
end,
|
|
65
|
-
};
|
|
66
|
-
return rangeValidator(before, resolvedRange) === Checkout_1.EditValidationResult.Valid ? resolvedRange : undefined;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
exports.resolveRangeAnchor = resolveRangeAnchor;
|
|
72
|
-
function resolvePlaceAnchor(place, before, path, { placeValidator, placeUpdatorForPath, } = {
|
|
73
|
-
placeValidator: default_edits_1.validateStablePlace,
|
|
74
|
-
placeUpdatorForPath: updateRelativePlaceAnchorForPath,
|
|
75
|
-
}) {
|
|
76
|
-
let newPlace = place;
|
|
77
|
-
while (newPlace !== undefined && placeValidator(before, newPlace) !== Checkout_1.EditValidationResult.Valid) {
|
|
78
|
-
switch (newPlace.semantics) {
|
|
79
|
-
case PersistedTypes_1.PlaceAnchorSemanticsChoice.RelativeToNode: {
|
|
80
|
-
newPlace = placeUpdatorForPath(newPlace, path);
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
case PersistedTypes_1.PlaceAnchorSemanticsChoice.BoundToNode:
|
|
84
|
-
case undefined:
|
|
85
|
-
// There's nothing we can do to fix this place
|
|
86
|
-
newPlace = undefined;
|
|
87
|
-
break;
|
|
88
|
-
default:
|
|
89
|
-
Common_1.fail('Unsupported choice of PlaceAnchorSemanticsChoice');
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return newPlace;
|
|
93
|
-
}
|
|
94
|
-
exports.resolvePlaceAnchor = resolvePlaceAnchor;
|
|
95
|
-
function updateRelativePlaceAnchorForPath(place, path, { lastOffendingChangeFinder, placeUpdatorForChange, } = {
|
|
96
|
-
lastOffendingChangeFinder: findLastOffendingChange,
|
|
97
|
-
placeUpdatorForChange: updateRelativePlaceAnchorForChange,
|
|
98
|
-
}) {
|
|
99
|
-
if (place.referenceSibling === undefined) {
|
|
100
|
-
// Start and end places cannot be updated.
|
|
101
|
-
return undefined;
|
|
102
|
-
}
|
|
103
|
-
const lastOffendingChange = lastOffendingChangeFinder(place, path);
|
|
104
|
-
return lastOffendingChange === undefined ? undefined : placeUpdatorForChange(place, lastOffendingChange);
|
|
105
|
-
}
|
|
106
|
-
exports.updateRelativePlaceAnchorForPath = updateRelativePlaceAnchorForPath;
|
|
107
|
-
function findLastOffendingChange(place, path, { placeValidator } = {
|
|
108
|
-
placeValidator: default_edits_1.validateStablePlace,
|
|
109
|
-
}) {
|
|
110
|
-
let followingChange;
|
|
111
|
-
for (let editIndex = path.length - 1; editIndex >= 0; --editIndex) {
|
|
112
|
-
const edit = path[editIndex];
|
|
113
|
-
for (let changeIndex = edit.length - 1; changeIndex >= 0; --changeIndex) {
|
|
114
|
-
const change = edit[changeIndex];
|
|
115
|
-
const placeStatusAfterChange = placeValidator(change.after, place);
|
|
116
|
-
if (placeStatusAfterChange === Checkout_1.EditValidationResult.Valid) {
|
|
117
|
-
return Object.assign({ before: change.after }, Common_1.assertNotUndefined(followingChange, 'The last change should not make the place valid'));
|
|
118
|
-
}
|
|
119
|
-
followingChange = {
|
|
120
|
-
change: change.resolvedChange,
|
|
121
|
-
after: change.after,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return path.length > 0 && placeValidator(path[0].before, place) === Checkout_1.EditValidationResult.Valid
|
|
126
|
-
? Object.assign({ before: path[0].before }, Common_1.assertNotUndefined(followingChange, 'The last change should not make the place valid')) : // The place was never valid
|
|
127
|
-
undefined;
|
|
128
|
-
}
|
|
129
|
-
exports.findLastOffendingChange = findLastOffendingChange;
|
|
130
|
-
function updateRelativePlaceAnchorForChange(place, { change, before }) {
|
|
131
|
-
if (place.referenceSibling === undefined) {
|
|
132
|
-
// A start or end place cannot be further updated
|
|
133
|
-
return undefined;
|
|
134
|
-
}
|
|
135
|
-
Common_1.assert(change.type === default_edits_1.ChangeType.Detach, 'A PlaceAnchor can only be made invalid by a detach change');
|
|
136
|
-
const targetPlace = default_edits_1.placeFromStablePlace(before, place);
|
|
137
|
-
const startPlace = default_edits_1.placeFromStablePlace(before, change.source.start);
|
|
138
|
-
const endPlace = default_edits_1.placeFromStablePlace(before, change.source.end);
|
|
139
|
-
if (targetPlace.trait.parent !== startPlace.trait.parent) {
|
|
140
|
-
// The target place was detached indirectly by detaching its parent.
|
|
141
|
-
// The anchor cannot recover.
|
|
142
|
-
return undefined;
|
|
143
|
-
}
|
|
144
|
-
let newIndex;
|
|
145
|
-
if (targetPlace.side === Snapshot_1.Side.After) {
|
|
146
|
-
newIndex = before.findIndexWithinTrait(startPlace) - 1;
|
|
147
|
-
}
|
|
148
|
-
if (targetPlace.side === Snapshot_1.Side.Before) {
|
|
149
|
-
newIndex = before.findIndexWithinTrait(endPlace);
|
|
150
|
-
}
|
|
151
|
-
const referenceTrait = targetPlace.trait;
|
|
152
|
-
const parentNode = before.getSnapshotNode(referenceTrait.parent);
|
|
153
|
-
const traits = new Map(parentNode.traits);
|
|
154
|
-
const trait = Common_1.assertNotUndefined(traits.get(referenceTrait.label), 'The trait must have been populated before the deletion');
|
|
155
|
-
const referenceSibling = trait[newIndex];
|
|
156
|
-
if (referenceSibling === undefined) {
|
|
157
|
-
return { referenceTrait, side: place.side, semantics: place.semantics };
|
|
158
|
-
}
|
|
159
|
-
return { referenceSibling, side: place.side, semantics: place.semantics };
|
|
160
|
-
}
|
|
161
|
-
exports.updateRelativePlaceAnchorForChange = updateRelativePlaceAnchorForChange;
|
|
162
|
-
//# sourceMappingURL=AnchorResolution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnchorResolution.js","sourceRoot":"","sources":["../../src/anchored-edits/AnchorResolution.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,0CAA6C;AAC7C,oDAQ0B;AAC1B,sCAA6D;AAC7D,0CAAmD;AAGnD,qDAO0B;AA+E1B,SAAgB,oBAAoB,CACnC,MAAsB,EACtB,MAAgB,EAChB,IAAwC,EACxC,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,KAA4D;IACvG,YAAY,EAAE,iBAAiB;IAC/B,aAAa,EAAE,kBAAkB;IACjC,aAAa,EAAE,kBAAkB;CACjC;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE;QACpB,KAAK,0BAAU,CAAC,KAAK;YACpB,OAAO,MAAM,CAAC;QACf,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,WAAW,IAAG,CAAC,CAAC,SAAS,CAAC;SAC1E;QACD,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,MAAM,IAAG,CAAC,CAAC,SAAS,CAAC;SAChE;QACD,KAAK,0BAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,WAAW,IAAG,CAAC,CAAC,SAAS,CAAC;SAC1E;QACD,KAAK,0BAAU,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,iCAAM,MAAM,KAAE,YAAY,IAAG,CAAC,CAAC,SAAS,CAAC;SAC5E;QACD;YACC,OAAO,aAAI,CAAC,8CAA8C,CAAC,CAAC;KAC7D;AACF,CAAC;AAhCD,oDAgCC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAChC,IAAgB,EAChB,MAAgB,EAChB,IAAwC;IAExC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAND,8CAMC;AA6BD,SAAgB,kBAAkB,CACjC,KAAkB,EAClB,MAAgB,EAChB,IAAwC,EACxC,EACC,aAAa,EACb,cAAc,MAGX;IACH,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,mCAAmB;CACnC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,KAAK,KAAK,SAAS,EAAE;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,GAAG,KAAK,SAAS,EAAE;YACtB,MAAM,aAAa,GAAG;gBACrB,KAAK;gBACL,GAAG;aACH,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,+BAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;SACxG;KACD;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AA1BD,gDA0BC;AAgCD,SAAgB,kBAAkB,CACjC,KAAkB,EAClB,MAAgB,EAChB,IAAwC,EACxC,EACC,cAAc,EACd,mBAAmB,MAMhB;IACH,cAAc,EAAE,mCAAmB;IACnC,mBAAmB,EAAE,gCAAgC;CACrD;IAED,IAAI,QAAQ,GAA4B,KAAK,CAAC;IAC9C,OAAO,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,+BAAoB,CAAC,KAAK,EAAE;QACjG,QAAQ,QAAQ,CAAC,SAAS,EAAE;YAC3B,KAAK,2CAA0B,CAAC,cAAc,CAAC,CAAC;gBAC/C,QAAQ,GAAG,mBAAmB,CAAC,QAA+B,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM;aACN;YACD,KAAK,2CAA0B,CAAC,WAAW,CAAC;YAC5C,KAAK,SAAS;gBACb,8CAA8C;gBAC9C,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACP;gBACC,aAAI,CAAC,kDAAkD,CAAC,CAAC;SAC1D;KACD;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAlCD,gDAkCC;AAkCD,SAAgB,gCAAgC,CAC/C,KAA0B,EAC1B,IAAwC,EACxC,EACC,yBAAyB,EACzB,qBAAqB,MAUlB;IACH,yBAAyB,EAAE,uBAAuB;IAClD,qBAAqB,EAAE,kCAAkC;CACzD;IAED,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE;QACzC,0CAA0C;QAC1C,OAAO,SAAS,CAAC;KACjB;IACD,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAC1G,CAAC;AA1BD,4EA0BC;AAwBD,SAAgB,uBAAuB,CACtC,KAA0B,EAC1B,IAAwC,EACxC,EAAE,cAAc,KAAwB;IACvC,cAAc,EAAE,mCAAmB;CACnC;IAED,IAAI,eAAwE,CAAC;IAC7E,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,sBAAsB,KAAK,+BAAoB,CAAC,KAAK,EAAE;gBAC1D,uBACC,MAAM,EAAE,MAAM,CAAC,KAAK,IACjB,2BAAkB,CAAC,eAAe,EAAE,iDAAiD,CAAC,EACxF;aACF;YACD,eAAe,GAAG;gBACjB,MAAM,EAAE,MAAM,CAAC,cAAc;gBAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;aACnB,CAAC;SACF;KACD;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,+BAAoB,CAAC,KAAK;QAC7F,CAAC,iBACC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IACnB,2BAAkB,CAAC,eAAe,EAAE,iDAAiD,CAAC,EAE3F,CAAC,CAAC,4BAA4B;QAC5B,SAAS,CAAC;AACd,CAAC;AAhCD,0DAgCC;AAeD,SAAgB,kCAAkC,CACjD,KAA0B,EAC1B,EAAE,MAAM,EAAE,MAAM,EAAmC;IAEnD,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE;QACzC,iDAAiD;QACjD,OAAO,SAAS,CAAC;KACjB;IACD,eAAM,CAAC,MAAM,CAAC,IAAI,KAAK,0BAAU,CAAC,MAAM,EAAE,2DAA2D,CAAC,CAAC;IACvG,MAAM,WAAW,GAAG,oCAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,oCAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,oCAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;QACzD,oEAAoE;QACpE,6BAA6B;QAC7B,OAAO,SAAS,CAAC;KACjB;IACD,IAAI,QAAQ,CAAC;IACb,IAAI,WAAW,CAAC,IAAI,KAAK,eAAI,CAAC,KAAK,EAAE;QACpC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KACvD;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,eAAI,CAAC,MAAM,EAAE;QACrC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KACjD;IACD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,2BAAkB,CAC/B,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAChC,wDAAwD,CACxD,CAAC;IACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,gBAAgB,KAAK,SAAS,EAAE;QACnC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;KACxE;IACD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC3E,CAAC;AApCD,gFAoCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Side, Snapshot } from '../Snapshot';\nimport {\n\tChange,\n\tChangeType,\n\tplaceFromStablePlace,\n\tStablePlace,\n\tStableRange,\n\tvalidateStablePlace,\n\tvalidateStableRange,\n} from '../default-edits';\nimport { assert, assertNotUndefined, fail } from '../Common';\nimport { EditValidationResult } from '../Checkout';\nimport { NodeId } from '../Identifiers';\nimport { ReconciliationPath } from '../ReconciliationPath';\nimport {\n\tAnchoredChange,\n\tNodeAnchor,\n\tPlaceAnchor,\n\tPlaceAnchorSemanticsChoice,\n\tRangeAnchor,\n\tRelativePlaceAnchor,\n} from './PersistedTypes';\n\n/**\n * A change and the snapshots that precede and succeed it.\n */\nexport interface EvaluatedChange<TChange> {\n\treadonly change: TChange;\n\t/**\n\t * The snapshot before the change was applied.\n\t */\n\treadonly before: Snapshot;\n\t/**\n\t * The snapshot after the change was applied.\n\t */\n\treadonly after: Snapshot;\n}\n\n/**\n * Object that includes a function for resolving node anchors.\n */\nexport interface HasNodeResolver {\n\tnodeResolver: (node: NodeAnchor, before: Snapshot, path: ReconciliationPath<AnchoredChange>) => NodeId | undefined;\n}\n\n/**\n * Object that includes a function for resolving place anchors.\n */\nexport interface HasPlaceResolver {\n\tplaceResolver: (\n\t\trange: PlaceAnchor,\n\t\tbefore: Snapshot,\n\t\tpath: ReconciliationPath<AnchoredChange>\n\t) => StablePlace | undefined;\n}\n\n/**\n * Object that includes a function for resolving range anchors.\n */\nexport interface HasRangeResolver {\n\trangeResolver: (\n\t\trange: RangeAnchor,\n\t\tbefore: Snapshot,\n\t\tpath: ReconciliationPath<AnchoredChange>\n\t) => StableRange | undefined;\n}\n\n/**\n * Object that includes a function for validating places.\n */\nexport interface HasPlaceValidator {\n\tplaceValidator: (snapshot: Snapshot, place: StablePlace) => EditValidationResult;\n}\n\n/**\n * Reconciliates a given `change` in the face of concurrent edits described in a `ReconciliationPath`.\n * @param change - The anchor to reconciliate.\n * @param before - The state to which the `change` would be applied to.\n * @param path - The reconciliation path for the `change`.\n * @returns A `Change` that satisfies the same semantics of the given `change` but whose tree locations are valid in the `before` snapshot.\n * Undefined if no such change can be produced.\n * @internal\n */\nexport function resolveChangeAnchors(\n\tchange: AnchoredChange,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): Change | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function resolveChangeAnchors(\n\tchange: AnchoredChange,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasNodeResolver & HasPlaceResolver & HasRangeResolver\n): Change | undefined;\n\nexport function resolveChangeAnchors(\n\tchange: AnchoredChange,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{ nodeResolver, placeResolver, rangeResolver }: HasNodeResolver & HasPlaceResolver & HasRangeResolver = {\n\t\tnodeResolver: resolveNodeAnchor,\n\t\tplaceResolver: resolvePlaceAnchor,\n\t\trangeResolver: resolveRangeAnchor,\n\t}\n): Change | undefined {\n\tswitch (change.type) {\n\t\tcase ChangeType.Build:\n\t\t\treturn change;\n\t\tcase ChangeType.Insert: {\n\t\t\tconst destination = placeResolver(change.destination, before, path);\n\t\t\treturn destination !== undefined ? { ...change, destination } : undefined;\n\t\t}\n\t\tcase ChangeType.Detach: {\n\t\t\tconst source = rangeResolver(change.source, before, path);\n\t\t\treturn source !== undefined ? { ...change, source } : undefined;\n\t\t}\n\t\tcase ChangeType.Constraint: {\n\t\t\tconst toConstrain = rangeResolver(change.toConstrain, before, path);\n\t\t\treturn toConstrain !== undefined ? { ...change, toConstrain } : undefined;\n\t\t}\n\t\tcase ChangeType.SetValue: {\n\t\t\tconst nodeToModify = nodeResolver(change.nodeToModify, before, path);\n\t\t\treturn nodeToModify !== undefined ? { ...change, nodeToModify } : undefined;\n\t\t}\n\t\tdefault:\n\t\t\treturn fail('Attempted to reconciliate unsupported change');\n\t}\n}\n\n/**\n * Resolves a given `node` anchor in the face of a `ReconciliationPath`.\n * @param node - The anchor to resolve.\n * @param before - The state to which the change that the `node` anchor should be applied to.\n * @param path - The reconciliation path for the change that the `node` is part of.\n * @returns A matching `NodeId` that is valid in the snapshot at the end of the `path`. Undefined if no such node exists.\n * @internal\n */\nexport function resolveNodeAnchor(\n\tnode: NodeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): NodeId | undefined {\n\treturn before.hasNode(node) ? node : undefined;\n}\n\n/**\n * Resolves a given `range` anchor in the face of a `ReconciliationPath`.\n * @param range - The anchor to resolve.\n * @param before - The state to which the change that the `range` anchor should be applied to.\n * @param path - The reconciliation path for the change that the `range` is part of.\n * @returns A matching `StableRange` that is valid in the snapshot at the end of the `path`. Undefined if no such valid range exists.\n * @internal\n */\nexport function resolveRangeAnchor(\n\trange: RangeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): StableRange | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function resolveRangeAnchor(\n\trange: RangeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasPlaceResolver & {\n\t\trangeValidator: (snapshot: Snapshot, range: StableRange) => EditValidationResult;\n\t}\n): StableRange | undefined;\n\nexport function resolveRangeAnchor(\n\trange: RangeAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{\n\t\tplaceResolver,\n\t\trangeValidator,\n\t}: HasPlaceResolver & {\n\t\trangeValidator: (snapshot: Snapshot, range: StableRange) => EditValidationResult;\n\t} = {\n\t\tplaceResolver: resolvePlaceAnchor,\n\t\trangeValidator: validateStableRange,\n\t}\n): StableRange | undefined {\n\tconst start = placeResolver(range.start, before, path);\n\tif (start !== undefined) {\n\t\tconst end = placeResolver(range.end, before, path);\n\t\tif (end !== undefined) {\n\t\t\tconst resolvedRange = {\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t};\n\t\t\treturn rangeValidator(before, resolvedRange) === EditValidationResult.Valid ? resolvedRange : undefined;\n\t\t}\n\t}\n\treturn undefined;\n}\n\n/**\n * Resolves a given `place` anchor in the face of a `ReconciliationPath`.\n * @param place - The anchor to resolve.\n * @param before - The state to which the change that the `place` anchor should be applied to.\n * @param path - The reconciliation path for the change that the `place` is part of.\n * @returns A matching `StablePlace` that is valid in the snapshot at the end of the `path`. Undefined if no such valid place exists.\n * @internal\n */\nexport function resolvePlaceAnchor(\n\tplace: PlaceAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>\n): StablePlace | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function resolvePlaceAnchor(\n\tplace: PlaceAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasPlaceValidator & {\n\t\tplaceUpdatorForPath: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t}\n): StablePlace | undefined;\n\nexport function resolvePlaceAnchor(\n\tplace: PlaceAnchor,\n\tbefore: Snapshot,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{\n\t\tplaceValidator,\n\t\tplaceUpdatorForPath,\n\t}: HasPlaceValidator & {\n\t\tplaceUpdatorForPath: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t} = {\n\t\tplaceValidator: validateStablePlace,\n\t\tplaceUpdatorForPath: updateRelativePlaceAnchorForPath,\n\t}\n): StablePlace | undefined {\n\tlet newPlace: PlaceAnchor | undefined = place;\n\twhile (newPlace !== undefined && placeValidator(before, newPlace) !== EditValidationResult.Valid) {\n\t\tswitch (newPlace.semantics) {\n\t\t\tcase PlaceAnchorSemanticsChoice.RelativeToNode: {\n\t\t\t\tnewPlace = placeUpdatorForPath(newPlace as RelativePlaceAnchor, path);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PlaceAnchorSemanticsChoice.BoundToNode:\n\t\t\tcase undefined:\n\t\t\t\t// There's nothing we can do to fix this place\n\t\t\t\tnewPlace = undefined;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tfail('Unsupported choice of PlaceAnchorSemanticsChoice');\n\t\t}\n\t}\n\treturn newPlace;\n}\n\n/**\n * Updates a given `place` anchor in the face of a `ReconciliationPath` that violates its semantics.\n * @param place - The anchor to update. Assumed to be invalid after the latest change.\n * @param path - The sequence of edits that violates the anchor's semantics.\n * @returns A place anchor whose semantics are inline with the given `place`, and valid after the most recent change that made it invalid.\n * Undefined if those semantics cannot be preserved.\n * @internal\n */\nexport function updateRelativePlaceAnchorForPath(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>\n): PlaceAnchor | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function updateRelativePlaceAnchorForPath(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: {\n\t\tlastOffendingChangeFinder: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => EvaluatedChange<AnchoredChange> | undefined;\n\t\tplaceUpdatorForChange: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tchange: EvaluatedChange<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t}\n): PlaceAnchor | undefined;\n\nexport function updateRelativePlaceAnchorForPath(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{\n\t\tlastOffendingChangeFinder,\n\t\tplaceUpdatorForChange,\n\t}: {\n\t\tlastOffendingChangeFinder: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tpath: ReconciliationPath<AnchoredChange>\n\t\t) => EvaluatedChange<AnchoredChange> | undefined;\n\t\tplaceUpdatorForChange: (\n\t\t\tplace: RelativePlaceAnchor,\n\t\t\tchange: EvaluatedChange<AnchoredChange>\n\t\t) => PlaceAnchor | undefined;\n\t} = {\n\t\tlastOffendingChangeFinder: findLastOffendingChange,\n\t\tplaceUpdatorForChange: updateRelativePlaceAnchorForChange,\n\t}\n): PlaceAnchor | undefined {\n\tif (place.referenceSibling === undefined) {\n\t\t// Start and end places cannot be updated.\n\t\treturn undefined;\n\t}\n\tconst lastOffendingChange = lastOffendingChangeFinder(place, path);\n\treturn lastOffendingChange === undefined ? undefined : placeUpdatorForChange(place, lastOffendingChange);\n}\n\n/**\n * Finds the latest change in the given `path` that last made the given `place` invalid.\n * @param place - A anchor that is invalid in the last snapshot on the path.\n * @param path - The sequence of edits that violates the anchor's semantics.\n * @returns The change that last made the given `place` invalid and the snapshots before and after it. Undefined if `place` was never valid.\n * @internal\n */\nexport function findLastOffendingChange(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>\n): EvaluatedChange<AnchoredChange> | undefined;\n\n/**\n * For testing purposes only.\n * @internal\n */\nexport function findLastOffendingChange(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\tdependencies?: HasPlaceValidator\n): EvaluatedChange<AnchoredChange> | undefined;\n\nexport function findLastOffendingChange(\n\tplace: RelativePlaceAnchor,\n\tpath: ReconciliationPath<AnchoredChange>,\n\t{ placeValidator }: HasPlaceValidator = {\n\t\tplaceValidator: validateStablePlace,\n\t}\n): EvaluatedChange<AnchoredChange> | undefined {\n\tlet followingChange: { change: AnchoredChange; after: Snapshot } | undefined;\n\tfor (let editIndex = path.length - 1; editIndex >= 0; --editIndex) {\n\t\tconst edit = path[editIndex];\n\t\tfor (let changeIndex = edit.length - 1; changeIndex >= 0; --changeIndex) {\n\t\t\tconst change = edit[changeIndex];\n\t\t\tconst placeStatusAfterChange = placeValidator(change.after, place);\n\t\t\tif (placeStatusAfterChange === EditValidationResult.Valid) {\n\t\t\t\treturn {\n\t\t\t\t\tbefore: change.after,\n\t\t\t\t\t...assertNotUndefined(followingChange, 'The last change should not make the place valid'),\n\t\t\t\t};\n\t\t\t}\n\t\t\tfollowingChange = {\n\t\t\t\tchange: change.resolvedChange,\n\t\t\t\tafter: change.after,\n\t\t\t};\n\t\t}\n\t}\n\treturn path.length > 0 && placeValidator(path[0].before, place) === EditValidationResult.Valid\n\t\t? {\n\t\t\t\tbefore: path[0].before,\n\t\t\t\t...assertNotUndefined(followingChange, 'The last change should not make the place valid'),\n\t\t }\n\t\t: // The place was never valid\n\t\t undefined;\n}\n\n/**\n * Updates a given `place` anchor in the face of a change that violates its semantics.\n * @param place - The anchor to update.\n * @param change - The change that violates the anchor's semantics.\n * @returns A place anchor that is valid after the given `change` and in line with the original `place`'s semantics.\n * Undefined if those semantics cannot be preserved.\n * @internal\n */\nexport function updateRelativePlaceAnchorForChange(\n\tplace: RelativePlaceAnchor,\n\tchange: EvaluatedChange<AnchoredChange>\n): PlaceAnchor | undefined;\n\nexport function updateRelativePlaceAnchorForChange(\n\tplace: RelativePlaceAnchor,\n\t{ change, before }: EvaluatedChange<AnchoredChange>\n): PlaceAnchor | undefined {\n\tif (place.referenceSibling === undefined) {\n\t\t// A start or end place cannot be further updated\n\t\treturn undefined;\n\t}\n\tassert(change.type === ChangeType.Detach, 'A PlaceAnchor can only be made invalid by a detach change');\n\tconst targetPlace = placeFromStablePlace(before, place);\n\tconst startPlace = placeFromStablePlace(before, change.source.start);\n\tconst endPlace = placeFromStablePlace(before, change.source.end);\n\tif (targetPlace.trait.parent !== startPlace.trait.parent) {\n\t\t// The target place was detached indirectly by detaching its parent.\n\t\t// The anchor cannot recover.\n\t\treturn undefined;\n\t}\n\tlet newIndex;\n\tif (targetPlace.side === Side.After) {\n\t\tnewIndex = before.findIndexWithinTrait(startPlace) - 1;\n\t}\n\tif (targetPlace.side === Side.Before) {\n\t\tnewIndex = before.findIndexWithinTrait(endPlace);\n\t}\n\tconst referenceTrait = targetPlace.trait;\n\tconst parentNode = before.getSnapshotNode(referenceTrait.parent);\n\tconst traits = new Map(parentNode.traits);\n\tconst trait = assertNotUndefined(\n\t\ttraits.get(referenceTrait.label),\n\t\t'The trait must have been populated before the deletion'\n\t);\n\tconst referenceSibling = trait[newIndex];\n\tif (referenceSibling === undefined) {\n\t\treturn { referenceTrait, side: place.side, semantics: place.semantics };\n\t}\n\treturn { referenceSibling, side: place.side, semantics: place.semantics };\n}\n"]}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { IChannelAttributes, IFluidDataStoreRuntime, IChannelServices, IChannelFactory } from '@fluidframework/datastore-definitions';
|
|
6
|
-
import { ISharedObject } from '@fluidframework/shared-object-base';
|
|
7
|
-
import { SharedTreeWithAnchors } from './SharedTreeWithAnchors';
|
|
8
|
-
/**
|
|
9
|
-
* Factory for SharedTreeWithAnchors.
|
|
10
|
-
* Includes history in the summary.
|
|
11
|
-
* @public
|
|
12
|
-
*/
|
|
13
|
-
export declare class SharedTreeWithAnchorsFactory implements IChannelFactory {
|
|
14
|
-
/**
|
|
15
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
|
|
16
|
-
*/
|
|
17
|
-
static Type: string;
|
|
18
|
-
/**
|
|
19
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
|
|
20
|
-
*/
|
|
21
|
-
static Attributes: IChannelAttributes;
|
|
22
|
-
/**
|
|
23
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
|
|
24
|
-
*/
|
|
25
|
-
get type(): string;
|
|
26
|
-
/**
|
|
27
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
|
|
28
|
-
*/
|
|
29
|
-
get attributes(): IChannelAttributes;
|
|
30
|
-
/**
|
|
31
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}
|
|
32
|
-
*/
|
|
33
|
-
load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, _channelAttributes: Readonly<IChannelAttributes>): Promise<ISharedObject>;
|
|
34
|
-
/**
|
|
35
|
-
* Create a new SharedTree.
|
|
36
|
-
* @param runtime - data store runtime that owns the new SharedTree
|
|
37
|
-
* @param id - optional name for the SharedTree
|
|
38
|
-
*/
|
|
39
|
-
create(runtime: IFluidDataStoreRuntime, id: string, expensiveValidation?: boolean): SharedTreeWithAnchors;
|
|
40
|
-
/**
|
|
41
|
-
* Determines how the SharedTree will summarize the history.
|
|
42
|
-
* This is a workaround for lacking the ability to construct DDSs with custom parameters.
|
|
43
|
-
*/
|
|
44
|
-
protected includeHistoryInSummary(): boolean;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Factory for SharedTreeWithAnchors.
|
|
48
|
-
* Does not include the history in the summary.
|
|
49
|
-
* This is a workaround for lacking the ability to construct DDSs with custom parameters.
|
|
50
|
-
* TODO:#54918: Clean up when DDS parameterization is supported.
|
|
51
|
-
* @public
|
|
52
|
-
*/
|
|
53
|
-
export declare class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {
|
|
54
|
-
protected includeHistoryInSummary(): boolean;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=Factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../src/anchored-edits/Factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,eAAe;IACnE;;OAEG;IACH,OAAc,IAAI,SAA2B;IAE7C;;OAEG;IACH,OAAc,UAAU,EAAE,kBAAkB,CAI1C;IAEF;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,kBAAkB,CAE1C;IAED;;OAEG;IACU,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAC9C,OAAO,CAAC,aAAa,CAAC;IAMzB;;;;OAIG;IACI,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAMhH;;;OAGG;IACH,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAG5C;AAED;;;;;;GAMG;AACH,qBAAa,qCAAsC,SAAQ,4BAA4B;IACtF,SAAS,CAAC,uBAAuB,IAAI,OAAO;CAG5C"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.SharedTreeWithAnchorsFactoryNoHistory = exports.SharedTreeWithAnchorsFactory = void 0;
|
|
8
|
-
const SharedTreeWithAnchors_1 = require("./SharedTreeWithAnchors");
|
|
9
|
-
/**
|
|
10
|
-
* Factory for SharedTreeWithAnchors.
|
|
11
|
-
* Includes history in the summary.
|
|
12
|
-
* @public
|
|
13
|
-
*/
|
|
14
|
-
class SharedTreeWithAnchorsFactory {
|
|
15
|
-
/**
|
|
16
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
|
|
17
|
-
*/
|
|
18
|
-
get type() {
|
|
19
|
-
return SharedTreeWithAnchorsFactory.Type;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
|
|
23
|
-
*/
|
|
24
|
-
get attributes() {
|
|
25
|
-
return SharedTreeWithAnchorsFactory.Attributes;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}
|
|
29
|
-
*/
|
|
30
|
-
async load(runtime, id, services, _channelAttributes) {
|
|
31
|
-
const sharedTree = new SharedTreeWithAnchors_1.SharedTreeWithAnchors(runtime, id);
|
|
32
|
-
await sharedTree.load(services);
|
|
33
|
-
return sharedTree;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Create a new SharedTree.
|
|
37
|
-
* @param runtime - data store runtime that owns the new SharedTree
|
|
38
|
-
* @param id - optional name for the SharedTree
|
|
39
|
-
*/
|
|
40
|
-
create(runtime, id, expensiveValidation) {
|
|
41
|
-
const sharedTree = new SharedTreeWithAnchors_1.SharedTreeWithAnchors(runtime, id, expensiveValidation, this.includeHistoryInSummary());
|
|
42
|
-
sharedTree.initializeLocal();
|
|
43
|
-
return sharedTree;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Determines how the SharedTree will summarize the history.
|
|
47
|
-
* This is a workaround for lacking the ability to construct DDSs with custom parameters.
|
|
48
|
-
*/
|
|
49
|
-
includeHistoryInSummary() {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.SharedTreeWithAnchorsFactory = SharedTreeWithAnchorsFactory;
|
|
54
|
-
/**
|
|
55
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory."type"}
|
|
56
|
-
*/
|
|
57
|
-
SharedTreeWithAnchorsFactory.Type = 'SharedTreeWithAnchors';
|
|
58
|
-
/**
|
|
59
|
-
* {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}
|
|
60
|
-
*/
|
|
61
|
-
SharedTreeWithAnchorsFactory.Attributes = {
|
|
62
|
-
type: SharedTreeWithAnchorsFactory.Type,
|
|
63
|
-
snapshotFormatVersion: '0.1',
|
|
64
|
-
packageVersion: '0.1',
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Factory for SharedTreeWithAnchors.
|
|
68
|
-
* Does not include the history in the summary.
|
|
69
|
-
* This is a workaround for lacking the ability to construct DDSs with custom parameters.
|
|
70
|
-
* TODO:#54918: Clean up when DDS parameterization is supported.
|
|
71
|
-
* @public
|
|
72
|
-
*/
|
|
73
|
-
class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {
|
|
74
|
-
includeHistoryInSummary() {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.SharedTreeWithAnchorsFactoryNoHistory = SharedTreeWithAnchorsFactoryNoHistory;
|
|
79
|
-
//# sourceMappingURL=Factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../src/anchored-edits/Factory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AASH,mEAAgE;AAEhE;;;;GAIG;AACH,MAAa,4BAA4B;IAexC;;OAEG;IACH,IAAW,IAAI;QACd,OAAO,4BAA4B,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,4BAA4B,CAAC,UAAU,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAChB,OAA+B,EAC/B,EAAU,EACV,QAA0B,EAC1B,kBAAgD;QAEhD,MAAM,UAAU,GAAG,IAAI,6CAAqB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAA+B,EAAE,EAAU,EAAE,mBAA6B;QACvF,MAAM,UAAU,GAAG,IAAI,6CAAqB,CAAC,OAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC/G,UAAU,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACnB,CAAC;IAED;;;OAGG;IACO,uBAAuB;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;;AA5DF,oEA6DC;AA5DA;;GAEG;AACW,iCAAI,GAAG,uBAAuB,CAAC;AAE7C;;GAEG;AACW,uCAAU,GAAuB;IAC9C,IAAI,EAAE,4BAA4B,CAAC,IAAI;IACvC,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,KAAK;CACrB,CAAC;AAkDH;;;;;;GAMG;AACH,MAAa,qCAAsC,SAAQ,4BAA4B;IAC5E,uBAAuB;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAJD,sFAIC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIChannelAttributes,\n\tIFluidDataStoreRuntime,\n\tIChannelServices,\n\tIChannelFactory,\n} from '@fluidframework/datastore-definitions';\nimport { ISharedObject } from '@fluidframework/shared-object-base';\nimport { SharedTreeWithAnchors } from './SharedTreeWithAnchors';\n\n/**\n * Factory for SharedTreeWithAnchors.\n * Includes history in the summary.\n * @public\n */\nexport class SharedTreeWithAnchorsFactory implements IChannelFactory {\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.\"type\"}\n\t */\n\tpublic static Type = 'SharedTreeWithAnchors';\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}\n\t */\n\tpublic static Attributes: IChannelAttributes = {\n\t\ttype: SharedTreeWithAnchorsFactory.Type,\n\t\tsnapshotFormatVersion: '0.1',\n\t\tpackageVersion: '0.1',\n\t};\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.\"type\"}\n\t */\n\tpublic get type(): string {\n\t\treturn SharedTreeWithAnchorsFactory.Type;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.attributes}\n\t */\n\tpublic get attributes(): IChannelAttributes {\n\t\treturn SharedTreeWithAnchorsFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/shared-object-base#ISharedObjectFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\t_channelAttributes: Readonly<IChannelAttributes>\n\t): Promise<ISharedObject> {\n\t\tconst sharedTree = new SharedTreeWithAnchors(runtime, id);\n\t\tawait sharedTree.load(services);\n\t\treturn sharedTree;\n\t}\n\n\t/**\n\t * Create a new SharedTree.\n\t * @param runtime - data store runtime that owns the new SharedTree\n\t * @param id - optional name for the SharedTree\n\t */\n\tpublic create(runtime: IFluidDataStoreRuntime, id: string, expensiveValidation?: boolean): SharedTreeWithAnchors {\n\t\tconst sharedTree = new SharedTreeWithAnchors(runtime, id, expensiveValidation, this.includeHistoryInSummary());\n\t\tsharedTree.initializeLocal();\n\t\treturn sharedTree;\n\t}\n\n\t/**\n\t * Determines how the SharedTree will summarize the history.\n\t * This is a workaround for lacking the ability to construct DDSs with custom parameters.\n\t */\n\tprotected includeHistoryInSummary(): boolean {\n\t\treturn true;\n\t}\n}\n\n/**\n * Factory for SharedTreeWithAnchors.\n * Does not include the history in the summary.\n * This is a workaround for lacking the ability to construct DDSs with custom parameters.\n * TODO:#54918: Clean up when DDS parameterization is supported.\n * @public\n */\nexport class SharedTreeWithAnchorsFactoryNoHistory extends SharedTreeWithAnchorsFactory {\n\tprotected includeHistoryInSummary(): boolean {\n\t\treturn false;\n\t}\n}\n"]}
|