@fluidframework/tree 2.83.0 → 2.90.0-378676
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 +1 -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 +1 -0
- 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 +25 -7
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/tree/delta.d.ts +5 -0
- package/dist/core/tree/delta.d.ts.map +1 -1
- package/dist/core/tree/delta.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts +13 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +14 -1
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +4 -0
- package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/core/tree/index.d.ts +2 -2
- 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 +17 -13
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.d.ts +3 -2
- package/dist/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/dist/feature-libraries/changeAtomIdBTree.js +15 -2
- package/dist/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +92 -44
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +220 -70
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js +12 -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 +4 -2
- package/dist/feature-libraries/default-schema/index.js.map +1 -1
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +40 -0
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +1 -0
- package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js +153 -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 +39 -8
- package/dist/feature-libraries/flex-tree/lazyField.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 -4
- package/dist/feature-libraries/index.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 +100 -24
- package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js +8 -12
- package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +85 -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 +4 -9
- package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/dist/feature-libraries/modular-schema/index.d.ts +3 -3
- package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/index.js +2 -3
- package/dist/feature-libraries/modular-schema/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +18 -22
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +276 -158
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV2.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 +296 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecV3.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +8 -0
- package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +56 -22
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +1390 -462
- 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/modularChangeFormatV2.d.ts +1 -2
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +3 -3
- package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +74 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js +35 -0
- package/dist/feature-libraries/modular-schema/modularChangeFormatV3.js.map +1 -0
- package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +49 -10
- 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/optional-field/optionalField.d.ts +13 -32
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +257 -446
- 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 +31 -31
- 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/optional-field/requiredField.d.ts +3 -2
- package/dist/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/requiredField.js +6 -1
- package/dist/feature-libraries/optional-field/requiredField.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 +81 -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/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 +109 -116
- 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 +19 -32
- 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 +1 -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 +388 -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 +13 -13
- 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 +16 -111
- package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/dist/feature-libraries/sequence-field/types.d.ts +37 -74
- 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 +20 -25
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +159 -320
- package/dist/feature-libraries/sequence-field/utils.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/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +1 -1
- package/dist/shared-tree/independentView.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 +21 -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 +4 -1
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeCodecs.js +8 -0
- package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
- 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 +13 -11
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +56 -6
- 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 +4 -3
- 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 +9 -9
- 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/core/unhydratedFlexTree.d.ts +16 -12
- 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 +2 -2
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +1 -1
- 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 +5 -3
- 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 +183 -125
- package/dist/simple-tree/prepareForInsertion.js.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +8 -3
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +27 -13
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +12 -2
- package/dist/treeFactory.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/rangeMap.d.ts +23 -11
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +43 -10
- package/dist/util/rangeMap.js.map +1 -1
- 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 +1 -0
- 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 +25 -7
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/tree/delta.d.ts +5 -0
- package/lib/core/tree/delta.d.ts.map +1 -1
- package/lib/core/tree/delta.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts +13 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +15 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +4 -0
- package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/core/tree/index.d.ts +2 -2
- 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 +17 -13
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.d.ts +3 -2
- package/lib/feature-libraries/changeAtomIdBTree.d.ts.map +1 -1
- package/lib/feature-libraries/changeAtomIdBTree.js +15 -3
- package/lib/feature-libraries/changeAtomIdBTree.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +92 -44
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +217 -69
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js +12 -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 +40 -0
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +1 -0
- package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js +149 -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 +40 -9
- package/lib/feature-libraries/flex-tree/lazyField.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 +3 -3
- package/lib/feature-libraries/index.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 +100 -24
- package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js +7 -10
- package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +85 -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 +4 -9
- package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
- package/lib/feature-libraries/modular-schema/index.d.ts +3 -3
- package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/index.js +1 -1
- package/lib/feature-libraries/modular-schema/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +18 -22
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +267 -144
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV2.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 +292 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecV3.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +8 -0
- package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +56 -22
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +1387 -468
- 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/modularChangeFormatV2.d.ts +1 -2
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts +74 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.d.ts.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js +32 -0
- package/lib/feature-libraries/modular-schema/modularChangeFormatV3.js.map +1 -0
- package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +49 -10
- 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/optional-field/optionalField.d.ts +13 -32
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +254 -442
- 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 +31 -31
- 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/optional-field/requiredField.d.ts +3 -2
- package/lib/feature-libraries/optional-field/requiredField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/requiredField.js +5 -1
- package/lib/feature-libraries/optional-field/requiredField.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 +83 -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/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 +111 -118
- 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 +19 -32
- 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 +2 -3
- 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 +379 -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 +13 -13
- 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 +16 -111
- package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
- package/lib/feature-libraries/sequence-field/types.d.ts +37 -74
- 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 +20 -25
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +155 -313
- package/lib/feature-libraries/sequence-field/utils.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/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +1 -1
- package/lib/shared-tree/independentView.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 +24 -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 +4 -1
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeCodecs.js +8 -0
- package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +3 -3
- 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 +13 -11
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +59 -9
- 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 +4 -3
- 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 +9 -9
- 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/core/unhydratedFlexTree.d.ts +16 -12
- 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 +2 -2
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +1 -1
- 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 +6 -4
- 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 +8 -3
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +23 -10
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +13 -3
- package/lib/treeFactory.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/rangeMap.d.ts +23 -11
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +41 -9
- package/lib/util/rangeMap.js.map +1 -1
- package/package.json +21 -21
- package/src/core/change-family/changeFamily.ts +5 -0
- package/src/core/change-family/index.ts +1 -0
- package/src/core/index.ts +4 -1
- package/src/core/rebase/changeRebaser.ts +6 -1
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/types.ts +4 -0
- package/src/core/rebase/utils.ts +31 -7
- package/src/core/tree/delta.ts +6 -0
- package/src/core/tree/detachedFieldIndex.ts +29 -1
- package/src/core/tree/detachedFieldIndexTypes.ts +5 -0
- package/src/core/tree/index.ts +13 -12
- package/src/core/tree/pathTree.ts +16 -4
- package/src/core/tree/visitDelta.ts +31 -11
- package/src/feature-libraries/changeAtomIdBTree.ts +28 -3
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +369 -127
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +13 -4
- package/src/feature-libraries/default-schema/index.ts +16 -5
- package/src/feature-libraries/default-schema/locationBasedEditBuilder.ts +231 -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 +65 -24
- package/src/feature-libraries/index.ts +22 -9
- package/src/feature-libraries/mitigatedChangeFamily.ts +3 -1
- package/src/feature-libraries/modular-schema/crossFieldQueries.ts +144 -47
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +113 -58
- package/src/feature-libraries/modular-schema/genericFieldKind.ts +7 -18
- package/src/feature-libraries/modular-schema/index.ts +16 -16
- package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +623 -348
- package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecV3.ts +649 -0
- package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +14 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +2694 -748
- package/src/feature-libraries/modular-schema/modularChangeFormatV1.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +1 -1
- package/src/feature-libraries/modular-schema/modularChangeFormatV3.ts +67 -0
- package/src/feature-libraries/modular-schema/modularChangeTypes.ts +62 -10
- package/src/feature-libraries/optional-field/optionalField.ts +359 -568
- package/src/feature-libraries/optional-field/optionalFieldChangeFormatV3.ts +45 -0
- package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +31 -35
- 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/optional-field/requiredField.ts +15 -2
- package/src/feature-libraries/sequence-field/compose.ts +137 -522
- package/src/feature-libraries/sequence-field/helperTypes.ts +34 -19
- package/src/feature-libraries/sequence-field/invert.ts +102 -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 +171 -207
- package/src/feature-libraries/sequence-field/replaceRevisions.ts +26 -52
- package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +8 -3
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +677 -229
- package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +56 -70
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +28 -30
- package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +21 -131
- package/src/feature-libraries/sequence-field/types.ts +40 -79
- package/src/feature-libraries/sequence-field/utils.ts +211 -370
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/independentView.ts +12 -6
- package/src/shared-tree/index.ts +3 -2
- package/src/shared-tree/schematizeTree.ts +21 -8
- package/src/shared-tree/schematizingTreeView.ts +38 -68
- package/src/shared-tree/sharedTree.ts +30 -15
- package/src/shared-tree/sharedTreeChangeCodecs.ts +8 -0
- package/src/shared-tree/sharedTreeChangeFamily.ts +7 -4
- package/src/shared-tree/sharedTreeEditBuilder.ts +43 -8
- package/src/shared-tree/treeCheckout.ts +93 -17
- package/src/shared-tree-core/branch.ts +8 -2
- package/src/shared-tree-core/editManager.ts +16 -2
- 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/core/unhydratedFlexTree.ts +82 -35
- package/src/simple-tree/fieldSchema.ts +6 -4
- package/src/simple-tree/index.ts +2 -1
- package/src/simple-tree/node-kinds/array/arrayNode.ts +7 -5
- 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 +342 -200
- package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +35 -15
- package/src/treeFactory.ts +16 -4
- package/src/util/index.ts +3 -0
- package/src/util/rangeMap.ts +68 -26
- 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
|
@@ -14,12 +14,17 @@ export interface ChangeFamily<TEditor extends ChangeFamilyEditor, TChange> {
|
|
|
14
14
|
buildEditor(
|
|
15
15
|
mintRevisionTag: () => RevisionTag,
|
|
16
16
|
changeReceiver: (change: TaggedChange<TChange>) => void,
|
|
17
|
+
options?: EditorOptions,
|
|
17
18
|
): TEditor;
|
|
18
19
|
|
|
19
20
|
readonly rebaser: ChangeRebaser<TChange>;
|
|
20
21
|
readonly codecs: ICodecFamily<TChange, ChangeEncodingContext>;
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
export interface EditorOptions {
|
|
25
|
+
readonly enableDetachedRootEditing: boolean; // default is false,
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
export interface ChangeEncodingContext {
|
|
24
29
|
readonly originatorId: SessionId;
|
|
25
30
|
readonly revision: RevisionTag | undefined;
|
package/src/core/index.ts
CHANGED
|
@@ -74,7 +74,7 @@ export {
|
|
|
74
74
|
type AnchorNode,
|
|
75
75
|
anchorSlot,
|
|
76
76
|
type UpPathDefault,
|
|
77
|
-
|
|
77
|
+
isDetachedUpPathRoot,
|
|
78
78
|
inCursorField,
|
|
79
79
|
inCursorNode,
|
|
80
80
|
type AnchorEvents,
|
|
@@ -87,6 +87,7 @@ export {
|
|
|
87
87
|
type DetachedFieldIndexCheckpoint,
|
|
88
88
|
type ForestRootId,
|
|
89
89
|
getDetachedFieldContainingPath,
|
|
90
|
+
getDetachedFieldContainingFieldPath,
|
|
90
91
|
aboveRootPlaceholder,
|
|
91
92
|
type DeltaRoot,
|
|
92
93
|
type DeltaMark,
|
|
@@ -162,6 +163,7 @@ export {
|
|
|
162
163
|
type ChangeEncodingContext,
|
|
163
164
|
type ChangeFamilyEditor,
|
|
164
165
|
EditBuilder,
|
|
166
|
+
type EditorOptions,
|
|
165
167
|
} from "./change-family/index.js";
|
|
166
168
|
|
|
167
169
|
export {
|
|
@@ -212,6 +214,7 @@ export {
|
|
|
212
214
|
isAncestor,
|
|
213
215
|
type ChangeAtomIdRangeMap,
|
|
214
216
|
newChangeAtomIdRangeMap,
|
|
217
|
+
newChangeAtomIdTransform,
|
|
215
218
|
comparePartialRevisions,
|
|
216
219
|
compareChangesetLocalIds,
|
|
217
220
|
comparePartialChangesetLocalIds,
|
|
@@ -161,7 +161,12 @@ export function mapTaggedChange<TIn, TOut>(
|
|
|
161
161
|
export type RevisionIndexer = (tag: RevisionTag) => number | undefined;
|
|
162
162
|
|
|
163
163
|
export interface RevisionMetadataSource {
|
|
164
|
-
|
|
164
|
+
/**
|
|
165
|
+
* @returns a positive number if tag2 is a later revision than tag1 or a negative number if tag2 is an earlier revision.
|
|
166
|
+
* Returns zero is the order cannot be determined, which happens if both revisions are older
|
|
167
|
+
* than the set of revisions handled by this metadata source.
|
|
168
|
+
*/
|
|
169
|
+
readonly compareRevisions: (tag1: RevisionTag, tag2: RevisionTag) => number;
|
|
165
170
|
readonly tryGetInfo: (tag: RevisionTag | undefined) => RevisionInfo | undefined;
|
|
166
171
|
readonly hasRollback: (tag: RevisionTag) => boolean;
|
|
167
172
|
}
|
package/src/core/rebase/index.ts
CHANGED
package/src/core/rebase/types.ts
CHANGED
|
@@ -296,6 +296,10 @@ export function newChangeAtomIdRangeMap<V>(
|
|
|
296
296
|
return new RangeMap(offsetChangeAtomId, subtractChangeAtomIds, offsetValue);
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
+
export function newChangeAtomIdTransform(): ChangeAtomIdRangeMap<ChangeAtomId> {
|
|
300
|
+
return new RangeMap(offsetChangeAtomId, subtractChangeAtomIds, offsetChangeAtomId);
|
|
301
|
+
}
|
|
302
|
+
|
|
299
303
|
export function subtractChangeAtomIds(a: ChangeAtomId, b: ChangeAtomId): number {
|
|
300
304
|
const cmp = comparePartialRevisions(a.revision, b.revision);
|
|
301
305
|
if (cmp !== 0) {
|
package/src/core/rebase/utils.ts
CHANGED
|
@@ -327,7 +327,9 @@ export function rebaseBranch<TChange>(
|
|
|
327
327
|
},
|
|
328
328
|
},
|
|
329
329
|
"sourceChange",
|
|
330
|
-
() =>
|
|
330
|
+
() => {
|
|
331
|
+
return changeRebaser.compose(editsToCompose);
|
|
332
|
+
},
|
|
331
333
|
);
|
|
332
334
|
}
|
|
333
335
|
|
|
@@ -375,23 +377,45 @@ export function rebaseChange<TChange>(
|
|
|
375
377
|
export function revisionMetadataSourceFromInfo(
|
|
376
378
|
revInfos: readonly RevisionInfo[],
|
|
377
379
|
): RevisionMetadataSource {
|
|
378
|
-
const
|
|
379
|
-
const
|
|
380
|
-
|
|
380
|
+
const compareRevisions = (revision1: RevisionTag, revision2: RevisionTag): number => {
|
|
381
|
+
const index1 = getIndex(revision1);
|
|
382
|
+
const index2 = getIndex(revision2);
|
|
383
|
+
|
|
384
|
+
if (index1 !== undefined) {
|
|
385
|
+
return index2 === undefined ? -1 : index2 - index1;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
return index2 === undefined ? 0 : 1;
|
|
381
389
|
};
|
|
390
|
+
|
|
382
391
|
const tryGetInfo = (revision: RevisionTag | undefined): RevisionInfo | undefined => {
|
|
383
392
|
if (revision === undefined) {
|
|
384
393
|
return undefined;
|
|
385
394
|
}
|
|
386
|
-
|
|
387
|
-
return index === undefined ? undefined : revInfos[index];
|
|
395
|
+
return revInfos.find((info) => info.revision === revision);
|
|
388
396
|
};
|
|
389
397
|
|
|
390
398
|
const hasRollback = (revision: RevisionTag): boolean => {
|
|
391
399
|
return revInfos.some((info) => info.rollbackOf === revision);
|
|
392
400
|
};
|
|
393
401
|
|
|
394
|
-
|
|
402
|
+
const getIndex = (revision: RevisionTag): number | undefined => {
|
|
403
|
+
const index = revInfos.findIndex((revInfo) => revInfo.revision === revision);
|
|
404
|
+
if (index >= 0) {
|
|
405
|
+
return index;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
const rollbackIndex = revInfos.findIndex((revInfo) => revInfo.rollbackOf === revision);
|
|
409
|
+
if (rollbackIndex >= 0) {
|
|
410
|
+
// This change is the forward revision of a rollback included in revInfos, so it comes after
|
|
411
|
+
// all revisions in revInfos. Earlier rollbacks have later forward revisions.
|
|
412
|
+
return 2 * revInfos.length - rollbackIndex;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
return undefined;
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
return { compareRevisions, tryGetInfo, hasRollback };
|
|
395
419
|
}
|
|
396
420
|
|
|
397
421
|
export function rebaseChangeOverChanges<TChange>(
|
package/src/core/tree/delta.ts
CHANGED
|
@@ -204,4 +204,10 @@ export interface FieldChanges {
|
|
|
204
204
|
* It corresponds to the sum of `mark.count` values for all previous marks for which `isAttachMark(mark)` is false.
|
|
205
205
|
*/
|
|
206
206
|
readonly marks: readonly Mark[];
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Indicates whether nodes detached by this field can be safely re-attached.
|
|
210
|
+
* Defaults to false.
|
|
211
|
+
*/
|
|
212
|
+
readonly allowReattach?: boolean;
|
|
207
213
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/core-utils/internal";
|
|
6
|
+
import { assert, fail } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
8
8
|
|
|
9
9
|
import {
|
|
@@ -52,6 +52,12 @@ export interface ReadOnlyDetachedFieldIndex {
|
|
|
52
52
|
*/
|
|
53
53
|
toFieldKey(id: ForestRootId): FieldKey;
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Returns a node ID for the node in the given field.
|
|
57
|
+
* @param field - The field key where the detached node resides.
|
|
58
|
+
*/
|
|
59
|
+
fromFieldKey(field: FieldKey): Delta.DetachedNodeId;
|
|
60
|
+
|
|
55
61
|
/**
|
|
56
62
|
* Returns the `ForestRootId` associated with the given id.
|
|
57
63
|
* Returns undefined if no such id is known to the index.
|
|
@@ -63,6 +69,12 @@ export interface ReadOnlyDetachedFieldIndex {
|
|
|
63
69
|
* Fails if no such id is known to the index.
|
|
64
70
|
*/
|
|
65
71
|
getEntry(id: Delta.DetachedNodeId): ForestRootId;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Returns the source associated with the given id if any.
|
|
75
|
+
* @param id - The detached node ID.
|
|
76
|
+
*/
|
|
77
|
+
isAttachable(id: Delta.DetachedNodeId): boolean | undefined;
|
|
66
78
|
}
|
|
67
79
|
|
|
68
80
|
/**
|
|
@@ -197,6 +209,16 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
197
209
|
return brand(`${this.name}-${id}`);
|
|
198
210
|
}
|
|
199
211
|
|
|
212
|
+
public fromFieldKey(field: FieldKey): Delta.DetachedNodeId {
|
|
213
|
+
// TODO: maintain a lookup table or use field keys that encode the detached node ID
|
|
214
|
+
for (const { id, root } of this.entries()) {
|
|
215
|
+
if (this.toFieldKey(root) === field) {
|
|
216
|
+
return id;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
fail("No known detached roots in the given field");
|
|
220
|
+
}
|
|
221
|
+
|
|
200
222
|
public tryGetEntry(id: Delta.DetachedNodeId): ForestRootId | undefined {
|
|
201
223
|
return tryGetFromNestedMap(this.detachedNodeToField, id.major, id.minor)?.root;
|
|
202
224
|
}
|
|
@@ -207,6 +229,10 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
207
229
|
return key;
|
|
208
230
|
}
|
|
209
231
|
|
|
232
|
+
public isAttachable(id: Delta.DetachedNodeId): boolean | undefined {
|
|
233
|
+
return tryGetFromNestedMap(this.detachedNodeToField, id.major, id.minor)?.isAttachable;
|
|
234
|
+
}
|
|
235
|
+
|
|
210
236
|
/**
|
|
211
237
|
* Returns the detached root IDs for all the trees that were detached or last modified by the given revision.
|
|
212
238
|
*/
|
|
@@ -259,6 +285,7 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
259
285
|
public createEntry(
|
|
260
286
|
nodeId?: Delta.DetachedNodeId,
|
|
261
287
|
revision?: RevisionTag,
|
|
288
|
+
isAttachable?: boolean,
|
|
262
289
|
count: number = 1,
|
|
263
290
|
): ForestRootId {
|
|
264
291
|
const root = this.rootIdAllocator.allocate(count);
|
|
@@ -272,6 +299,7 @@ export class DetachedFieldIndex implements ReadOnlyDetachedFieldIndex {
|
|
|
272
299
|
setInNestedMap(this.detachedNodeToField, nodeId.major, nodeId.minor + i, {
|
|
273
300
|
root: brand<ForestRootId>(root + i),
|
|
274
301
|
latestRelevantRevision: revision,
|
|
302
|
+
isAttachable,
|
|
275
303
|
});
|
|
276
304
|
setInNestedMap(this.latestRelevantRevisionToFields, revision, root + i, {
|
|
277
305
|
major: nodeId.major,
|
|
@@ -49,4 +49,9 @@ export interface DetachedField {
|
|
|
49
49
|
* `DetachedField` and `Forest` are GC-ed.
|
|
50
50
|
*/
|
|
51
51
|
readonly latestRelevantRevision?: RevisionTag;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Indicates whether the corresponding root can safely be re-attached.
|
|
55
|
+
*/
|
|
56
|
+
readonly isAttachable?: boolean;
|
|
52
57
|
}
|
package/src/core/tree/index.ts
CHANGED
|
@@ -30,17 +30,17 @@ export {
|
|
|
30
30
|
CursorMarker,
|
|
31
31
|
isCursor,
|
|
32
32
|
} from "./cursor.js";
|
|
33
|
-
export
|
|
34
|
-
ProtoNodes,
|
|
35
|
-
Root as DeltaRoot,
|
|
36
|
-
Mark as DeltaMark,
|
|
37
|
-
DetachedNodeId as DeltaDetachedNodeId,
|
|
38
|
-
FieldMap as DeltaFieldMap,
|
|
39
|
-
DetachedNodeChanges as DeltaDetachedNodeChanges,
|
|
40
|
-
DetachedNodeBuild as DeltaDetachedNodeBuild,
|
|
41
|
-
DetachedNodeDestruction as DeltaDetachedNodeDestruction,
|
|
42
|
-
DetachedNodeRename as DeltaDetachedNodeRename,
|
|
43
|
-
FieldChanges as DeltaFieldChanges,
|
|
33
|
+
export {
|
|
34
|
+
type ProtoNodes,
|
|
35
|
+
type Root as DeltaRoot,
|
|
36
|
+
type Mark as DeltaMark,
|
|
37
|
+
type DetachedNodeId as DeltaDetachedNodeId,
|
|
38
|
+
type FieldMap as DeltaFieldMap,
|
|
39
|
+
type DetachedNodeChanges as DeltaDetachedNodeChanges,
|
|
40
|
+
type DetachedNodeBuild as DeltaDetachedNodeBuild,
|
|
41
|
+
type DetachedNodeDestruction as DeltaDetachedNodeDestruction,
|
|
42
|
+
type DetachedNodeRename as DeltaDetachedNodeRename,
|
|
43
|
+
type FieldChanges as DeltaFieldChanges,
|
|
44
44
|
} from "./delta.js";
|
|
45
45
|
export { type MapTree, type ExclusiveMapTree, deepCopyMapTree } from "./mapTree.js";
|
|
46
46
|
export {
|
|
@@ -59,8 +59,9 @@ export {
|
|
|
59
59
|
type NodeIndex,
|
|
60
60
|
compareUpPaths,
|
|
61
61
|
compareFieldUpPaths,
|
|
62
|
-
isDetachedUpPathRoot
|
|
62
|
+
isDetachedUpPathRoot,
|
|
63
63
|
getDetachedFieldContainingPath,
|
|
64
|
+
getDetachedFieldContainingFieldPath,
|
|
64
65
|
type UpPathDefault,
|
|
65
66
|
} from "./pathTree.js";
|
|
66
67
|
export {
|
|
@@ -126,7 +126,7 @@ export interface FieldUpPath<TUpPath = UpPath> {
|
|
|
126
126
|
*/
|
|
127
127
|
export function isDetachedUpPathRoot<T>(
|
|
128
128
|
path: UpPath<T> | NormalizedUpPath,
|
|
129
|
-
): path is NormalizedUpPathRoot {
|
|
129
|
+
): path is NormalizedUpPathRoot & { readonly detachedNodeId: DetachedNodeId } {
|
|
130
130
|
return (path as NormalizedUpPathRoot).detachedNodeId !== undefined;
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -219,8 +219,8 @@ export function clonePath(path: UpPath | undefined): UpPath | undefined {
|
|
|
219
219
|
* Gets the elements of the given `path`, ordered from root-most to child-most.
|
|
220
220
|
* @remarks These elements are unchanged and therefore still point "up".
|
|
221
221
|
*/
|
|
222
|
-
export function topDownPath(path:
|
|
223
|
-
const out:
|
|
222
|
+
export function topDownPath<T extends UpPath<T>>(path: T | undefined): T[] {
|
|
223
|
+
const out: T[] = [];
|
|
224
224
|
let curr = path;
|
|
225
225
|
while (curr !== undefined) {
|
|
226
226
|
out.push(curr);
|
|
@@ -262,7 +262,7 @@ export function compareFieldUpPaths(a: FieldUpPath, b: FieldUpPath): boolean {
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
/**
|
|
265
|
-
*
|
|
265
|
+
* Returns the field key for the root field.
|
|
266
266
|
* @param path - the path you want to check.
|
|
267
267
|
* @returns the {@link DetachedField} which contains the path.
|
|
268
268
|
*/
|
|
@@ -277,3 +277,15 @@ export function getDetachedFieldContainingPath(path: UpPath): DetachedField {
|
|
|
277
277
|
}
|
|
278
278
|
return keyAsDetachedField(path.parentField);
|
|
279
279
|
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Returns the field key for the root field.
|
|
283
|
+
* @param path - the path you want to check.
|
|
284
|
+
* @returns the {@link DetachedField} which contains the path.
|
|
285
|
+
*/
|
|
286
|
+
export function getDetachedFieldContainingFieldPath(path: FieldUpPath): DetachedField {
|
|
287
|
+
if (path.parent === undefined) {
|
|
288
|
+
return keyAsDetachedField(path.field);
|
|
289
|
+
}
|
|
290
|
+
return getDetachedFieldContainingPath(path.parent);
|
|
291
|
+
}
|
|
@@ -166,7 +166,9 @@ function transferRoots(
|
|
|
166
166
|
refreshers: NestedMap<Major, Minor, ITreeCursorSynchronous>,
|
|
167
167
|
revision?: RevisionTag,
|
|
168
168
|
): void {
|
|
169
|
-
type AtomizedNodeRename = Omit<Delta.DetachedNodeRename, "count"
|
|
169
|
+
type AtomizedNodeRename = Omit<Delta.DetachedNodeRename, "count"> & {
|
|
170
|
+
isAttachable?: boolean;
|
|
171
|
+
};
|
|
170
172
|
let nextBatch = rootTransfers.flatMap(({ oldId, newId, count }) => {
|
|
171
173
|
const atomized: AtomizedNodeRename[] = [];
|
|
172
174
|
// It's possible for a detached node to be revived transiently such that it ends up back in the same detached field.
|
|
@@ -176,7 +178,12 @@ function transferRoots(
|
|
|
176
178
|
// This if statement prevents that from happening.
|
|
177
179
|
if (!areDetachedNodeIdsEqual(oldId, newId)) {
|
|
178
180
|
for (let i = 0; i < count; i += 1) {
|
|
179
|
-
|
|
181
|
+
const source = detachedFieldIndex.isAttachable(offsetDetachId(oldId, i));
|
|
182
|
+
atomized.push({
|
|
183
|
+
oldId: offsetDetachId(oldId, i),
|
|
184
|
+
newId: offsetDetachId(newId, i),
|
|
185
|
+
isAttachable: source,
|
|
186
|
+
});
|
|
180
187
|
}
|
|
181
188
|
}
|
|
182
189
|
return atomized;
|
|
@@ -184,30 +191,29 @@ function transferRoots(
|
|
|
184
191
|
while (nextBatch.length > 0) {
|
|
185
192
|
const delayed: AtomizedNodeRename[] = [];
|
|
186
193
|
const priorSize = nextBatch.length;
|
|
187
|
-
for (const { oldId, newId } of nextBatch) {
|
|
194
|
+
for (const { oldId, newId, isAttachable } of nextBatch) {
|
|
188
195
|
let oldRootId = detachedFieldIndex.tryGetEntry(oldId);
|
|
189
196
|
if (oldRootId === undefined) {
|
|
190
197
|
const tree = tryGetFromNestedMap(refreshers, oldId.major, oldId.minor);
|
|
191
198
|
if (tree !== undefined) {
|
|
192
|
-
buildTrees(oldId, [tree], detachedFieldIndex, revision, visitor);
|
|
199
|
+
buildTrees(oldId, [tree], detachedFieldIndex, revision, false, visitor);
|
|
193
200
|
oldRootId = detachedFieldIndex.getEntry(oldId);
|
|
194
201
|
}
|
|
195
202
|
}
|
|
196
203
|
if (oldRootId === undefined) {
|
|
197
204
|
// The source field is not populated.
|
|
198
205
|
// This can happen when another rename needs to be performed first.
|
|
199
|
-
delayed.push({ oldId, newId });
|
|
206
|
+
delayed.push({ oldId, newId, isAttachable });
|
|
200
207
|
continue;
|
|
201
208
|
}
|
|
202
209
|
let newRootId = detachedFieldIndex.tryGetEntry(newId);
|
|
203
210
|
if (newRootId !== undefined) {
|
|
204
211
|
// The destination field is already occupied.
|
|
205
212
|
// This can happen when another rename needs to be performed first.
|
|
206
|
-
delayed.push({ oldId, newId });
|
|
213
|
+
delayed.push({ oldId, newId, isAttachable });
|
|
207
214
|
continue;
|
|
208
215
|
}
|
|
209
|
-
|
|
210
|
-
newRootId = detachedFieldIndex.createEntry(newId, revision);
|
|
216
|
+
newRootId = detachedFieldIndex.createEntry(newId, revision, isAttachable);
|
|
211
217
|
const fields = mapToUpdate.get(oldRootId);
|
|
212
218
|
if (fields !== undefined) {
|
|
213
219
|
mapToUpdate.delete(oldRootId);
|
|
@@ -413,7 +419,11 @@ function detachPass(
|
|
|
413
419
|
if (mark.detach !== undefined) {
|
|
414
420
|
for (let i = 0; i < mark.count; i += 1) {
|
|
415
421
|
const id = offsetDetachId(mark.detach, i);
|
|
416
|
-
const root = config.detachedFieldIndex.createEntry(
|
|
422
|
+
const root = config.detachedFieldIndex.createEntry(
|
|
423
|
+
id,
|
|
424
|
+
config.latestRevision,
|
|
425
|
+
fieldChanges.allowReattach,
|
|
426
|
+
);
|
|
417
427
|
if (mark.fields !== undefined) {
|
|
418
428
|
config.attachPassRoots.set(root, mark.fields);
|
|
419
429
|
}
|
|
@@ -432,13 +442,14 @@ function buildTrees(
|
|
|
432
442
|
trees: readonly ITreeCursorSynchronous[],
|
|
433
443
|
detachedFieldIndex: DetachedFieldIndex,
|
|
434
444
|
latestRevision: RevisionTag | undefined,
|
|
445
|
+
isAttachable: boolean,
|
|
435
446
|
visitor: DeltaVisitor,
|
|
436
447
|
): void {
|
|
437
448
|
for (const [i, tree] of trees.entries()) {
|
|
438
449
|
const offsettedId = offsetDetachId(id, i);
|
|
439
450
|
let root = detachedFieldIndex.tryGetEntry(offsettedId);
|
|
440
451
|
assert(root === undefined, 0x929 /* Unable to build tree that already exists */);
|
|
441
|
-
root = detachedFieldIndex.createEntry(offsettedId, latestRevision);
|
|
452
|
+
root = detachedFieldIndex.createEntry(offsettedId, latestRevision, isAttachable);
|
|
442
453
|
const field = detachedFieldIndex.toFieldKey(root);
|
|
443
454
|
visitor.create([tree], field);
|
|
444
455
|
}
|
|
@@ -456,6 +467,7 @@ function processBuilds(
|
|
|
456
467
|
nodeCursorsFromChunk(trees),
|
|
457
468
|
config.detachedFieldIndex,
|
|
458
469
|
config.latestRevision,
|
|
470
|
+
true,
|
|
459
471
|
visitor,
|
|
460
472
|
);
|
|
461
473
|
}
|
|
@@ -473,7 +485,14 @@ function processGlobal(
|
|
|
473
485
|
if (root === undefined) {
|
|
474
486
|
const tree = tryGetFromNestedMap(config.refreshers, id.major, id.minor);
|
|
475
487
|
assert(tree !== undefined, 0x928 /* refresher data not found */);
|
|
476
|
-
buildTrees(
|
|
488
|
+
buildTrees(
|
|
489
|
+
id,
|
|
490
|
+
[tree],
|
|
491
|
+
config.detachedFieldIndex,
|
|
492
|
+
config.latestRevision,
|
|
493
|
+
false,
|
|
494
|
+
visitor,
|
|
495
|
+
);
|
|
477
496
|
root = config.detachedFieldIndex.getEntry(id);
|
|
478
497
|
}
|
|
479
498
|
// the revision is updated for any refresher data included in the delta that is used
|
|
@@ -529,6 +548,7 @@ function attachPass(
|
|
|
529
548
|
[tree],
|
|
530
549
|
config.detachedFieldIndex,
|
|
531
550
|
config.latestRevision,
|
|
551
|
+
false,
|
|
532
552
|
visitor,
|
|
533
553
|
);
|
|
534
554
|
sourceRoot = config.detachedFieldIndex.getEntry(offsetAttachId);
|
|
@@ -4,13 +4,19 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
|
+
subtractChangeAtomIds,
|
|
7
8
|
compareChangesetLocalIds,
|
|
8
9
|
comparePartialRevisions,
|
|
9
10
|
type ChangeAtomId,
|
|
10
11
|
type ChangesetLocalId,
|
|
11
12
|
type RevisionTag,
|
|
12
13
|
} from "../core/index.js";
|
|
13
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
createTupleComparator,
|
|
16
|
+
newTupleBTree,
|
|
17
|
+
type RangeQueryResult,
|
|
18
|
+
type TupleBTree,
|
|
19
|
+
} from "../util/index.js";
|
|
14
20
|
|
|
15
21
|
/**
|
|
16
22
|
* A BTree which uses ChangeAtomId flattened into a tuple as the key.
|
|
@@ -42,6 +48,25 @@ export function setInChangeAtomIdMap<T>(
|
|
|
42
48
|
map: ChangeAtomIdBTree<T>,
|
|
43
49
|
id: ChangeAtomId,
|
|
44
50
|
value: T,
|
|
45
|
-
):
|
|
46
|
-
map.set([id.revision, id.localId], value);
|
|
51
|
+
): boolean {
|
|
52
|
+
return map.set([id.revision, id.localId], value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function rangeQueryChangeAtomIdMap<T>(
|
|
56
|
+
map: ChangeAtomIdBTree<T>,
|
|
57
|
+
id: ChangeAtomId,
|
|
58
|
+
count: number,
|
|
59
|
+
): RangeQueryResult<T | undefined> {
|
|
60
|
+
const pair = map.getPairOrNextHigher([id.revision, id.localId]);
|
|
61
|
+
if (pair === undefined) {
|
|
62
|
+
return { value: undefined, length: count };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const [[revision, localId], value] = pair;
|
|
66
|
+
const lengthBefore = subtractChangeAtomIds({ revision, localId }, id);
|
|
67
|
+
if (lengthBefore === 0) {
|
|
68
|
+
return { value, length: 1 };
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return { value: undefined, length: Math.min(lengthBefore, count) };
|
|
47
72
|
}
|