@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
@@ -29,8 +29,6 @@ import {
29
29
  type TreeFieldFromImplicitField,
30
30
  type TreeLeafValue,
31
31
  type UnsafeUnknownSchema,
32
- conciseFromCursor,
33
- type ConciseTree,
34
32
  applySchemaToParserOptions,
35
33
  cursorFromVerbose,
36
34
  verboseFromCursor,
@@ -46,7 +44,7 @@ import {
46
44
  unhydratedFlexTreeFromInsertable,
47
45
  getOrCreateNodeFromInnerNode,
48
46
  getOrCreateNodeFromInnerUnboxedNode,
49
- getOrCreateInnerNode,
47
+ getInnerNode,
50
48
  NodeKind,
51
49
  tryGetTreeNodeForField,
52
50
  isObjectNodeSchema,
@@ -56,6 +54,10 @@ import {
56
54
  toUnhydratedSchema,
57
55
  type TreeParsingOptions,
58
56
  type NodeChangedData,
57
+ type ConciseTree,
58
+ importConcise,
59
+ exportConcise,
60
+ borrowCursorFromTreeNodeOrValue,
59
61
  } from "../simple-tree/index.js";
60
62
  import { brand, extractFromOpaque, type JsonCompatible } from "../util/index.js";
61
63
  import {
@@ -200,12 +202,12 @@ export interface TreeIdentifierUtils {
200
202
  * @remarks
201
203
  * Use via the {@link (TreeAlpha:variable)} singleton.
202
204
  *
203
- * The unhydrated node creation APIs in this interface do not support {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields | unknown optional fields}.
205
+ * The unhydrated node creation APIs in this interface do not support {@link ObjectSchemaOptions.allowUnknownOptionalFields | unknown optional fields}.
204
206
  * This is because unknown optional fields still must have a schema: its just that the schema may come from the document's stored schema.
205
207
  * Unhydrated nodes created via this interface are not associated with any document, so there is nowhere for them to get schema for unknown optional fields.
206
208
  * Note that {@link (TreeBeta:interface).clone} can create an unhydrated node with unknown optional fields, as it uses the source node's stored schema (if any).
207
209
  *
208
- * Export APIs in this interface include {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields | unknown optional fields}
210
+ * Export APIs in this interface include {@link ObjectSchemaOptions.allowUnknownOptionalFields | unknown optional fields}
209
211
  * if they are using {@link KeyEncodingOptions.allStoredKeys}.
210
212
  *
211
213
  * @privateRemarks
@@ -248,19 +250,7 @@ export interface TreeAlpha {
248
250
  >;
249
251
 
250
252
  /**
251
- * Less type safe version of {@link (TreeAlpha:interface).create}, suitable for importing data.
252
- * @remarks
253
- * Due to {@link ConciseTree} relying on type inference from the data, its use is somewhat limited.
254
- * This does not support {@link ConciseTree|ConciseTrees} with customized handle encodings or using persisted keys.
255
- * Use "compressed" or "verbose" formats for more flexibility.
256
- *
257
- * When using this function,
258
- * it is recommend to ensure your schema is unambiguous with {@link ITreeConfigurationOptions.preventAmbiguity}.
259
- * If the schema is ambiguous, consider using {@link (TreeAlpha:interface).create} and {@link Unhydrated} nodes where needed,
260
- * or using {@link (TreeAlpha:interface).(importVerbose:1)} and specify all types.
261
- *
262
- * Documented (and thus recoverable) error handling/reporting for this is not yet implemented,
263
- * but for now most invalid inputs will throw a recoverable error.
253
+ * {@inheritDoc (TreeBeta:interface).importConcise}
264
254
  */
265
255
  importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
266
256
  schema: UnsafeUnknownSchema extends TSchema
@@ -273,13 +263,30 @@ export interface TreeAlpha {
273
263
  : TreeNode | TreeLeafValue | undefined
274
264
  >;
275
265
 
266
+ /**
267
+ * {@inheritDoc (TreeBeta:interface).(exportConcise:1)}
268
+ * @privateRemarks Note: this was retained on this interface because {@link (TreeAlpha:interface).importConcise} exists.
269
+ * It should be removed if/when that is removed from this interface.
270
+ */
271
+ exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
272
+
273
+ /**
274
+ * {@inheritDoc (TreeBeta:interface).(exportConcise:2)}
275
+ * @privateRemarks Note: this was retained on this interface because {@link (TreeAlpha:interface).importConcise} exists.
276
+ * It should be removed if/when that is removed from this interface.
277
+ */
278
+ exportConcise(
279
+ node: TreeNode | TreeLeafValue | undefined,
280
+ options?: TreeEncodingOptions,
281
+ ): ConciseTree | undefined;
282
+
276
283
  /**
277
284
  * Construct tree content compatible with a field defined by the provided `schema`.
278
285
  * @param schema - The schema for what to construct. As this is an {@link ImplicitFieldSchema}, a {@link FieldSchema}, {@link TreeNodeSchema} or {@link AllowedTypes} array can be provided.
279
286
  * @param data - The data used to construct the field content. See {@link (TreeAlpha:interface).(exportVerbose:1)}.
280
287
  * @remarks
281
288
  * This currently does not support input containing
282
- * {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields| unknown optional fields} but does support
289
+ * {@link ObjectSchemaOptions.allowUnknownOptionalFields| unknown optional fields} but does support
283
290
  * {@link SchemaStaticsAlpha.staged | staged} allowed types.
284
291
  * Non-empty default values for fields are currently not supported (must be provided in the input).
285
292
  * The content will be validated against the schema and an error will be thrown if out of schema.
@@ -290,25 +297,12 @@ export interface TreeAlpha {
290
297
  options?: TreeParsingOptions,
291
298
  ): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
292
299
 
293
- /**
294
- * Copy a snapshot of the current version of a TreeNode into a {@link ConciseTree}.
295
- */
296
- exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
297
-
298
- /**
299
- * Copy a snapshot of the current version of a TreeNode into a {@link ConciseTree}, allowing undefined.
300
- */
301
- exportConcise(
302
- node: TreeNode | TreeLeafValue | undefined,
303
- options?: TreeEncodingOptions,
304
- ): ConciseTree | undefined;
305
-
306
300
  /**
307
301
  * Copy a snapshot of the current version of a TreeNode into a JSON compatible plain old JavaScript Object (except for {@link @fluidframework/core-interfaces#IFluidHandle|IFluidHandles}).
308
302
  * Uses the {@link VerboseTree} format, with an explicit type on every node.
309
303
  *
310
304
  * @remarks
311
- * There are several cases this may be preferred to {@link (TreeAlpha:interface).(exportConcise:1)}:
305
+ * There are several cases this may be preferred to {@link (TreeBeta:interface).(exportConcise:1)}:
312
306
  *
313
307
  * 1. When not using {@link ITreeConfigurationOptions.preventAmbiguity} (or when using `useStableFieldKeys`), `exportConcise` can produce ambiguous data (the type may be unclear on some nodes).
314
308
  * `exportVerbose` will always be unambiguous and thus lossless.
@@ -385,7 +379,7 @@ export interface TreeAlpha {
385
379
  /**
386
380
  * Gets the child of the given node with the given property key if a child exists under that key.
387
381
  *
388
- * @remarks {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields | Unknown optional fields} of Object nodes will not be returned by this method.
382
+ * @remarks {@link ObjectSchemaOptions.allowUnknownOptionalFields | Unknown optional fields} of Object nodes will not be returned by this method.
389
383
  *
390
384
  * @param node - The parent node whose child is being requested.
391
385
  * @param key - The property key under the node under which the child is being requested.
@@ -406,7 +400,7 @@ export interface TreeAlpha {
406
400
  *
407
401
  * Optional properties of Object nodes with no value are not included in the result.
408
402
  *
409
- * {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields | Unknown optional fields} of Object nodes are not included in the result.
403
+ * {@link ObjectSchemaOptions.allowUnknownOptionalFields | Unknown optional fields} of Object nodes are not included in the result.
410
404
  *
411
405
  * @param node - The node whose children are being requested.
412
406
  *
@@ -767,7 +761,7 @@ export const TreeAlpha: TreeAlpha = {
767
761
  >;
768
762
  },
769
763
 
770
- importConcise<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
764
+ importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
771
765
  schema: UnsafeUnknownSchema extends TSchema
772
766
  ? ImplicitFieldSchema
773
767
  : TSchema & ImplicitFieldSchema,
@@ -777,12 +771,11 @@ export const TreeAlpha: TreeAlpha = {
777
771
  ? TreeFieldFromImplicitField<TSchema>
778
772
  : TreeNode | TreeLeafValue | undefined
779
773
  > {
780
- // `importConcise` does not need to support all the formats that `create` does.
781
- // Perhaps it should error instead of hydrating nodes for example.
782
- // For now however, it is a simple wrapper around `create`.
783
- return this.create(schema, data as InsertableField<TSchema>);
774
+ return importConcise(schema, data);
784
775
  },
785
776
 
777
+ exportConcise,
778
+
786
779
  importVerbose<const TSchema extends ImplicitFieldSchema>(
787
780
  schema: TSchema,
788
781
  data: VerboseTree | undefined,
@@ -806,8 +799,6 @@ export const TreeAlpha: TreeAlpha = {
806
799
  );
807
800
  },
808
801
 
809
- exportConcise,
810
-
811
802
  exportVerbose(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): VerboseTree {
812
803
  if (isTreeValue(node)) {
813
804
  return node;
@@ -890,7 +881,7 @@ export const TreeAlpha: TreeAlpha = {
890
881
  node: TreeNode,
891
882
  propertyKey: string | number,
892
883
  ): TreeNode | TreeLeafValue | undefined => {
893
- const flexNode = getOrCreateInnerNode(node);
884
+ const flexNode = getInnerNode(node);
894
885
  debugAssert(
895
886
  () => !flexNode.context.isDisposed() || "The provided tree node has been disposed.",
896
887
  );
@@ -960,7 +951,7 @@ export const TreeAlpha: TreeAlpha = {
960
951
  },
961
952
 
962
953
  children(node: TreeNode): [propertyKey: string | number, child: TreeNode | TreeLeafValue][] {
963
- const flexNode = getOrCreateInnerNode(node);
954
+ const flexNode = getInnerNode(node);
964
955
  debugAssert(
965
956
  () => !flexNode.context.isDisposed() || "The provided tree node has been disposed.",
966
957
  );
@@ -1020,46 +1011,6 @@ export const TreeAlpha: TreeAlpha = {
1020
1011
  },
1021
1012
  };
1022
1013
 
1023
- function exportConcise(
1024
- node: TreeNode | TreeLeafValue,
1025
- options?: TreeEncodingOptions,
1026
- ): ConciseTree;
1027
-
1028
- function exportConcise(
1029
- node: TreeNode | TreeLeafValue | undefined,
1030
- options?: TreeEncodingOptions,
1031
- ): ConciseTree | undefined;
1032
-
1033
- function exportConcise(
1034
- node: TreeNode | TreeLeafValue | undefined,
1035
- options?: TreeEncodingOptions,
1036
- ): ConciseTree | undefined {
1037
- if (!isTreeNode(node)) {
1038
- return node;
1039
- }
1040
- const config: TreeEncodingOptions = { ...options };
1041
-
1042
- const kernel = getKernel(node);
1043
- const cursor = borrowCursorFromTreeNodeOrValue(node);
1044
- return conciseFromCursor(cursor, kernel.context, config);
1045
- }
1046
-
1047
- /**
1048
- * Borrow a cursor from a node.
1049
- * @remarks
1050
- * The cursor must be put back to its original location before the node is used again.
1051
- */
1052
- function borrowCursorFromTreeNodeOrValue(
1053
- node: TreeNode | TreeLeafValue,
1054
- ): ITreeCursorSynchronous {
1055
- if (isTreeValue(node)) {
1056
- return cursorFromVerbose(node, {});
1057
- }
1058
- const kernel = getKernel(node);
1059
- const cursor = kernel.getOrCreateInnerNode().borrowCursor();
1060
- return cursor;
1061
- }
1062
-
1063
1014
  /**
1064
1015
  * Borrow a cursor from a field.
1065
1016
  * @remarks
@@ -28,7 +28,7 @@ import {
28
28
  * @privateRemarks
29
29
  * This can store all possible simple trees,
30
30
  * but it can not store all possible trees representable by our internal representations like FlexTree and JsonableTree.
31
- * @alpha
31
+ * @beta
32
32
  */
33
33
  export type ConciseTree<THandle = IFluidHandle> =
34
34
  | Exclude<TreeLeafValue, IFluidHandle>
@@ -19,10 +19,9 @@ import {
19
19
  normalizeFieldSchema,
20
20
  } from "../fieldSchema.js";
21
21
  import {
22
+ type AllowedTypesFullEvaluated,
22
23
  NodeKind,
23
24
  type TreeNodeSchema,
24
- isAnnotatedAllowedType,
25
- evaluateLazySchema,
26
25
  markSchemaMostDerived,
27
26
  } from "../core/index.js";
28
27
  import {
@@ -165,9 +164,6 @@ export interface ITreeViewConfiguration<
165
164
 
166
165
  /**
167
166
  * Configuration for {@link ViewableTree.viewWith}.
168
- * @privateRemarks
169
- * When `ImplicitAnnotatedFieldSchema` is stabilized, TSchema should be updated to use it.
170
- * When doing this, the example for `staged` will need to be updated/simplified.
171
167
  * @sealed @public
172
168
  */
173
169
  export class TreeViewConfiguration<
@@ -235,9 +231,9 @@ export class TreeViewConfiguration<
235
231
  debugAssert(() => !definitions.has(schema.identifier));
236
232
  definitions.set(schema.identifier, schema as SimpleNodeSchema & TreeNodeSchema);
237
233
  },
238
- allowedTypes({ types }): void {
234
+ allowedTypes({ types }: AllowedTypesFullEvaluated): void {
239
235
  checkUnion(
240
- types.map((t) => evaluateLazySchema(isAnnotatedAllowedType(t) ? t.type : t)),
236
+ types.map((t) => t.type),
241
237
  config.preventAmbiguity,
242
238
  ambiguityErrors,
243
239
  );
@@ -35,7 +35,7 @@ import { isObjectNodeSchema } from "../node-kinds/index.js";
35
35
 
36
36
  /**
37
37
  * Options for how to interpret or encode a tree when schema information is available.
38
- * @alpha
38
+ * @beta
39
39
  * @input
40
40
  */
41
41
  export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
@@ -44,7 +44,7 @@ export interface TreeEncodingOptions<TKeyOptions = KeyEncodingOptions> {
44
44
  * @remarks
45
45
  * Has no effect on {@link NodeKind}s other than {@link NodeKind.Object}.
46
46
  *
47
- * {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields|Unknown optional field} will be omitted when using property keys.
47
+ * {@link ObjectSchemaOptions.allowUnknownOptionalFields|Unknown optional field} will be omitted when using property keys.
48
48
  * @defaultValue {@link KeyEncodingOptions.usePropertyKeys}.
49
49
  */
50
50
  readonly keys?: TKeyOptions;
@@ -61,7 +61,7 @@ export type TreeParsingOptions = TreeEncodingOptions<
61
61
 
62
62
  /**
63
63
  * Options for how to encode keys in a tree.
64
- * @alpha
64
+ * @beta
65
65
  * @input
66
66
  */
67
67
  export enum KeyEncodingOptions {
@@ -69,21 +69,21 @@ export enum KeyEncodingOptions {
69
69
  * Use property keys.
70
70
  * @remarks
71
71
  * Supported for import and export.
72
- * {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields|Unknown optional fields} will be omitted when using property keys.
72
+ * {@link ObjectSchemaOptions.allowUnknownOptionalFields|Unknown optional fields} will be omitted when using property keys.
73
73
  */
74
74
  usePropertyKeys = "usePropertyKeys",
75
75
  /**
76
- * Use stored keys, and include {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields|Unknown optional fields}.
76
+ * Use stored keys, and include {@link ObjectSchemaOptions.allowUnknownOptionalFields|Unknown optional fields}.
77
77
  * @remarks
78
78
  * Currently only supported for export.
79
79
  */
80
80
  allStoredKeys = "allStoredKeys",
81
81
  /**
82
- * Use stored keys but do not include {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields|Unknown optional fields}.
82
+ * Use stored keys but do not include {@link ObjectSchemaOptions.allowUnknownOptionalFields | unknown optional fields}.
83
83
  * @remarks
84
84
  * Supported for import and export.
85
85
  * For export, this omits unknown optional fields.
86
- * For import, any unexpected fields are errors, regardless of {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields}.
86
+ * For import, any unexpected fields are errors, regardless of {@link ObjectSchemaOptions.allowUnknownOptionalFields}.
87
87
  */
88
88
  knownStoredKeys = "knownStoredKeys",
89
89
  }
@@ -24,7 +24,7 @@ import {
24
24
  import { brand } from "../../util/index.js";
25
25
  import {
26
26
  NodeKind,
27
- normalizeAnnotatedAllowedTypes,
27
+ normalizeAndEvaluateAnnotatedAllowedTypes,
28
28
  type AnnotatedAllowedType,
29
29
  type TreeNodeSchema,
30
30
  } from "../core/index.js";
@@ -237,7 +237,7 @@ function* getNodeDiscrepancies(
237
237
  }
238
238
 
239
239
  yield* getAllowedTypeDiscrepancies(
240
- normalizeAnnotatedAllowedTypes(view.info).types,
240
+ normalizeAndEvaluateAnnotatedAllowedTypes(view.info).types,
241
241
  arrayStoredSchema,
242
242
  brand(view.identifier),
243
243
  EmptyKey,
@@ -346,7 +346,7 @@ function* getFieldDiscrepancies(
346
346
  0xbee /* all field schema should be FieldSchemaAlpha */,
347
347
  );
348
348
  yield* getAllowedTypeDiscrepancies(
349
- view.annotatedAllowedTypesNormalized.types,
349
+ view.allowedTypesFull.evaluate().types,
350
350
  stored.types,
351
351
  identifier,
352
352
  fieldKey,
@@ -28,7 +28,8 @@ export { type SchemaStatics, schemaStatics } from "./schemaStatics.js";
28
28
  export {
29
29
  SchemaFactory,
30
30
  type ScopedSchemaName,
31
- type SchemaFactoryObjectOptions,
31
+ type ObjectSchemaOptionsAlpha,
32
+ type ObjectSchemaOptions,
32
33
  type NodeSchemaOptions,
33
34
  type NodeSchemaOptionsAlpha,
34
35
  type SchemaFactory_base,
@@ -89,6 +90,13 @@ export type {
89
90
  MapNodeCustomizableSchemaUnsafe,
90
91
  System_Unsafe,
91
92
  TreeRecordNodeUnsafe,
93
+ UnannotateAllowedTypeUnsafe,
94
+ AnnotatedAllowedTypeUnsafe,
95
+ AnnotatedAllowedTypesUnsafe,
96
+ AllowedTypesFullUnsafe,
97
+ AllowedTypesFullFromMixedUnsafe,
98
+ UnannotateAllowedTypesListUnsafe,
99
+ AnnotateAllowedTypesListUnsafe,
92
100
  } from "./typesUnsafe.js";
93
101
 
94
102
  export {
@@ -118,7 +126,14 @@ export {
118
126
  replaceConciseTreeHandles,
119
127
  } from "./conciseTree.js";
120
128
 
121
- export { TreeBeta, type NodeChangedData, type TreeChangeEventsBeta } from "./treeBeta.js";
129
+ export {
130
+ borrowCursorFromTreeNodeOrValue,
131
+ exportConcise,
132
+ importConcise,
133
+ type NodeChangedData,
134
+ TreeBeta,
135
+ type TreeChangeEventsBeta,
136
+ } from "./treeBeta.js";
122
137
  export { createSimpleTreeIndex, type SimpleTreeIndex } from "./simpleTreeIndex.js";
123
138
  export {
124
139
  createIdentifierIndex,
@@ -28,7 +28,6 @@ import type {
28
28
  TreeNodeSchemaBoth,
29
29
  UnhydratedFlexTreeNode,
30
30
  NodeSchemaMetadata,
31
- UnannotateImplicitAllowedTypes,
32
31
  ImplicitAllowedTypes,
33
32
  InsertableTreeNodeFromImplicitAllowedTypes,
34
33
  } from "../core/index.js";
@@ -51,7 +50,6 @@ import {
51
50
  type InsertableObjectFromSchemaRecord,
52
51
  type TreeMapNode,
53
52
  type TreeObjectNode,
54
- type UnannotateSchemaRecord,
55
53
  } from "../node-kinds/index.js";
56
54
  import {
57
55
  FieldKind,
@@ -96,13 +94,13 @@ export function schemaFromValue(value: TreeValue): TreeNodeSchema {
96
94
  }
97
95
 
98
96
  /**
99
- * Options when declaring an {@link SchemaFactory.object|object node}'s schema
97
+ * Options when declaring an {@link SchemaFactory.object|object node}'s schema.
100
98
  *
101
99
  * @input
102
- * @alpha
100
+ * @beta
103
101
  */
104
- export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown>
105
- extends NodeSchemaOptionsAlpha<TCustomMetadata> {
102
+ export interface ObjectSchemaOptions<TCustomMetadata = unknown>
103
+ extends NodeSchemaOptions<TCustomMetadata> {
106
104
  /**
107
105
  * Allow nodes typed with this object node schema to contain optional fields that are not present in the schema declaration.
108
106
  * Such nodes can come into existence either via import APIs (see remarks) or by way of collaboration with another client
@@ -151,12 +149,22 @@ export interface SchemaFactoryObjectOptions<TCustomMetadata = unknown>
151
149
  readonly allowUnknownOptionalFields?: boolean;
152
150
  }
153
151
 
152
+ /**
153
+ * Options when declaring an {@link SchemaFactory.object|object node}'s schema
154
+ *
155
+ * @input
156
+ * @alpha
157
+ */
158
+ export interface ObjectSchemaOptionsAlpha<TCustomMetadata = unknown>
159
+ extends ObjectSchemaOptions<TCustomMetadata>,
160
+ NodeSchemaOptionsAlpha<TCustomMetadata> {}
161
+
154
162
  /**
155
163
  * Default options for Object node schema creation.
156
164
  * @remarks Omits parameters that are not relevant for common use cases.
157
165
  */
158
166
  export const defaultSchemaFactoryObjectOptions: Required<
159
- Omit<SchemaFactoryObjectOptions, "metadata" | "persistedMetadata">
167
+ Omit<ObjectSchemaOptionsAlpha, "metadata" | "persistedMetadata">
160
168
  > = {
161
169
  allowUnknownOptionalFields: false,
162
170
  };
@@ -389,36 +397,12 @@ export class SchemaFactory<
389
397
  true,
390
398
  T
391
399
  > {
392
- // The compiler can't infer that UnannotateSchemaRecord<T> is equal to T so we have to do a bunch of typing to make the error go away.
393
- const object: TreeNodeSchemaClass<
394
- ScopedSchemaName<TScope, Name>,
395
- NodeKind.Object,
396
- TreeObjectNode<UnannotateSchemaRecord<T>, ScopedSchemaName<TScope, Name>>,
397
- object & InsertableObjectFromSchemaRecord<UnannotateSchemaRecord<T>>,
398
- true,
399
- T
400
- > = objectSchema(
400
+ return objectSchema(
401
401
  scoped(this, name),
402
402
  fields,
403
403
  true,
404
404
  defaultSchemaFactoryObjectOptions.allowUnknownOptionalFields,
405
405
  );
406
-
407
- return object as TreeNodeSchemaClass<
408
- ScopedSchemaName<TScope, Name>,
409
- NodeKind.Object,
410
- TreeObjectNode<RestrictiveStringRecord<ImplicitFieldSchema>>,
411
- unknown,
412
- true,
413
- T
414
- > as TreeNodeSchemaClass<
415
- ScopedSchemaName<TScope, Name>,
416
- NodeKind.Object,
417
- TreeObjectNode<T, ScopedSchemaName<TScope, Name>>,
418
- object & InsertableObjectFromSchemaRecord<T>,
419
- true,
420
- T
421
- >;
422
406
  }
423
407
 
424
408
  /**
@@ -545,17 +529,7 @@ export class SchemaFactory<
545
529
  T,
546
530
  undefined
547
531
  > {
548
- // The compiler can't infer that UnannotateImplicitAllowedTypes<T> is equal to T so we have to do a bunch of typing to make the error go away.
549
- const map: TreeNodeSchemaBoth<
550
- ScopedSchemaName<TScope, Name>,
551
- NodeKind.Map,
552
- TreeMapNode<UnannotateImplicitAllowedTypes<T>> &
553
- WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>,
554
- MapNodeInsertableData<UnannotateImplicitAllowedTypes<T>>,
555
- ImplicitlyConstructable,
556
- T,
557
- undefined
558
- > = mapSchema(
532
+ return mapSchema(
559
533
  scoped(this, name),
560
534
  allowedTypes,
561
535
  implicitlyConstructable,
@@ -563,25 +537,6 @@ export class SchemaFactory<
563
537
  !customizable,
564
538
  undefined,
565
539
  );
566
-
567
- return map as TreeNodeSchemaBoth<
568
- ScopedSchemaName<TScope, Name>,
569
- NodeKind.Map,
570
- TreeMapNode<UnannotateImplicitAllowedTypes<T>> &
571
- WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>,
572
- MapNodeInsertableData<ImplicitAllowedTypes>,
573
- ImplicitlyConstructable,
574
- T,
575
- undefined
576
- > as TreeNodeSchemaBoth<
577
- ScopedSchemaName<TScope, Name>,
578
- NodeKind.Map,
579
- TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>, NodeKind.Map>,
580
- MapNodeInsertableData<T>,
581
- ImplicitlyConstructable,
582
- T,
583
- undefined
584
- >;
585
540
  }
586
541
 
587
542
  /**
@@ -757,22 +712,12 @@ export class SchemaFactory<
757
712
  T,
758
713
  undefined
759
714
  > {
760
- const array = arraySchema(
715
+ return arraySchema(
761
716
  scoped(this, name),
762
717
  allowedTypes,
763
718
  implicitlyConstructable,
764
719
  customizable,
765
720
  );
766
-
767
- return array as TreeNodeSchemaBoth<
768
- ScopedSchemaName<TScope, Name>,
769
- NodeKind.Array,
770
- TreeArrayNode<T> & WithType<ScopedSchemaName<TScope, string>, NodeKind.Array>,
771
- Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T>>,
772
- ImplicitlyConstructable,
773
- T,
774
- undefined
775
- >;
776
721
  }
777
722
 
778
723
  /**