@fluidframework/tree 2.32.0 → 2.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/api-report/tree.alpha.api.md +169 -192
- package/api-report/tree.beta.api.md +135 -164
- package/api-report/tree.legacy.alpha.api.md +138 -167
- package/api-report/tree.legacy.public.api.md +135 -164
- package/api-report/tree.public.api.md +135 -164
- package/dist/alpha.d.ts +3 -11
- package/dist/beta.d.ts +2 -11
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/schema-stored/index.d.ts +1 -1
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js +1 -2
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +4 -11
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +7 -14
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +31 -24
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/deltaUtil.d.ts +1 -4
- package/dist/core/tree/deltaUtil.d.ts.map +1 -1
- package/dist/core/tree/deltaUtil.js +1 -13
- package/dist/core/tree/deltaUtil.js.map +1 -1
- package/dist/core/tree/visitDelta.d.ts +6 -29
- package/dist/core/tree/visitDelta.d.ts.map +1 -1
- package/dist/core/tree/visitDelta.js +11 -50
- package/dist/core/tree/visitDelta.js.map +1 -1
- package/dist/core/tree/visitorUtils.d.ts +12 -9
- package/dist/core/tree/visitorUtils.d.ts.map +1 -1
- package/dist/core/tree/visitorUtils.js +19 -32
- package/dist/core/tree/visitorUtils.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/chunkedForest.js +6 -11
- package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +41 -5
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +43 -26
- package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +1 -1
- package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +5 -0
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +4 -0
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +8 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js +8 -0
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/dist/feature-libraries/indexing/anchorTreeIndex.js +15 -22
- package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/dist/feature-libraries/node-identifier/nodeIdentifierManager.d.ts.map +1 -1
- package/dist/feature-libraries/node-identifier/nodeIdentifierManager.js +29 -25
- package/dist/feature-libraries/node-identifier/nodeIdentifierManager.js.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/dist/feature-libraries/object-forest/objectForest.js +1 -7
- package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +1 -1
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- 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/jsonDomainSchema.d.ts +6 -6
- package/dist/jsonDomainSchema.d.ts.map +1 -1
- package/dist/jsonDomainSchema.js.map +1 -1
- package/dist/legacy.d.ts +2 -11
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +2 -11
- package/dist/serializableDomainSchema.d.ts +5 -5
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +1 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js +4 -0
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +3 -2
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -2
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +4 -35
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +4 -54
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +28 -28
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +11 -11
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +6 -7
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +24 -5
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js +14 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/testRecursiveDomain.d.ts +10 -10
- package/dist/simple-tree/api/tree.d.ts +1 -14
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +237 -220
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +2 -2
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +9 -2
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +39 -24
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/types.d.ts +14 -4
- package/dist/simple-tree/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js +14 -4
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +2 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.js +3 -0
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/dist/simple-tree/index.d.ts +1 -1
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +3 -2
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +9 -2
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +3 -0
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +10 -5
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +5 -2
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/tableSchema.d.ts +78 -26
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +53 -24
- package/dist/tableSchema.js.map +1 -1
- package/dist/treeFactory.d.ts +6 -12
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +56 -5
- package/dist/treeFactory.js.map +1 -1
- package/lib/alpha.d.ts +3 -11
- package/lib/beta.d.ts +2 -11
- 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/schema-stored/index.d.ts +1 -1
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +1 -1
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +4 -11
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +6 -12
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +31 -24
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/deltaUtil.d.ts +1 -4
- package/lib/core/tree/deltaUtil.d.ts.map +1 -1
- package/lib/core/tree/deltaUtil.js +0 -9
- package/lib/core/tree/deltaUtil.js.map +1 -1
- package/lib/core/tree/visitDelta.d.ts +6 -29
- package/lib/core/tree/visitDelta.d.ts.map +1 -1
- package/lib/core/tree/visitDelta.js +12 -51
- package/lib/core/tree/visitDelta.js.map +1 -1
- package/lib/core/tree/visitorUtils.d.ts +12 -9
- package/lib/core/tree/visitorUtils.d.ts.map +1 -1
- package/lib/core/tree/visitorUtils.js +19 -32
- package/lib/core/tree/visitorUtils.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/chunkedForest.js +6 -11
- package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +41 -5
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +43 -26
- package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +1 -1
- package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +5 -0
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +5 -1
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +8 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js +8 -0
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
- package/lib/feature-libraries/indexing/anchorTreeIndex.js +15 -22
- package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
- package/lib/feature-libraries/node-identifier/nodeIdentifierManager.d.ts.map +1 -1
- package/lib/feature-libraries/node-identifier/nodeIdentifierManager.js +28 -24
- package/lib/feature-libraries/node-identifier/nodeIdentifierManager.js.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
- package/lib/feature-libraries/object-forest/objectForest.js +1 -7
- package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +2 -2
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/lib/index.d.ts +1 -1
- 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/jsonDomainSchema.d.ts +6 -6
- package/lib/jsonDomainSchema.d.ts.map +1 -1
- package/lib/jsonDomainSchema.js.map +1 -1
- package/lib/legacy.d.ts +2 -11
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +2 -11
- package/lib/serializableDomainSchema.d.ts +5 -5
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +1 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js +4 -0
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +3 -2
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -1
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +4 -35
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +2 -51
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +28 -28
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +11 -11
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +6 -7
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +24 -5
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js +12 -0
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/testRecursiveDomain.d.ts +10 -10
- package/lib/simple-tree/api/tree.d.ts +1 -14
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +237 -220
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +2 -2
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +9 -2
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +40 -25
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/types.d.ts +14 -4
- package/lib/simple-tree/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js +14 -4
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +2 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.js +3 -0
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
- package/lib/simple-tree/index.d.ts +1 -1
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +9 -2
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +4 -1
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +10 -5
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +5 -2
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/tableSchema.d.ts +78 -26
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +53 -24
- package/lib/tableSchema.js.map +1 -1
- package/lib/treeFactory.d.ts +6 -12
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +55 -3
- package/lib/treeFactory.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +22 -23
- package/src/core/index.ts +0 -2
- package/src/core/schema-stored/index.ts +0 -2
- package/src/core/schema-stored/schema.ts +10 -29
- package/src/core/tree/anchorSet.ts +32 -24
- package/src/core/tree/deltaUtil.ts +1 -13
- package/src/core/tree/visitDelta.ts +24 -81
- package/src/core/tree/visitorUtils.ts +43 -53
- package/src/feature-libraries/chunked-forest/chunkedForest.ts +7 -22
- package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +1 -1
- package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +45 -27
- package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +1 -1
- package/src/feature-libraries/flex-tree/context.ts +11 -1
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +8 -0
- package/src/feature-libraries/indexing/anchorTreeIndex.ts +17 -28
- package/src/feature-libraries/node-identifier/nodeIdentifierManager.ts +39 -38
- package/src/feature-libraries/object-forest/objectForest.ts +1 -18
- package/src/feature-libraries/schema-index/codec.ts +1 -2
- package/src/index.ts +3 -11
- package/src/internalTypes.ts +0 -19
- package/src/jsonDomainSchema.ts +1 -3
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +6 -0
- package/src/shared-tree/index.ts +8 -3
- package/src/shared-tree/sharedTree.ts +5 -133
- package/src/simple-tree/api/index.ts +2 -22
- package/src/simple-tree/api/schemaFactory.ts +40 -54
- package/src/simple-tree/api/schemaFactoryAlpha.ts +9 -14
- package/src/simple-tree/api/schemaFactoryRecursive.ts +25 -5
- package/src/simple-tree/api/tree.ts +1 -14
- package/src/simple-tree/api/typesUnsafe.ts +359 -341
- package/src/simple-tree/arrayNode.ts +2 -2
- package/src/simple-tree/core/treeNodeKernel.ts +46 -28
- package/src/simple-tree/core/types.ts +14 -4
- package/src/simple-tree/core/unhydratedFlexTree.ts +5 -1
- package/src/simple-tree/index.ts +2 -22
- package/src/simple-tree/objectNode.ts +13 -4
- package/src/simple-tree/schemaTypes.ts +11 -7
- package/src/tableSchema.ts +190 -63
- package/src/treeFactory.ts +151 -8
|
@@ -51,382 +51,398 @@ import type { SimpleArrayNodeSchema, SimpleMapNodeSchema } from "../simpleSchema
|
|
|
51
51
|
export type Unenforced<_DesiredExtendsConstraint> = unknown;
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
-
* {@link Unenforced}
|
|
55
|
-
*
|
|
56
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
54
|
+
* A collection of {@link Unenforced} types that are used in the implementation of recursive schema.
|
|
55
|
+
* These are all `@system` types, and thus should not be used directly.
|
|
57
56
|
* @privateRemarks
|
|
58
|
-
*
|
|
57
|
+
* Due to limitations of API-Extractor, all types in this namespace are treated as `@public`:
|
|
58
|
+
* therefore, non-public types should not be included in this namespace.
|
|
59
59
|
* @system @public
|
|
60
60
|
*/
|
|
61
|
-
export
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
61
|
+
export namespace System_Unsafe {
|
|
62
|
+
/**
|
|
63
|
+
* {@link Unenforced} version of `ObjectFromSchemaRecord`.
|
|
64
|
+
* @remarks
|
|
65
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
66
|
+
* @privateRemarks
|
|
67
|
+
* This does not bother special casing `{}` since no one should make empty objects using the *Recursive APIs.
|
|
68
|
+
* @system @public
|
|
69
|
+
*/
|
|
70
|
+
export type ObjectFromSchemaRecordUnsafe<
|
|
71
|
+
T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>,
|
|
72
|
+
> = {
|
|
73
|
+
-readonly [Property in keyof T]: Property extends string
|
|
74
|
+
? TreeFieldFromImplicitFieldUnsafe<T[Property]>
|
|
75
|
+
: unknown;
|
|
76
|
+
};
|
|
68
77
|
|
|
69
|
-
/**
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
export type TreeNodeSchemaUnsafe<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
> =
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
/**
|
|
79
|
+
* {@link Unenforced} version of {@link TreeNodeSchema}.
|
|
80
|
+
* @remarks
|
|
81
|
+
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
82
|
+
* @system @public
|
|
83
|
+
*/
|
|
84
|
+
export type TreeNodeSchemaUnsafe<
|
|
85
|
+
Name extends string = string,
|
|
86
|
+
Kind extends NodeKind = NodeKind,
|
|
87
|
+
TNode extends Unenforced<TreeNode | TreeLeafValue> = unknown,
|
|
88
|
+
TBuild = never,
|
|
89
|
+
ImplicitlyConstructable extends boolean = boolean,
|
|
90
|
+
Info = unknown,
|
|
91
|
+
> =
|
|
92
|
+
| TreeNodeSchemaClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>
|
|
93
|
+
| TreeNodeSchemaNonClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
|
|
85
94
|
|
|
86
|
-
/**
|
|
87
|
-
* {@link Unenforced} version of {@link TreeNodeSchemaClass}.
|
|
88
|
-
* @remarks
|
|
89
|
-
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
90
|
-
* @system @public
|
|
91
|
-
*/
|
|
92
|
-
export interface TreeNodeSchemaClassUnsafe<
|
|
93
|
-
out Name extends string,
|
|
94
|
-
out Kind extends NodeKind,
|
|
95
|
-
out TNode extends Unenforced<TreeNode>,
|
|
96
|
-
in TInsertable,
|
|
97
|
-
out ImplicitlyConstructable extends boolean,
|
|
98
|
-
out Info,
|
|
99
|
-
out TCustomMetadata = unknown,
|
|
100
|
-
> extends TreeNodeSchemaCore<
|
|
101
|
-
Name,
|
|
102
|
-
Kind,
|
|
103
|
-
ImplicitlyConstructable,
|
|
104
|
-
Info,
|
|
105
|
-
never,
|
|
106
|
-
TCustomMetadata
|
|
107
|
-
> {
|
|
108
95
|
/**
|
|
109
|
-
*
|
|
96
|
+
* {@link Unenforced} version of {@link TreeNodeSchemaClass}.
|
|
110
97
|
* @remarks
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* @sealed
|
|
98
|
+
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
99
|
+
* @system @public
|
|
114
100
|
*/
|
|
115
|
-
|
|
116
|
-
|
|
101
|
+
export interface TreeNodeSchemaClassUnsafe<
|
|
102
|
+
out Name extends string,
|
|
103
|
+
out Kind extends NodeKind,
|
|
104
|
+
out TNode extends Unenforced<TreeNode>,
|
|
105
|
+
in TInsertable,
|
|
106
|
+
out ImplicitlyConstructable extends boolean,
|
|
107
|
+
out Info,
|
|
108
|
+
out TCustomMetadata = unknown,
|
|
109
|
+
> extends TreeNodeSchemaCore<
|
|
110
|
+
Name,
|
|
111
|
+
Kind,
|
|
112
|
+
ImplicitlyConstructable,
|
|
113
|
+
Info,
|
|
114
|
+
never,
|
|
115
|
+
TCustomMetadata
|
|
116
|
+
> {
|
|
117
|
+
/**
|
|
118
|
+
* Constructs an {@link Unhydrated} node with this schema.
|
|
119
|
+
* @remarks
|
|
120
|
+
* This constructor is also used internally to construct hydrated nodes with a different parameter type.
|
|
121
|
+
* Therefore, overriding this constructor with different argument types is not type-safe and is not supported.
|
|
122
|
+
* @sealed
|
|
123
|
+
*/
|
|
124
|
+
new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
|
|
125
|
+
}
|
|
117
126
|
|
|
118
|
-
/**
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
export interface TreeNodeSchemaNonClassUnsafe<
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
132
|
-
|
|
133
|
-
}
|
|
127
|
+
/**
|
|
128
|
+
* {@link Unenforced} version of {@link TreeNodeSchemaNonClass}.
|
|
129
|
+
* @remarks
|
|
130
|
+
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
131
|
+
* @system @public
|
|
132
|
+
*/
|
|
133
|
+
export interface TreeNodeSchemaNonClassUnsafe<
|
|
134
|
+
out Name extends string,
|
|
135
|
+
out Kind extends NodeKind,
|
|
136
|
+
out TNode extends Unenforced<TreeNode | TreeLeafValue>,
|
|
137
|
+
in TInsertable,
|
|
138
|
+
out ImplicitlyConstructable extends boolean,
|
|
139
|
+
out Info = unknown,
|
|
140
|
+
> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
|
|
141
|
+
create(data: TInsertable): TNode;
|
|
142
|
+
}
|
|
134
143
|
|
|
135
|
-
/**
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
export type TreeObjectNodeUnsafe<
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
144
|
+
/**
|
|
145
|
+
* {@link Unenforced} version of {@link TreeObjectNode}.
|
|
146
|
+
* @remarks
|
|
147
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
148
|
+
* @system @public
|
|
149
|
+
*/
|
|
150
|
+
export type TreeObjectNodeUnsafe<
|
|
151
|
+
T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>,
|
|
152
|
+
TypeName extends string = string,
|
|
153
|
+
> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
145
154
|
|
|
146
|
-
/**
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
export type TreeFieldFromImplicitFieldUnsafe<TSchema extends ImplicitFieldSchemaUnsafe> =
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
/**
|
|
156
|
+
* {@link Unenforced} version of {@link TreeFieldFromImplicitField}.
|
|
157
|
+
* @remarks
|
|
158
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
159
|
+
* @system @public
|
|
160
|
+
*/
|
|
161
|
+
export type TreeFieldFromImplicitFieldUnsafe<TSchema extends ImplicitFieldSchemaUnsafe> =
|
|
162
|
+
TSchema extends FieldSchemaUnsafe<infer Kind, infer Types>
|
|
163
|
+
? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind>
|
|
164
|
+
: TSchema extends ImplicitAllowedTypesUnsafe
|
|
165
|
+
? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema>
|
|
166
|
+
: unknown;
|
|
158
167
|
|
|
159
|
-
/**
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
export type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
168
|
+
/**
|
|
169
|
+
* {@link Unenforced} version of {@link AllowedTypes}.
|
|
170
|
+
* @remarks
|
|
171
|
+
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
172
|
+
* @system @public
|
|
173
|
+
*/
|
|
174
|
+
export type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
|
|
166
175
|
|
|
167
|
-
/**
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
export type ImplicitAllowedTypesUnsafe =
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
176
|
+
/**
|
|
177
|
+
* {@link Unenforced} version of {@link ImplicitAllowedTypes}.
|
|
178
|
+
* @remarks
|
|
179
|
+
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
180
|
+
* @privateRemarks
|
|
181
|
+
* This is similar to `Unenforced<ImplicitAllowedTypes>` in that it avoids constraining the schema
|
|
182
|
+
* (which is necessary to avoid breaking recursive types),
|
|
183
|
+
* but is superior from a safety perspective because it constrains the structure containing the schema.
|
|
184
|
+
* @system @public
|
|
185
|
+
*/
|
|
186
|
+
export type ImplicitAllowedTypesUnsafe =
|
|
187
|
+
| TreeNodeSchemaUnsafe
|
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments
|
|
189
|
+
| readonly LazyItem<Unenforced<TreeNodeSchema>>[];
|
|
181
190
|
|
|
182
|
-
/**
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
export type ImplicitFieldSchemaUnsafe =
|
|
193
|
-
|
|
194
|
-
|
|
191
|
+
/**
|
|
192
|
+
* {@link Unenforced} version of {@link ImplicitFieldSchema}.
|
|
193
|
+
* @remarks
|
|
194
|
+
* Do not use this type directly: it is only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
195
|
+
* @privateRemarks
|
|
196
|
+
* This is similar to `Unenforced<ImplicitFieldSchema>` in that it avoids constraining the schema
|
|
197
|
+
* (which is necessary to avoid breaking recursive types),
|
|
198
|
+
* but is superior from a safety perspective because it constrains the structure containing the schema.
|
|
199
|
+
* @system @public
|
|
200
|
+
*/
|
|
201
|
+
export type ImplicitFieldSchemaUnsafe =
|
|
202
|
+
| FieldSchemaUnsafe<FieldKind, ImplicitAllowedTypesUnsafe>
|
|
203
|
+
| ImplicitAllowedTypesUnsafe;
|
|
195
204
|
|
|
196
|
-
/**
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
export type TreeNodeFromImplicitAllowedTypesUnsafe<
|
|
203
|
-
|
|
204
|
-
> = TSchema extends TreeNodeSchemaUnsafe
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
205
|
+
/**
|
|
206
|
+
* {@link Unenforced} version of {@link TreeNodeFromImplicitAllowedTypes}.
|
|
207
|
+
* @remarks
|
|
208
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
209
|
+
* @system @public
|
|
210
|
+
*/
|
|
211
|
+
export type TreeNodeFromImplicitAllowedTypesUnsafe<
|
|
212
|
+
TSchema extends ImplicitAllowedTypesUnsafe,
|
|
213
|
+
> = TSchema extends TreeNodeSchemaUnsafe
|
|
214
|
+
? NodeFromSchemaUnsafe<TSchema>
|
|
215
|
+
: TSchema extends AllowedTypesUnsafe
|
|
216
|
+
? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>>
|
|
217
|
+
: unknown;
|
|
209
218
|
|
|
210
|
-
/**
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<
|
|
218
|
-
|
|
219
|
-
> = [TSchema] extends [TreeNodeSchemaUnsafe]
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
219
|
+
/**
|
|
220
|
+
* {@link Unenforced} version of {@link InsertableTreeNodeFromImplicitAllowedTypes}.
|
|
221
|
+
* @see {@link Input}
|
|
222
|
+
* @remarks
|
|
223
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
224
|
+
* @system @public
|
|
225
|
+
*/
|
|
226
|
+
export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<
|
|
227
|
+
TSchema extends ImplicitAllowedTypesUnsafe,
|
|
228
|
+
> = [TSchema] extends [TreeNodeSchemaUnsafe]
|
|
229
|
+
? InsertableTypedNodeUnsafe<TSchema>
|
|
230
|
+
: [TSchema] extends [AllowedTypesUnsafe]
|
|
231
|
+
? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema>
|
|
232
|
+
: never;
|
|
224
233
|
|
|
225
|
-
/**
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
+
/**
|
|
235
|
+
* {@link Unenforced} version of {@link InsertableTreeNodeFromAllowedTypes}.
|
|
236
|
+
* @see {@link Input}
|
|
237
|
+
* @privateRemarks
|
|
238
|
+
* TODO: AB#36348: it seems like the order of the union this produces is what is non-deterministic in incremental builds
|
|
239
|
+
* of the JsonAsTree schema.
|
|
240
|
+
* @system @public
|
|
241
|
+
*/
|
|
242
|
+
export type InsertableTreeNodeFromAllowedTypesUnsafe<TList extends AllowedTypesUnsafe> = [
|
|
243
|
+
TList,
|
|
244
|
+
] extends [
|
|
245
|
+
readonly [
|
|
246
|
+
LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
|
|
247
|
+
...infer Rest extends AllowedTypesUnsafe,
|
|
248
|
+
],
|
|
234
249
|
]
|
|
235
250
|
? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest>
|
|
236
251
|
: never;
|
|
237
252
|
|
|
238
|
-
/**
|
|
239
|
-
* {@link Unenforced} version of {@link InsertableTypedNode}.
|
|
240
|
-
* @see {@link Input}
|
|
241
|
-
* @remarks
|
|
242
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
243
|
-
* @privateRemarks
|
|
244
|
-
* TODO:
|
|
245
|
-
* This is less strict than InsertableTypedNode when given non-exact schema to avoid compilation issues.
|
|
246
|
-
* This should probably be fixed or documented somehow.
|
|
247
|
-
* @system @public
|
|
248
|
-
*/
|
|
249
|
-
export type InsertableTypedNodeUnsafe<
|
|
250
|
-
TSchema extends TreeNodeSchemaUnsafe,
|
|
251
|
-
T = UnionToIntersection<TSchema>,
|
|
252
|
-
> =
|
|
253
|
-
| (T extends TreeNodeSchemaUnsafe<string, NodeKind, TreeNode | TreeLeafValue, never, true>
|
|
254
|
-
? NodeBuilderDataUnsafe<T>
|
|
255
|
-
: never)
|
|
256
|
-
| (T extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<T> : never);
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* {@link Unenforced} version of {@link NodeFromSchema}.
|
|
260
|
-
* @remarks
|
|
261
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
262
|
-
* @system @public
|
|
263
|
-
*/
|
|
264
|
-
export type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> =
|
|
265
|
-
T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* {@link Unenforced} version of {@link InsertableTreeNodeFromImplicitAllowedTypes}.
|
|
269
|
-
* @remarks
|
|
270
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
271
|
-
* @system @public
|
|
272
|
-
*/
|
|
273
|
-
export type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> =
|
|
274
|
-
T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* {@link Unenforced} version of {@link (TreeArrayNode:interface)}.
|
|
278
|
-
* @remarks
|
|
279
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
280
|
-
* @system @sealed @public
|
|
281
|
-
*/
|
|
282
|
-
export interface TreeArrayNodeUnsafe<TAllowedTypes extends ImplicitAllowedTypesUnsafe>
|
|
283
|
-
extends TreeArrayNode<
|
|
284
|
-
TAllowedTypes,
|
|
285
|
-
TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>,
|
|
286
|
-
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>
|
|
287
|
-
> {}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* {@link Unenforced} version of {@link TreeMapNode}.
|
|
291
|
-
* @remarks
|
|
292
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
293
|
-
* @system @sealed @public
|
|
294
|
-
*/
|
|
295
|
-
export interface TreeMapNodeUnsafe<T extends ImplicitAllowedTypesUnsafe>
|
|
296
|
-
extends ReadonlyMapInlined<string, T>,
|
|
297
|
-
TreeNode {
|
|
298
253
|
/**
|
|
299
|
-
* {@
|
|
254
|
+
* {@link Unenforced} version of {@link InsertableTypedNode}.
|
|
255
|
+
* @see {@link Input}
|
|
256
|
+
* @remarks
|
|
257
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
258
|
+
* @privateRemarks
|
|
259
|
+
* TODO:
|
|
260
|
+
* This is less strict than InsertableTypedNode when given non-exact schema to avoid compilation issues.
|
|
261
|
+
* This should probably be fixed or documented somehow.
|
|
262
|
+
* @system @public
|
|
300
263
|
*/
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
264
|
+
export type InsertableTypedNodeUnsafe<
|
|
265
|
+
TSchema extends TreeNodeSchemaUnsafe,
|
|
266
|
+
T = UnionToIntersection<TSchema>,
|
|
267
|
+
> =
|
|
268
|
+
| (T extends TreeNodeSchemaUnsafe<string, NodeKind, TreeNode | TreeLeafValue, never, true>
|
|
269
|
+
? NodeBuilderDataUnsafe<T>
|
|
270
|
+
: never)
|
|
271
|
+
| (T extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<T> : never);
|
|
305
272
|
|
|
306
273
|
/**
|
|
307
|
-
* {@
|
|
274
|
+
* {@link Unenforced} version of {@link NodeFromSchema}.
|
|
275
|
+
* @remarks
|
|
276
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
277
|
+
* @system @public
|
|
308
278
|
*/
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* Copy of TypeScript's ReadonlyMap, but with `TreeNodeFromImplicitAllowedTypesUnsafe<T>` inlined into it.
|
|
314
|
-
* Using this instead of ReadonlyMap in TreeMapNodeUnsafe is necessary to make recursive map schema not generate compile errors in the d.ts files when exported.
|
|
315
|
-
* @remarks
|
|
316
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
317
|
-
* @privateRemarks
|
|
318
|
-
* This is the same as `ReadonlyMap<K, TreeNodeFromImplicitAllowedTypesUnsafe<T>>` (Checked in test),
|
|
319
|
-
* except that it avoids the above mentioned compile error.
|
|
320
|
-
* Authored by manually inlining ReadonlyMap from from the TypeScript lib which can be found by navigating to the definition of `ReadonlyMap`.
|
|
321
|
-
* @system @sealed @public
|
|
322
|
-
*/
|
|
323
|
-
export interface ReadonlyMapInlined<K, T extends ImplicitAllowedTypesUnsafe> {
|
|
324
|
-
/** Returns an iterable of entries in the map. */
|
|
325
|
-
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
279
|
+
export type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> =
|
|
280
|
+
T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
|
|
326
281
|
|
|
327
282
|
/**
|
|
328
|
-
*
|
|
283
|
+
* {@link Unenforced} version of {@link InsertableTreeNodeFromImplicitAllowedTypes}.
|
|
284
|
+
* @remarks
|
|
285
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
286
|
+
* @system @public
|
|
329
287
|
*/
|
|
330
|
-
|
|
288
|
+
export type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> =
|
|
289
|
+
T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
|
|
331
290
|
|
|
332
291
|
/**
|
|
333
|
-
*
|
|
292
|
+
* {@link Unenforced} version of {@link (TreeArrayNode:interface)}.
|
|
293
|
+
* @remarks
|
|
294
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
295
|
+
* @system @sealed @public
|
|
334
296
|
*/
|
|
335
|
-
|
|
297
|
+
export interface TreeArrayNodeUnsafe<TAllowedTypes extends ImplicitAllowedTypesUnsafe>
|
|
298
|
+
extends TreeArrayNode<
|
|
299
|
+
TAllowedTypes,
|
|
300
|
+
TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>,
|
|
301
|
+
InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>
|
|
302
|
+
> {}
|
|
336
303
|
|
|
337
304
|
/**
|
|
338
|
-
*
|
|
305
|
+
* {@link Unenforced} version of {@link TreeMapNode}.
|
|
306
|
+
* @remarks
|
|
307
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
308
|
+
* @system @sealed @public
|
|
339
309
|
*/
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
310
|
+
export interface TreeMapNodeUnsafe<T extends ImplicitAllowedTypesUnsafe>
|
|
311
|
+
extends ReadonlyMapInlined<string, T>,
|
|
312
|
+
TreeNode {
|
|
313
|
+
/**
|
|
314
|
+
* {@inheritdoc TreeMapNode.set}
|
|
315
|
+
*/
|
|
316
|
+
set(
|
|
317
|
+
key: string,
|
|
318
|
+
value: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined,
|
|
319
|
+
): void;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* {@inheritdoc TreeMapNode.delete}
|
|
323
|
+
*/
|
|
324
|
+
delete(key: string): void;
|
|
325
|
+
}
|
|
354
326
|
|
|
355
|
-
/**
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
327
|
+
/**
|
|
328
|
+
* Copy of TypeScript's ReadonlyMap, but with `TreeNodeFromImplicitAllowedTypesUnsafe<T>` inlined into it.
|
|
329
|
+
* Using this instead of ReadonlyMap in TreeMapNodeUnsafe is necessary to make recursive map schema not generate compile errors in the d.ts files when exported.
|
|
330
|
+
* @remarks
|
|
331
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
332
|
+
* @privateRemarks
|
|
333
|
+
* This is the same as `ReadonlyMap<K, TreeNodeFromImplicitAllowedTypesUnsafe<T>>` (Checked in test),
|
|
334
|
+
* except that it avoids the above mentioned compile error.
|
|
335
|
+
* Authored by manually inlining ReadonlyMap from from the TypeScript lib which can be found by navigating to the definition of `ReadonlyMap`.
|
|
336
|
+
* @system @sealed @public
|
|
337
|
+
*/
|
|
338
|
+
export interface ReadonlyMapInlined<K, T extends ImplicitAllowedTypesUnsafe> {
|
|
339
|
+
/** Returns an iterable of entries in the map. */
|
|
340
|
+
[Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Returns an iterable of key, value pairs for every entry in the map.
|
|
344
|
+
*/
|
|
345
|
+
entries(): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Returns an iterable of keys in the map
|
|
349
|
+
*/
|
|
350
|
+
keys(): IterableIterator<K>;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Returns an iterable of values in the map
|
|
354
|
+
*/
|
|
355
|
+
values(): IterableIterator<TreeNodeFromImplicitAllowedTypesUnsafe<T>>;
|
|
356
|
+
|
|
357
|
+
forEach(
|
|
358
|
+
callbackfn: (
|
|
359
|
+
value: TreeNodeFromImplicitAllowedTypesUnsafe<T>,
|
|
360
|
+
key: K,
|
|
361
|
+
map: ReadonlyMap<K, TreeNodeFromImplicitAllowedTypesUnsafe<T>>,
|
|
362
|
+
) => void,
|
|
363
|
+
thisArg?: any,
|
|
364
|
+
): void;
|
|
365
|
+
get(key: K): TreeNodeFromImplicitAllowedTypesUnsafe<T> | undefined;
|
|
366
|
+
has(key: K): boolean;
|
|
367
|
+
readonly size: number;
|
|
368
|
+
}
|
|
390
369
|
|
|
391
|
-
/**
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
>
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>
|
|
405
|
-
: never;
|
|
370
|
+
/**
|
|
371
|
+
* {@link Unenforced} version of `FieldHasDefault`.
|
|
372
|
+
* @remarks
|
|
373
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
374
|
+
* @system @sealed @public
|
|
375
|
+
*/
|
|
376
|
+
export type FieldHasDefaultUnsafe<T extends ImplicitFieldSchemaUnsafe> =
|
|
377
|
+
T extends FieldSchemaUnsafe<
|
|
378
|
+
FieldKind.Optional | FieldKind.Identifier,
|
|
379
|
+
ImplicitAllowedTypesUnsafe
|
|
380
|
+
>
|
|
381
|
+
? true
|
|
382
|
+
: false;
|
|
406
383
|
|
|
407
|
-
/**
|
|
408
|
-
* {@link Unenforced} version of {@link FieldSchema}.
|
|
409
|
-
* @remarks
|
|
410
|
-
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
411
|
-
* @system @sealed @public
|
|
412
|
-
*/
|
|
413
|
-
export interface FieldSchemaUnsafe<
|
|
414
|
-
out Kind extends FieldKind,
|
|
415
|
-
out Types extends ImplicitAllowedTypesUnsafe,
|
|
416
|
-
out TCustomMetadata = unknown,
|
|
417
|
-
> extends FieldSchema<Kind, any, TCustomMetadata> {
|
|
418
384
|
/**
|
|
419
|
-
* {@
|
|
385
|
+
* {@link Unenforced} version of `InsertableObjectFromSchemaRecord`.
|
|
386
|
+
* @see {@link Input}
|
|
387
|
+
* @remarks
|
|
388
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
389
|
+
* @system @public
|
|
420
390
|
*/
|
|
421
|
-
|
|
391
|
+
export type InsertableObjectFromSchemaRecordUnsafe<
|
|
392
|
+
T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>,
|
|
393
|
+
> = {
|
|
394
|
+
// Field might not have a default, so make it required:
|
|
395
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property & string]> extends false
|
|
396
|
+
? Property
|
|
397
|
+
: never]: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property & string]>;
|
|
398
|
+
} & {
|
|
399
|
+
// Field might have a default, so allow optional.
|
|
400
|
+
// Note that if the field could be either, this returns boolean, causing both fields to exist, resulting in required.
|
|
401
|
+
readonly [Property in keyof T as FieldHasDefaultUnsafe<T[Property & string]> extends true
|
|
402
|
+
? Property
|
|
403
|
+
: never]?: InsertableTreeFieldFromImplicitFieldUnsafe<T[Property & string]>;
|
|
404
|
+
};
|
|
405
|
+
|
|
422
406
|
/**
|
|
423
|
-
* {@
|
|
407
|
+
* {@link Unenforced} version of {@link InsertableTreeFieldFromImplicitField}.
|
|
408
|
+
* @see {@link Input}
|
|
409
|
+
* @remarks
|
|
410
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
411
|
+
* @system @public
|
|
424
412
|
*/
|
|
425
|
-
|
|
413
|
+
export type InsertableTreeFieldFromImplicitFieldUnsafe<
|
|
414
|
+
TSchemaInput extends ImplicitFieldSchemaUnsafe,
|
|
415
|
+
TSchema = UnionToIntersection<TSchemaInput>,
|
|
416
|
+
> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>]
|
|
417
|
+
? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true>
|
|
418
|
+
: [TSchema] extends [ImplicitAllowedTypes]
|
|
419
|
+
? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>
|
|
420
|
+
: never;
|
|
421
|
+
|
|
426
422
|
/**
|
|
427
|
-
* {@
|
|
423
|
+
* {@link Unenforced} version of {@link FieldSchema}.
|
|
424
|
+
* @remarks
|
|
425
|
+
* Do not use this type directly: it's only needed in the implementation of generic logic which define recursive schema, not when using recursive schema.
|
|
426
|
+
* @system @sealed @public
|
|
428
427
|
*/
|
|
429
|
-
|
|
428
|
+
export interface FieldSchemaUnsafe<
|
|
429
|
+
out Kind extends FieldKind,
|
|
430
|
+
out Types extends ImplicitAllowedTypesUnsafe,
|
|
431
|
+
out TCustomMetadata = unknown,
|
|
432
|
+
> extends FieldSchema<Kind, any, TCustomMetadata> {
|
|
433
|
+
/**
|
|
434
|
+
* {@inheritDoc FieldSchema.kind}
|
|
435
|
+
*/
|
|
436
|
+
readonly kind: Kind;
|
|
437
|
+
/**
|
|
438
|
+
* {@inheritDoc FieldSchema.allowedTypes}
|
|
439
|
+
*/
|
|
440
|
+
readonly allowedTypes: Types;
|
|
441
|
+
/**
|
|
442
|
+
* {@inheritDoc FieldSchema.allowedTypeSet}
|
|
443
|
+
*/
|
|
444
|
+
readonly allowedTypeSet: ReadonlySet<TreeNodeSchema>;
|
|
445
|
+
}
|
|
430
446
|
}
|
|
431
447
|
|
|
432
448
|
/**
|
|
@@ -437,10 +453,10 @@ export interface FieldSchemaUnsafe<
|
|
|
437
453
|
*/
|
|
438
454
|
export interface FieldSchemaAlphaUnsafe<
|
|
439
455
|
out Kind extends FieldKind,
|
|
440
|
-
out Types extends ImplicitAllowedTypesUnsafe,
|
|
456
|
+
out Types extends System_Unsafe.ImplicitAllowedTypesUnsafe,
|
|
441
457
|
out TCustomMetadata = unknown,
|
|
442
458
|
> extends FieldSchemaAlpha<Kind, any, TCustomMetadata>,
|
|
443
|
-
FieldSchemaUnsafe<Kind, Types, TCustomMetadata> {
|
|
459
|
+
System_Unsafe.FieldSchemaUnsafe<Kind, Types, TCustomMetadata> {
|
|
444
460
|
/**
|
|
445
461
|
* {@inheritDoc FieldSchema.allowedTypes}
|
|
446
462
|
*/
|
|
@@ -459,14 +475,16 @@ export interface FieldSchemaAlphaUnsafe<
|
|
|
459
475
|
*/
|
|
460
476
|
export interface ArrayNodeCustomizableSchemaUnsafe<
|
|
461
477
|
out TName extends string,
|
|
462
|
-
in out T extends ImplicitAllowedTypesUnsafe,
|
|
478
|
+
in out T extends System_Unsafe.ImplicitAllowedTypesUnsafe,
|
|
463
479
|
out TCustomMetadata,
|
|
464
480
|
> extends TreeNodeSchemaClass<
|
|
465
481
|
TName,
|
|
466
482
|
NodeKind.Array,
|
|
467
|
-
TreeArrayNodeUnsafe<T> & WithType<TName, NodeKind.Array, T>,
|
|
483
|
+
System_Unsafe.TreeArrayNodeUnsafe<T> & WithType<TName, NodeKind.Array, T>,
|
|
468
484
|
{
|
|
469
|
-
[Symbol.iterator](): Iterator<
|
|
485
|
+
[Symbol.iterator](): Iterator<
|
|
486
|
+
System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>
|
|
487
|
+
>;
|
|
470
488
|
},
|
|
471
489
|
false,
|
|
472
490
|
T,
|
|
@@ -485,19 +503,19 @@ export interface ArrayNodeCustomizableSchemaUnsafe<
|
|
|
485
503
|
*/
|
|
486
504
|
export interface MapNodeCustomizableSchemaUnsafe<
|
|
487
505
|
out TName extends string,
|
|
488
|
-
in out T extends ImplicitAllowedTypesUnsafe,
|
|
506
|
+
in out T extends System_Unsafe.ImplicitAllowedTypesUnsafe,
|
|
489
507
|
out TCustomMetadata,
|
|
490
508
|
> extends TreeNodeSchemaClass<
|
|
491
509
|
TName,
|
|
492
510
|
NodeKind.Map,
|
|
493
|
-
TreeMapNodeUnsafe<T> & WithType<TName, NodeKind.Map, T>,
|
|
511
|
+
System_Unsafe.TreeMapNodeUnsafe<T> & WithType<TName, NodeKind.Map, T>,
|
|
494
512
|
| {
|
|
495
513
|
[Symbol.iterator](): Iterator<
|
|
496
|
-
[string, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>]
|
|
514
|
+
[string, System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>]
|
|
497
515
|
>;
|
|
498
516
|
}
|
|
499
517
|
| {
|
|
500
|
-
readonly [P in string]: InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
518
|
+
readonly [P in string]: System_Unsafe.InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>;
|
|
501
519
|
},
|
|
502
520
|
false,
|
|
503
521
|
T,
|