@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,41 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { NodeId, DetachedSequenceId } from '../Identifiers';
|
|
6
|
-
import { GenericTransaction, BuildNode, EditStatus } from '../generic';
|
|
7
|
-
import { Snapshot, SnapshotNode } from '../Snapshot';
|
|
8
|
-
import { Change } from './PersistedTypes';
|
|
9
|
-
/**
|
|
10
|
-
* A mutable transaction for applying sequences of changes to a Snapshot.
|
|
11
|
-
* Allows viewing the intermediate states.
|
|
12
|
-
*
|
|
13
|
-
* Contains necessary state to apply changes within an edit to a Snapshot.
|
|
14
|
-
*
|
|
15
|
-
* May have any number of changes applied to make up the edit.
|
|
16
|
-
* Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the
|
|
17
|
-
* results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).
|
|
18
|
-
*
|
|
19
|
-
* No data outside the Transaction is modified by Transaction:
|
|
20
|
-
* the results from `close` must be used to actually submit an `Edit`.
|
|
21
|
-
*/
|
|
22
|
-
export declare class Transaction extends GenericTransaction<Change> {
|
|
23
|
-
protected readonly detached: Map<DetachedSequenceId, readonly NodeId[]>;
|
|
24
|
-
static factory(snapshot: Snapshot): Transaction;
|
|
25
|
-
protected validateOnClose(): EditStatus;
|
|
26
|
-
protected dispatchChange(change: Change): EditStatus;
|
|
27
|
-
private applyBuild;
|
|
28
|
-
private applyInsert;
|
|
29
|
-
private applyDetach;
|
|
30
|
-
private applyConstraint;
|
|
31
|
-
private applySetValue;
|
|
32
|
-
/**
|
|
33
|
-
* Generates snapshot nodes from the supplied edit nodes.
|
|
34
|
-
* Invokes onCreateNode for each new snapshot node, and halts creation early if it returns true.
|
|
35
|
-
* Invokes onInvalidDetachedId and halts early for any invalid detached IDs referenced in the edit node sequence.
|
|
36
|
-
* @returns all the top-level node IDs in `sequence` (both from nodes and from detached sequences).
|
|
37
|
-
*/
|
|
38
|
-
protected createSnapshotNodesForTree(sequence: Iterable<BuildNode>, onCreateNode: (id: NodeId, node: SnapshotNode) => boolean, onInvalidDetachedId: () => void): NodeId[] | undefined;
|
|
39
|
-
private getDetachedNodeIds;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=Transaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/default-edits/Transaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAc,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAS,MAAM,EAAsE,MAAM,kBAAkB,CAAC;AAUrH;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAa;WAEtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW;IAItD,SAAS,CAAC,eAAe,IAAI,UAAU;IAKvC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAiBpD,OAAO,CAAC,UAAU;IAyClB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;IASrB;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CACnC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,OAAO,EACzD,mBAAmB,EAAE,MAAM,IAAI,GAC7B,MAAM,EAAE,GAAG,SAAS;IAuDvB,OAAO,CAAC,kBAAkB;CAc1B"}
|
|
@@ -1,225 +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.Transaction = void 0;
|
|
8
|
-
const Common_1 = require("../Common");
|
|
9
|
-
const generic_1 = require("../generic");
|
|
10
|
-
const Checkout_1 = require("../Checkout");
|
|
11
|
-
const PersistedTypes_1 = require("./PersistedTypes");
|
|
12
|
-
const EditUtilities_1 = require("./EditUtilities");
|
|
13
|
-
/**
|
|
14
|
-
* A mutable transaction for applying sequences of changes to a Snapshot.
|
|
15
|
-
* Allows viewing the intermediate states.
|
|
16
|
-
*
|
|
17
|
-
* Contains necessary state to apply changes within an edit to a Snapshot.
|
|
18
|
-
*
|
|
19
|
-
* May have any number of changes applied to make up the edit.
|
|
20
|
-
* Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the
|
|
21
|
-
* results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).
|
|
22
|
-
*
|
|
23
|
-
* No data outside the Transaction is modified by Transaction:
|
|
24
|
-
* the results from `close` must be used to actually submit an `Edit`.
|
|
25
|
-
*/
|
|
26
|
-
class Transaction extends generic_1.GenericTransaction {
|
|
27
|
-
constructor() {
|
|
28
|
-
super(...arguments);
|
|
29
|
-
this.detached = new Map();
|
|
30
|
-
}
|
|
31
|
-
static factory(snapshot) {
|
|
32
|
-
return new Transaction(snapshot);
|
|
33
|
-
}
|
|
34
|
-
validateOnClose() {
|
|
35
|
-
// Making the policy choice that storing a detached sequences in an edit but not using it is an error.
|
|
36
|
-
return this.detached.size !== 0 ? generic_1.EditStatus.Malformed : generic_1.EditStatus.Applied;
|
|
37
|
-
}
|
|
38
|
-
dispatchChange(change) {
|
|
39
|
-
switch (change.type) {
|
|
40
|
-
case PersistedTypes_1.ChangeType.Build:
|
|
41
|
-
return this.applyBuild(change);
|
|
42
|
-
case PersistedTypes_1.ChangeType.Insert:
|
|
43
|
-
return this.applyInsert(change);
|
|
44
|
-
case PersistedTypes_1.ChangeType.Detach:
|
|
45
|
-
return this.applyDetach(change);
|
|
46
|
-
case PersistedTypes_1.ChangeType.Constraint:
|
|
47
|
-
return this.applyConstraint(change);
|
|
48
|
-
case PersistedTypes_1.ChangeType.SetValue:
|
|
49
|
-
return this.applySetValue(change);
|
|
50
|
-
default:
|
|
51
|
-
return Common_1.fail('Attempted to apply unsupported change');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
applyBuild(change) {
|
|
55
|
-
if (this.detached.has(change.destination)) {
|
|
56
|
-
return generic_1.EditStatus.Malformed;
|
|
57
|
-
}
|
|
58
|
-
let idAlreadyPresent = false;
|
|
59
|
-
let duplicateIdInBuild = false;
|
|
60
|
-
const map = new Map();
|
|
61
|
-
let detachedSequenceNotFound = false;
|
|
62
|
-
const newIds = this.createSnapshotNodesForTree(change.source, (id, snapshotNode) => {
|
|
63
|
-
if (map.has(id)) {
|
|
64
|
-
duplicateIdInBuild = true;
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
if (this.view.hasNode(id)) {
|
|
68
|
-
idAlreadyPresent = true;
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
map.set(id, snapshotNode);
|
|
72
|
-
return false;
|
|
73
|
-
}, () => {
|
|
74
|
-
detachedSequenceNotFound = true;
|
|
75
|
-
});
|
|
76
|
-
if (detachedSequenceNotFound || duplicateIdInBuild) {
|
|
77
|
-
return generic_1.EditStatus.Malformed;
|
|
78
|
-
}
|
|
79
|
-
if (idAlreadyPresent) {
|
|
80
|
-
return generic_1.EditStatus.Invalid;
|
|
81
|
-
}
|
|
82
|
-
const view = this.view.addNodes(map.values());
|
|
83
|
-
this._view = view;
|
|
84
|
-
this.detached.set(change.destination, Common_1.assertNotUndefined(newIds));
|
|
85
|
-
return generic_1.EditStatus.Applied;
|
|
86
|
-
}
|
|
87
|
-
applyInsert(change) {
|
|
88
|
-
const source = this.detached.get(change.source);
|
|
89
|
-
if (source === undefined) {
|
|
90
|
-
return generic_1.EditStatus.Malformed;
|
|
91
|
-
}
|
|
92
|
-
const destinationChangeResult = EditUtilities_1.validateStablePlace(this.view, change.destination);
|
|
93
|
-
if (destinationChangeResult !== Checkout_1.EditValidationResult.Valid) {
|
|
94
|
-
return destinationChangeResult === Checkout_1.EditValidationResult.Invalid ? generic_1.EditStatus.Invalid : generic_1.EditStatus.Malformed;
|
|
95
|
-
}
|
|
96
|
-
this.detached.delete(change.source);
|
|
97
|
-
this._view = EditUtilities_1.insertIntoTrait(this.view, source, change.destination);
|
|
98
|
-
return generic_1.EditStatus.Applied;
|
|
99
|
-
}
|
|
100
|
-
applyDetach(change) {
|
|
101
|
-
const sourceChangeResult = EditUtilities_1.validateStableRange(this.view, change.source);
|
|
102
|
-
if (sourceChangeResult !== Checkout_1.EditValidationResult.Valid) {
|
|
103
|
-
return sourceChangeResult === Checkout_1.EditValidationResult.Invalid ? generic_1.EditStatus.Invalid : generic_1.EditStatus.Malformed;
|
|
104
|
-
}
|
|
105
|
-
const result = EditUtilities_1.detachRange(this.view, change.source);
|
|
106
|
-
let modifiedView = result.snapshot;
|
|
107
|
-
const { detached } = result;
|
|
108
|
-
// Store or dispose detached
|
|
109
|
-
if (change.destination !== undefined) {
|
|
110
|
-
if (this.detached.has(change.destination)) {
|
|
111
|
-
return generic_1.EditStatus.Malformed;
|
|
112
|
-
}
|
|
113
|
-
this.detached.set(change.destination, detached);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
modifiedView = modifiedView.deleteNodes(detached);
|
|
117
|
-
}
|
|
118
|
-
this._view = modifiedView;
|
|
119
|
-
return generic_1.EditStatus.Applied;
|
|
120
|
-
}
|
|
121
|
-
applyConstraint(change) {
|
|
122
|
-
// TODO: Implement identityHash and contentHash
|
|
123
|
-
Common_1.assert(change.identityHash === undefined, 'identityHash constraint is not implemented');
|
|
124
|
-
Common_1.assert(change.contentHash === undefined, 'contentHash constraint is not implemented');
|
|
125
|
-
const sourceChangeResult = EditUtilities_1.validateStableRange(this.view, change.toConstrain);
|
|
126
|
-
const onViolation = change.effect === PersistedTypes_1.ConstraintEffect.ValidRetry ? generic_1.EditStatus.Applied : generic_1.EditStatus.Invalid;
|
|
127
|
-
if (sourceChangeResult !== Checkout_1.EditValidationResult.Valid) {
|
|
128
|
-
return sourceChangeResult === Checkout_1.EditValidationResult.Invalid ? onViolation : generic_1.EditStatus.Malformed;
|
|
129
|
-
}
|
|
130
|
-
const { start, end } = EditUtilities_1.rangeFromStableRange(this.view, change.toConstrain);
|
|
131
|
-
const startIndex = this.view.findIndexWithinTrait(start);
|
|
132
|
-
const endIndex = this.view.findIndexWithinTrait(end);
|
|
133
|
-
if (change.length !== undefined && change.length !== endIndex - startIndex) {
|
|
134
|
-
return onViolation;
|
|
135
|
-
}
|
|
136
|
-
if (change.parentNode !== undefined && change.parentNode !== end.trait.parent) {
|
|
137
|
-
return onViolation;
|
|
138
|
-
}
|
|
139
|
-
if (change.label !== undefined && change.label !== end.trait.label) {
|
|
140
|
-
return onViolation;
|
|
141
|
-
}
|
|
142
|
-
return generic_1.EditStatus.Applied;
|
|
143
|
-
}
|
|
144
|
-
applySetValue(change) {
|
|
145
|
-
if (!this.view.hasNode(change.nodeToModify)) {
|
|
146
|
-
return generic_1.EditStatus.Invalid;
|
|
147
|
-
}
|
|
148
|
-
this._view = this.view.setNodeValue(change.nodeToModify, change.payload);
|
|
149
|
-
return generic_1.EditStatus.Applied;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Generates snapshot nodes from the supplied edit nodes.
|
|
153
|
-
* Invokes onCreateNode for each new snapshot node, and halts creation early if it returns true.
|
|
154
|
-
* Invokes onInvalidDetachedId and halts early for any invalid detached IDs referenced in the edit node sequence.
|
|
155
|
-
* @returns all the top-level node IDs in `sequence` (both from nodes and from detached sequences).
|
|
156
|
-
*/
|
|
157
|
-
createSnapshotNodesForTree(sequence, onCreateNode, onInvalidDetachedId) {
|
|
158
|
-
const topLevelIds = [];
|
|
159
|
-
const unprocessed = [];
|
|
160
|
-
for (const buildNode of sequence) {
|
|
161
|
-
if (EditUtilities_1.isDetachedSequenceId(buildNode)) {
|
|
162
|
-
const detachedIds = this.getDetachedNodeIds(buildNode, onInvalidDetachedId);
|
|
163
|
-
if (detachedIds === undefined) {
|
|
164
|
-
return undefined;
|
|
165
|
-
}
|
|
166
|
-
topLevelIds.push(...detachedIds);
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
unprocessed.push(buildNode);
|
|
170
|
-
topLevelIds.push(buildNode.identifier);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
while (unprocessed.length > 0) {
|
|
174
|
-
const node = unprocessed.pop();
|
|
175
|
-
Common_1.assert(node !== undefined && !EditUtilities_1.isDetachedSequenceId(node));
|
|
176
|
-
const traits = new Map();
|
|
177
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
178
|
-
for (const key in node.traits) {
|
|
179
|
-
if (Object.prototype.hasOwnProperty.call(node.traits, key)) {
|
|
180
|
-
const children = node.traits[key];
|
|
181
|
-
if (children.length > 0) {
|
|
182
|
-
const childIds = [];
|
|
183
|
-
for (const child of children) {
|
|
184
|
-
if (EditUtilities_1.isDetachedSequenceId(child)) {
|
|
185
|
-
const detachedIds = this.getDetachedNodeIds(child, onInvalidDetachedId);
|
|
186
|
-
if (detachedIds === undefined) {
|
|
187
|
-
return undefined;
|
|
188
|
-
}
|
|
189
|
-
childIds.push(...detachedIds);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
childIds.push(child.identifier);
|
|
193
|
-
unprocessed.push(child);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
traits.set(key, childIds);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
const newNode = {
|
|
201
|
-
identifier: node.identifier,
|
|
202
|
-
definition: node.definition,
|
|
203
|
-
traits,
|
|
204
|
-
};
|
|
205
|
-
Common_1.copyPropertyIfDefined(node, newNode, 'payload');
|
|
206
|
-
if (onCreateNode(newNode.identifier, newNode)) {
|
|
207
|
-
return undefined;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return topLevelIds;
|
|
211
|
-
}
|
|
212
|
-
getDetachedNodeIds(detachedId, onInvalidDetachedId) {
|
|
213
|
-
// Retrieve the detached sequence from the void.
|
|
214
|
-
const detachedNodeIds = this.detached.get(detachedId);
|
|
215
|
-
if (detachedNodeIds === undefined) {
|
|
216
|
-
onInvalidDetachedId();
|
|
217
|
-
return undefined;
|
|
218
|
-
}
|
|
219
|
-
// Since we have retrieved the sequence, remove it from the void to prevent a second tree from multi-parenting it later
|
|
220
|
-
this.detached.delete(detachedId);
|
|
221
|
-
return detachedNodeIds;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
exports.Transaction = Transaction;
|
|
225
|
-
//# sourceMappingURL=Transaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/default-edits/Transaction.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sCAAoF;AAEpF,wCAAuE;AAEvE,0CAAmD;AACnD,qDAAqH;AACrH,mDAOyB;AAEzB;;;;;;;;;;;;GAYG;AACH,MAAa,WAAY,SAAQ,4BAA0B;IAA3D;;QACoB,aAAQ,GAA+C,IAAI,GAAG,EAAE,CAAC;IAmOrF,CAAC;IAjOO,MAAM,CAAC,OAAO,CAAC,QAAkB;QACvC,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAES,eAAe;QACxB,sGAAsG;QACtG,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAU,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAU,CAAC,OAAO,CAAC;IAC7E,CAAC;IAES,cAAc,CAAC,MAAc;QACtC,QAAQ,MAAM,CAAC,IAAI,EAAE;YACpB,KAAK,2BAAU,CAAC,KAAK;gBACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChC,KAAK,2BAAU,CAAC,MAAM;gBACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,2BAAU,CAAC,MAAM;gBACrB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,2BAAU,CAAC,UAAU;gBACzB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,2BAAU,CAAC,QAAQ;gBACvB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACnC;gBACC,OAAO,aAAI,CAAC,uCAAuC,CAAC,CAAC;SACtD;IACF,CAAC;IAEO,UAAU,CAAC,MAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YAC1C,OAAO,oBAAU,CAAC,SAAS,CAAC;SAC5B;QAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC5C,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAC7C,MAAM,CAAC,MAAM,EACb,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE;YACpB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAChB,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC1B,gBAAgB,GAAG,IAAI,CAAC;gBACxB,OAAO,IAAI,CAAC;aACZ;YACD,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACd,CAAC,EACD,GAAG,EAAE;YACJ,wBAAwB,GAAG,IAAI,CAAC;QACjC,CAAC,CACD,CAAC;QAEF,IAAI,wBAAwB,IAAI,kBAAkB,EAAE;YACnD,OAAO,oBAAU,CAAC,SAAS,CAAC;SAC5B;QACD,IAAI,gBAAgB,EAAE;YACrB,OAAO,oBAAU,CAAC,OAAO,CAAC;SAC1B;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,2BAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,OAAO,oBAAU,CAAC,OAAO,CAAC;IAC3B,CAAC;IAEO,WAAW,CAAC,MAAc;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,OAAO,oBAAU,CAAC,SAAS,CAAC;SAC5B;QAED,MAAM,uBAAuB,GAAG,mCAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACnF,IAAI,uBAAuB,KAAK,+BAAoB,CAAC,KAAK,EAAE;YAC3D,OAAO,uBAAuB,KAAK,+BAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAU,CAAC,SAAS,CAAC;SAC5G;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,+BAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,oBAAU,CAAC,OAAO,CAAC;IAC3B,CAAC;IAEO,WAAW,CAAC,MAAc;QACjC,MAAM,kBAAkB,GAAG,mCAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,kBAAkB,KAAK,+BAAoB,CAAC,KAAK,EAAE;YACtD,OAAO,kBAAkB,KAAK,+BAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAU,CAAC,SAAS,CAAC;SACvG;QAED,MAAM,MAAM,GAAG,2BAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAE5B,4BAA4B;QAC5B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;gBAC1C,OAAO,oBAAU,CAAC,SAAS,CAAC;aAC5B;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;SAChD;aAAM;YACN,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1B,OAAO,oBAAU,CAAC,OAAO,CAAC;IAC3B,CAAC;IAEO,eAAe,CAAC,MAAkB;QACzC,+CAA+C;QAC/C,eAAM,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,4CAA4C,CAAC,CAAC;QACxF,eAAM,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,2CAA2C,CAAC,CAAC;QAEtF,MAAM,kBAAkB,GAAG,mCAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,iCAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAU,CAAC,OAAO,CAAC;QAC5G,IAAI,kBAAkB,KAAK,+BAAoB,CAAC,KAAK,EAAE;YACtD,OAAO,kBAAkB,KAAK,+BAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAU,CAAC,SAAS,CAAC;SAChG;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,oCAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,GAAG,UAAU,EAAE;YAC3E,OAAO,WAAW,CAAC;SACnB;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;YAC9E,OAAO,WAAW,CAAC;SACnB;QAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE;YACnE,OAAO,WAAW,CAAC;SACnB;QAED,OAAO,oBAAU,CAAC,OAAO,CAAC;IAC3B,CAAC;IAEO,aAAa,CAAC,MAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;YAC5C,OAAO,oBAAU,CAAC,OAAO,CAAC;SAC1B;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzE,OAAO,oBAAU,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACO,0BAA0B,CACnC,QAA6B,EAC7B,YAAyD,EACzD,mBAA+B;QAE/B,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;YACjC,IAAI,oCAAoB,CAAC,SAAS,CAAC,EAAE;gBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;gBAC5E,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC9B,OAAO,SAAS,CAAC;iBACjB;gBACD,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;aACjC;iBAAM;gBACN,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACvC;SACD;QACD,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC/B,eAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,oCAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;YAExD,gDAAgD;YAChD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;oBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACxB,MAAM,QAAQ,GAAa,EAAE,CAAC;wBAC9B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;4BAC7B,IAAI,oCAAoB,CAAC,KAAK,CAAC,EAAE;gCAChC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;gCACxE,IAAI,WAAW,KAAK,SAAS,EAAE;oCAC9B,OAAO,SAAS,CAAC;iCACjB;gCACD,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;6BAC9B;iCAAM;gCACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gCAChC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6BACxB;yBACD;wBACD,MAAM,CAAC,GAAG,CAAC,GAAiB,EAAE,QAAQ,CAAC,CAAC;qBACxC;iBACD;aACD;YACD,MAAM,OAAO,GAAiB;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM;aACN,CAAC;YACF,8BAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAChD,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC9C,OAAO,SAAS,CAAC;aACjB;SACD;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAEO,kBAAkB,CACzB,UAA8B,EAC9B,mBAA+B;QAE/B,gDAAgD;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,eAAe,KAAK,SAAS,EAAE;YAClC,mBAAmB,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;SACjB;QACD,uHAAuH;QACvH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,eAAe,CAAC;IACxB,CAAC;CACD;AApOD,kCAoOC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, assertNotUndefined, copyPropertyIfDefined, fail } from '../Common';\nimport { NodeId, DetachedSequenceId, TraitLabel } from '../Identifiers';\nimport { GenericTransaction, BuildNode, EditStatus } from '../generic';\nimport { Snapshot, SnapshotNode } from '../Snapshot';\nimport { EditValidationResult } from '../Checkout';\nimport { Build, Change, ChangeType, Constraint, ConstraintEffect, Detach, Insert, SetValue } from './PersistedTypes';\nimport {\n\tdetachRange,\n\tinsertIntoTrait,\n\trangeFromStableRange,\n\tvalidateStablePlace,\n\tvalidateStableRange,\n\tisDetachedSequenceId,\n} from './EditUtilities';\n\n/**\n * A mutable transaction for applying sequences of changes to a Snapshot.\n * Allows viewing the intermediate states.\n *\n * Contains necessary state to apply changes within an edit to a Snapshot.\n *\n * May have any number of changes applied to make up the edit.\n * Use `close` to complete the transaction, returning the array of changes and an EditingResult showing the\n * results of applying the changes as an Edit to the initial Snapshot (passed to the constructor).\n *\n * No data outside the Transaction is modified by Transaction:\n * the results from `close` must be used to actually submit an `Edit`.\n */\nexport class Transaction extends GenericTransaction<Change> {\n\tprotected readonly detached: Map<DetachedSequenceId, readonly NodeId[]> = new Map();\n\n\tpublic static factory(snapshot: Snapshot): Transaction {\n\t\treturn new Transaction(snapshot);\n\t}\n\n\tprotected validateOnClose(): EditStatus {\n\t\t// Making the policy choice that storing a detached sequences in an edit but not using it is an error.\n\t\treturn this.detached.size !== 0 ? EditStatus.Malformed : EditStatus.Applied;\n\t}\n\n\tprotected dispatchChange(change: Change): EditStatus {\n\t\tswitch (change.type) {\n\t\t\tcase ChangeType.Build:\n\t\t\t\treturn this.applyBuild(change);\n\t\t\tcase ChangeType.Insert:\n\t\t\t\treturn this.applyInsert(change);\n\t\t\tcase ChangeType.Detach:\n\t\t\t\treturn this.applyDetach(change);\n\t\t\tcase ChangeType.Constraint:\n\t\t\t\treturn this.applyConstraint(change);\n\t\t\tcase ChangeType.SetValue:\n\t\t\t\treturn this.applySetValue(change);\n\t\t\tdefault:\n\t\t\t\treturn fail('Attempted to apply unsupported change');\n\t\t}\n\t}\n\n\tprivate applyBuild(change: Build): EditStatus {\n\t\tif (this.detached.has(change.destination)) {\n\t\t\treturn EditStatus.Malformed;\n\t\t}\n\n\t\tlet idAlreadyPresent = false;\n\t\tlet duplicateIdInBuild = false;\n\t\tconst map = new Map<NodeId, SnapshotNode>();\n\t\tlet detachedSequenceNotFound = false;\n\t\tconst newIds = this.createSnapshotNodesForTree(\n\t\t\tchange.source,\n\t\t\t(id, snapshotNode) => {\n\t\t\t\tif (map.has(id)) {\n\t\t\t\t\tduplicateIdInBuild = true;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (this.view.hasNode(id)) {\n\t\t\t\t\tidAlreadyPresent = true;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tmap.set(id, snapshotNode);\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tdetachedSequenceNotFound = true;\n\t\t\t}\n\t\t);\n\n\t\tif (detachedSequenceNotFound || duplicateIdInBuild) {\n\t\t\treturn EditStatus.Malformed;\n\t\t}\n\t\tif (idAlreadyPresent) {\n\t\t\treturn EditStatus.Invalid;\n\t\t}\n\n\t\tconst view = this.view.addNodes(map.values());\n\t\tthis._view = view;\n\t\tthis.detached.set(change.destination, assertNotUndefined(newIds));\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applyInsert(change: Insert): EditStatus {\n\t\tconst source = this.detached.get(change.source);\n\t\tif (source === undefined) {\n\t\t\treturn EditStatus.Malformed;\n\t\t}\n\n\t\tconst destinationChangeResult = validateStablePlace(this.view, change.destination);\n\t\tif (destinationChangeResult !== EditValidationResult.Valid) {\n\t\t\treturn destinationChangeResult === EditValidationResult.Invalid ? EditStatus.Invalid : EditStatus.Malformed;\n\t\t}\n\n\t\tthis.detached.delete(change.source);\n\t\tthis._view = insertIntoTrait(this.view, source, change.destination);\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applyDetach(change: Detach): EditStatus {\n\t\tconst sourceChangeResult = validateStableRange(this.view, change.source);\n\t\tif (sourceChangeResult !== EditValidationResult.Valid) {\n\t\t\treturn sourceChangeResult === EditValidationResult.Invalid ? EditStatus.Invalid : EditStatus.Malformed;\n\t\t}\n\n\t\tconst result = detachRange(this.view, change.source);\n\t\tlet modifiedView = result.snapshot;\n\t\tconst { detached } = result;\n\n\t\t// Store or dispose detached\n\t\tif (change.destination !== undefined) {\n\t\t\tif (this.detached.has(change.destination)) {\n\t\t\t\treturn EditStatus.Malformed;\n\t\t\t}\n\t\t\tthis.detached.set(change.destination, detached);\n\t\t} else {\n\t\t\tmodifiedView = modifiedView.deleteNodes(detached);\n\t\t}\n\n\t\tthis._view = modifiedView;\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applyConstraint(change: Constraint): EditStatus {\n\t\t// TODO: Implement identityHash and contentHash\n\t\tassert(change.identityHash === undefined, 'identityHash constraint is not implemented');\n\t\tassert(change.contentHash === undefined, 'contentHash constraint is not implemented');\n\n\t\tconst sourceChangeResult = validateStableRange(this.view, change.toConstrain);\n\t\tconst onViolation = change.effect === ConstraintEffect.ValidRetry ? EditStatus.Applied : EditStatus.Invalid;\n\t\tif (sourceChangeResult !== EditValidationResult.Valid) {\n\t\t\treturn sourceChangeResult === EditValidationResult.Invalid ? onViolation : EditStatus.Malformed;\n\t\t}\n\n\t\tconst { start, end } = rangeFromStableRange(this.view, change.toConstrain);\n\t\tconst startIndex = this.view.findIndexWithinTrait(start);\n\t\tconst endIndex = this.view.findIndexWithinTrait(end);\n\n\t\tif (change.length !== undefined && change.length !== endIndex - startIndex) {\n\t\t\treturn onViolation;\n\t\t}\n\n\t\tif (change.parentNode !== undefined && change.parentNode !== end.trait.parent) {\n\t\t\treturn onViolation;\n\t\t}\n\n\t\tif (change.label !== undefined && change.label !== end.trait.label) {\n\t\t\treturn onViolation;\n\t\t}\n\n\t\treturn EditStatus.Applied;\n\t}\n\n\tprivate applySetValue(change: SetValue): EditStatus {\n\t\tif (!this.view.hasNode(change.nodeToModify)) {\n\t\t\treturn EditStatus.Invalid;\n\t\t}\n\n\t\tthis._view = this.view.setNodeValue(change.nodeToModify, change.payload);\n\t\treturn EditStatus.Applied;\n\t}\n\n\t/**\n\t * Generates snapshot nodes from the supplied edit nodes.\n\t * Invokes onCreateNode for each new snapshot node, and halts creation early if it returns true.\n\t * Invokes onInvalidDetachedId and halts early for any invalid detached IDs referenced in the edit node sequence.\n\t * @returns all the top-level node IDs in `sequence` (both from nodes and from detached sequences).\n\t */\n\tprotected createSnapshotNodesForTree(\n\t\tsequence: Iterable<BuildNode>,\n\t\tonCreateNode: (id: NodeId, node: SnapshotNode) => boolean,\n\t\tonInvalidDetachedId: () => void\n\t): NodeId[] | undefined {\n\t\tconst topLevelIds: NodeId[] = [];\n\t\tconst unprocessed: BuildNode[] = [];\n\t\tfor (const buildNode of sequence) {\n\t\t\tif (isDetachedSequenceId(buildNode)) {\n\t\t\t\tconst detachedIds = this.getDetachedNodeIds(buildNode, onInvalidDetachedId);\n\t\t\t\tif (detachedIds === undefined) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\ttopLevelIds.push(...detachedIds);\n\t\t\t} else {\n\t\t\t\tunprocessed.push(buildNode);\n\t\t\t\ttopLevelIds.push(buildNode.identifier);\n\t\t\t}\n\t\t}\n\t\twhile (unprocessed.length > 0) {\n\t\t\tconst node = unprocessed.pop();\n\t\t\tassert(node !== undefined && !isDetachedSequenceId(node));\n\t\t\tconst traits = new Map<TraitLabel, readonly NodeId[]>();\n\n\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\tfor (const key in node.traits) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(node.traits, key)) {\n\t\t\t\t\tconst children = node.traits[key];\n\t\t\t\t\tif (children.length > 0) {\n\t\t\t\t\t\tconst childIds: NodeId[] = [];\n\t\t\t\t\t\tfor (const child of children) {\n\t\t\t\t\t\t\tif (isDetachedSequenceId(child)) {\n\t\t\t\t\t\t\t\tconst detachedIds = this.getDetachedNodeIds(child, onInvalidDetachedId);\n\t\t\t\t\t\t\t\tif (detachedIds === undefined) {\n\t\t\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchildIds.push(...detachedIds);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tchildIds.push(child.identifier);\n\t\t\t\t\t\t\t\tunprocessed.push(child);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttraits.set(key as TraitLabel, childIds);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst newNode: SnapshotNode = {\n\t\t\t\tidentifier: node.identifier,\n\t\t\t\tdefinition: node.definition,\n\t\t\t\ttraits,\n\t\t\t};\n\t\t\tcopyPropertyIfDefined(node, newNode, 'payload');\n\t\t\tif (onCreateNode(newNode.identifier, newNode)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn topLevelIds;\n\t}\n\n\tprivate getDetachedNodeIds(\n\t\tdetachedId: DetachedSequenceId,\n\t\tonInvalidDetachedId: () => void\n\t): readonly NodeId[] | undefined {\n\t\t// Retrieve the detached sequence from the void.\n\t\tconst detachedNodeIds = this.detached.get(detachedId);\n\t\tif (detachedNodeIds === undefined) {\n\t\t\tonInvalidDetachedId();\n\t\t\treturn undefined;\n\t\t}\n\t\t// Since we have retrieved the sequence, remove it from the void to prevent a second tree from multi-parenting it later\n\t\tthis.detached.delete(detachedId);\n\t\treturn detachedNodeIds;\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UndoRedoHandler.d.ts","sourceRoot":"","sources":["../../src/default-edits/UndoRedoHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,MAAM,WAAW,WAAW;IAC3B,MAAM,QAAG;IACT,OAAO,QAAG;CACV;AAED,MAAM,WAAW,aAAa;IAC7B,sBAAsB,CAAC,UAAU,EAAE,WAAW,OAAE;CAChD;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,aAAa;IAEjD,UAAU,CAAC,IAAI,EAAE,UAAU;IAG3B,UAAU,CAAC,IAAI,EAAE,UAAU;IAIlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAc/B;CACF;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,WAAW;IAC3C,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAArC,MAAM,EAAE,MAAM,EAAmB,IAAI,EAAE,UAAU;IAE9D,MAAM;IASN,OAAO;CAGd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UndoRedoHandler.js","sourceRoot":"","sources":["../../src/default-edits/UndoRedoHandler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sCAA+C;AAE/C,wCAA0E;AAe1E;;;GAGG;AACH,MAAa,yBAAyB;IACrC,YAA6B,YAA2B;QAA3B,iBAAY,GAAZ,YAAY,CAAe;QASvC,qBAAgB,GAAG,CAAC,cAAuD,EAAE,EAAE;YAC/F,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;YAE/C,IAAI,KAAK,EAAE;gBACV,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACvC,IAAI,oBAAoB,CACvB,MAAM,EACN,2BAAkB,CACjB,IAAI,EACJ,sGAAsG,CACtG,CACD,CACD,CAAC;aACF;QACF,CAAC,CAAC;IAvByD,CAAC;IAErD,UAAU,CAAC,IAAgB;QACjC,IAAI,CAAC,EAAE,CAAC,yBAAe,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IACM,UAAU,CAAC,IAAgB;QACjC,IAAI,CAAC,GAAG,CAAC,yBAAe,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChE,CAAC;CAiBD;AAzBD,8DAyBC;AAED;;GAEG;AACH,MAAa,oBAAoB;IAChC,YAAoB,MAAc,EAAmB,IAAgB;QAAjD,WAAM,GAAN,MAAM,CAAQ;QAAmB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAElE,MAAM;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAE3E,+DAA+D;QAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAEM,OAAO;QACb,OAAO;IACR,CAAC;CACD;AAfD,oDAeC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assertNotUndefined } from '../Common';\nimport { EditId } from '../Identifiers';\nimport { EditCommittedEventArguments, SharedTreeEvent } from '../generic';\nimport { SharedTree } from './SharedTree';\n\n// TODO: We temporarily duplicate these contracts from 'framework/undo-redo' to unblock development\n// while we decide on the correct layering for undo.\n\nexport interface IRevertible {\n\trevert();\n\tdiscard();\n}\n\nexport interface IUndoConsumer {\n\tpushToCurrentOperation(revertible: IRevertible);\n}\n\n/**\n * A shared tree undo redo handler that will add revertible local tree changes to the provided\n * undo redo stack manager\n */\nexport class SharedTreeUndoRedoHandler {\n\tconstructor(private readonly stackManager: IUndoConsumer) {}\n\n\tpublic attachTree(tree: SharedTree) {\n\t\ttree.on(SharedTreeEvent.EditCommitted, this.treeDeltaHandler);\n\t}\n\tpublic detachTree(tree: SharedTree) {\n\t\ttree.off(SharedTreeEvent.EditCommitted, this.treeDeltaHandler);\n\t}\n\n\tprivate readonly treeDeltaHandler = (eventArguments: EditCommittedEventArguments<SharedTree>) => {\n\t\tconst { editId, local, tree } = eventArguments;\n\n\t\tif (local) {\n\t\t\tthis.stackManager.pushToCurrentOperation(\n\t\t\t\tnew SharedTreeRevertible(\n\t\t\t\t\teditId,\n\t\t\t\t\tassertNotUndefined(\n\t\t\t\t\t\ttree,\n\t\t\t\t\t\t'An edit committed event for a revertible edit should include the target SharedTree in its arguments.'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t};\n}\n\n/**\n * Tracks a change on a shared tree and allows reverting it\n */\nexport class SharedTreeRevertible implements IRevertible {\n\tconstructor(private editId: EditId, private readonly tree: SharedTree) {}\n\n\tpublic revert() {\n\t\tconst editIndex = this.tree.edits.getIndexOfId(this.editId);\n\t\tconst edit = this.tree.edits.getEditInSessionAtIndex(editIndex);\n\t\tconst snapshotBefore = this.tree.logViewer.getSnapshotInSession(editIndex);\n\n\t\t// Apply the revert edit and set it as the new revertible edit.\n\t\tthis.editId = this.tree.editor.revert(edit, snapshotBefore);\n\t}\n\n\tpublic discard() {\n\t\treturn;\n\t}\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
export { SharedTree, SharedTreeEditor } from './SharedTree';
|
|
6
|
-
export { ChangeType, Change, Build, Insert, Detach, SetValue, Constraint, ConstraintEffect, Delete, Move, StablePlace, StableRange, getNodeId, } from './PersistedTypes';
|
|
7
|
-
export * from './Factory';
|
|
8
|
-
export * from './HistoryEditFactory';
|
|
9
|
-
export * from './EditUtilities';
|
|
10
|
-
export { Transaction } from './Transaction';
|
|
11
|
-
export { noHistorySummarizer } from './Summary';
|
|
12
|
-
export { SharedTreeUndoRedoHandler } from './UndoRedoHandler';
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default-edits/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,WAAW,EACX,WAAW,EACX,SAAS,GACT,MAAM,kBAAkB,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*!
|
|
3
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License.
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.SharedTreeUndoRedoHandler = exports.noHistorySummarizer = exports.Transaction = exports.getNodeId = exports.StableRange = exports.StablePlace = exports.Move = exports.Delete = exports.ConstraintEffect = exports.Insert = exports.Change = exports.ChangeType = exports.SharedTreeEditor = exports.SharedTree = void 0;
|
|
18
|
-
// API Exports
|
|
19
|
-
var SharedTree_1 = require("./SharedTree");
|
|
20
|
-
Object.defineProperty(exports, "SharedTree", { enumerable: true, get: function () { return SharedTree_1.SharedTree; } });
|
|
21
|
-
Object.defineProperty(exports, "SharedTreeEditor", { enumerable: true, get: function () { return SharedTree_1.SharedTreeEditor; } });
|
|
22
|
-
var PersistedTypes_1 = require("./PersistedTypes");
|
|
23
|
-
Object.defineProperty(exports, "ChangeType", { enumerable: true, get: function () { return PersistedTypes_1.ChangeType; } });
|
|
24
|
-
Object.defineProperty(exports, "Change", { enumerable: true, get: function () { return PersistedTypes_1.Change; } });
|
|
25
|
-
Object.defineProperty(exports, "Insert", { enumerable: true, get: function () { return PersistedTypes_1.Insert; } });
|
|
26
|
-
Object.defineProperty(exports, "ConstraintEffect", { enumerable: true, get: function () { return PersistedTypes_1.ConstraintEffect; } });
|
|
27
|
-
Object.defineProperty(exports, "Delete", { enumerable: true, get: function () { return PersistedTypes_1.Delete; } });
|
|
28
|
-
Object.defineProperty(exports, "Move", { enumerable: true, get: function () { return PersistedTypes_1.Move; } });
|
|
29
|
-
Object.defineProperty(exports, "StablePlace", { enumerable: true, get: function () { return PersistedTypes_1.StablePlace; } });
|
|
30
|
-
Object.defineProperty(exports, "StableRange", { enumerable: true, get: function () { return PersistedTypes_1.StableRange; } });
|
|
31
|
-
Object.defineProperty(exports, "getNodeId", { enumerable: true, get: function () { return PersistedTypes_1.getNodeId; } });
|
|
32
|
-
__exportStar(require("./Factory"), exports);
|
|
33
|
-
__exportStar(require("./HistoryEditFactory"), exports);
|
|
34
|
-
__exportStar(require("./EditUtilities"), exports);
|
|
35
|
-
var Transaction_1 = require("./Transaction");
|
|
36
|
-
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return Transaction_1.Transaction; } });
|
|
37
|
-
var Summary_1 = require("./Summary");
|
|
38
|
-
Object.defineProperty(exports, "noHistorySummarizer", { enumerable: true, get: function () { return Summary_1.noHistorySummarizer; } });
|
|
39
|
-
var UndoRedoHandler_1 = require("./UndoRedoHandler");
|
|
40
|
-
Object.defineProperty(exports, "SharedTreeUndoRedoHandler", { enumerable: true, get: function () { return UndoRedoHandler_1.SharedTreeUndoRedoHandler; } });
|
|
41
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default-edits/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;AAEH,cAAc;AAEd,2CAA4D;AAAnD,wGAAA,UAAU,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACrC,mDAc0B;AAbzB,4GAAA,UAAU,OAAA;AACV,wGAAA,MAAM,OAAA;AAEN,wGAAA,MAAM,OAAA;AAIN,kHAAA,gBAAgB,OAAA;AAChB,wGAAA,MAAM,OAAA;AACN,sGAAA,IAAI,OAAA;AACJ,6GAAA,WAAW,OAAA;AACX,6GAAA,WAAW,OAAA;AACX,2GAAA,SAAS,OAAA;AAEV,4CAA0B;AAC1B,uDAAqC;AACrC,kDAAgC;AAChC,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,qCAAgD;AAAvC,8GAAA,mBAAmB,OAAA;AAC5B,qDAA8D;AAArD,4HAAA,yBAAyB,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 { SharedTree, SharedTreeEditor } from './SharedTree';\nexport {\n\tChangeType,\n\tChange,\n\tBuild,\n\tInsert,\n\tDetach,\n\tSetValue,\n\tConstraint,\n\tConstraintEffect,\n\tDelete,\n\tMove,\n\tStablePlace,\n\tStableRange,\n\tgetNodeId,\n} from './PersistedTypes';\nexport * from './Factory';\nexport * from './HistoryEditFactory';\nexport * from './EditUtilities';\nexport { Transaction } from './Transaction';\nexport { noHistorySummarizer } from './Summary';\nexport { SharedTreeUndoRedoHandler } from './UndoRedoHandler';\n"]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { EditId } from '../Identifiers';
|
|
6
|
-
import { Edit, TraitLocation } from './PersistedTypes';
|
|
7
|
-
/**
|
|
8
|
-
* Functions for constructing and comparing Edits.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Returns true if the provided Edits have equivalent properties.
|
|
12
|
-
*/
|
|
13
|
-
export declare function compareEdits(editIdA: EditId, editIdB: EditId): boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Check if two TraitLocations are equal.
|
|
16
|
-
*/
|
|
17
|
-
export declare function compareTraits(traitA: TraitLocation, traitB: TraitLocation): boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Generates a new edit object from the supplied changes.
|
|
20
|
-
*/
|
|
21
|
-
export declare function newEdit<TEdit>(changes: readonly TEdit[]): Edit<TEdit>;
|
|
22
|
-
/**
|
|
23
|
-
* Generates a new edit object from the supplied changes.
|
|
24
|
-
*/
|
|
25
|
-
export declare function newEditId(): EditId;
|
|
26
|
-
//# sourceMappingURL=GenericEditUtilities.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenericEditUtilities.d.ts","sourceRoot":"","sources":["../../src/generic/GenericEditUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAItE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAMnF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
|
|
@@ -1,45 +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.newEditId = exports.newEdit = exports.compareTraits = exports.compareEdits = void 0;
|
|
8
|
-
const uuid_1 = require("uuid");
|
|
9
|
-
/**
|
|
10
|
-
* Functions for constructing and comparing Edits.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Returns true if the provided Edits have equivalent properties.
|
|
14
|
-
*/
|
|
15
|
-
function compareEdits(editIdA, editIdB) {
|
|
16
|
-
// TODO #45414: We should also be deep comparing the list of changes in the edit. This is not straightforward.
|
|
17
|
-
// We can use our edit validation code when we write it since it will need to do deep walks of the changes.
|
|
18
|
-
return editIdA === editIdB;
|
|
19
|
-
}
|
|
20
|
-
exports.compareEdits = compareEdits;
|
|
21
|
-
/**
|
|
22
|
-
* Check if two TraitLocations are equal.
|
|
23
|
-
*/
|
|
24
|
-
function compareTraits(traitA, traitB) {
|
|
25
|
-
if (traitA.label !== traitB.label || traitA.parent !== traitB.parent) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
exports.compareTraits = compareTraits;
|
|
31
|
-
/**
|
|
32
|
-
* Generates a new edit object from the supplied changes.
|
|
33
|
-
*/
|
|
34
|
-
function newEdit(changes) {
|
|
35
|
-
return { id: newEditId(), changes };
|
|
36
|
-
}
|
|
37
|
-
exports.newEdit = newEdit;
|
|
38
|
-
/**
|
|
39
|
-
* Generates a new edit object from the supplied changes.
|
|
40
|
-
*/
|
|
41
|
-
function newEditId() {
|
|
42
|
-
return uuid_1.v4();
|
|
43
|
-
}
|
|
44
|
-
exports.newEditId = newEditId;
|
|
45
|
-
//# sourceMappingURL=GenericEditUtilities.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenericEditUtilities.js","sourceRoot":"","sources":["../../src/generic/GenericEditUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAAoC;AAIpC;;GAEG;AAEH;;GAEG;AACH,SAAgB,YAAY,CAAC,OAAe,EAAE,OAAe;IAC5D,8GAA8G;IAC9G,2GAA2G;IAC3G,OAAO,OAAO,KAAK,OAAO,CAAC;AAC5B,CAAC;AAJD,oCAIC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAqB,EAAE,MAAqB;IACzE,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;QACrE,OAAO,KAAK,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAND,sCAMC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAQ,OAAyB;IACvD,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,SAAS;IACxB,OAAO,SAAM,EAAY,CAAC;AAC3B,CAAC;AAFD,8BAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { EditId } from '../Identifiers';\nimport { Edit, TraitLocation } from './PersistedTypes';\n\n/**\n * Functions for constructing and comparing Edits.\n */\n\n/**\n * Returns true if the provided Edits have equivalent properties.\n */\nexport function compareEdits(editIdA: EditId, editIdB: EditId): boolean {\n\t// TODO #45414: We should also be deep comparing the list of changes in the edit. This is not straightforward.\n\t// We can use our edit validation code when we write it since it will need to do deep walks of the changes.\n\treturn editIdA === editIdB;\n}\n\n/**\n * Check if two TraitLocations are equal.\n */\nexport function compareTraits(traitA: TraitLocation, traitB: TraitLocation): boolean {\n\tif (traitA.label !== traitB.label || traitA.parent !== traitB.parent) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Generates a new edit object from the supplied changes.\n */\nexport function newEdit<TEdit>(changes: readonly TEdit[]): Edit<TEdit> {\n\treturn { id: newEditId(), changes };\n}\n\n/**\n * Generates a new edit object from the supplied changes.\n */\nexport function newEditId(): EditId {\n\treturn uuidv4() as EditId;\n}\n"]}
|