@fluidframework/tree 2.4.0-299374 → 2.4.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.
Files changed (177) hide show
  1. package/.vscode/settings.json +1 -9
  2. package/CHANGELOG.md +192 -0
  3. package/api-report/tree.alpha.api.md +23 -79
  4. package/api-report/tree.beta.api.md +23 -47
  5. package/api-report/tree.legacy.alpha.api.md +21 -46
  6. package/api-report/tree.legacy.public.api.md +21 -46
  7. package/api-report/tree.public.api.md +21 -46
  8. package/dist/alpha.d.ts +0 -9
  9. package/dist/beta.d.ts +0 -2
  10. package/dist/feature-libraries/flex-tree/lazyField.js +1 -1
  11. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  12. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  13. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +3 -3
  14. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/internalTypes.d.ts +1 -1
  19. package/dist/internalTypes.d.ts.map +1 -1
  20. package/dist/internalTypes.js.map +1 -1
  21. package/dist/legacy.d.ts +0 -2
  22. package/dist/packageVersion.d.ts +1 -1
  23. package/dist/packageVersion.d.ts.map +1 -1
  24. package/dist/packageVersion.js +1 -1
  25. package/dist/packageVersion.js.map +1 -1
  26. package/dist/public.d.ts +0 -2
  27. package/dist/shared-tree/schematizingTreeView.js +1 -1
  28. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  29. package/dist/shared-tree/sharedTree.js +1 -1
  30. package/dist/shared-tree/sharedTree.js.map +1 -1
  31. package/dist/shared-tree/treeApi.d.ts +6 -6
  32. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  33. package/dist/shared-tree/treeApi.js.map +1 -1
  34. package/dist/shared-tree-core/branch.js +1 -1
  35. package/dist/shared-tree-core/branch.js.map +1 -1
  36. package/dist/simple-tree/api/customTree.js +5 -5
  37. package/dist/simple-tree/api/customTree.js.map +1 -1
  38. package/dist/simple-tree/api/index.d.ts +2 -2
  39. package/dist/simple-tree/api/index.d.ts.map +1 -1
  40. package/dist/simple-tree/api/index.js.map +1 -1
  41. package/dist/simple-tree/api/tree.d.ts +3 -12
  42. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  43. package/dist/simple-tree/api/tree.js.map +1 -1
  44. package/dist/simple-tree/api/treeApiBeta.d.ts +14 -2
  45. package/dist/simple-tree/api/treeApiBeta.d.ts.map +1 -1
  46. package/dist/simple-tree/api/treeApiBeta.js +23 -8
  47. package/dist/simple-tree/api/treeApiBeta.js.map +1 -1
  48. package/dist/simple-tree/api/typesUnsafe.d.ts +9 -48
  49. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  50. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  51. package/dist/simple-tree/arrayNode.d.ts +3 -14
  52. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  53. package/dist/simple-tree/arrayNode.js.map +1 -1
  54. package/dist/simple-tree/core/schemaCaching.js +1 -1
  55. package/dist/simple-tree/core/schemaCaching.js.map +1 -1
  56. package/dist/simple-tree/core/treeNodeKernel.d.ts +6 -1
  57. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  58. package/dist/simple-tree/core/treeNodeKernel.js +7 -1
  59. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  60. package/dist/simple-tree/core/treeNodeSchema.d.ts +5 -6
  61. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  62. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  63. package/dist/simple-tree/core/unhydratedFlexTree.js +1 -1
  64. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  65. package/dist/simple-tree/core/withType.d.ts +1 -3
  66. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  67. package/dist/simple-tree/core/withType.js.map +1 -1
  68. package/dist/simple-tree/index.d.ts +4 -4
  69. package/dist/simple-tree/index.d.ts.map +1 -1
  70. package/dist/simple-tree/index.js.map +1 -1
  71. package/dist/simple-tree/schemaTypes.d.ts +6 -58
  72. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  73. package/dist/simple-tree/schemaTypes.js +1 -6
  74. package/dist/simple-tree/schemaTypes.js.map +1 -1
  75. package/dist/simple-tree/toFlexSchema.js +2 -2
  76. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  77. package/dist/simple-tree/toMapTree.d.ts +2 -4
  78. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  79. package/dist/simple-tree/toMapTree.js.map +1 -1
  80. package/lib/alpha.d.ts +0 -9
  81. package/lib/beta.d.ts +0 -2
  82. package/lib/feature-libraries/flex-tree/lazyField.js +1 -1
  83. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  84. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  85. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +3 -3
  86. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  87. package/lib/index.d.ts +1 -1
  88. package/lib/index.d.ts.map +1 -1
  89. package/lib/index.js.map +1 -1
  90. package/lib/internalTypes.d.ts +1 -1
  91. package/lib/internalTypes.d.ts.map +1 -1
  92. package/lib/internalTypes.js.map +1 -1
  93. package/lib/legacy.d.ts +0 -2
  94. package/lib/packageVersion.d.ts +1 -1
  95. package/lib/packageVersion.d.ts.map +1 -1
  96. package/lib/packageVersion.js +1 -1
  97. package/lib/packageVersion.js.map +1 -1
  98. package/lib/public.d.ts +0 -2
  99. package/lib/shared-tree/schematizingTreeView.js +1 -1
  100. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  101. package/lib/shared-tree/sharedTree.js +1 -1
  102. package/lib/shared-tree/sharedTree.js.map +1 -1
  103. package/lib/shared-tree/treeApi.d.ts +6 -6
  104. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  105. package/lib/shared-tree/treeApi.js.map +1 -1
  106. package/lib/shared-tree-core/branch.js +1 -1
  107. package/lib/shared-tree-core/branch.js.map +1 -1
  108. package/lib/simple-tree/api/customTree.js +5 -5
  109. package/lib/simple-tree/api/customTree.js.map +1 -1
  110. package/lib/simple-tree/api/index.d.ts +2 -2
  111. package/lib/simple-tree/api/index.d.ts.map +1 -1
  112. package/lib/simple-tree/api/index.js.map +1 -1
  113. package/lib/simple-tree/api/tree.d.ts +3 -12
  114. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  115. package/lib/simple-tree/api/tree.js.map +1 -1
  116. package/lib/simple-tree/api/treeApiBeta.d.ts +14 -2
  117. package/lib/simple-tree/api/treeApiBeta.d.ts.map +1 -1
  118. package/lib/simple-tree/api/treeApiBeta.js +23 -8
  119. package/lib/simple-tree/api/treeApiBeta.js.map +1 -1
  120. package/lib/simple-tree/api/typesUnsafe.d.ts +9 -48
  121. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  122. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  123. package/lib/simple-tree/arrayNode.d.ts +3 -14
  124. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  125. package/lib/simple-tree/arrayNode.js.map +1 -1
  126. package/lib/simple-tree/core/schemaCaching.js +1 -1
  127. package/lib/simple-tree/core/schemaCaching.js.map +1 -1
  128. package/lib/simple-tree/core/treeNodeKernel.d.ts +6 -1
  129. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  130. package/lib/simple-tree/core/treeNodeKernel.js +7 -1
  131. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  132. package/lib/simple-tree/core/treeNodeSchema.d.ts +5 -6
  133. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  134. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  135. package/lib/simple-tree/core/unhydratedFlexTree.js +1 -1
  136. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  137. package/lib/simple-tree/core/withType.d.ts +1 -3
  138. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  139. package/lib/simple-tree/core/withType.js.map +1 -1
  140. package/lib/simple-tree/index.d.ts +4 -4
  141. package/lib/simple-tree/index.d.ts.map +1 -1
  142. package/lib/simple-tree/index.js +1 -1
  143. package/lib/simple-tree/index.js.map +1 -1
  144. package/lib/simple-tree/schemaTypes.d.ts +6 -58
  145. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  146. package/lib/simple-tree/schemaTypes.js +0 -5
  147. package/lib/simple-tree/schemaTypes.js.map +1 -1
  148. package/lib/simple-tree/toFlexSchema.js +2 -2
  149. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  150. package/lib/simple-tree/toMapTree.d.ts +2 -4
  151. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  152. package/lib/simple-tree/toMapTree.js.map +1 -1
  153. package/package.json +23 -39
  154. package/src/feature-libraries/flex-tree/lazyField.ts +1 -1
  155. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +9 -3
  156. package/src/index.ts +0 -9
  157. package/src/internalTypes.ts +0 -3
  158. package/src/packageVersion.ts +1 -1
  159. package/src/shared-tree/schematizingTreeView.ts +1 -1
  160. package/src/shared-tree/sharedTree.ts +1 -1
  161. package/src/shared-tree/treeApi.ts +9 -19
  162. package/src/shared-tree-core/branch.ts +1 -1
  163. package/src/simple-tree/api/customTree.ts +5 -5
  164. package/src/simple-tree/api/index.ts +0 -5
  165. package/src/simple-tree/api/tree.ts +2 -24
  166. package/src/simple-tree/api/treeApiBeta.ts +65 -3
  167. package/src/simple-tree/api/typesUnsafe.ts +18 -82
  168. package/src/simple-tree/arrayNode.ts +14 -34
  169. package/src/simple-tree/core/schemaCaching.ts +1 -1
  170. package/src/simple-tree/core/treeNodeKernel.ts +10 -2
  171. package/src/simple-tree/core/treeNodeSchema.ts +5 -7
  172. package/src/simple-tree/core/unhydratedFlexTree.ts +1 -1
  173. package/src/simple-tree/core/withType.ts +1 -10
  174. package/src/simple-tree/index.ts +1 -15
  175. package/src/simple-tree/schemaTypes.ts +5 -68
  176. package/src/simple-tree/toFlexSchema.ts +2 -2
  177. package/src/simple-tree/toMapTree.ts +1 -4
