@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
|
@@ -3,45 +3,6 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, Lazy } from "@fluidframework/core-utils/internal";
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
type Adapters,
|
|
10
|
-
type FieldKey,
|
|
11
|
-
LeafNodeStoredSchema,
|
|
12
|
-
MapNodeStoredSchema,
|
|
13
|
-
ObjectNodeStoredSchema,
|
|
14
|
-
type StoredSchemaCollection,
|
|
15
|
-
type TreeFieldStoredSchema,
|
|
16
|
-
type TreeNodeSchemaIdentifier,
|
|
17
|
-
type TreeNodeStoredSchema,
|
|
18
|
-
type TreeStoredSchema,
|
|
19
|
-
type TreeTypeSet,
|
|
20
|
-
type ValueSchema,
|
|
21
|
-
identifierFieldKindIdentifier,
|
|
22
|
-
} from "../../core/index.js";
|
|
23
|
-
import {
|
|
24
|
-
type MakeNominal,
|
|
25
|
-
type Named,
|
|
26
|
-
compareSets,
|
|
27
|
-
mapIterable,
|
|
28
|
-
oneFromSet,
|
|
29
|
-
type requireAssignableTo,
|
|
30
|
-
filterIterable,
|
|
31
|
-
brand,
|
|
32
|
-
} from "../../util/index.js";
|
|
33
|
-
import { FieldKinds } from "../default-schema/index.js";
|
|
34
|
-
import type { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
|
|
35
|
-
|
|
36
|
-
import type { LazyItem } from "./flexList.js";
|
|
37
|
-
import { type ObjectToMap, objectToMapTyped } from "./typeUtils.js";
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*/
|
|
41
|
-
export interface FlexObjectNodeFields {
|
|
42
|
-
readonly [key: string]: FlexFieldSchema;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
6
|
/**
|
|
46
7
|
* A placeholder to use in {@link https://www.typescriptlang.org/docs/handbook/2/generics.html#generic-constraints | extends constraints} when using the real type breaks compilation of some recursive types due to {@link https://github.com/microsoft/TypeScript/issues/55758 | a design limitation of TypeScript}.
|
|
47
8
|
*
|
|
@@ -51,422 +12,3 @@ export interface FlexObjectNodeFields {
|
|
|
51
12
|
* @public
|
|
52
13
|
*/
|
|
53
14
|
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
54
|
-
|
|
55
|
-
{
|
|
56
|
-
type _check = requireAssignableTo<FlexTreeNodeSchema, Unenforced<FlexTreeNodeSchema>>;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* T must extend TreeSchemaSpecification.
|
|
61
|
-
* This can not be enforced using TypeScript since doing so breaks recursive type support.
|
|
62
|
-
* See note on SchemaBuilder.fieldRecursive.
|
|
63
|
-
*/
|
|
64
|
-
export abstract class TreeNodeSchemaBase<const out Specification = unknown> {
|
|
65
|
-
protected _typeCheck!: MakeNominal;
|
|
66
|
-
protected constructor(
|
|
67
|
-
public readonly builder: Named<string>,
|
|
68
|
-
public readonly name: TreeNodeSchemaIdentifier,
|
|
69
|
-
public readonly info: Specification,
|
|
70
|
-
public readonly stored: TreeNodeStoredSchema,
|
|
71
|
-
) {}
|
|
72
|
-
public abstract getFieldSchema(field: FieldKey): FlexFieldSchema;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
*/
|
|
77
|
-
export class FlexMapNodeSchema extends TreeNodeSchemaBase {
|
|
78
|
-
public get mapFields(): FlexMapFieldSchema {
|
|
79
|
-
return this.info as FlexMapFieldSchema;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
protected _typeCheck2?: MakeNominal;
|
|
83
|
-
public static create<const Name extends string>(
|
|
84
|
-
builder: Named<string>,
|
|
85
|
-
name: TreeNodeSchemaIdentifier<Name>,
|
|
86
|
-
specification: FlexMapFieldSchema,
|
|
87
|
-
): FlexMapNodeSchema {
|
|
88
|
-
return new FlexMapNodeSchema(
|
|
89
|
-
builder,
|
|
90
|
-
name,
|
|
91
|
-
specification,
|
|
92
|
-
new MapNodeStoredSchema(specification.stored),
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
public override getFieldSchema(field: FieldKey): FlexMapFieldSchema {
|
|
97
|
-
return this.info as FlexMapFieldSchema;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
*/
|
|
103
|
-
export class LeafNodeSchema extends TreeNodeSchemaBase<ValueSchema> {
|
|
104
|
-
protected _typeCheck2?: MakeNominal;
|
|
105
|
-
public constructor(builder: Named<string>, name: string, specification: ValueSchema) {
|
|
106
|
-
super(builder, brand(name), specification, new LeafNodeStoredSchema(specification));
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
public override getFieldSchema(field: FieldKey): FlexFieldSchema {
|
|
110
|
-
return FlexFieldSchema.empty;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
*/
|
|
116
|
-
export class FlexObjectNodeSchema extends TreeNodeSchemaBase {
|
|
117
|
-
protected _typeCheck2?: MakeNominal;
|
|
118
|
-
public readonly identifierFieldKeys: readonly FieldKey[] = [];
|
|
119
|
-
|
|
120
|
-
public static create(
|
|
121
|
-
builder: Named<string>,
|
|
122
|
-
name: TreeNodeSchemaIdentifier,
|
|
123
|
-
specification: FlexObjectNodeFields,
|
|
124
|
-
): FlexObjectNodeSchema {
|
|
125
|
-
const objectNodeFieldsObject = normalizeStructFields(specification);
|
|
126
|
-
const objectNodeFields: ObjectToMap<FlexObjectNodeFields, FieldKey, FlexFieldSchema> =
|
|
127
|
-
objectToMapTyped(objectNodeFieldsObject);
|
|
128
|
-
return new FlexObjectNodeSchema(
|
|
129
|
-
builder,
|
|
130
|
-
name,
|
|
131
|
-
specification,
|
|
132
|
-
objectNodeFieldsObject,
|
|
133
|
-
objectNodeFields,
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
private constructor(
|
|
138
|
-
builder: Named<string>,
|
|
139
|
-
name: TreeNodeSchemaIdentifier,
|
|
140
|
-
info: FlexObjectNodeFields,
|
|
141
|
-
public readonly objectNodeFieldsObject: FlexObjectNodeFields,
|
|
142
|
-
// Allows reading fields through the normal map.
|
|
143
|
-
// Stricter typing caused Specification to no longer be covariant, so has been removed.
|
|
144
|
-
public readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,
|
|
145
|
-
) {
|
|
146
|
-
const fields = mapIterable(objectNodeFields, ([k, v]) => [k, v.stored] as const);
|
|
147
|
-
super(builder, name, info, new ObjectNodeStoredSchema(new Map(fields)));
|
|
148
|
-
this.identifierFieldKeys = Array.from(
|
|
149
|
-
filterIterable(
|
|
150
|
-
objectNodeFields.entries(),
|
|
151
|
-
([k, f]) => f.kind.identifier === identifierFieldKindIdentifier,
|
|
152
|
-
),
|
|
153
|
-
([k]) => k,
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
public override getFieldSchema(field: FieldKey): FlexFieldSchema {
|
|
158
|
-
return this.objectNodeFields.get(field) ?? FlexFieldSchema.empty;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @privateRemarks
|
|
164
|
-
* This could be an exhaustive union, or just the common base type.
|
|
165
|
-
* Using just the base type prevents exhaustive matching, which has both pros and cons.
|
|
166
|
-
*
|
|
167
|
-
* For now this is using just the base type since the union is causing issues with schema aware typing, likely due to it being a union and thus distributing over extends clauses.
|
|
168
|
-
*/
|
|
169
|
-
export type FlexTreeNodeSchema = TreeNodeSchemaBase;
|
|
170
|
-
|
|
171
|
-
function normalizeStructFields<T extends FlexObjectNodeFields>(
|
|
172
|
-
fields: T,
|
|
173
|
-
): FlexObjectNodeFields {
|
|
174
|
-
const out: Record<string, FlexFieldSchema> = {};
|
|
175
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
176
|
-
for (const key in fields) {
|
|
177
|
-
if (Object.prototype.hasOwnProperty.call(fields, key)) {
|
|
178
|
-
const element = fields[key];
|
|
179
|
-
out[key] = normalizeField(element);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return out;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function normalizeField(t: FlexFieldSchema | undefined): FlexFieldSchema {
|
|
186
|
-
if (t === undefined) {
|
|
187
|
-
return FlexFieldSchema.empty;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
assert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);
|
|
191
|
-
return t;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Tree type, but can be wrapped in a function to allow referring to types before they are declared.
|
|
196
|
-
* This makes recursive and co-recursive types possible.
|
|
197
|
-
*/
|
|
198
|
-
export type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema);
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Types for use in fields.
|
|
202
|
-
*/
|
|
203
|
-
export type FlexAllowedTypes = readonly LazyItem<FlexTreeNodeSchema>[];
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Subset of TreeFieldSchema thats legal in maps.
|
|
207
|
-
* This requires empty to be a valid value for the map.
|
|
208
|
-
*/
|
|
209
|
-
export type FlexMapFieldSchema = FlexFieldSchema<
|
|
210
|
-
typeof FieldKinds.optional | typeof FieldKinds.sequence
|
|
211
|
-
>;
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* All policy for a specific field,
|
|
215
|
-
* including functionality that does not have to be kept consistent across versions or deterministic.
|
|
216
|
-
*
|
|
217
|
-
* This can include policy for how to use this schema for "view" purposes, and well as how to expose editing APIs.
|
|
218
|
-
*
|
|
219
|
-
* @remarks
|
|
220
|
-
* `Types` here must extend `AllowedTypes`, but this cannot be enforced with an "extends" clause: see {@link Unenforced} for details.
|
|
221
|
-
*
|
|
222
|
-
* @typeParam TKind - The kind of field.
|
|
223
|
-
* @typeParam TTypes - The types allowed by the field.
|
|
224
|
-
*
|
|
225
|
-
* @sealed
|
|
226
|
-
*/
|
|
227
|
-
export class FlexFieldSchema<out TKind extends FlexFieldKind = FlexFieldKind> {
|
|
228
|
-
/**
|
|
229
|
-
* Schema for a field which must always be empty.
|
|
230
|
-
*/
|
|
231
|
-
public static readonly empty = FlexFieldSchema.create(FieldKinds.forbidden, []);
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Constructs a TreeFieldSchema.
|
|
235
|
-
* @privateRemarks
|
|
236
|
-
* Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).
|
|
237
|
-
*/
|
|
238
|
-
public static create<TKind extends FlexFieldKind>(
|
|
239
|
-
kind: TKind,
|
|
240
|
-
allowedTypes: FlexAllowedTypes,
|
|
241
|
-
): FlexFieldSchema<TKind> {
|
|
242
|
-
return new FlexFieldSchema(kind, allowedTypes);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
protected _typeCheck!: MakeNominal;
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.
|
|
249
|
-
*/
|
|
250
|
-
private readonly lazyTypes: Lazy<{
|
|
251
|
-
names: TreeTypeSet;
|
|
252
|
-
schema: AllowedTypeSet;
|
|
253
|
-
monomorphicChildType?: FlexTreeNodeSchema;
|
|
254
|
-
}>;
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.
|
|
258
|
-
* Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.
|
|
259
|
-
* @param allowedTypes - What types of tree nodes are allowed in this field.
|
|
260
|
-
*/
|
|
261
|
-
private constructor(
|
|
262
|
-
public readonly kind: TKind,
|
|
263
|
-
public readonly allowedTypes: FlexAllowedTypes,
|
|
264
|
-
) {
|
|
265
|
-
// Since this class can't have the desired extends clause, do some extra runtime validation:
|
|
266
|
-
assert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);
|
|
267
|
-
for (const allowedType of allowedTypes) {
|
|
268
|
-
if (typeof allowedType !== "function") {
|
|
269
|
-
assert(
|
|
270
|
-
allowedType instanceof TreeNodeSchemaBase,
|
|
271
|
-
0x7be /* Invalid entry in allowedTypes */,
|
|
272
|
-
);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
const lazy = new Lazy(() => {
|
|
277
|
-
const input = this.allowedTypes as unknown as FlexAllowedTypes;
|
|
278
|
-
const schema = allowedTypesSchemaSet(input);
|
|
279
|
-
return {
|
|
280
|
-
names: allowedTypesToTypeSet(input),
|
|
281
|
-
schema,
|
|
282
|
-
monomorphicChildType: oneFromSet(schema),
|
|
283
|
-
};
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
this.lazyTypes = lazy;
|
|
287
|
-
|
|
288
|
-
this.stored = {
|
|
289
|
-
kind: this.kind.identifier,
|
|
290
|
-
get types() {
|
|
291
|
-
return lazy.value.names;
|
|
292
|
-
},
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
public readonly stored: TreeFieldStoredSchema;
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.
|
|
300
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.
|
|
301
|
-
*/
|
|
302
|
-
public get types(): TreeTypeSet {
|
|
303
|
-
return this.lazyTypes.value.names;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Types which are allowed in this field.
|
|
308
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.
|
|
309
|
-
* @privateRemarks
|
|
310
|
-
* TODO:
|
|
311
|
-
* 3 ways to access the allowed types are now exposed.
|
|
312
|
-
* Reducing this and/or renaming the more friendly options to take the shorter name (`types`)
|
|
313
|
-
* would be a good idea.
|
|
314
|
-
*/
|
|
315
|
-
public get allowedTypeSet(): AllowedTypeSet {
|
|
316
|
-
return this.lazyTypes.value.schema;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* If exactly one type of child is allowed in this field, it is provided here.
|
|
321
|
-
* @remarks
|
|
322
|
-
* Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.
|
|
323
|
-
* This field allows for simple and optimized handling of this case.
|
|
324
|
-
*/
|
|
325
|
-
public get monomorphicChildType(): FlexTreeNodeSchema | undefined {
|
|
326
|
-
return this.lazyTypes.value.monomorphicChildType;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Compare this schema to another.
|
|
331
|
-
*
|
|
332
|
-
* @returns true iff the schema are identical.
|
|
333
|
-
*/
|
|
334
|
-
public equals(other: FlexFieldSchema): boolean {
|
|
335
|
-
if (other.kind !== this.kind) {
|
|
336
|
-
return false;
|
|
337
|
-
}
|
|
338
|
-
if (other.types === undefined) {
|
|
339
|
-
return this.types === undefined;
|
|
340
|
-
}
|
|
341
|
-
if (this.types === undefined) {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
return compareSets({
|
|
345
|
-
a: this.types,
|
|
346
|
-
b: other.types,
|
|
347
|
-
aExtra: () => false,
|
|
348
|
-
bExtra: () => false,
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* Types for use in fields.
|
|
355
|
-
* This representation is optimized for runtime use in view-schema.
|
|
356
|
-
*
|
|
357
|
-
* @remarks
|
|
358
|
-
* See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.
|
|
359
|
-
* See {@link FlexAllowedTypes} for a compile time optimized version.
|
|
360
|
-
*/
|
|
361
|
-
export type AllowedTypeSet = ReadonlySet<FlexTreeNodeSchema>;
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
365
|
-
*/
|
|
366
|
-
export function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {
|
|
367
|
-
const list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {
|
|
368
|
-
if (typeof value === "function") {
|
|
369
|
-
return value();
|
|
370
|
-
}
|
|
371
|
-
return value;
|
|
372
|
-
});
|
|
373
|
-
return new Set(list);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
/**
|
|
377
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
378
|
-
*/
|
|
379
|
-
export function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {
|
|
380
|
-
const list = allowedTypesSchemaSet(t);
|
|
381
|
-
const names = Array.from(list, (type) => {
|
|
382
|
-
assert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);
|
|
383
|
-
return type.name;
|
|
384
|
-
});
|
|
385
|
-
return new Set(names);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* Schema data that can be be used to view a document.
|
|
390
|
-
* Strongly typed over its rootFieldSchema.
|
|
391
|
-
*
|
|
392
|
-
* @remarks
|
|
393
|
-
* The type of the rootFieldSchema is used to implement SchemaAware APIs.
|
|
394
|
-
* Cases that do not require being compile time schema aware can omit the explicit type for it.
|
|
395
|
-
*/
|
|
396
|
-
export interface FlexTreeSchema<out T extends FlexFieldSchema = FlexFieldSchema>
|
|
397
|
-
extends SchemaCollection {
|
|
398
|
-
/**
|
|
399
|
-
* Schema for the root field which contains the whole tree.
|
|
400
|
-
*/
|
|
401
|
-
readonly rootFieldSchema: T;
|
|
402
|
-
/**
|
|
403
|
-
* Extra configuration for how this schema is handled at runtime.
|
|
404
|
-
*/
|
|
405
|
-
readonly policy: FullSchemaPolicy;
|
|
406
|
-
/**
|
|
407
|
-
* Compatibility information how how to interact with content who's stored schema is not directly compatible with this schema.
|
|
408
|
-
*/
|
|
409
|
-
readonly adapters: Adapters;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/**
|
|
413
|
-
* Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.
|
|
414
|
-
*/
|
|
415
|
-
export function intoStoredSchema(treeSchema: FlexTreeSchema): TreeStoredSchema {
|
|
416
|
-
return {
|
|
417
|
-
rootFieldSchema: treeSchema.rootFieldSchema.stored,
|
|
418
|
-
...intoStoredSchemaCollection(treeSchema),
|
|
419
|
-
};
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
/**
|
|
423
|
-
* Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.
|
|
424
|
-
*/
|
|
425
|
-
export function intoStoredSchemaCollection(
|
|
426
|
-
treeSchema: SchemaCollection,
|
|
427
|
-
): StoredSchemaCollection {
|
|
428
|
-
return {
|
|
429
|
-
nodeSchema: new Map(
|
|
430
|
-
mapIterable(treeSchema.nodeSchema.entries(), ([k, v]) => [k, v.stored]),
|
|
431
|
-
),
|
|
432
|
-
};
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Schema data that can be be used to view a document.
|
|
437
|
-
*
|
|
438
|
-
* @privateRemarks
|
|
439
|
-
* It is convenient that this can be used as a StoredSchemaCollection with no conversion.
|
|
440
|
-
* There there isn't a design requirement for this however, so this extends clause can be removed later if needed.
|
|
441
|
-
*/
|
|
442
|
-
export interface SchemaCollection {
|
|
443
|
-
/**
|
|
444
|
-
* {@inheritdoc SchemaCollection}
|
|
445
|
-
*/
|
|
446
|
-
readonly nodeSchema: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
// These schema type narrowing functions are preferred over `instanceof` due to being easier to migrate to class based schema.
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.
|
|
453
|
-
*/
|
|
454
|
-
export function schemaIsMap(schema: FlexTreeNodeSchema): schema is FlexMapNodeSchema {
|
|
455
|
-
return schema instanceof FlexMapNodeSchema;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.
|
|
460
|
-
*/
|
|
461
|
-
export function schemaIsLeaf(schema: FlexTreeNodeSchema): schema is LeafNodeSchema {
|
|
462
|
-
return schema instanceof LeafNodeSchema;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
/**
|
|
466
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.
|
|
467
|
-
*/
|
|
468
|
-
export function schemaIsObjectNode(
|
|
469
|
-
schema: FlexTreeNodeSchema,
|
|
470
|
-
): schema is FlexObjectNodeSchema {
|
|
471
|
-
return schema instanceof FlexObjectNodeSchema;
|
|
472
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -58,6 +58,9 @@ export {
|
|
|
58
58
|
type NodeInDocumentConstraint,
|
|
59
59
|
type RunTransaction,
|
|
60
60
|
rollback,
|
|
61
|
+
getBranch,
|
|
62
|
+
type TreeBranch,
|
|
63
|
+
type TreeBranchFork,
|
|
61
64
|
} from "./shared-tree/index.js";
|
|
62
65
|
|
|
63
66
|
export {
|
|
@@ -65,6 +68,7 @@ export {
|
|
|
65
68
|
type Unhydrated,
|
|
66
69
|
IterableTreeArrayContent,
|
|
67
70
|
TreeNode,
|
|
71
|
+
type ViewableTree,
|
|
68
72
|
type ITree,
|
|
69
73
|
type TreeNodeSchema,
|
|
70
74
|
TreeViewConfiguration,
|
|
@@ -82,6 +86,7 @@ export {
|
|
|
82
86
|
type TreeLeafValue,
|
|
83
87
|
FieldKind,
|
|
84
88
|
FieldSchema,
|
|
89
|
+
type FieldSchemaMetadata,
|
|
85
90
|
type ImplicitAllowedTypes,
|
|
86
91
|
type InsertableTreeFieldFromImplicitField,
|
|
87
92
|
type InsertableTypedNode,
|
|
@@ -112,6 +117,7 @@ export {
|
|
|
112
117
|
type FieldSchemaUnsafe,
|
|
113
118
|
// System types (not in Internal types for various reasons, like doc links or cannot be named errors).
|
|
114
119
|
type typeSchemaSymbol,
|
|
120
|
+
type TreeNodeSchemaNonClass,
|
|
115
121
|
// Recursive Schema APIs
|
|
116
122
|
type ValidateRecursiveSchema,
|
|
117
123
|
type FixRecursiveArraySchema,
|
|
@@ -154,6 +160,7 @@ export {
|
|
|
154
160
|
type Covariant,
|
|
155
161
|
BrandedType,
|
|
156
162
|
type RestrictiveReadonlyRecord,
|
|
163
|
+
type RestrictiveStringRecord,
|
|
157
164
|
type MakeNominal,
|
|
158
165
|
} from "./util/index.js";
|
|
159
166
|
|
package/src/internalTypes.ts
CHANGED
package/src/packageVersion.ts
CHANGED
|
@@ -7,10 +7,10 @@ import { assert } from "@fluidframework/core-utils/internal";
|
|
|
7
7
|
import {
|
|
8
8
|
type Context,
|
|
9
9
|
type FlexTreeField,
|
|
10
|
-
type FlexTreeSchema,
|
|
11
10
|
type NodeKeyManager,
|
|
12
11
|
getTreeContext,
|
|
13
12
|
type FlexTreeHydratedContext,
|
|
13
|
+
type FullSchemaPolicy,
|
|
14
14
|
} from "../feature-libraries/index.js";
|
|
15
15
|
import { tryDisposeTreeNode } from "../simple-tree/index.js";
|
|
16
16
|
import { disposeSymbol } from "../util/index.js";
|
|
@@ -42,7 +42,7 @@ export class CheckoutFlexTreeView<out TCheckout extends ITreeCheckout = ITreeChe
|
|
|
42
42
|
* This is a non-owning reference: disposing of this view does not impact the branch.
|
|
43
43
|
*/
|
|
44
44
|
public readonly checkout: TCheckout,
|
|
45
|
-
public readonly schema:
|
|
45
|
+
public readonly schema: FullSchemaPolicy,
|
|
46
46
|
public readonly nodeKeyManager: NodeKeyManager,
|
|
47
47
|
private readonly onDispose?: () => void,
|
|
48
48
|
) {
|
|
@@ -65,7 +65,7 @@ export class CheckoutFlexTreeView<out TCheckout extends ITreeCheckout = ITreeChe
|
|
|
65
65
|
* Any mutations of the new view will not apply to this view until the new view is merged back into this view via `merge()`.
|
|
66
66
|
*/
|
|
67
67
|
public fork(): CheckoutFlexTreeView<ITreeCheckout & ITreeCheckoutFork> {
|
|
68
|
-
const branch = this.checkout.
|
|
68
|
+
const branch = this.checkout.branch();
|
|
69
69
|
return new CheckoutFlexTreeView(branch, this.schema, this.nodeKeyManager);
|
|
70
70
|
}
|
|
71
71
|
}
|
package/src/shared-tree/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ export {
|
|
|
8
8
|
SharedTreeFactory,
|
|
9
9
|
type SharedTreeOptions,
|
|
10
10
|
SharedTree,
|
|
11
|
+
getBranch,
|
|
11
12
|
ForestType,
|
|
12
13
|
type SharedTreeContentSnapshot,
|
|
13
14
|
type SharedTreeFormatOptions,
|
|
@@ -22,16 +23,11 @@ export {
|
|
|
22
23
|
type CheckoutEvents,
|
|
23
24
|
type ITransaction,
|
|
24
25
|
type ITreeCheckoutFork,
|
|
26
|
+
type TreeBranch,
|
|
27
|
+
type TreeBranchFork,
|
|
25
28
|
} from "./treeCheckout.js";
|
|
26
29
|
|
|
27
|
-
export {
|
|
28
|
-
type SchematizeConfiguration,
|
|
29
|
-
type TreeContent,
|
|
30
|
-
type TreeStoredContent,
|
|
31
|
-
type InitializeAndSchematizeConfiguration,
|
|
32
|
-
type SchemaConfiguration,
|
|
33
|
-
buildTreeConfiguration,
|
|
34
|
-
} from "./schematizeTree.js";
|
|
30
|
+
export { type TreeStoredContent } from "./schematizeTree.js";
|
|
35
31
|
|
|
36
32
|
export { CheckoutFlexTreeView } from "./checkoutFlexTreeView.js";
|
|
37
33
|
|
|
@@ -16,9 +16,6 @@ import {
|
|
|
16
16
|
} from "../core/index.js";
|
|
17
17
|
import {
|
|
18
18
|
FieldKinds,
|
|
19
|
-
type FlexFieldSchema,
|
|
20
|
-
type FlexTreeSchema,
|
|
21
|
-
type ViewSchema,
|
|
22
19
|
allowsRepoSuperset,
|
|
23
20
|
cursorForMapTreeField,
|
|
24
21
|
defaultSchemaPolicy,
|
|
@@ -27,6 +24,7 @@ import {
|
|
|
27
24
|
import { fail, isReadonlyArray } from "../util/index.js";
|
|
28
25
|
|
|
29
26
|
import type { ITreeCheckout } from "./treeCheckout.js";
|
|
27
|
+
import type { ViewSchema } from "../simple-tree/index.js";
|
|
30
28
|
|
|
31
29
|
/**
|
|
32
30
|
* Modify `storedSchema` and invoke `setInitialTree` when it's time to set the tree content.
|
|
@@ -246,7 +244,7 @@ export function ensureSchema(
|
|
|
246
244
|
return false;
|
|
247
245
|
}
|
|
248
246
|
case UpdateType.SchemaCompatible: {
|
|
249
|
-
checkout.updateSchema(viewSchema.
|
|
247
|
+
checkout.updateSchema(viewSchema.schema);
|
|
250
248
|
return true;
|
|
251
249
|
}
|
|
252
250
|
case UpdateType.Initialize: {
|
|
@@ -265,28 +263,6 @@ export function ensureSchema(
|
|
|
265
263
|
}
|
|
266
264
|
}
|
|
267
265
|
|
|
268
|
-
/**
|
|
269
|
-
* View Schema for a `SharedTree`.
|
|
270
|
-
*/
|
|
271
|
-
export interface SchemaConfiguration<TRoot extends FlexFieldSchema = FlexFieldSchema> {
|
|
272
|
-
/**
|
|
273
|
-
* The schema which the application wants to view the tree with.
|
|
274
|
-
*/
|
|
275
|
-
readonly schema: FlexTreeSchema<TRoot>;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Content that can populate a `SharedTree`.
|
|
280
|
-
*/
|
|
281
|
-
export interface TreeContent<TRoot extends FlexFieldSchema = FlexFieldSchema>
|
|
282
|
-
extends SchemaConfiguration<TRoot> {
|
|
283
|
-
/**
|
|
284
|
-
* Default tree content to initialize the tree with iff the tree is uninitialized
|
|
285
|
-
* (meaning it does not even have any schema set at all).
|
|
286
|
-
*/
|
|
287
|
-
readonly initialTree: readonly ITreeCursorSynchronous[] | ITreeCursorSynchronous | undefined;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
266
|
/**
|
|
291
267
|
* Content that can populate a `SharedTree`.
|
|
292
268
|
*/
|
|
@@ -299,33 +275,3 @@ export interface TreeStoredContent {
|
|
|
299
275
|
*/
|
|
300
276
|
readonly initialTree: readonly ITreeCursorSynchronous[] | ITreeCursorSynchronous | undefined;
|
|
301
277
|
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Options used to schematize a `SharedTree`.
|
|
305
|
-
*/
|
|
306
|
-
export interface SchematizeConfiguration<TRoot extends FlexFieldSchema = FlexFieldSchema>
|
|
307
|
-
extends SchemaConfiguration<TRoot> {
|
|
308
|
-
/**
|
|
309
|
-
* Controls if and how schema from existing documents can be updated to accommodate the view schema.
|
|
310
|
-
*/
|
|
311
|
-
readonly allowedSchemaModifications: AllowedUpdateType;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* Options used to initialize (if needed) and schematize a `SharedTree`.
|
|
316
|
-
*/
|
|
317
|
-
export interface InitializeAndSchematizeConfiguration<
|
|
318
|
-
TRoot extends FlexFieldSchema = FlexFieldSchema,
|
|
319
|
-
> extends TreeContent<TRoot>,
|
|
320
|
-
SchematizeConfiguration<TRoot> {}
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* Options used to initialize (if needed) and schematize a `SharedTree`.
|
|
324
|
-
* @remarks
|
|
325
|
-
* Using this builder improves type safety and error quality over just constructing the configuration as a object.
|
|
326
|
-
*/
|
|
327
|
-
export function buildTreeConfiguration<T extends FlexFieldSchema>(
|
|
328
|
-
config: InitializeAndSchematizeConfiguration<T>,
|
|
329
|
-
): InitializeAndSchematizeConfiguration<T> {
|
|
330
|
-
return config;
|
|
331
|
-
}
|