@fluidframework/tree 2.82.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/CHANGELOG.md +43 -0
- package/README.md +33 -5
- package/api-report/tree.alpha.api.md +26 -21
- package/api-report/tree.beta.api.md +14 -2
- package/api-report/tree.legacy.beta.api.md +14 -2
- package/api-report/tree.legacy.public.api.md +1 -1
- package/api-report/tree.public.api.md +1 -1
- package/dist/alpha.d.ts +3 -3
- package/dist/beta.d.ts +1 -0
- package/dist/codec/codec.d.ts +3 -39
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +5 -50
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +1 -2
- package/dist/codec/index.js.map +1 -1
- package/dist/codec/versioned/codec.d.ts +20 -7
- package/dist/codec/versioned/codec.d.ts.map +1 -1
- package/dist/codec/versioned/codec.js +56 -30
- package/dist/codec/versioned/codec.js.map +1 -1
- 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/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndexCodecs.js +6 -4
- package/dist/core/tree/detachedFieldIndexCodecs.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/extensibleUnionNode.d.ts +97 -0
- package/dist/extensibleUnionNode.d.ts.map +1 -0
- package/dist/{extensibleSchemaUnion.js → extensibleUnionNode.js} +28 -18
- package/dist/extensibleUnionNode.js.map +1 -0
- 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/chunked-forest/codec/codecs.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/codecs.js +4 -4
- package/dist/feature-libraries/chunked-forest/codec/codecs.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/forest-summary/codec.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/codec.js +7 -1
- package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts +3 -3
- package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV1.d.ts +2 -3
- package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV1.js +1 -2
- package/dist/feature-libraries/forest-summary/formatV1.js.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV2.d.ts +2 -3
- package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/formatV2.js +1 -2
- package/dist/feature-libraries/forest-summary/formatV2.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 +20 -24
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +277 -159
- 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/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +6 -4
- package/dist/feature-libraries/schema-index/codec.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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -0
- 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 +9 -1
- 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/tree.d.ts +1 -1
- package/dist/shared-tree/tree.js.map +1 -1
- package/dist/shared-tree/treeAlpha.d.ts +1 -1
- package/dist/shared-tree/treeAlpha.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 +58 -10
- 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/editManagerCodecsCommons.d.ts +3 -3
- package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsCommons.js +2 -2
- package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +2 -2
- package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js +1 -1
- package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +2 -2
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js +1 -1
- package/dist/shared-tree-core/editManagerCodecsVSharedBranches.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 +12 -4
- 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 -2
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +148 -29
- package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js +180 -99
- package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeBeta.d.ts +1 -1
- package/dist/simple-tree/api/treeBeta.js.map +1 -1
- package/dist/simple-tree/core/allowedTypes.d.ts +1 -1
- package/dist/simple-tree/core/allowedTypes.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +17 -12
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +88 -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 +3 -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 +9 -16
- 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 +59 -19
- package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/dist/text/textDomainFormatted.d.ts +3 -3
- package/dist/text/textDomainFormatted.d.ts.map +1 -1
- package/dist/text/textDomainFormatted.js +48 -32
- package/dist/text/textDomainFormatted.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/bTreeUtils.d.ts.map +1 -1
- package/dist/util/bTreeUtils.js +6 -6
- 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/rangeMap.d.ts +23 -11
- package/dist/util/rangeMap.d.ts.map +1 -1
- package/dist/util/rangeMap.js +42 -10
- package/dist/util/rangeMap.js.map +1 -1
- package/lib/alpha.d.ts +3 -3
- package/lib/beta.d.ts +1 -0
- package/lib/codec/codec.d.ts +3 -39
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +4 -47
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/codec/versioned/codec.d.ts +20 -7
- package/lib/codec/versioned/codec.d.ts.map +1 -1
- package/lib/codec/versioned/codec.js +59 -33
- package/lib/codec/versioned/codec.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/detachedFieldIndexCodecs.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndexCodecs.js +6 -4
- package/lib/core/tree/detachedFieldIndexCodecs.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/extensibleUnionNode.d.ts +97 -0
- package/lib/extensibleUnionNode.d.ts.map +1 -0
- package/lib/{extensibleSchemaUnion.js → extensibleUnionNode.js} +28 -18
- package/lib/extensibleUnionNode.js.map +1 -0
- 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/chunked-forest/codec/codecs.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/codecs.js +5 -5
- package/lib/feature-libraries/chunked-forest/codec/codecs.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/forest-summary/codec.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/codec.js +8 -2
- package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts +3 -3
- package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV1.d.ts +2 -3
- package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV1.js +1 -2
- package/lib/feature-libraries/forest-summary/formatV1.js.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV2.d.ts +2 -3
- package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/formatV2.js +1 -2
- package/lib/feature-libraries/forest-summary/formatV2.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 +20 -24
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +268 -145
- 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/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +6 -4
- package/lib/feature-libraries/schema-index/codec.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/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -0
- 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 +9 -1
- 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/tree.d.ts +1 -1
- package/lib/shared-tree/tree.js.map +1 -1
- package/lib/shared-tree/treeAlpha.d.ts +1 -1
- package/lib/shared-tree/treeAlpha.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 +61 -13
- 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/editManagerCodecsCommons.d.ts +3 -3
- package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsCommons.js +2 -2
- package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +2 -2
- package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js +2 -2
- package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +2 -2
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js +2 -2
- package/lib/shared-tree-core/editManagerCodecsVSharedBranches.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 +10 -3
- 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/snapshotCompatibilityChecker.d.ts +148 -29
- package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js +179 -98
- package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeBeta.d.ts +1 -1
- package/lib/simple-tree/api/treeBeta.js.map +1 -1
- package/lib/simple-tree/core/allowedTypes.d.ts +1 -1
- package/lib/simple-tree/core/allowedTypes.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +17 -12
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +87 -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 +11 -18
- 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 +56 -17
- package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
- package/lib/text/textDomainFormatted.d.ts +3 -3
- package/lib/text/textDomainFormatted.d.ts.map +1 -1
- package/lib/text/textDomainFormatted.js +30 -14
- package/lib/text/textDomainFormatted.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/bTreeUtils.d.ts.map +1 -1
- package/lib/util/bTreeUtils.js +6 -6
- 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/rangeMap.d.ts +23 -11
- package/lib/util/rangeMap.d.ts.map +1 -1
- package/lib/util/rangeMap.js +40 -9
- package/lib/util/rangeMap.js.map +1 -1
- package/package.json +23 -23
- package/src/codec/codec.ts +10 -112
- package/src/codec/index.ts +0 -3
- package/src/codec/versioned/codec.ts +119 -83
- 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/detachedFieldIndexCodecs.ts +6 -4
- 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/{extensibleSchemaUnion.ts → extensibleUnionNode.ts} +61 -19
- package/src/feature-libraries/changeAtomIdBTree.ts +28 -3
- package/src/feature-libraries/chunked-forest/codec/codecs.ts +5 -11
- 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/forest-summary/codec.ts +8 -7
- package/src/feature-libraries/forest-summary/formatCommon.ts +5 -3
- package/src/feature-libraries/forest-summary/formatV1.ts +1 -3
- package/src/feature-libraries/forest-summary/formatV2.ts +1 -3
- 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 +626 -352
- 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/schema-index/codec.ts +6 -4
- 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/index.ts +3 -3
- 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 +10 -2
- package/src/shared-tree/sharedTreeChangeFamily.ts +7 -4
- package/src/shared-tree/sharedTreeEditBuilder.ts +43 -8
- package/src/shared-tree/tree.ts +1 -1
- package/src/shared-tree/treeAlpha.ts +1 -1
- package/src/shared-tree/treeCheckout.ts +95 -21
- 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/editManagerCodecsCommons.ts +7 -7
- package/src/shared-tree-core/editManagerCodecsV1toV4.ts +3 -10
- package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +3 -10
- 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 +13 -7
- 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 +2 -2
- package/src/simple-tree/api/snapshotCompatibilityChecker.ts +344 -142
- package/src/simple-tree/api/tree.ts +1 -1
- package/src/simple-tree/api/treeBeta.ts +1 -1
- package/src/simple-tree/core/allowedTypes.ts +1 -1
- package/src/simple-tree/core/unhydratedFlexTree.ts +124 -35
- package/src/simple-tree/fieldSchema.ts +6 -4
- package/src/simple-tree/index.ts +4 -3
- package/src/simple-tree/node-kinds/array/arrayNode.ts +20 -24
- 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 +83 -22
- package/src/text/textDomainFormatted.ts +37 -17
- package/src/treeFactory.ts +16 -4
- package/src/util/bTreeUtils.ts +10 -6
- package/src/util/index.ts +3 -0
- package/src/util/rangeMap.ts +67 -22
- package/api-extractor-lint.json +0 -4
- package/dist/extensibleSchemaUnion.d.ts +0 -72
- package/dist/extensibleSchemaUnion.d.ts.map +0 -1
- package/dist/extensibleSchemaUnion.js.map +0 -1
- 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/extensibleSchemaUnion.d.ts +0 -72
- package/lib/extensibleSchemaUnion.d.ts.map +0 -1
- package/lib/extensibleSchemaUnion.js.map +0 -1
- 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
|
@@ -7,6 +7,7 @@ import { assert, unreachableCase, fail } from "@fluidframework/core-utils/intern
|
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
9
|
type ChangeAtomId,
|
|
10
|
+
type ChangeAtomIdRangeMap,
|
|
10
11
|
type ChangesetLocalId,
|
|
11
12
|
type RevisionMetadataSource,
|
|
12
13
|
type RevisionTag,
|
|
@@ -14,39 +15,29 @@ import {
|
|
|
14
15
|
areEqualChangeAtomIds,
|
|
15
16
|
makeChangeAtomId,
|
|
16
17
|
} from "../../core/index.js";
|
|
17
|
-
import { type Mutable, brand } from "../../util/index.js";
|
|
18
|
+
import { type Mutable, areAdjacentIntegerRanges, brand } from "../../util/index.js";
|
|
18
19
|
import {
|
|
19
|
-
|
|
20
|
+
NodeMoveType,
|
|
20
21
|
type NodeId,
|
|
21
22
|
type CrossFieldKeyRange,
|
|
22
23
|
type NestedChangesIndices,
|
|
23
24
|
} from "../modular-schema/index.js";
|
|
24
25
|
|
|
25
|
-
import type {
|
|
26
|
-
CellRename,
|
|
27
|
-
DetachOfRemovedNodes,
|
|
28
|
-
EmptyInputCellMark,
|
|
29
|
-
MoveMarkEffect,
|
|
30
|
-
} from "./helperTypes.js";
|
|
26
|
+
import type { DetachOfRemovedNodes, EmptyInputCellMark } from "./helperTypes.js";
|
|
31
27
|
import {
|
|
32
28
|
type Attach,
|
|
33
|
-
type AttachAndDetach,
|
|
34
29
|
type CellId,
|
|
35
30
|
type CellMark,
|
|
36
31
|
type Changeset,
|
|
37
32
|
type Detach,
|
|
38
|
-
type DetachFields,
|
|
39
33
|
type HasRevisionTag,
|
|
40
|
-
type Insert,
|
|
41
34
|
type Mark,
|
|
42
35
|
type MarkEffect,
|
|
43
|
-
type MoveIn,
|
|
44
|
-
type MoveOut,
|
|
45
36
|
type NoopMark,
|
|
46
37
|
NoopMarkType,
|
|
47
|
-
type Remove,
|
|
48
38
|
type CellCount,
|
|
49
39
|
type Rename,
|
|
40
|
+
type Pin,
|
|
50
41
|
} from "./types.js";
|
|
51
42
|
|
|
52
43
|
export function isEmpty(change: Changeset): boolean {
|
|
@@ -63,25 +54,16 @@ export function createEmpty(): Changeset {
|
|
|
63
54
|
}
|
|
64
55
|
|
|
65
56
|
export function getNestedChanges(change: Changeset): NestedChangesIndices {
|
|
66
|
-
const output: NestedChangesIndices = [];
|
|
57
|
+
const output: NestedChangesIndices[number][] = [];
|
|
67
58
|
let inputIndex = 0;
|
|
68
|
-
let outputIndex = 0;
|
|
69
59
|
for (const mark of change) {
|
|
70
60
|
const { changes, count } = mark;
|
|
71
61
|
if (changes !== undefined) {
|
|
72
|
-
output.push([
|
|
73
|
-
changes,
|
|
74
|
-
areInputCellsEmpty(mark) ? undefined : inputIndex /* inputIndex */,
|
|
75
|
-
areOutputCellsEmpty(mark) ? undefined : outputIndex /* outputIndex */,
|
|
76
|
-
]);
|
|
62
|
+
output.push([changes, inputIndex]);
|
|
77
63
|
}
|
|
78
64
|
if (!areInputCellsEmpty(mark)) {
|
|
79
65
|
inputIndex += count;
|
|
80
66
|
}
|
|
81
|
-
|
|
82
|
-
if (!areOutputCellsEmpty(mark)) {
|
|
83
|
-
outputIndex += count;
|
|
84
|
-
}
|
|
85
67
|
}
|
|
86
68
|
return output;
|
|
87
69
|
}
|
|
@@ -96,10 +78,9 @@ export function isNewAttachEffect(
|
|
|
96
78
|
revision?: RevisionTag,
|
|
97
79
|
): boolean {
|
|
98
80
|
return (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
(isAttachAndDetachEffect(effect) && isNewAttachEffect(effect.attach, cellId, revision))
|
|
81
|
+
isAttach(effect) &&
|
|
82
|
+
cellId !== undefined &&
|
|
83
|
+
(effect.revision ?? revision) === (cellId.revision ?? revision)
|
|
103
84
|
);
|
|
104
85
|
}
|
|
105
86
|
|
|
@@ -107,12 +88,8 @@ export function isRename(mark: MarkEffect): mark is Rename {
|
|
|
107
88
|
return mark.type === "Rename";
|
|
108
89
|
}
|
|
109
90
|
|
|
110
|
-
export function isInsert(mark: MarkEffect): mark is Insert {
|
|
111
|
-
return mark.type === "Insert";
|
|
112
|
-
}
|
|
113
|
-
|
|
114
91
|
export function isAttach(effect: MarkEffect): effect is Attach {
|
|
115
|
-
return effect.type === "
|
|
92
|
+
return effect.type === "Attach";
|
|
116
93
|
}
|
|
117
94
|
|
|
118
95
|
export function isReattach(mark: Mark): boolean {
|
|
@@ -125,7 +102,7 @@ export function isReattachEffect(effect: MarkEffect, cellId: CellId | undefined)
|
|
|
125
102
|
|
|
126
103
|
export function isActiveReattach(
|
|
127
104
|
mark: Mark,
|
|
128
|
-
): mark is CellMark<
|
|
105
|
+
): mark is CellMark<Attach> & { conflictsWith?: undefined } {
|
|
129
106
|
return isAttach(mark) && isReattachEffect(mark, mark.cellId) && mark.cellId !== undefined;
|
|
130
107
|
}
|
|
131
108
|
|
|
@@ -138,15 +115,24 @@ export function getInputCellId(mark: Mark): CellId | undefined {
|
|
|
138
115
|
}
|
|
139
116
|
|
|
140
117
|
export function getOutputCellId(mark: Mark): CellId | undefined {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
118
|
+
const type = mark.type;
|
|
119
|
+
switch (type) {
|
|
120
|
+
case NoopMarkType: {
|
|
121
|
+
return getInputCellId(mark);
|
|
122
|
+
}
|
|
123
|
+
case "Attach": {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
case "Detach": {
|
|
127
|
+
return getDetachOutputCellId(mark);
|
|
128
|
+
}
|
|
129
|
+
case "Rename": {
|
|
130
|
+
return mark.idOverride;
|
|
131
|
+
}
|
|
132
|
+
default: {
|
|
133
|
+
unreachableCase(type);
|
|
134
|
+
}
|
|
147
135
|
}
|
|
148
|
-
|
|
149
|
-
return getInputCellId(mark);
|
|
150
136
|
}
|
|
151
137
|
|
|
152
138
|
export function cellSourcesFromMarks(
|
|
@@ -246,79 +232,72 @@ export function compareCellPositionsUsingTombstones(
|
|
|
246
232
|
|
|
247
233
|
// Note that these indices are for ordering the revisions in which the cells were named, not the revisions
|
|
248
234
|
// of the changesets in which the marks targeting these cells appear.
|
|
249
|
-
const
|
|
250
|
-
|
|
235
|
+
const revisionComparison = metadata.compareRevisions(
|
|
236
|
+
oldMarkCell.revision,
|
|
237
|
+
newMarkCell.revision,
|
|
238
|
+
);
|
|
251
239
|
|
|
252
240
|
// If the metadata defines an ordering for the revisions then the cell from the newer revision comes first.
|
|
253
|
-
if (
|
|
254
|
-
return
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
// The same scenario can arise in the context of compose (just consider composing `old'` and `new'` from
|
|
280
|
-
// the examples above) with the same resolution.
|
|
281
|
-
assert(false, 0x8a2 /* Invalid cell ordering scenario */);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// The absence of metadata for a cell with a defined revision means that the cell is from a revision that
|
|
285
|
-
// predates the edits that are within the scope of the metadata. Such a cell is therefore older than the one
|
|
286
|
-
// for which we do have metadata.
|
|
287
|
-
return oldCellRevisionIndex === undefined ? CellOrder.NewThenOld : CellOrder.OldThenNew;
|
|
241
|
+
if (revisionComparison !== 0) {
|
|
242
|
+
return revisionComparison > 0 ? CellOrder.NewThenOld : CellOrder.OldThenNew;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// While it is possible for both marks to refer to cells that were named in revisions that are outside
|
|
246
|
+
// the scope of the metadata, such a scenario should be handled above due to the fact that one of the two
|
|
247
|
+
// changesets should have tombstones or marks for both cells.
|
|
248
|
+
//
|
|
249
|
+
// To see this in the context of rebase, we must consider the lowest common ancestor (LCA) of each change's
|
|
250
|
+
// original (i.e., unrebased) edit with the head of the branch they will both reside on after the rebase.
|
|
251
|
+
// ...─(Ti)─...─(Tj)─...─(old')─(new') <- branch both change will reside on after rebase
|
|
252
|
+
// | └─...─(new)
|
|
253
|
+
// └─...─(old)
|
|
254
|
+
// In the diagram above we can see that by the time `new` is being rebased over `old`, both changesets have
|
|
255
|
+
// been rebased over, and therefore have cell information for, changes `Tj` onwards. This means that one of
|
|
256
|
+
// The two changesets (the `old` one in the diagram above) will have tombstones or marks for any cells that
|
|
257
|
+
// `new` refers to so long as those cells were not created on `new`'s branch.
|
|
258
|
+
// Note that the change that contains the superset of cells (again, ignoring cells created on the other
|
|
259
|
+
// change's branch) is not always the older change. Consider the following scenario:
|
|
260
|
+
// ...─(Ti)─...─(Tj)─...─(old')─(new')
|
|
261
|
+
// | └─...─(old)
|
|
262
|
+
// └─...─(new)
|
|
263
|
+
//
|
|
264
|
+
// The same scenario can arise in the context of compose (just consider composing `old'` and `new'` from
|
|
265
|
+
// the examples above) with the same resolution.
|
|
266
|
+
assert(false, 0x8a2 /* Invalid cell ordering scenario */);
|
|
288
267
|
}
|
|
289
268
|
}
|
|
290
269
|
|
|
291
270
|
/**
|
|
292
271
|
* Gets the ID of the cell in the output context of the given detach `mark`.
|
|
293
272
|
*/
|
|
294
|
-
export function getDetachOutputCellId(mark: Detach
|
|
295
|
-
if (
|
|
296
|
-
return mark.
|
|
273
|
+
export function getDetachOutputCellId(mark: Detach): ChangeAtomId {
|
|
274
|
+
if (mark.cellRename !== undefined) {
|
|
275
|
+
return mark.cellRename;
|
|
297
276
|
}
|
|
298
|
-
|
|
299
|
-
|
|
277
|
+
|
|
278
|
+
if (mark.detachCellId !== undefined) {
|
|
279
|
+
return mark.detachCellId;
|
|
300
280
|
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
281
|
+
|
|
282
|
+
return getDetachedRootId(mark);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Gets the ID of the node to be attached in the input context of the given detach `mark`.
|
|
287
|
+
*/
|
|
288
|
+
export function getAttachedRootId(mark: Attach): ChangeAtomId {
|
|
289
|
+
return makeChangeAtomId(mark.id, mark.revision);
|
|
304
290
|
}
|
|
305
291
|
|
|
306
292
|
/**
|
|
307
293
|
* Gets the ID of the detached node in the output context of the given detach `mark`.
|
|
308
294
|
*/
|
|
309
|
-
export function
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
case "MoveOut": {
|
|
316
|
-
return makeChangeAtomId(mark.id, mark.revision);
|
|
317
|
-
}
|
|
318
|
-
default: {
|
|
319
|
-
unreachableCase(mark);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
295
|
+
export function getDetachedRootId(mark: Detach): ChangeAtomId {
|
|
296
|
+
return makeChangeAtomId(mark.id, mark.revision);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export function getMovedNodeId(mark: Attach | Detach): ChangeAtomId {
|
|
300
|
+
return makeChangeAtomId(mark.id, mark.revision);
|
|
322
301
|
}
|
|
323
302
|
|
|
324
303
|
/**
|
|
@@ -329,65 +308,18 @@ export function normalizeCellRename(
|
|
|
329
308
|
count: CellCount,
|
|
330
309
|
attach: Attach,
|
|
331
310
|
detach: Detach,
|
|
332
|
-
): CellMark<
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
// because the resulting Rename may be rebased over other changes that rename the input cell,
|
|
339
|
-
// eventually leading to an impactful rename.
|
|
340
|
-
return {
|
|
341
|
-
type: "Rename",
|
|
342
|
-
count,
|
|
343
|
-
cellId,
|
|
344
|
-
idOverride: outputId,
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
} else {
|
|
348
|
-
// Normalization: when the attach is an insert/revive, we rely on the implicit reviving semantics of the
|
|
349
|
-
// detach instead of using an explicit revive effect in an AttachAndDetach
|
|
350
|
-
return {
|
|
351
|
-
...detach,
|
|
352
|
-
count,
|
|
353
|
-
cellId,
|
|
354
|
-
};
|
|
355
|
-
}
|
|
311
|
+
): CellMark<DetachOfRemovedNodes | Rename | NoopMark> {
|
|
312
|
+
const outputId = getDetachOutputCellId(detach);
|
|
313
|
+
// Note that the output ID may be the same as the cellId. In such a scenario,
|
|
314
|
+
// we output an (impact-less) Rename mark anyway (as opposed to a Skip)
|
|
315
|
+
// because the resulting Rename may be rebased over other changes that rename the input cell,
|
|
316
|
+
// eventually leading to an impactful rename.
|
|
356
317
|
return {
|
|
357
|
-
type: "
|
|
358
|
-
attach,
|
|
359
|
-
detach,
|
|
360
|
-
count,
|
|
361
|
-
cellId,
|
|
362
|
-
};
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* Preserves the semantics of the given `mark` but repackages it into an `AttachAndDetach` mark if it is not already one.
|
|
367
|
-
*/
|
|
368
|
-
export function asAttachAndDetach(mark: CellMark<CellRename>): CellMark<AttachAndDetach> {
|
|
369
|
-
if (mark.type === "AttachAndDetach") {
|
|
370
|
-
return mark;
|
|
371
|
-
}
|
|
372
|
-
const { cellId, count, changes, revision, ...effect } = mark;
|
|
373
|
-
const attachAndDetach: CellMark<AttachAndDetach | Detach> = {
|
|
374
|
-
type: "AttachAndDetach",
|
|
318
|
+
type: "Rename",
|
|
375
319
|
count,
|
|
376
320
|
cellId,
|
|
377
|
-
|
|
378
|
-
type: "Insert",
|
|
379
|
-
id: mark.id,
|
|
380
|
-
},
|
|
381
|
-
detach: effect,
|
|
321
|
+
idOverride: outputId,
|
|
382
322
|
};
|
|
383
|
-
if (changes !== undefined) {
|
|
384
|
-
attachAndDetach.changes = changes;
|
|
385
|
-
}
|
|
386
|
-
if (revision !== undefined) {
|
|
387
|
-
attachAndDetach.attach.revision = revision;
|
|
388
|
-
attachAndDetach.detach.revision = revision;
|
|
389
|
-
}
|
|
390
|
-
return attachAndDetach;
|
|
391
323
|
}
|
|
392
324
|
|
|
393
325
|
export function cloneMark<TMark extends Mark>(mark: TMark): TMark {
|
|
@@ -401,10 +333,6 @@ export function cloneMark<TMark extends Mark>(mark: TMark): TMark {
|
|
|
401
333
|
|
|
402
334
|
export function cloneMarkEffect<TEffect extends MarkEffect>(effect: TEffect): TEffect {
|
|
403
335
|
const clone = { ...effect };
|
|
404
|
-
if (clone.type === "AttachAndDetach") {
|
|
405
|
-
clone.attach = cloneMarkEffect(clone.attach);
|
|
406
|
-
clone.detach = cloneMarkEffect(clone.detach);
|
|
407
|
-
}
|
|
408
336
|
return clone;
|
|
409
337
|
}
|
|
410
338
|
|
|
@@ -443,18 +371,6 @@ export function markHasCellEffect(mark: Mark): boolean {
|
|
|
443
371
|
return areInputCellsEmpty(mark) !== areOutputCellsEmpty(mark);
|
|
444
372
|
}
|
|
445
373
|
|
|
446
|
-
export function isAttachAndDetachEffect(effect: MarkEffect): effect is AttachAndDetach {
|
|
447
|
-
return effect.type === "AttachAndDetach";
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
export function isDetachOfRemovedNodes(mark: Mark): mark is CellMark<DetachOfRemovedNodes> {
|
|
451
|
-
return isDetach(mark) && mark.cellId !== undefined;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
export function isImpactfulCellRename(mark: Mark): mark is CellMark<CellRename> {
|
|
455
|
-
return (isAttachAndDetachEffect(mark) || isDetachOfRemovedNodes(mark)) && isImpactful(mark);
|
|
456
|
-
}
|
|
457
|
-
|
|
458
374
|
export function areInputCellsEmpty(mark: Mark): mark is EmptyInputCellMark {
|
|
459
375
|
return mark.cellId !== undefined;
|
|
460
376
|
}
|
|
@@ -465,14 +381,11 @@ export function areOutputCellsEmpty(mark: Mark): boolean {
|
|
|
465
381
|
case NoopMarkType: {
|
|
466
382
|
return mark.cellId !== undefined;
|
|
467
383
|
}
|
|
468
|
-
case "
|
|
469
|
-
case "Rename":
|
|
470
|
-
case "MoveOut":
|
|
471
|
-
case "AttachAndDetach": {
|
|
384
|
+
case "Detach":
|
|
385
|
+
case "Rename": {
|
|
472
386
|
return true;
|
|
473
387
|
}
|
|
474
|
-
case "
|
|
475
|
-
case "Insert": {
|
|
388
|
+
case "Attach": {
|
|
476
389
|
return false;
|
|
477
390
|
}
|
|
478
391
|
default: {
|
|
@@ -481,20 +394,6 @@ export function areOutputCellsEmpty(mark: Mark): boolean {
|
|
|
481
394
|
}
|
|
482
395
|
}
|
|
483
396
|
|
|
484
|
-
/**
|
|
485
|
-
* Creates a mark that is equivalent to the given `mark` but with effects removed if those have no impact in the input
|
|
486
|
-
* context of that mark.
|
|
487
|
-
*
|
|
488
|
-
* @param mark - The mark to settle. Never mutated.
|
|
489
|
-
* @returns either the original mark or a shallow clone of it with effects stripped out.
|
|
490
|
-
*/
|
|
491
|
-
export function settleMark(mark: Mark): Mark {
|
|
492
|
-
if (isImpactful(mark)) {
|
|
493
|
-
return mark;
|
|
494
|
-
}
|
|
495
|
-
return omitMarkEffect(mark);
|
|
496
|
-
}
|
|
497
|
-
|
|
498
397
|
/**
|
|
499
398
|
* Returns true if and only iff the given `mark` would have impact on the field when applied.
|
|
500
399
|
*
|
|
@@ -511,7 +410,7 @@ export function isImpactful(mark: Mark): boolean {
|
|
|
511
410
|
case "Rename": {
|
|
512
411
|
return true;
|
|
513
412
|
}
|
|
514
|
-
case "
|
|
413
|
+
case "Detach": {
|
|
515
414
|
const inputId = getInputCellId(mark);
|
|
516
415
|
if (inputId === undefined) {
|
|
517
416
|
return true;
|
|
@@ -520,16 +419,7 @@ export function isImpactful(mark: Mark): boolean {
|
|
|
520
419
|
assert(outputId !== undefined, 0x824 /* Remove marks must have an output cell ID */);
|
|
521
420
|
return !areEqualChangeAtomIds(inputId, outputId);
|
|
522
421
|
}
|
|
523
|
-
case "
|
|
524
|
-
case "MoveOut": {
|
|
525
|
-
return true;
|
|
526
|
-
}
|
|
527
|
-
case "MoveIn": {
|
|
528
|
-
// MoveIn marks always target an empty cell.
|
|
529
|
-
assert(mark.cellId !== undefined, 0x825 /* MoveIn marks should target empty cells */);
|
|
530
|
-
return true;
|
|
531
|
-
}
|
|
532
|
-
case "Insert": {
|
|
422
|
+
case "Attach": {
|
|
533
423
|
// A Revive has no impact if the nodes are already in the document.
|
|
534
424
|
return mark.cellId !== undefined;
|
|
535
425
|
}
|
|
@@ -576,14 +466,18 @@ export function compareCellsFromSameRevision(
|
|
|
576
466
|
|
|
577
467
|
export function isDetach(mark: MarkEffect | undefined): mark is Detach {
|
|
578
468
|
const type = mark?.type;
|
|
579
|
-
return type === "
|
|
469
|
+
return type === "Detach";
|
|
580
470
|
}
|
|
581
471
|
|
|
582
|
-
export function
|
|
583
|
-
return mark?.type === "
|
|
472
|
+
export function isPin(mark: Mark): mark is Pin {
|
|
473
|
+
return mark?.type === "Attach" && mark.cellId === undefined;
|
|
584
474
|
}
|
|
585
475
|
|
|
586
|
-
function
|
|
476
|
+
export function isRemoveMark(mark: Mark | undefined): mark is CellMark<Detach> {
|
|
477
|
+
return mark?.type === "Detach";
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
export function areMergeableChangeAtoms(
|
|
587
481
|
lhs: ChangeAtomId | undefined,
|
|
588
482
|
lhsCount: number,
|
|
589
483
|
rhs: ChangeAtomId | undefined,
|
|
@@ -593,29 +487,11 @@ function areMergeableChangeAtoms(
|
|
|
593
487
|
}
|
|
594
488
|
|
|
595
489
|
return (
|
|
596
|
-
lhs.revision === rhs.revision &&
|
|
490
|
+
lhs.revision === rhs.revision &&
|
|
491
|
+
areAdjacentIntegerRanges(lhs.localId, lhsCount, rhs.localId)
|
|
597
492
|
);
|
|
598
493
|
}
|
|
599
494
|
|
|
600
|
-
function areAdjacentIdRanges(
|
|
601
|
-
firstStart: ChangesetLocalId,
|
|
602
|
-
firstLength: number,
|
|
603
|
-
secondStart: ChangesetLocalId,
|
|
604
|
-
): boolean {
|
|
605
|
-
return (firstStart as number) + firstLength === secondStart;
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
function haveMergeableIdOverrides(
|
|
609
|
-
lhs: DetachFields,
|
|
610
|
-
lhsCount: number,
|
|
611
|
-
rhs: DetachFields,
|
|
612
|
-
): boolean {
|
|
613
|
-
if (lhs.idOverride !== undefined && rhs.idOverride !== undefined) {
|
|
614
|
-
return areMergeableCellIds(lhs.idOverride, lhsCount, rhs.idOverride);
|
|
615
|
-
}
|
|
616
|
-
return (lhs.idOverride === undefined) === (rhs.idOverride === undefined);
|
|
617
|
-
}
|
|
618
|
-
|
|
619
495
|
function areMergeableCellIds(
|
|
620
496
|
lhs: CellId | undefined,
|
|
621
497
|
lhsCount: number,
|
|
@@ -665,48 +541,28 @@ function tryMergeEffects(
|
|
|
665
541
|
return lhs;
|
|
666
542
|
}
|
|
667
543
|
|
|
668
|
-
if (rhs.type === "AttachAndDetach") {
|
|
669
|
-
const lhsAttachAndDetach = lhs as AttachAndDetach;
|
|
670
|
-
const attach = tryMergeEffects(lhsAttachAndDetach.attach, rhs.attach, lhsCount);
|
|
671
|
-
const detach = tryMergeEffects(lhsAttachAndDetach.detach, rhs.detach, lhsCount);
|
|
672
|
-
if (attach === undefined || detach === undefined) {
|
|
673
|
-
return undefined;
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
assert(
|
|
677
|
-
isAttach(attach) && isDetach(detach),
|
|
678
|
-
0x826 /* Merged marks should be same type as input marks */,
|
|
679
|
-
);
|
|
680
|
-
return { ...lhsAttachAndDetach, attach, detach };
|
|
681
|
-
}
|
|
682
|
-
|
|
683
544
|
if (
|
|
684
545
|
(lhs as Partial<HasRevisionTag>).revision !== (rhs as Partial<HasRevisionTag>).revision
|
|
685
546
|
) {
|
|
686
547
|
return undefined;
|
|
687
548
|
}
|
|
688
549
|
|
|
689
|
-
if (
|
|
550
|
+
if (
|
|
551
|
+
isDetach(lhs) &&
|
|
552
|
+
isDetach(rhs) &&
|
|
553
|
+
!areMergeableChangeAtoms(lhs.cellRename, lhsCount, rhs.cellRename)
|
|
554
|
+
) {
|
|
690
555
|
return undefined;
|
|
691
556
|
}
|
|
692
557
|
|
|
693
558
|
const type = rhs.type;
|
|
694
559
|
switch (type) {
|
|
695
|
-
case "
|
|
696
|
-
const
|
|
697
|
-
if (
|
|
698
|
-
(lhsMoveIn.id as number) + lhsCount === rhs.id &&
|
|
699
|
-
areMergeableChangeAtoms(lhsMoveIn.finalEndpoint, lhsCount, rhs.finalEndpoint)
|
|
700
|
-
) {
|
|
701
|
-
return lhsMoveIn;
|
|
702
|
-
}
|
|
703
|
-
break;
|
|
704
|
-
}
|
|
705
|
-
case "Remove": {
|
|
706
|
-
const lhsDetach = lhs as Remove;
|
|
560
|
+
case "Detach": {
|
|
561
|
+
const lhsDetach = lhs as Detach;
|
|
707
562
|
if (
|
|
708
563
|
(lhsDetach.id as number) + lhsCount === rhs.id &&
|
|
709
|
-
|
|
564
|
+
areMergeableChangeAtoms(lhsDetach.cellRename, lhsCount, rhs.cellRename) &&
|
|
565
|
+
areMergeableChangeAtoms(lhsDetach.detachCellId, lhsCount, rhs.detachCellId)
|
|
710
566
|
) {
|
|
711
567
|
return lhsDetach;
|
|
712
568
|
}
|
|
@@ -714,25 +570,17 @@ function tryMergeEffects(
|
|
|
714
570
|
}
|
|
715
571
|
case "Rename": {
|
|
716
572
|
const lhsDetach = lhs as Rename;
|
|
717
|
-
if (
|
|
573
|
+
if (areMergeableChangeAtoms(lhsDetach.idOverride, lhsCount, rhs.idOverride)) {
|
|
718
574
|
return lhsDetach;
|
|
719
575
|
}
|
|
720
576
|
break;
|
|
721
577
|
}
|
|
722
|
-
case "
|
|
723
|
-
const
|
|
578
|
+
case "Attach": {
|
|
579
|
+
const lhsInsert = lhs as Attach;
|
|
724
580
|
if (
|
|
725
|
-
(
|
|
726
|
-
|
|
727
|
-
areMergeableChangeAtoms(lhsMoveOut.finalEndpoint, lhsCount, rhs.finalEndpoint)
|
|
581
|
+
(lhsInsert.id as number) + lhsCount === rhs.id &&
|
|
582
|
+
areMergeableChangeAtoms(lhsInsert.detachCellId, lhsCount, rhs.detachCellId)
|
|
728
583
|
) {
|
|
729
|
-
return lhsMoveOut;
|
|
730
|
-
}
|
|
731
|
-
break;
|
|
732
|
-
}
|
|
733
|
-
case "Insert": {
|
|
734
|
-
const lhsInsert = lhs as Insert;
|
|
735
|
-
if ((lhsInsert.id as number) + lhsCount === rhs.id) {
|
|
736
584
|
return lhsInsert;
|
|
737
585
|
}
|
|
738
586
|
break;
|
|
@@ -783,31 +631,34 @@ export function splitMarkEffect<TEffect extends MarkEffect>(
|
|
|
783
631
|
case NoopMarkType: {
|
|
784
632
|
return [effect, effect];
|
|
785
633
|
}
|
|
786
|
-
case "
|
|
787
|
-
const effect1: TEffect = {
|
|
634
|
+
case "Attach": {
|
|
635
|
+
const effect1: Mutable<TEffect> = {
|
|
788
636
|
...effect,
|
|
789
637
|
};
|
|
790
|
-
const effect2: TEffect = {
|
|
638
|
+
const effect2: Mutable<TEffect> = {
|
|
791
639
|
...effect,
|
|
792
640
|
id: (effect.id as number) + length,
|
|
793
641
|
};
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
move2.finalEndpoint = splitDetachEvent(move2.finalEndpoint, length);
|
|
642
|
+
|
|
643
|
+
if (effect.detachCellId !== undefined) {
|
|
644
|
+
(effect2 as Mutable<Attach>).detachCellId = splitDetachEvent(
|
|
645
|
+
effect.detachCellId,
|
|
646
|
+
length,
|
|
647
|
+
);
|
|
801
648
|
}
|
|
802
|
-
return [
|
|
649
|
+
return [effect1, effect2];
|
|
803
650
|
}
|
|
804
|
-
case "
|
|
651
|
+
case "Detach": {
|
|
805
652
|
const effect1 = { ...effect };
|
|
806
653
|
const id2: ChangesetLocalId = brand((effect.id as number) + length);
|
|
807
654
|
const effect2 = { ...effect, id: id2 };
|
|
808
|
-
const effect2Remove = effect2 as Mutable<
|
|
809
|
-
if (effect2Remove.
|
|
810
|
-
effect2Remove.
|
|
655
|
+
const effect2Remove = effect2 as Mutable<Detach>;
|
|
656
|
+
if (effect2Remove.cellRename !== undefined) {
|
|
657
|
+
effect2Remove.cellRename = splitDetachEvent(effect2Remove.cellRename, length);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
if (effect2Remove.detachCellId !== undefined) {
|
|
661
|
+
effect2Remove.detachCellId = splitDetachEvent(effect2Remove.detachCellId, length);
|
|
811
662
|
}
|
|
812
663
|
return [effect1, effect2];
|
|
813
664
|
}
|
|
@@ -820,40 +671,6 @@ export function splitMarkEffect<TEffect extends MarkEffect>(
|
|
|
820
671
|
}
|
|
821
672
|
return [effect1, effect2];
|
|
822
673
|
}
|
|
823
|
-
case "MoveOut": {
|
|
824
|
-
const effect2 = {
|
|
825
|
-
...effect,
|
|
826
|
-
id: (effect.id as number) + length,
|
|
827
|
-
};
|
|
828
|
-
|
|
829
|
-
const return2 = effect2 as Mutable<MoveOut>;
|
|
830
|
-
|
|
831
|
-
if (return2.idOverride !== undefined) {
|
|
832
|
-
return2.idOverride = splitDetachEvent(return2.idOverride, length);
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
if (return2.finalEndpoint !== undefined) {
|
|
836
|
-
return2.finalEndpoint = splitDetachEvent(return2.finalEndpoint, length);
|
|
837
|
-
}
|
|
838
|
-
return [effect, effect2];
|
|
839
|
-
}
|
|
840
|
-
case "AttachAndDetach": {
|
|
841
|
-
const [attach1, attach2] = splitMarkEffect(effect.attach, length);
|
|
842
|
-
const [detach1, detach2] = splitMarkEffect(effect.detach, length);
|
|
843
|
-
const effect1 = {
|
|
844
|
-
...effect,
|
|
845
|
-
attach: attach1,
|
|
846
|
-
detach: detach1,
|
|
847
|
-
};
|
|
848
|
-
|
|
849
|
-
const effect2 = {
|
|
850
|
-
...effect,
|
|
851
|
-
attach: attach2,
|
|
852
|
-
detach: detach2,
|
|
853
|
-
};
|
|
854
|
-
|
|
855
|
-
return [effect1, effect2];
|
|
856
|
-
}
|
|
857
674
|
default: {
|
|
858
675
|
unreachableCase(type);
|
|
859
676
|
}
|
|
@@ -923,12 +740,6 @@ function addRevision(effect: MarkEffect, revision: RevisionTag): void {
|
|
|
923
740
|
return;
|
|
924
741
|
}
|
|
925
742
|
|
|
926
|
-
if (effect.type === "AttachAndDetach") {
|
|
927
|
-
addRevision(effect.attach, revision);
|
|
928
|
-
addRevision(effect.detach, revision);
|
|
929
|
-
return;
|
|
930
|
-
}
|
|
931
|
-
|
|
932
743
|
assert(
|
|
933
744
|
effect.revision === undefined || effect.revision === revision,
|
|
934
745
|
0x829 /* Should not overwrite mark revision */,
|
|
@@ -936,78 +747,108 @@ function addRevision(effect: MarkEffect, revision: RevisionTag): void {
|
|
|
936
747
|
effect.revision = revision;
|
|
937
748
|
}
|
|
938
749
|
|
|
939
|
-
export function getEndpoint(effect: MoveMarkEffect): ChangeAtomId {
|
|
940
|
-
return effect.finalEndpoint ?? { revision: effect.revision, localId: effect.id };
|
|
941
|
-
}
|
|
942
|
-
|
|
943
750
|
export function getCrossFieldKeys(change: Changeset): CrossFieldKeyRange[] {
|
|
944
751
|
const keys: CrossFieldKeyRange[] = [];
|
|
945
752
|
for (const mark of change) {
|
|
946
|
-
keys.push(...
|
|
753
|
+
keys.push(...getCrossFieldKeysForMark(mark, mark.count));
|
|
947
754
|
}
|
|
948
755
|
|
|
949
756
|
return keys;
|
|
950
757
|
}
|
|
951
758
|
|
|
952
|
-
function
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
switch (effect.type) {
|
|
957
|
-
case "Insert": {
|
|
958
|
-
// An insert behaves like a move where the source and destination are at the same location.
|
|
959
|
-
// An insert can become a move when after rebasing.
|
|
960
|
-
return [
|
|
961
|
-
{
|
|
962
|
-
key: {
|
|
963
|
-
target: CrossFieldTarget.Source,
|
|
964
|
-
revision: effect.revision,
|
|
965
|
-
localId: effect.id,
|
|
966
|
-
},
|
|
967
|
-
count,
|
|
968
|
-
},
|
|
759
|
+
function getCrossFieldKeysForMark(mark: Mark, count: number): CrossFieldKeyRange[] {
|
|
760
|
+
switch (mark.type) {
|
|
761
|
+
case "Attach": {
|
|
762
|
+
const keys = [
|
|
969
763
|
{
|
|
970
764
|
key: {
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
765
|
+
revision: mark.revision,
|
|
766
|
+
localId: mark.id,
|
|
767
|
+
target: NodeMoveType.Attach,
|
|
974
768
|
},
|
|
975
769
|
count,
|
|
976
770
|
},
|
|
977
771
|
];
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
{
|
|
982
|
-
key: {
|
|
983
|
-
target: CrossFieldTarget.Source,
|
|
984
|
-
revision: effect.revision,
|
|
985
|
-
localId: effect.id,
|
|
986
|
-
},
|
|
772
|
+
|
|
773
|
+
if (mark.cellId === undefined) {
|
|
774
|
+
// This is a pin, which is treated as a detach and attach.
|
|
775
|
+
keys.push({
|
|
776
|
+
key: { revision: mark.revision, localId: mark.id, target: NodeMoveType.Detach },
|
|
987
777
|
count,
|
|
988
|
-
}
|
|
989
|
-
|
|
778
|
+
});
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
return keys;
|
|
990
782
|
}
|
|
991
|
-
case "
|
|
783
|
+
case "Detach": {
|
|
992
784
|
return [
|
|
993
785
|
{
|
|
994
786
|
key: {
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
787
|
+
revision: mark.revision,
|
|
788
|
+
localId: mark.id,
|
|
789
|
+
target: NodeMoveType.Detach,
|
|
998
790
|
},
|
|
999
791
|
count,
|
|
1000
792
|
},
|
|
1001
793
|
];
|
|
1002
794
|
}
|
|
1003
|
-
case "AttachAndDetach": {
|
|
1004
|
-
return [
|
|
1005
|
-
...getCrossFieldKeysForMarkEffect(effect.attach, count),
|
|
1006
|
-
...getCrossFieldKeysForMarkEffect(effect.detach, count),
|
|
1007
|
-
];
|
|
1008
|
-
}
|
|
1009
795
|
default: {
|
|
1010
796
|
return [];
|
|
1011
797
|
}
|
|
1012
798
|
}
|
|
1013
799
|
}
|
|
800
|
+
|
|
801
|
+
export function getDetachCellIds(
|
|
802
|
+
change: Changeset,
|
|
803
|
+
rootRenames: ChangeAtomIdRangeMap<ChangeAtomId>,
|
|
804
|
+
): {
|
|
805
|
+
detachId: ChangeAtomId;
|
|
806
|
+
cellId: ChangeAtomId;
|
|
807
|
+
count: number;
|
|
808
|
+
}[] {
|
|
809
|
+
const entries: {
|
|
810
|
+
detachId: ChangeAtomId;
|
|
811
|
+
cellId: ChangeAtomId;
|
|
812
|
+
count: number;
|
|
813
|
+
}[] = [];
|
|
814
|
+
|
|
815
|
+
for (const mark of change) {
|
|
816
|
+
if (mark.type === "Detach" && mark.detachCellId !== undefined) {
|
|
817
|
+
const detachId = getDetachedRootId(mark);
|
|
818
|
+
if (!areEqualChangeAtomIds(mark.detachCellId, detachId)) {
|
|
819
|
+
entries.push({ count: mark.count, detachId, cellId: mark.detachCellId });
|
|
820
|
+
}
|
|
821
|
+
} else if (mark.type === "Rename") {
|
|
822
|
+
addDetachCellIdsForRename(mark, rootRenames, entries);
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
return entries;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
function addDetachCellIdsForRename(
|
|
829
|
+
mark: CellMark<Rename>,
|
|
830
|
+
rootRenames: ChangeAtomIdRangeMap<ChangeAtomId>,
|
|
831
|
+
entries: {
|
|
832
|
+
detachId: ChangeAtomId;
|
|
833
|
+
cellId: ChangeAtomId;
|
|
834
|
+
count: number;
|
|
835
|
+
}[],
|
|
836
|
+
): void {
|
|
837
|
+
assert(mark.cellId !== undefined, "Rename should not target a full cell");
|
|
838
|
+
const rootRenameEntry = rootRenames.getFirst(mark.cellId, mark.count);
|
|
839
|
+
const countProcessed = rootRenameEntry.length;
|
|
840
|
+
if (
|
|
841
|
+
rootRenameEntry.value !== undefined &&
|
|
842
|
+
!areEqualChangeAtomIds(mark.idOverride, rootRenameEntry.value)
|
|
843
|
+
) {
|
|
844
|
+
entries.push({
|
|
845
|
+
cellId: mark.cellId,
|
|
846
|
+
detachId: rootRenameEntry.value,
|
|
847
|
+
count: countProcessed,
|
|
848
|
+
});
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
if (countProcessed < mark.count) {
|
|
852
|
+
addDetachCellIdsForRename(splitMark(mark, countProcessed)[1], rootRenames, entries);
|
|
853
|
+
}
|
|
854
|
+
}
|