@@ -3,8 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { TreeLeafValue } from "../schemaTypes.js";
7
- import type { InternalTreeNode, TreeNode, Unhydrated } from "./types.js";
6
+ import type { InternalTreeNode, Unhydrated } from "./types.js";
8
7
 
9
8
  /**
10
9
  * Schema for a tree node.
@@ -20,7 +19,7 @@ import type { InternalTreeNode, TreeNode, Unhydrated } from "./types.js";
20
19
  export type TreeNodeSchema<
21
20
  Name extends string = string,
22
21
  Kind extends NodeKind = NodeKind,
23
- TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue,
22
+ TNode = unknown,
24
23
  TBuild = never,
25
24
  ImplicitlyConstructable extends boolean = boolean,
26
25
  Info = unknown,
@@ -39,7 +38,7 @@ export type TreeNodeSchema<
39
38
  export interface TreeNodeSchemaNonClass<
40
39
  out Name extends string = string,
41
40
  out Kind extends NodeKind = NodeKind,
42
- out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue,
41
+ out TNode = unknown,
43
42
  in TInsertable = never,
44
43
  out ImplicitlyConstructable extends boolean = boolean,
45
44
  out Info = unknown,
@@ -95,8 +94,7 @@ export interface TreeNodeSchemaNonClass<
95
94
  export interface TreeNodeSchemaClass<
96
95
  out Name extends string = string,
97
96
  out Kind extends NodeKind = NodeKind,
98
- // TODO: maybe this can be more specific (exclude leaves)
99
- out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue,
97
+ out TNode = unknown,
100
98
  in TInsertable = never,
101
99
  out ImplicitlyConstructable extends boolean = boolean,
102
100
  out Info = unknown,
@@ -117,7 +115,7 @@ export interface TreeNodeSchemaClass<
117
115
  export type TreeNodeSchemaBoth<
118
116
  Name extends string = string,
119
117
  Kind extends NodeKind = NodeKind,
120
- TNode extends TreeNode = TreeNode,
118
+ TNode = unknown,
121
119
  TInsertable = never,
122
120
  ImplicitlyConstructable extends boolean = boolean,
123
121
  Info = unknown,
@@ -445,7 +445,7 @@ class EagerMapTreeRequiredField
445
445
  // This cannot use ?? since null is a legal value here.
446
446
  assert(
447
447
  super.content !== undefined,
448
- "Expected EagerMapTree required field to have a value",
448
+ 0xa57 /* Expected EagerMapTree required field to have a value */,
449
449
  );
