@fluidframework/tree 2.63.0-359461 → 2.63.0-359734

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 (377) hide show
  1. package/.mocharc.cjs +9 -1
  2. package/api-report/tree.alpha.api.md +93 -98
  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 +11 -13
  8. package/dist/beta.d.ts +5 -0
  9. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  10. package/dist/feature-libraries/treeCursorUtils.js +17 -15
  11. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/jsonDomainSchema.d.ts +5 -5
  16. package/dist/jsonDomainSchema.js +5 -5
  17. package/dist/jsonDomainSchema.js.map +1 -1
  18. package/dist/legacy.d.ts +5 -0
  19. package/dist/packageVersion.d.ts +1 -1
  20. package/dist/packageVersion.js +1 -1
  21. package/dist/packageVersion.js.map +1 -1
  22. package/dist/public.d.ts +1 -0
  23. package/dist/serializableDomainSchema.d.ts +6 -6
  24. package/dist/serializableDomainSchema.js +5 -5
  25. package/dist/serializableDomainSchema.js.map +1 -1
  26. package/dist/shared-tree/schematizingTreeView.js +1 -1
  27. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  28. package/dist/shared-tree/treeAlpha.d.ts +20 -28
  29. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  30. package/dist/shared-tree/treeAlpha.js +4 -29
  31. package/dist/shared-tree/treeAlpha.js.map +1 -1
  32. package/dist/simple-tree/api/conciseTree.d.ts +1 -1
  33. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  34. package/dist/simple-tree/api/configuration.d.ts +0 -3
  35. package/dist/simple-tree/api/configuration.d.ts.map +1 -1
  36. package/dist/simple-tree/api/configuration.js +1 -4
  37. package/dist/simple-tree/api/configuration.js.map +1 -1
  38. package/dist/simple-tree/api/customTree.d.ts +7 -7
  39. package/dist/simple-tree/api/customTree.js +5 -5
  40. package/dist/simple-tree/api/customTree.js.map +1 -1
  41. package/dist/simple-tree/api/discrepancies.js +2 -2
  42. package/dist/simple-tree/api/discrepancies.js.map +1 -1
  43. package/dist/simple-tree/api/index.d.ts +2 -2
  44. package/dist/simple-tree/api/index.d.ts.map +1 -1
  45. package/dist/simple-tree/api/index.js +4 -1
  46. package/dist/simple-tree/api/index.js.map +1 -1
  47. package/dist/simple-tree/api/schemaFactory.d.ts +12 -4
  48. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  49. package/dist/simple-tree/api/schemaFactory.js +3 -8
  50. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  51. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +27 -26
  52. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  53. package/dist/simple-tree/api/schemaFactoryAlpha.js +11 -0
  54. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  55. package/dist/simple-tree/api/schemaFactoryBeta.d.ts +13 -2
  56. package/dist/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
  57. package/dist/simple-tree/api/schemaFactoryBeta.js +14 -0
  58. package/dist/simple-tree/api/schemaFactoryBeta.js.map +1 -1
  59. package/dist/simple-tree/api/schemaStatics.d.ts +9 -14
  60. package/dist/simple-tree/api/schemaStatics.d.ts.map +1 -1
  61. package/dist/simple-tree/api/schemaStatics.js +9 -12
  62. package/dist/simple-tree/api/schemaStatics.js.map +1 -1
  63. package/dist/simple-tree/api/storedSchema.d.ts +2 -2
  64. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  65. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  66. package/dist/simple-tree/api/tree.d.ts +3 -3
  67. package/dist/simple-tree/api/tree.js.map +1 -1
  68. package/dist/simple-tree/api/treeBeta.d.ts +52 -2
  69. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
  70. package/dist/simple-tree/api/treeBeta.js +36 -1
  71. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  72. package/dist/simple-tree/api/treeNodeApi.js +1 -1
  73. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  74. package/dist/simple-tree/core/allowedTypes.d.ts +120 -62
  75. package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -1
  76. package/dist/simple-tree/core/allowedTypes.js +162 -84
  77. package/dist/simple-tree/core/allowedTypes.js.map +1 -1
  78. package/dist/simple-tree/core/context.d.ts +2 -2
  79. package/dist/simple-tree/core/context.d.ts.map +1 -1
  80. package/dist/simple-tree/core/context.js.map +1 -1
  81. package/dist/simple-tree/core/index.d.ts +2 -2
  82. package/dist/simple-tree/core/index.d.ts.map +1 -1
  83. package/dist/simple-tree/core/index.js +4 -3
  84. package/dist/simple-tree/core/index.js.map +1 -1
  85. package/dist/simple-tree/core/toStored.d.ts +3 -3
  86. package/dist/simple-tree/core/toStored.d.ts.map +1 -1
  87. package/dist/simple-tree/core/toStored.js +2 -2
  88. package/dist/simple-tree/core/toStored.js.map +1 -1
  89. package/dist/simple-tree/core/treeNode.d.ts +1 -1
  90. package/dist/simple-tree/core/treeNode.js +1 -1
  91. package/dist/simple-tree/core/treeNode.js.map +1 -1
  92. package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -3
  93. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  94. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  95. package/dist/simple-tree/core/treeNodeValid.d.ts +2 -2
  96. package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
  97. package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
  98. package/dist/simple-tree/core/walkSchema.d.ts +3 -3
  99. package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
  100. package/dist/simple-tree/core/walkSchema.js +1 -1
  101. package/dist/simple-tree/core/walkSchema.js.map +1 -1
  102. package/dist/simple-tree/createContext.js +2 -2
  103. package/dist/simple-tree/createContext.js.map +1 -1
  104. package/dist/simple-tree/fieldSchema.d.ts +9 -32
  105. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  106. package/dist/simple-tree/fieldSchema.js +12 -20
  107. package/dist/simple-tree/fieldSchema.js.map +1 -1
  108. package/dist/simple-tree/index.d.ts +4 -4
  109. package/dist/simple-tree/index.d.ts.map +1 -1
  110. package/dist/simple-tree/index.js +6 -2
  111. package/dist/simple-tree/index.js.map +1 -1
  112. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +2 -2
  113. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  114. package/dist/simple-tree/node-kinds/array/arrayNode.js +5 -6
  115. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  116. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
  117. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  118. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  119. package/dist/simple-tree/node-kinds/common.d.ts.map +1 -1
  120. package/dist/simple-tree/node-kinds/common.js +2 -2
  121. package/dist/simple-tree/node-kinds/common.js.map +1 -1
  122. package/dist/simple-tree/node-kinds/index.d.ts +1 -1
  123. package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
  124. package/dist/simple-tree/node-kinds/index.js.map +1 -1
  125. package/dist/simple-tree/node-kinds/map/mapNode.d.ts +2 -2
  126. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  127. package/dist/simple-tree/node-kinds/map/mapNode.js +3 -3
  128. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  129. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
  130. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  131. package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  132. package/dist/simple-tree/node-kinds/object/index.d.ts +2 -2
  133. package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  134. package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
  135. package/dist/simple-tree/node-kinds/object/objectNode.d.ts +5 -18
  136. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  137. package/dist/simple-tree/node-kinds/object/objectNode.js +5 -15
  138. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  139. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +4 -11
  140. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  141. package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  142. package/dist/simple-tree/node-kinds/record/recordNode.d.ts +3 -3
  143. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  144. package/dist/simple-tree/node-kinds/record/recordNode.js +3 -3
  145. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  146. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +5 -5
  147. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  148. package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  149. package/dist/simple-tree/prepareForInsertion.d.ts +5 -5
  150. package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
  151. package/dist/simple-tree/prepareForInsertion.js.map +1 -1
  152. package/dist/simple-tree/toStoredSchema.d.ts +8 -8
  153. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  154. package/dist/simple-tree/toStoredSchema.js +5 -5
  155. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  156. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +2 -2
  157. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  158. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  159. package/dist/simple-tree/unsafeUnknownSchema.d.ts.map +1 -1
  160. package/dist/simple-tree/unsafeUnknownSchema.js.map +1 -1
  161. package/dist/simple-tree/walkFieldSchema.js +1 -1
  162. package/dist/simple-tree/walkFieldSchema.js.map +1 -1
  163. package/dist/tableSchema.d.ts +19 -19
  164. package/dist/tableSchema.d.ts.map +1 -1
  165. package/dist/tableSchema.js +2 -2
  166. package/dist/tableSchema.js.map +1 -1
  167. package/lib/alpha.d.ts +11 -13
  168. package/lib/beta.d.ts +5 -0
  169. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  170. package/lib/feature-libraries/treeCursorUtils.js +17 -15
  171. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  172. package/lib/index.d.ts +1 -1
  173. package/lib/index.d.ts.map +1 -1
  174. package/lib/index.js.map +1 -1
  175. package/lib/jsonDomainSchema.d.ts +5 -5
  176. package/lib/jsonDomainSchema.js +5 -5
  177. package/lib/jsonDomainSchema.js.map +1 -1
  178. package/lib/legacy.d.ts +5 -0
  179. package/lib/packageVersion.d.ts +1 -1
  180. package/lib/packageVersion.js +1 -1
  181. package/lib/packageVersion.js.map +1 -1
  182. package/lib/public.d.ts +1 -0
  183. package/lib/serializableDomainSchema.d.ts +6 -6
  184. package/lib/serializableDomainSchema.js +5 -5
  185. package/lib/serializableDomainSchema.js.map +1 -1
  186. package/lib/shared-tree/schematizingTreeView.js +1 -1
  187. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  188. package/lib/shared-tree/treeAlpha.d.ts +20 -28
  189. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  190. package/lib/shared-tree/treeAlpha.js +3 -28
  191. package/lib/shared-tree/treeAlpha.js.map +1 -1
  192. package/lib/simple-tree/api/conciseTree.d.ts +1 -1
  193. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  194. package/lib/simple-tree/api/configuration.d.ts +0 -3
  195. package/lib/simple-tree/api/configuration.d.ts.map +1 -1
  196. package/lib/simple-tree/api/configuration.js +2 -5
  197. package/lib/simple-tree/api/configuration.js.map +1 -1
  198. package/lib/simple-tree/api/customTree.d.ts +7 -7
  199. package/lib/simple-tree/api/customTree.js +5 -5
  200. package/lib/simple-tree/api/customTree.js.map +1 -1
  201. package/lib/simple-tree/api/discrepancies.js +3 -3
  202. package/lib/simple-tree/api/discrepancies.js.map +1 -1
  203. package/lib/simple-tree/api/index.d.ts +2 -2
  204. package/lib/simple-tree/api/index.d.ts.map +1 -1
  205. package/lib/simple-tree/api/index.js +1 -1
  206. package/lib/simple-tree/api/index.js.map +1 -1
  207. package/lib/simple-tree/api/schemaFactory.d.ts +12 -4
  208. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  209. package/lib/simple-tree/api/schemaFactory.js +3 -8
  210. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  211. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +27 -26
  212. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  213. package/lib/simple-tree/api/schemaFactoryAlpha.js +12 -1
  214. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  215. package/lib/simple-tree/api/schemaFactoryBeta.d.ts +13 -2
  216. package/lib/simple-tree/api/schemaFactoryBeta.d.ts.map +1 -1
  217. package/lib/simple-tree/api/schemaFactoryBeta.js +16 -2
  218. package/lib/simple-tree/api/schemaFactoryBeta.js.map +1 -1
  219. package/lib/simple-tree/api/schemaStatics.d.ts +9 -14
  220. package/lib/simple-tree/api/schemaStatics.d.ts.map +1 -1
  221. package/lib/simple-tree/api/schemaStatics.js +9 -12
  222. package/lib/simple-tree/api/schemaStatics.js.map +1 -1
  223. package/lib/simple-tree/api/storedSchema.d.ts +2 -2
  224. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  225. package/lib/simple-tree/api/storedSchema.js +1 -1
  226. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  227. package/lib/simple-tree/api/tree.d.ts +3 -3
  228. package/lib/simple-tree/api/tree.js.map +1 -1
  229. package/lib/simple-tree/api/treeBeta.d.ts +52 -2
  230. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
  231. package/lib/simple-tree/api/treeBeta.js +33 -1
  232. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  233. package/lib/simple-tree/api/treeNodeApi.js +1 -1
  234. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  235. package/lib/simple-tree/core/allowedTypes.d.ts +120 -62
  236. package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -1
  237. package/lib/simple-tree/core/allowedTypes.js +158 -80
  238. package/lib/simple-tree/core/allowedTypes.js.map +1 -1
  239. package/lib/simple-tree/core/context.d.ts +2 -2
  240. package/lib/simple-tree/core/context.d.ts.map +1 -1
  241. package/lib/simple-tree/core/context.js.map +1 -1
  242. package/lib/simple-tree/core/index.d.ts +2 -2
  243. package/lib/simple-tree/core/index.d.ts.map +1 -1
  244. package/lib/simple-tree/core/index.js +1 -1
  245. package/lib/simple-tree/core/index.js.map +1 -1
  246. package/lib/simple-tree/core/toStored.d.ts +3 -3
  247. package/lib/simple-tree/core/toStored.d.ts.map +1 -1
  248. package/lib/simple-tree/core/toStored.js +3 -3
  249. package/lib/simple-tree/core/toStored.js.map +1 -1
  250. package/lib/simple-tree/core/treeNode.d.ts +1 -1
  251. package/lib/simple-tree/core/treeNode.js +1 -1
  252. package/lib/simple-tree/core/treeNode.js.map +1 -1
  253. package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -3
  254. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  255. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  256. package/lib/simple-tree/core/treeNodeValid.d.ts +2 -2
  257. package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
  258. package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
  259. package/lib/simple-tree/core/walkSchema.d.ts +3 -3
  260. package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
  261. package/lib/simple-tree/core/walkSchema.js +2 -2
  262. package/lib/simple-tree/core/walkSchema.js.map +1 -1
  263. package/lib/simple-tree/createContext.js +3 -3
  264. package/lib/simple-tree/createContext.js.map +1 -1
  265. package/lib/simple-tree/fieldSchema.d.ts +9 -32
  266. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  267. package/lib/simple-tree/fieldSchema.js +13 -21
  268. package/lib/simple-tree/fieldSchema.js.map +1 -1
  269. package/lib/simple-tree/index.d.ts +4 -4
  270. package/lib/simple-tree/index.d.ts.map +1 -1
  271. package/lib/simple-tree/index.js +2 -2
  272. package/lib/simple-tree/index.js.map +1 -1
  273. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +2 -2
  274. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  275. package/lib/simple-tree/node-kinds/array/arrayNode.js +6 -7
  276. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  277. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
  278. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  279. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  280. package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
  281. package/lib/simple-tree/node-kinds/common.js +3 -3
  282. package/lib/simple-tree/node-kinds/common.js.map +1 -1
  283. package/lib/simple-tree/node-kinds/index.d.ts +1 -1
  284. package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
  285. package/lib/simple-tree/node-kinds/index.js.map +1 -1
  286. package/lib/simple-tree/node-kinds/map/mapNode.d.ts +2 -2
  287. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  288. package/lib/simple-tree/node-kinds/map/mapNode.js +4 -4
  289. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  290. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
  291. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  292. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  293. package/lib/simple-tree/node-kinds/object/index.d.ts +2 -2
  294. package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  295. package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
  296. package/lib/simple-tree/node-kinds/object/objectNode.d.ts +5 -18
  297. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  298. package/lib/simple-tree/node-kinds/object/objectNode.js +6 -15
  299. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  300. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +4 -11
  301. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  302. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  303. package/lib/simple-tree/node-kinds/record/recordNode.d.ts +3 -3
  304. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  305. package/lib/simple-tree/node-kinds/record/recordNode.js +4 -4
  306. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  307. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +5 -5
  308. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  309. package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  310. package/lib/simple-tree/prepareForInsertion.d.ts +5 -5
  311. package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
  312. package/lib/simple-tree/prepareForInsertion.js.map +1 -1
  313. package/lib/simple-tree/toStoredSchema.d.ts +8 -8
  314. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  315. package/lib/simple-tree/toStoredSchema.js +5 -5
  316. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  317. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +2 -2
  318. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  319. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +1 -1
  320. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  321. package/lib/simple-tree/unsafeUnknownSchema.d.ts.map +1 -1
  322. package/lib/simple-tree/unsafeUnknownSchema.js.map +1 -1
  323. package/lib/simple-tree/walkFieldSchema.js +1 -1
  324. package/lib/simple-tree/walkFieldSchema.js.map +1 -1
  325. package/lib/tableSchema.d.ts +19 -19
  326. package/lib/tableSchema.d.ts.map +1 -1
  327. package/lib/tableSchema.js +2 -2
  328. package/lib/tableSchema.js.map +1 -1
  329. package/package.json +23 -21
  330. package/src/feature-libraries/treeCursorUtils.ts +34 -19
  331. package/src/index.ts +7 -10
  332. package/src/jsonDomainSchema.ts +5 -5
  333. package/src/packageVersion.ts +1 -1
  334. package/src/serializableDomainSchema.ts +6 -6
  335. package/src/shared-tree/schematizingTreeView.ts +1 -1
  336. package/src/shared-tree/treeAlpha.ts +32 -81
  337. package/src/simple-tree/api/conciseTree.ts +1 -1
  338. package/src/simple-tree/api/configuration.ts +3 -7
  339. package/src/simple-tree/api/customTree.ts +7 -7
  340. package/src/simple-tree/api/discrepancies.ts +3 -3
  341. package/src/simple-tree/api/index.ts +10 -2
  342. package/src/simple-tree/api/schemaFactory.ts +18 -73
  343. package/src/simple-tree/api/schemaFactoryAlpha.ts +45 -12
  344. package/src/simple-tree/api/schemaFactoryBeta.ts +76 -1
  345. package/src/simple-tree/api/schemaStatics.ts +16 -61
  346. package/src/simple-tree/api/storedSchema.ts +2 -6
  347. package/src/simple-tree/api/tree.ts +3 -3
  348. package/src/simple-tree/api/treeBeta.ts +136 -3
  349. package/src/simple-tree/api/treeNodeApi.ts +1 -1
  350. package/src/simple-tree/core/allowedTypes.ts +355 -159
  351. package/src/simple-tree/core/context.ts +2 -2
  352. package/src/simple-tree/core/index.ts +10 -8
  353. package/src/simple-tree/core/toStored.ts +7 -5
  354. package/src/simple-tree/core/treeNode.ts +1 -1
  355. package/src/simple-tree/core/treeNodeSchema.ts +3 -6
  356. package/src/simple-tree/core/treeNodeValid.ts +2 -2
  357. package/src/simple-tree/core/walkSchema.ts +9 -5
  358. package/src/simple-tree/createContext.ts +3 -3
  359. package/src/simple-tree/fieldSchema.ts +24 -98
  360. package/src/simple-tree/index.ts +11 -10
  361. package/src/simple-tree/node-kinds/array/arrayNode.ts +9 -14
  362. package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +7 -8
  363. package/src/simple-tree/node-kinds/common.ts +5 -3
  364. package/src/simple-tree/node-kinds/index.ts +0 -2
  365. package/src/simple-tree/node-kinds/map/mapNode.ts +5 -13
  366. package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +7 -8
  367. package/src/simple-tree/node-kinds/object/index.ts +0 -2
  368. package/src/simple-tree/node-kinds/object/objectNode.ts +13 -51
  369. package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +5 -19
  370. package/src/simple-tree/node-kinds/record/recordNode.ts +9 -16
  371. package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +7 -11
  372. package/src/simple-tree/prepareForInsertion.ts +5 -5
  373. package/src/simple-tree/toStoredSchema.ts +8 -9
  374. package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +2 -6
  375. package/src/simple-tree/unsafeUnknownSchema.ts +2 -3
  376. package/src/simple-tree/walkFieldSchema.ts +1 -1
  377. package/src/tableSchema.ts +24 -37
