@fluidframework/tree 2.4.0-294316 → 2.4.0-297385
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api-report/tree.alpha.api.md +58 -28
- package/api-report/tree.beta.api.md +38 -27
- package/api-report/tree.legacy.alpha.api.md +38 -27
- package/api-report/tree.legacy.public.api.md +38 -27
- package/api-report/tree.public.api.md +38 -27
- package/dist/alpha.d.ts +6 -0
- package/dist/beta.d.ts +3 -0
- package/dist/core/change-family/changeFamily.d.ts +2 -2
- 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/editBuilder.d.ts +3 -2
- package/dist/core/change-family/editBuilder.d.ts.map +1 -1
- package/dist/core/change-family/editBuilder.js.map +1 -1
- package/dist/core/rebase/changeRebaser.d.ts +2 -1
- package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
- package/dist/core/rebase/changeRebaser.js.map +1 -1
- package/dist/core/rebase/utils.js +1 -1
- package/dist/core/rebase/utils.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +7 -0
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +9 -0
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +1 -2
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +2 -2
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +13 -2
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
- package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
- package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
- package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +1 -539
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +7 -14
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +3 -3
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- 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/lazyEntity.d.ts +2 -3
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +18 -20
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +4 -7
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -31
- 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 +4 -4
- package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- 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/modularChangeFamily.d.ts +12 -8
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +179 -60
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.d.ts +10 -9
- package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/dist/feature-libraries/optional-field/optionalField.js +9 -7
- package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -8
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +32 -20
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/dist/feature-libraries/sequence-field/invert.d.ts +6 -1
- package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/invert.js +25 -9
- package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
- package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.js +1 -13
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +2 -4
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js +1 -19
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +0 -266
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +1 -1
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/legacy.d.ts +3 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +3 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +3 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -3
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +1 -40
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +2 -11
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +8 -7
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +16 -8
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +19 -2
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +11 -3
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeChangeFamily.js +4 -4
- package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
- package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/dist/shared-tree/sharedTreeEditBuilder.js +15 -11
- package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +71 -41
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +119 -86
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +9 -13
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +21 -25
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
- package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/dist/shared-tree-core/defaultResubmitMachine.js +4 -4
- package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/dist/shared-tree-core/editManager.d.ts.map +1 -1
- package/dist/shared-tree-core/editManager.js +1 -1
- package/dist/shared-tree-core/editManager.js.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/dist/shared-tree-core/sharedTreeCore.js +2 -2
- package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +1 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +11 -13
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.js +1 -1
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +6 -6
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +15 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/simpleSchema.d.ts +14 -10
- package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +12 -6
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +4 -4
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +8 -6
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +6 -10
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/{lib/feature-libraries/typed-schema → dist/simple-tree/api}/view.d.ts +4 -11
- package/dist/simple-tree/api/view.d.ts.map +1 -0
- package/dist/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/dist/simple-tree/api/view.js.map +1 -0
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +7 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +147 -14
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +32 -20
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts +55 -0
- package/dist/simple-tree/core/context.d.ts.map +1 -0
- package/dist/simple-tree/core/context.js +60 -0
- package/dist/simple-tree/core/context.js.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.js +36 -0
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/dist/simple-tree/core/index.d.ts +7 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +16 -7
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/schemaCaching.d.ts +5 -13
- package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/dist/simple-tree/core/schemaCaching.js +16 -45
- package/dist/simple-tree/core/schemaCaching.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +94 -58
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/types.d.ts +0 -5
- package/dist/simple-tree/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +139 -0
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/dist/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +112 -132
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/dist/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/dist/simple-tree/core/walkSchema.js +34 -0
- package/dist/simple-tree/core/walkSchema.js.map +1 -0
- package/dist/simple-tree/createContext.d.ts +11 -0
- package/dist/simple-tree/createContext.d.ts.map +1 -0
- package/dist/simple-tree/createContext.js +25 -0
- package/dist/simple-tree/createContext.js.map +1 -0
- package/dist/simple-tree/index.d.ts +3 -4
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +7 -7
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +1 -0
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +1 -2
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +4 -4
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +9 -5
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +8 -8
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +33 -14
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +7 -3
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +1 -2
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +6 -22
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +2 -2
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +6 -36
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +58 -142
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +2 -2
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts +13 -5
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +19 -10
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +4 -4
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/walkFieldSchema.d.ts +11 -0
- package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/dist/simple-tree/walkFieldSchema.js +17 -0
- package/dist/simple-tree/walkFieldSchema.js.map +1 -0
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeUtils.d.ts +14 -45
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/lib/alpha.d.ts +6 -0
- package/lib/beta.d.ts +3 -0
- package/lib/core/change-family/changeFamily.d.ts +2 -2
- 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/editBuilder.d.ts +3 -2
- package/lib/core/change-family/editBuilder.d.ts.map +1 -1
- package/lib/core/change-family/editBuilder.js.map +1 -1
- package/lib/core/rebase/changeRebaser.d.ts +2 -1
- package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
- package/lib/core/rebase/changeRebaser.js.map +1 -1
- package/lib/core/rebase/utils.js +1 -1
- package/lib/core/rebase/utils.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +7 -0
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +9 -0
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +1 -2
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +2 -2
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +13 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
- package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
- package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
- package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
- package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +1 -532
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +7 -14
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +3 -3
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- 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/lazyEntity.d.ts +2 -3
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +18 -20
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +4 -7
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +4 -6
- 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 +4 -4
- package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
- package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
- 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/modularChangeFamily.d.ts +12 -8
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +180 -61
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.d.ts +10 -9
- package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
- package/lib/feature-libraries/optional-field/optionalField.js +9 -7
- package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -8
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +32 -20
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/lib/feature-libraries/sequence-field/invert.d.ts +6 -1
- package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/invert.js +25 -9
- package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
- package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.js +0 -11
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +2 -4
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js +0 -3
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +1 -253
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +1 -1
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/legacy.d.ts +3 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +3 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +3 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -2
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +1 -40
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +1 -9
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +8 -7
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +19 -11
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +19 -2
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +11 -4
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
- package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeChangeFamily.js +4 -4
- package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
- package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
- package/lib/shared-tree/sharedTreeEditBuilder.js +15 -11
- package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +71 -41
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +122 -89
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +9 -13
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +22 -26
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
- package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
- package/lib/shared-tree-core/defaultResubmitMachine.js +4 -4
- package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
- package/lib/shared-tree-core/editManager.d.ts.map +1 -1
- package/lib/shared-tree-core/editManager.js +2 -2
- package/lib/shared-tree-core/editManager.js.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
- package/lib/shared-tree-core/sharedTreeCore.js +2 -2
- package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +1 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +14 -16
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.js +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +6 -6
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +15 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/simpleSchema.d.ts +14 -10
- package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +12 -6
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +4 -4
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +10 -8
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +6 -10
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/{dist/feature-libraries/typed-schema → lib/simple-tree/api}/view.d.ts +4 -11
- package/lib/simple-tree/api/view.d.ts.map +1 -0
- package/lib/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/lib/simple-tree/api/view.js.map +1 -0
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +7 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +147 -14
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +37 -25
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts +55 -0
- package/lib/simple-tree/core/context.d.ts.map +1 -0
- package/lib/simple-tree/core/context.js +55 -0
- package/lib/simple-tree/core/context.js.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.js +32 -0
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/lib/simple-tree/core/index.d.ts +7 -3
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +6 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/schemaCaching.d.ts +5 -13
- package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/lib/simple-tree/core/schemaCaching.js +13 -39
- package/lib/simple-tree/core/schemaCaching.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +89 -54
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/core/types.d.ts +0 -5
- package/lib/simple-tree/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +139 -0
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/lib/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +110 -128
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/lib/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/lib/simple-tree/core/walkSchema.js +29 -0
- package/lib/simple-tree/core/walkSchema.js.map +1 -0
- package/lib/simple-tree/createContext.d.ts +11 -0
- package/lib/simple-tree/createContext.d.ts.map +1 -0
- package/lib/simple-tree/createContext.js +21 -0
- package/lib/simple-tree/createContext.js.map +1 -0
- package/lib/simple-tree/index.d.ts +3 -4
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +3 -4
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +1 -0
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +3 -4
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +4 -4
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +12 -8
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +8 -8
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +36 -17
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +7 -3
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +1 -2
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +7 -22
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +2 -2
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +6 -36
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +61 -142
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +4 -4
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts +13 -5
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +21 -12
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +4 -4
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/walkFieldSchema.d.ts +11 -0
- package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/lib/simple-tree/walkFieldSchema.js +13 -0
- package/lib/simple-tree/walkFieldSchema.js.map +1 -0
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/typeUtils.d.ts +14 -45
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +32 -23
- package/src/core/change-family/changeFamily.ts +5 -2
- package/src/core/change-family/editBuilder.ts +3 -2
- package/src/core/rebase/changeRebaser.ts +6 -1
- package/src/core/rebase/utils.ts +1 -1
- package/src/core/schema-stored/schema.ts +17 -0
- package/src/core/tree/anchorSet.ts +3 -4
- package/src/core/tree/detachedFieldIndex.ts +14 -3
- package/src/core/tree/detachedFieldIndexTypes.ts +1 -1
- package/src/feature-libraries/default-schema/defaultEditBuilder.ts +92 -47
- package/src/feature-libraries/default-schema/defaultFieldKinds.ts +7 -7
- package/src/feature-libraries/editableTreeBinder.ts +2 -915
- package/src/feature-libraries/flex-tree/context.ts +7 -20
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +2 -18
- package/src/feature-libraries/flex-tree/lazyEntity.ts +1 -4
- package/src/feature-libraries/flex-tree/lazyField.ts +22 -78
- package/src/feature-libraries/flex-tree/lazyNode.ts +24 -39
- package/src/feature-libraries/flex-tree/utilities.ts +1 -1
- package/src/feature-libraries/index.ts +3 -71
- package/src/feature-libraries/mitigatedChangeFamily.ts +11 -4
- package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +1 -0
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +218 -175
- package/src/feature-libraries/optional-field/optionalField.ts +21 -17
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +2 -10
- package/src/feature-libraries/sequence-field/compose.ts +67 -58
- package/src/feature-libraries/sequence-field/invert.ts +30 -6
- package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +65 -19
- package/src/feature-libraries/typed-schema/flexList.ts +3 -84
- package/src/feature-libraries/typed-schema/index.ts +1 -33
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +0 -458
- package/src/index.ts +6 -0
- package/src/internalTypes.ts +0 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +3 -3
- package/src/shared-tree/index.ts +4 -8
- package/src/shared-tree/schematizeTree.ts +2 -56
- package/src/shared-tree/schematizingTreeView.ts +34 -15
- package/src/shared-tree/sharedTree.ts +39 -9
- package/src/shared-tree/sharedTreeChangeFamily.ts +5 -1
- package/src/shared-tree/sharedTreeEditBuilder.ts +23 -12
- package/src/shared-tree/treeCheckout.ts +232 -134
- package/src/shared-tree-core/branch.ts +26 -40
- package/src/shared-tree-core/defaultResubmitMachine.ts +4 -4
- package/src/shared-tree-core/editManager.ts +2 -1
- package/src/shared-tree-core/sharedTreeCore.ts +4 -2
- package/src/simple-tree/api/create.ts +18 -20
- package/src/simple-tree/api/getJsonSchema.ts +3 -3
- package/src/simple-tree/api/getSimpleSchema.ts +2 -2
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/schemaFactory.ts +41 -12
- package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -6
- package/src/simple-tree/api/simpleSchema.ts +15 -10
- package/src/simple-tree/api/tree.ts +15 -9
- package/src/simple-tree/api/treeNodeApi.ts +12 -10
- package/src/simple-tree/api/verboseTree.ts +6 -12
- package/src/{feature-libraries/typed-schema → simple-tree/api}/view.ts +9 -22
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +11 -2
- package/src/simple-tree/arrayNode.ts +202 -53
- package/src/simple-tree/core/context.ts +78 -0
- package/src/simple-tree/core/getOrCreateNode.ts +38 -0
- package/src/simple-tree/core/index.ts +11 -7
- package/src/simple-tree/core/schemaCaching.ts +13 -50
- package/src/simple-tree/core/treeNodeKernel.ts +117 -78
- package/src/simple-tree/core/treeNodeSchema.ts +35 -1
- package/src/simple-tree/core/types.ts +0 -5
- package/src/{feature-libraries/flex-map-tree/mapTreeNode.ts → simple-tree/core/unhydratedFlexTree.ts} +167 -210
- package/src/simple-tree/{walkSchema.ts → core/walkSchema.ts} +12 -34
- package/src/simple-tree/createContext.ts +24 -0
- package/src/simple-tree/index.ts +5 -2
- package/src/simple-tree/leafNodeSchema.ts +3 -9
- package/src/simple-tree/mapNode.ts +20 -17
- package/src/simple-tree/objectNode.ts +63 -38
- package/src/simple-tree/objectNodeTypes.ts +8 -5
- package/src/simple-tree/proxies.ts +8 -26
- package/src/simple-tree/schemaTypes.ts +2 -2
- package/src/simple-tree/toFlexSchema.ts +71 -204
- package/src/simple-tree/toMapTree.ts +5 -5
- package/src/simple-tree/treeNodeValid.ts +28 -22
- package/src/simple-tree/typesUnsafe.ts +4 -4
- package/src/simple-tree/walkFieldSchema.ts +19 -0
- package/src/util/index.ts +1 -5
- package/src/util/typeUtils.ts +14 -56
- package/dist/feature-libraries/fieldGenerator.d.ts +0 -43
- package/dist/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/dist/feature-libraries/fieldGenerator.js +0 -13
- package/dist/feature-libraries/fieldGenerator.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/dist/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.js +0 -14
- package/dist/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.js +0 -67
- package/dist/feature-libraries/storedToViewSchema.js.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +0 -160
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.js +0 -14
- package/dist/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/dist/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/view.js.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/dist/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.js +0 -29
- package/dist/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/dist/simple-tree/walkSchema.d.ts.map +0 -1
- package/dist/simple-tree/walkSchema.js +0 -49
- package/dist/simple-tree/walkSchema.js.map +0 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +0 -43
- package/lib/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/lib/feature-libraries/fieldGenerator.js +0 -12
- package/lib/feature-libraries/fieldGenerator.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/lib/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.js +0 -6
- package/lib/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.js +0 -62
- package/lib/feature-libraries/storedToViewSchema.js.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +0 -153
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.js +0 -10
- package/lib/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/lib/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/view.js.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/lib/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.js +0 -25
- package/lib/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/lib/simple-tree/walkSchema.d.ts.map +0 -1
- package/lib/simple-tree/walkSchema.js +0 -43
- package/lib/simple-tree/walkSchema.js.map +0 -1
- package/src/feature-libraries/fieldGenerator.ts +0 -47
- package/src/feature-libraries/flex-map-tree/index.ts +0 -14
- package/src/feature-libraries/storedToViewSchema.ts +0 -100
- package/src/feature-libraries/typed-schema/schemaCollection.ts +0 -254
- package/src/feature-libraries/typed-schema/typeUtils.ts +0 -29
- package/src/simple-tree/getSimpleFieldSchema.ts +0 -36
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/tree",
|
|
3
|
-
"version": "2.4.0-
|
|
3
|
+
"version": "2.4.0-297385",
|
|
4
4
|
"description": "Distributed tree",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -87,17 +87,17 @@
|
|
|
87
87
|
"temp-directory": "nyc/.nyc_output"
|
|
88
88
|
},
|
|
89
89
|
"dependencies": {
|
|
90
|
-
"@fluid-internal/client-utils": "2.4.0-
|
|
91
|
-
"@fluidframework/container-runtime": "2.4.0-
|
|
92
|
-
"@fluidframework/core-interfaces": "2.4.0-
|
|
93
|
-
"@fluidframework/core-utils": "2.4.0-
|
|
94
|
-
"@fluidframework/datastore-definitions": "2.4.0-
|
|
95
|
-
"@fluidframework/driver-definitions": "2.4.0-
|
|
96
|
-
"@fluidframework/id-compressor": "2.4.0-
|
|
97
|
-
"@fluidframework/runtime-definitions": "2.4.0-
|
|
98
|
-
"@fluidframework/runtime-utils": "2.4.0-
|
|
99
|
-
"@fluidframework/shared-object-base": "2.4.0-
|
|
100
|
-
"@fluidframework/telemetry-utils": "2.4.0-
|
|
90
|
+
"@fluid-internal/client-utils": "2.4.0-297385",
|
|
91
|
+
"@fluidframework/container-runtime": "2.4.0-297385",
|
|
92
|
+
"@fluidframework/core-interfaces": "2.4.0-297385",
|
|
93
|
+
"@fluidframework/core-utils": "2.4.0-297385",
|
|
94
|
+
"@fluidframework/datastore-definitions": "2.4.0-297385",
|
|
95
|
+
"@fluidframework/driver-definitions": "2.4.0-297385",
|
|
96
|
+
"@fluidframework/id-compressor": "2.4.0-297385",
|
|
97
|
+
"@fluidframework/runtime-definitions": "2.4.0-297385",
|
|
98
|
+
"@fluidframework/runtime-utils": "2.4.0-297385",
|
|
99
|
+
"@fluidframework/shared-object-base": "2.4.0-297385",
|
|
100
|
+
"@fluidframework/telemetry-utils": "2.4.0-297385",
|
|
101
101
|
"@sinclair/typebox": "^0.32.29",
|
|
102
102
|
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
103
103
|
"@ungap/structured-clone": "^1.2.0",
|
|
@@ -106,20 +106,20 @@
|
|
|
106
106
|
"devDependencies": {
|
|
107
107
|
"@arethetypeswrong/cli": "^0.15.2",
|
|
108
108
|
"@biomejs/biome": "~1.8.3",
|
|
109
|
-
"@fluid-internal/mocha-test-setup": "2.4.0-
|
|
110
|
-
"@fluid-private/stochastic-test-utils": "2.4.0-
|
|
111
|
-
"@fluid-private/test-dds-utils": "2.4.0-
|
|
112
|
-
"@fluid-private/test-drivers": "2.4.0-
|
|
109
|
+
"@fluid-internal/mocha-test-setup": "2.4.0-297385",
|
|
110
|
+
"@fluid-private/stochastic-test-utils": "2.4.0-297385",
|
|
111
|
+
"@fluid-private/test-dds-utils": "2.4.0-297385",
|
|
112
|
+
"@fluid-private/test-drivers": "2.4.0-297385",
|
|
113
113
|
"@fluid-tools/benchmark": "^0.50.0",
|
|
114
114
|
"@fluid-tools/build-cli": "^0.46.0",
|
|
115
115
|
"@fluidframework/build-common": "^2.0.3",
|
|
116
116
|
"@fluidframework/build-tools": "^0.46.0",
|
|
117
|
-
"@fluidframework/container-definitions": "2.4.0-
|
|
118
|
-
"@fluidframework/container-loader": "2.4.0-
|
|
117
|
+
"@fluidframework/container-definitions": "2.4.0-297385",
|
|
118
|
+
"@fluidframework/container-loader": "2.4.0-297385",
|
|
119
119
|
"@fluidframework/eslint-config-fluid": "^5.4.0",
|
|
120
|
-
"@fluidframework/test-runtime-utils": "2.4.0-
|
|
121
|
-
"@fluidframework/test-utils": "2.4.0-
|
|
122
|
-
"@fluidframework/tree-previous": "npm:@fluidframework/tree
|
|
120
|
+
"@fluidframework/test-runtime-utils": "2.4.0-297385",
|
|
121
|
+
"@fluidframework/test-utils": "2.4.0-297385",
|
|
122
|
+
"@fluidframework/tree-previous": "npm:@fluidframework/tree@~2.3.0",
|
|
123
123
|
"@microsoft/api-extractor": "7.47.8",
|
|
124
124
|
"@types/diff": "^3.5.1",
|
|
125
125
|
"@types/easy-table": "^0.0.32",
|
|
@@ -163,6 +163,12 @@
|
|
|
163
163
|
},
|
|
164
164
|
"typeValidation": {
|
|
165
165
|
"broken": {
|
|
166
|
+
"TypeAlias_MapNodeInsertableData": {
|
|
167
|
+
"backCompat": false
|
|
168
|
+
},
|
|
169
|
+
"Interface_InternalTypes_TreeNodeSchemaNonClass": {
|
|
170
|
+
"backCompat": false
|
|
171
|
+
},
|
|
166
172
|
"Interface_FieldSchemaUnsafe": {
|
|
167
173
|
"forwardCompat": false
|
|
168
174
|
},
|
|
@@ -171,9 +177,12 @@
|
|
|
171
177
|
},
|
|
172
178
|
"TypeAlias_ImplicitFieldSchema": {
|
|
173
179
|
"forwardCompat": false
|
|
180
|
+
},
|
|
181
|
+
"TypeAlias_ImplicitAllowedTypes": {
|
|
182
|
+
"forwardCompat": false
|
|
174
183
|
}
|
|
175
184
|
},
|
|
176
|
-
"entrypoint": "
|
|
185
|
+
"entrypoint": "public"
|
|
177
186
|
},
|
|
178
187
|
"scripts": {
|
|
179
188
|
"api": "fluid-build . --task api",
|
|
@@ -235,7 +244,7 @@
|
|
|
235
244
|
"test:snapshots:regen": "pnpm test:mocha:esm --snapshot",
|
|
236
245
|
"test:stress": "cross-env FUZZ_TEST_COUNT=20 FUZZ_STRESS_RUN=true mocha --ignore \"lib/test/memory/**/*\" --recursive \"lib/test/**/*.spec.js\"",
|
|
237
246
|
"tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
|
|
238
|
-
"typetests:gen": "flub generate typetests --dir . -v
|
|
247
|
+
"typetests:gen": "flub generate typetests --dir . -v",
|
|
239
248
|
"typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
|
|
240
249
|
}
|
|
241
250
|
}
|
|
@@ -8,10 +8,13 @@ import type { IIdCompressor, SessionId } from "@fluidframework/id-compressor";
|
|
|
8
8
|
import type { ICodecFamily, IJsonCodec } from "../../codec/index.js";
|
|
9
9
|
import type { SchemaAndPolicy } from "../../core/index.js";
|
|
10
10
|
import type { JsonCompatibleReadOnly } from "../../util/index.js";
|
|
11
|
-
import type { ChangeRebaser, RevisionTag } from "../rebase/index.js";
|
|
11
|
+
import type { ChangeRebaser, RevisionTag, TaggedChange } from "../rebase/index.js";
|
|
12
12
|
|
|
13
13
|
export interface ChangeFamily<TEditor extends ChangeFamilyEditor, TChange> {
|
|
14
|
-
buildEditor(
|
|
14
|
+
buildEditor(
|
|
15
|
+
mintRevisionTag: () => RevisionTag,
|
|
16
|
+
changeReceiver: (change: TaggedChange<TChange>) => void,
|
|
17
|
+
): TEditor;
|
|
15
18
|
|
|
16
19
|
readonly rebaser: ChangeRebaser<TChange>;
|
|
17
20
|
readonly codecs: ICodecFamily<TChange, ChangeEncodingContext>;
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import type { TaggedChange } from "../rebase/index.js";
|
|
6
7
|
import type { ChangeFamily, ChangeFamilyEditor } from "./changeFamily.js";
|
|
7
8
|
|
|
8
9
|
export abstract class EditBuilder<TChange> implements ChangeFamilyEditor {
|
|
9
10
|
public constructor(
|
|
10
11
|
protected readonly changeFamily: ChangeFamily<ChangeFamilyEditor, TChange>,
|
|
11
|
-
private readonly changeReceiver: (change: TChange) => void,
|
|
12
|
+
private readonly changeReceiver: (change: TaggedChange<TChange>) => void,
|
|
12
13
|
) {}
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -16,7 +17,7 @@ export abstract class EditBuilder<TChange> implements ChangeFamilyEditor {
|
|
|
16
17
|
*
|
|
17
18
|
* @sealed
|
|
18
19
|
*/
|
|
19
|
-
protected applyChange(change: TChange): void {
|
|
20
|
+
protected applyChange(change: TaggedChange<TChange>): void {
|
|
20
21
|
this.changeReceiver(change);
|
|
21
22
|
}
|
|
22
23
|
|
|
@@ -51,6 +51,7 @@ export interface ChangeRebaser<TChangeset> {
|
|
|
51
51
|
* @param changes - The changes to invert.
|
|
52
52
|
* @param isRollback - Whether the inverted change is meant to rollback a change on a branch as is the case when
|
|
53
53
|
* performing a sandwich rebase.
|
|
54
|
+
* @param revision - The revision for the invert changeset.
|
|
54
55
|
* This flag is relevant to merge semantics that are dependent on edit sequencing order:
|
|
55
56
|
* - In the context of an undo, this function inverts a change that is sequenced and applied before the produced inverse.
|
|
56
57
|
* - In the context of a rollback, this function inverts a change that is sequenced after but applied before the produced inverse.
|
|
@@ -59,7 +60,11 @@ export interface ChangeRebaser<TChangeset> {
|
|
|
59
60
|
* `compose([changes, inverse(changes)])` be equal to `compose([])`:
|
|
60
61
|
* See {@link ChangeRebaser} for details.
|
|
61
62
|
*/
|
|
62
|
-
invert(
|
|
63
|
+
invert(
|
|
64
|
+
changes: TaggedChange<TChangeset>,
|
|
65
|
+
isRollback: boolean,
|
|
66
|
+
revision: RevisionTag,
|
|
67
|
+
): TChangeset;
|
|
63
68
|
|
|
64
69
|
/**
|
|
65
70
|
* Rebase `change` over `over`.
|
package/src/core/rebase/utils.ts
CHANGED
|
@@ -444,8 +444,8 @@ function rollbackFromCommit<TChange>(
|
|
|
444
444
|
if (commit.rollback !== undefined) {
|
|
445
445
|
return commit.rollback;
|
|
446
446
|
}
|
|
447
|
-
const untagged = changeRebaser.invert(commit, true);
|
|
448
447
|
const tag = mintRevisionTag();
|
|
448
|
+
const untagged = changeRebaser.invert(commit, true, tag);
|
|
449
449
|
const deeplyTaggedRollback = changeRebaser.changeRevision(untagged, tag, commit.revision);
|
|
450
450
|
const fullyTaggedRollback = tagRollbackInverse(deeplyTaggedRollback, tag, commit.revision);
|
|
451
451
|
|
|
@@ -166,6 +166,11 @@ export abstract class TreeNodeStoredSchema {
|
|
|
166
166
|
* and is runtime validated by the codec.
|
|
167
167
|
*/
|
|
168
168
|
public abstract encode(): ErasedTreeNodeSchemaDataFormat;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Returns the schema for the provided field.
|
|
172
|
+
*/
|
|
173
|
+
public abstract getFieldSchema(field: FieldKey): TreeFieldStoredSchema;
|
|
169
174
|
}
|
|
170
175
|
|
|
171
176
|
/**
|
|
@@ -202,6 +207,10 @@ export class ObjectNodeStoredSchema extends TreeNodeStoredSchema {
|
|
|
202
207
|
object: fieldsObject,
|
|
203
208
|
});
|
|
204
209
|
}
|
|
210
|
+
|
|
211
|
+
public override getFieldSchema(field: FieldKey): TreeFieldStoredSchema {
|
|
212
|
+
return this.objectNodeFields.get(field) ?? storedEmptyFieldSchema;
|
|
213
|
+
}
|
|
205
214
|
}
|
|
206
215
|
|
|
207
216
|
/**
|
|
@@ -225,6 +234,10 @@ export class MapNodeStoredSchema extends TreeNodeStoredSchema {
|
|
|
225
234
|
map: encodeFieldSchema(this.mapFields),
|
|
226
235
|
});
|
|
227
236
|
}
|
|
237
|
+
|
|
238
|
+
public override getFieldSchema(field: FieldKey): TreeFieldStoredSchema {
|
|
239
|
+
return this.mapFields;
|
|
240
|
+
}
|
|
228
241
|
}
|
|
229
242
|
|
|
230
243
|
/**
|
|
@@ -252,6 +265,10 @@ export class LeafNodeStoredSchema extends TreeNodeStoredSchema {
|
|
|
252
265
|
leaf: encodeValueSchema(this.leafValue),
|
|
253
266
|
});
|
|
254
267
|
}
|
|
268
|
+
|
|
269
|
+
public override getFieldSchema(field: FieldKey): TreeFieldStoredSchema {
|
|
270
|
+
return storedEmptyFieldSchema;
|
|
271
|
+
}
|
|
255
272
|
}
|
|
256
273
|
|
|
257
274
|
export const storedSchemaDecodeDispatcher: DiscriminatedUnionDispatcher<
|
|
@@ -128,7 +128,6 @@ export interface AnchorEvents {
|
|
|
128
128
|
* Compare to {@link AnchorEvents.childrenChanged} which is emitted in the middle of the batch/delta-visit.
|
|
129
129
|
*/
|
|
130
130
|
childrenChangedAfterBatch(arg: {
|
|
131
|
-
anchor: AnchorNode;
|
|
132
131
|
changedFields: ReadonlySet<FieldKey>;
|
|
133
132
|
}): void;
|
|
134
133
|
|
|
@@ -179,7 +178,7 @@ export interface AnchorEvents {
|
|
|
179
178
|
* subtree changed, compared to {@link AnchorEvents.subtreeChanged} or {@link AnchorEvents.subtreeChanging} which
|
|
180
179
|
* fire when something _may_ have changed or _may_ be about to change.
|
|
181
180
|
*/
|
|
182
|
-
subtreeChangedAfterBatch(
|
|
181
|
+
subtreeChangedAfterBatch(): void;
|
|
183
182
|
}
|
|
184
183
|
|
|
185
184
|
/**
|
|
@@ -775,9 +774,9 @@ export class AnchorSet implements Listenable<AnchorSetRootEvents>, AnchorLocator
|
|
|
775
774
|
e.changedField ??
|
|
776
775
|
fail("childrenChangedAfterBatch events should have a changedField"),
|
|
777
776
|
);
|
|
778
|
-
node.events.emit(event, {
|
|
777
|
+
node.events.emit(event, { changedFields: new Set(fieldKeys) });
|
|
779
778
|
} else {
|
|
780
|
-
node.events.emit(event
|
|
779
|
+
node.events.emit(event);
|
|
781
780
|
}
|
|
782
781
|
}
|
|
783
782
|
},
|
|
@@ -150,7 +150,15 @@ export class DetachedFieldIndex {
|
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
152
|
this.latestRelevantRevisionToFields.delete(current);
|
|
153
|
-
|
|
153
|
+
|
|
154
|
+
const updatedInner = this.latestRelevantRevisionToFields.get(updated);
|
|
155
|
+
if (updatedInner !== undefined) {
|
|
156
|
+
for (const [root, nodeId] of inner) {
|
|
157
|
+
updatedInner.set(root, nodeId);
|
|
158
|
+
}
|
|
159
|
+
} else {
|
|
160
|
+
this.latestRelevantRevisionToFields.set(updated, inner);
|
|
161
|
+
}
|
|
154
162
|
}
|
|
155
163
|
}
|
|
156
164
|
|
|
@@ -349,10 +357,13 @@ export class DetachedFieldIndex {
|
|
|
349
357
|
0x9bd /* revisions should only be set once using this function after loading data from a summary */,
|
|
350
358
|
);
|
|
351
359
|
|
|
352
|
-
const newDetachedNodeToField = new Map();
|
|
360
|
+
const newDetachedNodeToField: NestedMap<Major, Minor, DetachedField> = new Map();
|
|
353
361
|
const rootMap = new Map();
|
|
354
362
|
forEachInNestedMap(this.detachedNodeToField, ({ root }, major, minor) => {
|
|
355
|
-
setInNestedMap(newDetachedNodeToField, major, minor, {
|
|
363
|
+
setInNestedMap(newDetachedNodeToField, major, minor, {
|
|
364
|
+
root,
|
|
365
|
+
latestRelevantRevision: latestRevision,
|
|
366
|
+
});
|
|
356
367
|
rootMap.set(root, { major, minor });
|
|
357
368
|
});
|
|
358
369
|
|
|
@@ -27,7 +27,7 @@ export type ForestRootId = Brand<number, "tree.ForestRootId">;
|
|
|
27
27
|
export interface DetachedField {
|
|
28
28
|
/**
|
|
29
29
|
* The atomic ID that the `DetachedFieldIndex` uses to uniquely identify the first (and only) root in the field.
|
|
30
|
-
* This ID is scoped to the specific `DetachedFieldIndex` from
|
|
30
|
+
* This ID is scoped to the specific `DetachedFieldIndex` from which this object was retrieved.
|
|
31
31
|
*
|
|
32
32
|
* The current implementation only supports a single root per field.
|
|
33
33
|
* This will be changed in the future for performance reasons.
|
|
@@ -8,16 +8,17 @@ import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
|
8
8
|
|
|
9
9
|
import type { ICodecFamily } from "../../codec/index.js";
|
|
10
10
|
import {
|
|
11
|
+
type ChangeAtomId,
|
|
11
12
|
type ChangeEncodingContext,
|
|
12
13
|
type ChangeFamily,
|
|
13
14
|
type ChangeFamilyEditor,
|
|
14
15
|
type ChangeRebaser,
|
|
15
|
-
type ChangesetLocalId,
|
|
16
16
|
CursorLocationType,
|
|
17
17
|
type DeltaDetachedNodeId,
|
|
18
18
|
type DeltaRoot,
|
|
19
19
|
type FieldUpPath,
|
|
20
20
|
type ITreeCursorSynchronous,
|
|
21
|
+
type RevisionTag,
|
|
21
22
|
type TaggedChange,
|
|
22
23
|
type UpPath,
|
|
23
24
|
compareFieldUpPaths,
|
|
@@ -43,6 +44,7 @@ import {
|
|
|
43
44
|
required as valueFieldKind,
|
|
44
45
|
} from "./defaultFieldKinds.js";
|
|
45
46
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
47
|
+
import type { CellId } from "../sequence-field/index.js";
|
|
46
48
|
|
|
47
49
|
export type DefaultChangeset = ModularChangeset;
|
|
48
50
|
|
|
@@ -68,8 +70,11 @@ export class DefaultChangeFamily
|
|
|
68
70
|
return this.modularFamily.codecs;
|
|
69
71
|
}
|
|
70
72
|
|
|
71
|
-
public buildEditor(
|
|
72
|
-
|
|
73
|
+
public buildEditor(
|
|
74
|
+
mintRevisionTag: () => RevisionTag,
|
|
75
|
+
changeReceiver: (change: TaggedChange<DefaultChangeset>) => void,
|
|
76
|
+
): DefaultEditBuilder {
|
|
77
|
+
return new DefaultEditBuilder(this, mintRevisionTag, changeReceiver);
|
|
73
78
|
}
|
|
74
79
|
}
|
|
75
80
|
|
|
@@ -168,7 +173,8 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
168
173
|
|
|
169
174
|
public constructor(
|
|
170
175
|
family: ChangeFamily<ChangeFamilyEditor, DefaultChangeset>,
|
|
171
|
-
|
|
176
|
+
private readonly mintRevisionTag: () => RevisionTag,
|
|
177
|
+
changeReceiver: (change: TaggedChange<DefaultChangeset>) => void,
|
|
172
178
|
private readonly idCompressor?: IIdCompressor,
|
|
173
179
|
) {
|
|
174
180
|
this.modularBuilder = new ModularEditBuilder(family, fieldKinds, changeReceiver);
|
|
@@ -182,19 +188,25 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
182
188
|
}
|
|
183
189
|
|
|
184
190
|
public addNodeExistsConstraint(path: UpPath): void {
|
|
185
|
-
this.modularBuilder.addNodeExistsConstraint(path);
|
|
191
|
+
this.modularBuilder.addNodeExistsConstraint(path, this.mintRevisionTag());
|
|
186
192
|
}
|
|
187
193
|
|
|
188
194
|
public valueField(field: FieldUpPath): ValueFieldEditBuilder<ITreeCursorSynchronous> {
|
|
189
195
|
return {
|
|
190
196
|
set: (newContent: ITreeCursorSynchronous): void => {
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
const
|
|
197
|
+
const revision = this.mintRevisionTag();
|
|
198
|
+
const fill: ChangeAtomId = { localId: this.modularBuilder.generateId(), revision };
|
|
199
|
+
const detach: ChangeAtomId = { localId: this.modularBuilder.generateId(), revision };
|
|
200
|
+
const build = this.modularBuilder.buildTrees(
|
|
201
|
+
fill.localId,
|
|
202
|
+
newContent,
|
|
203
|
+
revision,
|
|
204
|
+
this.idCompressor,
|
|
205
|
+
);
|
|
194
206
|
const change: FieldChangeset = brand(
|
|
195
207
|
valueFieldKind.changeHandler.editor.set({
|
|
196
|
-
fill
|
|
197
|
-
detach
|
|
208
|
+
fill,
|
|
209
|
+
detach,
|
|
198
210
|
}),
|
|
199
211
|
);
|
|
200
212
|
|
|
@@ -203,8 +215,9 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
203
215
|
field,
|
|
204
216
|
fieldKind: valueFieldKind.identifier,
|
|
205
217
|
change,
|
|
218
|
+
revision,
|
|
206
219
|
};
|
|
207
|
-
this.modularBuilder.submitChanges([build, edit]);
|
|
220
|
+
this.modularBuilder.submitChanges([build, edit], revision);
|
|
208
221
|
},
|
|
209
222
|
};
|
|
210
223
|
}
|
|
@@ -212,21 +225,26 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
212
225
|
public optionalField(field: FieldUpPath): OptionalFieldEditBuilder<ITreeCursorSynchronous> {
|
|
213
226
|
return {
|
|
214
227
|
set: (newContent: ITreeCursorSynchronous | undefined, wasEmpty: boolean): void => {
|
|
215
|
-
const detachId = this.modularBuilder.generateId();
|
|
216
|
-
let fillId: ChangesetLocalId | undefined;
|
|
217
228
|
const edits: EditDescription[] = [];
|
|
218
229
|
let optionalChange: OptionalChangeset;
|
|
230
|
+
const revision = this.mintRevisionTag();
|
|
231
|
+
const detach: ChangeAtomId = { localId: this.modularBuilder.generateId(), revision };
|
|
219
232
|
if (newContent !== undefined) {
|
|
220
|
-
|
|
221
|
-
const build = this.modularBuilder.buildTrees(
|
|
233
|
+
const fill: ChangeAtomId = { localId: this.modularBuilder.generateId(), revision };
|
|
234
|
+
const build = this.modularBuilder.buildTrees(
|
|
235
|
+
fill.localId,
|
|
236
|
+
newContent,
|
|
237
|
+
revision,
|
|
238
|
+
this.idCompressor,
|
|
239
|
+
);
|
|
222
240
|
edits.push(build);
|
|
223
241
|
|
|
224
242
|
optionalChange = optional.changeHandler.editor.set(wasEmpty, {
|
|
225
|
-
fill
|
|
226
|
-
detach
|
|
243
|
+
fill,
|
|
244
|
+
detach,
|
|
227
245
|
});
|
|
228
246
|
} else {
|
|
229
|
-
optionalChange = optional.changeHandler.editor.clear(wasEmpty,
|
|
247
|
+
optionalChange = optional.changeHandler.editor.clear(wasEmpty, detach);
|
|
230
248
|
}
|
|
231
249
|
|
|
232
250
|
const change: FieldChangeset = brand(optionalChange);
|
|
@@ -235,10 +253,11 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
235
253
|
field,
|
|
236
254
|
fieldKind: optional.identifier,
|
|
237
255
|
change,
|
|
256
|
+
revision,
|
|
238
257
|
};
|
|
239
258
|
edits.push(edit);
|
|
240
259
|
|
|
241
|
-
this.modularBuilder.submitChanges(edits);
|
|
260
|
+
this.modularBuilder.submitChanges(edits, revision);
|
|
242
261
|
},
|
|
243
262
|
};
|
|
244
263
|
}
|
|
@@ -255,17 +274,24 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
255
274
|
} else if (count < 0 || !Number.isSafeInteger(count)) {
|
|
256
275
|
throw new UsageError(`Expected non-negative integer count, got ${count}.`);
|
|
257
276
|
}
|
|
258
|
-
const
|
|
259
|
-
const
|
|
277
|
+
const revision = this.mintRevisionTag();
|
|
278
|
+
const detachCellId = this.modularBuilder.generateId(count);
|
|
279
|
+
const attachCellId: CellId = { localId: this.modularBuilder.generateId(count), revision };
|
|
260
280
|
if (compareFieldUpPaths(sourceField, destinationField)) {
|
|
261
281
|
const change = sequence.changeHandler.editor.move(
|
|
262
282
|
sourceIndex,
|
|
263
283
|
count,
|
|
264
284
|
destIndex,
|
|
265
|
-
|
|
266
|
-
|
|
285
|
+
detachCellId,
|
|
286
|
+
attachCellId,
|
|
287
|
+
revision,
|
|
288
|
+
);
|
|
289
|
+
this.modularBuilder.submitChange(
|
|
290
|
+
sourceField,
|
|
291
|
+
sequence.identifier,
|
|
292
|
+
brand(change),
|
|
293
|
+
revision,
|
|
267
294
|
);
|
|
268
|
-
this.modularBuilder.submitChange(sourceField, sequence.identifier, brand(change));
|
|
269
295
|
} else {
|
|
270
296
|
const detachPath = topDownPath(sourceField.parent);
|
|
271
297
|
const attachPath = topDownPath(destinationField.parent);
|
|
@@ -307,27 +333,38 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
307
333
|
}
|
|
308
334
|
}
|
|
309
335
|
}
|
|
310
|
-
const moveOut = sequence.changeHandler.editor.moveOut(
|
|
336
|
+
const moveOut = sequence.changeHandler.editor.moveOut(
|
|
337
|
+
sourceIndex,
|
|
338
|
+
count,
|
|
339
|
+
detachCellId,
|
|
340
|
+
revision,
|
|
341
|
+
);
|
|
311
342
|
const moveIn = sequence.changeHandler.editor.moveIn(
|
|
312
343
|
destIndex,
|
|
313
344
|
count,
|
|
314
|
-
|
|
315
|
-
|
|
345
|
+
detachCellId,
|
|
346
|
+
attachCellId,
|
|
347
|
+
revision,
|
|
348
|
+
);
|
|
349
|
+
this.modularBuilder.submitChanges(
|
|
350
|
+
[
|
|
351
|
+
{
|
|
352
|
+
type: "field",
|
|
353
|
+
field: sourceField,
|
|
354
|
+
fieldKind: sequence.identifier,
|
|
355
|
+
change: brand(moveOut),
|
|
356
|
+
revision,
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
type: "field",
|
|
360
|
+
field: adjustedAttachField,
|
|
361
|
+
fieldKind: sequence.identifier,
|
|
362
|
+
change: brand(moveIn),
|
|
363
|
+
revision,
|
|
364
|
+
},
|
|
365
|
+
],
|
|
366
|
+
revision,
|
|
316
367
|
);
|
|
317
|
-
this.modularBuilder.submitChanges([
|
|
318
|
-
{
|
|
319
|
-
type: "field",
|
|
320
|
-
field: sourceField,
|
|
321
|
-
fieldKind: sequence.identifier,
|
|
322
|
-
change: brand(moveOut),
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
type: "field",
|
|
326
|
-
field: adjustedAttachField,
|
|
327
|
-
fieldKind: sequence.identifier,
|
|
328
|
-
change: brand(moveIn),
|
|
329
|
-
},
|
|
330
|
-
]);
|
|
331
368
|
}
|
|
332
369
|
}
|
|
333
370
|
|
|
@@ -340,30 +377,38 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
|
|
|
340
377
|
return;
|
|
341
378
|
}
|
|
342
379
|
|
|
343
|
-
const
|
|
344
|
-
const
|
|
380
|
+
const revision = this.mintRevisionTag();
|
|
381
|
+
const firstId: CellId = { localId: this.modularBuilder.generateId(length), revision };
|
|
382
|
+
const build = this.modularBuilder.buildTrees(
|
|
383
|
+
firstId.localId,
|
|
384
|
+
content,
|
|
385
|
+
revision,
|
|
386
|
+
this.idCompressor,
|
|
387
|
+
);
|
|
345
388
|
const change: FieldChangeset = brand(
|
|
346
|
-
sequence.changeHandler.editor.insert(index, length, firstId),
|
|
389
|
+
sequence.changeHandler.editor.insert(index, length, firstId, revision),
|
|
347
390
|
);
|
|
348
391
|
const attach: FieldEditDescription = {
|
|
349
392
|
type: "field",
|
|
350
393
|
field,
|
|
351
394
|
fieldKind: sequence.identifier,
|
|
352
395
|
change,
|
|
396
|
+
revision,
|
|
353
397
|
};
|
|
354
398
|
// The changes have to be submitted together, otherwise they will be assigned different revisions,
|
|
355
399
|
// which will prevent the build ID and the insert ID from matching.
|
|
356
|
-
this.modularBuilder.submitChanges([build, attach]);
|
|
400
|
+
this.modularBuilder.submitChanges([build, attach], revision);
|
|
357
401
|
},
|
|
358
402
|
remove: (index: number, count: number): void => {
|
|
359
403
|
if (count === 0) {
|
|
360
404
|
return;
|
|
361
405
|
}
|
|
406
|
+
const revision = this.mintRevisionTag();
|
|
362
407
|
const id = this.modularBuilder.generateId(count);
|
|
363
408
|
const change: FieldChangeset = brand(
|
|
364
|
-
sequence.changeHandler.editor.remove(index, count, id),
|
|
409
|
+
sequence.changeHandler.editor.remove(index, count, id, revision),
|
|
365
410
|
);
|
|
366
|
-
this.modularBuilder.submitChange(field, sequence.identifier, change);
|
|
411
|
+
this.modularBuilder.submitChange(field, sequence.identifier, change, revision);
|
|
367
412
|
},
|
|
368
413
|
};
|
|
369
414
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
|
-
type
|
|
7
|
+
type ChangeAtomId,
|
|
8
8
|
type DeltaDetachedNodeId,
|
|
9
9
|
type DeltaFieldChanges,
|
|
10
10
|
type FieldKindIdentifier,
|
|
@@ -54,11 +54,9 @@ export const noChangeHandler: FieldChangeHandler<0> = {
|
|
|
54
54
|
export interface ValueFieldEditor extends FieldEditor<OptionalChangeset> {
|
|
55
55
|
/**
|
|
56
56
|
* Creates a change which replaces the current value of the field with `newValue`.
|
|
57
|
-
* @param
|
|
58
|
-
* @param changeId - the ID associated with the replacement of the current content.
|
|
59
|
-
* @param buildId - the ID associated with the creation of the `newContent`.
|
|
57
|
+
* @param ids - The ids for the fill and detach fields.
|
|
60
58
|
*/
|
|
61
|
-
set(ids: { fill:
|
|
59
|
+
set(ids: { fill: ChangeAtomId; detach: ChangeAtomId }): OptionalChangeset;
|
|
62
60
|
}
|
|
63
61
|
|
|
64
62
|
const optionalIdentifier = "Optional";
|
|
@@ -77,8 +75,10 @@ export const optional = new FieldKindWithEditor(
|
|
|
77
75
|
|
|
78
76
|
export const valueFieldEditor: ValueFieldEditor = {
|
|
79
77
|
...optionalFieldEditor,
|
|
80
|
-
set: (ids: {
|
|
81
|
-
|
|
78
|
+
set: (ids: {
|
|
79
|
+
fill: ChangeAtomId;
|
|
80
|
+
detach: ChangeAtomId;
|
|
81
|
+
}): OptionalChangeset => optionalFieldEditor.set(false, ids),
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
export const valueChangeHandler: FieldChangeHandler<OptionalChangeset, ValueFieldEditor> = {
|