@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,63 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
6
|
-
import { IFluidSerializer } from '@fluidframework/shared-object-base';
|
|
7
|
-
import { EditLogSummary, OrderedEditSet } from '../EditLog';
|
|
8
|
-
import { Snapshot } from '../Snapshot';
|
|
9
|
-
import { SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';
|
|
10
|
-
import { ChangeNode } from './PersistedTypes';
|
|
11
|
-
/**
|
|
12
|
-
* Format version for summaries that are written.
|
|
13
|
-
* When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent
|
|
14
|
-
* version number.
|
|
15
|
-
*/
|
|
16
|
-
export declare const formatVersion = "0.0.2";
|
|
17
|
-
/**
|
|
18
|
-
* Handler for summarizing the tree state.
|
|
19
|
-
* The handler is invoked when saving a summary. It accepts a view of the current state of the tree, the sequenced edits known
|
|
20
|
-
* to the SharedTree, and optional helpers for serializing the edit information.
|
|
21
|
-
* @returns a summary of the supplied state.
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
export declare type SharedTreeSummarizer<TChange> = (editLog: OrderedEditSet<TChange>, currentView: Snapshot) => SharedTreeSummaryBase;
|
|
25
|
-
/**
|
|
26
|
-
* The minimal information on a SharedTree summary. Contains the summary format version.
|
|
27
|
-
*/
|
|
28
|
-
export interface SharedTreeSummaryBase {
|
|
29
|
-
/**
|
|
30
|
-
* Field on summary under which version is stored.
|
|
31
|
-
*/
|
|
32
|
-
readonly version: string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* The contents of a SharedTree summary: the current tree, and the edits needed to get from `initialTree` to the current tree.
|
|
36
|
-
* @public
|
|
37
|
-
*/
|
|
38
|
-
export interface SharedTreeSummary<TChange> extends SharedTreeSummaryBase {
|
|
39
|
-
readonly currentTree: ChangeNode;
|
|
40
|
-
/**
|
|
41
|
-
* Information that can populate an edit log.
|
|
42
|
-
*/
|
|
43
|
-
readonly editHistory?: EditLogSummary<TChange>;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`
|
|
47
|
-
* Also replaces handle objects with their serialized form.
|
|
48
|
-
*
|
|
49
|
-
* @param summary - The SharedTree summary to serialize.
|
|
50
|
-
* @param serializer - The serializer required to serialize handles in the summary.
|
|
51
|
-
* @param bind - The object handle required to serialize handles in the summary
|
|
52
|
-
*/
|
|
53
|
-
export declare function serialize(summary: SharedTreeSummaryBase, serializer: IFluidSerializer, bind: IFluidHandle): string;
|
|
54
|
-
/**
|
|
55
|
-
* Preserves the full history in the generated summary.
|
|
56
|
-
* @public
|
|
57
|
-
*/
|
|
58
|
-
export declare function fullHistorySummarizer<TChange>(editLog: OrderedEditSet<TChange>, currentView: Snapshot): SharedTreeSummary_0_0_2<TChange>;
|
|
59
|
-
/**
|
|
60
|
-
* Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.
|
|
61
|
-
*/
|
|
62
|
-
export declare function fullHistorySummarizer_0_1_0<TChange>(editLog: OrderedEditSet<TChange>, currentView: Snapshot): SharedTreeSummary<TChange>;
|
|
63
|
-
//# sourceMappingURL=Summary.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Summary.d.ts","sourceRoot":"","sources":["../../src/generic/Summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oCAAoC,CAAC;AAExF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAqB,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC;;;;;;GAMG;AACH,oBAAY,oBAAoB,CAAC,OAAO,IAAI,CAC3C,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,QAAQ,KACjB,qBAAqB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,CAAE,SAAQ,qBAAqB;IACxE,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAElH;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAC5C,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,QAAQ,GACnB,uBAAuB,CAAC,OAAO,CAAC,CAwBlC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAClD,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,QAAQ,GACnB,iBAAiB,CAAC,OAAO,CAAC,CAM5B"}
|
package/dist/generic/Summary.js
DELETED
|
@@ -1,64 +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.fullHistorySummarizer_0_1_0 = exports.fullHistorySummarizer = exports.serialize = exports.formatVersion = void 0;
|
|
8
|
-
const shared_object_base_1 = require("@fluidframework/shared-object-base");
|
|
9
|
-
const Common_1 = require("../Common");
|
|
10
|
-
const SummaryBackCompatibility_1 = require("../SummaryBackCompatibility");
|
|
11
|
-
/**
|
|
12
|
-
* Format version for summaries that are written.
|
|
13
|
-
* When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent
|
|
14
|
-
* version number.
|
|
15
|
-
*/
|
|
16
|
-
exports.formatVersion = '0.0.2';
|
|
17
|
-
/**
|
|
18
|
-
* Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`
|
|
19
|
-
* Also replaces handle objects with their serialized form.
|
|
20
|
-
*
|
|
21
|
-
* @param summary - The SharedTree summary to serialize.
|
|
22
|
-
* @param serializer - The serializer required to serialize handles in the summary.
|
|
23
|
-
* @param bind - The object handle required to serialize handles in the summary
|
|
24
|
-
*/
|
|
25
|
-
function serialize(summary, serializer, bind) {
|
|
26
|
-
return Common_1.assertNotUndefined(shared_object_base_1.serializeHandles(summary, serializer, bind));
|
|
27
|
-
}
|
|
28
|
-
exports.serialize = serialize;
|
|
29
|
-
/**
|
|
30
|
-
* Preserves the full history in the generated summary.
|
|
31
|
-
* @public
|
|
32
|
-
*/
|
|
33
|
-
function fullHistorySummarizer(editLog, currentView) {
|
|
34
|
-
const { editChunks, editIds } = editLog.getEditLogSummary();
|
|
35
|
-
const sequencedEdits = [];
|
|
36
|
-
let idIndex = 0;
|
|
37
|
-
editChunks.forEach(({ chunk }) => {
|
|
38
|
-
Common_1.assert(Array.isArray(chunk), 'Handles should not be included in the summary until format version 0.1.0 is being written.');
|
|
39
|
-
chunk.forEach(({ changes }) => {
|
|
40
|
-
sequencedEdits.push({
|
|
41
|
-
changes,
|
|
42
|
-
id: Common_1.assertNotUndefined(editIds[idIndex++], 'Number of edits should match number of edit IDs.'),
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
return {
|
|
47
|
-
currentTree: currentView.getChangeNodeTree(),
|
|
48
|
-
sequencedEdits,
|
|
49
|
-
version: exports.formatVersion,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
exports.fullHistorySummarizer = fullHistorySummarizer;
|
|
53
|
-
/**
|
|
54
|
-
* Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.
|
|
55
|
-
*/
|
|
56
|
-
function fullHistorySummarizer_0_1_0(editLog, currentView) {
|
|
57
|
-
return {
|
|
58
|
-
currentTree: currentView.getChangeNodeTree(),
|
|
59
|
-
editHistory: editLog.getEditLogSummary(true),
|
|
60
|
-
version: SummaryBackCompatibility_1.readFormatVersion,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
exports.fullHistorySummarizer_0_1_0 = fullHistorySummarizer_0_1_0;
|
|
64
|
-
//# sourceMappingURL=Summary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Summary.js","sourceRoot":"","sources":["../../src/generic/Summary.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,2EAAwF;AACxF,sCAAuD;AAGvD,0EAAyF;AAGzF;;;;GAIG;AACU,QAAA,aAAa,GAAG,OAAO,CAAC;AAqCrC;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,OAA8B,EAAE,UAA4B,EAAE,IAAkB;IACzG,OAAO,2BAAkB,CAAC,qCAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACpC,OAAgC,EAChC,WAAqB;IAErB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5D,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,eAAM,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,4FAA4F,CAC5F,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7B,cAAc,CAAC,IAAI,CAAC;gBACnB,OAAO;gBACP,EAAE,EAAE,2BAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,kDAAkD,CAAC;aAC9F,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,WAAW,EAAE,WAAW,CAAC,iBAAiB,EAAE;QAC5C,cAAc;QACd,OAAO,EAAE,qBAAa;KACtB,CAAC;AACH,CAAC;AA3BD,sDA2BC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CAC1C,OAAgC,EAChC,WAAqB;IAErB,OAAO;QACN,WAAW,EAAE,WAAW,CAAC,iBAAiB,EAAE;QAC5C,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC5C,OAAO,EAAE,4CAAiB;KAC1B,CAAC;AACH,CAAC;AATD,kEASC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandle } from '@fluidframework/core-interfaces';\nimport { IFluidSerializer, serializeHandles } from '@fluidframework/shared-object-base';\nimport { assert, assertNotUndefined } from '../Common';\nimport { EditLogSummary, OrderedEditSet } from '../EditLog';\nimport { Snapshot } from '../Snapshot';\nimport { readFormatVersion, SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';\nimport { ChangeNode, Edit } from './PersistedTypes';\n\n/**\n * Format version for summaries that are written.\n * When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent\n * version number.\n */\nexport const formatVersion = '0.0.2';\n\n/**\n * Handler for summarizing the tree state.\n * The handler is invoked when saving a summary. It accepts a view of the current state of the tree, the sequenced edits known\n * to the SharedTree, and optional helpers for serializing the edit information.\n * @returns a summary of the supplied state.\n * @internal\n */\nexport type SharedTreeSummarizer<TChange> = (\n\teditLog: OrderedEditSet<TChange>,\n\tcurrentView: Snapshot\n) => SharedTreeSummaryBase;\n\n/**\n * The minimal information on a SharedTree summary. Contains the summary format version.\n */\nexport interface SharedTreeSummaryBase {\n\t/**\n\t * Field on summary under which version is stored.\n\t */\n\treadonly version: string;\n}\n\n/**\n * The contents of a SharedTree summary: the current tree, and the edits needed to get from `initialTree` to the current tree.\n * @public\n */\nexport interface SharedTreeSummary<TChange> extends SharedTreeSummaryBase {\n\treadonly currentTree: ChangeNode;\n\n\t/**\n\t * Information that can populate an edit log.\n\t */\n\treadonly editHistory?: EditLogSummary<TChange>;\n}\n\n/**\n * Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`\n * Also replaces handle objects with their serialized form.\n *\n * @param summary - The SharedTree summary to serialize.\n * @param serializer - The serializer required to serialize handles in the summary.\n * @param bind - The object handle required to serialize handles in the summary\n */\nexport function serialize(summary: SharedTreeSummaryBase, serializer: IFluidSerializer, bind: IFluidHandle): string {\n\treturn assertNotUndefined(serializeHandles(summary, serializer, bind));\n}\n\n/**\n * Preserves the full history in the generated summary.\n * @public\n */\nexport function fullHistorySummarizer<TChange>(\n\teditLog: OrderedEditSet<TChange>,\n\tcurrentView: Snapshot\n): SharedTreeSummary_0_0_2<TChange> {\n\tconst { editChunks, editIds } = editLog.getEditLogSummary();\n\n\tconst sequencedEdits: Edit<TChange>[] = [];\n\tlet idIndex = 0;\n\teditChunks.forEach(({ chunk }) => {\n\t\tassert(\n\t\t\tArray.isArray(chunk),\n\t\t\t'Handles should not be included in the summary until format version 0.1.0 is being written.'\n\t\t);\n\n\t\tchunk.forEach(({ changes }) => {\n\t\t\tsequencedEdits.push({\n\t\t\t\tchanges,\n\t\t\t\tid: assertNotUndefined(editIds[idIndex++], 'Number of edits should match number of edit IDs.'),\n\t\t\t});\n\t\t});\n\t});\n\n\treturn {\n\t\tcurrentTree: currentView.getChangeNodeTree(),\n\t\tsequencedEdits,\n\t\tversion: formatVersion,\n\t};\n}\n\n/**\n * Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.\n */\nexport function fullHistorySummarizer_0_1_0<TChange>(\n\teditLog: OrderedEditSet<TChange>,\n\tcurrentView: Snapshot\n): SharedTreeSummary<TChange> {\n\treturn {\n\t\tcurrentTree: currentView.getChangeNodeTree(),\n\t\teditHistory: editLog.getEditLogSummary(true),\n\t\tversion: readFormatVersion,\n\t};\n}\n"]}
|
package/dist/generic/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export { EditCommittedHandler, EditCommittedEventArguments, ISharedTreeEvents, GenericSharedTree, SharedTreeEvent, SharedTreeDiagnosticEvent, } from './GenericSharedTree';
|
|
6
|
-
export { Edit, EditWithoutId, EditBase, TraitMap, TreeNodeSequence, Payload, NodeData, TreeNode, ChangeNode, BuildNode, EditStatus, TraitLocation, SharedTreeOpType, } from './PersistedTypes';
|
|
7
|
-
export { newEdit, newEditId } from './GenericEditUtilities';
|
|
8
|
-
export { GenericTransaction, EditingResult, ValidEditingResult } from './GenericTransaction';
|
|
9
|
-
export { SharedTreeSummary, SharedTreeSummaryBase, SharedTreeSummarizer, fullHistorySummarizer, fullHistorySummarizer_0_1_0, formatVersion, serialize, } from './Summary';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generic/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,aAAa,EACb,SAAS,GACT,MAAM,WAAW,CAAC"}
|
package/dist/generic/index.js
DELETED
|
@@ -1,26 +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.serialize = exports.formatVersion = exports.fullHistorySummarizer_0_1_0 = exports.fullHistorySummarizer = exports.GenericTransaction = exports.newEditId = exports.newEdit = exports.SharedTreeOpType = exports.EditStatus = exports.SharedTreeDiagnosticEvent = exports.SharedTreeEvent = exports.GenericSharedTree = void 0;
|
|
8
|
-
// API Exports
|
|
9
|
-
var GenericSharedTree_1 = require("./GenericSharedTree");
|
|
10
|
-
Object.defineProperty(exports, "GenericSharedTree", { enumerable: true, get: function () { return GenericSharedTree_1.GenericSharedTree; } });
|
|
11
|
-
Object.defineProperty(exports, "SharedTreeEvent", { enumerable: true, get: function () { return GenericSharedTree_1.SharedTreeEvent; } });
|
|
12
|
-
Object.defineProperty(exports, "SharedTreeDiagnosticEvent", { enumerable: true, get: function () { return GenericSharedTree_1.SharedTreeDiagnosticEvent; } });
|
|
13
|
-
var PersistedTypes_1 = require("./PersistedTypes");
|
|
14
|
-
Object.defineProperty(exports, "EditStatus", { enumerable: true, get: function () { return PersistedTypes_1.EditStatus; } });
|
|
15
|
-
Object.defineProperty(exports, "SharedTreeOpType", { enumerable: true, get: function () { return PersistedTypes_1.SharedTreeOpType; } });
|
|
16
|
-
var GenericEditUtilities_1 = require("./GenericEditUtilities");
|
|
17
|
-
Object.defineProperty(exports, "newEdit", { enumerable: true, get: function () { return GenericEditUtilities_1.newEdit; } });
|
|
18
|
-
Object.defineProperty(exports, "newEditId", { enumerable: true, get: function () { return GenericEditUtilities_1.newEditId; } });
|
|
19
|
-
var GenericTransaction_1 = require("./GenericTransaction");
|
|
20
|
-
Object.defineProperty(exports, "GenericTransaction", { enumerable: true, get: function () { return GenericTransaction_1.GenericTransaction; } });
|
|
21
|
-
var Summary_1 = require("./Summary");
|
|
22
|
-
Object.defineProperty(exports, "fullHistorySummarizer", { enumerable: true, get: function () { return Summary_1.fullHistorySummarizer; } });
|
|
23
|
-
Object.defineProperty(exports, "fullHistorySummarizer_0_1_0", { enumerable: true, get: function () { return Summary_1.fullHistorySummarizer_0_1_0; } });
|
|
24
|
-
Object.defineProperty(exports, "formatVersion", { enumerable: true, get: function () { return Summary_1.formatVersion; } });
|
|
25
|
-
Object.defineProperty(exports, "serialize", { enumerable: true, get: function () { return Summary_1.serialize; } });
|
|
26
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generic/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,cAAc;AAEd,yDAO6B;AAH5B,sHAAA,iBAAiB,OAAA;AACjB,oHAAA,eAAe,OAAA;AACf,8HAAA,yBAAyB,OAAA;AAE1B,mDAc0B;AAHzB,4GAAA,UAAU,OAAA;AAEV,kHAAA,gBAAgB,OAAA;AAEjB,+DAA4D;AAAnD,+GAAA,OAAO,OAAA;AAAE,iHAAA,SAAS,OAAA;AAC3B,2DAA6F;AAApF,wHAAA,kBAAkB,OAAA;AAC3B,qCAQmB;AAJlB,gHAAA,qBAAqB,OAAA;AACrB,sHAAA,2BAA2B,OAAA;AAC3B,wGAAA,aAAa,OAAA;AACb,oGAAA,SAAS,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// API Exports\n\nexport {\n\tEditCommittedHandler,\n\tEditCommittedEventArguments,\n\tISharedTreeEvents,\n\tGenericSharedTree,\n\tSharedTreeEvent,\n\tSharedTreeDiagnosticEvent,\n} from './GenericSharedTree';\nexport {\n\tEdit,\n\tEditWithoutId,\n\tEditBase,\n\tTraitMap,\n\tTreeNodeSequence,\n\tPayload,\n\tNodeData,\n\tTreeNode,\n\tChangeNode,\n\tBuildNode,\n\tEditStatus,\n\tTraitLocation,\n\tSharedTreeOpType,\n} from './PersistedTypes';\nexport { newEdit, newEditId } from './GenericEditUtilities';\nexport { GenericTransaction, EditingResult, ValidEditingResult } from './GenericTransaction';\nexport {\n\tSharedTreeSummary,\n\tSharedTreeSummaryBase,\n\tSharedTreeSummarizer,\n\tfullHistorySummarizer,\n\tfullHistorySummarizer_0_1_0,\n\tformatVersion,\n\tserialize,\n} from './Summary';\n"]}
|
package/docs/Future.md
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
# Future Plans
|
|
2
|
-
|
|
3
|
-
This document contains high-level overviews of several desired SharedTree features.
|
|
4
|
-
|
|
5
|
-
## Edits
|
|
6
|
-
|
|
7
|
-
1. Allow edits to contain metadata for use by the application. The contents would be application specific. Example use cases might include:
|
|
8
|
-
|
|
9
|
-
1. "Hierarchal edits": Encoding of how to regenerate the edit in a more semantic way (as commands in higher level domains).
|
|
10
|
-
These are allowed to be non-deterministic, and might change behavior as the application is updated.
|
|
11
|
-
They depend on the necessary domain code being loaded and supporting the used commands: some clients may be unable to make use of this data.
|
|
12
|
-
1. Metadata about the changes for use with history viewing and manipulation tools (ex: author, time etc)
|
|
13
|
-
|
|
14
|
-
1. Provide a way to detect if two edits [commute](https://en.wikipedia.org/wiki/Commutative_property) for a particular version of the document (edits might commute for some documents but not others, so providing the document is required).
|
|
15
|
-
This can be conservative in that it would be allowed to return false if it is unclear it they commute.
|
|
16
|
-
A basic implementation of this would be a check if the _write set_ of each change does not overlap the _read set + write set_ of the other.
|
|
17
|
-
|
|
18
|
-
1. Provide a way to detect if the applying an edit had the _intended_ effect (ex: was it turned into a noop due to conflicts, or has high risk of other kinds of merge issues)
|
|
19
|
-
|
|
20
|
-
## Conflict Resolution
|
|
21
|
-
|
|
22
|
-
Rather than drop edits which cause a conflict, SharedTree could expose this, giving the application an opportunity to use the Edit metadata and its domain knowledge to attempt to recreate the Edit, resolving the conflict.
|
|
23
|
-
|
|
24
|
-
# Editing History
|
|
25
|
-
|
|
26
|
-
The history is a sequence of Edits, but it is append only.
|
|
27
|
-
Thus, a logical edit of the history is done by creating a new Edit which modifies the current version of the document to be that which would have been produced by the alternative history.
|
|
28
|
-
|
|
29
|
-
This functionality will be provided by a library (yet to be written) which uses SharedTree's history inspection and Editing APIs to create history modifying Edits, including metadata necessary to properly inspect and merge them with future history modifying Edits.
|
|
30
|
-
This approach does not require extra functionality in SharedTree's core.
|
|
31
|
-
This approach intentionally pushes the complex merge logic into code that is not part of the DDS to:
|
|
32
|
-
|
|
33
|
-
- reduce the code which can possibly impact consistency of documents between clients.
|
|
34
|
-
- reduce the computation needed to interpret the history (apply Edits): burden of hard merges goes on the client that requested the merge.
|
|
35
|
-
- minimize the feature set which must be supported long term for document compatibility.
|
|
36
|
-
|
|
37
|
-
This design has some downsides as well:
|
|
38
|
-
|
|
39
|
-
- if used to make edits far back in the history, merge resolution can produce very bloated changes (large and expensive to store and apply)
|
|
40
|
-
- repeated history edits (like someone undoing and redoing a change a lot) can bloat history
|
|
41
|
-
|
|
42
|
-
Because of these downsides, it may be desirable to limit use of history editing (it is intended to handle cases like undo and redo of recent edits),
|
|
43
|
-
particularly when the initial edit requires Automatic Conflict Resolution, and/or is working on very large Edits or Edits which are not recent.
|
|
44
|
-
|
|
45
|
-
These costs can be mitigated by encoding optimizations (Ex: allowing edits to refer to trees in snapshots and/or other edits to avoid duplication).
|
|
46
|
-
|
|
47
|
-
If necessary, directly supporting history editing within SharedTree's Edits could be added without breaking existing documents or legacy support for the old approach
|
|
48
|
-
(other than optionally reading the metadata when viewing history).
|
|
49
|
-
This is not on the roadmap and would only be considered after a formal cost/benefit analysis.
|
|
50
|
-
|
|
51
|
-
## Example History Edit
|
|
52
|
-
|
|
53
|
-
This example shows how to replace the middle of 3 edits.
|
|
54
|
-
This generalizes to making arbitrary history edits by considering A, B, C, and X to be arbitrary (possibly empty) sequences of edits.
|
|
55
|
-
|
|
56
|
-
We start with these changes:
|
|
57
|
-
|
|
58
|
-
```mermaid
|
|
59
|
-
graph LR
|
|
60
|
-
A(A) --> B(B) --> C(C)
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
And want to end with changes:
|
|
64
|
-
|
|
65
|
-
```mermaid
|
|
66
|
-
graph LR
|
|
67
|
-
A(A) --> X(X) --> C(C)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Since history is append only, we actually end with:
|
|
71
|
-
|
|
72
|
-
```mermaid
|
|
73
|
-
graph LR
|
|
74
|
-
A(A) --> B(B) --> C(C) --> Merge(Merge)
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Low Level Commuting Merge
|
|
78
|
-
|
|
79
|
-
If B commutes with C in the revision output from A, and X commutes with C in the revision output from A, then the history edit is considered non-conflicted, since there is a clear way to construct the Merge edit.
|
|
80
|
-
This is the only case supported by the "Low Level Commuting Merge."
|
|
81
|
-
|
|
82
|
-
In this case Merge can be constructed as inverse(B) followed by X.
|
|
83
|
-
Note that computing the inverse depends on the revision.
|
|
84
|
-
In this case a special revision produced by A followed by C is used.
|
|
85
|
-
Then B is applied, constructing inverse(B) in the process to use as part of the merge.
|
|
86
|
-
|
|
87
|
-
This amounts to moving B past C (allowed because they commute), then adding inverse(B), followed by X.
|
|
88
|
-
Placing X at the end is the same as placing it between A and C since it commutes with C (at revision output by A).
|
|
89
|
-
|
|
90
|
-
```mermaid
|
|
91
|
-
graph LR
|
|
92
|
-
A(A) --> C(C) --> B(B) --> B2("B⁻¹") --> X(X)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
This can then be transformed into its final form, which meets the requirement of only adding to the original:
|
|
96
|
-
|
|
97
|
-
```mermaid
|
|
98
|
-
graph LR
|
|
99
|
-
A(A) --> B(B) --> C(C) --> B2("Merge: B⁻¹ + X")
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Note that if B deletes any nodes, B⁻¹ must restore them with the same identity.
|
|
103
|
-
|
|
104
|
-
### Automatic Conflict Resolution
|
|
105
|
-
|
|
106
|
-
If a low level merge can not be applied directly because it is conflicted,
|
|
107
|
-
it can often be restated in terms of a different history edit which will have a non-conflicting Low Level Commuting Merge.
|
|
108
|
-
|
|
109
|
-
In the above example, it conflicts IIF A or X fail to commute with C.
|
|
110
|
-
In the general case, where C is a sequence of Edits,
|
|
111
|
-
this can always be avoided by moving edits from the beginning of C to the ends of B and X.
|
|
112
|
-
This can continue until there no longer is a conflict due to lack of commuting.
|
|
113
|
-
This is guaranteed to eventually fix the conflict since it can continue until C is empty, and thus commutes with anything.
|
|
114
|
-
|
|
115
|
-
For initial state:
|
|
116
|
-
|
|
117
|
-
```mermaid
|
|
118
|
-
graph LR
|
|
119
|
-
A(A) --> B(B) --> C("C1 + C2")
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
it can be regrouped like:
|
|
123
|
-
|
|
124
|
-
```mermaid
|
|
125
|
-
graph LR
|
|
126
|
-
A(A) --> B("B + C1") --> C(C2)
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Making the desired final state:
|
|
130
|
-
|
|
131
|
-
```mermaid
|
|
132
|
-
graph LR
|
|
133
|
-
A(A) --> X("X + C1") --> C(C2)
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
This process can be though of as expanding the portion of the history being replaced to include a segment long enough to contain all the conflicts.
|
|
137
|
-
This modified replacement can then be applied using the Low Level Commuting Merge.
|
|
138
|
-
|
|
139
|
-
The challenge here is constructing `X + C1`.
|
|
140
|
-
Doing this applies C1 in a different context than it was initially applied, and this C1 itself could fail to apply.
|
|
141
|
-
This is where the hierarchal edit metadata can be used to assist merging.
|
|
142
|
-
If there is code loaded which can use the metadata from the Edits to reapply the edits at a higher level,
|
|
143
|
-
this can be used to generate a contextualized version of C1 to include in `X + C1`.
|
|
144
|
-
If the higher level edits fail to be applied (either they are not available, or they fail),
|
|
145
|
-
then the automatic merge resolution fails, and no merge is created
|
|
146
|
-
(effectively merging the change by picking the current version as the result).
|
|
147
|
-
|
|
148
|
-
### Editing Edited History
|
|
149
|
-
|
|
150
|
-
When editing history that has already been edited, care must be taken to not accidentally revert the previous edits.
|
|
151
|
-
This can be done by using metadata in history edits to construct the branch the history edit logically made with its alternative history instead of walking the actual op sequence.
|
|
152
|
-
|
|
153
|
-
When this is implemented, particular care will have to be taken to make sure that multiple edits to history which are created concurrently either merge safely (and in a way that future edits will handle), or conflict.
|
|
154
|
-
Details of this design are to be determined, but having history edits reference the newest acknowledged edit, and the range of history they are actually editing,
|
|
155
|
-
and only allowing edits of the acknowledged portion of history may be enough.
|
package/lib/BasicCheckout.d.ts
DELETED
|
@@ -1,23 +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 { Checkout } from './Checkout';
|
|
7
|
-
import { GenericSharedTree } from './generic';
|
|
8
|
-
/**
|
|
9
|
-
* Basic Session that stays up to date with the SharedTree.
|
|
10
|
-
*
|
|
11
|
-
* waitForPendingUpdates is always a no-op since BasicCheckout is always up to date.
|
|
12
|
-
* @public
|
|
13
|
-
* @sealed
|
|
14
|
-
*/
|
|
15
|
-
export declare class BasicCheckout<TChange> extends Checkout<TChange> {
|
|
16
|
-
/**
|
|
17
|
-
* @param tree - the tree
|
|
18
|
-
*/
|
|
19
|
-
constructor(tree: GenericSharedTree<TChange>);
|
|
20
|
-
protected get latestCommittedView(): Snapshot;
|
|
21
|
-
waitForPendingUpdates(): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=BasicCheckout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BasicCheckout.d.ts","sourceRoot":"","sources":["../src/BasicCheckout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAA+B,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE3E;;;;;;GAMG;AACH,qBAAa,aAAa,CAAC,OAAO,CAAE,SAAQ,QAAQ,CAAC,OAAO,CAAC;IAC5D;;OAEG;gBACgB,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAMnD,SAAS,KAAK,mBAAmB,IAAI,QAAQ,CAE5C;IAEY,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnD"}
|
package/lib/BasicCheckout.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BasicCheckout.js","sourceRoot":"","sources":["../src/BasicCheckout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;;;;GAMG;AACH,MAAM,OAAO,aAAuB,SAAQ,QAAiB;IAC5D;;OAEG;IACH,YAAmB,IAAgC;QAClD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,IAA6D,EAAE,EAAE;YAC/F,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAc,mBAAmB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,qBAAqB;QACjC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Snapshot } from './Snapshot';\nimport { Checkout } from './Checkout';\nimport { EditCommittedEventArguments, GenericSharedTree } from './generic';\n\n/**\n * Basic Session that stays up to date with the SharedTree.\n *\n * waitForPendingUpdates is always a no-op since BasicCheckout is always up to date.\n * @public\n * @sealed\n */\nexport class BasicCheckout<TChange> extends Checkout<TChange> {\n\t/**\n\t * @param tree - the tree\n\t */\n\tpublic constructor(tree: GenericSharedTree<TChange>) {\n\t\tsuper(tree, tree.currentView, (args: EditCommittedEventArguments<GenericSharedTree<TChange>>) => {\n\t\t\tthis.emitChange();\n\t\t});\n\t}\n\n\tprotected get latestCommittedView(): Snapshot {\n\t\treturn this.tree.currentView;\n\t}\n\n\tpublic async waitForPendingUpdates(): Promise<void> {\n\t\treturn Promise.resolve();\n\t}\n}\n"]}
|
package/lib/Snapshot.d.ts
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { NodeId, TraitLabel } from './Identifiers';
|
|
6
|
-
import { Delta } from './Forest';
|
|
7
|
-
import { ChangeNode, NodeData, Payload, TraitLocation } from './generic';
|
|
8
|
-
/**
|
|
9
|
-
* An immutable view of a distributed tree node.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export interface SnapshotNode extends NodeData {
|
|
13
|
-
readonly traits: ReadonlyMap<TraitLabel, readonly NodeId[]>;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Index of a place within a trait.
|
|
17
|
-
* 0 = before all nodes,
|
|
18
|
-
* 1 = after first node,
|
|
19
|
-
* etc.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export declare type PlaceIndex = number & {
|
|
23
|
-
readonly PlaceIndex: unique symbol;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Index of a node within a trait.
|
|
27
|
-
* 0 = first node,
|
|
28
|
-
* 1 = second node,
|
|
29
|
-
* etc.
|
|
30
|
-
* @public
|
|
31
|
-
*/
|
|
32
|
-
export declare type TraitNodeIndex = number & {
|
|
33
|
-
readonly TraitNodeIndex: unique symbol;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* A place within a particular `Snapshot` that is anchored relative to a specific node in the tree, or relative to the outside of the trait.
|
|
37
|
-
* Valid iff 'trait' is valid and, if provided, sibling is in the Location specified by 'trait'.
|
|
38
|
-
* @public
|
|
39
|
-
*/
|
|
40
|
-
export interface SnapshotPlace {
|
|
41
|
-
readonly sibling?: NodeId;
|
|
42
|
-
readonly side: Side;
|
|
43
|
-
readonly trait: TraitLocation;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Defines a place relative to sibling.
|
|
47
|
-
* The "outside" of a trait is the `undefined` sibling,
|
|
48
|
-
* so After `undefined` is the beginning of the trait, and before `undefined` is the end.
|
|
49
|
-
*
|
|
50
|
-
* For this purpose, traits look like:
|
|
51
|
-
*
|
|
52
|
-
* `{undefined} - {Node 0} - {Node 1} - ... - {Node N} - {undefined}`
|
|
53
|
-
*
|
|
54
|
-
* Each `{value}` in the diagram is a possible sibling, which is either a Node or undefined.
|
|
55
|
-
* Each `-` in the above diagram is a `Place`, and can be describe as being `After` a particular `{sibling}` or `Before` it.
|
|
56
|
-
* This means that `After` `{undefined}` means the same `Place` as before the first node
|
|
57
|
-
* and `Before` `{undefined}` means the `Place` after the last Node.
|
|
58
|
-
*
|
|
59
|
-
* Each place can be specified, (aka 'anchored') in two ways (relative to the sibling before or after):
|
|
60
|
-
* the choice of which way to anchor a place only matters when the kept across an edit, and thus evaluated in multiple contexts where the
|
|
61
|
-
* two place description may no longer evaluate to the same place.
|
|
62
|
-
* @public
|
|
63
|
-
*/
|
|
64
|
-
export declare enum Side {
|
|
65
|
-
Before = 0,
|
|
66
|
-
After = 1
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Specifies the range of nodes from `start` to `end` within a trait within a particular `Snapshot`.
|
|
70
|
-
* Valid iff start and end are valid and are withing the same trait.
|
|
71
|
-
* @public
|
|
72
|
-
*/
|
|
73
|
-
export interface SnapshotRange {
|
|
74
|
-
readonly start: SnapshotPlace;
|
|
75
|
-
readonly end: SnapshotPlace;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* An immutable view of a distributed tree.
|
|
79
|
-
* @public
|
|
80
|
-
*/
|
|
81
|
-
export declare class Snapshot {
|
|
82
|
-
readonly root: NodeId;
|
|
83
|
-
private readonly forest;
|
|
84
|
-
/**
|
|
85
|
-
* A cache of node's index within their parent trait.
|
|
86
|
-
* Used to avoid redundant linear scans of traits.
|
|
87
|
-
* Not shared across snapshots; initialized to empty each time a Snapshot is created.
|
|
88
|
-
*/
|
|
89
|
-
private traitIndicesCache?;
|
|
90
|
-
/**
|
|
91
|
-
* Constructs a Snapshot using the supplied tree.
|
|
92
|
-
* @param root - the root of the tree to use as the contents of the `Snapshot`
|
|
93
|
-
*/
|
|
94
|
-
static fromTree(root: ChangeNode, expensiveValidation?: boolean): Snapshot;
|
|
95
|
-
private constructor();
|
|
96
|
-
/** Return a tree of JSON-compatible `ChangeNode`s representing the current state of this `Snapshot` */
|
|
97
|
-
getChangeNodeTree(): ChangeNode;
|
|
98
|
-
/**
|
|
99
|
-
* Returns the number of nodes in this `Snapshot`
|
|
100
|
-
*/
|
|
101
|
-
get size(): number;
|
|
102
|
-
/**
|
|
103
|
-
* @returns true iff the nodeId exists.
|
|
104
|
-
*/
|
|
105
|
-
hasNode(id: NodeId): boolean;
|
|
106
|
-
/**
|
|
107
|
-
* @returns a `ChangeNode` derived from the `SnapshotNode` in this snapshot with the given `NodeId`.
|
|
108
|
-
*/
|
|
109
|
-
getChangeNode(id: NodeId): ChangeNode;
|
|
110
|
-
/**
|
|
111
|
-
* @returns the `ChangeNode`s derived from the `SnapshotNode`s in this snapshot with the given `NodeId`s.
|
|
112
|
-
*/
|
|
113
|
-
getChangeNodes(nodeIds: readonly NodeId[]): ChangeNode[];
|
|
114
|
-
/**
|
|
115
|
-
* Asserts the forest is in a consistent state.
|
|
116
|
-
*/
|
|
117
|
-
assertConsistent(): void;
|
|
118
|
-
/**
|
|
119
|
-
* Inserts all nodes in a NodeSequence into the forest.
|
|
120
|
-
*/
|
|
121
|
-
addNodes(sequence: Iterable<SnapshotNode>): Snapshot;
|
|
122
|
-
/**
|
|
123
|
-
* Remove all nodes with the given ids from the forest
|
|
124
|
-
*/
|
|
125
|
-
deleteNodes(nodes: Iterable<NodeId>): Snapshot;
|
|
126
|
-
/**
|
|
127
|
-
* Parents a set of detached nodes at a specified place.
|
|
128
|
-
* @param nodesToAttach - the nodes to parent in the specified place. The nodes must already be present in the Snapshot.
|
|
129
|
-
* @param place - the location to insert the nodes.
|
|
130
|
-
*/
|
|
131
|
-
attachRange(nodesToAttach: readonly NodeId[], place: SnapshotPlace): Snapshot;
|
|
132
|
-
/**
|
|
133
|
-
* Detaches a range of nodes from their parent. The detached nodes remain in the Snapshot.
|
|
134
|
-
* @param rangeToDetach - the range of nodes to detach
|
|
135
|
-
*/
|
|
136
|
-
detachRange(rangeToDetach: SnapshotRange): {
|
|
137
|
-
snapshot: Snapshot;
|
|
138
|
-
detached: readonly NodeId[];
|
|
139
|
-
};
|
|
140
|
-
/**
|
|
141
|
-
* Sets a node's value. The node must exist in this `Snapshot`.
|
|
142
|
-
* @param nodeId - the id of the node
|
|
143
|
-
* @param value - the new value
|
|
144
|
-
*/
|
|
145
|
-
setNodeValue(nodeId: NodeId, value: Payload): Snapshot;
|
|
146
|
-
/**
|
|
147
|
-
* @returns the index just after place (which specifies a location between items).
|
|
148
|
-
* Performance note: this is O(siblings in trait).
|
|
149
|
-
*/
|
|
150
|
-
findIndexWithinTrait(place: SnapshotPlace): PlaceIndex;
|
|
151
|
-
/**
|
|
152
|
-
* Returns the node associated with `id` in this `Snapshot`.
|
|
153
|
-
*/
|
|
154
|
-
getSnapshotNode(id: NodeId): SnapshotNode;
|
|
155
|
-
/**
|
|
156
|
-
* Returns the label of the trait that a node is under. Returns undefined if the node is not present or if it is the root node.
|
|
157
|
-
*/
|
|
158
|
-
getTraitLabel(id: NodeId): TraitLabel | undefined;
|
|
159
|
-
/**
|
|
160
|
-
* Returns the parent of a node. Returns undefined if the node does not exist in the snapshot or if it does not have a parent.
|
|
161
|
-
*/
|
|
162
|
-
getParentSnapshotNode(id: NodeId): SnapshotNode | undefined;
|
|
163
|
-
/**
|
|
164
|
-
* @param node - must have a parent.
|
|
165
|
-
*/
|
|
166
|
-
getTraitLocation(node: NodeId): TraitLocation;
|
|
167
|
-
/**
|
|
168
|
-
* @param node - must have a parent.
|
|
169
|
-
* Performance note: this is O(siblings in trait).
|
|
170
|
-
*/
|
|
171
|
-
getIndexInTrait(node: NodeId): TraitNodeIndex;
|
|
172
|
-
/**
|
|
173
|
-
* Return a trait given its location
|
|
174
|
-
* @param traitLocation - the location of the trait
|
|
175
|
-
*/
|
|
176
|
-
getTrait(traitLocation: TraitLocation): readonly NodeId[];
|
|
177
|
-
private getIndexOfSide;
|
|
178
|
-
/** Compares this snapshot to another for equality. */
|
|
179
|
-
equals(snapshot: Snapshot): boolean;
|
|
180
|
-
private iterateNodeDescendants;
|
|
181
|
-
/**
|
|
182
|
-
* Calculate the difference between two `Snapshot`s
|
|
183
|
-
* @param snapshot - the other snapshot to compare to this one
|
|
184
|
-
* @returns A {@link Delta} which nodes must be changed, added, and removed to get from `this` to `snapshot`.
|
|
185
|
-
* The snapshots must share a root.
|
|
186
|
-
*/
|
|
187
|
-
delta(snapshot: Snapshot): Delta<NodeId>;
|
|
188
|
-
[Symbol.iterator](): IterableIterator<SnapshotNode>;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Contains some redundant information. Use only in computations between edits. Do not store.
|
|
192
|
-
* @public
|
|
193
|
-
*/
|
|
194
|
-
export interface NodeInTrait {
|
|
195
|
-
readonly trait: TraitLocation;
|
|
196
|
-
readonly index: TraitNodeIndex;
|
|
197
|
-
}
|
|
198
|
-
//# sourceMappingURL=Snapshot.d.ts.map
|
package/lib/Snapshot.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Snapshot.d.ts","sourceRoot":"","sources":["../src/Snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAU,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CAC5D;AAED;;;;;;GAMG;AACH,oBAAY,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;;GAMG;AACH,oBAAY,cAAc,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAEjF;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,oBAAY,IAAI;IACf,MAAM,IAAI;IACV,KAAK,IAAI;CACT;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACpB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAC,CAA8B;IAExD;;;OAGG;WACW,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,UAAQ,GAAG,QAAQ;IA+B/E,OAAO;IAKP,uGAAuG;IAChG,iBAAiB,IAAI,UAAU;IAItC;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACI,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IAI5C;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,EAAE;IAI/D;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAI/B;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ;IAI3D;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ;IAIrD;;;;OAIG;IACI,WAAW,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,QAAQ;IAMpF;;;OAGG;IACI,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;IAUrG;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ;IAI7D;;;OAGG;IACI,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU;IAO7D;;OAEG;IACI,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;IAIhD;;OAEG;IACI,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxD;;OAEG;IACI,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAQlE;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IASpD;;;OAGG;IACI,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAyBpD;;;OAGG;IACI,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE;IAIhE,OAAO,CAAC,cAAc;IAItB,sDAAsD;IAC/C,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAS1C,OAAO,CAAE,sBAAsB;IAU/B;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAKxC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC;CAG1D;AAOD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAC/B"}
|