@@ -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
  /**
@@ -17,23 +17,28 @@ import {
17
17
  defaultSchemaFactoryObjectOptions,
18
18
  scoped,
19
19
  type NodeSchemaOptionsAlpha,
20
- type SchemaFactoryObjectOptions,
20
+ type ObjectSchemaOptionsAlpha,
21
21
  type ScopedSchemaName,
22
22
  } from "./schemaFactory.js";
23
23
  import { schemaStatics } from "./schemaStatics.js";
24
- import type { ImplicitAnnotatedFieldSchema, ImplicitFieldSchema } from "../fieldSchema.js";
24
+ import type { ImplicitFieldSchema } from "../fieldSchema.js";
25
25
  import type { RestrictiveStringRecord } from "../../util/index.js";
26
26
  import type {
27
27
  NodeKind,
28
28
  TreeNodeSchema,
29
29
  TreeNodeSchemaClass,
30
30
  ImplicitAllowedTypes,
31
- ImplicitAnnotatedAllowedTypes,
32
31
  AnnotatedAllowedType,
33
32
  LazyItem,
34
33
  WithType,
34
+ AllowedTypesMetadata,
35
+ AllowedTypesFullFromMixed,
36
+ } from "../core/index.js";
37
+ import {
38
+ normalizeToAnnotatedAllowedType,
39
+ createSchemaUpgrade,
40
+ AnnotatedAllowedTypesInternal,
35
41
  } from "../core/index.js";
36
- import { normalizeToAnnotatedAllowedType, createSchemaUpgrade } from "../core/index.js";
37
42
  import type {
38
43
  ArrayNodeCustomizableSchemaUnsafe,
39
44
  MapNodeCustomizableSchemaUnsafe,
@@ -53,7 +58,6 @@ import type {
53
58
  } from "../fieldSchema.js";
54
59
  import type { LeafSchema } from "../leafNodeSchema.js";
55
60
  import type { SimpleLeafNodeSchema } from "../simpleSchema.js";
56
- import type { UnannotateImplicitAllowedTypes } from "../core/index.js";
57
61
  import type { FieldSchemaAlphaUnsafe } from "./typesUnsafe.js";
58
62
  /* eslint-enable unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars, import/no-duplicates */
