@fluidframework/tree 2.3.1 → 2.4.0-297027
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 +77 -38
- package/api-report/tree.beta.api.md +50 -30
- package/api-report/tree.legacy.alpha.api.md +50 -30
- package/api-report/tree.legacy.public.api.md +50 -30
- package/api-report/tree.public.api.md +50 -30
- package/dist/alpha.d.ts +7 -0
- package/dist/beta.d.ts +4 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/core/index.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 +8 -1
- package/dist/core/rebase/types.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/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/modular-schema/modularChangeFamily.d.ts +7 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +61 -17
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +3 -0
- 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/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +1 -4
- package/dist/feature-libraries/sequence-field/utils.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 +4 -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/public.d.ts +4 -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 +9 -7
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +19 -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 +10 -2
- package/dist/shared-tree/sharedTree.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 +116 -84
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +8 -11
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +12 -15
- package/dist/shared-tree-core/branch.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/jsonSchema.d.ts +13 -14
- package/dist/simple-tree/api/jsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/jsonSchema.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +14 -8
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +21 -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 +18 -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/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +30 -17
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +16 -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 +11 -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 +4 -5
- 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 +44 -4
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +10 -0
- 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 +7 -0
- package/lib/beta.d.ts +4 -0
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.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 +6 -0
- package/lib/core/rebase/types.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/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/modular-schema/modularChangeFamily.d.ts +7 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +62 -18
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +3 -0
- 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/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +2 -5
- package/lib/feature-libraries/sequence-field/utils.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 +4 -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/public.d.ts +4 -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 +9 -7
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +22 -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 +10 -3
- package/lib/shared-tree/sharedTree.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 +118 -86
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +8 -11
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +12 -15
- package/lib/shared-tree-core/branch.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/jsonSchema.d.ts +13 -14
- package/lib/simple-tree/api/jsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/jsonSchema.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +14 -8
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +21 -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 +18 -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/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +31 -18
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +16 -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 +11 -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 +4 -5
- 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 +44 -4
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +10 -0
- 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 +41 -22
- package/src/core/index.ts +1 -0
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/types.ts +11 -0
- package/src/core/schema-stored/schema.ts +18 -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/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/modular-schema/modularChangeFamily.ts +97 -10
- package/src/feature-libraries/sequence-field/compose.ts +3 -0
- package/src/feature-libraries/sequence-field/utils.ts +2 -4
- 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 +7 -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 +38 -15
- package/src/shared-tree/sharedTree.ts +36 -8
- package/src/shared-tree/treeCheckout.ts +225 -128
- package/src/shared-tree-core/branch.ts +15 -26
- 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/jsonSchema.ts +19 -17
- package/src/simple-tree/api/schemaFactory.ts +53 -18
- package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -6
- package/src/simple-tree/api/simpleSchema.ts +20 -10
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +40 -19
- package/src/simple-tree/api/tree.ts +20 -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 +18 -4
- 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 +6 -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 +55 -5
- 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
|
@@ -6,18 +6,15 @@
|
|
|
6
6
|
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
|
|
8
8
|
import {
|
|
9
|
-
type FieldKey,
|
|
10
9
|
type ForestEvents,
|
|
11
|
-
type
|
|
10
|
+
type SchemaPolicy,
|
|
12
11
|
type TreeStoredSchema,
|
|
13
12
|
anchorSlot,
|
|
14
13
|
moveToDetachedField,
|
|
15
14
|
} from "../../core/index.js";
|
|
16
15
|
import type { Listenable } from "../../events/index.js";
|
|
17
16
|
import { type IDisposable, disposeSymbol } from "../../util/index.js";
|
|
18
|
-
import type { FieldGenerator } from "../fieldGenerator.js";
|
|
19
17
|
import type { NodeKeyManager } from "../node-key/index.js";
|
|
20
|
-
import type { FlexTreeSchema } from "../typed-schema/index.js";
|
|
21
18
|
|
|
22
19
|
import type { FlexTreeField } from "./flexTreeTypes.js";
|
|
23
20
|
import { type LazyEntity, prepareForEditSymbol } from "./lazyEntity.js";
|
|
@@ -32,13 +29,12 @@ export interface FlexTreeContext {
|
|
|
32
29
|
* Schema used within this context.
|
|
33
30
|
* All data must conform to these schema.
|
|
34
31
|
*/
|
|
35
|
-
readonly
|
|
32
|
+
readonly schema: TreeStoredSchema;
|
|
36
33
|
|
|
37
34
|
/**
|
|
38
|
-
*
|
|
39
|
-
* All data must conform to these schema.
|
|
35
|
+
* SchemaPolicy used within this context.
|
|
40
36
|
*/
|
|
41
|
-
readonly
|
|
37
|
+
readonly schemaPolicy: SchemaPolicy;
|
|
42
38
|
|
|
43
39
|
/**
|
|
44
40
|
* If true, this context is the canonical context instance for a given view,
|
|
@@ -91,7 +87,7 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
|
91
87
|
* @param nodeKeyManager - An object which handles node key generation and conversion
|
|
92
88
|
*/
|
|
93
89
|
public constructor(
|
|
94
|
-
public readonly
|
|
90
|
+
public readonly schemaPolicy: SchemaPolicy,
|
|
95
91
|
public readonly checkout: ITreeCheckout,
|
|
96
92
|
public readonly nodeKeyManager: NodeKeyManager,
|
|
97
93
|
) {
|
|
@@ -159,7 +155,7 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
|
159
155
|
assert(this.disposed === false, 0x804 /* use after dispose */);
|
|
160
156
|
const cursor = this.checkout.forest.allocateCursor("root");
|
|
161
157
|
moveToDetachedField(this.checkout.forest, cursor);
|
|
162
|
-
const field = makeField(this, this.
|
|
158
|
+
const field = makeField(this, this.schema.rootFieldSchema.kind, cursor);
|
|
163
159
|
cursor.free();
|
|
164
160
|
return field;
|
|
165
161
|
}
|
|
@@ -170,15 +166,6 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
|
170
166
|
): () => void {
|
|
171
167
|
return this.checkout.forest.on(eventName, listener);
|
|
172
168
|
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* FieldSource used to get a FieldGenerator to populate required fields during procedural contextual data generation.
|
|
176
|
-
*/
|
|
177
|
-
// TODO: Use this to automatically provide node keys where required.
|
|
178
|
-
public fieldSource?(
|
|
179
|
-
key: FieldKey,
|
|
180
|
-
schema: TreeFieldStoredSchema,
|
|
181
|
-
): undefined | FieldGenerator;
|
|
182
169
|
}
|
|
183
170
|
|
|
184
171
|
/**
|
|
@@ -191,7 +178,7 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
|
|
|
191
178
|
* This is necessary for supporting using this tree across edits to the forest, and not leaking memory.
|
|
192
179
|
*/
|
|
193
180
|
export function getTreeContext(
|
|
194
|
-
schema:
|
|
181
|
+
schema: SchemaPolicy,
|
|
195
182
|
checkout: ITreeCheckout,
|
|
196
183
|
nodeKeyManager: NodeKeyManager,
|
|
197
184
|
): Context {
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
type AnchorNode,
|
|
8
8
|
type ExclusiveMapTree,
|
|
9
9
|
type FieldKey,
|
|
10
|
+
type FieldKindIdentifier,
|
|
10
11
|
type FieldUpPath,
|
|
11
|
-
type TreeFieldStoredSchema,
|
|
12
12
|
type TreeNodeSchemaIdentifier,
|
|
13
13
|
type TreeValue,
|
|
14
14
|
anchorSlot,
|
|
@@ -20,7 +20,6 @@ import type {
|
|
|
20
20
|
OptionalFieldEditBuilder,
|
|
21
21
|
} from "../default-schema/index.js";
|
|
22
22
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
23
|
-
import type { FlexTreeNodeSchema } from "../typed-schema/index.js";
|
|
24
23
|
|
|
25
24
|
import type { FlexTreeContext } from "./context.js";
|
|
26
25
|
|
|
@@ -126,11 +125,7 @@ export enum TreeStatus {
|
|
|
126
125
|
* the same {@link FlexTreeNode} instance will be used in the new location.
|
|
127
126
|
* Similarly, edits applied to a node's sub-tree concurrently with the move of the node will still be applied to its subtree in its new location.
|
|
128
127
|
*
|
|
129
|
-
*
|
|
130
128
|
* @remarks
|
|
131
|
-
* Down-casting (via {@link FlexTreeNode#is}) is required to access Schema-Aware APIs, including editing.
|
|
132
|
-
* All content in the tree is accessible without down-casting, but if the schema is known,
|
|
133
|
-
* the schema aware API may be more ergonomic.
|
|
134
129
|
* All editing is actually done via {@link FlexTreeField}s: the nodes are immutable other than that they contain mutable fields.
|
|
135
130
|
*/
|
|
136
131
|
export interface FlexTreeNode extends FlexTreeEntity {
|
|
@@ -162,11 +157,6 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
162
157
|
*/
|
|
163
158
|
readonly parentField: { readonly parent: FlexTreeField; readonly index: number };
|
|
164
159
|
|
|
165
|
-
/**
|
|
166
|
-
* Type guard for narrowing / down-casting to a specific schema.
|
|
167
|
-
*/
|
|
168
|
-
is(schema: FlexTreeNodeSchema): boolean;
|
|
169
|
-
|
|
170
160
|
boxedIterator(): IterableIterator<FlexTreeField>;
|
|
171
161
|
|
|
172
162
|
/**
|
|
@@ -194,12 +184,6 @@ export interface FlexTreeNode extends FlexTreeEntity {
|
|
|
194
184
|
* If well-formed, it must follow this schema.
|
|
195
185
|
*/
|
|
196
186
|
readonly schema: TreeNodeSchemaIdentifier;
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Schema for this entity.
|
|
200
|
-
* If well-formed, it must follow this schema.
|
|
201
|
-
*/
|
|
202
|
-
readonly flexSchema: FlexTreeNodeSchema;
|
|
203
187
|
}
|
|
204
188
|
|
|
205
189
|
/**
|
|
@@ -268,7 +252,7 @@ export interface FlexTreeField extends FlexTreeEntity {
|
|
|
268
252
|
* Schema for this entity.
|
|
269
253
|
* If well-formed, it must follow this schema.
|
|
270
254
|
*/
|
|
271
|
-
readonly schema:
|
|
255
|
+
readonly schema: FieldKindIdentifier;
|
|
272
256
|
}
|
|
273
257
|
|
|
274
258
|
// #region Field Kinds
|
|
@@ -43,15 +43,12 @@ export function assertFlexTreeEntityNotFreed(entity: FlexTreeEntity): void {
|
|
|
43
43
|
/**
|
|
44
44
|
* This is a base class for lazy (cursor based) UntypedEntity implementations, which uniformly handles cursors and anchors.
|
|
45
45
|
*/
|
|
46
|
-
export abstract class LazyEntity<
|
|
47
|
-
implements FlexTreeEntity, IDisposable
|
|
48
|
-
{
|
|
46
|
+
export abstract class LazyEntity<TAnchor = unknown> implements FlexTreeEntity, IDisposable {
|
|
49
47
|
readonly #lazyCursor: ITreeSubscriptionCursor;
|
|
50
48
|
public readonly [anchorSymbol]: TAnchor;
|
|
51
49
|
|
|
52
50
|
protected constructor(
|
|
53
51
|
public readonly context: Context,
|
|
54
|
-
public readonly flexSchema: TSchema,
|
|
55
52
|
cursor: ITreeSubscriptionCursor,
|
|
56
53
|
anchor: TAnchor,
|
|
57
54
|
) {
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
type ExclusiveMapTree,
|
|
11
11
|
type FieldAnchor,
|
|
12
12
|
type FieldKey,
|
|
13
|
+
type FieldKindIdentifier,
|
|
13
14
|
type FieldUpPath,
|
|
14
15
|
type ITreeCursorSynchronous,
|
|
15
16
|
type ITreeSubscriptionCursor,
|
|
16
|
-
type TreeFieldStoredSchema,
|
|
17
17
|
type TreeNavigationResult,
|
|
18
18
|
inCursorNode,
|
|
19
19
|
iterateCursorField,
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
type ValueFieldEditBuilder,
|
|
28
28
|
} from "../default-schema/index.js";
|
|
29
29
|
import type { FlexFieldKind } from "../modular-schema/index.js";
|
|
30
|
-
import type { FlexFieldSchema } from "../typed-schema/index.js";
|
|
31
30
|
|
|
32
31
|
import type { Context } from "./context.js";
|
|
33
32
|
import {
|
|
@@ -75,7 +74,7 @@ const fieldCache: WeakMap<LazyTreeNode, Map<FieldKey, FlexTreeField>> = new Weak
|
|
|
75
74
|
|
|
76
75
|
export function makeField(
|
|
77
76
|
context: Context,
|
|
78
|
-
schema:
|
|
77
|
+
schema: FieldKindIdentifier,
|
|
79
78
|
cursor: ITreeSubscriptionCursor,
|
|
80
79
|
): FlexTreeField {
|
|
81
80
|
const fieldAnchor = cursor.buildFieldAnchor();
|
|
@@ -83,7 +82,7 @@ export function makeField(
|
|
|
83
82
|
|
|
84
83
|
const makeFlexTreeField = (): FlexTreeField => {
|
|
85
84
|
usedAnchor = true;
|
|
86
|
-
const field = new (kindToClass.get(schema
|
|
85
|
+
const field = new (kindToClass.get(schema) ?? fail("missing field implementation"))(
|
|
87
86
|
context,
|
|
88
87
|
schema,
|
|
89
88
|
cursor,
|
|
@@ -125,19 +124,12 @@ export function makeField(
|
|
|
125
124
|
/**
|
|
126
125
|
* Base type for fields implementing {@link FlexTreeField} using cursors.
|
|
127
126
|
*/
|
|
128
|
-
export abstract class LazyField<
|
|
129
|
-
extends LazyEntity<FlexFieldSchema<TKind>, FieldAnchor>
|
|
130
|
-
implements FlexTreeField
|
|
131
|
-
{
|
|
127
|
+
export abstract class LazyField extends LazyEntity<FieldAnchor> implements FlexTreeField {
|
|
132
128
|
public get [flexTreeMarker](): FlexTreeEntityKind.Field {
|
|
133
129
|
return FlexTreeEntityKind.Field;
|
|
134
130
|
}
|
|
135
131
|
public readonly key: FieldKey;
|
|
136
132
|
|
|
137
|
-
public get schema(): TreeFieldStoredSchema {
|
|
138
|
-
return this.flexSchema.stored;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
133
|
/**
|
|
142
134
|
* If this field ends its lifetime before the Anchor does, this needs to be invoked to avoid a double free
|
|
143
135
|
* if/when the Anchor is destroyed.
|
|
@@ -146,11 +138,11 @@ export abstract class LazyField<out TKind extends FlexFieldKind>
|
|
|
146
138
|
|
|
147
139
|
public constructor(
|
|
148
140
|
context: Context,
|
|
149
|
-
schema:
|
|
141
|
+
public readonly schema: FieldKindIdentifier,
|
|
150
142
|
cursor: ITreeSubscriptionCursor,
|
|
151
143
|
fieldAnchor: FieldAnchor,
|
|
152
144
|
) {
|
|
153
|
-
super(context,
|
|
145
|
+
super(context, cursor, fieldAnchor);
|
|
154
146
|
assert(cursor.mode === CursorLocationType.Fields, 0x77b /* must be in fields mode */);
|
|
155
147
|
this.key = cursor.getFieldKey();
|
|
156
148
|
// Fields currently live as long as their parent does.
|
|
@@ -167,11 +159,11 @@ export abstract class LazyField<out TKind extends FlexFieldKind>
|
|
|
167
159
|
|
|
168
160
|
public is<TKind2 extends FlexFieldKind>(kind: TKind2): this is FlexTreeTypedField<TKind2> {
|
|
169
161
|
assert(
|
|
170
|
-
this.context.
|
|
162
|
+
this.context.schemaPolicy.fieldKinds.get(kind.identifier) === kind,
|
|
171
163
|
0xa26 /* Narrowing must be done to a kind that exists in this context */,
|
|
172
164
|
);
|
|
173
165
|
|
|
174
|
-
return this.
|
|
166
|
+
return this.schema === kind.identifier;
|
|
175
167
|
}
|
|
176
168
|
|
|
177
169
|
public get parent(): FlexTreeNode | undefined {
|
|
@@ -259,19 +251,7 @@ export abstract class LazyField<out TKind extends FlexFieldKind>
|
|
|
259
251
|
}
|
|
260
252
|
}
|
|
261
253
|
|
|
262
|
-
export class LazySequence
|
|
263
|
-
extends LazyField<typeof FieldKinds.sequence>
|
|
264
|
-
implements FlexTreeSequenceField
|
|
265
|
-
{
|
|
266
|
-
public constructor(
|
|
267
|
-
context: Context,
|
|
268
|
-
schema: FlexFieldSchema<typeof FieldKinds.sequence>,
|
|
269
|
-
cursor: ITreeSubscriptionCursor,
|
|
270
|
-
fieldAnchor: FieldAnchor,
|
|
271
|
-
) {
|
|
272
|
-
super(context, schema, cursor, fieldAnchor);
|
|
273
|
-
}
|
|
274
|
-
|
|
254
|
+
export class LazySequence extends LazyField implements FlexTreeSequenceField {
|
|
275
255
|
public at(index: number): FlexTreeUnknownUnboxed | undefined {
|
|
276
256
|
const finalIndex = indexForAt(index, this.length);
|
|
277
257
|
|
|
@@ -302,19 +282,7 @@ export class LazySequence
|
|
|
302
282
|
}
|
|
303
283
|
}
|
|
304
284
|
|
|
305
|
-
export class ReadonlyLazyValueField
|
|
306
|
-
extends LazyField<typeof FieldKinds.required>
|
|
307
|
-
implements FlexTreeRequiredField
|
|
308
|
-
{
|
|
309
|
-
public constructor(
|
|
310
|
-
context: Context,
|
|
311
|
-
schema: FlexFieldSchema<typeof FieldKinds.required>,
|
|
312
|
-
cursor: ITreeSubscriptionCursor,
|
|
313
|
-
fieldAnchor: FieldAnchor,
|
|
314
|
-
) {
|
|
315
|
-
super(context, schema, cursor, fieldAnchor);
|
|
316
|
-
}
|
|
317
|
-
|
|
285
|
+
export class ReadonlyLazyValueField extends LazyField implements FlexTreeRequiredField {
|
|
318
286
|
public editor: ValueFieldEditBuilder<ExclusiveMapTree> = {
|
|
319
287
|
set: (newContent) => {
|
|
320
288
|
assert(false, 0xa0c /* Unexpected set of readonly field */);
|
|
@@ -327,15 +295,6 @@ export class ReadonlyLazyValueField
|
|
|
327
295
|
}
|
|
328
296
|
|
|
329
297
|
export class LazyValueField extends ReadonlyLazyValueField implements FlexTreeRequiredField {
|
|
330
|
-
public constructor(
|
|
331
|
-
context: Context,
|
|
332
|
-
schema: FlexFieldSchema<typeof FieldKinds.required>,
|
|
333
|
-
cursor: ITreeSubscriptionCursor,
|
|
334
|
-
fieldAnchor: FieldAnchor,
|
|
335
|
-
) {
|
|
336
|
-
super(context, schema, cursor, fieldAnchor);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
298
|
public override editor: ValueFieldEditBuilder<ExclusiveMapTree> = {
|
|
340
299
|
set: (newContent) => {
|
|
341
300
|
this.valueFieldEditor().set(cursorForMapTreeNode(newContent));
|
|
@@ -353,19 +312,7 @@ export class LazyValueField extends ReadonlyLazyValueField implements FlexTreeRe
|
|
|
353
312
|
}
|
|
354
313
|
}
|
|
355
314
|
|
|
356
|
-
export class LazyOptionalField
|
|
357
|
-
extends LazyField<typeof FieldKinds.optional>
|
|
358
|
-
implements FlexTreeOptionalField
|
|
359
|
-
{
|
|
360
|
-
public constructor(
|
|
361
|
-
context: Context,
|
|
362
|
-
schema: FlexFieldSchema<typeof FieldKinds.optional>,
|
|
363
|
-
cursor: ITreeSubscriptionCursor,
|
|
364
|
-
fieldAnchor: FieldAnchor,
|
|
365
|
-
) {
|
|
366
|
-
super(context, schema, cursor, fieldAnchor);
|
|
367
|
-
}
|
|
368
|
-
|
|
315
|
+
export class LazyOptionalField extends LazyField implements FlexTreeOptionalField {
|
|
369
316
|
public editor: OptionalFieldEditBuilder<ExclusiveMapTree> = {
|
|
370
317
|
set: (newContent, wasEmpty) => {
|
|
371
318
|
this.optionalEditor().set(
|
|
@@ -386,25 +333,22 @@ export class LazyOptionalField
|
|
|
386
333
|
}
|
|
387
334
|
}
|
|
388
335
|
|
|
389
|
-
export class LazyForbiddenField extends LazyField
|
|
336
|
+
export class LazyForbiddenField extends LazyField {}
|
|
390
337
|
|
|
391
338
|
type Builder = new (
|
|
392
339
|
context: Context,
|
|
393
340
|
// Correct use of these builders requires the builder of the matching type to be used.
|
|
394
|
-
|
|
395
|
-
// does not seem worth it (ends up requiring type casts that are just as unsafe).
|
|
396
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
397
|
-
schema: FlexFieldSchema<any>,
|
|
341
|
+
schema: FieldKindIdentifier,
|
|
398
342
|
cursor: ITreeSubscriptionCursor,
|
|
399
343
|
fieldAnchor: FieldAnchor,
|
|
400
|
-
) => LazyField
|
|
401
|
-
|
|
402
|
-
const builderList: [
|
|
403
|
-
[FieldKinds.forbidden, LazyForbiddenField],
|
|
404
|
-
[FieldKinds.optional, LazyOptionalField],
|
|
405
|
-
[FieldKinds.sequence, LazySequence],
|
|
406
|
-
[FieldKinds.required, LazyValueField],
|
|
407
|
-
[FieldKinds.identifier, LazyValueField],
|
|
344
|
+
) => LazyField;
|
|
345
|
+
|
|
346
|
+
const builderList: [FieldKindIdentifier, Builder][] = [
|
|
347
|
+
[FieldKinds.forbidden.identifier, LazyForbiddenField],
|
|
348
|
+
[FieldKinds.optional.identifier, LazyOptionalField],
|
|
349
|
+
[FieldKinds.sequence.identifier, LazySequence],
|
|
350
|
+
[FieldKinds.required.identifier, LazyValueField],
|
|
351
|
+
[FieldKinds.identifier.identifier, LazyValueField],
|
|
408
352
|
];
|
|
409
353
|
|
|
410
|
-
const kindToClass: ReadonlyMap<
|
|
354
|
+
const kindToClass: ReadonlyMap<FieldKindIdentifier, Builder> = new Map(builderList);
|
|
@@ -10,9 +10,11 @@ import {
|
|
|
10
10
|
type AnchorNode,
|
|
11
11
|
CursorLocationType,
|
|
12
12
|
type FieldKey,
|
|
13
|
+
type FieldKindIdentifier,
|
|
13
14
|
type ITreeSubscriptionCursor,
|
|
14
15
|
type TreeNavigationResult,
|
|
15
16
|
type TreeNodeSchemaIdentifier,
|
|
17
|
+
type TreeNodeStoredSchema,
|
|
16
18
|
type Value,
|
|
17
19
|
inCursorField,
|
|
18
20
|
mapCursorFields,
|
|
@@ -20,7 +22,6 @@ import {
|
|
|
20
22
|
} from "../../core/index.js";
|
|
21
23
|
import { disposeSymbol, fail } from "../../util/index.js";
|
|
22
24
|
import { FieldKinds } from "../default-schema/index.js";
|
|
23
|
-
import { FlexFieldSchema, type FlexTreeNodeSchema } from "../typed-schema/index.js";
|
|
24
25
|
|
|
25
26
|
import type { Context } from "./context.js";
|
|
26
27
|
import {
|
|
@@ -52,10 +53,9 @@ export function makeTree(context: Context, cursor: ITreeSubscriptionCursor): Laz
|
|
|
52
53
|
context.checkout.forest.anchors.forget(anchor);
|
|
53
54
|
assert(cached.context === context, 0x782 /* contexts must match */);
|
|
54
55
|
assert(cached instanceof LazyTreeNode, 0x92c /* Expected LazyTreeNode */);
|
|
55
|
-
return cached
|
|
56
|
+
return cached;
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
return new LazyTreeNode(context, schema, cursor, anchorNode, anchor);
|
|
58
|
+
return new LazyTreeNode(context, cursor.type, cursor, anchorNode, anchor);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
function cleanupTree(anchor: AnchorNode): void {
|
|
@@ -67,45 +67,28 @@ function cleanupTree(anchor: AnchorNode): void {
|
|
|
67
67
|
/**
|
|
68
68
|
* Lazy implementation of {@link FlexTreeNode}.
|
|
69
69
|
*/
|
|
70
|
-
export class LazyTreeNode
|
|
71
|
-
extends LazyEntity<TSchema, Anchor>
|
|
72
|
-
implements FlexTreeNode
|
|
73
|
-
{
|
|
70
|
+
export class LazyTreeNode extends LazyEntity<Anchor> implements FlexTreeNode {
|
|
74
71
|
public get [flexTreeMarker](): FlexTreeEntityKind.Node {
|
|
75
72
|
return FlexTreeEntityKind.Node;
|
|
76
73
|
}
|
|
77
74
|
|
|
78
|
-
public get schema(): TreeNodeSchemaIdentifier {
|
|
79
|
-
return this.flexSchema.name;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
75
|
// Using JS private here prevents it from showing up as a enumerable own property, or conflicting with struct fields.
|
|
83
76
|
readonly #removeDeleteCallback: () => void;
|
|
84
77
|
|
|
78
|
+
private readonly storedSchema: TreeNodeStoredSchema;
|
|
79
|
+
|
|
85
80
|
public constructor(
|
|
86
81
|
context: Context,
|
|
87
|
-
schema:
|
|
82
|
+
public readonly schema: TreeNodeSchemaIdentifier,
|
|
88
83
|
cursor: ITreeSubscriptionCursor,
|
|
89
84
|
public readonly anchorNode: AnchorNode,
|
|
90
85
|
anchor: Anchor,
|
|
91
86
|
) {
|
|
92
|
-
super(context,
|
|
87
|
+
super(context, cursor, anchor);
|
|
88
|
+
this.storedSchema = context.schema.nodeSchema.get(this.schema) ?? fail("missing schema");
|
|
93
89
|
assert(cursor.mode === CursorLocationType.Nodes, 0x783 /* must be in nodes mode */);
|
|
94
90
|
anchorNode.slots.set(flexTreeSlot, this);
|
|
95
91
|
this.#removeDeleteCallback = anchorNode.on("afterDestroy", cleanupTree);
|
|
96
|
-
|
|
97
|
-
assert(
|
|
98
|
-
this.context.flexSchema.nodeSchema.get(this.flexSchema.name) !== undefined,
|
|
99
|
-
0x784 /* There is no explicit schema for this node type. Ensure that the type is correct and the schema for it was added to the TreeStoredSchema */,
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
public is(schema: FlexTreeNodeSchema): boolean {
|
|
104
|
-
assert(
|
|
105
|
-
this.context.flexSchema.nodeSchema.get(schema.name) === schema,
|
|
106
|
-
0x785 /* Narrowing must be done to a schema that exists in this context */,
|
|
107
|
-
);
|
|
108
|
-
return this.flexSchema === (schema as unknown);
|
|
109
92
|
}
|
|
110
93
|
|
|
111
94
|
protected override [tryMoveCursorToAnchorSymbol](
|
|
@@ -128,25 +111,29 @@ export class LazyTreeNode<TSchema extends FlexTreeNodeSchema = FlexTreeNodeSchem
|
|
|
128
111
|
}
|
|
129
112
|
|
|
130
113
|
public tryGetField(fieldKey: FieldKey): FlexTreeField | undefined {
|
|
131
|
-
const schema = this.
|
|
114
|
+
const schema = this.storedSchema.getFieldSchema(fieldKey);
|
|
132
115
|
return inCursorField(this[cursorSymbol], fieldKey, (cursor) => {
|
|
133
116
|
if (cursor.getFieldLength() === 0) {
|
|
134
117
|
return undefined;
|
|
135
118
|
}
|
|
136
|
-
return makeField(this.context, schema, cursor);
|
|
119
|
+
return makeField(this.context, schema.kind, cursor);
|
|
137
120
|
});
|
|
138
121
|
}
|
|
139
122
|
|
|
140
123
|
public getBoxed(key: FieldKey): FlexTreeField {
|
|
141
|
-
const fieldSchema = this.
|
|
124
|
+
const fieldSchema = this.storedSchema.getFieldSchema(key);
|
|
142
125
|
return inCursorField(this[cursorSymbol], key, (cursor) => {
|
|
143
|
-
return makeField(this.context, fieldSchema, cursor);
|
|
126
|
+
return makeField(this.context, fieldSchema.kind, cursor);
|
|
144
127
|
});
|
|
145
128
|
}
|
|
146
129
|
|
|
147
130
|
public boxedIterator(): IterableIterator<FlexTreeField> {
|
|
148
131
|
return mapCursorFields(this[cursorSymbol], (cursor) =>
|
|
149
|
-
makeField(
|
|
132
|
+
makeField(
|
|
133
|
+
this.context,
|
|
134
|
+
this.storedSchema.getFieldSchema(cursor.getFieldKey()).kind,
|
|
135
|
+
cursor,
|
|
136
|
+
),
|
|
150
137
|
).values();
|
|
151
138
|
}
|
|
152
139
|
|
|
@@ -158,14 +145,14 @@ export class LazyTreeNode<TSchema extends FlexTreeNodeSchema = FlexTreeNodeSchem
|
|
|
158
145
|
|
|
159
146
|
cursor.exitNode();
|
|
160
147
|
assert(key === cursor.getFieldKey(), 0x787 /* mismatched keys */);
|
|
161
|
-
let fieldSchema:
|
|
148
|
+
let fieldSchema: FieldKindIdentifier;
|
|
162
149
|
|
|
163
150
|
// Check if the current node is in a detached sequence.
|
|
164
151
|
if (this.anchorNode.parent === undefined) {
|
|
165
152
|
// Parent field is a detached sequence, and thus needs special handling for its schema.
|
|
166
153
|
// eslint-disable-next-line unicorn/prefer-ternary
|
|
167
154
|
if (key === rootFieldKey) {
|
|
168
|
-
fieldSchema = this.context.
|
|
155
|
+
fieldSchema = this.context.schema.rootFieldSchema.kind;
|
|
169
156
|
} else {
|
|
170
157
|
// All fields (in the flex tree API) have a schema.
|
|
171
158
|
// Since currently there is no known schema for detached field other than the special default root:
|
|
@@ -180,18 +167,16 @@ export class LazyTreeNode<TSchema extends FlexTreeNodeSchema = FlexTreeNodeSchem
|
|
|
180
167
|
// Additionally this approach makes it possible for a user to take a FlexTree node, get its parent, check its schema, down cast based on that, then edit that detached field (ex: removing the node in it).
|
|
181
168
|
// This MIGHT work properly with existing merge resolution logic (it must keep client in sync and be unable to violate schema), but this either needs robust testing or to be explicitly banned (error before sending the op).
|
|
182
169
|
// Issues like replacing a node in the a removed sequenced then undoing the remove could easily violate schema if not everything works exactly right!
|
|
183
|
-
fieldSchema =
|
|
184
|
-
...this.context.flexSchema.nodeSchema.values(),
|
|
185
|
-
]);
|
|
170
|
+
fieldSchema = FieldKinds.sequence.identifier;
|
|
186
171
|
}
|
|
187
172
|
} else {
|
|
188
173
|
cursor.exitField();
|
|
189
174
|
const parentType = cursor.type;
|
|
190
175
|
cursor.enterField(key);
|
|
191
176
|
const nodeSchema =
|
|
192
|
-
this.context.
|
|
177
|
+
this.context.schema.nodeSchema.get(parentType) ??
|
|
193
178
|
fail("requested schema that does not exist");
|
|
194
|
-
fieldSchema = nodeSchema.getFieldSchema(key);
|
|
179
|
+
fieldSchema = nodeSchema.getFieldSchema(key).kind;
|
|
195
180
|
}
|
|
196
181
|
|
|
197
182
|
const proxifiedField = makeField(this.context, fieldSchema, cursor);
|
|
@@ -83,7 +83,7 @@ export interface DetachedFieldCache {
|
|
|
83
83
|
export function getSchemaAndPolicy(nodeOrField: FlexTreeEntity): SchemaAndPolicy {
|
|
84
84
|
return {
|
|
85
85
|
schema: nodeOrField.context.schema,
|
|
86
|
-
policy: nodeOrField.context.
|
|
86
|
+
policy: nodeOrField.context.schemaPolicy,
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -4,48 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
export {
|
|
7
|
-
createDataBinderBuffering,
|
|
8
|
-
createDataBinderDirect,
|
|
9
|
-
createDataBinderInvalidating,
|
|
10
|
-
createBinderOptions,
|
|
11
|
-
createFlushableBinderOptions,
|
|
12
|
-
type DataBinder,
|
|
13
|
-
type BinderOptions,
|
|
14
|
-
type Flushable,
|
|
15
|
-
type FlushableBinderOptions,
|
|
16
|
-
type FlushableDataBinder,
|
|
17
|
-
type MatchPolicy,
|
|
18
|
-
type SubtreePolicy,
|
|
19
|
-
type BindSyntaxTree,
|
|
20
|
-
indexSymbol,
|
|
21
|
-
type BindPolicy,
|
|
22
|
-
type BindTree,
|
|
23
|
-
type BindTreeDefault,
|
|
24
7
|
type DownPath,
|
|
25
|
-
type BindPath,
|
|
26
|
-
type PathStep,
|
|
27
|
-
BindingType,
|
|
28
|
-
type BindingContextType,
|
|
29
|
-
type BindingContext,
|
|
30
|
-
type VisitorBindingContext,
|
|
31
|
-
type RemoveBindingContext,
|
|
32
|
-
type InsertBindingContext,
|
|
33
|
-
type BatchBindingContext,
|
|
34
|
-
type InvalidationBindingContext,
|
|
35
|
-
type OperationBinderEvents,
|
|
36
|
-
type InvalidationBinderEvents,
|
|
37
|
-
type CompareFunction,
|
|
38
|
-
type BinderEventsCompare,
|
|
39
|
-
type AnchorsCompare,
|
|
40
8
|
toDownPath,
|
|
41
|
-
comparePipeline,
|
|
42
|
-
compileSyntaxTree,
|
|
43
9
|
} from "./editableTreeBinder.js";
|
|
44
|
-
|
|
45
10
|
export { allowsValue, assertAllowedValue, isTreeValue } from "./valueUtilities.js";
|
|
46
11
|
|
|
47
|
-
export type { FieldGenerator, TreeDataContext } from "./fieldGenerator.js";
|
|
48
|
-
|
|
49
12
|
export { ForestSummarizer } from "./forest-summary/index.js";
|
|
50
13
|
export {
|
|
51
14
|
cursorForMapTreeField,
|
|
@@ -113,37 +76,16 @@ export {
|
|
|
113
76
|
type FieldKindConfigurationEntry,
|
|
114
77
|
getAllowedContentIncompatibilities,
|
|
115
78
|
isRepoSuperset,
|
|
79
|
+
isNeverTree,
|
|
116
80
|
} from "./modular-schema/index.js";
|
|
117
81
|
|
|
118
82
|
export {
|
|
119
|
-
type FlexTreeNodeSchema,
|
|
120
|
-
type FlexAllowedTypes,
|
|
121
|
-
FlexFieldSchema,
|
|
122
|
-
type FlexTreeSchema,
|
|
123
|
-
type SchemaLibraryData,
|
|
124
|
-
type LazyTreeNodeSchema,
|
|
125
|
-
ViewSchema,
|
|
126
|
-
type SchemaLintConfiguration,
|
|
127
|
-
LeafNodeSchema,
|
|
128
|
-
FlexMapNodeSchema,
|
|
129
|
-
FlexObjectNodeSchema,
|
|
130
|
-
schemaIsLeaf,
|
|
131
|
-
schemaIsMap,
|
|
132
|
-
schemaIsObjectNode,
|
|
133
83
|
type Unenforced,
|
|
134
|
-
type AllowedTypeSet,
|
|
135
84
|
markEager,
|
|
136
|
-
type FlexMapFieldSchema,
|
|
137
|
-
type SchemaCollection,
|
|
138
|
-
TreeNodeSchemaBase,
|
|
139
85
|
type LazyItem,
|
|
140
86
|
type FlexListToUnion,
|
|
141
87
|
type ExtractItemType,
|
|
142
88
|
isLazy,
|
|
143
|
-
type FlexObjectNodeFields,
|
|
144
|
-
intoStoredSchema,
|
|
145
|
-
intoStoredSchemaCollection,
|
|
146
|
-
type NormalizeLazyItem,
|
|
147
89
|
type FlexList,
|
|
148
90
|
} from "./typed-schema/index.js";
|
|
149
91
|
|
|
@@ -223,10 +165,10 @@ export {
|
|
|
223
165
|
isFreedSymbol,
|
|
224
166
|
LazyEntity,
|
|
225
167
|
treeStatusFromAnchorCache,
|
|
168
|
+
indexForAt,
|
|
169
|
+
FlexTreeEntityKind,
|
|
226
170
|
} from "./flex-tree/index.js";
|
|
227
171
|
|
|
228
|
-
export { treeSchemaFromStoredSchema } from "./storedToViewSchema.js";
|
|
229
|
-
|
|
230
172
|
export { TreeCompressionStrategy } from "./treeCompressionUtils.js";
|
|
231
173
|
|
|
232
174
|
export { valueSchemaAllows } from "./valueUtilities.js";
|
|
@@ -240,13 +182,3 @@ export {
|
|
|
240
182
|
} from "./schema-edits/index.js";
|
|
241
183
|
|
|
242
184
|
export { makeMitigatedChangeFamily } from "./mitigatedChangeFamily.js";
|
|
243
|
-
|
|
244
|
-
export {
|
|
245
|
-
type MapTreeNode,
|
|
246
|
-
type MapTreeSequenceField,
|
|
247
|
-
isMapTreeNode,
|
|
248
|
-
isMapTreeSequenceField,
|
|
249
|
-
getOrCreateMapTreeNode,
|
|
250
|
-
tryGetMapTreeNode,
|
|
251
|
-
UnhydratedContext,
|
|
252
|
-
} from "./flex-map-tree/index.js";
|