@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,194 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { assert, fail } from '../Common';
|
|
7
|
-
import { ReconciliationChange, ReconciliationPath } from '../ReconciliationPath';
|
|
8
|
-
import { Snapshot } from '../Snapshot';
|
|
9
|
-
import { EditStatus } from './PersistedTypes';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Result of applying a transaction.
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
export type EditingResult<TChange> =
|
|
16
|
-
| {
|
|
17
|
-
readonly status: EditStatus.Invalid | EditStatus.Malformed;
|
|
18
|
-
readonly changes: readonly TChange[];
|
|
19
|
-
readonly steps?: undefined;
|
|
20
|
-
readonly before: Snapshot;
|
|
21
|
-
}
|
|
22
|
-
| ValidEditingResult<TChange>;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Result of applying a valid transaction.
|
|
26
|
-
* @public
|
|
27
|
-
*/
|
|
28
|
-
export interface ValidEditingResult<TChange> {
|
|
29
|
-
readonly status: EditStatus.Applied;
|
|
30
|
-
readonly changes: readonly TChange[];
|
|
31
|
-
readonly steps: readonly { resolvedChange: TChange; after: Snapshot }[];
|
|
32
|
-
readonly before: Snapshot;
|
|
33
|
-
readonly after: Snapshot;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* A mutable transaction for applying sequences of changes to a Snapshot.
|
|
38
|
-
* Allows viewing the intermediate states.
|
|
39
|
-
*
|
|
40
|
-
* Contains necessary state to apply changes within an edit to a Snapshot.
|
|
41
|
-
*
|
|
42
|
-
* May have any number of changes applied to make up the edit.
|
|
43
|
-
* Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the
|
|
44
|
-
* results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).
|
|
45
|
-
*
|
|
46
|
-
* No data outside the Transaction is modified by Transaction:
|
|
47
|
-
* the results from `close` must be used to actually submit an `Edit`.
|
|
48
|
-
*/
|
|
49
|
-
export abstract class GenericTransaction<TChange> {
|
|
50
|
-
protected readonly before: Snapshot;
|
|
51
|
-
protected _view: Snapshot;
|
|
52
|
-
protected _status: EditStatus = EditStatus.Applied;
|
|
53
|
-
protected readonly changes: TChange[] = [];
|
|
54
|
-
protected readonly steps: ReconciliationChange<TChange>[] = [];
|
|
55
|
-
protected isOpen = true;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Create and open an edit of the provided `Snapshot`. After applying 0 or more changes, this editor should be closed via `close()`.
|
|
59
|
-
* @param view - the `Snapshot` at which this edit begins. The first change will be applied against this view.
|
|
60
|
-
*/
|
|
61
|
-
public constructor(view: Snapshot) {
|
|
62
|
-
this._view = view;
|
|
63
|
-
this.before = view;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/** The most up-to-date `Snapshot` for this edit. This is the state of the tree after all changes applied so far. */
|
|
67
|
-
public get view(): Snapshot {
|
|
68
|
-
return this._view;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** The status code of the most recent attempted change */
|
|
72
|
-
public get status(): EditStatus {
|
|
73
|
-
return this._status;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/** @returns the final `EditStatus` and `Snapshot` after all changes are applied. */
|
|
77
|
-
public close(): EditingResult<TChange> {
|
|
78
|
-
assert(this.isOpen, 'transaction has already been closed');
|
|
79
|
-
this.isOpen = false;
|
|
80
|
-
if (this.status === EditStatus.Applied) {
|
|
81
|
-
this._status = this.validateOnClose();
|
|
82
|
-
}
|
|
83
|
-
if (this.status === EditStatus.Applied) {
|
|
84
|
-
return {
|
|
85
|
-
status: EditStatus.Applied,
|
|
86
|
-
before: this.before,
|
|
87
|
-
after: this._view,
|
|
88
|
-
changes: this.changes,
|
|
89
|
-
steps: this.steps,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
status: this.status,
|
|
94
|
-
changes: this.changes,
|
|
95
|
-
before: this.before,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Override to provide additional transaction validation when the transaction is closed.
|
|
101
|
-
* Only invoked when a transaction is otherwise valid.
|
|
102
|
-
*/
|
|
103
|
-
protected abstract validateOnClose(): EditStatus;
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* A helper to apply a sequence of changes. Changes will be applied one after the other. If a change fails to apply,
|
|
107
|
-
* the remaining changes in `changes` will be ignored.
|
|
108
|
-
* @param changes - the sequence of changes to apply.
|
|
109
|
-
* @param path - the reconciliation path for the first change.
|
|
110
|
-
* @returns this
|
|
111
|
-
*/
|
|
112
|
-
public applyChanges(changes: Iterable<TChange>, path: ReconciliationPath<TChange> = []): this {
|
|
113
|
-
const iter = changes[Symbol.iterator]();
|
|
114
|
-
const firstChange = iter.next().value;
|
|
115
|
-
let iterResult = iter.next();
|
|
116
|
-
if (iterResult.done === true) {
|
|
117
|
-
for (const change of changes) {
|
|
118
|
-
if (this.applyChange(change, path).status !== EditStatus.Applied) {
|
|
119
|
-
return this;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return this;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (this.applyChange(firstChange, path).status !== EditStatus.Applied) {
|
|
126
|
-
return this;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const ongoingEdit = {
|
|
130
|
-
0: this.steps[this.steps.length - 1],
|
|
131
|
-
before: this.view,
|
|
132
|
-
after: this.view,
|
|
133
|
-
length: 1,
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* We use a Proxy instead of `{ ...path, ...objectWithOngoingEdit }` to avoid eagerly demanding all parts of the path, which may
|
|
138
|
-
* require extensive computation.
|
|
139
|
-
*/
|
|
140
|
-
const pathWithOngoingEdit = new Proxy(path, {
|
|
141
|
-
get: (
|
|
142
|
-
target: ReconciliationPath<TChange>,
|
|
143
|
-
prop: string
|
|
144
|
-
): ReconciliationPath<TChange>[number | 'length'] => {
|
|
145
|
-
if (prop === 'length') {
|
|
146
|
-
return target.length + 1;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return prop === String(target.length) ? ongoingEdit : target[prop];
|
|
150
|
-
},
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
while (iterResult.done !== true) {
|
|
154
|
-
if (this.applyChange(iterResult.value, pathWithOngoingEdit).status !== EditStatus.Applied) {
|
|
155
|
-
return this;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
ongoingEdit[ongoingEdit.length] = this.steps[this.steps.length - 1];
|
|
159
|
-
ongoingEdit.length += 1;
|
|
160
|
-
ongoingEdit.after = this.view;
|
|
161
|
-
iterResult = iter.next();
|
|
162
|
-
}
|
|
163
|
-
return this;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
protected tryResolveChange(change: TChange, path: ReconciliationPath<TChange>): TChange | undefined {
|
|
167
|
-
return change;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Attempt to apply the given change as part of this edit. This method should not be called if a previous change in this edit failed to
|
|
172
|
-
* apply.
|
|
173
|
-
* @param change - the change to apply
|
|
174
|
-
* @param path - the reconciliation path for the change.
|
|
175
|
-
* @returns this
|
|
176
|
-
*/
|
|
177
|
-
public applyChange(change: TChange, path: ReconciliationPath<TChange> = []): this {
|
|
178
|
-
assert(this.isOpen, 'Editor must be open to apply changes.');
|
|
179
|
-
if (this.status !== EditStatus.Applied) {
|
|
180
|
-
fail('Cannot apply change to an edit unless all previous changes have applied');
|
|
181
|
-
}
|
|
182
|
-
const resolvedChange = this.tryResolveChange(change, path);
|
|
183
|
-
if (resolvedChange === undefined) {
|
|
184
|
-
this._status = EditStatus.Invalid;
|
|
185
|
-
return this;
|
|
186
|
-
}
|
|
187
|
-
this.changes.push(change);
|
|
188
|
-
this._status = this.dispatchChange(resolvedChange);
|
|
189
|
-
this.steps.push({ resolvedChange, after: this.view });
|
|
190
|
-
return this;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
protected abstract dispatchChange(change: TChange): EditStatus;
|
|
194
|
-
}
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// All types imported into this file inherit the requirements documented below.
|
|
7
|
-
// These imports are ok because they consist only of type aliases for primitive types,
|
|
8
|
-
// and thus have no impact on serialization as long as the primitive type they are an alias for does not change.
|
|
9
|
-
// This does mean that the various UuidString types must remain strings, and must never change the format unless the process for changing
|
|
10
|
-
// persisted types (as documented below) is followed.
|
|
11
|
-
import { Serializable } from '@fluidframework/datastore-definitions';
|
|
12
|
-
import { Definition, DetachedSequenceId, EditId, NodeId, TraitLabel } from '../Identifiers';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Types for Edits in Fluid Ops and Fluid summaries.
|
|
16
|
-
*
|
|
17
|
-
* Types describing locations in the tree are stable in the presence of other concurrent edits.
|
|
18
|
-
*
|
|
19
|
-
* All types are compatible with Fluid Serializable.
|
|
20
|
-
*
|
|
21
|
-
* These types can only be modified in ways that are both backwards and forwards compatible since they
|
|
22
|
-
* are used in edits, and thus are persisted (using Fluid serialization).
|
|
23
|
-
*
|
|
24
|
-
* This means these types cannot be changed in any way that impacts their Fluid serialization
|
|
25
|
-
* except through a very careful process:
|
|
26
|
-
*
|
|
27
|
-
* 1. The planned change must support all old data, and maintain the exact semantics of it.
|
|
28
|
-
* This means that the change is pretty much limited to adding optional fields,
|
|
29
|
-
* or making required fields optional.
|
|
30
|
-
* 2. Support for the new format must be deployed to all users (This means all applications using SharedTree must do this),
|
|
31
|
-
* and this deployment must be confirmed to be stable and will not be rolled back.
|
|
32
|
-
* 3. Usage of the new format may start.
|
|
33
|
-
*
|
|
34
|
-
* Support for the old format can NEVER be removed: it must be maintained indefinably or old documents will break.
|
|
35
|
-
* Because this process puts requirements on applications using shared tree,
|
|
36
|
-
* step 3 should only ever be done in a Major version update,
|
|
37
|
-
* and must be explicitly called out in the release notes
|
|
38
|
-
* stating which versions of SharedTree are supported for documents modified by the new version.
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* A collection of changes to the tree that are applied atomically along with a unique identifier for the edit.
|
|
43
|
-
* If any individual change fails to apply, the entire Edit will fail to apply.
|
|
44
|
-
* @public
|
|
45
|
-
*/
|
|
46
|
-
export interface Edit<TChange> extends EditBase<TChange> {
|
|
47
|
-
/**
|
|
48
|
-
* Unique identifier for this edit. Must never be reused.
|
|
49
|
-
* Used for referencing and de-duplicating edits.
|
|
50
|
-
*/
|
|
51
|
-
readonly id: EditId;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* A collection of changes to the tree that are applied atomically. If any individual change fails to apply,
|
|
56
|
-
* the entire Edit will fail to apply.
|
|
57
|
-
* @public
|
|
58
|
-
*/
|
|
59
|
-
export interface EditWithoutId<TChange> extends EditBase<TChange> {
|
|
60
|
-
/**
|
|
61
|
-
* Used to explicitly state that EditWithoutId cannot contain an id and prevents type Edit from being assigned to type EditWithoutId.
|
|
62
|
-
*/
|
|
63
|
-
readonly id?: never;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* The information included in an edit.
|
|
68
|
-
* @public
|
|
69
|
-
*/
|
|
70
|
-
export interface EditBase<TChange> {
|
|
71
|
-
/**
|
|
72
|
-
* Actual changes to apply.
|
|
73
|
-
* Applied in order as part of a single transaction.
|
|
74
|
-
*/
|
|
75
|
-
readonly changes: readonly TChange[];
|
|
76
|
-
|
|
77
|
-
// Add more metadata fields as needed in the future.
|
|
78
|
-
// Include "high level"/"Domain Specific"/"Hierarchal" edits for application/domain use in implementing domain aware merge heuristics.
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Json compatible map as object.
|
|
83
|
-
* Keys are TraitLabels,
|
|
84
|
-
* Values are the content of the trait specified by the key.
|
|
85
|
-
* @public
|
|
86
|
-
*/
|
|
87
|
-
export interface TraitMap<TChild> {
|
|
88
|
-
readonly [key: string]: TreeNodeSequence<TChild>;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* A sequence of Nodes that make up a trait under a Node
|
|
93
|
-
* @public
|
|
94
|
-
*/
|
|
95
|
-
export type TreeNodeSequence<TChild> = readonly TChild[];
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Json compatible representation of a payload storing arbitrary Serializable data.
|
|
99
|
-
*
|
|
100
|
-
* Keys starting with "IFluid" are reserved for special use such as the JavaScript feature detection pattern and should not be used.
|
|
101
|
-
*
|
|
102
|
-
* See {@link comparePayloads} for equality semantics and related details (like what is allowed to be lost when serializing)
|
|
103
|
-
*
|
|
104
|
-
* TODO:#51984: Allow opting into heuristic blobbing in snapshots with a special IFluid key.
|
|
105
|
-
*
|
|
106
|
-
* @public
|
|
107
|
-
*/
|
|
108
|
-
export type Payload = Serializable;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* The fields required by a node in a tree
|
|
112
|
-
* @public
|
|
113
|
-
*/
|
|
114
|
-
export interface NodeData {
|
|
115
|
-
readonly payload?: Payload;
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* The meaning of this node.
|
|
119
|
-
* Provides contexts/semantics for this node and its content.
|
|
120
|
-
* Typically use to associate a node with metadata (including a schema) and source code (types, behaviors, etc).
|
|
121
|
-
*/
|
|
122
|
-
readonly definition: Definition;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Identifier which can be used to refer to this Node.
|
|
126
|
-
*/
|
|
127
|
-
readonly identifier: NodeId;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Satisfies `NodeData` and may contain children under traits (which may or may not be `TreeNodes`)
|
|
132
|
-
* @public
|
|
133
|
-
*/
|
|
134
|
-
export interface TreeNode<TChild> extends NodeData {
|
|
135
|
-
readonly traits: TraitMap<TChild>;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Specifies the location of a trait (a labeled sequence of nodes) within the tree.
|
|
140
|
-
* @public
|
|
141
|
-
*/
|
|
142
|
-
export interface TraitLocation {
|
|
143
|
-
readonly parent: NodeId;
|
|
144
|
-
readonly label: TraitLabel;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* JSON-compatible Node type. Objects of type `ChangeNode` will be persisted in `Changes` (under Edits) in the SharedTree history.
|
|
149
|
-
* @public
|
|
150
|
-
*/
|
|
151
|
-
export type ChangeNode = TreeNode<ChangeNode>;
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Node or sequence of Nodes for use in a Build change.
|
|
155
|
-
*
|
|
156
|
-
* Other formats for sub-sequences of Nodes can be added here, and those formats should be supported in blobs as well.
|
|
157
|
-
* Future formats will include referenced blobs containing sequences of Nodes,
|
|
158
|
-
* template based metadata and identity deduplication, and possibly compressed and binary formats.
|
|
159
|
-
* These optimized formats should also be used within snapshots.
|
|
160
|
-
* @public
|
|
161
|
-
*/
|
|
162
|
-
export type BuildNode = TreeNode<BuildNode> | DetachedSequenceId;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* The status code of an attempt to apply the changes in an Edit.
|
|
166
|
-
* @public
|
|
167
|
-
*/
|
|
168
|
-
export enum EditStatus {
|
|
169
|
-
/**
|
|
170
|
-
* The edit contained one or more malformed changes (e.g. was missing required fields such as `id`),
|
|
171
|
-
* or contained a sequence of changes that could not possibly be applied sequentially without error
|
|
172
|
-
* (e.g. an edit which tries to insert the same detached node twice).
|
|
173
|
-
*/
|
|
174
|
-
Malformed,
|
|
175
|
-
/**
|
|
176
|
-
* The edit contained a well-formed sequence of changes that couldn't be applied to the current view,
|
|
177
|
-
* generally because concurrent changes caused one or more merge conflicts.
|
|
178
|
-
*/
|
|
179
|
-
Invalid,
|
|
180
|
-
/**
|
|
181
|
-
* The edit was applied to the current view successfully.
|
|
182
|
-
*/
|
|
183
|
-
Applied,
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Types of ops handled by SharedTree.
|
|
188
|
-
*/
|
|
189
|
-
export enum SharedTreeOpType {
|
|
190
|
-
/** An op that includes edit information. */
|
|
191
|
-
Edit,
|
|
192
|
-
/** Includes a Fluid handle that corresponds to an edit chunk. */
|
|
193
|
-
Handle,
|
|
194
|
-
/** An op that does not affect the tree's state. */
|
|
195
|
-
NoOp,
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Requirements for SharedTree ops.
|
|
200
|
-
*/
|
|
201
|
-
export interface SharedTreeOp {
|
|
202
|
-
type: SharedTreeOpType;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* A SharedTree op that includes edit information.
|
|
207
|
-
*/
|
|
208
|
-
export interface SharedTreeEditOp<TChange> extends SharedTreeOp {
|
|
209
|
-
edit: Edit<TChange>;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* A SharedTree op that includes edit handle information.
|
|
214
|
-
* The handle corresponds to an edit chunk in the edit log.
|
|
215
|
-
*/
|
|
216
|
-
export interface SharedTreeHandleOp extends SharedTreeOp {
|
|
217
|
-
/** The serialized handle to an uploaded edit chunk. */
|
|
218
|
-
editHandle: string;
|
|
219
|
-
/** The index of the first edit in the chunk that corresponds to the handle. */
|
|
220
|
-
startRevision: number;
|
|
221
|
-
}
|
package/src/generic/Summary.ts
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
7
|
-
import { IFluidSerializer, serializeHandles } from '@fluidframework/shared-object-base';
|
|
8
|
-
import { assert, assertNotUndefined } from '../Common';
|
|
9
|
-
import { EditLogSummary, OrderedEditSet } from '../EditLog';
|
|
10
|
-
import { Snapshot } from '../Snapshot';
|
|
11
|
-
import { readFormatVersion, SharedTreeSummary_0_0_2 } from '../SummaryBackCompatibility';
|
|
12
|
-
import { ChangeNode, Edit } from './PersistedTypes';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Format version for summaries that are written.
|
|
16
|
-
* When next changing the format, we should add a new format version variable for the edit-specific summaries and assign it an independent
|
|
17
|
-
* version number.
|
|
18
|
-
*/
|
|
19
|
-
export const formatVersion = '0.0.2';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Handler for summarizing the tree state.
|
|
23
|
-
* The handler is invoked when saving a summary. It accepts a view of the current state of the tree, the sequenced edits known
|
|
24
|
-
* to the SharedTree, and optional helpers for serializing the edit information.
|
|
25
|
-
* @returns a summary of the supplied state.
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
export type SharedTreeSummarizer<TChange> = (
|
|
29
|
-
editLog: OrderedEditSet<TChange>,
|
|
30
|
-
currentView: Snapshot
|
|
31
|
-
) => SharedTreeSummaryBase;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* The minimal information on a SharedTree summary. Contains the summary format version.
|
|
35
|
-
*/
|
|
36
|
-
export interface SharedTreeSummaryBase {
|
|
37
|
-
/**
|
|
38
|
-
* Field on summary under which version is stored.
|
|
39
|
-
*/
|
|
40
|
-
readonly version: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* The contents of a SharedTree summary: the current tree, and the edits needed to get from `initialTree` to the current tree.
|
|
45
|
-
* @public
|
|
46
|
-
*/
|
|
47
|
-
export interface SharedTreeSummary<TChange> extends SharedTreeSummaryBase {
|
|
48
|
-
readonly currentTree: ChangeNode;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Information that can populate an edit log.
|
|
52
|
-
*/
|
|
53
|
-
readonly editHistory?: EditLogSummary<TChange>;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Serializes a SharedTree summary into a JSON string. This may later be used to initialize a SharedTree's state via `deserialize()`
|
|
58
|
-
* Also replaces handle objects with their serialized form.
|
|
59
|
-
*
|
|
60
|
-
* @param summary - The SharedTree summary to serialize.
|
|
61
|
-
* @param serializer - The serializer required to serialize handles in the summary.
|
|
62
|
-
* @param bind - The object handle required to serialize handles in the summary
|
|
63
|
-
*/
|
|
64
|
-
export function serialize(summary: SharedTreeSummaryBase, serializer: IFluidSerializer, bind: IFluidHandle): string {
|
|
65
|
-
return assertNotUndefined(serializeHandles(summary, serializer, bind));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Preserves the full history in the generated summary.
|
|
70
|
-
* @public
|
|
71
|
-
*/
|
|
72
|
-
export function fullHistorySummarizer<TChange>(
|
|
73
|
-
editLog: OrderedEditSet<TChange>,
|
|
74
|
-
currentView: Snapshot
|
|
75
|
-
): SharedTreeSummary_0_0_2<TChange> {
|
|
76
|
-
const { editChunks, editIds } = editLog.getEditLogSummary();
|
|
77
|
-
|
|
78
|
-
const sequencedEdits: Edit<TChange>[] = [];
|
|
79
|
-
let idIndex = 0;
|
|
80
|
-
editChunks.forEach(({ chunk }) => {
|
|
81
|
-
assert(
|
|
82
|
-
Array.isArray(chunk),
|
|
83
|
-
'Handles should not be included in the summary until format version 0.1.0 is being written.'
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
chunk.forEach(({ changes }) => {
|
|
87
|
-
sequencedEdits.push({
|
|
88
|
-
changes,
|
|
89
|
-
id: assertNotUndefined(editIds[idIndex++], 'Number of edits should match number of edit IDs.'),
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
return {
|
|
95
|
-
currentTree: currentView.getChangeNodeTree(),
|
|
96
|
-
sequencedEdits,
|
|
97
|
-
version: formatVersion,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Generates a summary with format version 0.1.0. This will prefer handles over edits in edit chunks where possible.
|
|
103
|
-
*/
|
|
104
|
-
export function fullHistorySummarizer_0_1_0<TChange>(
|
|
105
|
-
editLog: OrderedEditSet<TChange>,
|
|
106
|
-
currentView: Snapshot
|
|
107
|
-
): SharedTreeSummary<TChange> {
|
|
108
|
-
return {
|
|
109
|
-
currentTree: currentView.getChangeNodeTree(),
|
|
110
|
-
editHistory: editLog.getEditLogSummary(true),
|
|
111
|
-
version: readFormatVersion,
|
|
112
|
-
};
|
|
113
|
-
}
|
package/src/generic/index.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// API Exports
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
EditCommittedHandler,
|
|
10
|
-
EditCommittedEventArguments,
|
|
11
|
-
ISharedTreeEvents,
|
|
12
|
-
GenericSharedTree,
|
|
13
|
-
SharedTreeEvent,
|
|
14
|
-
SharedTreeDiagnosticEvent,
|
|
15
|
-
} from './GenericSharedTree';
|
|
16
|
-
export {
|
|
17
|
-
Edit,
|
|
18
|
-
EditWithoutId,
|
|
19
|
-
EditBase,
|
|
20
|
-
TraitMap,
|
|
21
|
-
TreeNodeSequence,
|
|
22
|
-
Payload,
|
|
23
|
-
NodeData,
|
|
24
|
-
TreeNode,
|
|
25
|
-
ChangeNode,
|
|
26
|
-
BuildNode,
|
|
27
|
-
EditStatus,
|
|
28
|
-
TraitLocation,
|
|
29
|
-
SharedTreeOpType,
|
|
30
|
-
} from './PersistedTypes';
|
|
31
|
-
export { newEdit, newEditId } from './GenericEditUtilities';
|
|
32
|
-
export { GenericTransaction, EditingResult, ValidEditingResult } from './GenericTransaction';
|
|
33
|
-
export {
|
|
34
|
-
SharedTreeSummary,
|
|
35
|
-
SharedTreeSummaryBase,
|
|
36
|
-
SharedTreeSummarizer,
|
|
37
|
-
fullHistorySummarizer,
|
|
38
|
-
fullHistorySummarizer_0_1_0,
|
|
39
|
-
formatVersion,
|
|
40
|
-
serialize,
|
|
41
|
-
} from './Summary';
|