@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.tests.js","sourceRoot":"","sources":["../../src/test/Transaction.tests.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { expect } from 'chai';\nimport { v4 as uuidv4 } from 'uuid';\nimport { DetachedSequenceId, NodeId, TraitLabel } from '../Identifiers';\nimport { EditStatus } from '../generic';\nimport { Transaction, Change, ChangeType, ConstraintEffect, Insert, StableRange, StablePlace } from '../default-edits';\nimport { Side } from '../Snapshot';\nimport {\n\tmakeEmptyNode,\n\ttestTrait,\n\tleft,\n\tleftTraitLocation,\n\tright,\n\trightTraitLocation,\n\tleftTraitLabel,\n\trightTraitLabel,\n\tsimpleTreeSnapshotWithValidation,\n\tinitialSnapshotWithValidation,\n\tinitialSnapshot,\n} from './utilities/TestUtilities';\n\ndescribe('Transaction', () => {\n\tdescribe('Constraints', () => {\n\t\tit('can be met', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t});\n\t\tconst nonExistentNode = '57dd2fc4-72fa-471c-9f37-70010d31b59c' as NodeId;\n\t\tconst invalidStableRange: StableRange = {\n\t\t\tstart: { side: Side.After, referenceSibling: nonExistentNode },\n\t\t\tend: { side: Side.Before },\n\t\t};\n\t\tit('can be unmet', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: invalidStableRange,\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t\tit('effect can apply anyway', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: invalidStableRange,\n\t\t\t\teffect: ConstraintEffect.ValidRetry,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t});\n\t\tit('length can be met', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t\tlength: 0,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t});\n\t\tit('length can be unmet', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t\tlength: 1,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t\tit('parent can be met', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t\tparentNode: initialSnapshot.root,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t});\n\t\tit('parent can be unmet', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t\tparentNode: nonExistentNode,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t\tit('label can be met', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t\tlabel: testTrait.label,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t});\n\t\tit('label can be unmet', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\ttoConstrain: StableRange.all(testTrait),\n\t\t\t\teffect: ConstraintEffect.InvalidAndDiscard,\n\t\t\t\ttype: ChangeType.Constraint,\n\t\t\t\tlabel: '7969ee2e-5418-43db-929a-4e9a23c5499d' as TraitLabel, // Arbitrary label not equal to testTrait.label\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t});\n\n\tdescribe('SetValue', () => {\n\t\tit('can be invalid', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\tnodeToModify: '7969ee2e-5418-43db-929a-4e9a23c5499d' as NodeId, // Arbitrary id not equal to initialSnapshot.root\n\t\t\t\tpayload: {}, // Arbitrary payload.\n\t\t\t\ttype: ChangeType.SetValue,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\n\t\tit('can change payload', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\tconst payload = { foo: {} };\n\t\t\ttransaction.applyChange({\n\t\t\t\tnodeToModify: initialSnapshot.root,\n\t\t\t\tpayload, // Arbitrary payload.\n\t\t\t\ttype: ChangeType.SetValue,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\texpect(transaction.view.getSnapshotNode(initialSnapshot.root).payload).deep.equals(payload);\n\t\t});\n\n\t\t// 'null' is not included here since it means clear the payload in setValue.\n\t\tfor (const payload of [0, '', [], {}]) {\n\t\t\tit(`can set payload to ${JSON.stringify(payload)}`, () => {\n\t\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\t\ttransaction.applyChange({\n\t\t\t\t\tnodeToModify: initialSnapshot.root,\n\t\t\t\t\tpayload,\n\t\t\t\t\ttype: ChangeType.SetValue,\n\t\t\t\t});\n\t\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\t\texpect(transaction.view.getSnapshotNode(initialSnapshot.root).payload).equals(payload);\n\t\t\t});\n\t\t}\n\n\t\tit('can clear an unset payload', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange(Change.clearPayload(initialSnapshot.root));\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\texpect({}.hasOwnProperty.call(transaction.view.getSnapshotNode(initialSnapshot.root), 'payload')).false;\n\t\t\texpect({}.hasOwnProperty.call(transaction.view.getChangeNode(initialSnapshot.root), 'payload')).false;\n\t\t});\n\n\t\tit('can clear a set payload', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\ttransaction.applyChange({\n\t\t\t\tnodeToModify: initialSnapshot.root,\n\t\t\t\tpayload: {},\n\t\t\t\ttype: ChangeType.SetValue,\n\t\t\t});\n\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\texpect(transaction.view.getSnapshotNode(initialSnapshot.root).payload).not.undefined;\n\t\t\ttransaction.applyChange(Change.clearPayload(initialSnapshot.root));\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\texpect({}.hasOwnProperty.call(transaction.view.getSnapshotNode(initialSnapshot.root), 'payload')).false;\n\t\t\texpect({}.hasOwnProperty.call(transaction.view.getChangeNode(initialSnapshot.root), 'payload')).false;\n\t\t});\n\t});\n\n\tdescribe('Insert', () => {\n\t\tconst buildId = 0 as DetachedSequenceId;\n\t\tconst builtNodeId = uuidv4() as NodeId;\n\t\tconst newNode = makeEmptyNode(builtNodeId);\n\t\tit('can be malformed', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\ttransaction.applyChange(Change.build([newNode], buildId));\n\t\t\ttransaction.applyChange(\n\t\t\t\tChange.insert(\n\t\t\t\t\t// Non-existent detached id\n\t\t\t\t\t1 as DetachedSequenceId,\n\t\t\t\t\t{ referenceSibling: initialSnapshot.root, side: Side.After }\n\t\t\t\t)\n\t\t\t);\n\t\t\texpect(transaction.status).equals(EditStatus.Malformed);\n\t\t});\n\t\tit('can be invalid', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\ttransaction.applyChange(Change.build([newNode], buildId));\n\t\t\ttransaction.applyChange(\n\t\t\t\tChange.insert(\n\t\t\t\t\tbuildId,\n\t\t\t\t\t// Arbitrary id not present in the tree\n\t\t\t\t\t{ referenceSibling: '7969ee2e-5418-43db-929a-4e9a23c5499d' as NodeId, side: Side.After }\n\t\t\t\t)\n\t\t\t);\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t\t[Side.Before, Side.After].forEach((side) => {\n\t\t\tit(`can insert a node at the ${side === Side.After ? 'beginning' : 'end'} of a trait`, () => {\n\t\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\t\ttransaction.applyChanges(\n\t\t\t\t\tInsert.create(\n\t\t\t\t\t\t[newNode],\n\t\t\t\t\t\tside === Side.After\n\t\t\t\t\t\t\t? StablePlace.atStartOf(leftTraitLocation)\n\t\t\t\t\t\t\t: StablePlace.atEndOf(leftTraitLocation)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\texpect(transaction.view.getTrait(leftTraitLocation)).deep.equals(\n\t\t\t\t\tside === Side.After ? [builtNodeId, left.identifier] : [left.identifier, builtNodeId]\n\t\t\t\t);\n\t\t\t});\n\t\t\tit(`can insert a node ${side === Side.Before ? 'before' : 'after'} another node`, () => {\n\t\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\t\ttransaction.applyChanges(Insert.create([newNode], { referenceSibling: left.identifier, side }));\n\t\t\t\texpect(transaction.view.getTrait(leftTraitLocation)).deep.equals(\n\t\t\t\t\tside === Side.Before ? [builtNodeId, left.identifier] : [left.identifier, builtNodeId]\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t});\n\n\tdescribe('Build', () => {\n\t\tit('can be malformed due to detached ID collision', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\t// Apply two Build_s with the same detached id\n\t\t\ttransaction.applyChange(Change.build([makeEmptyNode()], 0 as DetachedSequenceId));\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\ttransaction.applyChange(Change.build([makeEmptyNode()], 0 as DetachedSequenceId));\n\t\t\texpect(transaction.status).equals(EditStatus.Malformed);\n\t\t});\n\t\tit('can be malformed due to duplicate node identifiers', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\t// Build two nodes with the same identifier, one of them nested\n\t\t\tconst newNode = makeEmptyNode();\n\t\t\ttransaction.applyChange(\n\t\t\t\tChange.build(\n\t\t\t\t\t[\n\t\t\t\t\t\tnewNode,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...makeEmptyNode(),\n\t\t\t\t\t\t\ttraits: { [leftTraitLabel]: [{ ...makeEmptyNode(), identifier: newNode.identifier }] },\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t0 as DetachedSequenceId\n\t\t\t\t)\n\t\t\t);\n\t\t\texpect(transaction.status).equals(EditStatus.Malformed);\n\t\t});\n\t\tit('can be invalid', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\t// Build two nodes with the same identifier\n\t\t\tconst identifier = uuidv4() as NodeId;\n\t\t\ttransaction.applyChange(Change.build([makeEmptyNode(identifier)], 0 as DetachedSequenceId));\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\ttransaction.applyChange(Change.build([makeEmptyNode(identifier)], 1 as DetachedSequenceId));\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t\tit('can build a detached node', () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\tconst identifier = uuidv4() as NodeId;\n\t\t\tconst newNode = makeEmptyNode(identifier);\n\t\t\ttransaction.applyChange(Change.build([newNode], 0 as DetachedSequenceId));\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\texpect(transaction.view.hasNode(identifier)).is.true;\n\t\t\texpect(transaction.view.getParentSnapshotNode(identifier)).is.undefined;\n\t\t\texpect(transaction.view.getChangeNode(identifier)).deep.equals(newNode);\n\t\t});\n\t\tit(\"is malformed if detached node id doesn't exist\", () => {\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\tconst detachedSequenceId = 0 as DetachedSequenceId;\n\t\t\ttransaction.applyChange({\n\t\t\t\tdestination: 1 as DetachedSequenceId,\n\t\t\t\tsource: [detachedSequenceId],\n\t\t\t\ttype: ChangeType.Build,\n\t\t\t});\n\t\t\texpect(transaction.status).equals(EditStatus.Malformed);\n\t\t});\n\t\tit('can build a node with an explicit empty trait', () => {\n\t\t\t// Forest should strip off the empty trait\n\t\t\tconst nodeWithEmpty = makeEmptyNode();\n\t\t\tconst traits = new Map<TraitLabel, NodeId[]>();\n\t\t\tconst emptyTrait: NodeId[] = [];\n\t\t\ttraits.set(leftTraitLabel, emptyTrait);\n\n\t\t\tconst transaction = new Transaction(initialSnapshotWithValidation);\n\t\t\tconst detachedSequenceId = 0 as DetachedSequenceId;\n\t\t\ttransaction.applyChange(Change.build([nodeWithEmpty], detachedSequenceId));\n\t\t\texpect(transaction.status).equals(EditStatus.Applied);\n\t\t\tconst snapshotNodeWithEmpty = transaction.view.getSnapshotNode(nodeWithEmpty.identifier);\n\t\t\texpect(snapshotNodeWithEmpty.traits.size).to.equal(0);\n\t\t});\n\t});\n\n\tdescribe('Detach', () => {\n\t\tit('can be malformed', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\t// Supplied StableRange is malformed\n\t\t\ttransaction.applyChange(\n\t\t\t\tChange.detach({\n\t\t\t\t\tstart: { referenceTrait: leftTraitLocation, referenceSibling: left.identifier, side: Side.Before },\n\t\t\t\t\tend: StablePlace.after(right),\n\t\t\t\t})\n\t\t\t);\n\t\t\texpect(transaction.status).equals(EditStatus.Malformed);\n\t\t});\n\t\tit('can be invalid', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\t// Start place is before end place\n\t\t\ttransaction.applyChange(\n\t\t\t\tChange.detach({\n\t\t\t\t\tstart: StablePlace.atEndOf(leftTraitLocation),\n\t\t\t\t\tend: StablePlace.atStartOf(leftTraitLocation),\n\t\t\t\t})\n\t\t\t);\n\t\t\texpect(transaction.status).equals(EditStatus.Invalid);\n\t\t});\n\t\tit('can delete a node', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\ttransaction.applyChange(Change.detach(StableRange.only(left)));\n\t\t\texpect(transaction.view.hasNode(left.identifier)).is.false;\n\t\t});\n\t});\n\n\tdescribe('Composite changes', () => {\n\t\tit('can form a node move', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\tconst detachedId = 0 as DetachedSequenceId;\n\t\t\ttransaction.applyChange(Change.detach(StableRange.only(left), detachedId));\n\t\t\ttransaction.applyChange(Change.insert(detachedId, StablePlace.after(right)));\n\t\t\texpect(transaction.view.getTrait(leftTraitLocation)).deep.equals([]);\n\t\t\texpect(transaction.view.getTrait(rightTraitLocation)).deep.equals([right.identifier, left.identifier]);\n\t\t});\n\t\tit('can form a wrap insert', () => {\n\t\t\t// A wrap insert is an edit that inserts a new node between a subtree and its parent atomically.\n\t\t\t// Ex: given A -> B -> C, a wrap insert of D around B would produce A -> D -> B -> C\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\tconst leftNodeDetachedId = 0 as DetachedSequenceId;\n\t\t\tconst parentDetachedId = 1 as DetachedSequenceId;\n\t\t\ttransaction.applyChange(Change.detach(StableRange.only(left), leftNodeDetachedId));\n\t\t\t// This is node D, from the example\n\t\t\tconst wrappingParentId = uuidv4() as NodeId;\n\t\t\tconst wrappingTraitLabel = 'wrapTrait' as TraitLabel;\n\t\t\ttransaction.applyChange(\n\t\t\t\tChange.build(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...makeEmptyNode(wrappingParentId),\n\t\t\t\t\t\t\ttraits: { [wrappingTraitLabel]: [leftNodeDetachedId] }, // Re-parent left under new node\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tparentDetachedId\n\t\t\t\t)\n\t\t\t);\n\t\t\ttransaction.applyChange(Change.insert(parentDetachedId, StablePlace.atStartOf(leftTraitLocation)));\n\t\t\tconst leftTrait = transaction.view.getTrait(leftTraitLocation);\n\t\t\texpect(leftTrait).deep.equals([wrappingParentId]);\n\t\t\tconst wrappingTrait = transaction.view.getTrait({ parent: wrappingParentId, label: wrappingTraitLabel });\n\t\t\texpect(wrappingTrait).deep.equals([left.identifier]);\n\t\t});\n\t\tit('can build and insert a tree that contains detached subtrees', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\tconst leftNodeDetachedId = 0 as DetachedSequenceId;\n\t\t\tconst rightNodeDetachedId = 1 as DetachedSequenceId;\n\t\t\tconst detachedIdSubtree = 2 as DetachedSequenceId;\n\t\t\ttransaction.applyChange(Change.detach(StableRange.only(left), leftNodeDetachedId));\n\t\t\ttransaction.applyChange(Change.detach(StableRange.only(right), rightNodeDetachedId));\n\n\t\t\tconst detachedSubtree = {\n\t\t\t\t...makeEmptyNode(),\n\t\t\t\ttraits: {\n\t\t\t\t\t[leftTraitLabel]: [leftNodeDetachedId],\n\t\t\t\t\t[rightTraitLabel]: [rightNodeDetachedId],\n\t\t\t\t},\n\t\t\t};\n\t\t\ttransaction.applyChange(Change.build([detachedSubtree], detachedIdSubtree));\n\t\t\ttransaction.applyChange(Change.insert(detachedIdSubtree, StablePlace.atStartOf(leftTraitLocation)));\n\t\t\texpect(transaction.view.getTrait(rightTraitLocation)).deep.equals([]);\n\t\t\texpect(transaction.view.getTrait(leftTraitLocation)).deep.equals([detachedSubtree.identifier]);\n\t\t\tconst insertedSubtree = transaction.view.getChangeNode(detachedSubtree.identifier);\n\t\t\texpect(insertedSubtree.traits).deep.equals({\n\t\t\t\t[leftTraitLabel]: [left],\n\t\t\t\t[rightTraitLabel]: [right],\n\t\t\t});\n\t\t});\n\t\tit('can build and insert a tree with the same identity as that of a detached subtree', () => {\n\t\t\tconst transaction = new Transaction(simpleTreeSnapshotWithValidation);\n\t\t\ttransaction.applyChange(Change.detach(StableRange.only(left)));\n\t\t\tconst idOfDetachedNodeToInsert = 1 as DetachedSequenceId;\n\t\t\texpect(transaction.view.getTrait(leftTraitLocation)).deep.equals([]);\n\t\t\ttransaction.applyChange(Change.build([makeEmptyNode(left.identifier)], idOfDetachedNodeToInsert));\n\t\t\ttransaction.applyChange(Change.insert(idOfDetachedNodeToInsert, StablePlace.atStartOf(leftTraitLocation)));\n\t\t\texpect(transaction.view.getTrait(leftTraitLocation)).deep.equals([left.identifier]);\n\t\t});\n\t});\n});\n"]}
|
|
1
|
+
{"version":3,"file":"Transaction.tests.js","sourceRoot":"","sources":["../../src/test/Transaction.tests.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { expect } from 'chai';\nimport { EditStatus, WriteFormat } from '../persisted-types';\nimport { Change, StablePlace, StableRange } from '../ChangeTypes';\nimport { Transaction, TransactionEvent } from '../Transaction';\nimport { SharedTree } from '../SharedTree';\nimport { TreeView } from '../TreeView';\nimport { TestTree } from './utilities/TestNode';\nimport { setUpTestSharedTree, setUpTestTree } from './utilities/TestUtilities';\nimport { expectDefined } from './utilities/TestCommon';\n\ndescribe('Transaction', () => {\n\tfunction createTestTransaction(): { tree: SharedTree; testTree: TestTree; transaction: Transaction } {\n\t\tconst { tree } = setUpTestSharedTree({ writeFormat: WriteFormat.v0_1_1 });\n\t\tconst testTree = setUpTestTree(tree);\n\t\treturn { tree, testTree, transaction: new Transaction(tree) };\n\t}\n\n\tfunction createValidChange(testTree: TestTree): Change {\n\t\treturn Change.delete(StableRange.only(testTree.left));\n\t}\n\n\tfunction createValidChanges(testTree: TestTree): Change[] {\n\t\treturn Change.move(StableRange.only(testTree.left), StablePlace.after(testTree.right));\n\t}\n\n\tfunction createInvalidChange(testTree: TestTree): Change {\n\t\treturn Change.delete(StableRange.only(testTree.generateNodeId()));\n\t}\n\n\tfunction createMalformedChange(testTree: TestTree): Change {\n\t\treturn Change.insert(Number.NaN, StablePlace.after(testTree.left));\n\t}\n\n\tit('can apply an edit to the tree', () => {\n\t\tconst { tree, testTree, transaction } = createTestTransaction();\n\t\tconst editCountBefore = tree.edits.length;\n\t\ttransaction.apply(createValidChange(testTree));\n\t\ttransaction.closeAndCommit();\n\t\texpect(tree.edits.length).to.equal(editCountBefore + 1);\n\t\texpect(tree.currentView.getTrait(testTree.left.traitLocation).length).to.equal(0);\n\t});\n\n\tit('has correct edit status when applied', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\texpect(transaction.apply(createValidChange(testTree))).to.equal(EditStatus.Applied);\n\t\texpect(transaction.status).to.equal(EditStatus.Applied);\n\t\ttransaction.closeAndCommit();\n\t});\n\n\tit('has correct edit status when invalid', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\texpect(transaction.apply(createInvalidChange(testTree))).to.equal(EditStatus.Invalid);\n\t\texpect(transaction.status).to.equal(EditStatus.Invalid);\n\t\ttransaction.closeAndCommit();\n\t});\n\n\tit('has correct edit status when malformed', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\texpect(transaction.apply(createMalformedChange(testTree))).to.equal(EditStatus.Malformed);\n\t\texpect(transaction.status).to.equal(EditStatus.Malformed);\n\t\ttransaction.closeAndCommit();\n\t});\n\n\tit('can apply multiple changes at once', () => {\n\t\tconst { tree, testTree, transaction } = createTestTransaction();\n\t\ttransaction.apply(createValidChanges(testTree));\n\t\ttransaction.closeAndCommit();\n\t\texpect(tree.currentView.getTrait(testTree.left.traitLocation).length).to.equal(0);\n\t\texpect(tree.currentView.getTrait(testTree.right.traitLocation).length).to.equal(2);\n\t});\n\n\tit('does not apply empty edits', () => {\n\t\tconst { tree, transaction } = createTestTransaction();\n\t\tconst editCountBefore = tree.edits.length;\n\t\ttransaction.apply([]);\n\t\ttransaction.closeAndCommit();\n\t\texpect(tree.edits.length).to.equal(editCountBefore);\n\t});\n\n\tit('does not apply a batch of changes if any of them fail', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\tconst change = createValidChange(testTree);\n\t\texpect(transaction.apply(change, change)).to.equal(EditStatus.Invalid); // Second change is invalid\n\t\texpect(transaction.status).to.equal(EditStatus.Invalid);\n\t\ttransaction.closeAndCommit();\n\t});\n\n\tit('is open when created', () => {\n\t\tconst { transaction } = createTestTransaction();\n\t\texpect(transaction.isOpen).to.be.true;\n\t});\n\n\tit('closes when a change fails to apply', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\ttransaction.apply(createInvalidChange(testTree));\n\t\texpect(transaction.isOpen).to.be.false;\n\t});\n\n\tit('closes when an edit is applied', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\texpect(transaction.isOpen).to.be.true;\n\t\ttransaction.apply(createValidChange(testTree));\n\t\texpect(transaction.isOpen).to.be.true;\n\t\ttransaction.closeAndCommit();\n\t\texpect(transaction.isOpen).to.be.false;\n\t});\n\n\tit('emits view change events', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\tlet beforeView: TreeView | undefined;\n\t\tlet afterView: TreeView | undefined;\n\t\ttransaction.addListener(TransactionEvent.ViewChange, (before, after) => {\n\t\t\tbeforeView = before;\n\t\t\tafterView = after;\n\t\t});\n\t\tconst beforeViewExpected = transaction.currentView;\n\t\ttransaction.apply(createValidChange(testTree));\n\t\tconst afterViewExpected = transaction.currentView;\n\t\texpect(expectDefined(beforeView).equals(beforeViewExpected)).to.be.true;\n\t\texpect(expectDefined(afterView).equals(afterViewExpected)).to.be.true;\n\t});\n\n\tit('emits only one view change event per apply', () => {\n\t\tconst { testTree, transaction } = createTestTransaction();\n\t\tlet eventCount = 0;\n\t\ttransaction.addListener(TransactionEvent.ViewChange, () => {\n\t\t\teventCount += 1;\n\t\t});\n\t\ttransaction.apply(createValidChanges(testTree));\n\t\texpect(eventCount).to.equal(1);\n\t});\n\n\tit('does not emit view change events when there are no changes', () => {\n\t\tconst { transaction } = createTestTransaction();\n\t\ttransaction.on(TransactionEvent.ViewChange, () => {\n\t\t\texpect.fail();\n\t\t});\n\t\ttransaction.apply([]);\n\t});\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionInternal.tests.d.ts","sourceRoot":"","sources":["../../src/test/TransactionInternal.tests.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|