@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
|
@@ -2,16 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { type Adapters, type FieldKey, type StoredSchemaCollection, type TreeFieldStoredSchema, type TreeNodeSchemaIdentifier, type TreeNodeStoredSchema, type TreeStoredSchema, type TreeTypeSet, type ValueSchema } from "../../core/index.js";
|
|
6
|
-
import { type MakeNominal, type Named } from "../../util/index.js";
|
|
7
|
-
import { FieldKinds } from "../default-schema/index.js";
|
|
8
|
-
import type { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
|
|
9
|
-
import type { LazyItem } from "./flexList.js";
|
|
10
|
-
/**
|
|
11
|
-
*/
|
|
12
|
-
export interface FlexObjectNodeFields {
|
|
13
|
-
readonly [key: string]: FlexFieldSchema;
|
|
14
|
-
}
|
|
15
5
|
/**
|
|
16
6
|
* 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}.
|
|
17
7
|
*
|
|
@@ -21,206 +11,4 @@ export interface FlexObjectNodeFields {
|
|
|
21
11
|
* @public
|
|
22
12
|
*/
|
|
23
13
|
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
24
|
-
/**
|
|
25
|
-
* T must extend TreeSchemaSpecification.
|
|
26
|
-
* This can not be enforced using TypeScript since doing so breaks recursive type support.
|
|
27
|
-
* See note on SchemaBuilder.fieldRecursive.
|
|
28
|
-
*/
|
|
29
|
-
export declare abstract class TreeNodeSchemaBase<const out Specification = unknown> {
|
|
30
|
-
readonly builder: Named<string>;
|
|
31
|
-
readonly name: TreeNodeSchemaIdentifier;
|
|
32
|
-
readonly info: Specification;
|
|
33
|
-
readonly stored: TreeNodeStoredSchema;
|
|
34
|
-
protected _typeCheck: MakeNominal;
|
|
35
|
-
protected constructor(builder: Named<string>, name: TreeNodeSchemaIdentifier, info: Specification, stored: TreeNodeStoredSchema);
|
|
36
|
-
abstract getFieldSchema(field: FieldKey): FlexFieldSchema;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
*/
|
|
40
|
-
export declare class FlexMapNodeSchema extends TreeNodeSchemaBase {
|
|
41
|
-
get mapFields(): FlexMapFieldSchema;
|
|
42
|
-
protected _typeCheck2?: MakeNominal;
|
|
43
|
-
static create<const Name extends string>(builder: Named<string>, name: TreeNodeSchemaIdentifier<Name>, specification: FlexMapFieldSchema): FlexMapNodeSchema;
|
|
44
|
-
getFieldSchema(field: FieldKey): FlexMapFieldSchema;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
*/
|
|
48
|
-
export declare class LeafNodeSchema extends TreeNodeSchemaBase<ValueSchema> {
|
|
49
|
-
protected _typeCheck2?: MakeNominal;
|
|
50
|
-
constructor(builder: Named<string>, name: string, specification: ValueSchema);
|
|
51
|
-
getFieldSchema(field: FieldKey): FlexFieldSchema;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
*/
|
|
55
|
-
export declare class FlexObjectNodeSchema extends TreeNodeSchemaBase {
|
|
56
|
-
readonly objectNodeFieldsObject: FlexObjectNodeFields;
|
|
57
|
-
readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>;
|
|
58
|
-
protected _typeCheck2?: MakeNominal;
|
|
59
|
-
readonly identifierFieldKeys: readonly FieldKey[];
|
|
60
|
-
static create(builder: Named<string>, name: TreeNodeSchemaIdentifier, specification: FlexObjectNodeFields): FlexObjectNodeSchema;
|
|
61
|
-
private constructor();
|
|
62
|
-
getFieldSchema(field: FieldKey): FlexFieldSchema;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* @privateRemarks
|
|
66
|
-
* This could be an exhaustive union, or just the common base type.
|
|
67
|
-
* Using just the base type prevents exhaustive matching, which has both pros and cons.
|
|
68
|
-
*
|
|
69
|
-
* 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.
|
|
70
|
-
*/
|
|
71
|
-
export type FlexTreeNodeSchema = TreeNodeSchemaBase;
|
|
72
|
-
/**
|
|
73
|
-
* Tree type, but can be wrapped in a function to allow referring to types before they are declared.
|
|
74
|
-
* This makes recursive and co-recursive types possible.
|
|
75
|
-
*/
|
|
76
|
-
export type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema);
|
|
77
|
-
/**
|
|
78
|
-
* Types for use in fields.
|
|
79
|
-
*/
|
|
80
|
-
export type FlexAllowedTypes = readonly LazyItem<FlexTreeNodeSchema>[];
|
|
81
|
-
/**
|
|
82
|
-
* Subset of TreeFieldSchema thats legal in maps.
|
|
83
|
-
* This requires empty to be a valid value for the map.
|
|
84
|
-
*/
|
|
85
|
-
export type FlexMapFieldSchema = FlexFieldSchema<typeof FieldKinds.optional | typeof FieldKinds.sequence>;
|
|
86
|
-
/**
|
|
87
|
-
* All policy for a specific field,
|
|
88
|
-
* including functionality that does not have to be kept consistent across versions or deterministic.
|
|
89
|
-
*
|
|
90
|
-
* This can include policy for how to use this schema for "view" purposes, and well as how to expose editing APIs.
|
|
91
|
-
*
|
|
92
|
-
* @remarks
|
|
93
|
-
* `Types` here must extend `AllowedTypes`, but this cannot be enforced with an "extends" clause: see {@link Unenforced} for details.
|
|
94
|
-
*
|
|
95
|
-
* @typeParam TKind - The kind of field.
|
|
96
|
-
* @typeParam TTypes - The types allowed by the field.
|
|
97
|
-
*
|
|
98
|
-
* @sealed
|
|
99
|
-
*/
|
|
100
|
-
export declare class FlexFieldSchema<out TKind extends FlexFieldKind = FlexFieldKind> {
|
|
101
|
-
readonly kind: TKind;
|
|
102
|
-
readonly allowedTypes: FlexAllowedTypes;
|
|
103
|
-
/**
|
|
104
|
-
* Schema for a field which must always be empty.
|
|
105
|
-
*/
|
|
106
|
-
static readonly empty: FlexFieldSchema<import("../default-schema/defaultFieldKinds.js").Forbidden>;
|
|
107
|
-
/**
|
|
108
|
-
* Constructs a TreeFieldSchema.
|
|
109
|
-
* @privateRemarks
|
|
110
|
-
* Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).
|
|
111
|
-
*/
|
|
112
|
-
static create<TKind extends FlexFieldKind>(kind: TKind, allowedTypes: FlexAllowedTypes): FlexFieldSchema<TKind>;
|
|
113
|
-
protected _typeCheck: MakeNominal;
|
|
114
|
-
/**
|
|
115
|
-
* This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.
|
|
116
|
-
*/
|
|
117
|
-
private readonly lazyTypes;
|
|
118
|
-
/**
|
|
119
|
-
* @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.
|
|
120
|
-
* Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.
|
|
121
|
-
* @param allowedTypes - What types of tree nodes are allowed in this field.
|
|
122
|
-
*/
|
|
123
|
-
private constructor();
|
|
124
|
-
readonly stored: TreeFieldStoredSchema;
|
|
125
|
-
/**
|
|
126
|
-
* Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.
|
|
127
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.
|
|
128
|
-
*/
|
|
129
|
-
get types(): TreeTypeSet;
|
|
130
|
-
/**
|
|
131
|
-
* Types which are allowed in this field.
|
|
132
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.
|
|
133
|
-
* @privateRemarks
|
|
134
|
-
* TODO:
|
|
135
|
-
* 3 ways to access the allowed types are now exposed.
|
|
136
|
-
* Reducing this and/or renaming the more friendly options to take the shorter name (`types`)
|
|
137
|
-
* would be a good idea.
|
|
138
|
-
*/
|
|
139
|
-
get allowedTypeSet(): AllowedTypeSet;
|
|
140
|
-
/**
|
|
141
|
-
* If exactly one type of child is allowed in this field, it is provided here.
|
|
142
|
-
* @remarks
|
|
143
|
-
* Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.
|
|
144
|
-
* This field allows for simple and optimized handling of this case.
|
|
145
|
-
*/
|
|
146
|
-
get monomorphicChildType(): FlexTreeNodeSchema | undefined;
|
|
147
|
-
/**
|
|
148
|
-
* Compare this schema to another.
|
|
149
|
-
*
|
|
150
|
-
* @returns true iff the schema are identical.
|
|
151
|
-
*/
|
|
152
|
-
equals(other: FlexFieldSchema): boolean;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Types for use in fields.
|
|
156
|
-
* This representation is optimized for runtime use in view-schema.
|
|
157
|
-
*
|
|
158
|
-
* @remarks
|
|
159
|
-
* See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.
|
|
160
|
-
* See {@link FlexAllowedTypes} for a compile time optimized version.
|
|
161
|
-
*/
|
|
162
|
-
export type AllowedTypeSet = ReadonlySet<FlexTreeNodeSchema>;
|
|
163
|
-
/**
|
|
164
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
165
|
-
*/
|
|
166
|
-
export declare function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet;
|
|
167
|
-
/**
|
|
168
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
169
|
-
*/
|
|
170
|
-
export declare function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet;
|
|
171
|
-
/**
|
|
172
|
-
* Schema data that can be be used to view a document.
|
|
173
|
-
* Strongly typed over its rootFieldSchema.
|
|
174
|
-
*
|
|
175
|
-
* @remarks
|
|
176
|
-
* The type of the rootFieldSchema is used to implement SchemaAware APIs.
|
|
177
|
-
* Cases that do not require being compile time schema aware can omit the explicit type for it.
|
|
178
|
-
*/
|
|
179
|
-
export interface FlexTreeSchema<out T extends FlexFieldSchema = FlexFieldSchema> extends SchemaCollection {
|
|
180
|
-
/**
|
|
181
|
-
* Schema for the root field which contains the whole tree.
|
|
182
|
-
*/
|
|
183
|
-
readonly rootFieldSchema: T;
|
|
184
|
-
/**
|
|
185
|
-
* Extra configuration for how this schema is handled at runtime.
|
|
186
|
-
*/
|
|
187
|
-
readonly policy: FullSchemaPolicy;
|
|
188
|
-
/**
|
|
189
|
-
* Compatibility information how how to interact with content who's stored schema is not directly compatible with this schema.
|
|
190
|
-
*/
|
|
191
|
-
readonly adapters: Adapters;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.
|
|
195
|
-
*/
|
|
196
|
-
export declare function intoStoredSchema(treeSchema: FlexTreeSchema): TreeStoredSchema;
|
|
197
|
-
/**
|
|
198
|
-
* Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.
|
|
199
|
-
*/
|
|
200
|
-
export declare function intoStoredSchemaCollection(treeSchema: SchemaCollection): StoredSchemaCollection;
|
|
201
|
-
/**
|
|
202
|
-
* Schema data that can be be used to view a document.
|
|
203
|
-
*
|
|
204
|
-
* @privateRemarks
|
|
205
|
-
* It is convenient that this can be used as a StoredSchemaCollection with no conversion.
|
|
206
|
-
* There there isn't a design requirement for this however, so this extends clause can be removed later if needed.
|
|
207
|
-
*/
|
|
208
|
-
export interface SchemaCollection {
|
|
209
|
-
/**
|
|
210
|
-
* {@inheritdoc SchemaCollection}
|
|
211
|
-
*/
|
|
212
|
-
readonly nodeSchema: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.
|
|
216
|
-
*/
|
|
217
|
-
export declare function schemaIsMap(schema: FlexTreeNodeSchema): schema is FlexMapNodeSchema;
|
|
218
|
-
/**
|
|
219
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.
|
|
220
|
-
*/
|
|
221
|
-
export declare function schemaIsLeaf(schema: FlexTreeNodeSchema): schema is LeafNodeSchema;
|
|
222
|
-
/**
|
|
223
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.
|
|
224
|
-
*/
|
|
225
|
-
export declare function schemaIsObjectNode(schema: FlexTreeNodeSchema): schema is FlexObjectNodeSchema;
|
|
226
14
|
//# sourceMappingURL=typedTreeSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedTreeSchema.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"typedTreeSchema.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CAAC,yBAAyB,IAAI,OAAO,CAAC"}
|
|
@@ -2,257 +2,5 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
import { LeafNodeStoredSchema, MapNodeStoredSchema, ObjectNodeStoredSchema, identifierFieldKindIdentifier, } from "../../core/index.js";
|
|
7
|
-
import { compareSets, mapIterable, oneFromSet, filterIterable, brand, } from "../../util/index.js";
|
|
8
|
-
import { FieldKinds } from "../default-schema/index.js";
|
|
9
|
-
import { objectToMapTyped } from "./typeUtils.js";
|
|
10
|
-
{
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* T must extend TreeSchemaSpecification.
|
|
14
|
-
* This can not be enforced using TypeScript since doing so breaks recursive type support.
|
|
15
|
-
* See note on SchemaBuilder.fieldRecursive.
|
|
16
|
-
*/
|
|
17
|
-
export class TreeNodeSchemaBase {
|
|
18
|
-
constructor(builder, name, info, stored) {
|
|
19
|
-
this.builder = builder;
|
|
20
|
-
this.name = name;
|
|
21
|
-
this.info = info;
|
|
22
|
-
this.stored = stored;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
*/
|
|
27
|
-
export class FlexMapNodeSchema extends TreeNodeSchemaBase {
|
|
28
|
-
get mapFields() {
|
|
29
|
-
return this.info;
|
|
30
|
-
}
|
|
31
|
-
static create(builder, name, specification) {
|
|
32
|
-
return new FlexMapNodeSchema(builder, name, specification, new MapNodeStoredSchema(specification.stored));
|
|
33
|
-
}
|
|
34
|
-
getFieldSchema(field) {
|
|
35
|
-
return this.info;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
*/
|
|
40
|
-
export class LeafNodeSchema extends TreeNodeSchemaBase {
|
|
41
|
-
constructor(builder, name, specification) {
|
|
42
|
-
super(builder, brand(name), specification, new LeafNodeStoredSchema(specification));
|
|
43
|
-
}
|
|
44
|
-
getFieldSchema(field) {
|
|
45
|
-
return FlexFieldSchema.empty;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
*/
|
|
50
|
-
export class FlexObjectNodeSchema extends TreeNodeSchemaBase {
|
|
51
|
-
static create(builder, name, specification) {
|
|
52
|
-
const objectNodeFieldsObject = normalizeStructFields(specification);
|
|
53
|
-
const objectNodeFields = objectToMapTyped(objectNodeFieldsObject);
|
|
54
|
-
return new FlexObjectNodeSchema(builder, name, specification, objectNodeFieldsObject, objectNodeFields);
|
|
55
|
-
}
|
|
56
|
-
constructor(builder, name, info, objectNodeFieldsObject,
|
|
57
|
-
// Allows reading fields through the normal map.
|
|
58
|
-
// Stricter typing caused Specification to no longer be covariant, so has been removed.
|
|
59
|
-
objectNodeFields) {
|
|
60
|
-
const fields = mapIterable(objectNodeFields, ([k, v]) => [k, v.stored]);
|
|
61
|
-
super(builder, name, info, new ObjectNodeStoredSchema(new Map(fields)));
|
|
62
|
-
this.objectNodeFieldsObject = objectNodeFieldsObject;
|
|
63
|
-
this.objectNodeFields = objectNodeFields;
|
|
64
|
-
this.identifierFieldKeys = [];
|
|
65
|
-
this.identifierFieldKeys = Array.from(filterIterable(objectNodeFields.entries(), ([k, f]) => f.kind.identifier === identifierFieldKindIdentifier), ([k]) => k);
|
|
66
|
-
}
|
|
67
|
-
getFieldSchema(field) {
|
|
68
|
-
return this.objectNodeFields.get(field) ?? FlexFieldSchema.empty;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
function normalizeStructFields(fields) {
|
|
72
|
-
const out = {};
|
|
73
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
74
|
-
for (const key in fields) {
|
|
75
|
-
if (Object.prototype.hasOwnProperty.call(fields, key)) {
|
|
76
|
-
const element = fields[key];
|
|
77
|
-
out[key] = normalizeField(element);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return out;
|
|
81
|
-
}
|
|
82
|
-
function normalizeField(t) {
|
|
83
|
-
if (t === undefined) {
|
|
84
|
-
return FlexFieldSchema.empty;
|
|
85
|
-
}
|
|
86
|
-
assert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);
|
|
87
|
-
return t;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* All policy for a specific field,
|
|
91
|
-
* including functionality that does not have to be kept consistent across versions or deterministic.
|
|
92
|
-
*
|
|
93
|
-
* This can include policy for how to use this schema for "view" purposes, and well as how to expose editing APIs.
|
|
94
|
-
*
|
|
95
|
-
* @remarks
|
|
96
|
-
* `Types` here must extend `AllowedTypes`, but this cannot be enforced with an "extends" clause: see {@link Unenforced} for details.
|
|
97
|
-
*
|
|
98
|
-
* @typeParam TKind - The kind of field.
|
|
99
|
-
* @typeParam TTypes - The types allowed by the field.
|
|
100
|
-
*
|
|
101
|
-
* @sealed
|
|
102
|
-
*/
|
|
103
|
-
export class FlexFieldSchema {
|
|
104
|
-
/**
|
|
105
|
-
* Constructs a TreeFieldSchema.
|
|
106
|
-
* @privateRemarks
|
|
107
|
-
* Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).
|
|
108
|
-
*/
|
|
109
|
-
static create(kind, allowedTypes) {
|
|
110
|
-
return new FlexFieldSchema(kind, allowedTypes);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.
|
|
114
|
-
* Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.
|
|
115
|
-
* @param allowedTypes - What types of tree nodes are allowed in this field.
|
|
116
|
-
*/
|
|
117
|
-
constructor(kind, allowedTypes) {
|
|
118
|
-
this.kind = kind;
|
|
119
|
-
this.allowedTypes = allowedTypes;
|
|
120
|
-
// Since this class can't have the desired extends clause, do some extra runtime validation:
|
|
121
|
-
assert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);
|
|
122
|
-
for (const allowedType of allowedTypes) {
|
|
123
|
-
if (typeof allowedType !== "function") {
|
|
124
|
-
assert(allowedType instanceof TreeNodeSchemaBase, 0x7be /* Invalid entry in allowedTypes */);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
const lazy = new Lazy(() => {
|
|
128
|
-
const input = this.allowedTypes;
|
|
129
|
-
const schema = allowedTypesSchemaSet(input);
|
|
130
|
-
return {
|
|
131
|
-
names: allowedTypesToTypeSet(input),
|
|
132
|
-
schema,
|
|
133
|
-
monomorphicChildType: oneFromSet(schema),
|
|
134
|
-
};
|
|
135
|
-
});
|
|
136
|
-
this.lazyTypes = lazy;
|
|
137
|
-
this.stored = {
|
|
138
|
-
kind: this.kind.identifier,
|
|
139
|
-
get types() {
|
|
140
|
-
return lazy.value.names;
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.
|
|
146
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.
|
|
147
|
-
*/
|
|
148
|
-
get types() {
|
|
149
|
-
return this.lazyTypes.value.names;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Types which are allowed in this field.
|
|
153
|
-
* This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.
|
|
154
|
-
* @privateRemarks
|
|
155
|
-
* TODO:
|
|
156
|
-
* 3 ways to access the allowed types are now exposed.
|
|
157
|
-
* Reducing this and/or renaming the more friendly options to take the shorter name (`types`)
|
|
158
|
-
* would be a good idea.
|
|
159
|
-
*/
|
|
160
|
-
get allowedTypeSet() {
|
|
161
|
-
return this.lazyTypes.value.schema;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* If exactly one type of child is allowed in this field, it is provided here.
|
|
165
|
-
* @remarks
|
|
166
|
-
* Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.
|
|
167
|
-
* This field allows for simple and optimized handling of this case.
|
|
168
|
-
*/
|
|
169
|
-
get monomorphicChildType() {
|
|
170
|
-
return this.lazyTypes.value.monomorphicChildType;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Compare this schema to another.
|
|
174
|
-
*
|
|
175
|
-
* @returns true iff the schema are identical.
|
|
176
|
-
*/
|
|
177
|
-
equals(other) {
|
|
178
|
-
if (other.kind !== this.kind) {
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
if (other.types === undefined) {
|
|
182
|
-
return this.types === undefined;
|
|
183
|
-
}
|
|
184
|
-
if (this.types === undefined) {
|
|
185
|
-
return false;
|
|
186
|
-
}
|
|
187
|
-
return compareSets({
|
|
188
|
-
a: this.types,
|
|
189
|
-
b: other.types,
|
|
190
|
-
aExtra: () => false,
|
|
191
|
-
bExtra: () => false,
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Schema for a field which must always be empty.
|
|
197
|
-
*/
|
|
198
|
-
FlexFieldSchema.empty = FlexFieldSchema.create(FieldKinds.forbidden, []);
|
|
199
|
-
/**
|
|
200
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
201
|
-
*/
|
|
202
|
-
export function allowedTypesSchemaSet(t) {
|
|
203
|
-
const list = t.map((value) => {
|
|
204
|
-
if (typeof value === "function") {
|
|
205
|
-
return value();
|
|
206
|
-
}
|
|
207
|
-
return value;
|
|
208
|
-
});
|
|
209
|
-
return new Set(list);
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
|
|
213
|
-
*/
|
|
214
|
-
export function allowedTypesToTypeSet(t) {
|
|
215
|
-
const list = allowedTypesSchemaSet(t);
|
|
216
|
-
const names = Array.from(list, (type) => {
|
|
217
|
-
assert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);
|
|
218
|
-
return type.name;
|
|
219
|
-
});
|
|
220
|
-
return new Set(names);
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.
|
|
224
|
-
*/
|
|
225
|
-
export function intoStoredSchema(treeSchema) {
|
|
226
|
-
return {
|
|
227
|
-
rootFieldSchema: treeSchema.rootFieldSchema.stored,
|
|
228
|
-
...intoStoredSchemaCollection(treeSchema),
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.
|
|
233
|
-
*/
|
|
234
|
-
export function intoStoredSchemaCollection(treeSchema) {
|
|
235
|
-
return {
|
|
236
|
-
nodeSchema: new Map(mapIterable(treeSchema.nodeSchema.entries(), ([k, v]) => [k, v.stored])),
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
// These schema type narrowing functions are preferred over `instanceof` due to being easier to migrate to class based schema.
|
|
240
|
-
/**
|
|
241
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.
|
|
242
|
-
*/
|
|
243
|
-
export function schemaIsMap(schema) {
|
|
244
|
-
return schema instanceof FlexMapNodeSchema;
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.
|
|
248
|
-
*/
|
|
249
|
-
export function schemaIsLeaf(schema) {
|
|
250
|
-
return schema instanceof LeafNodeSchema;
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.
|
|
254
|
-
*/
|
|
255
|
-
export function schemaIsObjectNode(schema) {
|
|
256
|
-
return schema instanceof FlexObjectNodeSchema;
|
|
257
|
-
}
|
|
5
|
+
export {};
|
|
258
6
|
//# sourceMappingURL=typedTreeSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedTreeSchema.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, Lazy } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\ttype Adapters,\n\ttype FieldKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\ttype StoredSchemaCollection,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n\ttype TreeTypeSet,\n\ttype ValueSchema,\n\tidentifierFieldKindIdentifier,\n} from \"../../core/index.js\";\nimport {\n\ttype MakeNominal,\n\ttype Named,\n\tcompareSets,\n\tmapIterable,\n\toneFromSet,\n\ttype requireAssignableTo,\n\tfilterIterable,\n\tbrand,\n} from \"../../util/index.js\";\nimport { FieldKinds } from \"../default-schema/index.js\";\nimport type { FlexFieldKind, FullSchemaPolicy } from \"../modular-schema/index.js\";\n\nimport type { LazyItem } from \"./flexList.js\";\nimport { type ObjectToMap, objectToMapTyped } from \"./typeUtils.js\";\n\n/**\n */\nexport interface FlexObjectNodeFields {\n\treadonly [key: string]: FlexFieldSchema;\n}\n\n/**\n * 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}.\n *\n * These extends constraints only serve as documentation:\n * to avoid breaking compilation, this type has to not actually enforce anything, and thus is just `unknown`.\n * Therefore the type safety is the responsibility of the user of the API.\n * @public\n */\nexport type Unenforced<_DesiredExtendsConstraint> = unknown;\n\n{\n\ttype _check = requireAssignableTo<FlexTreeNodeSchema, Unenforced<FlexTreeNodeSchema>>;\n}\n\n/**\n * T must extend TreeSchemaSpecification.\n * This can not be enforced using TypeScript since doing so breaks recursive type support.\n * See note on SchemaBuilder.fieldRecursive.\n */\nexport abstract class TreeNodeSchemaBase<const out Specification = unknown> {\n\tprotected _typeCheck!: MakeNominal;\n\tprotected constructor(\n\t\tpublic readonly builder: Named<string>,\n\t\tpublic readonly name: TreeNodeSchemaIdentifier,\n\t\tpublic readonly info: Specification,\n\t\tpublic readonly stored: TreeNodeStoredSchema,\n\t) {}\n\tpublic abstract getFieldSchema(field: FieldKey): FlexFieldSchema;\n}\n\n/**\n */\nexport class FlexMapNodeSchema extends TreeNodeSchemaBase {\n\tpublic get mapFields(): FlexMapFieldSchema {\n\t\treturn this.info as FlexMapFieldSchema;\n\t}\n\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: FlexMapFieldSchema,\n\t): FlexMapNodeSchema {\n\t\treturn new FlexMapNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tnew MapNodeStoredSchema(specification.stored),\n\t\t);\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexMapFieldSchema {\n\t\treturn this.info as FlexMapFieldSchema;\n\t}\n}\n\n/**\n */\nexport class LeafNodeSchema extends TreeNodeSchemaBase<ValueSchema> {\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic constructor(builder: Named<string>, name: string, specification: ValueSchema) {\n\t\tsuper(builder, brand(name), specification, new LeafNodeStoredSchema(specification));\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexFieldSchema {\n\t\treturn FlexFieldSchema.empty;\n\t}\n}\n\n/**\n */\nexport class FlexObjectNodeSchema extends TreeNodeSchemaBase {\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic readonly identifierFieldKeys: readonly FieldKey[] = [];\n\n\tpublic static create(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier,\n\t\tspecification: FlexObjectNodeFields,\n\t): FlexObjectNodeSchema {\n\t\tconst objectNodeFieldsObject = normalizeStructFields(specification);\n\t\tconst objectNodeFields: ObjectToMap<FlexObjectNodeFields, FieldKey, FlexFieldSchema> =\n\t\t\tobjectToMapTyped(objectNodeFieldsObject);\n\t\treturn new FlexObjectNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tobjectNodeFieldsObject,\n\t\t\tobjectNodeFields,\n\t\t);\n\t}\n\n\tprivate constructor(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier,\n\t\tinfo: FlexObjectNodeFields,\n\t\tpublic readonly objectNodeFieldsObject: FlexObjectNodeFields,\n\t\t// Allows reading fields through the normal map.\n\t\t// Stricter typing caused Specification to no longer be covariant, so has been removed.\n\t\tpublic readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,\n\t) {\n\t\tconst fields = mapIterable(objectNodeFields, ([k, v]) => [k, v.stored] as const);\n\t\tsuper(builder, name, info, new ObjectNodeStoredSchema(new Map(fields)));\n\t\tthis.identifierFieldKeys = Array.from(\n\t\t\tfilterIterable(\n\t\t\t\tobjectNodeFields.entries(),\n\t\t\t\t([k, f]) => f.kind.identifier === identifierFieldKindIdentifier,\n\t\t\t),\n\t\t\t([k]) => k,\n\t\t);\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexFieldSchema {\n\t\treturn this.objectNodeFields.get(field) ?? FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * @privateRemarks\n * This could be an exhaustive union, or just the common base type.\n * Using just the base type prevents exhaustive matching, which has both pros and cons.\n *\n * 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.\n */\nexport type FlexTreeNodeSchema = TreeNodeSchemaBase;\n\nfunction normalizeStructFields<T extends FlexObjectNodeFields>(\n\tfields: T,\n): FlexObjectNodeFields {\n\tconst out: Record<string, FlexFieldSchema> = {};\n\t// eslint-disable-next-line no-restricted-syntax\n\tfor (const key in fields) {\n\t\tif (Object.prototype.hasOwnProperty.call(fields, key)) {\n\t\t\tconst element = fields[key];\n\t\t\tout[key] = normalizeField(element);\n\t\t}\n\t}\n\treturn out;\n}\n\nfunction normalizeField(t: FlexFieldSchema | undefined): FlexFieldSchema {\n\tif (t === undefined) {\n\t\treturn FlexFieldSchema.empty;\n\t}\n\n\tassert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);\n\treturn t;\n}\n\n/**\n * Tree type, but can be wrapped in a function to allow referring to types before they are declared.\n * This makes recursive and co-recursive types possible.\n */\nexport type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema);\n\n/**\n * Types for use in fields.\n */\nexport type FlexAllowedTypes = readonly LazyItem<FlexTreeNodeSchema>[];\n\n/**\n * Subset of TreeFieldSchema thats legal in maps.\n * This requires empty to be a valid value for the map.\n */\nexport type FlexMapFieldSchema = FlexFieldSchema<\n\ttypeof FieldKinds.optional | typeof FieldKinds.sequence\n>;\n\n/**\n * All policy for a specific field,\n * including functionality that does not have to be kept consistent across versions or deterministic.\n *\n * This can include policy for how to use this schema for \"view\" purposes, and well as how to expose editing APIs.\n *\n * @remarks\n * `Types` here must extend `AllowedTypes`, but this cannot be enforced with an \"extends\" clause: see {@link Unenforced} for details.\n *\n * @typeParam TKind - The kind of field.\n * @typeParam TTypes - The types allowed by the field.\n *\n * @sealed\n */\nexport class FlexFieldSchema<out TKind extends FlexFieldKind = FlexFieldKind> {\n\t/**\n\t * Schema for a field which must always be empty.\n\t */\n\tpublic static readonly empty = FlexFieldSchema.create(FieldKinds.forbidden, []);\n\n\t/**\n\t * Constructs a TreeFieldSchema.\n\t * @privateRemarks\n\t * Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).\n\t */\n\tpublic static create<TKind extends FlexFieldKind>(\n\t\tkind: TKind,\n\t\tallowedTypes: FlexAllowedTypes,\n\t): FlexFieldSchema<TKind> {\n\t\treturn new FlexFieldSchema(kind, allowedTypes);\n\t}\n\n\tprotected _typeCheck!: MakeNominal;\n\n\t/**\n\t * This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.\n\t */\n\tprivate readonly lazyTypes: Lazy<{\n\t\tnames: TreeTypeSet;\n\t\tschema: AllowedTypeSet;\n\t\tmonomorphicChildType?: FlexTreeNodeSchema;\n\t}>;\n\n\t/**\n\t * @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.\n\t * Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.\n\t * @param allowedTypes - What types of tree nodes are allowed in this field.\n\t */\n\tprivate constructor(\n\t\tpublic readonly kind: TKind,\n\t\tpublic readonly allowedTypes: FlexAllowedTypes,\n\t) {\n\t\t// Since this class can't have the desired extends clause, do some extra runtime validation:\n\t\tassert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);\n\t\tfor (const allowedType of allowedTypes) {\n\t\t\tif (typeof allowedType !== \"function\") {\n\t\t\t\tassert(\n\t\t\t\t\tallowedType instanceof TreeNodeSchemaBase,\n\t\t\t\t\t0x7be /* Invalid entry in allowedTypes */,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst lazy = new Lazy(() => {\n\t\t\tconst input = this.allowedTypes as unknown as FlexAllowedTypes;\n\t\t\tconst schema = allowedTypesSchemaSet(input);\n\t\t\treturn {\n\t\t\t\tnames: allowedTypesToTypeSet(input),\n\t\t\t\tschema,\n\t\t\t\tmonomorphicChildType: oneFromSet(schema),\n\t\t\t};\n\t\t});\n\n\t\tthis.lazyTypes = lazy;\n\n\t\tthis.stored = {\n\t\t\tkind: this.kind.identifier,\n\t\t\tget types() {\n\t\t\t\treturn lazy.value.names;\n\t\t\t},\n\t\t};\n\t}\n\n\tpublic readonly stored: TreeFieldStoredSchema;\n\n\t/**\n\t * Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.\n\t * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.\n\t */\n\tpublic get types(): TreeTypeSet {\n\t\treturn this.lazyTypes.value.names;\n\t}\n\n\t/**\n\t * Types which are allowed in this field.\n\t * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.\n\t * @privateRemarks\n\t * TODO:\n\t * 3 ways to access the allowed types are now exposed.\n\t * Reducing this and/or renaming the more friendly options to take the shorter name (`types`)\n\t * would be a good idea.\n\t */\n\tpublic get allowedTypeSet(): AllowedTypeSet {\n\t\treturn this.lazyTypes.value.schema;\n\t}\n\n\t/**\n\t * If exactly one type of child is allowed in this field, it is provided here.\n\t * @remarks\n\t * Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.\n\t * This field allows for simple and optimized handling of this case.\n\t */\n\tpublic get monomorphicChildType(): FlexTreeNodeSchema | undefined {\n\t\treturn this.lazyTypes.value.monomorphicChildType;\n\t}\n\n\t/**\n\t * Compare this schema to another.\n\t *\n\t * @returns true iff the schema are identical.\n\t */\n\tpublic equals(other: FlexFieldSchema): boolean {\n\t\tif (other.kind !== this.kind) {\n\t\t\treturn false;\n\t\t}\n\t\tif (other.types === undefined) {\n\t\t\treturn this.types === undefined;\n\t\t}\n\t\tif (this.types === undefined) {\n\t\t\treturn false;\n\t\t}\n\t\treturn compareSets({\n\t\t\ta: this.types,\n\t\t\tb: other.types,\n\t\t\taExtra: () => false,\n\t\t\tbExtra: () => false,\n\t\t});\n\t}\n}\n\n/**\n * Types for use in fields.\n * This representation is optimized for runtime use in view-schema.\n *\n * @remarks\n * See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.\n * See {@link FlexAllowedTypes} for a compile time optimized version.\n */\nexport type AllowedTypeSet = ReadonlySet<FlexTreeNodeSchema>;\n\n/**\n * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.\n */\nexport function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {\n\tconst list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {\n\t\tif (typeof value === \"function\") {\n\t\t\treturn value();\n\t\t}\n\t\treturn value;\n\t});\n\treturn new Set(list);\n}\n\n/**\n * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.\n */\nexport function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {\n\tconst list = allowedTypesSchemaSet(t);\n\tconst names = Array.from(list, (type) => {\n\t\tassert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);\n\t\treturn type.name;\n\t});\n\treturn new Set(names);\n}\n\n/**\n * Schema data that can be be used to view a document.\n * Strongly typed over its rootFieldSchema.\n *\n * @remarks\n * The type of the rootFieldSchema is used to implement SchemaAware APIs.\n * Cases that do not require being compile time schema aware can omit the explicit type for it.\n */\nexport interface FlexTreeSchema<out T extends FlexFieldSchema = FlexFieldSchema>\n\textends SchemaCollection {\n\t/**\n\t * Schema for the root field which contains the whole tree.\n\t */\n\treadonly rootFieldSchema: T;\n\t/**\n\t * Extra configuration for how this schema is handled at runtime.\n\t */\n\treadonly policy: FullSchemaPolicy;\n\t/**\n\t * Compatibility information how how to interact with content who's stored schema is not directly compatible with this schema.\n\t */\n\treadonly adapters: Adapters;\n}\n\n/**\n * Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.\n */\nexport function intoStoredSchema(treeSchema: FlexTreeSchema): TreeStoredSchema {\n\treturn {\n\t\trootFieldSchema: treeSchema.rootFieldSchema.stored,\n\t\t...intoStoredSchemaCollection(treeSchema),\n\t};\n}\n\n/**\n * Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.\n */\nexport function intoStoredSchemaCollection(\n\ttreeSchema: SchemaCollection,\n): StoredSchemaCollection {\n\treturn {\n\t\tnodeSchema: new Map(\n\t\t\tmapIterable(treeSchema.nodeSchema.entries(), ([k, v]) => [k, v.stored]),\n\t\t),\n\t};\n}\n\n/**\n * Schema data that can be be used to view a document.\n *\n * @privateRemarks\n * It is convenient that this can be used as a StoredSchemaCollection with no conversion.\n * There there isn't a design requirement for this however, so this extends clause can be removed later if needed.\n */\nexport interface SchemaCollection {\n\t/**\n\t * {@inheritdoc SchemaCollection}\n\t */\n\treadonly nodeSchema: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>;\n}\n\n// These schema type narrowing functions are preferred over `instanceof` due to being easier to migrate to class based schema.\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.\n */\nexport function schemaIsMap(schema: FlexTreeNodeSchema): schema is FlexMapNodeSchema {\n\treturn schema instanceof FlexMapNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.\n */\nexport function schemaIsLeaf(schema: FlexTreeNodeSchema): schema is LeafNodeSchema {\n\treturn schema instanceof LeafNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.\n */\nexport function schemaIsObjectNode(\n\tschema: FlexTreeNodeSchema,\n): schema is FlexObjectNodeSchema {\n\treturn schema instanceof FlexObjectNodeSchema;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"typedTreeSchema.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * 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}.\n *\n * These extends constraints only serve as documentation:\n * to avoid breaking compilation, this type has to not actually enforce anything, and thus is just `unknown`.\n * Therefore the type safety is the responsibility of the user of the API.\n * @public\n */\nexport type Unenforced<_DesiredExtendsConstraint> = unknown;\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -6,13 +6,13 @@ export { EmptyKey, type FieldKey, type TreeValue, type FieldMapObject, type Node
|
|
|
6
6
|
export { type Brand } from "./util/index.js";
|
|
7
7
|
export { type Listeners, type IsListener, type Listenable, type Off, } from "./events/index.js";
|
|
8
8
|
export { type LazyItem, TreeStatus, type Unenforced, TreeCompressionStrategy, } from "./feature-libraries/index.js";
|
|
9
|
-
export { type ISharedTree, type SharedTreeOptions, ForestType, type SharedTreeContentSnapshot, type SharedTreeFormatOptions, SharedTreeFormatVersion, Tree, type TransactionConstraint, type NodeInDocumentConstraint, type RunTransaction, rollback, } from "./shared-tree/index.js";
|
|
10
|
-
export { TreeArrayNode, type Unhydrated, IterableTreeArrayContent, TreeNode, type ITree, type TreeNodeSchema, TreeViewConfiguration, type ITreeViewConfiguration, type ITreeConfigurationOptions, type TreeView, type TreeViewEvents, SchemaFactory, type ImplicitFieldSchema, type TreeFieldFromImplicitField, type TreeChangeEvents, type NodeFromSchema, type TreeMapNode, type InsertableTreeNodeFromImplicitAllowedTypes, type TreeLeafValue, FieldKind, FieldSchema, type ImplicitAllowedTypes, type InsertableTreeFieldFromImplicitField, type InsertableTypedNode, NodeKind, type TreeObjectNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type SchemaCompatibilityStatus, type FieldProps, type InternalTreeNode, type WithType, type NodeChangedData, type TreeNodeApi, type TreeNodeSchemaCore, type AllowedTypes, type TreeObjectNodeUnsafe, type InsertableTreeNodeFromImplicitAllowedTypesUnsafe, type TreeArrayNodeUnsafe, type TreeMapNodeUnsafe, type InsertableObjectFromSchemaRecordUnsafe, type InsertableTreeFieldFromImplicitFieldUnsafe, type FieldSchemaUnsafe, type typeSchemaSymbol, type ValidateRecursiveSchema, type FixRecursiveArraySchema, adaptEnum, enumFromStrings, singletonSchema, typedObjectValues, type EmptyObject, test_RecursiveObject, test_RecursiveObject_base, test_RecursiveObjectPojoMode, TreeBeta, type TreeChangeEventsBeta, type JsonTreeSchema, type JsonSchemaId, type JsonNodeSchema, type JsonNodeSchemaBase, type JsonLeafNodeSchema, type JsonMapNodeSchema, type JsonArrayNodeSchema, type JsonObjectNodeSchema, type JsonFieldSchema, type JsonSchemaRef, type JsonRefPath, type JsonSchemaType, type JsonLeafSchemaType, getJsonSchema, } from "./simple-tree/index.js";
|
|
9
|
+
export { type ISharedTree, type SharedTreeOptions, ForestType, type SharedTreeContentSnapshot, type SharedTreeFormatOptions, SharedTreeFormatVersion, Tree, type TransactionConstraint, type NodeInDocumentConstraint, type RunTransaction, rollback, getBranch, type TreeBranch, type TreeBranchFork, } from "./shared-tree/index.js";
|
|
10
|
+
export { TreeArrayNode, type Unhydrated, IterableTreeArrayContent, TreeNode, type ViewableTree, type ITree, type TreeNodeSchema, TreeViewConfiguration, type ITreeViewConfiguration, type ITreeConfigurationOptions, type TreeView, type TreeViewEvents, SchemaFactory, type ImplicitFieldSchema, type TreeFieldFromImplicitField, type TreeChangeEvents, type NodeFromSchema, type TreeMapNode, type InsertableTreeNodeFromImplicitAllowedTypes, type TreeLeafValue, FieldKind, FieldSchema, type FieldSchemaMetadata, type ImplicitAllowedTypes, type InsertableTreeFieldFromImplicitField, type InsertableTypedNode, NodeKind, type TreeObjectNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type SchemaCompatibilityStatus, type FieldProps, type InternalTreeNode, type WithType, type NodeChangedData, type TreeNodeApi, type TreeNodeSchemaCore, type AllowedTypes, type TreeObjectNodeUnsafe, type InsertableTreeNodeFromImplicitAllowedTypesUnsafe, type TreeArrayNodeUnsafe, type TreeMapNodeUnsafe, type InsertableObjectFromSchemaRecordUnsafe, type InsertableTreeFieldFromImplicitFieldUnsafe, type FieldSchemaUnsafe, type typeSchemaSymbol, type TreeNodeSchemaNonClass, type ValidateRecursiveSchema, type FixRecursiveArraySchema, adaptEnum, enumFromStrings, singletonSchema, typedObjectValues, type EmptyObject, test_RecursiveObject, test_RecursiveObject_base, test_RecursiveObjectPojoMode, TreeBeta, type TreeChangeEventsBeta, type JsonTreeSchema, type JsonSchemaId, type JsonNodeSchema, type JsonNodeSchemaBase, type JsonLeafNodeSchema, type JsonMapNodeSchema, type JsonArrayNodeSchema, type JsonObjectNodeSchema, type JsonFieldSchema, type JsonSchemaRef, type JsonRefPath, type JsonSchemaType, type JsonLeafSchemaType, getJsonSchema, } from "./simple-tree/index.js";
|
|
11
11
|
export { SharedTree, configuredSharedTree } from "./treeFactory.js";
|
|
12
12
|
export type { ICodecOptions, JsonValidator, SchemaValidationFunction } from "./codec/index.js";
|
|
13
13
|
export { noopValidator } from "./codec/index.js";
|
|
14
14
|
export { typeboxValidator } from "./external-utilities/index.js";
|
|
15
|
-
export { type Covariant, BrandedType, type RestrictiveReadonlyRecord, type MakeNominal, } from "./util/index.js";
|
|
15
|
+
export { type Covariant, BrandedType, type RestrictiveReadonlyRecord, type RestrictiveStringRecord, type MakeNominal, } from "./util/index.js";
|
|
16
16
|
import * as InternalTypes from "./internalTypes.js";
|
|
17
17
|
export {
|
|
18
18
|
/**
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,WAAW,EACX,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,UAAU,EACV,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,iBAAiB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACN,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,GAAG,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,UAAU,EACf,uBAAuB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,IAAI,EACJ,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,WAAW,EACX,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,UAAU,EACV,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,iBAAiB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACN,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,GAAG,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,UAAU,EACf,uBAAuB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,IAAI,EACJ,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,QAAQ,EACR,SAAS,EACT,KAAK,UAAU,EACf,KAAK,cAAc,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,aAAa,EACb,KAAK,UAAU,EACf,wBAAwB,EACxB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,0CAA0C,EAC/C,KAAK,aAAa,EAClB,SAAS,EACT,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oCAAoC,EACzC,KAAK,mBAAmB,EACxB,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,gCAAgC,EACrC,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,eAAe,EAIpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EAIvB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,gDAAgD,EACrD,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sCAAsC,EAC3C,KAAK,0CAA0C,EAC/C,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAE5B,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,KAAK,WAAW,EAEhB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,EAE5B,QAAQ,EACR,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,aAAa,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EACN,KAAK,SAAS,EACd,WAAW,EACX,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO;AACN;;;GAGG;AACH,aAAa,GACb,CAAC;AAKF,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export { EmptyKey, ValueSchema, TreeNodeStoredSchema, CommitKind, RevertibleStatus, ObjectNodeStoredSchema, MapNodeStoredSchema, LeafNodeStoredSchema, } from "./core/index.js";
|
|
6
6
|
export { TreeStatus, TreeCompressionStrategy, } from "./feature-libraries/index.js";
|
|
7
|
-
export { ForestType, SharedTreeFormatVersion, Tree, rollback, } from "./shared-tree/index.js";
|
|
7
|
+
export { ForestType, SharedTreeFormatVersion, Tree, rollback, getBranch, } from "./shared-tree/index.js";
|
|
8
8
|
export { TreeArrayNode, IterableTreeArrayContent, TreeViewConfiguration, SchemaFactory, FieldKind, FieldSchema, NodeKind,
|
|
9
9
|
// experimental @internal APIs:
|
|
10
10
|
adaptEnum, enumFromStrings, singletonSchema, typedObjectValues,
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EAUR,WAAW,EACX,oBAAoB,EAKpB,UAAU,EACV,gBAAgB,EAIhB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GAEpB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAEN,UAAU,EAEV,uBAAuB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAGN,UAAU,EAGV,uBAAuB,EACvB,IAAI,EAIJ,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,QAAQ,EAUR,WAAW,EACX,oBAAoB,EAKpB,UAAU,EACV,gBAAgB,EAIhB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GAEpB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAEN,UAAU,EAEV,uBAAuB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAGN,UAAU,EAGV,uBAAuB,EACvB,IAAI,EAIJ,QAAQ,EACR,SAAS,GAGT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,aAAa,EAEb,wBAAwB,EAKxB,qBAAqB,EAKrB,aAAa,EAQb,SAAS,EACT,WAAW,EAKX,QAAQ;AA+BR,+BAA+B;AAC/B,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB;AAEjB,8EAA8E;AAC9E,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B;AAC5B,YAAY;AACZ,QAAQ,EAgBR,aAAa,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAEN,WAAW,GAIX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO;AACN;;;GAGG;AACH,aAAa,GACb,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n\tEmptyKey,\n\ttype FieldKey,\n\ttype TreeValue,\n\ttype FieldMapObject,\n\ttype NodeData,\n\ttype GenericTreeNode,\n\ttype JsonableTree,\n\ttype GenericFieldsNode,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeFieldStoredSchema,\n\tValueSchema,\n\tTreeNodeStoredSchema,\n\ttype FieldKindIdentifier,\n\ttype TreeTypeSet,\n\ttype TreeStoredSchema,\n\ttype Revertible,\n\tCommitKind,\n\tRevertibleStatus,\n\ttype CommitMetadata,\n\ttype StoredSchemaCollection,\n\ttype ErasedTreeNodeSchemaDataFormat,\n\tObjectNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tLeafNodeStoredSchema,\n\ttype RevertibleFactory,\n} from \"./core/index.js\";\nexport { type Brand } from \"./util/index.js\";\n\nexport {\n\ttype Listeners,\n\ttype IsListener,\n\ttype Listenable,\n\ttype Off,\n} from \"./events/index.js\";\n\nexport {\n\ttype LazyItem,\n\tTreeStatus,\n\ttype Unenforced,\n\tTreeCompressionStrategy,\n} from \"./feature-libraries/index.js\";\n\nexport {\n\ttype ISharedTree,\n\ttype SharedTreeOptions,\n\tForestType,\n\ttype SharedTreeContentSnapshot,\n\ttype SharedTreeFormatOptions,\n\tSharedTreeFormatVersion,\n\tTree,\n\ttype TransactionConstraint,\n\ttype NodeInDocumentConstraint,\n\ttype RunTransaction,\n\trollback,\n\tgetBranch,\n\ttype TreeBranch,\n\ttype TreeBranchFork,\n} from \"./shared-tree/index.js\";\n\nexport {\n\tTreeArrayNode,\n\ttype Unhydrated,\n\tIterableTreeArrayContent,\n\tTreeNode,\n\ttype ViewableTree,\n\ttype ITree,\n\ttype TreeNodeSchema,\n\tTreeViewConfiguration,\n\ttype ITreeViewConfiguration,\n\ttype ITreeConfigurationOptions,\n\ttype TreeView,\n\ttype TreeViewEvents,\n\tSchemaFactory,\n\ttype ImplicitFieldSchema,\n\ttype TreeFieldFromImplicitField,\n\ttype TreeChangeEvents,\n\ttype NodeFromSchema,\n\ttype TreeMapNode,\n\ttype InsertableTreeNodeFromImplicitAllowedTypes,\n\ttype TreeLeafValue,\n\tFieldKind,\n\tFieldSchema,\n\ttype FieldSchemaMetadata,\n\ttype ImplicitAllowedTypes,\n\ttype InsertableTreeFieldFromImplicitField,\n\ttype InsertableTypedNode,\n\tNodeKind,\n\ttype TreeObjectNode,\n\ttype TreeNodeFromImplicitAllowedTypes,\n\ttype TreeNodeSchemaClass,\n\ttype SchemaCompatibilityStatus,\n\ttype FieldProps,\n\ttype InternalTreeNode,\n\ttype WithType,\n\ttype NodeChangedData,\n\t// Types not really intended for public use, but used in links.\n\t// Can not be moved to internalTypes since doing so causes app code to throw errors like:\n\t// Error: src/simple-tree/objectNode.ts:72:1 - (ae-unresolved-link) The @link reference could not be resolved: The package \"@fluidframework/tree\" does not have an export \"TreeNodeApi\"\n\ttype TreeNodeApi,\n\ttype TreeNodeSchemaCore,\n\t// Types not really intended for public use, but used in inferred types exposed in the public API.\n\t// Can not be moved to internalTypes since doing so causes app code to throw errors like:\n\t// error TS2742: The inferred type of 'Inventory' cannot be named without a reference to '../node_modules/@fluidframework/tree/lib/internalTypes.js'. This is likely not portable. A type annotation is necessary.\n\ttype AllowedTypes,\n\ttype TreeObjectNodeUnsafe,\n\ttype InsertableTreeNodeFromImplicitAllowedTypesUnsafe,\n\ttype TreeArrayNodeUnsafe,\n\ttype TreeMapNodeUnsafe,\n\ttype InsertableObjectFromSchemaRecordUnsafe,\n\ttype InsertableTreeFieldFromImplicitFieldUnsafe,\n\ttype FieldSchemaUnsafe,\n\t// System types (not in Internal types for various reasons, like doc links or cannot be named errors).\n\ttype typeSchemaSymbol,\n\ttype TreeNodeSchemaNonClass,\n\t// Recursive Schema APIs\n\ttype ValidateRecursiveSchema,\n\ttype FixRecursiveArraySchema,\n\t// experimental @internal APIs:\n\tadaptEnum,\n\tenumFromStrings,\n\tsingletonSchema,\n\ttypedObjectValues,\n\ttype EmptyObject,\n\t// test recursive schema for checking that d.ts files handles schema correctly\n\ttest_RecursiveObject,\n\ttest_RecursiveObject_base,\n\ttest_RecursiveObjectPojoMode,\n\t// Beta APIs\n\tTreeBeta,\n\ttype TreeChangeEventsBeta,\n\t// Back to normal types\n\ttype JsonTreeSchema,\n\ttype JsonSchemaId,\n\ttype JsonNodeSchema,\n\ttype JsonNodeSchemaBase,\n\ttype JsonLeafNodeSchema,\n\ttype JsonMapNodeSchema,\n\ttype JsonArrayNodeSchema,\n\ttype JsonObjectNodeSchema,\n\ttype JsonFieldSchema,\n\ttype JsonSchemaRef,\n\ttype JsonRefPath,\n\ttype JsonSchemaType,\n\ttype JsonLeafSchemaType,\n\tgetJsonSchema,\n} from \"./simple-tree/index.js\";\nexport { SharedTree, configuredSharedTree } from \"./treeFactory.js\";\n\nexport type { ICodecOptions, JsonValidator, SchemaValidationFunction } from \"./codec/index.js\";\nexport { noopValidator } from \"./codec/index.js\";\nexport { typeboxValidator } from \"./external-utilities/index.js\";\n\nexport {\n\ttype Covariant,\n\tBrandedType,\n\ttype RestrictiveReadonlyRecord,\n\ttype RestrictiveStringRecord,\n\ttype MakeNominal,\n} from \"./util/index.js\";\n\nimport * as InternalTypes from \"./internalTypes.js\";\nexport {\n\t/**\n\t * Contains types used by the API, but which serve mechanical purposes and do not represent semantic concepts.\n\t * They are used internally to implement API aspects, but are not intended for use by external consumers.\n\t */\n\tInternalTypes,\n};\n\n// Internal/System types:\n// These would be put in `internalTypes` except doing so tents to cause errors like:\n// The inferred type of 'NodeMap' cannot be named without a reference to '../../node_modules/@fluidframework/tree/lib/internalTypes.js'. This is likely not portable. A type annotation is necessary.\nexport type { MapNodeInsertableData } from \"./simple-tree/index.js\";\n"]}
|
package/lib/internalTypes.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
export type { _InlineTrick, FlattenKeys } from "./util/index.js";
|
|
6
|
-
export type { ApplyKind, NodeBuilderData, FieldHasDefault,
|
|
6
|
+
export type { ApplyKind, NodeBuilderData, FieldHasDefault, TreeArrayNodeBase, ScopedSchemaName, DefaultProvider, typeNameSymbol, InsertableObjectFromSchemaRecord, ObjectFromSchemaRecord, FieldHasDefaultUnsafe, ObjectFromSchemaRecordUnsafe, TreeObjectNodeUnsafe, TreeFieldFromImplicitFieldUnsafe, TreeNodeFromImplicitAllowedTypesUnsafe, InsertableTreeNodeFromImplicitAllowedTypesUnsafe, TreeArrayNodeUnsafe, TreeMapNodeUnsafe, InsertableObjectFromSchemaRecordUnsafe, InsertableTreeFieldFromImplicitFieldUnsafe, InsertableTypedNodeUnsafe, NodeBuilderDataUnsafe, NodeFromSchemaUnsafe, ReadonlyMapInlined, } from "./simple-tree/index.js";
|
|
7
7
|
export type { FlexList, FlexListToUnion, ExtractItemType } from "./feature-libraries/index.js";
|
|
8
8
|
export type { TreeApi } from "./shared-tree/index.js";
|
|
9
9
|
//# sourceMappingURL=internalTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../src/internalTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../src/internalTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gCAAgC,EAChC,sBAAsB,EAEtB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,gCAAgC,EAChC,sCAAsC,EACtC,gDAAgD,EAChD,mBAAmB,EACnB,iBAAiB,EACjB,sCAAsC,EACtC,0CAA0C,EAC1C,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,GAClB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/F,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC"}
|