@fluidframework/tree 2.63.0-359461 → 2.63.0-359962

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 (510) hide show
  1. package/.mocharc.cjs +9 -1
  2. package/api-report/tree.alpha.api.md +126 -96
  3. package/api-report/tree.beta.api.md +37 -2
  4. package/api-report/tree.legacy.beta.api.md +37 -2
  5. package/api-report/tree.legacy.public.api.md +9 -2
  6. package/api-report/tree.public.api.md +9 -2
  7. package/dist/alpha.d.ts +18 -13
  8. package/dist/beta.d.ts +5 -0
  9. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +67 -13
  10. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  11. package/dist/feature-libraries/chunked-forest/chunkTree.js +70 -35
  12. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  13. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +5 -5
  14. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  15. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  16. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +23 -0
  17. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -0
  18. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js +15 -0
  19. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -0
  20. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -0
  21. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  22. package/dist/feature-libraries/chunked-forest/codec/index.js +3 -1
  23. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  24. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  25. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +3 -2
  26. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  27. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  28. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  29. package/dist/feature-libraries/chunked-forest/index.js +2 -1
  30. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  31. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -1
  32. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  33. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  34. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
  35. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  36. package/dist/feature-libraries/forest-summary/forestSummarizer.js +3 -3
  37. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  38. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +4 -11
  39. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  40. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +2 -6
  41. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  42. package/dist/feature-libraries/index.d.ts +1 -1
  43. package/dist/feature-libraries/index.d.ts.map +1 -1
  44. package/dist/feature-libraries/index.js +2 -1
  45. package/dist/feature-libraries/index.js.map +1 -1
  46. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  47. package/dist/feature-libraries/treeCursorUtils.js +17 -15
  48. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/jsonDomainSchema.d.ts +5 -5
  53. package/dist/jsonDomainSchema.js +5 -5
  54. package/dist/jsonDomainSchema.js.map +1 -1
  55. package/dist/legacy.d.ts +5 -0
  56. package/dist/packageVersion.d.ts +1 -1
  57. package/dist/packageVersion.js +1 -1
  58. package/dist/packageVersion.js.map +1 -1
  59. package/dist/public.d.ts +1 -0
  60. package/dist/serializableDomainSchema.d.ts +6 -6
  61. package/dist/serializableDomainSchema.js +5 -5
  62. package/dist/serializableDomainSchema.js.map +1 -1
  63. package/dist/shared-tree/independentView.d.ts.map +1 -1
  64. package/dist/shared-tree/independentView.js +2 -2
  65. package/dist/shared-tree/independentView.js.map +1 -1
  66. package/dist/shared-tree/schematizingTreeView.d.ts +5 -0
  67. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  68. package/dist/shared-tree/schematizingTreeView.js +38 -8
  69. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  70. package/dist/shared-tree/sharedTree.d.ts +6 -8
  71. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  72. package/dist/shared-tree/sharedTree.js +6 -8
  73. package/dist/shared-tree/sharedTree.js.map +1 -1
  74. package/dist/shared-tree/tree.js +1 -1
  75. package/dist/shared-tree/tree.js.map +1 -1
  76. package/dist/shared-tree/treeAlpha.d.ts +20 -28
  77. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  78. package/dist/shared-tree/treeAlpha.js +6 -31
  79. package/dist/shared-tree/treeAlpha.js.map +1 -1
  80. package/dist/simple-tree/api/conciseTree.d.ts +1 -1
  81. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  82. package/dist/simple-tree/api/configuration.d.ts +0 -3
  83. package/dist/simple-tree/api/configuration.d.ts.map +1 -1
  84. package/dist/simple-tree/api/configuration.js +1 -4
  85. package/dist/simple-tree/api/configuration.js.map +1 -1
  86. package/dist/simple-tree/api/customTree.d.ts +7 -7
  87. package/dist/simple-tree/api/customTree.js +5 -5
  88. package/dist/simple-tree/api/customTree.js.map +1 -1
  89. package/dist/simple-tree/api/discrepancies.js +2 -2
  90. package/dist/simple-tree/api/discrepancies.js.map +1 -1
  91. package/dist/simple-tree/api/index.d.ts +3 -3
  92. package/dist/simple-tree/api/index.d.ts.map +1 -1
  93. package/dist/simple-tree/api/index.js +4 -1
  94. package/dist/simple-tree/api/index.js.map +1 -1
  95. package/dist/simple-tree/api/schemaFactory.d.ts +12 -4
  96. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  97. package/dist/simple-tree/api/schemaFactory.js +3 -8
  98. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  99. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +64 -28
  100. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  101. package/dist/simple-tree/api/schemaFactoryAlpha.js +42 -11
  102. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  103. package/dist/simple-tree/api/schemaFactoryBeta.d.ts +13 -2
  104. package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
  105. package/dist/simple-tree/api/schemaFactoryBeta.js +14 -0
  106. package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
  107. package/dist/simple-tree/api/schemaStatics.d.ts +9 -14
  108. package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
  109. package/dist/simple-tree/api/schemaStatics.js +12 -12
  110. package/dist/simple-tree/api/schemaStatics.js.map +1 -1
  111. package/dist/simple-tree/api/storedSchema.d.ts +2 -2
  112. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  113. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  114. package/dist/simple-tree/api/tree.d.ts +3 -3
  115. package/dist/simple-tree/api/tree.js.map +1 -1
  116. package/dist/simple-tree/api/treeBeta.d.ts +52 -2
  117. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
  118. package/dist/simple-tree/api/treeBeta.js +37 -2
  119. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  120. package/dist/simple-tree/api/treeNodeApi.js +4 -4
  121. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  122. package/dist/simple-tree/api/typesUnsafe.d.ts +60 -1
  123. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  124. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  125. package/dist/simple-tree/core/allowedTypes.d.ts +120 -62
  126. package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -1
  127. package/dist/simple-tree/core/allowedTypes.js +162 -84
  128. package/dist/simple-tree/core/allowedTypes.js.map +1 -1
  129. package/dist/simple-tree/core/context.d.ts +2 -2
  130. package/dist/simple-tree/core/context.d.ts.map +1 -1
  131. package/dist/simple-tree/core/context.js.map +1 -1
  132. package/dist/simple-tree/core/index.d.ts +3 -3
  133. package/dist/simple-tree/core/index.d.ts.map +1 -1
  134. package/dist/simple-tree/core/index.js +5 -4
  135. package/dist/simple-tree/core/index.js.map +1 -1
  136. package/dist/simple-tree/core/toStored.d.ts +3 -3
  137. package/dist/simple-tree/core/toStored.d.ts.map +1 -1
  138. package/dist/simple-tree/core/toStored.js +2 -2
  139. package/dist/simple-tree/core/toStored.js.map +1 -1
  140. package/dist/simple-tree/core/treeNode.d.ts +1 -1
  141. package/dist/simple-tree/core/treeNode.js +1 -1
  142. package/dist/simple-tree/core/treeNode.js.map +1 -1
  143. package/dist/simple-tree/core/treeNodeKernel.d.ts +7 -11
  144. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  145. package/dist/simple-tree/core/treeNodeKernel.js +24 -47
  146. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  147. package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -3
  148. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  149. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  150. package/dist/simple-tree/core/treeNodeValid.d.ts +2 -2
  151. package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
  152. package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
  153. package/dist/simple-tree/core/walkSchema.d.ts +3 -3
  154. package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
  155. package/dist/simple-tree/core/walkSchema.js +1 -1
  156. package/dist/simple-tree/core/walkSchema.js.map +1 -1
  157. package/dist/simple-tree/createContext.js +2 -2
  158. package/dist/simple-tree/createContext.js.map +1 -1
  159. package/dist/simple-tree/fieldSchema.d.ts +9 -32
  160. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  161. package/dist/simple-tree/fieldSchema.js +12 -20
  162. package/dist/simple-tree/fieldSchema.js.map +1 -1
  163. package/dist/simple-tree/getTreeNodeForField.js +1 -1
  164. package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
  165. package/dist/simple-tree/index.d.ts +4 -4
  166. package/dist/simple-tree/index.d.ts.map +1 -1
  167. package/dist/simple-tree/index.js +7 -3
  168. package/dist/simple-tree/index.js.map +1 -1
  169. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +2 -2
  170. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  171. package/dist/simple-tree/node-kinds/array/arrayNode.js +7 -8
  172. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  173. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
  174. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  175. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  176. package/dist/simple-tree/node-kinds/common.d.ts.map +1 -1
  177. package/dist/simple-tree/node-kinds/common.js +2 -2
  178. package/dist/simple-tree/node-kinds/common.js.map +1 -1
  179. package/dist/simple-tree/node-kinds/index.d.ts +1 -1
  180. package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
  181. package/dist/simple-tree/node-kinds/index.js.map +1 -1
  182. package/dist/simple-tree/node-kinds/map/mapNode.d.ts +2 -2
  183. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  184. package/dist/simple-tree/node-kinds/map/mapNode.js +5 -5
  185. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  186. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
  187. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  188. package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  189. package/dist/simple-tree/node-kinds/object/index.d.ts +2 -2
  190. package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  191. package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
  192. package/dist/simple-tree/node-kinds/object/objectNode.d.ts +5 -18
  193. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  194. package/dist/simple-tree/node-kinds/object/objectNode.js +8 -18
  195. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  196. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +4 -11
  197. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  198. package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  199. package/dist/simple-tree/node-kinds/record/recordNode.d.ts +3 -3
  200. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  201. package/dist/simple-tree/node-kinds/record/recordNode.js +9 -9
  202. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  203. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +5 -5
  204. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  205. package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  206. package/dist/simple-tree/prepareForInsertion.d.ts +39 -7
  207. package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
  208. package/dist/simple-tree/prepareForInsertion.js +43 -15
  209. package/dist/simple-tree/prepareForInsertion.js.map +1 -1
  210. package/dist/simple-tree/toStoredSchema.d.ts +8 -8
  211. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  212. package/dist/simple-tree/toStoredSchema.js +5 -5
  213. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  214. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +2 -2
  215. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  216. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  217. package/dist/simple-tree/unsafeUnknownSchema.d.ts.map +1 -1
  218. package/dist/simple-tree/unsafeUnknownSchema.js.map +1 -1
  219. package/dist/simple-tree/walkFieldSchema.js +1 -1
  220. package/dist/simple-tree/walkFieldSchema.js.map +1 -1
  221. package/dist/tableSchema.d.ts +19 -19
  222. package/dist/tableSchema.d.ts.map +1 -1
  223. package/dist/tableSchema.js +2 -2
  224. package/dist/tableSchema.js.map +1 -1
  225. package/lib/alpha.d.ts +18 -13
  226. package/lib/beta.d.ts +5 -0
  227. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +67 -13
  228. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  229. package/lib/feature-libraries/chunked-forest/chunkTree.js +68 -32
  230. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  231. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +5 -5
  232. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  233. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  234. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +23 -0
  235. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -0
  236. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js +11 -0
  237. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -0
  238. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -0
  239. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  240. package/lib/feature-libraries/chunked-forest/codec/index.js +1 -0
  241. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  242. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  243. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +3 -2
  244. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  245. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  246. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  247. package/lib/feature-libraries/chunked-forest/index.js +1 -1
  248. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  249. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -1
  250. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  251. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  252. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -3
  253. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  254. package/lib/feature-libraries/forest-summary/forestSummarizer.js +3 -3
  255. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  256. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +4 -11
  257. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  258. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +2 -6
  259. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  260. package/lib/feature-libraries/index.d.ts +1 -1
  261. package/lib/feature-libraries/index.d.ts.map +1 -1
  262. package/lib/feature-libraries/index.js +1 -1
  263. package/lib/feature-libraries/index.js.map +1 -1
  264. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  265. package/lib/feature-libraries/treeCursorUtils.js +17 -15
  266. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  267. package/lib/index.d.ts +1 -1
  268. package/lib/index.d.ts.map +1 -1
  269. package/lib/index.js.map +1 -1
  270. package/lib/jsonDomainSchema.d.ts +5 -5
  271. package/lib/jsonDomainSchema.js +5 -5
  272. package/lib/jsonDomainSchema.js.map +1 -1
  273. package/lib/legacy.d.ts +5 -0
  274. package/lib/packageVersion.d.ts +1 -1
  275. package/lib/packageVersion.js +1 -1
  276. package/lib/packageVersion.js.map +1 -1
  277. package/lib/public.d.ts +1 -0
  278. package/lib/serializableDomainSchema.d.ts +6 -6
  279. package/lib/serializableDomainSchema.js +5 -5
  280. package/lib/serializableDomainSchema.js.map +1 -1
  281. package/lib/shared-tree/independentView.d.ts.map +1 -1
  282. package/lib/shared-tree/independentView.js +3 -3
  283. package/lib/shared-tree/independentView.js.map +1 -1
  284. package/lib/shared-tree/schematizingTreeView.d.ts +5 -0
  285. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  286. package/lib/shared-tree/schematizingTreeView.js +41 -11
  287. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  288. package/lib/shared-tree/sharedTree.d.ts +6 -8
  289. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  290. package/lib/shared-tree/sharedTree.js +7 -9
  291. package/lib/shared-tree/sharedTree.js.map +1 -1
  292. package/lib/shared-tree/tree.js +2 -2
  293. package/lib/shared-tree/tree.js.map +1 -1
  294. package/lib/shared-tree/treeAlpha.d.ts +20 -28
  295. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  296. package/lib/shared-tree/treeAlpha.js +5 -30
  297. package/lib/shared-tree/treeAlpha.js.map +1 -1
  298. package/lib/simple-tree/api/conciseTree.d.ts +1 -1
  299. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  300. package/lib/simple-tree/api/configuration.d.ts +0 -3
  301. package/lib/simple-tree/api/configuration.d.ts.map +1 -1
  302. package/lib/simple-tree/api/configuration.js +2 -5
  303. package/lib/simple-tree/api/configuration.js.map +1 -1
  304. package/lib/simple-tree/api/customTree.d.ts +7 -7
  305. package/lib/simple-tree/api/customTree.js +5 -5
  306. package/lib/simple-tree/api/customTree.js.map +1 -1
  307. package/lib/simple-tree/api/discrepancies.js +3 -3
  308. package/lib/simple-tree/api/discrepancies.js.map +1 -1
  309. package/lib/simple-tree/api/index.d.ts +3 -3
  310. package/lib/simple-tree/api/index.d.ts.map +1 -1
  311. package/lib/simple-tree/api/index.js +1 -1
  312. package/lib/simple-tree/api/index.js.map +1 -1
  313. package/lib/simple-tree/api/schemaFactory.d.ts +12 -4
  314. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  315. package/lib/simple-tree/api/schemaFactory.js +3 -8
  316. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  317. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +64 -28
  318. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  319. package/lib/simple-tree/api/schemaFactoryAlpha.js +43 -12
  320. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  321. package/lib/simple-tree/api/schemaFactoryBeta.d.ts +13 -2
  322. package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
  323. package/lib/simple-tree/api/schemaFactoryBeta.js +16 -2
  324. package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
  325. package/lib/simple-tree/api/schemaStatics.d.ts +9 -14
  326. package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
  327. package/lib/simple-tree/api/schemaStatics.js +12 -12
  328. package/lib/simple-tree/api/schemaStatics.js.map +1 -1
  329. package/lib/simple-tree/api/storedSchema.d.ts +2 -2
  330. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  331. package/lib/simple-tree/api/storedSchema.js +1 -1
  332. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  333. package/lib/simple-tree/api/tree.d.ts +3 -3
  334. package/lib/simple-tree/api/tree.js.map +1 -1
  335. package/lib/simple-tree/api/treeBeta.d.ts +52 -2
  336. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
  337. package/lib/simple-tree/api/treeBeta.js +34 -2
  338. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  339. package/lib/simple-tree/api/treeNodeApi.js +5 -5
  340. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  341. package/lib/simple-tree/api/typesUnsafe.d.ts +60 -1
  342. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  343. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  344. package/lib/simple-tree/core/allowedTypes.d.ts +120 -62
  345. package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -1
  346. package/lib/simple-tree/core/allowedTypes.js +158 -80
  347. package/lib/simple-tree/core/allowedTypes.js.map +1 -1
  348. package/lib/simple-tree/core/context.d.ts +2 -2
  349. package/lib/simple-tree/core/context.d.ts.map +1 -1
  350. package/lib/simple-tree/core/context.js.map +1 -1
  351. package/lib/simple-tree/core/index.d.ts +3 -3
  352. package/lib/simple-tree/core/index.d.ts.map +1 -1
  353. package/lib/simple-tree/core/index.js +2 -2
  354. package/lib/simple-tree/core/index.js.map +1 -1
  355. package/lib/simple-tree/core/toStored.d.ts +3 -3
  356. package/lib/simple-tree/core/toStored.d.ts.map +1 -1
  357. package/lib/simple-tree/core/toStored.js +3 -3
  358. package/lib/simple-tree/core/toStored.js.map +1 -1
  359. package/lib/simple-tree/core/treeNode.d.ts +1 -1
  360. package/lib/simple-tree/core/treeNode.js +1 -1
  361. package/lib/simple-tree/core/treeNode.js.map +1 -1
  362. package/lib/simple-tree/core/treeNodeKernel.d.ts +7 -11
  363. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  364. package/lib/simple-tree/core/treeNodeKernel.js +23 -46
  365. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  366. package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -3
  367. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  368. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  369. package/lib/simple-tree/core/treeNodeValid.d.ts +2 -2
  370. package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
  371. package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
  372. package/lib/simple-tree/core/walkSchema.d.ts +3 -3
  373. package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
  374. package/lib/simple-tree/core/walkSchema.js +2 -2
  375. package/lib/simple-tree/core/walkSchema.js.map +1 -1
  376. package/lib/simple-tree/createContext.js +3 -3
  377. package/lib/simple-tree/createContext.js.map +1 -1
  378. package/lib/simple-tree/fieldSchema.d.ts +9 -32
  379. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  380. package/lib/simple-tree/fieldSchema.js +13 -21
  381. package/lib/simple-tree/fieldSchema.js.map +1 -1
  382. package/lib/simple-tree/getTreeNodeForField.js +1 -1
  383. package/lib/simple-tree/getTreeNodeForField.js.map +1 -1
  384. package/lib/simple-tree/index.d.ts +4 -4
  385. package/lib/simple-tree/index.d.ts.map +1 -1
  386. package/lib/simple-tree/index.js +2 -2
  387. package/lib/simple-tree/index.js.map +1 -1
  388. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +2 -2
  389. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  390. package/lib/simple-tree/node-kinds/array/arrayNode.js +8 -9
  391. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  392. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
  393. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  394. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  395. package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
  396. package/lib/simple-tree/node-kinds/common.js +3 -3
  397. package/lib/simple-tree/node-kinds/common.js.map +1 -1
  398. package/lib/simple-tree/node-kinds/index.d.ts +1 -1
  399. package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
  400. package/lib/simple-tree/node-kinds/index.js.map +1 -1
  401. package/lib/simple-tree/node-kinds/map/mapNode.d.ts +2 -2
  402. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  403. package/lib/simple-tree/node-kinds/map/mapNode.js +6 -6
  404. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  405. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
  406. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  407. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  408. package/lib/simple-tree/node-kinds/object/index.d.ts +2 -2
  409. package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  410. package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
  411. package/lib/simple-tree/node-kinds/object/objectNode.d.ts +5 -18
  412. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  413. package/lib/simple-tree/node-kinds/object/objectNode.js +9 -18
  414. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  415. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +4 -11
  416. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  417. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  418. package/lib/simple-tree/node-kinds/record/recordNode.d.ts +3 -3
  419. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  420. package/lib/simple-tree/node-kinds/record/recordNode.js +10 -10
  421. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  422. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +5 -5
  423. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  424. package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  425. package/lib/simple-tree/prepareForInsertion.d.ts +39 -7
  426. package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
  427. package/lib/simple-tree/prepareForInsertion.js +45 -17
  428. package/lib/simple-tree/prepareForInsertion.js.map +1 -1
  429. package/lib/simple-tree/toStoredSchema.d.ts +8 -8
  430. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  431. package/lib/simple-tree/toStoredSchema.js +5 -5
  432. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  433. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +2 -2
  434. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  435. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +1 -1
  436. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  437. package/lib/simple-tree/unsafeUnknownSchema.d.ts.map +1 -1
  438. package/lib/simple-tree/unsafeUnknownSchema.js.map +1 -1
  439. package/lib/simple-tree/walkFieldSchema.js +1 -1
  440. package/lib/simple-tree/walkFieldSchema.js.map +1 -1
  441. package/lib/tableSchema.d.ts +19 -19
  442. package/lib/tableSchema.d.ts.map +1 -1
  443. package/lib/tableSchema.js +2 -2
  444. package/lib/tableSchema.js.map +1 -1
  445. package/package.json +23 -21
  446. package/src/feature-libraries/chunked-forest/chunkTree.ts +112 -45
  447. package/src/feature-libraries/chunked-forest/codec/codecs.ts +4 -9
  448. package/src/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.ts +33 -0
  449. package/src/feature-libraries/chunked-forest/codec/index.ts +4 -0
  450. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +4 -7
  451. package/src/feature-libraries/chunked-forest/index.ts +2 -0
  452. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +1 -1
  453. package/src/feature-libraries/forest-summary/forestSummarizer.ts +8 -12
  454. package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +3 -12
  455. package/src/feature-libraries/index.ts +2 -0
  456. package/src/feature-libraries/treeCursorUtils.ts +34 -19
  457. package/src/index.ts +14 -10
  458. package/src/jsonDomainSchema.ts +5 -5
  459. package/src/packageVersion.ts +1 -1
  460. package/src/serializableDomainSchema.ts +6 -6
  461. package/src/shared-tree/independentView.ts +3 -0
  462. package/src/shared-tree/schematizingTreeView.ts +58 -9
  463. package/src/shared-tree/sharedTree.ts +33 -20
  464. package/src/shared-tree/tree.ts +2 -2
  465. package/src/shared-tree/treeAlpha.ts +35 -84
  466. package/src/simple-tree/api/conciseTree.ts +1 -1
  467. package/src/simple-tree/api/configuration.ts +3 -7
  468. package/src/simple-tree/api/customTree.ts +7 -7
  469. package/src/simple-tree/api/discrepancies.ts +3 -3
  470. package/src/simple-tree/api/index.ts +17 -2
  471. package/src/simple-tree/api/schemaFactory.ts +18 -73
  472. package/src/simple-tree/api/schemaFactoryAlpha.ts +118 -25
  473. package/src/simple-tree/api/schemaFactoryBeta.ts +76 -1
  474. package/src/simple-tree/api/schemaStatics.ts +19 -61
  475. package/src/simple-tree/api/storedSchema.ts +2 -6
  476. package/src/simple-tree/api/tree.ts +3 -3
  477. package/src/simple-tree/api/treeBeta.ts +137 -4
  478. package/src/simple-tree/api/treeNodeApi.ts +5 -5
  479. package/src/simple-tree/api/typesUnsafe.ts +81 -0
  480. package/src/simple-tree/core/TreeNodeBinding.md +14 -70
  481. package/src/simple-tree/core/allowedTypes.ts +355 -159
  482. package/src/simple-tree/core/context.ts +2 -2
  483. package/src/simple-tree/core/index.ts +11 -9
  484. package/src/simple-tree/core/toStored.ts +7 -5
  485. package/src/simple-tree/core/treeNode.ts +1 -1
  486. package/src/simple-tree/core/treeNodeKernel.ts +25 -59
  487. package/src/simple-tree/core/treeNodeSchema.ts +3 -6
  488. package/src/simple-tree/core/treeNodeValid.ts +2 -2
  489. package/src/simple-tree/core/walkSchema.ts +9 -5
  490. package/src/simple-tree/createContext.ts +3 -3
  491. package/src/simple-tree/fieldSchema.ts +24 -98
  492. package/src/simple-tree/getTreeNodeForField.ts +1 -1
  493. package/src/simple-tree/index.ts +19 -11
  494. package/src/simple-tree/node-kinds/array/arrayNode.ts +12 -17
  495. package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +7 -8
  496. package/src/simple-tree/node-kinds/common.ts +5 -3
  497. package/src/simple-tree/node-kinds/index.ts +0 -2
  498. package/src/simple-tree/node-kinds/map/mapNode.ts +8 -16
  499. package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +7 -8
  500. package/src/simple-tree/node-kinds/object/index.ts +0 -2
  501. package/src/simple-tree/node-kinds/object/objectNode.ts +17 -55
  502. package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +5 -19
  503. package/src/simple-tree/node-kinds/record/recordNode.ts +16 -23
  504. package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +7 -11
  505. package/src/simple-tree/prepareForInsertion.ts +92 -30
  506. package/src/simple-tree/toStoredSchema.ts +8 -9
  507. package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +2 -6
  508. package/src/simple-tree/unsafeUnknownSchema.ts +2 -3
  509. package/src/simple-tree/walkFieldSchema.ts +1 -1
  510. package/src/tableSchema.ts +24 -37