450
450
  return super.content;
451
451
  }
@@ -3,9 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { TreeLeafValue } from "../schemaTypes.js";
7
6
  import type { NodeKind, TreeNodeSchemaClass } from "./treeNodeSchema.js";
8
- import type { TreeNode } from "./types.js";
9
7
 
10
8
  /**
11
9
  * The type of a {@link TreeNode}.
@@ -89,12 +87,5 @@ export interface WithType<
89
87
  /**
90
88
  * Type symbol, marking a type in a way to increase type safety via strong type checking.
91
89
  */
92
- get [typeSchemaSymbol](): TreeNodeSchemaClass<
93
- TName,
94
- TKind,
95
- TreeNode | TreeLeafValue,
96
- never,
97
- boolean,
98
- TInfo
99
- >;
90
+ get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
100
91
  }
@@ -92,11 +92,6 @@ export {
92
92
  type NodeBuilderDataUnsafe,
93
93
  type NodeFromSchemaUnsafe,
94
94
  type ReadonlyMapInlined,
95
- type TreeNodeSchemaClassUnsafe,
96
- type TreeNodeSchemaUnsafe,
97
- type AllowedTypesUnsafe,
98
- type TreeNodeSchemaNonClassUnsafe,
99
- type TreeViewAlpha,
100
95
  } from "./api/index.js";