59
63
 
@@ -94,9 +98,21 @@ export interface SchemaStaticsAlpha {
94
98
  *
95
99
  * TODO: AB#45711: Update the docs above when recursive type support is added.
96
100
  */
97
- staged: <const T extends LazyItem<TreeNodeSchema>>(
101
+ readonly staged: <const T extends LazyItem<TreeNodeSchema>>(
98
102
  t: T | AnnotatedAllowedType<T>,
99
103
  ) => AnnotatedAllowedType<T>;
104
+
105
+ /**
106
+ * Normalize information about a set of {@link AllowedTypes} into an {@link AllowedTypesFull}.
107
+ * @remarks
108
+ * This can take in {@link AnnotatedAllowedType} to preserve their annotations.
109
+ */
110
+ readonly types: <
111
+ const T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[],
112
+ >(
113
+ t: T,
114
+ metadata?: AllowedTypesMetadata,
115
+ ) => AllowedTypesFullFromMixed<T>;
100
116
  }
101
117
 
102
118
  const schemaStaticsAlpha: SchemaStaticsAlpha = {
@@ -112,6 +128,13 @@ const schemaStaticsAlpha: SchemaStaticsAlpha = {
112
128
  },
113
129
  };
114
130
  },
131
+
132
+ types: <const T extends readonly (AnnotatedAllowedType | LazyItem<TreeNodeSchema>)[]>(
133
+ t: T,
134
+ metadata: AllowedTypesMetadata = {},
135
+ ): AllowedTypesFullFromMixed<T> => {
136
+ return AnnotatedAllowedTypesInternal.createMixed<T>(t, metadata);
137
+ },
115
138
  };
