@fluidframework/tree 2.61.0 → 2.62.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 +162 -0
- package/api-report/tree.alpha.api.md +26 -21
- package/api-report/tree.beta.api.md +15 -0
- package/api-report/tree.legacy.beta.api.md +18 -0
- package/dist/alpha.d.ts +8 -8
- package/dist/api.d.ts +17 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +24 -0
- package/dist/api.js.map +1 -0
- package/dist/beta.d.ts +5 -0
- package/dist/codec/codec.d.ts +3 -5
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +9 -2
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +0 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +1 -3
- package/dist/codec/index.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/utils.d.ts +10 -0
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +20 -1
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +1 -1
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/external-utilities/index.d.ts +1 -1
- package/dist/external-utilities/index.d.ts.map +1 -1
- package/dist/external-utilities/index.js +1 -2
- package/dist/external-utilities/index.js.map +1 -1
- package/dist/external-utilities/typeboxValidator.d.ts +0 -13
- package/dist/external-utilities/typeboxValidator.d.ts.map +1 -1
- package/dist/external-utilities/typeboxValidator.js +3 -5
- package/dist/external-utilities/typeboxValidator.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/index.d.ts +1 -0
- package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/index.js +4 -1
- package/dist/feature-libraries/flex-tree/index.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +15 -8
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/observer.d.ts +32 -0
- package/dist/feature-libraries/flex-tree/observer.d.ts.map +1 -0
- package/dist/feature-libraries/flex-tree/observer.js +33 -0
- package/dist/feature-libraries/flex-tree/observer.js.map +1 -0
- package/dist/feature-libraries/index.d.ts +1 -1
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +3 -1
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +7 -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/index.d.ts +2 -2
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +2 -2
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +21 -6
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +76 -37
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +114 -1
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
- package/dist/shared-tree/treeAlpha.js +140 -1
- package/dist/shared-tree/treeAlpha.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +13 -7
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +115 -85
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +3 -0
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/branchIdCodec.d.ts +11 -0
- package/dist/shared-tree-core/branchIdCodec.d.ts.map +1 -0
- package/dist/shared-tree-core/branchIdCodec.js +18 -0
- package/dist/shared-tree-core/branchIdCodec.js.map +1 -0
- package/dist/shared-tree-core/editManager.d.ts +39 -64
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +455 -295
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +7 -96
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts +17 -0
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerCodecsCommons.js +139 -0
- package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -0
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +16 -0
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js +39 -0
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -0
- package/dist/shared-tree-core/editManagerCodecsV5.d.ts +16 -0
- package/dist/shared-tree-core/editManagerCodecsV5.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerCodecsV5.js +58 -0
- package/dist/shared-tree-core/editManagerCodecsV5.js.map +1 -0
- package/dist/shared-tree-core/{editManagerFormat.d.ts → editManagerFormatCommons.d.ts} +31 -7
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -0
- package/dist/shared-tree-core/{editManagerFormat.js → editManagerFormatCommons.js} +13 -12
- package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +31 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.js +24 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -0
- package/dist/shared-tree-core/editManagerFormatV5.d.ts +62 -0
- package/dist/shared-tree-core/editManagerFormatV5.d.ts.map +1 -0
- package/dist/shared-tree-core/editManagerFormatV5.js +20 -0
- package/dist/shared-tree-core/editManagerFormatV5.js.map +1 -0
- package/dist/shared-tree-core/index.d.ts +3 -3
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +11 -0
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -0
- package/dist/shared-tree-core/messageCodecV1ToV4.js +59 -0
- package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -0
- package/dist/shared-tree-core/messageCodecV5.d.ts +11 -0
- package/dist/shared-tree-core/messageCodecV5.d.ts.map +1 -0
- package/dist/shared-tree-core/messageCodecV5.js +78 -0
- package/dist/shared-tree-core/messageCodecV5.js.map +1 -0
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +16 -47
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/{messageFormat.d.ts → messageFormatV1ToV4.d.ts} +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -0
- package/dist/shared-tree-core/{messageFormat.js → messageFormatV1ToV4.js} +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -0
- package/dist/shared-tree-core/messageFormatV5.d.ts +42 -0
- package/dist/shared-tree-core/messageFormatV5.d.ts.map +1 -0
- package/dist/shared-tree-core/messageFormatV5.js +20 -0
- package/dist/shared-tree-core/messageFormatV5.js.map +1 -0
- package/dist/shared-tree-core/messageTypes.d.ts +12 -2
- package/dist/shared-tree-core/messageTypes.d.ts.map +1 -1
- package/dist/shared-tree-core/messageTypes.js.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +19 -5
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +182 -58
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +17 -0
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +2 -0
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +7 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/treeFactory.d.ts +38 -9
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +44 -9
- package/dist/treeFactory.js.map +1 -1
- package/lib/alpha.d.ts +8 -8
- package/lib/api.d.ts +17 -0
- package/lib/api.d.ts.map +1 -0
- package/lib/api.js +22 -0
- package/lib/api.js.map +1 -0
- package/lib/beta.d.ts +5 -0
- package/lib/codec/codec.d.ts +3 -5
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +8 -1
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +0 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +0 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/core/index.d.ts +1 -1
- 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/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/utils.d.ts +10 -0
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +18 -0
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +2 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/external-utilities/index.d.ts +1 -1
- package/lib/external-utilities/index.d.ts.map +1 -1
- package/lib/external-utilities/index.js +1 -1
- package/lib/external-utilities/index.js.map +1 -1
- package/lib/external-utilities/typeboxValidator.d.ts +0 -13
- package/lib/external-utilities/typeboxValidator.d.ts.map +1 -1
- package/lib/external-utilities/typeboxValidator.js +1 -3
- package/lib/external-utilities/typeboxValidator.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/index.d.ts +1 -0
- package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/index.js +1 -0
- package/lib/feature-libraries/flex-tree/index.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +15 -8
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/observer.d.ts +32 -0
- package/lib/feature-libraries/flex-tree/observer.d.ts.map +1 -0
- package/lib/feature-libraries/flex-tree/observer.js +40 -0
- package/lib/feature-libraries/flex-tree/observer.js.map +1 -0
- package/lib/feature-libraries/index.d.ts +1 -1
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +1 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +7 -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/index.d.ts +2 -2
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +2 -2
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +21 -6
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +78 -39
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +114 -1
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
- package/lib/shared-tree/treeAlpha.js +143 -4
- package/lib/shared-tree/treeAlpha.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +13 -7
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +117 -87
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +3 -0
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/branchIdCodec.d.ts +11 -0
- package/lib/shared-tree-core/branchIdCodec.d.ts.map +1 -0
- package/lib/shared-tree-core/branchIdCodec.js +13 -0
- package/lib/shared-tree-core/branchIdCodec.js.map +1 -0
- package/lib/shared-tree-core/editManager.d.ts +39 -64
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +455 -295
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +4 -93
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts +17 -0
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerCodecsCommons.js +134 -0
- package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -0
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +16 -0
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js +35 -0
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -0
- package/lib/shared-tree-core/editManagerCodecsV5.d.ts +16 -0
- package/lib/shared-tree-core/editManagerCodecsV5.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerCodecsV5.js +54 -0
- package/lib/shared-tree-core/editManagerCodecsV5.js.map +1 -0
- package/lib/shared-tree-core/{editManagerFormat.d.ts → editManagerFormatCommons.d.ts} +31 -7
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -0
- package/lib/shared-tree-core/{editManagerFormat.js → editManagerFormatCommons.js} +10 -11
- package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +31 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.js +20 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -0
- package/lib/shared-tree-core/editManagerFormatV5.d.ts +62 -0
- package/lib/shared-tree-core/editManagerFormatV5.d.ts.map +1 -0
- package/lib/shared-tree-core/editManagerFormatV5.js +16 -0
- package/lib/shared-tree-core/editManagerFormatV5.js.map +1 -0
- package/lib/shared-tree-core/index.d.ts +3 -3
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +11 -0
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -0
- package/lib/shared-tree-core/messageCodecV1ToV4.js +55 -0
- package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -0
- package/lib/shared-tree-core/messageCodecV5.d.ts +11 -0
- package/lib/shared-tree-core/messageCodecV5.d.ts.map +1 -0
- package/lib/shared-tree-core/messageCodecV5.js +74 -0
- package/lib/shared-tree-core/messageCodecV5.js.map +1 -0
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +17 -48
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/{messageFormat.d.ts → messageFormatV1ToV4.d.ts} +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -0
- package/lib/shared-tree-core/{messageFormat.js → messageFormatV1ToV4.js} +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -0
- package/lib/shared-tree-core/messageFormatV5.d.ts +42 -0
- package/lib/shared-tree-core/messageFormatV5.d.ts.map +1 -0
- package/lib/shared-tree-core/messageFormatV5.js +16 -0
- package/lib/shared-tree-core/messageFormatV5.js.map +1 -0
- package/lib/shared-tree-core/messageTypes.d.ts +12 -2
- package/lib/shared-tree-core/messageTypes.d.ts.map +1 -1
- package/lib/shared-tree-core/messageTypes.js.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
- package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +19 -5
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +183 -59
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +17 -0
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +2 -0
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +8 -2
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/treeFactory.d.ts +38 -9
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +41 -8
- package/lib/treeFactory.js.map +1 -1
- package/package.json +25 -25
- package/src/api.ts +30 -0
- package/src/codec/codec.ts +12 -6
- package/src/codec/index.ts +0 -1
- package/src/core/index.ts +1 -0
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/utils.ts +27 -0
- package/src/core/tree/detachedFieldIndex.ts +2 -2
- package/src/external-utilities/index.ts +1 -1
- package/src/external-utilities/typeboxValidator.ts +1 -3
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +2 -0
- package/src/feature-libraries/flex-tree/index.ts +2 -0
- package/src/feature-libraries/flex-tree/lazyNode.ts +13 -3
- package/src/feature-libraries/flex-tree/observer.ts +64 -0
- package/src/feature-libraries/index.ts +3 -0
- package/src/index.ts +6 -4
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +2 -0
- package/src/shared-tree/schematizingTreeView.ts +2 -2
- package/src/shared-tree/sharedTree.ts +116 -52
- package/src/shared-tree/treeAlpha.ts +309 -4
- package/src/shared-tree/treeCheckout.ts +152 -100
- package/src/shared-tree-core/branch.ts +7 -0
- package/src/shared-tree-core/branchIdCodec.ts +28 -0
- package/src/shared-tree-core/editManager.ts +729 -430
- package/src/shared-tree-core/editManagerCodecs.ts +4 -164
- package/src/shared-tree-core/editManagerCodecsCommons.ts +245 -0
- package/src/shared-tree-core/editManagerCodecsV1toV4.ts +108 -0
- package/src/shared-tree-core/editManagerCodecsV5.ts +156 -0
- package/src/shared-tree-core/{editManagerFormat.ts → editManagerFormatCommons.ts} +17 -13
- package/src/shared-tree-core/editManagerFormatV1toV4.ts +42 -0
- package/src/shared-tree-core/editManagerFormatV5.ts +35 -0
- package/src/shared-tree-core/index.ts +3 -1
- package/src/shared-tree-core/messageCodecV1ToV4.ts +104 -0
- package/src/shared-tree-core/messageCodecV5.ts +131 -0
- package/src/shared-tree-core/messageCodecs.ts +16 -85
- package/src/shared-tree-core/messageFormatV5.ts +50 -0
- package/src/shared-tree-core/messageTypes.ts +15 -2
- package/src/shared-tree-core/sequenceIdUtils.ts +1 -1
- package/src/shared-tree-core/sharedTreeCore.ts +281 -85
- package/src/simple-tree/api/tree.ts +23 -0
- package/src/simple-tree/core/unhydratedFlexTree.ts +11 -2
- package/src/treeFactory.ts +48 -8
- package/dist/codec/noopValidator.d.ts +0 -13
- package/dist/codec/noopValidator.d.ts.map +0 -1
- package/dist/codec/noopValidator.js +0 -17
- package/dist/codec/noopValidator.js.map +0 -1
- package/dist/shared-tree-core/editManagerFormat.d.ts.map +0 -1
- package/dist/shared-tree-core/editManagerFormat.js.map +0 -1
- package/dist/shared-tree-core/messageFormat.d.ts.map +0 -1
- package/dist/shared-tree-core/messageFormat.js.map +0 -1
- package/docs/user-facing/schema-evolution.md +0 -309
- package/lib/codec/noopValidator.d.ts +0 -13
- package/lib/codec/noopValidator.d.ts.map +0 -1
- package/lib/codec/noopValidator.js +0 -14
- package/lib/codec/noopValidator.js.map +0 -1
- package/lib/shared-tree-core/editManagerFormat.d.ts.map +0 -1
- package/lib/shared-tree-core/editManagerFormat.js.map +0 -1
- package/lib/shared-tree-core/messageFormat.d.ts.map +0 -1
- package/lib/shared-tree-core/messageFormat.js.map +0 -1
- package/src/codec/noopValidator.ts +0 -18
- /package/src/shared-tree-core/{messageFormat.ts → messageFormatV1ToV4.ts} +0 -0
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
7
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
8
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
9
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
10
|
-
};
|
|
11
6
|
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
12
7
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
13
8
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
14
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
11
|
};
|
|
12
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
13
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
14
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
15
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
16
|
+
};
|
|
17
17
|
var _TreeCheckout_events, _TreeCheckout_transaction, _TreeCheckout_validatedCommits;
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.TreeCheckout = exports.createTreeCheckout = void 0;
|
|
@@ -40,19 +40,21 @@ function createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCodec, arg
|
|
|
40
40
|
const schema = args?.schema ?? new index_js_2.TreeStoredSchemaRepository();
|
|
41
41
|
const forest = args?.forest ?? (0, index_js_3.buildForest)(breaker, schema);
|
|
42
42
|
const defaultCodecOptions = {
|
|
43
|
-
jsonValidator: index_js_1.
|
|
43
|
+
jsonValidator: index_js_1.FormatValidatorNoOp,
|
|
44
44
|
oldestCompatibleClient: index_js_1.FluidClientVersion.v2_0,
|
|
45
45
|
};
|
|
46
46
|
const defaultFieldBatchVersion = 1;
|
|
47
47
|
const changeFamily = args?.changeFamily ??
|
|
48
48
|
new sharedTreeChangeFamily_js_1.SharedTreeChangeFamily(revisionTagCodec, args?.fieldBatchCodec ??
|
|
49
49
|
(0, index_js_3.makeFieldBatchCodec)(defaultCodecOptions, defaultFieldBatchVersion), defaultCodecOptions, args?.chunkCompressionStrategy, idCompressor);
|
|
50
|
+
// TODO: If a branch is passed in, is it supposed to be local main?
|
|
51
|
+
// Otherwise shouldn't we set `isSharedBranch` to false?
|
|
50
52
|
const branch = args?.branch ??
|
|
51
53
|
new index_js_4.SharedTreeBranch({
|
|
52
54
|
change: changeFamily.rebaser.compose([]),
|
|
53
55
|
revision: "root",
|
|
54
56
|
}, changeFamily, () => idCompressor.generateCompressedId());
|
|
55
|
-
return new TreeCheckout(branch,
|
|
57
|
+
return new TreeCheckout(branch, true, changeFamily, schema, forest, mintRevisionTag, revisionTagCodec, idCompressor, args?.removedRoots, args?.logger, breaker, args?.disposeForksAfterTransaction);
|
|
56
58
|
}
|
|
57
59
|
exports.createTreeCheckout = createTreeCheckout;
|
|
58
60
|
/**
|
|
@@ -60,11 +62,11 @@ exports.createTreeCheckout = createTreeCheckout;
|
|
|
60
62
|
*/
|
|
61
63
|
class TreeCheckout {
|
|
62
64
|
constructor(branch,
|
|
63
|
-
/** True if and only if this checkout is for a
|
|
64
|
-
|
|
65
|
+
/** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
|
|
66
|
+
isSharedBranch, changeFamily, storedSchema, forest, mintRevisionTag, revisionTagCodec, idCompressor, removedRoots = (0, index_js_2.makeDetachedFieldIndex)("repair", revisionTagCodec, idCompressor),
|
|
65
67
|
/** Optional logger for telemetry. */
|
|
66
68
|
logger, breaker = new index_js_5.Breakable("TreeCheckout"), disposeForksAfterTransaction = true) {
|
|
67
|
-
this.
|
|
69
|
+
this.isSharedBranch = isSharedBranch;
|
|
68
70
|
this.changeFamily = changeFamily;
|
|
69
71
|
this.storedSchema = storedSchema;
|
|
70
72
|
this.forest = forest;
|
|
@@ -89,6 +91,39 @@ class TreeCheckout {
|
|
|
89
91
|
this.revertibleCommitBranches = new Map();
|
|
90
92
|
_TreeCheckout_events.set(this, (0, client_utils_1.createEmitter)());
|
|
91
93
|
this.events = __classPrivateFieldGet(this, _TreeCheckout_events, "f");
|
|
94
|
+
this.onAfterBranchChange = (event) => {
|
|
95
|
+
// The following logic allows revertibles to be generated for the change.
|
|
96
|
+
// Currently only appends (including merges and transaction commits) are supported.
|
|
97
|
+
if (event.type === "append") {
|
|
98
|
+
// TODO:#20949: When the SharedTree is detached, these commits will already have been garbage collected.
|
|
99
|
+
// Figure out a way to generate revertibles before the commits are garbage collected.
|
|
100
|
+
for (const commit of event.newCommits) {
|
|
101
|
+
const kind = event.type === "append" ? event.kind : index_js_2.CommitKind.Default;
|
|
102
|
+
const { change, revision } = commit;
|
|
103
|
+
const getRevertible = (0, sharedTreeChangeFamily_js_1.hasSchemaChange)(change)
|
|
104
|
+
? undefined
|
|
105
|
+
: (onRevertibleDisposed) => {
|
|
106
|
+
if (!withinEventContext) {
|
|
107
|
+
throw new internal_2.UsageError("Cannot get a revertible outside of the context of a changed event.");
|
|
108
|
+
}
|
|
109
|
+
if (this.revertibleCommitBranches.get(revision) !== undefined) {
|
|
110
|
+
throw new internal_2.UsageError("Cannot generate the same revertible more than once. Note that this can happen when multiple changed event listeners are registered.");
|
|
111
|
+
}
|
|
112
|
+
const revertible = this.createRevertible(revision, kind, this, onRevertibleDisposed);
|
|
113
|
+
this.revertibleCommitBranches.set(revision, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork(commit));
|
|
114
|
+
this.revertibles.add(revertible);
|
|
115
|
+
return revertible;
|
|
116
|
+
};
|
|
117
|
+
let withinEventContext = true;
|
|
118
|
+
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: true, kind }, getRevertible);
|
|
119
|
+
withinEventContext = false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if (this.isRemoteChangeEvent(event)) {
|
|
123
|
+
// TODO: figure out how to plumb through commit kind info for remote changes
|
|
124
|
+
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: false, kind: index_js_2.CommitKind.Default });
|
|
125
|
+
}
|
|
126
|
+
};
|
|
92
127
|
this.onAfterChange = (event) => {
|
|
93
128
|
this.editLock.lock();
|
|
94
129
|
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("beforeBatch", event);
|
|
@@ -96,36 +131,7 @@ class TreeCheckout {
|
|
|
96
131
|
const revision = event.type === "rebase"
|
|
97
132
|
? __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.getHead().revision
|
|
98
133
|
: event.change.revision;
|
|
99
|
-
|
|
100
|
-
for (const change of event.change.change.changes) {
|
|
101
|
-
if (change.type === "data") {
|
|
102
|
-
const delta = (0, index_js_3.intoDelta)((0, index_js_2.tagChange)(change.innerChange, revision));
|
|
103
|
-
this.withCombinedVisitor((visitor) => {
|
|
104
|
-
(0, index_js_2.visitDelta)(delta, visitor, this.removedRoots, revision);
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
else if (change.type === "schema") {
|
|
108
|
-
// Schema changes from a current to a new schema are expected to be backwards compatible.
|
|
109
|
-
// This guarantees that all data in the forest (which is valid before the schema change)
|
|
110
|
-
// is also valid under the new schema.
|
|
111
|
-
// Note however, that such schema changes may in some cases be rolled back:
|
|
112
|
-
// Case 1: A transaction with a schema change may be aborted.
|
|
113
|
-
// The transaction may have made some data changes that would render some trees invalid
|
|
114
|
-
// under the old schema, but these changes will also be rolled back, thereby putting the forest
|
|
115
|
-
// back in the state before the transaction, which is valid under the original (reinstated) schema.
|
|
116
|
-
// Case 2: A branch with a schema change may be rebased such that the schema change (because
|
|
117
|
-
// of a constraint) is no longer applied.
|
|
118
|
-
// Such a branch may contain data changes that would render some trees invalid under the
|
|
119
|
-
// original schema. These data changes may not necessarily be rolled back.
|
|
120
|
-
// They will however be rebased over the rollback of the schema change. This rebasing will
|
|
121
|
-
// ensure that these data changes are muted if they would render some trees invalid under the
|
|
122
|
-
// original (reinstated) schema.
|
|
123
|
-
this.storedSchema.apply(change.innerChange.schema.new);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
(0, internal_1.fail)(0xad1 /* Unknown Shared Tree change type. */);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
134
|
+
this.applyChange(event.change.change, revision);
|
|
129
135
|
}
|
|
130
136
|
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
|
|
131
137
|
this.editLock.unlock();
|
|
@@ -162,7 +168,22 @@ class TreeCheckout {
|
|
|
162
168
|
// #region Commit Validation
|
|
163
169
|
/** Used to maintain the contract of {@link onCommitValid}(). */
|
|
164
170
|
_TreeCheckout_validatedCommits.set(this, new WeakMap());
|
|
165
|
-
__classPrivateFieldSet(this, _TreeCheckout_transaction,
|
|
171
|
+
__classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
|
|
172
|
+
this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
|
|
173
|
+
this.registerForBranchEvents();
|
|
174
|
+
}
|
|
175
|
+
registerForBranchEvents() {
|
|
176
|
+
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.on("afterChange", this.onAfterBranchChange);
|
|
177
|
+
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("afterChange", this.onAfterChange);
|
|
178
|
+
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("ancestryTrimmed", this.onAncestryTrimmed);
|
|
179
|
+
}
|
|
180
|
+
unregisterFromBranchEvents() {
|
|
181
|
+
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.events.off("afterChange", this.onAfterBranchChange);
|
|
182
|
+
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("afterChange", this.onAfterChange);
|
|
183
|
+
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.off("ancestryTrimmed", this.onAncestryTrimmed);
|
|
184
|
+
}
|
|
185
|
+
createTransactionStack(branch) {
|
|
186
|
+
return new index_js_4.SquashingTransactionStack(branch, (commits) => {
|
|
166
187
|
const revision = this.mintRevisionTag();
|
|
167
188
|
for (const transactionStep of commits) {
|
|
168
189
|
this.removedRoots.updateMajor(transactionStep.revision, revision);
|
|
@@ -192,43 +213,7 @@ class TreeCheckout {
|
|
|
192
213
|
}
|
|
193
214
|
disposeForks?.();
|
|
194
215
|
};
|
|
195
|
-
}), "f");
|
|
196
|
-
this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
|
|
197
|
-
branch.events.on("afterChange", (event) => {
|
|
198
|
-
// The following logic allows revertibles to be generated for the change.
|
|
199
|
-
// Currently only appends (including merges and transaction commits) are supported.
|
|
200
|
-
if (event.type === "append") {
|
|
201
|
-
// TODO:#20949: When the SharedTree is detached, these commits will already have been garbage collected.
|
|
202
|
-
// Figure out a way to generate revertibles before the commits are garbage collected.
|
|
203
|
-
for (const commit of event.newCommits) {
|
|
204
|
-
const kind = event.type === "append" ? event.kind : index_js_2.CommitKind.Default;
|
|
205
|
-
const { change, revision } = commit;
|
|
206
|
-
const getRevertible = (0, sharedTreeChangeFamily_js_1.hasSchemaChange)(change)
|
|
207
|
-
? undefined
|
|
208
|
-
: (onRevertibleDisposed) => {
|
|
209
|
-
if (!withinEventContext) {
|
|
210
|
-
throw new internal_2.UsageError("Cannot get a revertible outside of the context of a changed event.");
|
|
211
|
-
}
|
|
212
|
-
if (this.revertibleCommitBranches.get(revision) !== undefined) {
|
|
213
|
-
throw new internal_2.UsageError("Cannot generate the same revertible more than once. Note that this can happen when multiple changed event listeners are registered.");
|
|
214
|
-
}
|
|
215
|
-
const revertible = this.createRevertible(revision, kind, this, onRevertibleDisposed);
|
|
216
|
-
this.revertibleCommitBranches.set(revision, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork(commit));
|
|
217
|
-
this.revertibles.add(revertible);
|
|
218
|
-
return revertible;
|
|
219
|
-
};
|
|
220
|
-
let withinEventContext = true;
|
|
221
|
-
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: true, kind }, getRevertible);
|
|
222
|
-
withinEventContext = false;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
else if (this.isRemoteChangeEvent(event)) {
|
|
226
|
-
// TODO: figure out how to plumb through commit kind info for remote changes
|
|
227
|
-
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("changed", { isLocal: false, kind: index_js_2.CommitKind.Default });
|
|
228
|
-
}
|
|
229
216
|
});
|
|
230
|
-
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("afterChange", this.onAfterChange);
|
|
231
|
-
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEvents.on("ancestryTrimmed", this.onAncestryTrimmed);
|
|
232
217
|
}
|
|
233
218
|
exportVerbose() {
|
|
234
219
|
const cursor = this.forest.allocateCursor("contentSnapshot");
|
|
@@ -250,6 +235,39 @@ class TreeCheckout {
|
|
|
250
235
|
cursor.free();
|
|
251
236
|
}
|
|
252
237
|
}
|
|
238
|
+
// Revision is the revision of the commit, if any, which caused this change.
|
|
239
|
+
applyChange(change, revision) {
|
|
240
|
+
// Conflicts due to schema will be empty and thus are not applied.
|
|
241
|
+
for (const innerChange of change.changes) {
|
|
242
|
+
if (innerChange.type === "data") {
|
|
243
|
+
const delta = (0, index_js_3.intoDelta)((0, index_js_2.tagChange)(innerChange.innerChange, revision));
|
|
244
|
+
this.withCombinedVisitor((visitor) => {
|
|
245
|
+
(0, index_js_2.visitDelta)(delta, visitor, this.removedRoots, revision);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
else if (innerChange.type === "schema") {
|
|
249
|
+
// Schema changes from a current to a new schema are expected to be backwards compatible.
|
|
250
|
+
// This guarantees that all data in the forest (which is valid before the schema change)
|
|
251
|
+
// is also valid under the new schema.
|
|
252
|
+
// Note however, that such schema changes may in some cases be rolled back:
|
|
253
|
+
// Case 1: A transaction with a schema change may be aborted.
|
|
254
|
+
// The transaction may have made some data changes that would render some trees invalid
|
|
255
|
+
// under the old schema, but these changes will also be rolled back, thereby putting the forest
|
|
256
|
+
// back in the state before the transaction, which is valid under the original (reinstated) schema.
|
|
257
|
+
// Case 2: A branch with a schema change may be rebased such that the schema change (because
|
|
258
|
+
// of a constraint) is no longer applied.
|
|
259
|
+
// Such a branch may contain data changes that would render some trees invalid under the
|
|
260
|
+
// original schema. These data changes may not necessarily be rolled back.
|
|
261
|
+
// They will however be rebased over the rollback of the schema change. This rebasing will
|
|
262
|
+
// ensure that these data changes are muted if they would render some trees invalid under the
|
|
263
|
+
// original (reinstated) schema.
|
|
264
|
+
this.storedSchema.apply(innerChange.innerChange.schema.new);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
(0, internal_1.fail)(0xad1 /* Unknown Shared Tree change type. */);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
253
271
|
withCombinedVisitor(fn) {
|
|
254
272
|
const anchorVisitor = this.forest.anchors.acquireVisitor();
|
|
255
273
|
const combinedVisitor = (0, index_js_2.combineVisitors)([this.forest.acquireVisitor(), anchorVisitor]);
|
|
@@ -350,16 +368,28 @@ class TreeCheckout {
|
|
|
350
368
|
const branch = __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.fork();
|
|
351
369
|
const storedSchema = this.storedSchema.clone();
|
|
352
370
|
const forest = this.forest.clone(storedSchema, anchors);
|
|
353
|
-
const checkout = new TreeCheckout(branch,
|
|
371
|
+
const checkout = new TreeCheckout(branch, false, this.changeFamily, storedSchema, forest, this.mintRevisionTag, this.revisionTagCodec, this.idCompressor, this.removedRoots.clone(), this.logger, this.breaker, this.disposeForksAfterTransaction);
|
|
354
372
|
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("fork", checkout);
|
|
355
373
|
return checkout;
|
|
356
374
|
}
|
|
375
|
+
switchBranch(branch) {
|
|
376
|
+
// TODO: Dispose old branch, if necessary
|
|
377
|
+
(0, internal_1.assert)(!__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").isInProgress(), 0xc55 /* Cannot switch branches during a transaction */);
|
|
378
|
+
const diff = (0, index_js_2.diffHistories)(this.changeFamily.rebaser, __classPrivateFieldGet(this, _TreeCheckout_transaction, "f").branch.getHead(), branch.getHead(), this.mintRevisionTag);
|
|
379
|
+
this.unregisterFromBranchEvents();
|
|
380
|
+
__classPrivateFieldSet(this, _TreeCheckout_transaction, this.createTransactionStack(branch), "f");
|
|
381
|
+
this.editLock = new EditLock(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranchEditor);
|
|
382
|
+
this.registerForBranchEvents();
|
|
383
|
+
// TODO: Rework eventing
|
|
384
|
+
this.applyChange(diff);
|
|
385
|
+
__classPrivateFieldGet(this, _TreeCheckout_events, "f").emit("afterBatch");
|
|
386
|
+
}
|
|
357
387
|
rebase(checkout) {
|
|
358
388
|
this.checkNotDisposed("The target of the branch rebase has been disposed and cannot be rebased.");
|
|
359
389
|
checkout.checkNotDisposed("The source of the branch rebase has been disposed and cannot be rebased.");
|
|
360
390
|
this.editLock.checkUnlocked("Rebasing");
|
|
361
391
|
(0, internal_1.assert)(!checkout.transaction.isInProgress(), 0x9af /* A view cannot be rebased while it has a pending transaction */);
|
|
362
|
-
(0, internal_1.assert)(checkout.
|
|
392
|
+
(0, internal_1.assert)(!checkout.isSharedBranch, 0xa5d /* Shared branches cannot be rebased onto another branch. */);
|
|
363
393
|
__classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch.rebaseOnto(__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch);
|
|
364
394
|
}
|
|
365
395
|
rebaseOnto(checkout) {
|
|
@@ -375,8 +405,8 @@ class TreeCheckout {
|
|
|
375
405
|
checkout.transaction.commit();
|
|
376
406
|
}
|
|
377
407
|
__classPrivateFieldGet(this, _TreeCheckout_transaction, "f").activeBranch.merge(__classPrivateFieldGet(checkout, _TreeCheckout_transaction, "f").activeBranch);
|
|
378
|
-
if (disposeMerged && checkout.
|
|
379
|
-
// Dispose the merged checkout unless it is
|
|
408
|
+
if (disposeMerged && !checkout.isSharedBranch) {
|
|
409
|
+
// Dispose the merged checkout unless it is a shared branch.
|
|
380
410
|
checkout[index_js_5.disposeSymbol]();
|
|
381
411
|
}
|
|
382
412
|
}
|
|
@@ -489,10 +519,10 @@ class TreeCheckout {
|
|
|
489
519
|
*/
|
|
490
520
|
isRemoteChangeEvent(event) {
|
|
491
521
|
return (
|
|
492
|
-
// Remote changes are only ever applied to
|
|
493
|
-
|
|
494
|
-
// Remote changes are applied to the
|
|
495
|
-
// No other rebases are allowed on
|
|
522
|
+
// Remote changes are only ever applied to shared branches
|
|
523
|
+
this.isSharedBranch &&
|
|
524
|
+
// Remote changes are applied to the branch by rebasing it onto the trunk.
|
|
525
|
+
// No other rebases are allowed on shared branches, so we can use this to detect remote changes.
|
|
496
526
|
event.type === "rebase");
|
|
497
527
|
}
|
|
498
528
|
/**
|