101
96
  export {
102
97
  type NodeFromSchema,
@@ -118,9 +113,6 @@ export {
118
113
  normalizeFieldSchema,
119
114
  type ApplyKind,
120
115
  type FieldSchemaMetadata,
121
- type InsertableField,
122
- type Insertable,
123
- type UnsafeUnknownSchema,
124
116
  } from "./schemaTypes.js";
125
117
  export {
126
118
  getTreeNodeForField,
@@ -130,7 +122,6 @@ export {
130
122
  TreeArrayNode,
131
123
  IterableTreeArrayContent,
132
124
  type TreeArrayNodeBase,
133
- type ReadonlyArrayNode,
134
125
  } from "./arrayNode.js";
135
126
  export {
136
127
  type FieldHasDefault,
@@ -140,12 +131,7 @@ export {
140
131
  setField,
141
132
  } from "./objectNode.js";
142
133
  export type { TreeMapNode, MapNodeInsertableData } from "./mapNode.js";
143
- export {
144
- mapTreeFromNodeData,
145
- type InsertableContent,
146
- type FactoryContent,
147
- type FactoryContentObject,
148
- } from "./toMapTree.js";
134
+ export { mapTreeFromNodeData, type InsertableContent } from "./toMapTree.js";
149
135
  export { toStoredSchema, getStoredSchema } from "./toFlexSchema.js";
150
136
  export {
151
137
  numberSchema,
@@ -14,7 +14,6 @@ import type {
14
14
  NodeKind,
15
15
  TreeNodeSchema,
16
16
  TreeNodeSchemaClass,
17
- TreeNode,
18
17
  } from "./core/index.js";
19
18
  import type { FieldKey } from "../core/index.js";
20
19
  import type { InsertableContent } from "./toMapTree.js";
@@ -26,7 +25,7 @@ import { isLazy, type FlexListToUnion, type LazyItem } from "./flexList.js";
26
25
  export function isTreeNodeSchemaClass<
27
26
  Name extends string,
28
27
  Kind extends NodeKind,
29
- TNode extends TreeNode | TreeLeafValue,
28
+ TNode,
30
29
  TBuild,
31
30
  ImplicitlyConstructable extends boolean,
32
31
  Info,
@@ -382,17 +381,7 @@ export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
382
381
  export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
383
382
 
384
383
  /**
385
- * Converts an `ImplicitFieldSchema` to a property type suitable for reading a field with this that schema.
386
- *
387
- * @typeparam TSchema - When non-exact schema are provided this errors on the side of returning too general of a type (a conservative union of all possibilities).
388
- * This is ideal for "output APIs" - i.e. it converts the schema type to the runtime type that a user will _read_ from the tree.
389
- * Examples of such "non-exact" schema include `ImplicitFieldSchema`, `ImplicitAllowedTypes`, and TypeScript unions of schema types.
390
- * @privateRemarks
391
- * TODO:
392
- * There are two known problematic usages of this type (which produce invalid/unsound results when given non-specific schema):
393
- * 1. setters for fields (on object nodes the Tree.view.root).
394
- * 2. Indirectly in InsertableTreeFieldFromImplicitField via InsertableTypedNode including NodeFromSchema.
395
- * These cases should be mitigated by introducing a way to detect inexact schema and special casing them in these two places.
384
+ * Converts ImplicitFieldSchema to the corresponding tree node's field type.
396
385
  * @public
397
386
  */
398
387
  export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> =
@@ -400,7 +389,7 @@ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = Fie
400
389
  ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false>
401
390
  : TSchema extends ImplicitAllowedTypes
402
391
  ? TreeNodeFromImplicitAllowedTypes<TSchema>
403
- : TreeNode | TreeLeafValue | undefined;
392
+ : unknown;
404
393
 
405
394
  /**
406
395
  * Type of content that can be inserted into the tree for a field of the given schema.
@@ -412,55 +401,7 @@ export type InsertableTreeFieldFromImplicitField<
412
401
  ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true>
413
402
  : TSchema extends ImplicitAllowedTypes
414
403
  ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema>
415
- : never;
416
-
417
- /**
418
- * {@inheritdoc (UnsafeUnknownSchema:type)}
419
- * @alpha
420
- */
421
- export const UnsafeUnknownSchema: unique symbol = Symbol("UnsafeUnknownSchema");
422
-
423
- /**
424
- * A special type which can be provided to some APIs as the schema type parameter when schema cannot easily be provided at compile time and an unsafe (instead of disabled) editing API is desired.
425
- * @remarks
426
- * When used this means the TypeScript typing should error on the side of completeness (allow all inputs that could be valid).
427
- * This introduces the risk that out of schema data could be allowed at compile time, and only error at runtime.
428
- *
429
- * @privateRemarks
430
- * This only applies to APIs which input data which is expected to be in schema, since APIs outputting have easy mechanisms to do so in a type safe way even when the schema is unknown.
431
- * In most cases that amounts to returning `TreeNode | TreeLeafValue`.
432
- *
433
- * This can be contrasted with the default behavior of TypeScript, which is to require the intersection of the possible types for input APIs,
434
- * which for unknown schema defining input trees results in the `never` type.
435
- *
436
- * Any APIs which use this must produce UsageErrors when out of schema data is encountered, and never produce unrecoverable errors,
437
- * or silently accept invalid data.
438
- * This is currently only type exported from the package: the symbol is just used as a way to get a named type.
439
- * @alpha
440
- */
441
- export type UnsafeUnknownSchema = typeof UnsafeUnknownSchema;
442
-
443
- /**
444
- * Content which could be inserted into a tree.
445
- * @remarks
446
- * Extended version of {@link InsertableTreeNodeFromImplicitAllowedTypes} that also allows {@link (UnsafeUnknownSchema:type)}.
447
- * @alpha
448
- */
449
- export type Insertable<TSchema extends ImplicitAllowedTypes | UnsafeUnknownSchema> =
450
- TSchema extends ImplicitAllowedTypes
451
- ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema>
452
- : InsertableContent;
453
-
454
- /**
455
- * Content which could be inserted into a field within a tree.
456
- * @remarks
457
- * Extended version of {@link InsertableTreeFieldFromImplicitField} that also allows {@link (UnsafeUnknownSchema:type)}.
458
- * @alpha
459
- */
460
- export type InsertableField<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema> =
461
- TSchema extends ImplicitFieldSchema
462
- ? InsertableTreeFieldFromImplicitField<TSchema>
463
- : InsertableContent | undefined;
404
+ : unknown;
464
405
 
465
406
  /**
466
407
  * Suitable for output.
@@ -512,10 +453,6 @@ export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<
512
453
  /**
513
454
  * Data which can be used as a node to be inserted.
514
455
  * Either an unhydrated node, or content to build a new node.
515
- * @privateRemarks
516
- * TODO:
517
- * This should behave contravariantly, but it uses NodeFromSchema which behaves covariantly.
518
- * This results in unsoundness where when the schema is less specific, more types are allowed instead of less.
519
456
  * @public
520
457
  */
521
458
  export type InsertableTypedNode<T extends TreeNodeSchema> =
@@ -534,7 +471,7 @@ export type InsertableTypedNode<T extends TreeNodeSchema> =
534
471
  export type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<
535
472
  string,
536
473
  NodeKind,
537
- TreeNode | TreeLeafValue,
474
+ unknown,
538
475
  infer TBuild
539
476
  >
540
477
  ? TBuild
@@ -98,7 +98,7 @@ export function getStoredSchema(schema: TreeNodeSchema): TreeNodeStoredSchema {
98
98
  const kind = schema.kind;
99
99
  switch (kind) {
100
100
  case NodeKind.Leaf: {
101
- assert(schema instanceof LeafNodeSchema, "invalid kind");
101
+ assert(schema instanceof LeafNodeSchema, 0xa4a /* invalid kind */);
102
102
  return new LeafNodeStoredSchema(schema.info);
103
103
  }
104
104
  case NodeKind.Map: {
@@ -116,7 +116,7 @@ export function getStoredSchema(schema: TreeNodeSchema): TreeNodeStoredSchema {
116
116
  return new ObjectNodeStoredSchema(fields);
117
117
  }
118
118
  case NodeKind.Object: {
119
- assert(isObjectNodeSchema(schema), "invalid kind");
119
+ assert(isObjectNodeSchema(schema), 0xa4b /* invalid kind */);
120
120
  const fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();
121
121
  for (const field of schema.flexKeyMap.values()) {
122
122
  fields.set(field.storedKey, convertField(field.schema));
@@ -726,7 +726,6 @@ function tryGetInnerNode(target: unknown): InnerNode | undefined {
726
726
  * Content which can be used to build a node.
727
727
  * @remarks
728
728
  * Can contain unhydrated nodes, but can not be an unhydrated node at the root.
729
- * @system @alpha
730
729
  */
731
730
  export type FactoryContent =
732
731
  | IFluidHandle
@@ -745,14 +744,12 @@ export type FactoryContent =
745
744
  * Can contain unhydrated nodes, but can not be an unhydrated node at the root.
746
745
  *
747
746
  * Supports object and map nodes.
748
- * @system @alpha
749
747
  */
750
- export type FactoryContentObject = {
748
+ type FactoryContentObject = {
751
749
  readonly [P in string]?: InsertableContent;
752
750
  };
753
751
 
754
752
  /**
755
753
  * Content which can be inserted into a tree.
756
- * @system @alpha
757
754
  */
758
755
  export type InsertableContent = Unhydrated<TreeNode> | FactoryContent;