116
139
 
117
140
  /**
@@ -136,12 +159,12 @@ export class SchemaFactoryAlpha<
136
159
  */
137
160
  public objectAlpha<
138
161
  const Name extends TName,
139
- const T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>,
162
+ const T extends RestrictiveStringRecord<ImplicitFieldSchema>,
140
163
  const TCustomMetadata = unknown,
141
164
  >(
142
165
  name: Name,
143
166
  fields: T,
144
- options?: SchemaFactoryObjectOptions<TCustomMetadata>,
167
+ options?: ObjectSchemaOptionsAlpha<TCustomMetadata>,
145
168
  ): ObjectNodeSchema<ScopedSchemaName<TScope, Name>, T, true, TCustomMetadata> & {
146
169
  /**
147
170
  * Typing checking workaround: not for for actual use.
@@ -176,7 +199,7 @@ export class SchemaFactoryAlpha<
176
199
  >(
177
200
  name: Name,
178
201
  t: T,
179
- options?: SchemaFactoryObjectOptions<TCustomMetadata>,
202
+ options?: ObjectSchemaOptionsAlpha<TCustomMetadata>,
180
203
  ): TreeNodeSchemaClass<
181
204
  ScopedSchemaName<TScope, Name>,
182
205
  NodeKind.Object,
@@ -287,6 +310,16 @@ export class SchemaFactoryAlpha<
287
310
  */
288
311
  public staged = schemaStaticsAlpha.staged;
289
312
 
313
+ /**
314
+ * {@inheritDoc SchemaStaticsAlpha.types}
315
+ */
316
+ public static types = schemaStaticsAlpha.types;
317
+
318
+ /**
319
+ * {@inheritDoc SchemaStaticsAlpha.types}
320
+ */
321
+ public types = schemaStaticsAlpha.types;
322
+
290
323
  /**
291
324
  * Define a {@link TreeNodeSchema} for a {@link TreeMapNode}.
292
325
  *
@@ -303,7 +336,7 @@ export class SchemaFactoryAlpha<
303
336
  */
304
337
  public mapAlpha<
305
338
  Name extends TName,
306
- const T extends ImplicitAnnotatedAllowedTypes,
339
+ const T extends ImplicitAllowedTypes,
307
340
  const TCustomMetadata = unknown,
308
341
  >(
309
342
  name: Name,
@@ -354,7 +387,7 @@ export class SchemaFactoryAlpha<
354
387
  */
355
388
  public arrayAlpha<
356
389
  const Name extends TName,
357
- const T extends ImplicitAnnotatedAllowedTypes,
390
+ const T extends ImplicitAllowedTypes,
358
391
  const TCustomMetadata = unknown,
359
392
  >(
360
393
  name: Name,
@@ -405,7 +438,7 @@ export class SchemaFactoryAlpha<
405
438
  */
406
439
  public recordAlpha<
407
440
  const Name extends TName,
408
- const T extends ImplicitAnnotatedAllowedTypes,
441
+ const T extends ImplicitAllowedTypes,
409
442
  const TCustomMetadata = unknown,
410
443
  >(
411
444
  name: Name,
@@ -14,15 +14,20 @@ import type {
14
14
  } from "../core/index.js";
15
15
 
16
16
  import {
17
+ objectSchema,
17
18
  recordSchema,
19
+ type InsertableObjectFromSchemaRecord,
18
20
  type RecordNodeInsertableData,
21
+ type TreeObjectNode,
19
22
  type TreeRecordNode,
20
23
  } from "../node-kinds/index.js";
21
24
  import {
25
+ defaultSchemaFactoryObjectOptions,
22
26
  SchemaFactory,
23
27
  scoped,
24
28
  structuralName,
25
29
  type NodeSchemaOptions,
30
+ type ObjectSchemaOptions,
26
31
  type ScopedSchemaName,
27
32
  } from "./schemaFactory.js";
28
33
  import type { System_Unsafe, TreeRecordNodeUnsafe } from "./typesUnsafe.js";
@@ -34,9 +39,11 @@ import type {
34
39
  FieldSchemaAlpha,
35
40
  FieldPropsAlpha,
36
41
  FieldKind,
42
+ ImplicitFieldSchema,
37
43
  } from "../fieldSchema.js";
38
44
  import type { LeafSchema } from "../leafNodeSchema.js";
39
45
  import type { SimpleLeafNodeSchema } from "../simpleSchema.js";
46
+ import type { RestrictiveStringRecord } from "../../util/index.js";
40
47
  /* eslint-enable unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars, import/no-duplicates */
41
48
 
42
49
  /**
@@ -57,7 +64,73 @@ export class SchemaFactoryBeta<
57
64
  public scopedFactory<const T extends TName, TNameInner extends number | string = string>(
58
65
  name: T,
59
66
  ): SchemaFactoryBeta<ScopedSchemaName<TScope, T>, TNameInner> {
60
- return new SchemaFactoryBeta(scoped(this, name));
67
+ return new SchemaFactoryBeta(scoped<TScope, TName, T>(this, name));
68
+ }
69
+
70
+ /**
71
+ * Define a {@link TreeNodeSchemaClass} for a {@link TreeObjectNode}.
72
+ *
73
+ * @param name - Unique identifier for this schema within this factory's scope.
74
+ * @param fields - Schema for fields of the object node's schema. Defines what children can be placed under each key.
75
+ * @param options - Additional options for the schema.
76
+ */
77
+ public override object<
78
+ const Name extends TName,
79
+ const T extends RestrictiveStringRecord<ImplicitFieldSchema>,
80
+ const TCustomMetadata = unknown,
81
+ >(
82
+ name: Name,
83
+ fields: T,
84
+ options?: ObjectSchemaOptions<TCustomMetadata>,
85
+ ): TreeNodeSchemaClass<
86
+ ScopedSchemaName<TScope, Name>,
87
+ NodeKind.Object,
88
+ TreeObjectNode<T, ScopedSchemaName<TScope, Name>>,
89
+ object & InsertableObjectFromSchemaRecord<T>,
90
+ true,
91
+ T
92
+ > {
93
+ return objectSchema(
94
+ scoped<TScope, TName, Name>(this, name),
95
+ fields,
96
+ true,
97
+ options?.allowUnknownOptionalFields ??
98
+ defaultSchemaFactoryObjectOptions.allowUnknownOptionalFields,
99
+ options?.metadata,
100
+ );
101
+ }
102
+
103
+ public override objectRecursive<
104
+ const Name extends TName,
105
+ const T extends RestrictiveStringRecord<System_Unsafe.ImplicitFieldSchemaUnsafe>,
106
+ const TCustomMetadata = unknown,
107
+ >(
108
+ name: Name,
109
+ t: T,
110
+ options?: ObjectSchemaOptions<TCustomMetadata>,
111
+ ): TreeNodeSchemaClass<
112
+ ScopedSchemaName<TScope, Name>,
113
+ NodeKind.Object,
114
+ System_Unsafe.TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>,
115
+ object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>,
116
+ false,
117
+ T
118
+ > {
119
+ type TScopedName = ScopedSchemaName<TScope, Name>;
120
+ return this.object(
121
+ name,
122
+ t as T & RestrictiveStringRecord<ImplicitFieldSchema>,
123
+ options,
124
+ ) as unknown as TreeNodeSchemaClass<
125
+ TScopedName,
126
+ NodeKind.Object,
127
+ System_Unsafe.TreeObjectNodeUnsafe<T, TScopedName>,
128
+ object & System_Unsafe.InsertableObjectFromSchemaRecordUnsafe<T>,
129
+ false,
130
+ T,
131
+ never,
132
+ TCustomMetadata
133
+ >;
61
134
  }
62
135
 
63
136
  /**
@@ -113,6 +186,7 @@ export class SchemaFactoryBeta<
113
186
  /* Info */ T,
114
187
  /* TConstructorExtra */ undefined
115
188
  >;
189
+
116
190
  /**
117
191
  * Define (and add to this library) a {@link TreeNodeSchemaClass} for a {@link (TreeRecordNode:interface)}.
118
192
  *
@@ -149,6 +223,7 @@ export class SchemaFactoryBeta<
149
223
  /* Info */ T,
150
224
  /* TConstructorExtra */ undefined
151
225
  >;
226
+
152
227
  /**
153
228
  * {@link SchemaFactoryBeta.record} implementation.
154
229
  *
@@ -4,11 +4,7 @@
4
4
  */
5
5
 
6
6
  import type { IFluidHandle } from "@fluidframework/core-interfaces";
7
- import type {
8
- ImplicitAllowedTypes,
9
- ImplicitAnnotatedAllowedTypes,
10
- UnannotateImplicitAllowedTypes,
11
- } from "../core/index.js";
7
+ import type { ImplicitAllowedTypes } from "../core/index.js";
12
8
  import { FieldKind, getDefaultProvider, createFieldSchema } from "../fieldSchema.js";
13
9
  import type {
14
10
  FieldProps,
@@ -165,60 +161,6 @@ export interface SchemaStatics {
165
161
 
166
162
  const defaultOptionalProvider: DefaultProvider = getDefaultProvider(() => []);
167
163
 
168
- // The following overloads for optional and required are used to get around the fact that
169
- // the compiler can't infer that UnannotateImplicitAllowedTypes<T> is equal to T when T is known to extend ImplicitAllowedTypes
170
-
171
- // #region Overloads for optional and required
172
- function optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(
173
- t: T,
174
- props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
175
- ): FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata>;
176
-
177
- function optional<
178
- const T extends ImplicitAnnotatedAllowedTypes,
179
- const TCustomMetadata = unknown,
180
- >(
181
- t: T,
182
- props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
183
- ): FieldSchemaAlpha<FieldKind.Optional, UnannotateImplicitAllowedTypes<T>, TCustomMetadata>;
184
-
185
- function optional<
186
- const T extends ImplicitAnnotatedAllowedTypes,
187
- const TCustomMetadata = unknown,
188
- >(
189
- t: T,
190
- props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
191
- ): FieldSchemaAlpha<FieldKind.Optional, UnannotateImplicitAllowedTypes<T>, TCustomMetadata> {
192
- return createFieldSchema(FieldKind.Optional, t, {
193
- defaultProvider: defaultOptionalProvider,
194
- ...props,
195
- });
196
- }
197
-
198
- function required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(
199
- t: T,
200
- props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
201
- ): FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata>;
202
-
203
- function required<
204
- const T extends ImplicitAnnotatedAllowedTypes,
205
- const TCustomMetadata = unknown,
206
- >(
207
- t: T,
208
- props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
209
- ): FieldSchemaAlpha<FieldKind.Required, UnannotateImplicitAllowedTypes<T>, TCustomMetadata>;
210
-
211
- function required<
212
- const T extends ImplicitAnnotatedAllowedTypes,
213
- const TCustomMetadata = unknown,
214
- >(
215
- t: T,
216
- props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
217
- ): FieldSchemaAlpha<FieldKind.Required, UnannotateImplicitAllowedTypes<T>, TCustomMetadata> {
218
- return createFieldSchema(FieldKind.Required, t, props);
219
- }
220
- // #endregion
221
-
222
164
  /**
223
165
  * Implementation of {@link SchemaStatics}.
224
166
  * @remarks
@@ -233,9 +175,22 @@ export const schemaStaticsStable = {
233
175
  handle: handleSchema,
234
176
  leaves: [stringSchema, numberSchema, booleanSchema, nullSchema, handleSchema],
235
177
 
236
- optional,
178
+ optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(
179
+ t: T,
180
+ props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
181
+ ): FieldSchemaAlpha<FieldKind.Optional, T, TCustomMetadata> => {
182
+ return createFieldSchema(FieldKind.Optional, t, {
183
+ defaultProvider: defaultOptionalProvider,
184
+ ...props,
185
+ });
186
+ },
237
187
 
238
- required,
188
+ required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(
189
+ t: T,
190
+ props?: Omit<FieldPropsAlpha<TCustomMetadata>, "defaultProvider">,
191
+ ): FieldSchemaAlpha<FieldKind.Required, T, TCustomMetadata> => {
192
+ return createFieldSchema(FieldKind.Required, t, props);
193
+ },
239
194
 
240
195
  optionalRecursive: <
241
196
  const T extends System_Unsafe.ImplicitAllowedTypesUnsafe,
@@ -13,11 +13,7 @@ import {
13
13
  } from "../../feature-libraries/schema-index/index.js";
14
14
  import type { JsonCompatible } from "../../util/index.js";
15
15
  import type { SchemaUpgrade } from "../core/index.js";
16
- import {
17
- normalizeFieldSchema,
18
- type ImplicitAnnotatedFieldSchema,
19
- type ImplicitFieldSchema,
20
- } from "../fieldSchema.js";
16
+ import { normalizeFieldSchema, type ImplicitFieldSchema } from "../fieldSchema.js";
21
17
  import { toStoredSchema } from "../toStoredSchema.js";
22
18
  import { TreeViewConfigurationAlpha } from "./configuration.js";
23
19
 
@@ -57,7 +53,7 @@ import type { SchemaCompatibilityStatus } from "./tree.js";
57
53
  * @alpha
58
54
  */
59
55
  export function extractPersistedSchema(
60
- schema: ImplicitAnnotatedFieldSchema,
56
+ schema: ImplicitFieldSchema,
61
57
  oldestCompatibleClient: FluidClientVersion,
62
58
  includeStaged: (upgrade: SchemaUpgrade) => boolean,
63
59
  ): JsonCompatible {
@@ -412,7 +412,7 @@ export interface SchemaCompatibilityStatus {
412
412
  * Note that other content in the stored schema that does not impact document compatibility, like {@link NodeSchemaOptionsAlpha.persistedMetadata}, does not affect this field.
413
413
  *
414
414
  * For the computation of this equivalence, {@link SchemaStaticsAlpha.staged | staged} schemas are not included.
415
- * If there are any unknown optional fields, even if allowed by {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields}, `isEquivalent` will be false.
415
+ * If there are any unknown optional fields, even if allowed by {@link ObjectSchemaOptions.allowUnknownOptionalFields}, `isEquivalent` will be false.
416
416
  */
417
417
  readonly isEquivalent: boolean;
418
418
 
@@ -423,7 +423,7 @@ export interface SchemaCompatibilityStatus {
423
423
  * If the view schema does not opt into supporting any additional cases, then `canView` is only true when `isEquivalent` is also true.
424
424
  * The view schema can however opt into supporting additional cases, and thus can also view documents with stored schema which would be equivalent, except for the following discrepancies:
425
425
  *
426
- * - An object node with {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields} to set to true that has additional optional fields in the stored schema beyond those mentioned in its view schema.
426
+ * - An object node with {@link ObjectSchemaOptions.allowUnknownOptionalFields} to set to true that has additional optional fields in the stored schema beyond those mentioned in its view schema.
427
427
  *
428
428
  * - An additional type allowed at a location in the stored schema where it is {@link SchemaStaticsAlpha.staged | staged} in the view schema.
429
429
  *
@@ -451,7 +451,7 @@ export interface SchemaCompatibilityStatus {
451
451
  * @remarks
452
452
  * When true, it is valid to call {@link TreeView.upgradeSchema} (though if the stored schema is already an exact match, this is a no-op).
453
453
  *
454
- * When adding optional fields to schema which previously were marked with {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields}
454
+ * When adding optional fields to schema which previously were marked with {@link ObjectSchemaOptions.allowUnknownOptionalFields}
455
455
  * the schema upgrade (assuming no other changes are included) will allow the previous version to view.
456
456
  * Even this case must still must be done with caution however as only clients with the newly added field will be able to do future upgrades.
457
457
  * Thus if a version of an application is shipped that adds an unknown optional field, all future versions should include it, even if its no longer used,