@@ -10,7 +10,7 @@ export {
10
10
  tryGetTreeNodeSchema,
11
11
  type InnerNode,
12
12
  tryDisposeTreeNode,
13
- getOrCreateInnerNode,
13
+ getInnerNode,
14
14
  treeNodeFromAnchor,
15
15
  getSimpleNodeSchemaFromInnerNode,
16
16
  SimpleContextSlot,
@@ -53,31 +53,33 @@ export {
53
53
  isAnnotatedAllowedTypes,
54
54
  isAnnotatedAllowedType,
55
55
  normalizeAllowedTypes,
56
- normalizeAnnotatedAllowedTypes,
56
+ normalizeAndEvaluateAnnotatedAllowedTypes,
57
57
  normalizeToAnnotatedAllowedType,
58
- unannotateImplicitAllowedTypes,
59
58
  markSchemaMostDerived,
60
59
  evaluateLazySchema,
61
60
  createSchemaUpgrade,
62
- type SchemaUpgrade,
61
+ AnnotatedAllowedTypesInternal,
62
+ normalizeAllowedTypesInternal,
63
63
  } from "./allowedTypes.js";
64
64
  export type {
65
65
  AnnotatedAllowedType,
66
- NormalizedAnnotatedAllowedTypes,
66
+ AllowedTypesFullEvaluated,
67
67
  ImplicitAllowedTypes,
68
- ImplicitAnnotatedAllowedTypes,
69
- UnannotateImplicitAllowedTypes,
70
68
  AllowedTypesMetadata,
71
69
  AllowedTypes,
72
70
  TreeNodeFromImplicitAllowedTypes,
73
71
  InsertableTreeNodeFromImplicitAllowedTypes,
74
72
  InsertableTreeNodeFromAllowedTypes,
75
73
  Input,
76
- UnannotateAllowedTypes,
77
- UnannotateAllowedType,
78
74
  UnannotateAllowedTypesList,
79
75
  AllowedTypeMetadata,
80
76
  AnnotatedAllowedTypes,
77
+ AnnotateAllowedTypesList,
78
+ SchemaUpgrade,
79
+ AllowedTypesFullInternal,
80
+ AllowedTypesFull,
81
+ AllowedTypesFullFromMixed,
82
+ NumberKeys,
81
83
  } from "./allowedTypes.js";
82
84
  export { walkAllowedTypes, walkNodeSchema, type SchemaVisitor } from "./walkSchema.js";
83
85
  export { Context, HydratedContext } from "./context.js";
@@ -5,9 +5,9 @@
5
5
 
6
6
  import { brand } from "../../util/index.js";
7
7
  import {
8
- normalizeAnnotatedAllowedTypes,
8
+ normalizeAndEvaluateAnnotatedAllowedTypes,
9
9
  type AnnotatedAllowedType,
10
- type ImplicitAnnotatedAllowedTypes,
10
+ type ImplicitAllowedTypes,
11
11
  type SchemaUpgrade,
12
12
  } from "./allowedTypes.js";
13
13
  import type { TreeNodeSchemaIdentifier, TreeTypeSet } from "../../core/index.js";
@@ -42,16 +42,18 @@ export function allowedTypeFilter(
42
42
  }
43
43
 
44
44
  /**
45
- * Converts an ImplicitAnnotatedAllowedTypes to a stored schema.
45
+ * Converts an ImplicitAllowedTypes to a stored schema.
46
46
  * @param schema - The schema to convert.
47
47
  * @param options - The options to use for filtering.
48
48
  * @returns The converted stored schema.
49
49
  */
50
50
  export function convertAllowedTypes(
51
- schema: ImplicitAnnotatedAllowedTypes,
51
+ schema: ImplicitAllowedTypes,
52
52
  options: StoredSchemaGenerationOptions,
53
53
  ): TreeTypeSet {
54
- const filtered: TreeNodeSchemaIdentifier[] = normalizeAnnotatedAllowedTypes(schema)
54
+ const filtered: TreeNodeSchemaIdentifier[] = normalizeAndEvaluateAnnotatedAllowedTypes(
55
+ schema,
56
+ )
55
57
  .types.filter((allowedType) => allowedTypeFilter(allowedType, options))
56
58
  .map((a) => brand(a.type.identifier));
57
59
  return new Set(filtered);
@@ -29,7 +29,7 @@ import { markEager } from "./flexList.js";
29
29
  * 2. Explicit construction of {@link Unhydrated} nodes using either {@link TreeNodeSchemaClass} as a constructor or {@link TreeNodeSchemaNonClass|TreeNodeSchemaNonClass.create}.
30
30
  * Either way the {@link TreeNodeSchema} produced must be produced using a {@link SchemaFactory}.
31
31
  * There are also higher level APIs which wrap these, including {@link (TreeBeta:interface).create}, {@link (TreeBeta:interface).clone},
32
- * and import APIs like {@link (TreeAlpha:interface).importConcise}, {@link (TreeAlpha:interface).importVerbose}, and {@link (TreeAlpha:interface).importCompressed}.
32
+ * and import APIs like {@link (TreeBeta:interface).importConcise}, {@link (TreeAlpha:interface).importVerbose}, and {@link (TreeAlpha:interface).importCompressed}.
33
33
  *
34
34
  * 3. Implicit construction: Several APIs which logically require an unhydrated TreeNode also allow passing in a value which could be used to explicitly construct the node instead.
35
35
  * These APIs internally call the constructor with the provided value (typically behaving like {@link (TreeAlpha:interface).create}), so it's really just a special case of the above option.
@@ -17,14 +17,11 @@ import {
17
17
  anchorSlot,
18
18
  type AnchorEvents,
19
19
  type AnchorNode,
20
- type AnchorSet,
21
20
  type FieldKey,
22
21
  type TreeValue,
23
- type UpPath,
24
22
  } from "../../core/index.js";
25
23
  import { getOrCreateHydratedFlexTreeNode } from "../../feature-libraries/index.js";
26
24
  import {
27
- assertFlexTreeEntityNotFreed,
28
25
  ContextSlot,
29
26
  flexTreeSlot,
30
27
  LazyEntity,
@@ -85,10 +82,8 @@ interface UnhydratedState {
85
82
 
86
83
  /** The {@link HydrationState} of a {@link TreeNodeKernel} after the kernel is hydrated */
87
84
  interface HydratedState {
88
- /** The flex node for this kernel (lazy - undefined if it has not yet been demanded) */
89
- innerNode?: FlexTreeNode;
90
- /** The {@link AnchorNode} that this node is associated with. */
91
- readonly anchorNode: AnchorNode;
85
+ /** The flex node for this kernel */
86
+ readonly innerNode: HydratedFlexTreeNode;
92
87
  /** All {@link Off | event deregistration functions} that should be run when the kernel is disposed. */
93
88
  readonly offAnchorNode: Set<Off>;
94
89
  }
@@ -98,7 +93,7 @@ type HydrationState = UnhydratedState | HydratedState;
98
93
 
99
94
  /** True if and only if the given {@link HydrationState} is post-hydration */
100
95
  function isHydrated(state: HydrationState): state is HydratedState {
101
- return (state as Partial<HydratedState>).anchorNode !== undefined;
96
+ return state.innerNode.isHydrated();
102
97
  }
103
98
 
104
99
  /**
@@ -137,7 +132,7 @@ export class TreeNodeKernel {
137
132
  * Create a TreeNodeKernel which can be looked up with {@link getKernel}.
138
133
  *
139
134
  * @param initialContext - context from when this node was originally created. Only used when unhydrated.
140
- * @param innerNode - When unhydrated/raw or marinated the MapTreeNode. FlexTreeNode when cooked.
135
+ * @param innerNode - When unhydrated the MapTreeNode. Otherwise HydratedFlexTreeNode.
141
136
  * @remarks
142
137
  * Exactly one kernel per TreeNode should be created.
143
138
  */
@@ -165,9 +160,7 @@ export class TreeNodeKernel {
165
160
  this.#eventBuffer = new KernelEventBuffer(innerNode.events);
166
161
  } else {
167
162
  // Hydrated case
168
- this.#hydrationState = this.createHydratedState(innerNode.anchorNode);
169
- this.#hydrationState.innerNode = innerNode;
170
-
163
+ this.#hydrationState = this.createHydratedState(innerNode);
171
164
  this.#eventBuffer = new KernelEventBuffer(innerNode.anchorNode.events);
172
165
  }
173
166
  }
@@ -176,7 +169,7 @@ export class TreeNodeKernel {
176
169
  if (isHydrated(this.#hydrationState)) {
177
170
  // This can't be cached on this.#hydrated during hydration since initial tree is hydrated before the context is cached on the anchorSet.
178
171
  return (
179
- this.#hydrationState?.anchorNode.anchorSet.slots.get(SimpleContextSlot) ??
172
+ this.#hydrationState.innerNode.anchorNode.anchorSet.slots.get(SimpleContextSlot) ??
180
173
  fail(0xb40 /* missing simple-tree context */)
181
174
  );
182
175
  }
@@ -185,38 +178,33 @@ export class TreeNodeKernel {
185
178
 
186
179
  /**
187
180
  * Transition from {@link Unhydrated} to hydrated.
188
- * Bi-directionally associates the given hydrated TreeNode to the anchor node at the provided path.
181
+ * Bi-directionally associates the given hydrated TreeNode to the HydratedFlexTreeNode.
189
182
  * @remarks
190
183
  * Happens at most once for any given node.
191
184
  * Cleans up mappings to {@link UnhydratedFlexTreeNode} - it is assumed that they are no longer needed once this node has an anchor node.
192
185
  */
193
- public hydrate(anchors: AnchorSet, path: UpPath): void {
186
+ public hydrate(inner: HydratedFlexTreeNode): void {
194
187
  assert(!this.disposed, 0xa2a /* cannot hydrate a disposed node */);
195
188
  assert(!isHydrated(this.#hydrationState), 0xa2b /* hydration should only happen once */);
196
189
 
197
- const anchor = anchors.track(path);
198
- const anchorNode =
199
- anchors.locate(anchor) ?? fail(0xb42 /* Expected anchor node to be present */);
200
-
201
- this.#hydrationState = this.createHydratedState(anchorNode);
202
- this.#hydrationState.offAnchorNode.add(() => anchors.forget(anchor));
190
+ this.#hydrationState = this.createHydratedState(inner);
203
191
 
204
192
  // Lazily migrate existing event listeners to the anchor node
205
- this.#eventBuffer.migrateEventSource(anchorNode.events);
193
+ this.#eventBuffer.migrateEventSource(inner.anchorNode.events);
206
194
  }
207
195
 
208
- private createHydratedState(anchorNode: AnchorNode): HydratedState {
196
+ private createHydratedState(innerNode: HydratedFlexTreeNode): HydratedState {
209
197
  assert(
210
- !anchorNode.slots.has(simpleTreeNodeSlot),
198
+ !innerNode.anchorNode.slots.has(simpleTreeNodeSlot),
211
199
  0x7f5 /* Cannot associate an flex node with multiple simple-tree nodes */,
212
200
  );
213
- anchorNode.slots.set(simpleTreeNodeSlot, this.node);
201
+ innerNode.anchorNode.slots.set(simpleTreeNodeSlot, this.node);
214
202
  return {
215
- anchorNode,
203
+ innerNode,
216
204
  offAnchorNode: new Set([
217
- anchorNode.events.on("afterDestroy", () => this.dispose()),
205
+ innerNode.anchorNode.events.on("afterDestroy", () => this.dispose()),
218
206
  // TODO: this should be triggered on change even for unhydrated nodes.
219
- anchorNode.events.on("childrenChanging", () => {
207
+ innerNode.anchorNode.events.on("childrenChanging", () => {
220
208
  this.generationNumber += 1;
221
209
  }),
222
210
  ]),
@@ -232,7 +220,7 @@ export class TreeNodeKernel {
232
220
  }
233
221
 
234
222
  // TODO: Replace this check with the proper check against the cursor state when the cursor becomes part of the kernel
235
- const flex = this.#hydrationState.anchorNode.slots.get(flexTreeSlot);
223
+ const flex = this.#hydrationState.innerNode.anchorNode.slots.get(flexTreeSlot);
236
224
  if (flex !== undefined) {
237
225
  assert(flex instanceof LazyEntity, 0x9b4 /* Unexpected flex node implementation */);
238
226
  if (flex.isFreed()) {
@@ -240,7 +228,7 @@ export class TreeNodeKernel {
240
228
  }
241
229
  }
242
230
 
243
- return treeStatusFromAnchorCache(this.#hydrationState.anchorNode);
231
+ return treeStatusFromAnchorCache(this.#hydrationState.innerNode.anchorNode);
244
232
  }
245
233
 
246
234
  public get events(): Listenable<KernelEvents> {
@@ -264,7 +252,9 @@ export class TreeNodeKernel {
264
252
  }
265
253
 
266
254
  public get anchorNode(): AnchorNode | undefined {
267
- return isHydrated(this.#hydrationState) ? this.#hydrationState.anchorNode : undefined;
255
+ return isHydrated(this.#hydrationState)
256
+ ? this.#hydrationState.innerNode.anchorNode
257
+ : undefined;
268
258
  }
269
259
 
270
260
  /**
@@ -273,11 +263,10 @@ export class TreeNodeKernel {
273
263
  * For {@link Unhydrated} nodes, this returns the MapTreeNode.
274
264
  *
275
265
  * For hydrated nodes it returns a FlexTreeNode backed by the forest.
276
- * Note that for "marinated" nodes, this FlexTreeNode exists and returns it: it does not return the MapTreeNode which is the current InnerNode.
277
266
  *
278
267
  * @throws A {@link @fluidframework/telemetry-utils#UsageError} if the node has been deleted.
279
268
  */
280
- public getOrCreateInnerNode(): InnerNode {
269
+ public getInnerNode(): InnerNode {
281
270
  if (!isHydrated(this.#hydrationState)) {
282
271
  debugAssert(
283
272
  () =>
@@ -291,26 +280,6 @@ export class TreeNodeKernel {
291
280
  throw new UsageError("Cannot access a deleted node.");
292
281
  }
293
282
 
294
- if (this.#hydrationState.innerNode === undefined) {
295
- // Marinated case -> cooked
296
- const anchorNode = this.#hydrationState.anchorNode;
297
- // This TreeNode is bound to an anchor node, but it may or may not have an actual flex node yet
298
- const flexNode = anchorNode.slots.get(flexTreeSlot);
299
- if (flexNode !== undefined) {
300
- // If the flex node already exists, use it...
301
- this.#hydrationState.innerNode = flexNode;
302
- } else {
303
- // ...otherwise, the flex node must be created
304
- const context =
305
- anchorNode.anchorSet.slots.get(ContextSlot) ?? fail(0xb41 /* missing context */);
306
- const cursor = context.checkout.forest.allocateCursor("getFlexNode");
307
- context.checkout.forest.moveCursorToPath(anchorNode, cursor);
308
- this.#hydrationState.innerNode = getOrCreateHydratedFlexTreeNode(context, cursor);
309
- cursor.free();
310
- assertFlexTreeEntityNotFreed(this.#hydrationState.innerNode);
311
- }
312
- }
313
-
314
283
  return this.#hydrationState.innerNode;
315
284
  }
316
285
 
@@ -553,10 +522,8 @@ class KernelEventBuffer implements Listenable<KernelEvents> {
553
522
  // #endregion
554
523
 
555
524
  /**
556
- * For "cooked" nodes this is a HydratedFlexTreeNode thats a projection of forest content.
525
+ * For hydrated nodes this is a HydratedFlexTreeNode thats a projection of forest content.
557
526
  * For {@link Unhydrated} nodes this is a UnhydratedFlexTreeNode.
558
- *
559
- * For "marinated" nodes, some code (ex: getOrCreateInnerNode) returns the FlexTreeNode thats a projection of forest content, and some code (ex: tryGetInnerNode) returns undefined.
560
527
  */
561
528
  export type InnerNode = FlexTreeNode;
562
529
 
@@ -621,13 +588,12 @@ export function getSimpleContextFromInnerNode(innerNode: InnerNode): Context {
621
588
  * For {@link Unhydrated} nodes, this returns the MapTreeNode.
622
589
  *
623
590
  * For hydrated nodes it returns a FlexTreeNode backed by the forest.
624
- * Note that for "marinated" nodes, this FlexTreeNode exists and returns it: it does not return the MapTreeNode which is the current InnerNode.
625
591
  *
626
592
  * @throws A {@link @fluidframework/telemetry-utils#UsageError} if the node has been deleted.
627
593
  */
628
- export function getOrCreateInnerNode(treeNode: TreeNode): InnerNode {
594
+ export function getInnerNode(treeNode: TreeNode): InnerNode {
629
595
  const kernel = getKernel(treeNode);
630
- return kernel.getOrCreateInnerNode();
596
+ return kernel.getInnerNode();
631
597
  }
632
598
 
633
599
  /**
@@ -10,10 +10,7 @@ import type { SimpleNodeSchemaBase } from "./simpleNodeSchemaBase.js";
10
10
  import type { TreeNode } from "./treeNode.js";
11
11
  import type { InternalTreeNode, Unhydrated } from "./types.js";
12
12
  import type { UnionToIntersection } from "../../util/index.js";
13
- import type {
14
- ImplicitAnnotatedAllowedTypes,
15
- NormalizedAnnotatedAllowedTypes,
16
- } from "./allowedTypes.js";
13
+ import type { ImplicitAllowedTypes, AllowedTypesFullEvaluated } from "./allowedTypes.js";
17
14
  import type { Context } from "./context.js";
18
15
  import type { FieldKey, NodeData, TreeNodeStoredSchema } from "../../core/index.js";
19
16
  import type { UnhydratedFlexTreeField } from "./unhydratedFlexTree.js";
@@ -391,7 +388,7 @@ export interface TreeNodeSchemaPrivateData {
391
388
  * If this is stabilized, it will live alongside the childTypes property on {@link TreeNodeSchemaCore}.
392
389
  * @system
393
390
  */
394
- readonly childAnnotatedAllowedTypes: readonly ImplicitAnnotatedAllowedTypes[];
391
+ readonly childAnnotatedAllowedTypes: readonly ImplicitAllowedTypes[];
395
392
 
396
393
  /**
397
394
  * Idempotent initialization function that pre-caches data and can dereference lazy schema references.
@@ -425,7 +422,7 @@ export interface TreeNodeSchemaInitializedData {
425
422
  * If this is stabilized, it will live alongside the childTypes property on {@link TreeNodeSchemaCore}.
426
423
  * @system
427
424
  */
428
- readonly childAnnotatedAllowedTypes: readonly NormalizedAnnotatedAllowedTypes[];
425
+ readonly childAnnotatedAllowedTypes: readonly AllowedTypesFullEvaluated[];
429
426
 
430
427
  /**
431
428
  * A {@link Context} which can be used for unhydrated nodes of this schema.
@@ -25,7 +25,7 @@ import {
25
25
  } from "./treeNodeKernel.js";
26
26
  import type { InternalTreeNode } from "./types.js";
27
27
  import { typeSchemaSymbol } from "./withType.js";
28
- import type { ImplicitAnnotatedAllowedTypes } from "./allowedTypes.js";
28
+ import type { ImplicitAllowedTypes } from "./allowedTypes.js";
29
29
  import type { SimpleNodeSchemaBase } from "./simpleNodeSchemaBase.js";
30
30
 
31
31
  /**
@@ -259,7 +259,7 @@ export function isClassBasedSchema(
259
259
  */
260
260
  export function createTreeNodeSchemaPrivateData(
261
261
  schema: TreeNodeSchemaCore<string, NodeKind, boolean>,
262
- childAnnotatedAllowedTypes: readonly ImplicitAnnotatedAllowedTypes[],
262
+ childAnnotatedAllowedTypes: readonly ImplicitAllowedTypes[],
263
263
  toStored: TreeNodeSchemaPrivateData["toStored"],
264
264
  ): TreeNodeSchemaPrivateData {
265
265
  const schemaValid = schemaAsTreeNodeValid(schema);
@@ -4,9 +4,9 @@
4
4
  */
5
5
 
6
6
  import {
7
- normalizeAnnotatedAllowedTypes,
7
+ normalizeAndEvaluateAnnotatedAllowedTypes,
8
8
  type AnnotatedAllowedType,
9
- type NormalizedAnnotatedAllowedTypes,
9
+ type AllowedTypesFullEvaluated,
10
10
  } from "./allowedTypes.js";
11
11
  import { getTreeNodeSchemaPrivateData, type TreeNodeSchema } from "./treeNodeSchema.js";
12
12
 
@@ -32,7 +32,11 @@ export function walkNodeSchema(
32
32
  getTreeNodeSchemaPrivateData(schema).childAnnotatedAllowedTypes;
33
33
 
34
34
  for (const fieldAllowedTypes of annotatedAllowedTypes) {
35
- walkAllowedTypes(normalizeAnnotatedAllowedTypes(fieldAllowedTypes), visitor, visitedSet);
35
+ walkAllowedTypes(
36
+ normalizeAndEvaluateAnnotatedAllowedTypes(fieldAllowedTypes),
37
+ visitor,
38
+ visitedSet,
39
+ );
36
40
  }
37
41
 
38
42
  // This visit is done at the end so the traversal order is most inner types first.
@@ -47,7 +51,7 @@ export function walkNodeSchema(
47
51
  * @internal
48
52
  */
49
53
  export function walkAllowedTypes(
50
- annotatedAllowedTypes: NormalizedAnnotatedAllowedTypes,
54
+ annotatedAllowedTypes: AllowedTypesFullEvaluated,
51
55
  visitor: SchemaVisitor,
52
56
  visitedSet: Set<TreeNodeSchema> = new Set(),
53
57
  ): void {
@@ -77,7 +81,7 @@ export interface SchemaVisitor {
77
81
  *
78
82
  * After this is called {@link SchemaVisitor.allowedTypeFilter} is applied to each allowed type in the schema to determine which of them are walked into.
79
83
  */
80
- allowedTypes?: (allowedTypes: NormalizedAnnotatedAllowedTypes) => void;
84
+ allowedTypes?: (allowedTypes: AllowedTypesFullEvaluated) => void;
81
85
  /**
82
86
  * If true, will walk into this `allowedType`.
83
87
  * If false, the `allowedType` will not be walked into.
@@ -9,7 +9,7 @@ import { getOrCreate } from "../util/index.js";
9
9
  import {
10
10
  Context,
11
11
  getTreeNodeSchemaPrivateData,
12
- normalizeAnnotatedAllowedTypes,
12
+ normalizeAndEvaluateAnnotatedAllowedTypes,
13
13
  UnhydratedContext,
14
14
  type TreeNodeSchema,
15
15
  type TreeNodeSchemaInitializedData,
@@ -34,7 +34,7 @@ export function getUnhydratedContext(schema: ImplicitFieldSchema): Context {
34
34
  );
35
35
  return new Context(
36
36
  flexContext,
37
- Context.schemaMapFromRootSchema(normalized.annotatedAllowedTypesNormalized),
37
+ Context.schemaMapFromRootSchema(normalized.allowedTypesFull.evaluate()),
38
38
  );
39
39
  });
40
40
  }
@@ -51,7 +51,7 @@ export function getTreeNodeSchemaInitializedData(
51
51
  ...handler,
52
52
  context: getUnhydratedContext(schema),
53
53
  childAnnotatedAllowedTypes: data.childAnnotatedAllowedTypes.map(
54
- normalizeAnnotatedAllowedTypes,
54
+ normalizeAndEvaluateAnnotatedAllowedTypes,
55
55
  ),
56
56
  };
57
57
  }
@@ -23,21 +23,13 @@ import type {
23
23
  TreeNodeSchema,
24
24
  TreeNode,
25
25
  UnhydratedFlexTreeNode,
26
- NormalizedAnnotatedAllowedTypes,
27
26
  ImplicitAllowedTypes,
28
- ImplicitAnnotatedAllowedTypes,
29
- UnannotateImplicitAllowedTypes,
30
- AllowedTypesMetadata,
31
27
  TreeNodeFromImplicitAllowedTypes,
32
28
  TreeLeafValue,
33
29
  InsertableTreeNodeFromImplicitAllowedTypes,
30
+ AllowedTypesFull,
34
31
  } from "./core/index.js";
35
- import {
36
- isAnnotatedAllowedTypes,
37
- normalizeAllowedTypes,
38
- normalizeAnnotatedAllowedTypes,
39
- unannotateImplicitAllowedTypes,
40
- } from "./core/index.js";
32
+ import { normalizeAllowedTypes } from "./core/index.js";
41
33
 
42
34
  import type { SimpleFieldSchema } from "./simpleSchema.js";
43
35
  import type { UnsafeUnknownSchema } from "./unsafeUnknownSchema.js";
@@ -81,10 +73,7 @@ export enum FieldKind {
81
73
  * If an explicit stored key was specified in the schema, it will be used.
82
74
  * Otherwise, the stored key is the same as the property key.
83
75
  */
84
- export function getStoredKey(
85
- propertyKey: string,
86
- fieldSchema: ImplicitAnnotatedFieldSchema,
87
- ): FieldKey {
76
+ export function getStoredKey(propertyKey: string, fieldSchema: ImplicitFieldSchema): FieldKey {
88
77
  return brand(getExplicitStoredKey(fieldSchema) ?? propertyKey);
89
78
  }
90
79
 
@@ -92,9 +81,7 @@ export function getStoredKey(
92
81
  * Gets the {@link FieldProps.key | stored key} specified by the schema, if one was explicitly specified.
93
82
  * Otherwise, returns undefined.
94
83
  */
95
- export function getExplicitStoredKey(
96
- fieldSchema: ImplicitAnnotatedFieldSchema,
97
- ): string | undefined {
84
+ export function getExplicitStoredKey(fieldSchema: ImplicitFieldSchema): string | undefined {
98
85
  return fieldSchema instanceof FieldSchema ? fieldSchema.props?.key : undefined;
99
86
  }
100
87
 
@@ -286,30 +273,7 @@ export function createFieldSchema<
286
273
  kind: Kind,
287
274
  annotatedTypes: Types,
288
275
  props?: FieldProps<TCustomMetadata>,
289
- ): FieldSchemaAlpha<Kind, Types, TCustomMetadata>;
290
-
291
- /**
292
- * Package internal construction API that supports annotations for allowed types.
293
- */
294
- export function createFieldSchema<
295
- Kind extends FieldKind,
296
- Types extends ImplicitAnnotatedAllowedTypes,
297
- TCustomMetadata = unknown,
298
- >(
299
- kind: Kind,
300
- annotatedTypes: Types,
301
- props?: FieldProps<TCustomMetadata>,
302
- ): FieldSchemaAlpha<Kind, UnannotateImplicitAllowedTypes<Types>, TCustomMetadata>;
303
-
304
- export function createFieldSchema<
305
- Kind extends FieldKind,
306
- Types extends ImplicitAnnotatedAllowedTypes,
307
- TCustomMetadata = unknown,
308
- >(
309
- kind: Kind,
310
- annotatedTypes: Types,
311
- props?: FieldProps<TCustomMetadata>,
312
- ): FieldSchemaAlpha<Kind, UnannotateImplicitAllowedTypes<Types>, TCustomMetadata> {
276
+ ): FieldSchemaAlpha<Kind, Types, TCustomMetadata> {
313
277
  return createFieldSchemaPrivate(kind, annotatedTypes, props);
314
278
  }
315
279
 
@@ -318,13 +282,13 @@ export function createFieldSchema<
318
282
  */
319
283
  let createFieldSchemaPrivate: <
320
284
  Kind extends FieldKind,
321
- Types extends ImplicitAnnotatedAllowedTypes,
285
+ Types extends ImplicitAllowedTypes,
322
286
  TCustomMetadata,
323
287
  >(
324
288
  kind: Kind,
325
289
  annotatedTypes: Types,
326
290
  props?: FieldProps<TCustomMetadata>,
327
- ) => FieldSchemaAlpha<Kind, UnannotateImplicitAllowedTypes<Types>, TCustomMetadata>;
291
+ ) => FieldSchemaAlpha<Kind, Types, TCustomMetadata>;
328
292
 
329
293
  /**
330
294
  * All policy for a specific field,
@@ -400,7 +364,7 @@ export class FieldSchema<
400
364
  throw new UsageError("FieldSchema is @sealed: sub-classing is not allowed.");
401
365
  }
402
366
 
403
- this.lazyTypes = new Lazy(() => normalizeAllowedTypes(this.allowedTypes));
367
+ this.lazyTypes = new Lazy(() => normalizeAllowedTypes(this.allowedTypes).evaluateSet());
404
368
  // TODO: optional fields should (by default) get a default provider that returns undefined, removing the need to special case them here:
405
369
  this.requiresValue =
406
370
  this.props?.defaultProvider === undefined && this.kind !== FieldKind.Optional;
@@ -421,15 +385,8 @@ export class FieldSchemaAlpha<
421
385
  extends FieldSchema<Kind, Types, TCustomMetadata>
422
386
  implements SimpleFieldSchema
423
387
  {
424
- private readonly lazyIdentifiers: Lazy<ReadonlySet<string>>;
425
- private readonly lazyAnnotatedTypes: Lazy<NormalizedAnnotatedAllowedTypes>;
426
388
  private readonly propsAlpha: FieldPropsAlpha<TCustomMetadata> | undefined;
427
389
 
428
- /**
429
- * Metadata on the types of tree nodes allowed on this field.
430
- */
431
- public readonly allowedTypesMetadata: AllowedTypesMetadata;
432
-
433
390
  public get persistedMetadata(): JsonCompatibleReadOnlyObject | undefined {
434
391
  return this.propsAlpha?.persistedMetadata;
435
392
  }
@@ -437,61 +394,44 @@ export class FieldSchemaAlpha<
437
394
  static {
438
395
  createFieldSchemaPrivate = <
439
396
  Kind2 extends FieldKind,
440
- Types2 extends ImplicitAnnotatedAllowedTypes,
397
+ Types2 extends ImplicitAllowedTypes,
441
398
  TCustomMetadata2,
442
399
  >(
443
400
  kind: Kind2,
444
401
  annotatedAllowedTypes: Types2,
445
402
  props?: FieldPropsAlpha<TCustomMetadata2>,
446
- ) =>
447
- new FieldSchemaAlpha(
448
- kind,
449
- unannotateImplicitAllowedTypes(annotatedAllowedTypes),
450
- annotatedAllowedTypes,
451
- props,
452
- );
403
+ ) => new FieldSchemaAlpha(kind, annotatedAllowedTypes, props);
404
+ }
405
+
406
+ /**
407
+ * {@link normalizeAllowedTypes|Normalized} version of {@link FieldSchema.allowedTypes}.
408
+ */
409
+ public readonly allowedTypesFull: AllowedTypesFull;
410
+
411
+ public get allowedTypesIdentifiers(): ReadonlySet<string> {
412
+ return this.allowedTypesFull.evaluateIdentifiers();
453
413
  }
454
414
 
455
415
  protected constructor(
456
416
  kind: Kind,
457
417
  types: Types,
458
- public readonly annotatedAllowedTypes: ImplicitAnnotatedAllowedTypes,
418
+
459
419
  props?: FieldPropsAlpha<TCustomMetadata>,
460
420
  ) {
461
421
  super(kind, types, props);
462
422
 
463
- this.allowedTypesMetadata = isAnnotatedAllowedTypes(annotatedAllowedTypes)
464
- ? annotatedAllowedTypes.metadata
465
- : {};
466
- this.lazyAnnotatedTypes = new Lazy(() =>
467
- normalizeAnnotatedAllowedTypes(annotatedAllowedTypes),
468
- );
469
- this.lazyIdentifiers = new Lazy(
470
- () =>
471
- new Set(this.annotatedAllowedTypesNormalized.types.map(({ type }) => type.identifier)),
472
- );
423
+ const normalizedTypes = normalizeAllowedTypes(types);
424
+ this.allowedTypesFull = normalizedTypes;
473
425
  this.propsAlpha = props;
474
426
  }
475
-
476
- public get allowedTypesIdentifiers(): ReadonlySet<string> {
477
- return this.lazyIdentifiers.value;
478
- }
479
-
480
- /**
481
- * What types of tree nodes are allowed in this field and their annotations.
482
- * @remarks Counterpart to {@link FieldSchemaAlpha.annotatedAllowedTypes}, with any lazy definitions evaluated.
483
- */
484
- public get annotatedAllowedTypesNormalized(): NormalizedAnnotatedAllowedTypes {
485
- return this.lazyAnnotatedTypes.value;
486
- }
487
427
  }
488
428
 
489
429
  /**
490
- * Normalizes a {@link ImplicitFieldSchema} or {@link ImplicitAnnotatedFieldSchema} to a {@link FieldSchema}.
430
+ * Normalizes a {@link ImplicitFieldSchema} or {@link ImplicitFieldSchema} to a {@link FieldSchema}.
491
431
  * @internal
492
432
  */
493
433
  export function normalizeFieldSchema(
494
- schema: ImplicitFieldSchema | ImplicitAnnotatedFieldSchema,
434
+ schema: ImplicitFieldSchema | ImplicitFieldSchema,
495
435
  ): FieldSchemaAlpha {
496
436
  return schema instanceof FieldSchema
497
437
  ? (schema as FieldSchemaAlpha)
@@ -618,20 +558,6 @@ function arePersistedMetadataEqual(
618
558
  */
619
559
  export type ImplicitFieldSchema = FieldSchema | ImplicitAllowedTypes;
620
560
 
621
- /**
622
- * {@link ImplicitFieldSchema} which supports {@link AnnotatedAllowedTypes | annotations} on the allowed types.
623
- * @alpha
624
- * @input
625
- */
626
- export type ImplicitAnnotatedFieldSchema = FieldSchema | ImplicitAnnotatedAllowedTypes;
627
-
628
- /**
629
- * Removes annotations from an annotated field schema.
630
- * @system @alpha
631
- */
632
- export type UnannotateImplicitFieldSchema<T extends ImplicitAnnotatedFieldSchema> =
633
- T extends ImplicitAnnotatedAllowedTypes ? UnannotateImplicitAllowedTypes<T> : T;
634
-
635
561
  /**
636
562
  * Converts an `ImplicitFieldSchema` to a property type suitable for reading a field with this that schema.
637
563
  *
@@ -40,7 +40,7 @@ export function tryGetTreeNodeForField(
40
40
  return tryToUnboxLeaves(typedField);
41
41
  }
42
42
  case FieldKinds.identifier.identifier: {
43
- // Identifier fields are just value fields that hold strings
43
+ // Identifier fields are just required fields that hold strings
44
44
  return (field as FlexTreeRequiredField).content as string;
45
45
  }
46
46