@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
|
@@ -425,7 +425,7 @@ export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends ID
|
|
|
425
425
|
* @remarks
|
|
426
426
|
* {@link TreeViewEvents.schemaChanged} is fired when the compatibility status changes.
|
|
427
427
|
* See {@link https://fluidframework.com/docs/data-structures/tree/schema-evolution/ | schema-evolution} for more guidance on how to change schema while maintaining compatibility.
|
|
428
|
-
* Use {@link
|
|
428
|
+
* Use {@link snapshotSchemaCompatibility} to write tests to validate that this compatibility behaves as desired across schema changes.
|
|
429
429
|
*/
|
|
430
430
|
readonly compatibility: SchemaCompatibilityStatus;
|
|
431
431
|
|
|
@@ -120,7 +120,7 @@ export interface TreeChangeEventsBeta<TNode extends TreeNode = TreeNode>
|
|
|
120
120
|
* Extensions to {@link (Tree:interface)} which are not yet stable.
|
|
121
121
|
* @remarks
|
|
122
122
|
* Use via the {@link (TreeBeta:variable)} singleton.
|
|
123
|
-
* @
|
|
123
|
+
* @sealed @beta
|
|
124
124
|
*/
|
|
125
125
|
export interface TreeBeta {
|
|
126
126
|
/**
|
|
@@ -650,7 +650,7 @@ export type TreeNodeFromImplicitAllowedTypes<
|
|
|
650
650
|
* This type exists only to be linked from documentation to provide a single linkable place to document some details of
|
|
651
651
|
* "Input" types and how they handle schema.
|
|
652
652
|
*
|
|
653
|
-
* When a schema is used to describe data which is an input into an API, the API is {@link https://en.wikipedia.org/wiki/Type_variance | contravariant}
|
|
653
|
+
* When a schema is used to describe data which is an input into an API, the API is {@link https://en.wikipedia.org/wiki/Type_variance | contravariant} over the schema.
|
|
654
654
|
* (See also {@link https://www.typescriptlang.org/docs/handbook/2/generics.html#variance-annotations | TypeScript Variance Annotations}).
|
|
655
655
|
*
|
|
656
656
|
* Since these schema are expressed using TypeScript types, it is possible for the user of the API to provide non-exact values of these types which has implications that depended on the variance.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { createEmitter } from "@fluid-internal/client-utils";
|
|
7
7
|
import type { HasListeners, Listenable } from "@fluidframework/core-interfaces/internal";
|
|
8
|
-
import { assert, oob, fail } from "@fluidframework/core-utils/internal";
|
|
8
|
+
import { assert, oob, fail, debugAssert } from "@fluidframework/core-utils/internal";
|
|
9
9
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
10
10
|
|
|
11
11
|
import {
|
|
@@ -38,16 +38,16 @@ import {
|
|
|
38
38
|
type FlexTreeHydratedContext,
|
|
39
39
|
type FlexFieldKind,
|
|
40
40
|
FieldKinds,
|
|
41
|
-
type SequenceFieldEditBuilder,
|
|
42
41
|
cursorForMapTreeNode,
|
|
43
|
-
type
|
|
44
|
-
type
|
|
45
|
-
type FlexibleNodeContent,
|
|
42
|
+
type SequenceFieldEditor,
|
|
43
|
+
type RequiredFieldEditor,
|
|
46
44
|
type FlexTreeHydratedContextMinimal,
|
|
47
45
|
type FlexibleFieldContent,
|
|
48
46
|
type MapTreeFieldViewGeneric,
|
|
49
47
|
type MapTreeNodeViewGeneric,
|
|
50
48
|
type HydratedFlexTreeNode,
|
|
49
|
+
type FlexibleNodeContent,
|
|
50
|
+
type OptionalFieldEditor,
|
|
51
51
|
cursorForMapTreeField,
|
|
52
52
|
type MinimalFieldMap,
|
|
53
53
|
currentObserver,
|
|
@@ -59,7 +59,22 @@ import type { Context } from "./context.js";
|
|
|
59
59
|
import type { TreeNode } from "./treeNode.js";
|
|
60
60
|
|
|
61
61
|
interface UnhydratedTreeSequenceFieldEditBuilder
|
|
62
|
-
extends
|
|
62
|
+
extends SequenceFieldEditor<FlexibleFieldContent, readonly FlexTreeNode[]> {
|
|
63
|
+
/**
|
|
64
|
+
* Moves elements from a source position to a destination position.
|
|
65
|
+
* Can move within the same field or from another unhydrated sequence field.
|
|
66
|
+
* @param sourceIndex - The index of the first element to move.
|
|
67
|
+
* @param count - The number of elements to move.
|
|
68
|
+
* @param destIndex - The index at which to insert the moved elements.
|
|
69
|
+
* @param source - The source field to move from (defaults to this field for within-field moves).
|
|
70
|
+
*/
|
|
71
|
+
move(
|
|
72
|
+
sourceIndex: number,
|
|
73
|
+
count: number,
|
|
74
|
+
destIndex: number,
|
|
75
|
+
source?: UnhydratedSequenceField,
|
|
76
|
+
): void;
|
|
77
|
+
}
|
|
63
78
|
|
|
64
79
|
type UnhydratedFlexTreeNodeEvents = Pick<
|
|
65
80
|
AnchorEvents,
|
|
@@ -73,7 +88,7 @@ type LocationInField = FlexTreeNode["parentField"];
|
|
|
73
88
|
* The {@link Unhydrated} implementation of {@link FlexTreeNode}.
|
|
74
89
|
*/
|
|
75
90
|
export class UnhydratedFlexTreeNode
|
|
76
|
-
implements FlexTreeNode, MapTreeNodeViewGeneric<
|
|
91
|
+
implements FlexTreeNode, MapTreeNodeViewGeneric<FlexTreeNode>
|
|
77
92
|
{
|
|
78
93
|
public isHydrated(): this is HydratedFlexTreeNode {
|
|
79
94
|
return false;
|
|
@@ -226,7 +241,7 @@ export class UnhydratedFlexTreeNode
|
|
|
226
241
|
}
|
|
227
242
|
|
|
228
243
|
public borrowCursor(): ITreeCursorSynchronous {
|
|
229
|
-
return cursorForMapTreeNode<MapTreeNodeViewGeneric<
|
|
244
|
+
return cursorForMapTreeNode<MapTreeNodeViewGeneric<FlexTreeNode>>(this);
|
|
230
245
|
}
|
|
231
246
|
|
|
232
247
|
public tryGetField(key: FieldKey): UnhydratedFlexTreeField | undefined {
|
|
@@ -300,6 +315,11 @@ export class UnhydratedContext implements FlexTreeContext {
|
|
|
300
315
|
public isHydrated(): this is FlexTreeHydratedContext {
|
|
301
316
|
return false;
|
|
302
317
|
}
|
|
318
|
+
|
|
319
|
+
public runInTransaction(fn: () => void): void {
|
|
320
|
+
debugAssert(() => !this.isDisposed() || "Disposed");
|
|
321
|
+
fn();
|
|
322
|
+
}
|
|
303
323
|
}
|
|
304
324
|
|
|
305
325
|
// #region Fields
|
|
@@ -327,7 +347,7 @@ const unparentedLocation: LocationInField = {
|
|
|
327
347
|
* The {@link Unhydrated} implementation of {@link FlexTreeField}.
|
|
328
348
|
*/
|
|
329
349
|
export class UnhydratedFlexTreeField
|
|
330
|
-
implements FlexTreeField, MapTreeFieldViewGeneric<
|
|
350
|
+
implements FlexTreeField, MapTreeFieldViewGeneric<FlexTreeNode>
|
|
331
351
|
{
|
|
332
352
|
public [flexTreeMarker] = FlexTreeEntityKind.Field as const;
|
|
333
353
|
|
|
@@ -344,21 +364,23 @@ export class UnhydratedFlexTreeField
|
|
|
344
364
|
* See {@link fillPendingDefaults}.
|
|
345
365
|
* Note that any fields using a {@link ConstantFieldProvider} should be evaluated before constructing the UnhydratedFlexTreeField.
|
|
346
366
|
*/
|
|
347
|
-
private lazyChildren:
|
|
367
|
+
private lazyChildren: FlexTreeNode[] | ContextualFieldProvider,
|
|
348
368
|
) {
|
|
349
369
|
// When this field is created (which only happens one time, because it is cached), all the children become parented for the first time.
|
|
350
370
|
// "Adopt" each child by updating its parent information to point to this field.
|
|
351
371
|
if (Array.isArray(lazyChildren)) {
|
|
352
372
|
for (const [i, child] of lazyChildren.entries()) {
|
|
353
|
-
child
|
|
373
|
+
if (child instanceof UnhydratedFlexTreeNode) {
|
|
374
|
+
child.adoptBy(this, i);
|
|
375
|
+
} else {
|
|
376
|
+
// TODO: hook up events from hydrated to unhydrated nodes.
|
|
377
|
+
}
|
|
354
378
|
}
|
|
355
379
|
}
|
|
356
380
|
}
|
|
357
381
|
|
|
358
382
|
public borrowCursor(): ITreeCursorSynchronous {
|
|
359
|
-
return cursorForMapTreeField<MapTreeNodeViewGeneric<
|
|
360
|
-
this.children,
|
|
361
|
-
);
|
|
383
|
+
return cursorForMapTreeField<MapTreeNodeViewGeneric<FlexTreeNode>>(this.children);
|
|
362
384
|
}
|
|
363
385
|
|
|
364
386
|
private getPendingDefault(): ContextualFieldProvider | undefined {
|
|
@@ -386,13 +408,13 @@ export class UnhydratedFlexTreeField
|
|
|
386
408
|
return this.getPendingDefault() !== undefined;
|
|
387
409
|
}
|
|
388
410
|
|
|
389
|
-
public get children():
|
|
411
|
+
public get children(): FlexTreeNode[] {
|
|
390
412
|
const provider = this.getPendingDefault();
|
|
391
413
|
if (provider) {
|
|
392
414
|
const content = provider("UseGlobalContext");
|
|
393
415
|
this.lazyChildren = content;
|
|
394
416
|
}
|
|
395
|
-
return this.lazyChildren as
|
|
417
|
+
return this.lazyChildren as FlexTreeNode[];
|
|
396
418
|
}
|
|
397
419
|
|
|
398
420
|
public get length(): number {
|
|
@@ -412,7 +434,7 @@ export class UnhydratedFlexTreeField
|
|
|
412
434
|
return m;
|
|
413
435
|
}
|
|
414
436
|
|
|
415
|
-
public [Symbol.iterator](): IterableIterator<
|
|
437
|
+
public [Symbol.iterator](): IterableIterator<FlexTreeNode> {
|
|
416
438
|
return this.children[Symbol.iterator]();
|
|
417
439
|
}
|
|
418
440
|
|
|
@@ -424,19 +446,17 @@ export class UnhydratedFlexTreeField
|
|
|
424
446
|
* @remarks All edits to the field (i.e. mutations of the field's MapTrees) should be directed through this function.
|
|
425
447
|
* This function ensures that the parent MapTree has no empty fields (which is an invariant of `MapTree`) after the mutation.
|
|
426
448
|
*/
|
|
427
|
-
protected edit(
|
|
428
|
-
edit: (mapTrees: UnhydratedFlexTreeNode[]) => void | UnhydratedFlexTreeNode[],
|
|
429
|
-
): void {
|
|
449
|
+
protected edit(edit: (mapTrees: FlexTreeNode[]) => void | FlexTreeNode[]): void {
|
|
430
450
|
// Clear parents for all old map trees.
|
|
431
451
|
for (const tree of this.children) {
|
|
432
|
-
tree
|
|
452
|
+
orphan(tree);
|
|
433
453
|
}
|
|
434
454
|
|
|
435
455
|
this.lazyChildren = edit(this.children) ?? this.children;
|
|
436
456
|
|
|
437
457
|
// Set parents for all new map trees.
|
|
438
458
|
for (const [index, tree] of this.children.entries()) {
|
|
439
|
-
|
|
459
|
+
adoptNode(this, tree, index);
|
|
440
460
|
}
|
|
441
461
|
|
|
442
462
|
this.parent?.emitChangedEvent(this.key);
|
|
@@ -447,7 +467,7 @@ export class UnhydratedFlexTreeField
|
|
|
447
467
|
}
|
|
448
468
|
|
|
449
469
|
/** Unboxes leaf nodes to their values */
|
|
450
|
-
protected unboxed(index: number): TreeValue |
|
|
470
|
+
protected unboxed(index: number): TreeValue | FlexTreeNode {
|
|
451
471
|
const child = this.children[index] ?? oob();
|
|
452
472
|
const value = child.value;
|
|
453
473
|
if (value !== undefined) {
|
|
@@ -457,6 +477,22 @@ export class UnhydratedFlexTreeField
|
|
|
457
477
|
}
|
|
458
478
|
}
|
|
459
479
|
|
|
480
|
+
function adoptNode(parent: UnhydratedFlexTreeField, node: FlexTreeNode, index: number): void {
|
|
481
|
+
if (node instanceof UnhydratedFlexTreeNode) {
|
|
482
|
+
node.adoptBy(parent, index);
|
|
483
|
+
} else {
|
|
484
|
+
// TODO: handle parenting for hydrated nodes.
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
function orphan(node: FlexTreeNode): void {
|
|
489
|
+
if (node instanceof UnhydratedFlexTreeNode) {
|
|
490
|
+
node.adoptBy(undefined);
|
|
491
|
+
} else {
|
|
492
|
+
// TODO: handle unparenting for hydrated nodes.
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
460
496
|
/**
|
|
461
497
|
* The {@link Unhydrated} implementation of {@link FlexTreeOptionalField}.
|
|
462
498
|
*/
|
|
@@ -464,8 +500,9 @@ export class UnhydratedOptionalField
|
|
|
464
500
|
extends UnhydratedFlexTreeField
|
|
465
501
|
implements FlexTreeOptionalField
|
|
466
502
|
{
|
|
467
|
-
public readonly editor = {
|
|
503
|
+
public readonly editor: OptionalFieldEditor<FlexibleNodeContent, FlexTreeNode> = {
|
|
468
504
|
set: (newContent: FlexibleNodeContent | undefined): void => {
|
|
505
|
+
// If the new content is a UnhydratedFlexTreeNode, it needs to have its parent pointer updated
|
|
469
506
|
if (newContent !== undefined) {
|
|
470
507
|
assert(
|
|
471
508
|
newContent instanceof UnhydratedFlexTreeNode,
|
|
@@ -481,8 +518,13 @@ export class UnhydratedOptionalField
|
|
|
481
518
|
}
|
|
482
519
|
});
|
|
483
520
|
},
|
|
484
|
-
|
|
485
|
-
|
|
521
|
+
clear: (): void => {
|
|
522
|
+
this.editor.set(undefined, true /* <- dummy wasEmpty argument */);
|
|
523
|
+
},
|
|
524
|
+
attach: (content): void => {
|
|
525
|
+
this.editor.set(content, true /* <- dummy wasEmpty argument */);
|
|
526
|
+
},
|
|
527
|
+
};
|
|
486
528
|
|
|
487
529
|
public get content(): FlexTreeUnknownUnboxed | undefined {
|
|
488
530
|
const value = this.children[0];
|
|
@@ -494,17 +536,34 @@ export class UnhydratedOptionalField
|
|
|
494
536
|
}
|
|
495
537
|
}
|
|
496
538
|
|
|
497
|
-
class UnhydratedRequiredField
|
|
498
|
-
extends
|
|
539
|
+
export class UnhydratedRequiredField
|
|
540
|
+
extends UnhydratedFlexTreeField
|
|
499
541
|
implements FlexTreeRequiredField
|
|
500
542
|
{
|
|
501
|
-
public
|
|
543
|
+
public readonly editor: RequiredFieldEditor<FlexibleNodeContent, FlexTreeNode> = {
|
|
544
|
+
set: (newContent: FlexibleNodeContent): void => {
|
|
545
|
+
assert(
|
|
546
|
+
newContent instanceof UnhydratedFlexTreeNode,
|
|
547
|
+
0xbb7 /* Expected unhydrated node */,
|
|
548
|
+
);
|
|
549
|
+
|
|
550
|
+
this.edit((mapTrees) => {
|
|
551
|
+
mapTrees[0] = newContent;
|
|
552
|
+
});
|
|
553
|
+
},
|
|
554
|
+
attach: (content): void => {
|
|
555
|
+
this.editor.set(content);
|
|
556
|
+
},
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
public get content(): FlexTreeUnknownUnboxed {
|
|
560
|
+
const value = this.children[0];
|
|
502
561
|
// This cannot use ?? since null is a legal value here.
|
|
503
562
|
assert(
|
|
504
|
-
|
|
563
|
+
value !== undefined,
|
|
505
564
|
0xa57 /* Expected EagerMapTree required field to have a value */,
|
|
506
565
|
);
|
|
507
|
-
return
|
|
566
|
+
return this.unboxed(0);
|
|
508
567
|
}
|
|
509
568
|
}
|
|
510
569
|
|
|
@@ -519,9 +578,9 @@ export class UnhydratedSequenceField
|
|
|
519
578
|
insert: (index, newContent): void => {
|
|
520
579
|
for (const c of newContent) {
|
|
521
580
|
assert(c !== undefined, 0xa0a /* Unexpected sparse array content */);
|
|
522
|
-
|
|
581
|
+
// TODO: ensure somewhere checks for not already having parents
|
|
523
582
|
}
|
|
524
|
-
const newContentChecked
|
|
583
|
+
const newContentChecked: readonly FlexTreeNode[] = newContent;
|
|
525
584
|
this.edit((mapTrees) => {
|
|
526
585
|
if (newContent.length < 1000) {
|
|
527
586
|
// For "smallish arrays" (`1000` is not empirically derived), the `splice` function is appropriate...
|
|
@@ -532,17 +591,47 @@ export class UnhydratedSequenceField
|
|
|
532
591
|
}
|
|
533
592
|
});
|
|
534
593
|
},
|
|
535
|
-
remove: (index, count):
|
|
594
|
+
remove: (index, count): FlexTreeNode[] => {
|
|
536
595
|
for (let i = index; i < index + count; i++) {
|
|
537
596
|
const c = this.children[i];
|
|
538
597
|
assert(c !== undefined, 0xa0b /* Unexpected sparse array */);
|
|
539
598
|
}
|
|
540
|
-
let removed:
|
|
599
|
+
let removed: FlexTreeNode[] | undefined;
|
|
541
600
|
this.edit((mapTrees) => {
|
|
542
601
|
removed = mapTrees.splice(index, count);
|
|
543
602
|
});
|
|
544
603
|
return removed ?? fail(0xb4a /* Expected removed to be set by edit */);
|
|
545
604
|
},
|
|
605
|
+
attach: (index, content: readonly FlexTreeNode[]): void => {
|
|
606
|
+
this.editor.insert(index, content);
|
|
607
|
+
},
|
|
608
|
+
move: (sourceIndex, count, destIndex, source?): void => {
|
|
609
|
+
const sourceField = source ?? this;
|
|
610
|
+
if (sourceField === this) {
|
|
611
|
+
// Within-field move: do both operations in a single edit to emit only one event
|
|
612
|
+
this.edit((mapTrees) => {
|
|
613
|
+
const removed = mapTrees.splice(sourceIndex, count);
|
|
614
|
+
// Adjust destination index if it comes after the source
|
|
615
|
+
const adjustedDest = destIndex > sourceIndex ? destIndex - count : destIndex;
|
|
616
|
+
if (removed.length < 1000) {
|
|
617
|
+
// For "smallish arrays" (`1000` is not empirically derived), the `splice` function is appropriate...
|
|
618
|
+
mapTrees.splice(adjustedDest, 0, ...removed);
|
|
619
|
+
} else {
|
|
620
|
+
// ...but we avoid using `splice` + spread for very large arrays since there is a limit on how many elements can be spread (too many will overflow the stack).
|
|
621
|
+
return [
|
|
622
|
+
...mapTrees.slice(0, adjustedDest),
|
|
623
|
+
...removed,
|
|
624
|
+
...mapTrees.slice(adjustedDest),
|
|
625
|
+
];
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
} else {
|
|
629
|
+
// Cross-field move: remove from source, insert into destination
|
|
630
|
+
// Each field emits one event (correct behavior for different fields)
|
|
631
|
+
const removed = sourceField.editor.remove(sourceIndex, count);
|
|
632
|
+
this.editor.insert(destIndex, removed);
|
|
633
|
+
}
|
|
634
|
+
},
|
|
546
635
|
} satisfies UnhydratedTreeSequenceFieldEditBuilder;
|
|
547
636
|
|
|
548
637
|
public at(index: number): FlexTreeUnknownUnboxed | undefined {
|
|
@@ -8,7 +8,10 @@ import { Lazy } from "@fluidframework/core-utils/internal";
|
|
|
8
8
|
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
9
9
|
|
|
10
10
|
import type { FieldKey } from "../core/index.js";
|
|
11
|
-
import type {
|
|
11
|
+
import type {
|
|
12
|
+
FlexTreeHydratedContextMinimal,
|
|
13
|
+
FlexTreeNode,
|
|
14
|
+
} from "../feature-libraries/index.js";
|
|
12
15
|
import {
|
|
13
16
|
type MakeNominal,
|
|
14
17
|
brand,
|
|
@@ -22,7 +25,6 @@ import {
|
|
|
22
25
|
import type {
|
|
23
26
|
TreeNodeSchema,
|
|
24
27
|
TreeNode,
|
|
25
|
-
UnhydratedFlexTreeNode,
|
|
26
28
|
ImplicitAllowedTypes,
|
|
27
29
|
TreeNodeFromImplicitAllowedTypes,
|
|
28
30
|
TreeLeafValue,
|
|
@@ -189,11 +191,11 @@ export interface FieldPropsAlpha<TCustomMetadata = unknown>
|
|
|
189
191
|
*/
|
|
190
192
|
export type ContextualFieldProvider = (
|
|
191
193
|
context: FlexTreeHydratedContextMinimal | "UseGlobalContext",
|
|
192
|
-
) =>
|
|
194
|
+
) => FlexTreeNode[];
|
|
193
195
|
/**
|
|
194
196
|
* A {@link FieldProvider} which can produce its content in a vacuum.
|
|
195
197
|
*/
|
|
196
|
-
export type ConstantFieldProvider = () =>
|
|
198
|
+
export type ConstantFieldProvider = () => FlexTreeNode[];
|
|
197
199
|
/**
|
|
198
200
|
* A function which produces content for a field every time that it is called.
|
|
199
201
|
*/
|
package/src/simple-tree/index.ts
CHANGED
|
@@ -197,9 +197,9 @@ export {
|
|
|
197
197
|
checkCompatibility,
|
|
198
198
|
eraseSchemaDetails,
|
|
199
199
|
eraseSchemaDetailsSubclassable,
|
|
200
|
-
|
|
200
|
+
snapshotSchemaCompatibility,
|
|
201
201
|
type SnapshotFileSystem,
|
|
202
|
-
type
|
|
202
|
+
type SnapshotSchemaCompatibilityOptions,
|
|
203
203
|
createCustomizedFluidFrameworkScopedFactory,
|
|
204
204
|
} from "./api/index.js";
|
|
205
205
|
export type {
|
|
@@ -271,7 +271,7 @@ export {
|
|
|
271
271
|
createArrayInsertionAnchor,
|
|
272
272
|
} from "./node-kinds/index.js";
|
|
273
273
|
export {
|
|
274
|
-
unhydratedFlexTreeFromInsertable,
|
|
274
|
+
flexTreeFromInsertable as unhydratedFlexTreeFromInsertable,
|
|
275
275
|
type InsertableContent,
|
|
276
276
|
type FactoryContent,
|
|
277
277
|
type FactoryContentObject,
|
|
@@ -279,6 +279,7 @@ export {
|
|
|
279
279
|
export {
|
|
280
280
|
prepareForInsertion,
|
|
281
281
|
prepareForInsertionContextless,
|
|
282
|
+
type PreparedContent,
|
|
282
283
|
} from "./prepareForInsertion.js";
|
|
283
284
|
export {
|
|
284
285
|
toStoredSchema,
|
|
@@ -52,7 +52,6 @@ import {
|
|
|
52
52
|
createTreeNodeSchemaPrivateData,
|
|
53
53
|
type FlexContent,
|
|
54
54
|
type TreeNodeSchemaPrivateData,
|
|
55
|
-
withBufferedTreeEvents,
|
|
56
55
|
AnnotatedAllowedTypesInternal,
|
|
57
56
|
} from "../../core/index.js";
|
|
58
57
|
import {
|
|
@@ -64,9 +63,9 @@ import { prepareArrayContentForInsertion } from "../../prepareForInsertion.js";
|
|
|
64
63
|
import type { SchemaType, SimpleAllowedTypeAttributes } from "../../simpleSchema.js";
|
|
65
64
|
import {
|
|
66
65
|
type FactoryContent,
|
|
66
|
+
flexTreeFromInsertableNode,
|
|
67
67
|
type InsertableContent,
|
|
68
68
|
unhydratedFlexTreeFromInsertable,
|
|
69
|
-
unhydratedFlexTreeFromInsertableNode,
|
|
70
69
|
} from "../../unhydratedFlexTreeFromInsertable.js";
|
|
71
70
|
|
|
72
71
|
import type {
|
|
@@ -970,8 +969,10 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
970
969
|
public insertAt(index: number, ...value: Insertable<T>): void {
|
|
971
970
|
const field = getSequenceField(this);
|
|
972
971
|
validateIndex(index, field, "TreeArrayNode.insertAt", true);
|
|
973
|
-
|
|
974
|
-
|
|
972
|
+
field.context.runInTransaction(() => {
|
|
973
|
+
const content = this.#mapTreesFromFieldData(value);
|
|
974
|
+
field.editor.attach(index, content);
|
|
975
|
+
});
|
|
975
976
|
}
|
|
976
977
|
public insertAtStart(...value: Insertable<T>): void {
|
|
977
978
|
this.insertAt(0, ...value);
|
|
@@ -1121,24 +1122,19 @@ abstract class CustomArrayNodeBase<const T extends ImplicitAllowedTypes>
|
|
|
1121
1122
|
);
|
|
1122
1123
|
}
|
|
1123
1124
|
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
destinationGap - movedCount,
|
|
1138
|
-
sourceField.editor.remove(sourceStart, movedCount),
|
|
1139
|
-
);
|
|
1140
|
-
}
|
|
1141
|
-
});
|
|
1125
|
+
assert(
|
|
1126
|
+
destinationField instanceof UnhydratedSequenceField,
|
|
1127
|
+
0xcd5 /* destinationField should be unhydrated since we're in the else branch of isHydrated() check */,
|
|
1128
|
+
);
|
|
1129
|
+
|
|
1130
|
+
// Use native move which handles the operation atomically for within-field moves
|
|
1131
|
+
// to ensure only a single event is emitted per affected field.
|
|
1132
|
+
destinationField.editor.move(
|
|
1133
|
+
sourceStart,
|
|
1134
|
+
movedCount,
|
|
1135
|
+
destinationGap,
|
|
1136
|
+
sourceField === destinationField ? undefined : sourceField,
|
|
1137
|
+
);
|
|
1142
1138
|
}
|
|
1143
1139
|
}
|
|
1144
1140
|
|
|
@@ -1325,7 +1321,7 @@ export function arraySchema<
|
|
|
1325
1321
|
function arrayChildToFlexTree(
|
|
1326
1322
|
child: InsertableContent,
|
|
1327
1323
|
allowedTypes: ReadonlySet<TreeNodeSchema>,
|
|
1328
|
-
):
|
|
1324
|
+
): FlexTreeNode {
|
|
1329
1325
|
// We do not support undefined sequence entries.
|
|
1330
1326
|
// If we encounter an undefined entry, use null instead if supported by the schema, otherwise throw.
|
|
1331
1327
|
let childWithFallback = child;
|
|
@@ -1336,7 +1332,7 @@ function arrayChildToFlexTree(
|
|
|
1336
1332
|
throw new TypeError(`Received unsupported array entry value: ${child}.`);
|
|
1337
1333
|
}
|
|
1338
1334
|
}
|
|
1339
|
-
return
|
|
1335
|
+
return flexTreeFromInsertableNode(childWithFallback, allowedTypes);
|
|
1340
1336
|
}
|
|
1341
1337
|
|
|
1342
1338
|
/**
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "../core/index.js";
|
|
17
17
|
import { getUnhydratedContext } from "../createContext.js";
|
|
18
18
|
import {
|
|
19
|
-
|
|
19
|
+
flexTreeFromInsertableNode,
|
|
20
20
|
type InsertableContent,
|
|
21
21
|
} from "../unhydratedFlexTreeFromInsertable.js";
|
|
22
22
|
|
|
@@ -44,10 +44,7 @@ export function recordLikeDataToFlexContent(
|
|
|
44
44
|
|
|
45
45
|
// Omit undefined values - an entry with an undefined value is equivalent to one that has been removed or omitted
|
|
46
46
|
if (value !== undefined) {
|
|
47
|
-
const child =
|
|
48
|
-
value,
|
|
49
|
-
allowedChildTypes.evaluateSet(),
|
|
50
|
-
);
|
|
47
|
+
const child = flexTreeFromInsertableNode(value, allowedChildTypes.evaluateSet());
|
|
51
48
|
const field = createField(context, FieldKinds.optional.identifier, brand(key), [child]);
|
|
52
49
|
transformedFields.set(brand(key), field);
|
|
53
50
|
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type FlexibleNodeContent,
|
|
13
13
|
type FlexTreeNode,
|
|
14
14
|
type FlexTreeOptionalField,
|
|
15
|
-
type
|
|
15
|
+
type OptionalFieldEditor,
|
|
16
16
|
} from "../../../feature-libraries/index.js";
|
|
17
17
|
import {
|
|
18
18
|
brand,
|
|
@@ -178,14 +178,14 @@ abstract class CustomMapNodeBase<const T extends ImplicitAllowedTypes> extends T
|
|
|
178
178
|
return getInnerNode(this);
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
private editor(key: string):
|
|
181
|
+
private editor(key: string): OptionalFieldEditor<FlexibleNodeContent, FlexTreeNode> {
|
|
182
182
|
const field = this.innerNode.getBoxed(brand(key)) as FlexTreeOptionalField;
|
|
183
183
|
return field.editor;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
public delete(key: string): void {
|
|
187
187
|
const field = this.innerNode.getBoxed(brand(key));
|
|
188
|
-
this.editor(key).
|
|
188
|
+
this.editor(key).clear(field.length === 0);
|
|
189
189
|
}
|
|
190
190
|
public *entries(): IterableIterator<[string, TreeNodeFromImplicitAllowedTypes<T>]> {
|
|
191
191
|
const node = this.innerNode;
|
|
@@ -228,7 +228,7 @@ abstract class CustomMapNodeBase<const T extends ImplicitAllowedTypes> extends T
|
|
|
228
228
|
|
|
229
229
|
const field = node.getBoxed(brand(key));
|
|
230
230
|
|
|
231
|
-
this.editor(key).
|
|
231
|
+
this.editor(key).attach(mapTree, field.length === 0);
|
|
232
232
|
return this;
|
|
233
233
|
}
|
|
234
234
|
public get size(): number {
|
|
@@ -77,7 +77,7 @@ import type { SimpleObjectFieldSchema } from "../../simpleSchema.js";
|
|
|
77
77
|
import { convertFieldKind } from "../../toStoredSchema.js";
|
|
78
78
|
import {
|
|
79
79
|
unhydratedFlexTreeFromInsertable,
|
|
80
|
-
|
|
80
|
+
flexTreeFromInsertableNode,
|
|
81
81
|
type FactoryContent,
|
|
82
82
|
type FactoryContentObject,
|
|
83
83
|
type InsertableContent,
|
|
@@ -354,30 +354,32 @@ export function setField(
|
|
|
354
354
|
value: InsertableContent | undefined,
|
|
355
355
|
destinationSchema: TreeFieldStoredSchema,
|
|
356
356
|
): void {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
357
|
+
field.context.runInTransaction(() => {
|
|
358
|
+
const mapTree = prepareForInsertion(
|
|
359
|
+
value,
|
|
360
|
+
simpleFieldSchema,
|
|
361
|
+
field.context,
|
|
362
|
+
destinationSchema,
|
|
363
|
+
);
|
|
363
364
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
365
|
+
switch (field.schema) {
|
|
366
|
+
case FieldKinds.required.identifier: {
|
|
367
|
+
assert(mapTree !== undefined, 0xa04 /* Cannot set a required field to undefined */);
|
|
368
|
+
const typedField = field as FlexTreeRequiredField;
|
|
369
|
+
typedField.editor.attach(mapTree);
|
|
370
|
+
break;
|
|
371
|
+
}
|
|
372
|
+
case FieldKinds.optional.identifier: {
|
|
373
|
+
const typedField = field as FlexTreeOptionalField;
|
|
374
|
+
typedField.editor.attach(mapTree, typedField.length === 0);
|
|
375
|
+
break;
|
|
376
|
+
}
|
|
376
377
|
|
|
377
|
-
|
|
378
|
-
|
|
378
|
+
default: {
|
|
379
|
+
fail(0xade /* invalid FieldKind */);
|
|
380
|
+
}
|
|
379
381
|
}
|
|
380
|
-
}
|
|
382
|
+
});
|
|
381
383
|
}
|
|
382
384
|
|
|
383
385
|
/**
|
|
@@ -663,7 +665,7 @@ function objectToFlexContent(
|
|
|
663
665
|
for (const [key, fieldInfo] of schema.flexKeyMap) {
|
|
664
666
|
const value = getFieldProperty(data, key);
|
|
665
667
|
|
|
666
|
-
let children:
|
|
668
|
+
let children: FlexTreeNode[] | ContextualFieldProvider;
|
|
667
669
|
if (value === undefined) {
|
|
668
670
|
const defaultProvider =
|
|
669
671
|
fieldInfo.schema.props?.defaultProvider ??
|
|
@@ -671,9 +673,7 @@ function objectToFlexContent(
|
|
|
671
673
|
const fieldProvider = extractFieldProvider(defaultProvider);
|
|
672
674
|
children = isConstant(fieldProvider) ? fieldProvider() : fieldProvider;
|
|
673
675
|
} else {
|
|
674
|
-
children = [
|
|
675
|
-
unhydratedFlexTreeFromInsertableNode(value, fieldInfo.schema.allowedTypeSet),
|
|
676
|
-
];
|
|
676
|
+
children = [flexTreeFromInsertableNode(value, fieldInfo.schema.allowedTypeSet)];
|
|
677
677
|
}
|
|
678
678
|
|
|
679
679
|
const kind =
|
|
@@ -127,15 +127,16 @@ function createRecordNodeProxy(
|
|
|
127
127
|
innerSchema instanceof MapNodeStoredSchema,
|
|
128
128
|
0xc1a /* Expected MapNodeStoredSchema */,
|
|
129
129
|
);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
130
|
+
field.context.runInTransaction(() => {
|
|
131
|
+
const mapTree = prepareForInsertion(
|
|
132
|
+
value,
|
|
133
|
+
createFieldSchema(FieldKind.Optional, kernel.schema.info as ImplicitAllowedTypes),
|
|
134
|
+
innerNode.context,
|
|
135
|
+
innerSchema.mapFields,
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
field.editor.attach(mapTree, field.length === 0);
|
|
139
|
+
});
|
|
139
140
|
return true;
|
|
140
141
|
},
|
|
141
142
|
has: (target, key): boolean => {
|