@fluidframework/tree 2.113.1 → 2.114.0
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/CHANGELOG.md +98 -0
- package/api-report/tree.alpha.api.md +19 -0
- package/dist/core/change-family/changeFamily.d.ts +15 -4
- package/dist/core/change-family/changeFamily.d.ts.map +1 -1
- package/dist/core/change-family/changeFamily.js.map +1 -1
- package/dist/core/change-family/editBuilder.d.ts +2 -3
- package/dist/core/change-family/editBuilder.d.ts.map +1 -1
- package/dist/core/change-family/editBuilder.js +1 -2
- package/dist/core/change-family/editBuilder.js.map +1 -1
- package/dist/core/change-family/index.d.ts +1 -1
- package/dist/core/change-family/index.d.ts.map +1 -1
- package/dist/core/change-family/index.js.map +1 -1
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/tree/delta.d.ts +62 -16
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +7 -13
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +32 -46
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/index.d.ts +1 -0
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +2 -4
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +2 -2
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/entrypoints/alpha.d.ts +1 -1
- package/dist/entrypoints/alpha.d.ts.map +1 -1
- package/dist/entrypoints/alpha.js +5 -2
- package/dist/entrypoints/alpha.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/uniformChunk.js +10 -2
- package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/dist/feature-libraries/comparison-forest/comparisonForest.d.ts +51 -0
- package/dist/feature-libraries/comparison-forest/comparisonForest.d.ts.map +1 -0
- package/dist/feature-libraries/comparison-forest/comparisonForest.js +98 -0
- package/dist/feature-libraries/comparison-forest/comparisonForest.js.map +1 -0
- package/dist/feature-libraries/comparison-forest/index.d.ts +6 -0
- package/dist/feature-libraries/comparison-forest/index.d.ts.map +1 -0
- package/dist/feature-libraries/comparison-forest/index.js +10 -0
- package/dist/feature-libraries/comparison-forest/index.js.map +1 -0
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +8 -6
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +6 -3
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.js +3 -1
- package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +6 -3
- package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js +18 -6
- package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +2 -3
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +2 -3
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +4 -3
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +77 -72
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +12 -0
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/invert.d.ts +15 -0
- package/dist/feature-libraries/modular-schema/invert.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/invert.js +159 -0
- package/dist/feature-libraries/modular-schema/invert.js.map +1 -0
- package/dist/feature-libraries/modular-schema/minimizeModularChange.d.ts +3 -4
- package/dist/feature-libraries/modular-schema/minimizeModularChange.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/minimizeModularChange.js +2 -2
- package/dist/feature-libraries/modular-schema/minimizeModularChange.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +9 -9
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +0 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +8 -22
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +53 -406
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeUtils.d.ts +61 -0
- package/dist/feature-libraries/modular-schema/modularChangeUtils.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeUtils.js +205 -0
- package/dist/feature-libraries/modular-schema/modularChangeUtils.js.map +1 -0
- package/dist/feature-libraries/modular-schema/prune.d.ts +10 -0
- package/dist/feature-libraries/modular-schema/prune.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/prune.js +49 -0
- package/dist/feature-libraries/modular-schema/prune.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +2 -2
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/treeTextCursor.d.ts +15 -0
- package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/dist/feature-libraries/treeTextCursor.js +64 -1
- package/dist/feature-libraries/treeTextCursor.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/serializedChange.d.ts +2 -2
- package/dist/shared-tree/serializedChange.d.ts.map +1 -1
- package/dist/shared-tree/serializedChange.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +6 -3
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +8 -6
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +2 -2
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +41 -4
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +57 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/transactionMinimize.d.ts.map +1 -1
- package/dist/shared-tree/transactionMinimize.js +2 -2
- package/dist/shared-tree/transactionMinimize.js.map +1 -1
- package/dist/shared-tree/transactionPostProcessor.d.ts +2 -1
- package/dist/shared-tree/transactionPostProcessor.d.ts.map +1 -1
- package/dist/shared-tree/transactionPostProcessor.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +8 -7
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +1 -1
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +23 -9
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +7 -0
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts +4 -4
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +2 -0
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +3 -14
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts +11 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +4 -11
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +4 -11
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.d.ts +4 -4
- package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerSummarizer.js +0 -1
- package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +2 -2
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/dist/shared-tree-core/messageCodecs.d.ts +8 -1
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +5 -5
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/shared-tree-core/transaction.d.ts +10 -10
- package/dist/shared-tree-core/transaction.d.ts.map +1 -1
- package/dist/shared-tree-core/transaction.js +6 -3
- package/dist/shared-tree-core/transaction.js.map +1 -1
- package/dist/simple-tree/api/eraseSchemaDetails.d.ts +15 -0
- package/dist/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
- package/dist/simple-tree/api/eraseSchemaDetails.js +15 -0
- package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +21 -2
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts +13 -0
- package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +9 -0
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/text/textDomain.d.ts +12 -0
- package/dist/text/textDomain.d.ts.map +1 -1
- package/dist/text/textDomain.js +37 -16
- package/dist/text/textDomain.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts +155 -61
- package/dist/text/textDomainFormatted.d.ts.map +1 -1
- package/dist/text/textDomainFormatted.js +147 -71
- package/dist/text/textDomainFormatted.js.map +1 -1
- package/dist/text/textDomainFormattedDefault.d.ts +37 -14
- package/dist/text/textDomainFormattedDefault.d.ts.map +1 -1
- package/dist/text/textDomainFormattedDefault.js +13 -5
- package/dist/text/textDomainFormattedDefault.js.map +1 -1
- package/dist/treeDataStore.d.ts +49 -0
- package/dist/treeDataStore.d.ts.map +1 -0
- package/dist/treeDataStore.js +57 -0
- package/dist/treeDataStore.js.map +1 -0
- package/dist/treeFactory.d.ts +8 -3
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +6 -1
- package/dist/treeFactory.js.map +1 -1
- package/lib/core/change-family/changeFamily.d.ts +15 -4
- package/lib/core/change-family/changeFamily.d.ts.map +1 -1
- package/lib/core/change-family/changeFamily.js.map +1 -1
- package/lib/core/change-family/editBuilder.d.ts +2 -3
- package/lib/core/change-family/editBuilder.d.ts.map +1 -1
- package/lib/core/change-family/editBuilder.js +1 -2
- package/lib/core/change-family/editBuilder.js.map +1 -1
- package/lib/core/change-family/index.d.ts +1 -1
- package/lib/core/change-family/index.d.ts.map +1 -1
- package/lib/core/change-family/index.js.map +1 -1
- package/lib/core/index.d.ts +3 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/tree/delta.d.ts +62 -16
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +7 -13
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +7 -21
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/index.d.ts +1 -0
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +2 -4
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +2 -2
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/entrypoints/alpha.d.ts +1 -1
- package/lib/entrypoints/alpha.d.ts.map +1 -1
- package/lib/entrypoints/alpha.js +1 -1
- package/lib/entrypoints/alpha.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/uniformChunk.js +10 -2
- package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
- package/lib/feature-libraries/comparison-forest/comparisonForest.d.ts +51 -0
- package/lib/feature-libraries/comparison-forest/comparisonForest.d.ts.map +1 -0
- package/lib/feature-libraries/comparison-forest/comparisonForest.js +94 -0
- package/lib/feature-libraries/comparison-forest/comparisonForest.js.map +1 -0
- package/lib/feature-libraries/comparison-forest/index.d.ts +6 -0
- package/lib/feature-libraries/comparison-forest/index.d.ts.map +1 -0
- package/lib/feature-libraries/comparison-forest/index.js +6 -0
- package/lib/feature-libraries/comparison-forest/index.js.map +1 -0
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +8 -6
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +6 -3
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.js +3 -1
- package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +6 -3
- package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js +16 -4
- package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +2 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +2 -3
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +4 -3
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +2 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +12 -0
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/invert.d.ts +15 -0
- package/lib/feature-libraries/modular-schema/invert.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/invert.js +155 -0
- package/lib/feature-libraries/modular-schema/invert.js.map +1 -0
- package/lib/feature-libraries/modular-schema/minimizeModularChange.d.ts +3 -4
- package/lib/feature-libraries/modular-schema/minimizeModularChange.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/minimizeModularChange.js +2 -2
- package/lib/feature-libraries/modular-schema/minimizeModularChange.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +9 -9
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +0 -2
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +8 -22
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +16 -367
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeUtils.d.ts +61 -0
- package/lib/feature-libraries/modular-schema/modularChangeUtils.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeUtils.js +192 -0
- package/lib/feature-libraries/modular-schema/modularChangeUtils.js.map +1 -0
- package/lib/feature-libraries/modular-schema/prune.d.ts +10 -0
- package/lib/feature-libraries/modular-schema/prune.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/prune.js +45 -0
- package/lib/feature-libraries/modular-schema/prune.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +2 -2
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/treeTextCursor.d.ts +15 -0
- package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
- package/lib/feature-libraries/treeTextCursor.js +62 -1
- package/lib/feature-libraries/treeTextCursor.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/serializedChange.d.ts +2 -2
- package/lib/shared-tree/serializedChange.d.ts.map +1 -1
- package/lib/shared-tree/serializedChange.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +6 -3
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +9 -7
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +2 -2
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +41 -4
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +55 -0
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/transactionMinimize.d.ts.map +1 -1
- package/lib/shared-tree/transactionMinimize.js +3 -3
- package/lib/shared-tree/transactionMinimize.js.map +1 -1
- package/lib/shared-tree/transactionPostProcessor.d.ts +2 -1
- package/lib/shared-tree/transactionPostProcessor.d.ts.map +1 -1
- package/lib/shared-tree/transactionPostProcessor.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +8 -7
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +1 -1
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +23 -9
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +7 -0
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts +4 -4
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +2 -0
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +3 -14
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts +11 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +4 -11
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +4 -11
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.d.ts +4 -4
- package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerSummarizer.js +0 -1
- package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +2 -2
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
- package/lib/shared-tree-core/messageCodecs.d.ts +8 -1
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +5 -5
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/shared-tree-core/transaction.d.ts +10 -10
- package/lib/shared-tree-core/transaction.d.ts.map +1 -1
- package/lib/shared-tree-core/transaction.js +6 -3
- package/lib/shared-tree-core/transaction.js.map +1 -1
- package/lib/simple-tree/api/eraseSchemaDetails.d.ts +15 -0
- package/lib/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -1
- package/lib/simple-tree/api/eraseSchemaDetails.js +15 -0
- package/lib/simple-tree/api/eraseSchemaDetails.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +21 -2
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts +13 -0
- package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +9 -0
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/text/textDomain.d.ts +12 -0
- package/lib/text/textDomain.d.ts.map +1 -1
- package/lib/text/textDomain.js +34 -15
- package/lib/text/textDomain.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts +155 -61
- package/lib/text/textDomainFormatted.d.ts.map +1 -1
- package/lib/text/textDomainFormatted.js +148 -73
- package/lib/text/textDomainFormatted.js.map +1 -1
- package/lib/text/textDomainFormattedDefault.d.ts +37 -14
- package/lib/text/textDomainFormattedDefault.d.ts.map +1 -1
- package/lib/text/textDomainFormattedDefault.js +14 -6
- package/lib/text/textDomainFormattedDefault.js.map +1 -1
- package/lib/treeDataStore.d.ts +49 -0
- package/lib/treeDataStore.d.ts.map +1 -0
- package/lib/treeDataStore.js +52 -0
- package/lib/treeDataStore.js.map +1 -0
- package/lib/treeFactory.d.ts +8 -3
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +5 -0
- package/lib/treeFactory.js.map +1 -1
- package/package.json +25 -24
- package/src/core/change-family/changeFamily.ts +32 -4
- package/src/core/change-family/editBuilder.ts +1 -2
- package/src/core/change-family/index.ts +2 -0
- package/src/core/index.ts +9 -6
- package/src/core/tree/delta.ts +62 -16
- package/src/core/tree/detachedFieldIndex.ts +7 -38
- package/src/core/tree/index.ts +2 -0
- package/src/core/tree/visitorUtils.ts +3 -17
- package/src/entrypoints/alpha.ts +7 -3
- package/src/feature-libraries/chunked-forest/uniformChunk.ts +11 -1
- package/src/feature-libraries/comparison-forest/comparisonForest.ts +140 -0
- package/src/feature-libraries/comparison-forest/index.ts +6 -0
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +20 -6
- package/src/feature-libraries/default-schema/index.ts +1 -0
- package/src/feature-libraries/default-schema/noChangeCodecs.ts +11 -3
- package/src/feature-libraries/detachedFieldIndexSummarizer.ts +33 -5
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -3
- package/src/feature-libraries/index.ts +5 -0
- package/src/feature-libraries/mitigatedChangeFamily.ts +21 -3
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +10 -1
- package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +9 -4
- package/src/feature-libraries/modular-schema/index.ts +1 -0
- package/src/feature-libraries/modular-schema/invert.ts +338 -0
- package/src/feature-libraries/modular-schema/minimizeModularChange.ts +3 -5
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +16 -13
- package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +3 -1
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +2 -1
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +45 -644
- package/src/feature-libraries/modular-schema/modularChangeUtils.ts +340 -0
- package/src/feature-libraries/modular-schema/prune.ts +69 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +4 -2
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +5 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +4 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +4 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +6 -3
- package/src/feature-libraries/treeTextCursor.ts +66 -1
- package/src/index.ts +4 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/serializedChange.ts +2 -2
- package/src/shared-tree/sharedTree.ts +34 -14
- package/src/shared-tree/sharedTreeChangeCodecs.ts +11 -3
- package/src/shared-tree/sharedTreeChangeFamily.ts +77 -2
- package/src/shared-tree/transactionMinimize.ts +7 -3
- package/src/shared-tree/transactionPostProcessor.ts +5 -1
- package/src/shared-tree/treeCheckout.ts +55 -16
- package/src/shared-tree-core/branch.ts +40 -12
- package/src/shared-tree-core/editManager.ts +46 -25
- package/src/shared-tree-core/editManagerCodecs.ts +9 -21
- package/src/shared-tree-core/editManagerCodecsCommons.ts +14 -2
- package/src/shared-tree-core/editManagerCodecsV1toV4.ts +18 -21
- package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +18 -20
- package/src/shared-tree-core/editManagerSummarizer.ts +9 -6
- package/src/shared-tree-core/messageCodecV1ToV4.ts +3 -3
- package/src/shared-tree-core/messageCodecVSharedBranches.ts +2 -2
- package/src/shared-tree-core/messageCodecs.ts +12 -2
- package/src/shared-tree-core/sharedTreeCore.ts +15 -6
- package/src/shared-tree-core/transaction.ts +47 -25
- package/src/simple-tree/api/eraseSchemaDetails.ts +15 -0
- package/src/simple-tree/node-kinds/array/arrayNode.ts +21 -2
- package/src/simple-tree/node-kinds/map/mapNode.ts +24 -2
- package/src/text/textDomain.ts +29 -6
- package/src/text/textDomainFormatted.ts +351 -134
- package/src/text/textDomainFormattedDefault.ts +25 -16
- package/src/treeDataStore.ts +125 -0
- package/src/treeFactory.ts +11 -3
|
@@ -52,6 +52,7 @@ import {
|
|
|
52
52
|
TreeCompressionStrategy,
|
|
53
53
|
buildChunkedForest,
|
|
54
54
|
buildForest,
|
|
55
|
+
ComparisonForest,
|
|
55
56
|
defaultIncrementalEncodingPolicy,
|
|
56
57
|
defaultSchemaPolicy,
|
|
57
58
|
fieldBatchCodecBuilder,
|
|
@@ -105,6 +106,7 @@ import {
|
|
|
105
106
|
getCodecTreeForChangeFormat,
|
|
106
107
|
SharedTreeChangeFormatVersion,
|
|
107
108
|
} from "./sharedTreeChangeCodecs.js";
|
|
109
|
+
import type { SharedTreeChangeProcessingContext } from "./sharedTreeChangeFamily.js";
|
|
108
110
|
import { SharedTreeChangeFamily } from "./sharedTreeChangeFamily.js";
|
|
109
111
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
110
112
|
import type { SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
|
|
@@ -174,7 +176,11 @@ export type SharedTreeKernelView = Omit<ITreePrivate, keyof (IChannelView & IFlu
|
|
|
174
176
|
*/
|
|
175
177
|
@breakingClass
|
|
176
178
|
export class SharedTreeKernel
|
|
177
|
-
extends SharedTreeCore<
|
|
179
|
+
extends SharedTreeCore<
|
|
180
|
+
SharedTreeEditBuilder,
|
|
181
|
+
SharedTreeChange,
|
|
182
|
+
SharedTreeChangeProcessingContext
|
|
183
|
+
>
|
|
178
184
|
implements SharedKernel
|
|
179
185
|
{
|
|
180
186
|
public readonly checkout: TreeCheckout;
|
|
@@ -219,13 +225,7 @@ export class SharedTreeKernel
|
|
|
219
225
|
idCompressor,
|
|
220
226
|
options.shouldEncodeIncrementally,
|
|
221
227
|
);
|
|
222
|
-
const
|
|
223
|
-
const removedRoots = makeDetachedFieldIndex(
|
|
224
|
-
"repair",
|
|
225
|
-
revisionTagCodec,
|
|
226
|
-
idCompressor,
|
|
227
|
-
options,
|
|
228
|
-
);
|
|
228
|
+
const removedRoots = makeDetachedFieldIndex("repair");
|
|
229
229
|
const schemaCodec = schemaCodecBuilder.build(options);
|
|
230
230
|
const schemaSummarizer = new SchemaSummarizer(
|
|
231
231
|
schema,
|
|
@@ -257,7 +257,6 @@ export class SharedTreeKernel
|
|
|
257
257
|
});
|
|
258
258
|
const forestSummarizer = new ForestSummarizer(
|
|
259
259
|
forest,
|
|
260
|
-
revisionTagCodec,
|
|
261
260
|
encoderContext,
|
|
262
261
|
decoderContext,
|
|
263
262
|
options,
|
|
@@ -265,9 +264,12 @@ export class SharedTreeKernel
|
|
|
265
264
|
initialSequenceNumber,
|
|
266
265
|
options.shouldEncodeIncrementally,
|
|
267
266
|
);
|
|
267
|
+
const revisionTagCodec = new RevisionTagCodec(idCompressor);
|
|
268
268
|
const removedRootsSummarizer = new DetachedFieldIndexSummarizer(
|
|
269
269
|
removedRoots,
|
|
270
|
-
|
|
270
|
+
revisionTagCodec,
|
|
271
|
+
idCompressor,
|
|
272
|
+
options,
|
|
271
273
|
);
|
|
272
274
|
const innerChangeFamily = new SharedTreeChangeFamily(
|
|
273
275
|
revisionTagCodec,
|
|
@@ -436,7 +438,11 @@ export class SharedTreeKernel
|
|
|
436
438
|
|
|
437
439
|
public override applyStashedOp(
|
|
438
440
|
...args: Parameters<
|
|
439
|
-
SharedTreeCore<
|
|
441
|
+
SharedTreeCore<
|
|
442
|
+
SharedTreeEditBuilder,
|
|
443
|
+
SharedTreeChange,
|
|
444
|
+
SharedTreeChangeProcessingContext
|
|
445
|
+
>["applyStashedOp"]
|
|
440
446
|
>
|
|
441
447
|
): void {
|
|
442
448
|
for (const checkout of this.checkouts.values()) {
|
|
@@ -739,12 +745,26 @@ export const ForestTypeOptimized = toForestType(
|
|
|
739
745
|
* Includes validation with scales poorly.
|
|
740
746
|
* May be asymptotically slower than {@link ForestTypeReference}, and may perform very badly with larger data sizes.
|
|
741
747
|
* @privateRemarks
|
|
742
|
-
*
|
|
748
|
+
* A {@link ComparisonForest} which uses the "ChunkedForest" forest type as its main forest and validates every delta
|
|
749
|
+
* against a reference "ObjectForest" (with expensive asserts enabled for schema validation).
|
|
750
|
+
* This exercises the optimized forest while asserting that its contents stay consistent with the reference implementation.
|
|
743
751
|
* @beta
|
|
744
752
|
*/
|
|
745
753
|
export const ForestTypeExpensiveDebug = toForestType(
|
|
746
|
-
(
|
|
747
|
-
|
|
754
|
+
(
|
|
755
|
+
breaker: Breakable,
|
|
756
|
+
schema: TreeStoredSchemaSubscription,
|
|
757
|
+
idCompressor: IIdCompressor,
|
|
758
|
+
shouldEncodeIncrementally: IncrementalEncodingPolicy,
|
|
759
|
+
) =>
|
|
760
|
+
new ComparisonForest(
|
|
761
|
+
buildChunkedForest(
|
|
762
|
+
makeTreeChunker(schema, defaultSchemaPolicy, shouldEncodeIncrementally),
|
|
763
|
+
undefined,
|
|
764
|
+
idCompressor,
|
|
765
|
+
),
|
|
766
|
+
buildForest(breaker, schema, undefined, true),
|
|
767
|
+
),
|
|
748
768
|
);
|
|
749
769
|
|
|
750
770
|
type ForestFactory = (
|
|
@@ -16,7 +16,11 @@ import {
|
|
|
16
16
|
makeCodecFamily,
|
|
17
17
|
withSchemaValidation,
|
|
18
18
|
} from "../codec/index.js";
|
|
19
|
-
import type {
|
|
19
|
+
import type {
|
|
20
|
+
ChangeEncodingContext,
|
|
21
|
+
ChangeDecodingContext,
|
|
22
|
+
TreeStoredSchema,
|
|
23
|
+
} from "../core/index.js";
|
|
20
24
|
import {
|
|
21
25
|
ModularChangeFormatVersion,
|
|
22
26
|
type ModularChangeset,
|
|
@@ -39,9 +43,13 @@ import {
|
|
|
39
43
|
import type { SharedTreeChange, SharedTreeInnerChange } from "./sharedTreeChangeTypes.js";
|
|
40
44
|
|
|
41
45
|
export function makeSharedTreeChangeCodecFamily(
|
|
42
|
-
modularChangeCodecFamily: ICodecFamily<
|
|
46
|
+
modularChangeCodecFamily: ICodecFamily<
|
|
47
|
+
ModularChangeset,
|
|
48
|
+
ChangeEncodingContext,
|
|
49
|
+
ChangeDecodingContext
|
|
50
|
+
>,
|
|
43
51
|
options: CodecWriteOptions,
|
|
44
|
-
): ICodecFamily<SharedTreeChange, ChangeEncodingContext> {
|
|
52
|
+
): ICodecFamily<SharedTreeChange, ChangeEncodingContext, ChangeDecodingContext> {
|
|
45
53
|
const versions: [
|
|
46
54
|
FormatVersion,
|
|
47
55
|
IJsonCodec<
|
|
@@ -9,6 +9,7 @@ import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
|
9
9
|
import type { CodecWriteOptions, ICodecFamily } from "../codec/index.js";
|
|
10
10
|
import {
|
|
11
11
|
type ChangeEncodingContext,
|
|
12
|
+
type ChangeDecodingContext,
|
|
12
13
|
type ChangeFamily,
|
|
13
14
|
type ChangeRebaser,
|
|
14
15
|
type DeltaDetachedNodeId,
|
|
@@ -18,6 +19,7 @@ import {
|
|
|
18
19
|
type RevisionTagCodec,
|
|
19
20
|
type TaggedChange,
|
|
20
21
|
mapTaggedChange,
|
|
22
|
+
type ProcessChangeFn,
|
|
21
23
|
} from "../core/index.js";
|
|
22
24
|
import {
|
|
23
25
|
type FieldBatchCodec,
|
|
@@ -41,6 +43,10 @@ import { makeSharedTreeChangeCodecFamily } from "./sharedTreeChangeCodecs.js";
|
|
|
41
43
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
42
44
|
import { SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
|
|
43
45
|
|
|
46
|
+
export interface SharedTreeChangeProcessingContext {
|
|
47
|
+
modularChangeFamily: ModularChangeFamily;
|
|
48
|
+
}
|
|
49
|
+
|
|
44
50
|
/**
|
|
45
51
|
* Implementation of {@link ChangeFamily} that combines edits to fields and schema changes.
|
|
46
52
|
*
|
|
@@ -48,14 +54,18 @@ import { SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
|
|
|
48
54
|
*/
|
|
49
55
|
export class SharedTreeChangeFamily
|
|
50
56
|
implements
|
|
51
|
-
ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>,
|
|
57
|
+
ChangeFamily<SharedTreeEditBuilder, SharedTreeChange, SharedTreeChangeProcessingContext>,
|
|
52
58
|
ChangeRebaser<SharedTreeChange>
|
|
53
59
|
{
|
|
54
60
|
public static readonly emptyChange: SharedTreeChange = {
|
|
55
61
|
changes: [],
|
|
56
62
|
};
|
|
57
63
|
|
|
58
|
-
public readonly codecs: ICodecFamily<
|
|
64
|
+
public readonly codecs: ICodecFamily<
|
|
65
|
+
SharedTreeChange,
|
|
66
|
+
ChangeEncodingContext,
|
|
67
|
+
ChangeDecodingContext
|
|
68
|
+
>;
|
|
59
69
|
private readonly modularChangeFamily: ModularChangeFamily;
|
|
60
70
|
|
|
61
71
|
public constructor(
|
|
@@ -94,6 +104,15 @@ export class SharedTreeChangeFamily
|
|
|
94
104
|
);
|
|
95
105
|
}
|
|
96
106
|
|
|
107
|
+
public buildProcessor(
|
|
108
|
+
processFn: ProcessChangeFn<SharedTreeChange, SharedTreeChangeProcessingContext>,
|
|
109
|
+
): (change: SharedTreeChange) => SharedTreeChange {
|
|
110
|
+
return (change: SharedTreeChange) =>
|
|
111
|
+
processFn(change, {
|
|
112
|
+
modularChangeFamily: this.modularChangeFamily,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
97
116
|
public compose(changes: TaggedChange<SharedTreeChange>[]): SharedTreeChange {
|
|
98
117
|
const newChanges: Mutable<SharedTreeChange["changes"]> = [];
|
|
99
118
|
const dataChangeRun: TaggedChange<ModularChangeset>[] = [];
|
|
@@ -342,3 +361,59 @@ export function updateRefreshers(
|
|
|
342
361
|
}
|
|
343
362
|
});
|
|
344
363
|
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* The status of a {@link SharedTreeChange} with respect to its constraints.
|
|
367
|
+
*/
|
|
368
|
+
export enum ConstraintStatus {
|
|
369
|
+
/**
|
|
370
|
+
* All constraints are satisfied.
|
|
371
|
+
*/
|
|
372
|
+
Satisfied,
|
|
373
|
+
/**
|
|
374
|
+
* At least one implicit constraint has been violated.
|
|
375
|
+
* @remarks
|
|
376
|
+
* Implicit constraints are those that are automatically enforced by SharedTree on all changes.
|
|
377
|
+
*
|
|
378
|
+
* Such a violation typically arises in one of two scenarios:
|
|
379
|
+
* 1. A schema change conflicts with a concurrent data or schema change that was sequenced before it.
|
|
380
|
+
* 2. A data change conflicts with a concurrent schema change that was sequenced before it.
|
|
381
|
+
*/
|
|
382
|
+
ImplicitViolation,
|
|
383
|
+
/**
|
|
384
|
+
* At least one explicit constraint has been violated.
|
|
385
|
+
* @remarks
|
|
386
|
+
* Explicit constraints are those that are explicitly added
|
|
387
|
+
* through {@link RunTransactionParamsAlpha.preconditions | preconditions}
|
|
388
|
+
* or {@link TransactionCallbackStatusAlpha.preconditionsOnRevert | preconditionsOnRevert}.
|
|
389
|
+
*/
|
|
390
|
+
ExplicitViolation,
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Gets the constraint status of a shared tree change.
|
|
395
|
+
* @param change - The shared tree change to evaluate.
|
|
396
|
+
* @returns The constraint status of the change.
|
|
397
|
+
*/
|
|
398
|
+
export function getConstraintStatus(change: SharedTreeChange): ConstraintStatus {
|
|
399
|
+
if (change.changes.length === 0) {
|
|
400
|
+
// The SharedTreeChange format (both in memory and over the wire) has no way to convey implicit constraint violation.
|
|
401
|
+
// Instead, the current rebase implementation in SharedTreeChangeFamily produces an empty change.
|
|
402
|
+
// This is not ideal because there is no guarantee that an empty change didn't just start out that way.
|
|
403
|
+
// There is currently only one way to generate an empty change that isn't a result of an implicit constraint violation:
|
|
404
|
+
// when the SharedTreeChangeFamily is wrapped in makeMitigatedChangeFamily, an empty change is produced when an error occurs.
|
|
405
|
+
// This is unlikely to cause problems for this logic for two reasons:
|
|
406
|
+
// 1. Such an error will put SharedTree into a broken state, halting further operations.
|
|
407
|
+
// 2. It is reasonable to treat a changeset whose production triggered an error as having violated the implicit constraints in our code.
|
|
408
|
+
return ConstraintStatus.ImplicitViolation;
|
|
409
|
+
}
|
|
410
|
+
if (
|
|
411
|
+
change.changes.some(
|
|
412
|
+
({ type, innerChange }) =>
|
|
413
|
+
type === "data" && (innerChange.constraintViolationCount ?? 0) > 0,
|
|
414
|
+
)
|
|
415
|
+
) {
|
|
416
|
+
return ConstraintStatus.ExplicitViolation;
|
|
417
|
+
}
|
|
418
|
+
return ConstraintStatus.Satisfied;
|
|
419
|
+
}
|
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { minimizeModularChangeset } from "../feature-libraries/index.js";
|
|
9
9
|
import { ChangeProcessorApplicability } from "../shared-tree-core/index.js";
|
|
10
10
|
import type { TransactionPostProcessor } from "../simple-tree/index.js";
|
|
11
11
|
|
|
12
12
|
import { mapDataChanges } from "./sharedTreeChangeFamily.js";
|
|
13
13
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
14
14
|
import { createTransactionPostProcessor } from "./transactionPostProcessor.js";
|
|
15
|
+
import type { SharedTreeChangeProcessingContext } from "./sharedTreeChangeFamily.js";
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* "Minimizes" a {@link SharedTreeChange} so that it contains no extraneous
|
|
@@ -26,7 +27,10 @@ import { createTransactionPostProcessor } from "./transactionPostProcessor.js";
|
|
|
26
27
|
*
|
|
27
28
|
* Schema changes are left unchanged.
|
|
28
29
|
*/
|
|
29
|
-
function minimizeSharedTreeChange(
|
|
30
|
+
function minimizeSharedTreeChange(
|
|
31
|
+
change: SharedTreeChange,
|
|
32
|
+
context: SharedTreeChangeProcessingContext,
|
|
33
|
+
): SharedTreeChange {
|
|
30
34
|
const countOfDataChanges = change.changes.filter(
|
|
31
35
|
(innerChange) => innerChange.type === "data",
|
|
32
36
|
).length;
|
|
@@ -36,7 +40,7 @@ function minimizeSharedTreeChange(change: SharedTreeChange): SharedTreeChange {
|
|
|
36
40
|
);
|
|
37
41
|
}
|
|
38
42
|
return mapDataChanges(change, (dataChange) =>
|
|
39
|
-
minimizeModularChangeset(dataChange,
|
|
43
|
+
minimizeModularChangeset(dataChange, context.modularChangeFamily),
|
|
40
44
|
);
|
|
41
45
|
}
|
|
42
46
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import type { ChangeProcessor } from "../shared-tree-core/index.js";
|
|
7
7
|
import type { TransactionPostProcessor } from "../simple-tree/index.js";
|
|
8
|
+
import type { SharedTreeChangeProcessingContext } from "./sharedTreeChangeFamily.js";
|
|
8
9
|
|
|
9
10
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
10
11
|
|
|
@@ -13,7 +14,10 @@ import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
|
13
14
|
* {@link SharedTreeChange}.
|
|
14
15
|
* @remarks This is the (non-type-erased) form used internally to apply a transaction's post-processor.
|
|
15
16
|
*/
|
|
16
|
-
export type TransactionPostProcessorInternal = ChangeProcessor<
|
|
17
|
+
export type TransactionPostProcessorInternal = ChangeProcessor<
|
|
18
|
+
SharedTreeChange,
|
|
19
|
+
SharedTreeChangeProcessingContext
|
|
20
|
+
>;
|
|
17
21
|
|
|
18
22
|
/**
|
|
19
23
|
* Type-erases an internal {@link TransactionPostProcessorInternal | change processor} as a public
|
|
@@ -114,6 +114,7 @@ import {
|
|
|
114
114
|
|
|
115
115
|
import { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
|
|
116
116
|
import { SharedTreeChangeEnricher } from "./sharedTreeChangeEnricher.js";
|
|
117
|
+
import type { SharedTreeChangeProcessingContext } from "./sharedTreeChangeFamily.js";
|
|
117
118
|
import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
|
|
118
119
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
119
120
|
import type { ISharedTreeEditor, SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
|
|
@@ -210,7 +211,9 @@ export interface CheckoutEvents {
|
|
|
210
211
|
/**
|
|
211
212
|
* A collection of functions for managing transactions on a {@link ITreeCheckout}.
|
|
212
213
|
*/
|
|
213
|
-
export type TreeTransactor = Transactor<
|
|
214
|
+
export type TreeTransactor = Transactor<
|
|
215
|
+
SquashingTransactionOptions<SharedTreeChange, SharedTreeChangeProcessingContext>
|
|
216
|
+
>;
|
|
214
217
|
|
|
215
218
|
/**
|
|
216
219
|
* Provides a means for interacting with a SharedTree.
|
|
@@ -305,8 +308,16 @@ export function createTreeCheckout(
|
|
|
305
308
|
mintRevisionTag: () => RevisionTag,
|
|
306
309
|
revisionTagCodec: RevisionTagCodec,
|
|
307
310
|
args?: {
|
|
308
|
-
branch?: SharedTreeBranch<
|
|
309
|
-
|
|
311
|
+
branch?: SharedTreeBranch<
|
|
312
|
+
SharedTreeEditBuilder,
|
|
313
|
+
SharedTreeChange,
|
|
314
|
+
SharedTreeChangeProcessingContext
|
|
315
|
+
>;
|
|
316
|
+
changeFamily?: ChangeFamily<
|
|
317
|
+
SharedTreeEditBuilder,
|
|
318
|
+
SharedTreeChange,
|
|
319
|
+
SharedTreeChangeProcessingContext
|
|
320
|
+
>;
|
|
310
321
|
schema?: TreeStoredSchemaRepository;
|
|
311
322
|
forest?: IEditableForest;
|
|
312
323
|
fieldBatchCodec?: FieldBatchCodec;
|
|
@@ -501,7 +512,11 @@ export class TreeCheckout implements ITreeCheckout {
|
|
|
501
512
|
*/
|
|
502
513
|
private readonly revertibleCommitBranches = new Map<
|
|
503
514
|
RevisionTag,
|
|
504
|
-
SharedTreeBranch<
|
|
515
|
+
SharedTreeBranch<
|
|
516
|
+
SharedTreeEditBuilder,
|
|
517
|
+
SharedTreeChange,
|
|
518
|
+
SharedTreeChangeProcessingContext
|
|
519
|
+
>
|
|
505
520
|
>();
|
|
506
521
|
|
|
507
522
|
/**
|
|
@@ -514,20 +529,24 @@ export class TreeCheckout implements ITreeCheckout {
|
|
|
514
529
|
public events: Listenable<CheckoutEvents> = this.#events;
|
|
515
530
|
|
|
516
531
|
public constructor(
|
|
517
|
-
branch: SharedTreeBranch<
|
|
532
|
+
branch: SharedTreeBranch<
|
|
533
|
+
SharedTreeEditBuilder,
|
|
534
|
+
SharedTreeChange,
|
|
535
|
+
SharedTreeChangeProcessingContext
|
|
536
|
+
>,
|
|
518
537
|
/** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
|
|
519
538
|
public readonly isSharedBranch: boolean,
|
|
520
|
-
private readonly changeFamily: ChangeFamily<
|
|
539
|
+
private readonly changeFamily: ChangeFamily<
|
|
540
|
+
SharedTreeEditBuilder,
|
|
541
|
+
SharedTreeChange,
|
|
542
|
+
SharedTreeChangeProcessingContext
|
|
543
|
+
>,
|
|
521
544
|
public readonly storedSchema: TreeStoredSchemaRepository,
|
|
522
545
|
public readonly forest: IEditableForest,
|
|
523
546
|
private readonly mintRevisionTag: () => RevisionTag,
|
|
524
547
|
private readonly revisionTagCodec: RevisionTagCodec,
|
|
525
548
|
private readonly idCompressor: IIdCompressor,
|
|
526
|
-
private readonly _removedRoots: DetachedFieldIndex = makeDetachedFieldIndex(
|
|
527
|
-
"repair",
|
|
528
|
-
revisionTagCodec,
|
|
529
|
-
idCompressor,
|
|
530
|
-
),
|
|
549
|
+
private readonly _removedRoots: DetachedFieldIndex = makeDetachedFieldIndex("repair"),
|
|
531
550
|
/** Optional logger for telemetry. */
|
|
532
551
|
private readonly logger?: TelemetryLoggerExt,
|
|
533
552
|
public readonly breaker: Breakable = new Breakable("TreeCheckout", logger),
|
|
@@ -660,8 +679,16 @@ export class TreeCheckout implements ITreeCheckout {
|
|
|
660
679
|
}
|
|
661
680
|
|
|
662
681
|
private createTransactionStack(
|
|
663
|
-
branch: SharedTreeBranch<
|
|
664
|
-
|
|
682
|
+
branch: SharedTreeBranch<
|
|
683
|
+
SharedTreeEditBuilder,
|
|
684
|
+
SharedTreeChange,
|
|
685
|
+
SharedTreeChangeProcessingContext
|
|
686
|
+
>,
|
|
687
|
+
): SquashingTransactionStack<
|
|
688
|
+
SharedTreeEditBuilder,
|
|
689
|
+
SharedTreeChange,
|
|
690
|
+
SharedTreeChangeProcessingContext
|
|
691
|
+
> {
|
|
665
692
|
return new SquashingTransactionStack(branch, this.mintRevisionTag, () => {
|
|
666
693
|
// When each transaction is started, make a restorable checkpoint of the current state of removed roots
|
|
667
694
|
const restoreRemovedRoots = this._removedRoots.createCheckpoint();
|
|
@@ -1187,7 +1214,11 @@ export class TreeCheckout implements ITreeCheckout {
|
|
|
1187
1214
|
* To avoid updating observers of the view state with intermediate results during a transaction,
|
|
1188
1215
|
* use {@link ITreeCheckout#fork} and {@link ISharedTreeFork#merge}.
|
|
1189
1216
|
*/
|
|
1190
|
-
#transaction: SquashingTransactionStack<
|
|
1217
|
+
#transaction: SquashingTransactionStack<
|
|
1218
|
+
SharedTreeEditBuilder,
|
|
1219
|
+
SharedTreeChange,
|
|
1220
|
+
SharedTreeChangeProcessingContext
|
|
1221
|
+
>;
|
|
1191
1222
|
|
|
1192
1223
|
@throwIfBroken
|
|
1193
1224
|
public fork(): TreeCheckout {
|
|
@@ -1221,7 +1252,11 @@ export class TreeCheckout implements ITreeCheckout {
|
|
|
1221
1252
|
}
|
|
1222
1253
|
|
|
1223
1254
|
public switchBranch(
|
|
1224
|
-
branch: SharedTreeBranch<
|
|
1255
|
+
branch: SharedTreeBranch<
|
|
1256
|
+
SharedTreeEditBuilder,
|
|
1257
|
+
SharedTreeChange,
|
|
1258
|
+
SharedTreeChangeProcessingContext
|
|
1259
|
+
>,
|
|
1225
1260
|
): void {
|
|
1226
1261
|
// TODO: Dispose old branch, if necessary
|
|
1227
1262
|
assert(
|
|
@@ -1648,7 +1683,11 @@ export class TreeCheckout implements ITreeCheckout {
|
|
|
1648
1683
|
return enriched;
|
|
1649
1684
|
}
|
|
1650
1685
|
|
|
1651
|
-
public get mainBranch(): SharedTreeBranch<
|
|
1686
|
+
public get mainBranch(): SharedTreeBranch<
|
|
1687
|
+
SharedTreeEditBuilder,
|
|
1688
|
+
SharedTreeChange,
|
|
1689
|
+
SharedTreeChangeProcessingContext
|
|
1690
|
+
> {
|
|
1652
1691
|
return this.#transaction.branch;
|
|
1653
1692
|
}
|
|
1654
1693
|
|
|
@@ -61,8 +61,11 @@ export type SharedTreeBranchChange<TChange> =
|
|
|
61
61
|
/**
|
|
62
62
|
* The events emitted by a `SharedTreeBranch`
|
|
63
63
|
*/
|
|
64
|
-
export interface SharedTreeBranchEvents<
|
|
65
|
-
extends
|
|
64
|
+
export interface SharedTreeBranchEvents<
|
|
65
|
+
TEditor extends ChangeFamilyEditor,
|
|
66
|
+
TChange,
|
|
67
|
+
TChangeProcessingContext,
|
|
68
|
+
> extends BranchTrimmingEvents {
|
|
66
69
|
/**
|
|
67
70
|
* Fired just before the head of this branch changes.
|
|
68
71
|
* @param change - the change to this branch's state and commits
|
|
@@ -79,7 +82,17 @@ export interface SharedTreeBranchEvents<TEditor extends ChangeFamilyEditor, TCha
|
|
|
79
82
|
* Fired when this branch forks
|
|
80
83
|
* @param fork - the new branch that forked off of this branch
|
|
81
84
|
*/
|
|
82
|
-
fork(fork: SharedTreeBranch<TEditor, TChange>): void;
|
|
85
|
+
fork(fork: SharedTreeBranch<TEditor, TChange, TChangeProcessingContext>): void;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Fired when a commit is ordered by the sequencing service.
|
|
89
|
+
*
|
|
90
|
+
* @remarks
|
|
91
|
+
* Once a commit is sequenced, the following guarantees hold:
|
|
92
|
+
* 1. The changes carried by the commit have been persisted and other peers are able to see them.
|
|
93
|
+
* 2. There can be no more concurrent changes sequenced before this commit, which means this commit has reached its settled form.
|
|
94
|
+
*/
|
|
95
|
+
commitSequenced(commit: GraphCommit<TChange>): void;
|
|
83
96
|
|
|
84
97
|
/**
|
|
85
98
|
* Fired after this branch is disposed
|
|
@@ -107,9 +120,16 @@ export interface BranchTrimmingEvents {
|
|
|
107
120
|
/**
|
|
108
121
|
* A branch of changes that can be applied to a SharedTree.
|
|
109
122
|
*/
|
|
110
|
-
export class SharedTreeBranch<
|
|
111
|
-
|
|
112
|
-
|
|
123
|
+
export class SharedTreeBranch<
|
|
124
|
+
TEditor extends ChangeFamilyEditor,
|
|
125
|
+
TChange,
|
|
126
|
+
TChangeProcessingContext,
|
|
127
|
+
> {
|
|
128
|
+
readonly #events =
|
|
129
|
+
createEmitter<SharedTreeBranchEvents<TEditor, TChange, TChangeProcessingContext>>();
|
|
130
|
+
public readonly events: Listenable<
|
|
131
|
+
SharedTreeBranchEvents<TEditor, TChange, TChangeProcessingContext>
|
|
132
|
+
> = this.#events;
|
|
113
133
|
public readonly editor: TEditor;
|
|
114
134
|
private disposed = false;
|
|
115
135
|
private readonly unsubscribeBranchTrimmer?: () => void;
|
|
@@ -123,7 +143,7 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
123
143
|
*/
|
|
124
144
|
public constructor(
|
|
125
145
|
private head: GraphCommit<TChange>,
|
|
126
|
-
public readonly changeFamily: ChangeFamily<TEditor, TChange>,
|
|
146
|
+
public readonly changeFamily: ChangeFamily<TEditor, TChange, TChangeProcessingContext>,
|
|
127
147
|
private readonly mintRevisionTag: () => RevisionTag,
|
|
128
148
|
private readonly branchTrimmer?: Listenable<BranchTrimmingEvents>,
|
|
129
149
|
private readonly telemetryEventBatcher?: TelemetryEventBatcher<
|
|
@@ -177,6 +197,14 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
177
197
|
this.#events.emit("afterChange", changeEvent);
|
|
178
198
|
}
|
|
179
199
|
|
|
200
|
+
/**
|
|
201
|
+
* Notifies the branch that a commit has been sequenced by the sequencing service.
|
|
202
|
+
* @param commit - The commit that was sequenced
|
|
203
|
+
*/
|
|
204
|
+
public commitWasSequenced(commit: GraphCommit<TChange>): void {
|
|
205
|
+
this.#events.emit("commitSequenced", commit);
|
|
206
|
+
}
|
|
207
|
+
|
|
180
208
|
/**
|
|
181
209
|
* Gets the commit at the head of this branch.
|
|
182
210
|
*/
|
|
@@ -194,7 +222,7 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
194
222
|
public fork(
|
|
195
223
|
commit: GraphCommit<TChange> = this.head,
|
|
196
224
|
mintRevisionTag: () => RevisionTag = this.mintRevisionTag,
|
|
197
|
-
): SharedTreeBranch<TEditor, TChange> {
|
|
225
|
+
): SharedTreeBranch<TEditor, TChange, TChangeProcessingContext> {
|
|
198
226
|
this.assertNotDisposed();
|
|
199
227
|
const fork = new SharedTreeBranch(
|
|
200
228
|
commit,
|
|
@@ -215,7 +243,7 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
215
243
|
* @returns the result of the rebase or undefined if nothing changed
|
|
216
244
|
*/
|
|
217
245
|
public rebaseOnto(
|
|
218
|
-
branch: SharedTreeBranch<TEditor, TChange>,
|
|
246
|
+
branch: SharedTreeBranch<TEditor, TChange, TChangeProcessingContext>,
|
|
219
247
|
upTo = branch.getHead(),
|
|
220
248
|
): void {
|
|
221
249
|
this.assertNotDisposed();
|
|
@@ -291,7 +319,7 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
291
319
|
* @returns the commits that were added to this branch by the merge, or undefined if nothing changed
|
|
292
320
|
*/
|
|
293
321
|
public merge(
|
|
294
|
-
branch: SharedTreeBranch<TEditor, TChange>,
|
|
322
|
+
branch: SharedTreeBranch<TEditor, TChange, TChangeProcessingContext>,
|
|
295
323
|
): { sourceCommits: GraphCommit<TChange>[] } | undefined {
|
|
296
324
|
this.assertNotDisposed();
|
|
297
325
|
branch.assertNotDisposed();
|
|
@@ -328,8 +356,8 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
328
356
|
|
|
329
357
|
/** Rebase `branchHead` onto `onto`, but return undefined if nothing changed */
|
|
330
358
|
private rebaseBranch(
|
|
331
|
-
branch: SharedTreeBranch<TEditor, TChange>,
|
|
332
|
-
onto: SharedTreeBranch<TEditor, TChange>,
|
|
359
|
+
branch: SharedTreeBranch<TEditor, TChange, TChangeProcessingContext>,
|
|
360
|
+
onto: SharedTreeBranch<TEditor, TChange, TChangeProcessingContext>,
|
|
333
361
|
upTo = onto.getHead(),
|
|
334
362
|
): BranchRebaseResult<TChange> | undefined {
|
|
335
363
|
const { head } = branch;
|