@fluidframework/tree 2.80.0 → 2.81.0-374083
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/api-report/tree.alpha.api.md +43 -7
- package/dist/alpha.d.ts +5 -0
- package/dist/core/change-family/changeFamily.d.ts +4 -1
- 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/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 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +6 -1
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.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/types.d.ts +46 -8
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +5 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/rebase/utils.d.ts.map +1 -1
- package/dist/core/rebase/utils.js +30 -8
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/tree/anchorSet.js +1 -0
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +6 -0
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +9 -0
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/index.d.ts +1 -1
- package/dist/core/tree/index.d.ts.map +1 -1
- package/dist/core/tree/index.js +4 -3
- package/dist/core/tree/index.js.map +1 -1
- package/dist/core/tree/pathTree.d.ts +11 -3
- package/dist/core/tree/pathTree.d.ts.map +1 -1
- package/dist/core/tree/pathTree.js +14 -2
- package/dist/core/tree/pathTree.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js +3 -2
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +58 -18
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +10 -4
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.js +16 -2
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/basicChunk.js +7 -0
- package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js +4 -1
- package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +3 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -0
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +93 -44
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +238 -69
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +11 -2
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/default-schema/index.d.ts +2 -1
- package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/index.js +5 -2
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +38 -0
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js +132 -0
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js.map +1 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +7 -6
- package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js +15 -0
- package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/dist/feature-libraries/deltaUtils.d.ts +1 -0
- package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/dist/feature-libraries/deltaUtils.js +6 -1
- package/dist/feature-libraries/deltaUtils.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +9 -0
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +6 -0
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
- 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/lazyField.d.ts +8 -7
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +40 -9
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js +3 -1
- package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +3 -3
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +8 -3
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js +1 -0
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/mitigatedChangeFamily.js +2 -2
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +97 -21
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js +4 -7
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +20 -51
- 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/genericFieldKind.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/genericFieldKind.js +3 -9
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +4 -4
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +2 -2
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +11 -28
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +255 -161
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.d.ts +15 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js +393 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +8 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +48 -20
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +1350 -476
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +146 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js +32 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +47 -11
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +3 -1
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/optional-field/index.d.ts +2 -2
- package/dist/feature-libraries/optional-field/index.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/index.js +1 -2
- package/dist/feature-libraries/optional-field/index.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +5 -26
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +221 -443
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts +23 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.js +31 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV3.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +24 -33
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +57 -28
- package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.d.ts +12 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.d.ts.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.js +57 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecV3.js.map +1 -0
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +5 -1
- package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts +6 -7
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +83 -259
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts +14 -10
- package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/dist/feature-libraries/sequence-field/index.d.ts +2 -3
- package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/index.js +1 -3
- package/dist/feature-libraries/sequence-field/index.js.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +65 -167
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +4 -56
- package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/moveEffectTable.js +7 -90
- package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -3
- package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/rebase.js +107 -114
- package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/replaceRevisions.js +18 -31
- package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +0 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +22 -4
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +365 -187
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +20 -62
- package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +10 -10
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -2
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +14 -109
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/types.d.ts +30 -59
- package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/types.js.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.d.ts +15 -24
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +116 -305
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/shared-tree/index.d.ts +1 -1
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +4 -4
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +2 -1
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +1 -5
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +38 -35
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +9 -3
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +11 -0
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +1 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js +1 -1
- package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +5 -5
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +10 -4
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +16 -6
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +14 -7
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +9 -10
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +63 -8
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +3 -2
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +9 -4
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts +2 -2
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +20 -14
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.d.ts +4 -0
- package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecs.js +10 -2
- package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts +1 -0
- package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatCommons.js +6 -0
- package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerFormatV1toV4.js +1 -0
- package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/dist/shared-tree-core/index.d.ts +2 -2
- package/dist/shared-tree-core/index.d.ts.map +1 -1
- package/dist/shared-tree-core/index.js +3 -1
- package/dist/shared-tree-core/index.js.map +1 -1
- package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
- 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/messageCodecs.d.ts +4 -0
- package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/dist/shared-tree-core/messageCodecs.js +10 -2
- package/dist/shared-tree-core/messageCodecs.js.map +1 -1
- package/dist/shared-tree-core/messageFormat.d.ts +1 -0
- package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormat.js +6 -0
- package/dist/shared-tree-core/messageFormat.js.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +2 -2
- package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/dist/shared-tree-core/messageFormatV1ToV4.js +1 -0
- package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts +1 -0
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +1 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +2 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js +1 -1
- package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +4 -4
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +244 -0
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js +297 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +3 -1
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +6 -2
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +15 -15
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +59 -8
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/fieldSchema.d.ts +4 -4
- package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
- package/dist/simple-tree/fieldSchema.js.map +1 -1
- package/dist/simple-tree/index.d.ts +3 -3
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/array/arrayNode.js +7 -5
- package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/common.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/common.js +1 -1
- package/dist/simple-tree/node-kinds/common.js.map +1 -1
- package/dist/simple-tree/node-kinds/map/mapNode.js +2 -2
- package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/object/objectNode.js +19 -19
- package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/dist/simple-tree/node-kinds/record/recordNode.js +4 -2
- package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/dist/simple-tree/prepareForInsertion.d.ts +54 -47
- package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/dist/simple-tree/prepareForInsertion.js +184 -126
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +13 -4
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +31 -13
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/text/index.d.ts +6 -0
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/index.js +10 -0
- package/dist/text/index.js.map +1 -0
- package/dist/text/textDomain.d.ts +138 -0
- package/dist/text/textDomain.d.ts.map +1 -0
- package/dist/text/textDomain.js +121 -0
- package/dist/text/textDomain.js.map +1 -0
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +12 -2
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/bTreeUtils.d.ts +12 -4
- package/dist/util/bTreeUtils.d.ts.map +1 -1
- package/dist/util/bTreeUtils.js +14 -18
- package/dist/util/bTreeUtils.js.map +1 -1
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js +2 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/nestedMap.js +12 -12
- package/dist/util/nestedMap.js.map +1 -1
- package/dist/util/rangeMap.d.ts +24 -12
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +46 -6
- package/dist/util/rangeMap.js.map +1 -1
- package/docs/user-facing/merge-semantics.md +3 -2
- package/eslint.config.mts +4 -32
- package/lib/alpha.d.ts +5 -0
- package/lib/core/change-family/changeFamily.d.ts +4 -1
- 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/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 -3
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +6 -1
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.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/types.d.ts +46 -8
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +3 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/rebase/utils.d.ts.map +1 -1
- package/lib/core/rebase/utils.js +30 -8
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/tree/anchorSet.js +1 -0
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +6 -0
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +10 -1
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/index.d.ts +1 -1
- package/lib/core/tree/index.d.ts.map +1 -1
- package/lib/core/tree/index.js +1 -1
- package/lib/core/tree/index.js.map +1 -1
- package/lib/core/tree/pathTree.d.ts +11 -3
- package/lib/core/tree/pathTree.d.ts.map +1 -1
- package/lib/core/tree/pathTree.js +12 -1
- package/lib/core/tree/pathTree.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js +3 -2
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +58 -18
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +10 -4
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.js +14 -1
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js +8 -1
- package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js +4 -1
- package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +3 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -0
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +93 -44
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +236 -70
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +11 -2
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/default-schema/index.d.ts +2 -1
- package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/index.js +2 -1
- package/lib/feature-libraries/default-schema/index.js.map +1 -1
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +38 -0
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js +128 -0
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js.map +1 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +7 -6
- package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js +15 -0
- package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
- package/lib/feature-libraries/deltaUtils.d.ts +1 -0
- package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
- package/lib/feature-libraries/deltaUtils.js +5 -1
- package/lib/feature-libraries/deltaUtils.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +9 -0
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +6 -0
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
- 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/lazyField.d.ts +8 -7
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +41 -10
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js +3 -1
- package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +3 -3
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +2 -2
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.js +2 -1
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/mitigatedChangeFamily.js +2 -2
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +97 -21
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js +3 -5
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +20 -51
- 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/genericFieldKind.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/genericFieldKind.js +3 -9
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +4 -4
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +2 -2
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +11 -28
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +247 -143
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.d.ts +15 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js +389 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +8 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +48 -20
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +1344 -479
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +146 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js +29 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +47 -11
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +3 -1
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/optional-field/index.d.ts +2 -2
- package/lib/feature-libraries/optional-field/index.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/index.js +1 -1
- package/lib/feature-libraries/optional-field/index.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +5 -26
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +221 -441
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts +23 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.js +27 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV3.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +24 -33
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +55 -26
- package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.d.ts +12 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.d.ts.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.js +53 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecV3.js.map +1 -0
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +5 -1
- package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts +6 -7
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +85 -261
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts +14 -10
- package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
- package/lib/feature-libraries/sequence-field/index.d.ts +2 -3
- package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/index.js +0 -1
- package/lib/feature-libraries/sequence-field/index.js.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +67 -169
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +4 -56
- package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/moveEffectTable.js +6 -84
- package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -3
- package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/rebase.js +109 -116
- package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/replaceRevisions.js +18 -31
- package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +0 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +22 -4
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +356 -182
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +21 -63
- package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +10 -10
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -2
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +14 -109
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/types.d.ts +30 -59
- package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/types.js.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.d.ts +15 -24
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +112 -298
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/index.d.ts +3 -2
- 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.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/shared-tree/index.d.ts +1 -1
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +4 -4
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +3 -2
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +1 -5
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +41 -38
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +9 -3
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +11 -0
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +1 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeEnricher.js +2 -2
- package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +5 -5
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +11 -5
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +16 -6
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +12 -6
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +9 -10
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +66 -11
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +3 -2
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +9 -4
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts +2 -2
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +20 -14
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.d.ts +4 -0
- package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecs.js +8 -1
- package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts +1 -0
- package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatCommons.js +6 -0
- package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
- package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerFormatV1toV4.js +1 -0
- package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
- package/lib/shared-tree-core/index.d.ts +2 -2
- package/lib/shared-tree-core/index.d.ts.map +1 -1
- package/lib/shared-tree-core/index.js +2 -2
- package/lib/shared-tree-core/index.js.map +1 -1
- package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
- 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/messageCodecs.d.ts +4 -0
- package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
- package/lib/shared-tree-core/messageCodecs.js +8 -1
- package/lib/shared-tree-core/messageCodecs.js.map +1 -1
- package/lib/shared-tree-core/messageFormat.d.ts +1 -0
- package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormat.js +6 -0
- package/lib/shared-tree-core/messageFormat.js.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +2 -2
- package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
- package/lib/shared-tree-core/messageFormatV1ToV4.js +1 -0
- package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts +1 -0
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +1 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -1
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js +1 -1
- package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +4 -4
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +244 -0
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js +270 -0
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +3 -1
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +6 -2
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +15 -15
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +58 -8
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/fieldSchema.d.ts +4 -4
- package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
- package/lib/simple-tree/fieldSchema.js.map +1 -1
- package/lib/simple-tree/index.d.ts +3 -3
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +2 -2
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/array/arrayNode.js +8 -6
- package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/common.js +2 -2
- package/lib/simple-tree/node-kinds/common.js.map +1 -1
- package/lib/simple-tree/node-kinds/map/mapNode.js +2 -2
- package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/object/objectNode.js +20 -20
- package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
- package/lib/simple-tree/node-kinds/record/recordNode.js +4 -2
- package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
- package/lib/simple-tree/prepareForInsertion.d.ts +54 -47
- package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
- package/lib/simple-tree/prepareForInsertion.js +184 -125
- package/lib/simple-tree/prepareForInsertion.js.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +13 -4
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +28 -11
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/text/index.d.ts +6 -0
- package/lib/text/index.d.ts.map +1 -0
- package/lib/text/index.js +6 -0
- package/lib/text/index.js.map +1 -0
- package/lib/text/textDomain.d.ts +138 -0
- package/lib/text/textDomain.d.ts.map +1 -0
- package/lib/text/textDomain.js +118 -0
- package/lib/text/textDomain.js.map +1 -0
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +13 -3
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/bTreeUtils.d.ts +12 -4
- package/lib/util/bTreeUtils.d.ts.map +1 -1
- package/lib/util/bTreeUtils.js +15 -19
- package/lib/util/bTreeUtils.js.map +1 -1
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/nestedMap.js +12 -12
- package/lib/util/nestedMap.js.map +1 -1
- package/lib/util/rangeMap.d.ts +24 -12
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +44 -5
- package/lib/util/rangeMap.js.map +1 -1
- package/package.json +25 -25
- package/src/core/change-family/changeFamily.ts +5 -0
- package/src/core/change-family/index.ts +1 -0
- package/src/core/index.ts +6 -1
- package/src/core/rebase/changeRebaser.ts +6 -1
- package/src/core/rebase/index.ts +3 -0
- package/src/core/rebase/types.ts +65 -21
- package/src/core/rebase/utils.ts +39 -11
- package/src/core/tree/anchorSet.ts +1 -0
- package/src/core/tree/detachedFieldIndex.ts +17 -1
- package/src/core/tree/index.ts +2 -1
- package/src/core/tree/pathTree.ts +16 -4
- package/src/core/tree/visitDelta.ts +6 -2
- package/src/core/tree/visitorUtils.ts +55 -19
- package/src/feature-libraries/changeAtomIdBTree.ts +37 -5
- package/src/feature-libraries/chunked-forest/basicChunk.ts +7 -1
- package/src/feature-libraries/chunked-forest/chunkTree.ts +6 -1
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +3 -1
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +1 -0
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +399 -127
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +13 -5
- package/src/feature-libraries/default-schema/index.ts +17 -5
- package/src/feature-libraries/default-schema/locationBasedEditBuilder.ts +188 -0
- package/src/feature-libraries/default-schema/mappedEditBuilder.ts +35 -9
- package/src/feature-libraries/deltaUtils.ts +6 -1
- package/src/feature-libraries/flex-tree/context.ts +17 -0
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +7 -8
- package/src/feature-libraries/flex-tree/lazyField.ts +68 -25
- package/src/feature-libraries/forest-summary/forestSummarizer.ts +3 -1
- package/src/feature-libraries/index.ts +22 -8
- package/src/feature-libraries/mapTreeCursor.ts +2 -1
- package/src/feature-libraries/mitigatedChangeFamily.ts +3 -1
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +142 -44
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +32 -58
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +6 -18
- package/src/feature-libraries/modular-schema/index.ts +16 -15
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +560 -351
- package/src/feature-libraries/modular-schema/modularChangeCodecV3.ts +760 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +14 -1
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +2620 -782
- package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFormatV3.ts +62 -0
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +58 -11
- package/src/feature-libraries/object-forest/objectForest.ts +3 -1
- package/src/feature-libraries/optional-field/index.ts +1 -3
- package/src/feature-libraries/optional-field/optionalField.ts +318 -562
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV3.ts +45 -0
- package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +24 -38
- package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +89 -35
- package/src/feature-libraries/optional-field/optionalFieldCodecV3.ts +94 -0
- package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +5 -1
- package/src/feature-libraries/sequence-field/compose.ts +139 -522
- package/src/feature-libraries/sequence-field/helperTypes.ts +34 -19
- package/src/feature-libraries/sequence-field/index.ts +0 -9
- package/src/feature-libraries/sequence-field/invert.ts +103 -228
- package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
- package/src/feature-libraries/sequence-field/moveEffectTable.ts +8 -195
- package/src/feature-libraries/sequence-field/rebase.ts +169 -205
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +25 -47
- package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +0 -2
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +648 -228
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +56 -70
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +25 -27
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +19 -129
- package/src/feature-libraries/sequence-field/types.ts +34 -64
- package/src/feature-libraries/sequence-field/utils.ts +139 -353
- package/src/index.ts +7 -0
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/index.ts +3 -2
- package/src/shared-tree/schematizeTree.ts +21 -8
- package/src/shared-tree/schematizingTreeView.ts +56 -70
- package/src/shared-tree/sharedTree.ts +20 -3
- package/src/shared-tree/sharedTreeChangeCodecs.ts +5 -1
- package/src/shared-tree/sharedTreeChangeEnricher.ts +2 -0
- package/src/shared-tree/sharedTreeChangeFamily.ts +15 -5
- package/src/shared-tree/sharedTreeEditBuilder.ts +39 -8
- package/src/shared-tree/treeCheckout.ts +95 -24
- package/src/shared-tree-core/branch.ts +13 -3
- package/src/shared-tree-core/editManager.ts +42 -28
- package/src/shared-tree-core/editManagerCodecs.ts +11 -1
- package/src/shared-tree-core/editManagerFormatCommons.ts +6 -0
- package/src/shared-tree-core/editManagerFormatV1toV4.ts +3 -1
- package/src/shared-tree-core/index.ts +2 -0
- package/src/shared-tree-core/messageCodecV1ToV4.ts +2 -1
- package/src/shared-tree-core/messageCodecs.ts +11 -1
- package/src/shared-tree-core/messageFormat.ts +6 -0
- package/src/shared-tree-core/messageFormatV1ToV4.ts +3 -1
- package/src/shared-tree-core/sharedTreeCore.ts +4 -1
- package/src/simple-tree/api/index.ts +3 -0
- package/src/simple-tree/api/schemaFactoryAlpha.ts +1 -1
- package/src/simple-tree/api/schemaFactoryBeta.ts +1 -1
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +4 -4
- package/src/simple-tree/api/snapshotCompatibilityChecker.ts +501 -0
- package/src/simple-tree/api/tree.ts +3 -1
- package/src/simple-tree/core/treeNodeKernel.ts +6 -2
- package/src/simple-tree/core/unhydratedFlexTree.ts +87 -36
- package/src/simple-tree/fieldSchema.ts +6 -4
- package/src/simple-tree/index.ts +5 -1
- package/src/simple-tree/node-kinds/array/arrayNode.ts +9 -7
- package/src/simple-tree/node-kinds/common.ts +2 -5
- package/src/simple-tree/node-kinds/map/mapNode.ts +4 -4
- package/src/simple-tree/node-kinds/object/objectNode.ts +26 -26
- package/src/simple-tree/node-kinds/record/recordNode.ts +10 -9
- package/src/simple-tree/prepareForInsertion.ts +343 -201
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +43 -15
- package/src/text/README.md +8 -0
- package/src/text/index.ts +6 -0
- package/src/text/textDomain.ts +199 -0
- package/src/treeFactory.ts +14 -4
- package/src/util/bTreeUtils.ts +33 -22
- package/src/util/index.ts +3 -0
- package/src/util/nestedMap.ts +12 -12
- package/src/util/rangeMap.ts +72 -18
- package/.eslintrc.cjs +0 -125
- package/assertTagging.config.mjs +0 -14
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +0 -9
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +0 -1
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +0 -50
- package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +0 -1
- package/docs/main/sequence-field/move-composition.md +0 -46
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +0 -9
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +0 -1
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +0 -46
- package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +0 -1
- package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +0 -57
|
@@ -50,21 +50,29 @@ import {
|
|
|
50
50
|
type TreeNodeSchemaIdentifier,
|
|
51
51
|
type TreeNodeStoredSchema,
|
|
52
52
|
LeafNodeStoredSchema,
|
|
53
|
+
type ChangeAtomId,
|
|
54
|
+
offsetChangeAtomId,
|
|
53
55
|
diffHistories,
|
|
54
56
|
type ChangeMetadata,
|
|
55
57
|
type ChangeEncodingContext,
|
|
56
58
|
type ReadOnlyDetachedFieldIndex,
|
|
57
59
|
} from "../core/index.js";
|
|
58
60
|
import {
|
|
61
|
+
type DetachedRootIds,
|
|
62
|
+
type DetachedRootLocation,
|
|
63
|
+
type DetachedRootsLocation,
|
|
59
64
|
type FieldBatchCodec,
|
|
65
|
+
type Locator,
|
|
60
66
|
type TreeCompressionStrategy,
|
|
61
67
|
allowsRepoSuperset,
|
|
62
68
|
buildForest,
|
|
69
|
+
changeAtomFromDetachedNodeId,
|
|
63
70
|
createNodeIdentifierManager,
|
|
64
71
|
defaultSchemaPolicy,
|
|
65
72
|
intoDelta,
|
|
66
73
|
jsonableTreeFromCursor,
|
|
67
74
|
makeFieldBatchCodec,
|
|
75
|
+
nodeIdFromChangeAtom,
|
|
68
76
|
} from "../feature-libraries/index.js";
|
|
69
77
|
import {
|
|
70
78
|
SquashingTransactionStack,
|
|
@@ -78,13 +86,19 @@ import {
|
|
|
78
86
|
Breakable,
|
|
79
87
|
disposeSymbol,
|
|
80
88
|
getOrCreate,
|
|
89
|
+
makeArray,
|
|
81
90
|
type JsonCompatibleReadOnly,
|
|
82
91
|
type WithBreakable,
|
|
83
92
|
} from "../util/index.js";
|
|
84
93
|
|
|
85
94
|
import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
|
|
86
95
|
import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
|
|
87
|
-
import
|
|
96
|
+
import {
|
|
97
|
+
type IdBasedSharedTreeEditBuilder,
|
|
98
|
+
type ILocationBasedSharedTreeEditor,
|
|
99
|
+
type IIdBasedSharedTreeEditor,
|
|
100
|
+
LocationBasedSharedTreeEditBuilder,
|
|
101
|
+
} from "./sharedTreeEditBuilder.js";
|
|
88
102
|
import type { IDisposable } from "@fluidframework/core-interfaces";
|
|
89
103
|
import {
|
|
90
104
|
type ImplicitFieldSchema,
|
|
@@ -132,8 +146,6 @@ export interface CheckoutEvents {
|
|
|
132
146
|
* can use to filter on changes they care about e.g. local vs remote changes.
|
|
133
147
|
*
|
|
134
148
|
* @param data - information about the change
|
|
135
|
-
* @param getRevertible - a function provided that allows users to get a revertible for the change. If not provided,
|
|
136
|
-
* this change is not revertible.
|
|
137
149
|
*/
|
|
138
150
|
changed(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
139
151
|
|
|
@@ -236,7 +248,7 @@ export interface ITreeCheckout extends AnchorLocator, ViewableTree, WithBreakabl
|
|
|
236
248
|
* Used to edit the state of the tree. Edits will be immediately applied locally to the tree.
|
|
237
249
|
* If there is no transaction currently ongoing, then the edits will be submitted to Fluid immediately as well.
|
|
238
250
|
*/
|
|
239
|
-
readonly editor:
|
|
251
|
+
readonly editor: ILocationBasedSharedTreeEditor;
|
|
240
252
|
|
|
241
253
|
/**
|
|
242
254
|
* A collection of functions for managing transactions.
|
|
@@ -294,8 +306,8 @@ export function createTreeCheckout(
|
|
|
294
306
|
mintRevisionTag: () => RevisionTag,
|
|
295
307
|
revisionTagCodec: RevisionTagCodec,
|
|
296
308
|
args?: {
|
|
297
|
-
branch?: SharedTreeBranch<
|
|
298
|
-
changeFamily?: ChangeFamily<
|
|
309
|
+
branch?: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>;
|
|
310
|
+
changeFamily?: ChangeFamily<IdBasedSharedTreeEditBuilder, SharedTreeChange>;
|
|
299
311
|
schema?: TreeStoredSchemaRepository;
|
|
300
312
|
forest?: IEditableForest;
|
|
301
313
|
fieldBatchCodec?: FieldBatchCodec;
|
|
@@ -384,6 +396,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
384
396
|
public disposed = false;
|
|
385
397
|
|
|
386
398
|
private editLock: EditLock;
|
|
399
|
+
private readonly locator: Locator;
|
|
387
400
|
|
|
388
401
|
private readonly views = new Set<TreeView<ImplicitFieldSchema>>();
|
|
389
402
|
|
|
@@ -399,7 +412,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
399
412
|
*/
|
|
400
413
|
private readonly revertibleCommitBranches = new Map<
|
|
401
414
|
RevisionTag,
|
|
402
|
-
SharedTreeBranch<
|
|
415
|
+
SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>
|
|
403
416
|
>();
|
|
404
417
|
|
|
405
418
|
/**
|
|
@@ -412,10 +425,13 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
412
425
|
public events: Listenable<CheckoutEvents> = this.#events;
|
|
413
426
|
|
|
414
427
|
public constructor(
|
|
415
|
-
branch: SharedTreeBranch<
|
|
428
|
+
branch: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>,
|
|
416
429
|
/** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
|
|
417
430
|
public readonly isSharedBranch: boolean,
|
|
418
|
-
private readonly changeFamily: ChangeFamily<
|
|
431
|
+
private readonly changeFamily: ChangeFamily<
|
|
432
|
+
IdBasedSharedTreeEditBuilder,
|
|
433
|
+
SharedTreeChange
|
|
434
|
+
>,
|
|
419
435
|
public readonly storedSchema: TreeStoredSchemaRepository,
|
|
420
436
|
public readonly forest: IEditableForest,
|
|
421
437
|
private readonly mintRevisionTag: () => RevisionTag,
|
|
@@ -433,6 +449,31 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
433
449
|
) {
|
|
434
450
|
this.#transaction = this.createTransactionStack(branch);
|
|
435
451
|
this.editLock = new EditLock(this.#transaction.activeBranchEditor);
|
|
452
|
+
this.locator = {
|
|
453
|
+
locationFromId: (id: ChangeAtomId): DetachedRootLocation => {
|
|
454
|
+
const rootId = this.removedRoots.getEntry(nodeIdFromChangeAtom(id));
|
|
455
|
+
return this.removedRoots.toFieldKey(rootId);
|
|
456
|
+
},
|
|
457
|
+
idFromLocation: (location: DetachedRootLocation): ChangeAtomId => {
|
|
458
|
+
const nodeId = this.removedRoots.fromFieldKey(location);
|
|
459
|
+
return changeAtomFromDetachedNodeId(nodeId);
|
|
460
|
+
},
|
|
461
|
+
locationsFromIdRanges: (ids: DetachedRootIds): DetachedRootsLocation => {
|
|
462
|
+
return ids.flatMap((id) => {
|
|
463
|
+
return makeArray(id.count, (offset) => {
|
|
464
|
+
const field = this.locator.locationFromId(offsetChangeAtomId(id.first, offset));
|
|
465
|
+
return { field, count: 1 };
|
|
466
|
+
});
|
|
467
|
+
});
|
|
468
|
+
},
|
|
469
|
+
idRangesFromLocations: (ids: DetachedRootsLocation): DetachedRootIds => {
|
|
470
|
+
return ids.map((id) => {
|
|
471
|
+
assert(id.count === 1, "Expected count of 1");
|
|
472
|
+
const first = this.locator.idFromLocation(id.field);
|
|
473
|
+
return { first, count: id.count };
|
|
474
|
+
});
|
|
475
|
+
},
|
|
476
|
+
};
|
|
436
477
|
this.registerForBranchEvents();
|
|
437
478
|
}
|
|
438
479
|
|
|
@@ -453,8 +494,8 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
453
494
|
}
|
|
454
495
|
|
|
455
496
|
private createTransactionStack(
|
|
456
|
-
branch: SharedTreeBranch<
|
|
457
|
-
): SquashingTransactionStack<
|
|
497
|
+
branch: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>,
|
|
498
|
+
): SquashingTransactionStack<IdBasedSharedTreeEditBuilder, SharedTreeChange> {
|
|
458
499
|
return new SquashingTransactionStack(branch, this.mintRevisionTag, () => {
|
|
459
500
|
const disposeForks = this.disposeForksAfterTransaction
|
|
460
501
|
? trackForksForDisposal(this)
|
|
@@ -566,6 +607,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
566
607
|
change: encodedChange,
|
|
567
608
|
} satisfies SerializedChange;
|
|
568
609
|
},
|
|
610
|
+
getRevertible: (onDisposed) => getRevertible?.(onDisposed),
|
|
569
611
|
};
|
|
570
612
|
|
|
571
613
|
this.#events.emit("changed", metadata, getRevertible);
|
|
@@ -591,7 +633,9 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
591
633
|
this.#events.emit("afterBatch");
|
|
592
634
|
this.editLock.unlock();
|
|
593
635
|
if (event.type === "append") {
|
|
594
|
-
|
|
636
|
+
for (const commit of event.newCommits) {
|
|
637
|
+
this.validateCommit(commit);
|
|
638
|
+
}
|
|
595
639
|
}
|
|
596
640
|
};
|
|
597
641
|
|
|
@@ -653,7 +697,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
653
697
|
// When the branch is trimmed, we can garbage collect any repair data whose latest relevant revision is one of the
|
|
654
698
|
// trimmed revisions.
|
|
655
699
|
this.withCombinedVisitor((visitor) => {
|
|
656
|
-
|
|
700
|
+
for (const revision of revisions) {
|
|
657
701
|
// get all the roots last created or used by the revision
|
|
658
702
|
const roots = this._removedRoots.getRootsLastTouchedByRevision(revision);
|
|
659
703
|
|
|
@@ -663,7 +707,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
663
707
|
}
|
|
664
708
|
|
|
665
709
|
this._removedRoots.deleteRootsLastTouchedByRevision(revision);
|
|
666
|
-
}
|
|
710
|
+
}
|
|
667
711
|
});
|
|
668
712
|
};
|
|
669
713
|
|
|
@@ -789,9 +833,9 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
789
833
|
return this.forest.anchors.events;
|
|
790
834
|
}
|
|
791
835
|
|
|
792
|
-
public get editor():
|
|
836
|
+
public get editor(): ILocationBasedSharedTreeEditor {
|
|
793
837
|
this.checkNotDisposed();
|
|
794
|
-
return this.editLock.editor;
|
|
838
|
+
return new LocationBasedSharedTreeEditBuilder(this.editLock.editor, this.locator);
|
|
795
839
|
}
|
|
796
840
|
|
|
797
841
|
public locate(anchor: Anchor): AnchorNode | undefined {
|
|
@@ -812,18 +856,19 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
812
856
|
* To avoid updating observers of the view state with intermediate results during a transaction,
|
|
813
857
|
* use {@link ITreeCheckout#branch} and {@link ISharedTreeFork#merge}.
|
|
814
858
|
*/
|
|
815
|
-
#transaction: SquashingTransactionStack<
|
|
859
|
+
#transaction: SquashingTransactionStack<IdBasedSharedTreeEditBuilder, SharedTreeChange>;
|
|
816
860
|
|
|
817
861
|
public branch(): TreeCheckout {
|
|
818
862
|
this.checkNotDisposed(
|
|
819
863
|
"The parent branch has already been disposed and can no longer create new branches.",
|
|
820
864
|
);
|
|
865
|
+
this.editLock.checkUnlocked("Branching");
|
|
866
|
+
|
|
821
867
|
// Branching after an unfinished transaction would expose the application to a state where its invariants may be violated.
|
|
822
868
|
if (this.transaction.isInProgress()) {
|
|
823
869
|
throw new UsageError("A view cannot be forked while it has a pending transaction.");
|
|
824
870
|
}
|
|
825
871
|
|
|
826
|
-
this.editLock.checkUnlocked("Branching");
|
|
827
872
|
const anchors = new AnchorSet();
|
|
828
873
|
const branch = this.#transaction.activeBranch.fork();
|
|
829
874
|
const storedSchema = this.storedSchema.clone();
|
|
@@ -847,7 +892,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
847
892
|
}
|
|
848
893
|
|
|
849
894
|
public switchBranch(
|
|
850
|
-
branch: SharedTreeBranch<
|
|
895
|
+
branch: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>,
|
|
851
896
|
): void {
|
|
852
897
|
// TODO: Dispose old branch, if necessary
|
|
853
898
|
assert(
|
|
@@ -1126,7 +1171,9 @@ export class TreeCheckout implements ITreeCheckoutFork {
|
|
|
1126
1171
|
private validateCommit(commit: GraphCommit<SharedTreeChange>): void {
|
|
1127
1172
|
const validated = getOrCreate(this.#validatedCommits, commit, () => []);
|
|
1128
1173
|
if (validated !== true) {
|
|
1129
|
-
|
|
1174
|
+
for (const fn of validated) {
|
|
1175
|
+
fn(commit);
|
|
1176
|
+
}
|
|
1130
1177
|
this.#validatedCommits.set(commit, true);
|
|
1131
1178
|
}
|
|
1132
1179
|
}
|
|
@@ -1142,19 +1189,23 @@ class EditLock {
|
|
|
1142
1189
|
* Edits the tree by calling the methods of the editor passed into the {@link EditLock} constructor.
|
|
1143
1190
|
* @remarks Edits will throw an error if the lock is currently locked.
|
|
1144
1191
|
*/
|
|
1145
|
-
public readonly editor:
|
|
1192
|
+
public readonly editor: IIdBasedSharedTreeEditor;
|
|
1146
1193
|
private locked = false;
|
|
1147
1194
|
|
|
1148
1195
|
/**
|
|
1149
1196
|
* @param editor - an editor which will be used to create a new editor that is monitored to determine if any changes are happening to the tree.
|
|
1150
1197
|
* Use {@link EditLock.editor} in place of the original editor to ensure that changes are monitored.
|
|
1151
1198
|
*/
|
|
1152
|
-
public constructor(editor:
|
|
1199
|
+
public constructor(editor: IIdBasedSharedTreeEditor) {
|
|
1153
1200
|
const checkLock = (): void => this.checkUnlocked("Editing the tree");
|
|
1154
1201
|
this.editor = {
|
|
1155
1202
|
get schema() {
|
|
1156
1203
|
return editor.schema;
|
|
1157
1204
|
},
|
|
1205
|
+
buildRoots(unhydrated) {
|
|
1206
|
+
checkLock();
|
|
1207
|
+
return editor.buildRoots(unhydrated);
|
|
1208
|
+
},
|
|
1158
1209
|
valueField(...fieldArgs) {
|
|
1159
1210
|
const valueField = editor.valueField(...fieldArgs);
|
|
1160
1211
|
return {
|
|
@@ -1162,6 +1213,10 @@ class EditLock {
|
|
|
1162
1213
|
checkLock();
|
|
1163
1214
|
valueField.set(...editArgs);
|
|
1164
1215
|
},
|
|
1216
|
+
attach(...editArgs) {
|
|
1217
|
+
checkLock();
|
|
1218
|
+
valueField.attach(...editArgs);
|
|
1219
|
+
},
|
|
1165
1220
|
};
|
|
1166
1221
|
},
|
|
1167
1222
|
optionalField(...fieldArgs) {
|
|
@@ -1171,6 +1226,14 @@ class EditLock {
|
|
|
1171
1226
|
checkLock();
|
|
1172
1227
|
optionalField.set(...editArgs);
|
|
1173
1228
|
},
|
|
1229
|
+
attach(...editArgs) {
|
|
1230
|
+
checkLock();
|
|
1231
|
+
optionalField.attach(...editArgs);
|
|
1232
|
+
},
|
|
1233
|
+
clear(...editArgs) {
|
|
1234
|
+
checkLock();
|
|
1235
|
+
optionalField.clear(...editArgs);
|
|
1236
|
+
},
|
|
1174
1237
|
};
|
|
1175
1238
|
},
|
|
1176
1239
|
sequenceField(...fieldArgs) {
|
|
@@ -1180,6 +1243,10 @@ class EditLock {
|
|
|
1180
1243
|
checkLock();
|
|
1181
1244
|
sequenceField.insert(...editArgs);
|
|
1182
1245
|
},
|
|
1246
|
+
attach(...editArgs) {
|
|
1247
|
+
checkLock();
|
|
1248
|
+
sequenceField.attach(...editArgs);
|
|
1249
|
+
},
|
|
1183
1250
|
remove(...editArgs) {
|
|
1184
1251
|
checkLock();
|
|
1185
1252
|
sequenceField.remove(...editArgs);
|
|
@@ -1260,8 +1327,12 @@ function trackForksForDisposal(checkout: TreeCheckout): () => void {
|
|
|
1260
1327
|
let disposed = false;
|
|
1261
1328
|
return () => {
|
|
1262
1329
|
assert(!disposed, 0xaa9 /* Forks may only be disposed once */);
|
|
1263
|
-
|
|
1264
|
-
|
|
1330
|
+
for (const fork of forks) {
|
|
1331
|
+
fork.dispose();
|
|
1332
|
+
}
|
|
1333
|
+
for (const unsubscribe of onDisposeUnSubscribes) {
|
|
1334
|
+
unsubscribe();
|
|
1335
|
+
}
|
|
1265
1336
|
onForkUnSubscribe();
|
|
1266
1337
|
disposed = true;
|
|
1267
1338
|
};
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
rebaseBranch,
|
|
23
23
|
tagRollbackInverse,
|
|
24
24
|
type RebaseStatsWithDuration,
|
|
25
|
+
type EditorOptions,
|
|
25
26
|
} from "../core/index.js";
|
|
26
27
|
import { hasSome, defineLazyCachedProperty } from "../util/index.js";
|
|
27
28
|
import type {
|
|
@@ -129,9 +130,12 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
129
130
|
private readonly telemetryEventBatcher?: TelemetryEventBatcher<
|
|
130
131
|
keyof RebaseStatsWithDuration
|
|
131
132
|
>,
|
|
133
|
+
private readonly editorOptions?: EditorOptions,
|
|
132
134
|
) {
|
|
133
|
-
this.editor = this.changeFamily.buildEditor(
|
|
134
|
-
|
|
135
|
+
this.editor = this.changeFamily.buildEditor(
|
|
136
|
+
mintRevisionTag,
|
|
137
|
+
(change) => this.apply(change),
|
|
138
|
+
this.editorOptions,
|
|
135
139
|
);
|
|
136
140
|
this.unsubscribeBranchTrimmer = branchTrimmer?.on("ancestryTrimmed", (commit) => {
|
|
137
141
|
this.#events.emit("ancestryTrimmed", commit);
|
|
@@ -201,6 +205,8 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
201
205
|
this.changeFamily,
|
|
202
206
|
mintRevisionTag,
|
|
203
207
|
this.branchTrimmer,
|
|
208
|
+
undefined,
|
|
209
|
+
this.editorOptions,
|
|
204
210
|
);
|
|
205
211
|
this.#events.emit("fork", fork);
|
|
206
212
|
return fork;
|
|
@@ -400,5 +406,9 @@ export function onForkTransitive<T extends { events: Listenable<{ fork(t: T): vo
|
|
|
400
406
|
onFork(fork);
|
|
401
407
|
}),
|
|
402
408
|
);
|
|
403
|
-
return () =>
|
|
409
|
+
return () => {
|
|
410
|
+
for (const off of offs) {
|
|
411
|
+
off();
|
|
412
|
+
}
|
|
413
|
+
};
|
|
404
414
|
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
mintCommit,
|
|
19
19
|
type RebaseStatsWithDuration,
|
|
20
20
|
tagChange,
|
|
21
|
+
type EditorOptions,
|
|
21
22
|
} from "../core/index.js";
|
|
22
23
|
import { type Mutable, brand, getOrCreate, mapIterable } from "../util/index.js";
|
|
23
24
|
|
|
@@ -123,6 +124,7 @@ export class EditManager<
|
|
|
123
124
|
public readonly localSessionId: SessionId,
|
|
124
125
|
private readonly mintRevisionTag: () => RevisionTag,
|
|
125
126
|
private readonly onSharedBranchCreated?: (branchId: BranchId) => void,
|
|
127
|
+
editorOptions?: EditorOptions,
|
|
126
128
|
logger?: ITelemetryLoggerExt,
|
|
127
129
|
) {
|
|
128
130
|
this.trunkBase = {
|
|
@@ -147,9 +149,10 @@ export class EditManager<
|
|
|
147
149
|
mintRevisionTag,
|
|
148
150
|
this._events,
|
|
149
151
|
this.telemetryEventBatcher,
|
|
152
|
+
editorOptions,
|
|
150
153
|
);
|
|
151
154
|
|
|
152
|
-
this.createAndAddSharedBranch("main", undefined, undefined, mainTrunk);
|
|
155
|
+
this.createAndAddSharedBranch("main", undefined, undefined, mainTrunk, editorOptions);
|
|
153
156
|
}
|
|
154
157
|
|
|
155
158
|
public getLocalBranch(branchId: BranchId): SharedTreeBranch<TEditor, TChangeset> {
|
|
@@ -480,8 +483,15 @@ export class EditManager<
|
|
|
480
483
|
sessionId: SessionId | undefined,
|
|
481
484
|
parent: SharedBranch<TEditor, TChangeset> | undefined,
|
|
482
485
|
branch: SharedTreeBranch<TEditor, TChangeset>,
|
|
486
|
+
editorOptions?: EditorOptions,
|
|
483
487
|
): SharedBranch<TEditor, TChangeset> {
|
|
484
|
-
const sharedBranch = this.createSharedBranch(
|
|
488
|
+
const sharedBranch = this.createSharedBranch(
|
|
489
|
+
branchId,
|
|
490
|
+
sessionId,
|
|
491
|
+
parent,
|
|
492
|
+
branch,
|
|
493
|
+
editorOptions,
|
|
494
|
+
);
|
|
485
495
|
this.addSharedBranch(branchId, sharedBranch);
|
|
486
496
|
return sharedBranch;
|
|
487
497
|
}
|
|
@@ -512,6 +522,7 @@ export class EditManager<
|
|
|
512
522
|
sessionId: SessionId | undefined,
|
|
513
523
|
parent: SharedBranch<TEditor, TChangeset> | undefined,
|
|
514
524
|
branch: SharedTreeBranch<TEditor, TChangeset>,
|
|
525
|
+
editorOptions?: EditorOptions,
|
|
515
526
|
): SharedBranch<TEditor, TChangeset> {
|
|
516
527
|
const sharedBranch = new SharedBranch(
|
|
517
528
|
parent,
|
|
@@ -523,6 +534,7 @@ export class EditManager<
|
|
|
523
534
|
this.mintRevisionTag,
|
|
524
535
|
this._events,
|
|
525
536
|
this.telemetryEventBatcher,
|
|
537
|
+
editorOptions,
|
|
526
538
|
);
|
|
527
539
|
|
|
528
540
|
return sharedBranch;
|
|
@@ -695,6 +707,7 @@ class SharedBranch<TEditor extends ChangeFamilyEditor, TChangeset> {
|
|
|
695
707
|
private readonly mintRevisionTag: () => RevisionTag,
|
|
696
708
|
branchTrimmer: Listenable<BranchTrimmingEvents>,
|
|
697
709
|
telemetryEventBatcher: TelemetryEventBatcher<keyof RebaseStatsWithDuration> | undefined,
|
|
710
|
+
editorOptions?: EditorOptions,
|
|
698
711
|
) {
|
|
699
712
|
this.localBranch = new SharedTreeBranch(
|
|
700
713
|
this.trunk.getHead(),
|
|
@@ -702,6 +715,7 @@ class SharedBranch<TEditor extends ChangeFamilyEditor, TChangeset> {
|
|
|
702
715
|
mintRevisionTag,
|
|
703
716
|
branchTrimmer,
|
|
704
717
|
telemetryEventBatcher,
|
|
718
|
+
editorOptions,
|
|
705
719
|
);
|
|
706
720
|
|
|
707
721
|
this.sequenceIdToCommit.set(baseCommitSequenceId, this.trunk.getHead());
|
|
@@ -1090,27 +1104,27 @@ class SharedBranch<TEditor extends ChangeFamilyEditor, TChangeset> {
|
|
|
1090
1104
|
const parentTrunkBase =
|
|
1091
1105
|
trunkRevisionCache.get(data.base ?? rootRevision) ??
|
|
1092
1106
|
fail(0xc61 /* Expected base revision to be in trunk cache */);
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
);
|
|
1107
|
+
let trunkHead = parentTrunkBase;
|
|
1108
|
+
for (const c of data.trunk) {
|
|
1109
|
+
const sequenceId: SequenceId =
|
|
1110
|
+
c.indexInBatch === undefined
|
|
1111
|
+
? {
|
|
1112
|
+
sequenceNumber: c.sequenceNumber,
|
|
1113
|
+
}
|
|
1114
|
+
: {
|
|
1115
|
+
sequenceNumber: c.sequenceNumber,
|
|
1116
|
+
indexInBatch: c.indexInBatch,
|
|
1117
|
+
};
|
|
1118
|
+
const commit = mintCommit(trunkHead, c);
|
|
1119
|
+
this.sequenceIdToCommit.set(sequenceId, commit);
|
|
1120
|
+
this.commitMetadata.set(c.revision, {
|
|
1121
|
+
sequenceId,
|
|
1122
|
+
sessionId: c.sessionId,
|
|
1123
|
+
});
|
|
1124
|
+
trunkRevisionCache.set(c.revision, commit);
|
|
1125
|
+
trunkHead = commit;
|
|
1126
|
+
}
|
|
1127
|
+
this.trunk.setHead(trunkHead);
|
|
1114
1128
|
|
|
1115
1129
|
this.localBranch.setHead(this.trunk.getHead());
|
|
1116
1130
|
|
|
@@ -1119,13 +1133,13 @@ class SharedBranch<TEditor extends ChangeFamilyEditor, TChangeset> {
|
|
|
1119
1133
|
trunkRevisionCache.get(branch.base) ??
|
|
1120
1134
|
fail(0xad7 /* Expected summary branch to be based off of a revision in the trunk */);
|
|
1121
1135
|
|
|
1136
|
+
let branchHead = commit;
|
|
1137
|
+
for (const c of branch.commits) {
|
|
1138
|
+
branchHead = mintCommit(branchHead, c);
|
|
1139
|
+
}
|
|
1122
1140
|
this.peerLocalBranches.set(
|
|
1123
1141
|
sessionId,
|
|
1124
|
-
new SharedTreeBranch(
|
|
1125
|
-
branch.commits.reduce(mintCommit, commit),
|
|
1126
|
-
this.changeFamily,
|
|
1127
|
-
this.mintRevisionTag,
|
|
1128
|
-
),
|
|
1142
|
+
new SharedTreeBranch(branchHead, this.changeFamily, this.mintRevisionTag),
|
|
1129
1143
|
);
|
|
1130
1144
|
}
|
|
1131
1145
|
}
|
|
@@ -74,6 +74,15 @@ export function editManagerFormatVersionSelectorForSharedBranches(
|
|
|
74
74
|
return brand(EditManagerFormatVersion.vSharedBranches);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Returns the version that should be used for testing shared branches.
|
|
79
|
+
*/
|
|
80
|
+
export function editManagerFormatVersionSelectorForDetachedRootEditing(
|
|
81
|
+
clientVersion: MinimumVersionForCollab,
|
|
82
|
+
): EditManagerFormatVersion {
|
|
83
|
+
return brand(EditManagerFormatVersion.vDetachedRoots);
|
|
84
|
+
}
|
|
85
|
+
|
|
77
86
|
export interface EditManagerCodecOptions {
|
|
78
87
|
readonly editManagerFormatSelector?: (
|
|
79
88
|
minVersionForCollab: MinimumVersionForCollab,
|
|
@@ -141,7 +150,8 @@ export function makeEditManagerCodecs<TChangeset>(
|
|
|
141
150
|
}
|
|
142
151
|
case unbrand(EditManagerFormatVersion.v3):
|
|
143
152
|
case unbrand(EditManagerFormatVersion.v4):
|
|
144
|
-
case unbrand(EditManagerFormatVersion.v6):
|
|
153
|
+
case unbrand(EditManagerFormatVersion.v6):
|
|
154
|
+
case unbrand(EditManagerFormatVersion.vDetachedRoots): {
|
|
145
155
|
const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
|
|
146
156
|
return [
|
|
147
157
|
version,
|
|
@@ -166,6 +166,11 @@ export const EditManagerFormatVersion = strictEnum("editManager.FormatVersion",
|
|
|
166
166
|
* Only used for testing shared branches.
|
|
167
167
|
*/
|
|
168
168
|
vSharedBranches: "shared-branches|v0.1",
|
|
169
|
+
/**
|
|
170
|
+
* Not yet released.
|
|
171
|
+
* Only used for testing detached roots.
|
|
172
|
+
*/
|
|
173
|
+
vDetachedRoots: "detached-roots|v0.1",
|
|
169
174
|
});
|
|
170
175
|
export type EditManagerFormatVersion = Values<typeof EditManagerFormatVersion>;
|
|
171
176
|
export const supportedEditManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> =
|
|
@@ -174,6 +179,7 @@ export const supportedEditManagerFormatVersions: ReadonlySet<EditManagerFormatVe
|
|
|
174
179
|
EditManagerFormatVersion.v4,
|
|
175
180
|
EditManagerFormatVersion.v6,
|
|
176
181
|
EditManagerFormatVersion.vSharedBranches,
|
|
182
|
+
EditManagerFormatVersion.vDetachedRoots,
|
|
177
183
|
]);
|
|
178
184
|
export const editManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> = new Set(
|
|
179
185
|
Object.values(EditManagerFormatVersion),
|
|
@@ -27,7 +27,8 @@ export interface EncodedEditManager<TChangeset> {
|
|
|
27
27
|
| typeof EditManagerFormatVersion.v2
|
|
28
28
|
| typeof EditManagerFormatVersion.v3
|
|
29
29
|
| typeof EditManagerFormatVersion.v4
|
|
30
|
-
| typeof EditManagerFormatVersion.v6
|
|
30
|
+
| typeof EditManagerFormatVersion.v6
|
|
31
|
+
| typeof EditManagerFormatVersion.vDetachedRoots;
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: ChangeSchema) =>
|
|
@@ -39,6 +40,7 @@ export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: Change
|
|
|
39
40
|
Type.Literal(EditManagerFormatVersion.v3),
|
|
40
41
|
Type.Literal(EditManagerFormatVersion.v4),
|
|
41
42
|
Type.Literal(EditManagerFormatVersion.v6),
|
|
43
|
+
Type.Literal(EditManagerFormatVersion.vDetachedRoots),
|
|
42
44
|
]),
|
|
43
45
|
trunk: Type.Array(SequencedCommit(tChange)),
|
|
44
46
|
branches: Type.Array(Type.Tuple([SessionIdSchema, SummarySessionBranch(tChange)])),
|
|
@@ -51,6 +51,7 @@ export {
|
|
|
51
51
|
type EditManagerCodecOptions,
|
|
52
52
|
clientVersionToEditManagerFormatVersion,
|
|
53
53
|
editManagerFormatVersionSelectorForSharedBranches,
|
|
54
|
+
editManagerFormatVersionSelectorForDetachedRootEditing,
|
|
54
55
|
} from "./editManagerCodecs.js";
|
|
55
56
|
export {
|
|
56
57
|
EditManagerFormatVersion,
|
|
@@ -76,6 +77,7 @@ export {
|
|
|
76
77
|
getCodecTreeForMessageFormatWithChange,
|
|
77
78
|
clientVersionToMessageFormatVersion,
|
|
78
79
|
messageFormatVersionSelectorForSharedBranches,
|
|
80
|
+
messageFormatVersionSelectorForDetachedRootEditing,
|
|
79
81
|
makeMessageCodec,
|
|
80
82
|
type MessageEncodingContext,
|
|
81
83
|
} from "./messageCodecs.js";
|
|
@@ -34,7 +34,8 @@ export function makeV1ToV4CodecWithVersion<TChangeset>(
|
|
|
34
34
|
| typeof MessageFormatVersion.v2
|
|
35
35
|
| typeof MessageFormatVersion.v3
|
|
36
36
|
| typeof MessageFormatVersion.v4
|
|
37
|
-
| typeof MessageFormatVersion.v6
|
|
37
|
+
| typeof MessageFormatVersion.v6
|
|
38
|
+
| typeof MessageFormatVersion.vDetachedRoots,
|
|
38
39
|
): IJsonCodec<
|
|
39
40
|
DecodedMessage<TChangeset>,
|
|
40
41
|
JsonCompatibleReadOnly,
|
|
@@ -83,6 +83,15 @@ export function messageFormatVersionSelectorForSharedBranches(
|
|
|
83
83
|
return brand(MessageFormatVersion.vSharedBranches);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
/**
|
|
87
|
+
* Returns the version that should be used for testing detached root editing.
|
|
88
|
+
*/
|
|
89
|
+
export function messageFormatVersionSelectorForDetachedRootEditing(
|
|
90
|
+
clientVersion: MinimumVersionForCollab,
|
|
91
|
+
): MessageFormatVersion {
|
|
92
|
+
return brand(MessageFormatVersion.vDetachedRoots);
|
|
93
|
+
}
|
|
94
|
+
|
|
86
95
|
export function makeMessageCodec<TChangeset>(
|
|
87
96
|
changeCodecs: ICodecFamily<TChangeset, ChangeEncodingContext>,
|
|
88
97
|
dependentChangeFormatVersion: DependentFormatVersion<MessageFormatVersion>,
|
|
@@ -145,7 +154,8 @@ export function makeMessageCodecs<TChangeset>(
|
|
|
145
154
|
}
|
|
146
155
|
case unbrand(MessageFormatVersion.v3):
|
|
147
156
|
case unbrand(MessageFormatVersion.v4):
|
|
148
|
-
case unbrand(MessageFormatVersion.v6):
|
|
157
|
+
case unbrand(MessageFormatVersion.v6):
|
|
158
|
+
case unbrand(MessageFormatVersion.vDetachedRoots): {
|
|
149
159
|
const changeCodec = changeCodecs.resolve(
|
|
150
160
|
dependentChangeFormatVersion.lookup(version),
|
|
151
161
|
).json;
|
|
@@ -57,6 +57,11 @@ export const MessageFormatVersion = strictEnum("MessageFormatVersion", {
|
|
|
57
57
|
* Only used for testing shared branches.
|
|
58
58
|
*/
|
|
59
59
|
vSharedBranches: "shared-branches|v0.1",
|
|
60
|
+
/**
|
|
61
|
+
* Not yet released.
|
|
62
|
+
* Only used for testing detached roots.
|
|
63
|
+
*/
|
|
64
|
+
vDetachedRoots: "detached-roots|v0.1",
|
|
60
65
|
});
|
|
61
66
|
export type MessageFormatVersion = Values<typeof MessageFormatVersion>;
|
|
62
67
|
export const supportedMessageFormatVersions: ReadonlySet<MessageFormatVersion> = new Set([
|
|
@@ -64,6 +69,7 @@ export const supportedMessageFormatVersions: ReadonlySet<MessageFormatVersion> =
|
|
|
64
69
|
MessageFormatVersion.v4,
|
|
65
70
|
MessageFormatVersion.v6,
|
|
66
71
|
MessageFormatVersion.vSharedBranches,
|
|
72
|
+
MessageFormatVersion.vDetachedRoots,
|
|
67
73
|
]);
|
|
68
74
|
export const messageFormatVersions: ReadonlySet<MessageFormatVersion> = new Set(
|
|
69
75
|
Object.values(MessageFormatVersion),
|
|
@@ -38,7 +38,8 @@ export interface Message {
|
|
|
38
38
|
| typeof MessageFormatVersion.v2
|
|
39
39
|
| typeof MessageFormatVersion.v3
|
|
40
40
|
| typeof MessageFormatVersion.v4
|
|
41
|
-
| typeof MessageFormatVersion.v6
|
|
41
|
+
| typeof MessageFormatVersion.v6
|
|
42
|
+
| typeof MessageFormatVersion.vDetachedRoots;
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
// Return type is intentionally derived.
|
|
@@ -55,6 +56,7 @@ export const Message = <ChangeSchema extends TSchema>(tChange: ChangeSchema) =>
|
|
|
55
56
|
Type.Literal(MessageFormatVersion.v3),
|
|
56
57
|
Type.Literal(MessageFormatVersion.v4),
|
|
57
58
|
Type.Literal(MessageFormatVersion.v6),
|
|
59
|
+
Type.Literal(MessageFormatVersion.vDetachedRoots),
|
|
58
60
|
]),
|
|
59
61
|
),
|
|
60
62
|
});
|
|
@@ -80,7 +80,9 @@ export interface ClonableSchemaAndPolicy extends SchemaAndPolicy {
|
|
|
80
80
|
export interface SharedTreeCoreOptionsInternal
|
|
81
81
|
extends CodecWriteOptions,
|
|
82
82
|
EditManagerCodecOptions,
|
|
83
|
-
MessageCodecOptions {
|
|
83
|
+
MessageCodecOptions {
|
|
84
|
+
canMakeDetachedRootEdits: boolean;
|
|
85
|
+
}
|
|
84
86
|
|
|
85
87
|
/**
|
|
86
88
|
* Generic shared tree, which needs to be configured with indexes, field kinds and other configuration.
|
|
@@ -176,6 +178,7 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
|
|
|
176
178
|
localSessionId,
|
|
177
179
|
this.mintRevisionTag,
|
|
178
180
|
(branchId) => this.registerSharedBranch(branchId),
|
|
181
|
+
options,
|
|
179
182
|
rebaseLogger,
|
|
180
183
|
);
|
|
181
184
|
|