@fluidframework/tree 2.50.0-345060 → 2.51.0-347100

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 (620) hide show
  1. package/.vscode/Tree.code-workspace +14 -1
  2. package/.vscode/settings.json +16 -0
  3. package/CHANGELOG.md +102 -2
  4. package/api-report/tree.alpha.api.md +7 -7
  5. package/dist/core/schema-stored/schema.d.ts +14 -1
  6. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  7. package/dist/core/schema-stored/schema.js.map +1 -1
  8. package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
  9. package/dist/feature-libraries/default-schema/schemaChecker.js +3 -0
  10. package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
  11. package/dist/feature-libraries/flex-tree/context.d.ts +7 -2
  12. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  13. package/dist/feature-libraries/flex-tree/context.js +4 -4
  14. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  15. package/dist/feature-libraries/flex-tree/index.d.ts +1 -0
  16. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  17. package/dist/feature-libraries/flex-tree/index.js +3 -1
  18. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  19. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  20. package/dist/feature-libraries/flex-tree/lazyField.js +5 -5
  21. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  22. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +3 -1
  23. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  24. package/dist/feature-libraries/flex-tree/lazyNode.js +5 -3
  25. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  26. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  27. package/dist/feature-libraries/forest-summary/forestSummarizer.js +3 -4
  28. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  29. package/dist/feature-libraries/index.d.ts +1 -1
  30. package/dist/feature-libraries/index.d.ts.map +1 -1
  31. package/dist/feature-libraries/index.js +2 -1
  32. package/dist/feature-libraries/index.js.map +1 -1
  33. package/dist/packageVersion.d.ts +1 -1
  34. package/dist/packageVersion.js +1 -1
  35. package/dist/packageVersion.js.map +1 -1
  36. package/dist/shared-tree/index.d.ts +0 -1
  37. package/dist/shared-tree/index.d.ts.map +1 -1
  38. package/dist/shared-tree/index.js +1 -3
  39. package/dist/shared-tree/index.js.map +1 -1
  40. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  41. package/dist/shared-tree/schematizeTree.js +2 -6
  42. package/dist/shared-tree/schematizeTree.js.map +1 -1
  43. package/dist/shared-tree/schematizingTreeView.d.ts +11 -13
  44. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  45. package/dist/shared-tree/schematizingTreeView.js +58 -81
  46. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  47. package/dist/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
  48. package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -1
  49. package/dist/shared-tree/tree.d.ts.map +1 -1
  50. package/dist/shared-tree/tree.js +4 -3
  51. package/dist/shared-tree/tree.js.map +1 -1
  52. package/dist/shared-tree/treeAlpha.d.ts +7 -1
  53. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  54. package/dist/shared-tree/treeAlpha.js.map +1 -1
  55. package/dist/shared-tree/treeCheckout.d.ts +7 -2
  56. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  57. package/dist/shared-tree/treeCheckout.js +4 -1
  58. package/dist/shared-tree/treeCheckout.js.map +1 -1
  59. package/dist/shared-tree-core/defaultResubmitMachine.d.ts +8 -12
  60. package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  61. package/dist/shared-tree-core/defaultResubmitMachine.js +54 -46
  62. package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  63. package/dist/shared-tree-core/resubmitMachine.d.ts +6 -0
  64. package/dist/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  65. package/dist/shared-tree-core/resubmitMachine.js.map +1 -1
  66. package/dist/shared-tree-core/sharedTreeCore.d.ts +1 -0
  67. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  68. package/dist/shared-tree-core/sharedTreeCore.js +16 -3
  69. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  70. package/dist/simple-tree/api/conciseTree.d.ts +1 -1
  71. package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
  72. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  73. package/dist/simple-tree/api/configuration.d.ts +1 -1
  74. package/dist/simple-tree/api/configuration.d.ts.map +1 -1
  75. package/dist/simple-tree/api/configuration.js +9 -9
  76. package/dist/simple-tree/api/configuration.js.map +1 -1
  77. package/dist/simple-tree/api/create.d.ts +3 -1
  78. package/dist/simple-tree/api/create.d.ts.map +1 -1
  79. package/dist/simple-tree/api/create.js +2 -0
  80. package/dist/simple-tree/api/create.js.map +1 -1
  81. package/dist/simple-tree/api/customTree.d.ts +1 -2
  82. package/dist/simple-tree/api/customTree.d.ts.map +1 -1
  83. package/dist/simple-tree/api/customTree.js.map +1 -1
  84. package/dist/simple-tree/api/getJsonSchema.d.ts +1 -1
  85. package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
  86. package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
  87. package/dist/simple-tree/api/getSimpleSchema.d.ts +1 -1
  88. package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
  89. package/dist/simple-tree/api/identifierIndex.d.ts +1 -1
  90. package/dist/simple-tree/api/identifierIndex.js +2 -2
  91. package/dist/simple-tree/api/identifierIndex.js.map +1 -1
  92. package/dist/simple-tree/api/index.d.ts +1 -1
  93. package/dist/simple-tree/api/index.d.ts.map +1 -1
  94. package/dist/simple-tree/api/index.js.map +1 -1
  95. package/dist/simple-tree/api/schemaCompatibilityTester.d.ts +1 -1
  96. package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
  97. package/dist/simple-tree/api/schemaCreationUtilities.d.ts +14 -2
  98. package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
  99. package/dist/simple-tree/api/schemaCreationUtilities.js +41 -4
  100. package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  101. package/dist/simple-tree/api/schemaFactory.d.ts +36 -3
  102. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  103. package/dist/simple-tree/api/schemaFactory.js +18 -18
  104. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  105. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +16 -16
  106. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  107. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  108. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
  109. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  110. package/dist/simple-tree/api/schemaFactoryRecursive.js +2 -2
  111. package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  112. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  113. package/dist/simple-tree/api/schemaFromSimple.js +4 -4
  114. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
  115. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +2 -2
  116. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  117. package/dist/simple-tree/api/simpleTreeIndex.d.ts +2 -2
  118. package/dist/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
  119. package/dist/simple-tree/api/simpleTreeIndex.js +1 -1
  120. package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
  121. package/dist/simple-tree/api/storedSchema.d.ts +1 -1
  122. package/dist/simple-tree/api/storedSchema.js +2 -2
  123. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  124. package/dist/simple-tree/api/tree.d.ts +2 -1
  125. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  126. package/dist/simple-tree/api/tree.js.map +1 -1
  127. package/dist/simple-tree/api/treeBeta.d.ts +4 -1
  128. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
  129. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  130. package/dist/simple-tree/api/treeNodeApi.d.ts +1 -2
  131. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  132. package/dist/simple-tree/api/treeNodeApi.js +3 -3
  133. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  134. package/dist/simple-tree/api/typesUnsafe.d.ts +2 -3
  135. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  136. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  137. package/dist/simple-tree/api/verboseTree.d.ts +2 -1
  138. package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
  139. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  140. package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +1 -1
  141. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +2 -2
  142. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
  143. package/dist/simple-tree/core/allowedTypes.d.ts +316 -0
  144. package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -0
  145. package/dist/simple-tree/core/allowedTypes.js +173 -0
  146. package/dist/simple-tree/core/allowedTypes.js.map +1 -0
  147. package/dist/simple-tree/core/context.d.ts +3 -9
  148. package/dist/simple-tree/core/context.d.ts.map +1 -1
  149. package/dist/simple-tree/core/context.js +3 -11
  150. package/dist/simple-tree/core/context.js.map +1 -1
  151. package/dist/simple-tree/core/flexList.d.ts.map +1 -0
  152. package/dist/simple-tree/core/flexList.js.map +1 -0
  153. package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
  154. package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  155. package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
  156. package/dist/simple-tree/core/index.d.ts +9 -3
  157. package/dist/simple-tree/core/index.d.ts.map +1 -1
  158. package/dist/simple-tree/core/index.js +19 -3
  159. package/dist/simple-tree/core/index.js.map +1 -1
  160. package/dist/simple-tree/core/treeNodeKernel.d.ts +8 -1
  161. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  162. package/dist/simple-tree/core/treeNodeKernel.js +24 -20
  163. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  164. package/dist/simple-tree/core/treeNodeSchema.d.ts +182 -39
  165. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  166. package/dist/simple-tree/core/treeNodeSchema.js +47 -17
  167. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  168. package/dist/simple-tree/{treeNodeValid.d.ts → core/treeNodeValid.d.ts} +18 -4
  169. package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -0
  170. package/dist/simple-tree/{treeNodeValid.js → core/treeNodeValid.js} +41 -11
  171. package/dist/simple-tree/core/treeNodeValid.js.map +1 -0
  172. package/dist/simple-tree/core/unhydratedFlexTree.d.ts +1 -1
  173. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  174. package/dist/simple-tree/core/walkSchema.d.ts +2 -1
  175. package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
  176. package/dist/simple-tree/core/walkSchema.js +6 -2
  177. package/dist/simple-tree/core/walkSchema.js.map +1 -1
  178. package/dist/simple-tree/createContext.d.ts +6 -2
  179. package/dist/simple-tree/createContext.d.ts.map +1 -1
  180. package/dist/simple-tree/createContext.js +15 -3
  181. package/dist/simple-tree/createContext.js.map +1 -1
  182. package/dist/simple-tree/fieldSchema.d.ts +423 -0
  183. package/dist/simple-tree/fieldSchema.d.ts.map +1 -0
  184. package/dist/simple-tree/{schemaTypes.js → fieldSchema.js} +5 -195
  185. package/dist/simple-tree/fieldSchema.js.map +1 -0
  186. package/dist/simple-tree/index.d.ts +5 -5
  187. package/dist/simple-tree/index.d.ts.map +1 -1
  188. package/dist/simple-tree/index.js +11 -11
  189. package/dist/simple-tree/index.js.map +1 -1
  190. package/dist/simple-tree/leafNodeSchema.d.ts +14 -5
  191. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  192. package/dist/simple-tree/leafNodeSchema.js +117 -2
  193. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  194. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +3 -4
  195. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  196. package/dist/simple-tree/node-kinds/array/arrayNode.js +97 -26
  197. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  198. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +2 -2
  199. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  200. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  201. package/dist/simple-tree/node-kinds/common.d.ts +16 -0
  202. package/dist/simple-tree/node-kinds/common.d.ts.map +1 -0
  203. package/dist/simple-tree/node-kinds/common.js +42 -0
  204. package/dist/simple-tree/node-kinds/common.js.map +1 -0
  205. package/dist/simple-tree/node-kinds/index.d.ts +1 -1
  206. package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
  207. package/dist/simple-tree/node-kinds/index.js.map +1 -1
  208. package/dist/simple-tree/node-kinds/map/mapNode.d.ts +2 -3
  209. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  210. package/dist/simple-tree/node-kinds/map/mapNode.js +64 -26
  211. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  212. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +2 -2
  213. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  214. package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  215. package/dist/simple-tree/node-kinds/object/index.d.ts +1 -1
  216. package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  217. package/dist/simple-tree/node-kinds/object/index.js.map +1 -1
  218. package/dist/simple-tree/node-kinds/object/objectNode.d.ts +19 -5
  219. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  220. package/dist/simple-tree/node-kinds/object/objectNode.js +131 -27
  221. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  222. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +11 -4
  223. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  224. package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  225. package/dist/simple-tree/node-kinds/record/recordNode.d.ts +2 -2
  226. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  227. package/dist/simple-tree/node-kinds/record/recordNode.js +41 -13
  228. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  229. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +2 -2
  230. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  231. package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  232. package/dist/simple-tree/prepareForInsertion.d.ts +2 -2
  233. package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
  234. package/dist/simple-tree/prepareForInsertion.js +3 -3
  235. package/dist/simple-tree/prepareForInsertion.js.map +1 -1
  236. package/dist/simple-tree/simpleSchema.d.ts +2 -2
  237. package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
  238. package/dist/simple-tree/simpleSchema.js.map +1 -1
  239. package/dist/simple-tree/toStoredSchema.d.ts +1 -1
  240. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  241. package/dist/simple-tree/toStoredSchema.js +6 -7
  242. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  243. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +5 -11
  244. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  245. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +25 -395
  246. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  247. package/dist/simple-tree/unsafeUnknownSchema.d.ts +52 -0
  248. package/dist/simple-tree/unsafeUnknownSchema.d.ts.map +1 -0
  249. package/dist/simple-tree/unsafeUnknownSchema.js +13 -0
  250. package/dist/simple-tree/unsafeUnknownSchema.js.map +1 -0
  251. package/dist/simple-tree/walkFieldSchema.d.ts +1 -1
  252. package/dist/simple-tree/walkFieldSchema.js +2 -2
  253. package/dist/simple-tree/walkFieldSchema.js.map +1 -1
  254. package/dist/tableSchema.d.ts +12 -12
  255. package/dist/treeFactory.d.ts +0 -1
  256. package/dist/treeFactory.d.ts.map +1 -1
  257. package/dist/treeFactory.js +0 -1
  258. package/dist/treeFactory.js.map +1 -1
  259. package/lib/core/schema-stored/schema.d.ts +14 -1
  260. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  261. package/lib/core/schema-stored/schema.js.map +1 -1
  262. package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
  263. package/lib/feature-libraries/default-schema/schemaChecker.js +3 -0
  264. package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
  265. package/lib/feature-libraries/flex-tree/context.d.ts +7 -2
  266. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  267. package/lib/feature-libraries/flex-tree/context.js +4 -4
  268. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  269. package/lib/feature-libraries/flex-tree/index.d.ts +1 -0
  270. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  271. package/lib/feature-libraries/flex-tree/index.js +1 -0
  272. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  273. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  274. package/lib/feature-libraries/flex-tree/lazyField.js +6 -6
  275. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  276. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +3 -1
  277. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  278. package/lib/feature-libraries/flex-tree/lazyNode.js +3 -1
  279. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  280. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  281. package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -2
  282. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  283. package/lib/feature-libraries/index.d.ts +1 -1
  284. package/lib/feature-libraries/index.d.ts.map +1 -1
  285. package/lib/feature-libraries/index.js +1 -1
  286. package/lib/feature-libraries/index.js.map +1 -1
  287. package/lib/packageVersion.d.ts +1 -1
  288. package/lib/packageVersion.js +1 -1
  289. package/lib/packageVersion.js.map +1 -1
  290. package/lib/shared-tree/index.d.ts +0 -1
  291. package/lib/shared-tree/index.d.ts.map +1 -1
  292. package/lib/shared-tree/index.js +0 -1
  293. package/lib/shared-tree/index.js.map +1 -1
  294. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  295. package/lib/shared-tree/schematizeTree.js +2 -6
  296. package/lib/shared-tree/schematizeTree.js.map +1 -1
  297. package/lib/shared-tree/schematizingTreeView.d.ts +11 -13
  298. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  299. package/lib/shared-tree/schematizingTreeView.js +59 -81
  300. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  301. package/lib/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
  302. package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -1
  303. package/lib/shared-tree/tree.d.ts.map +1 -1
  304. package/lib/shared-tree/tree.js +4 -3
  305. package/lib/shared-tree/tree.js.map +1 -1
  306. package/lib/shared-tree/treeAlpha.d.ts +7 -1
  307. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  308. package/lib/shared-tree/treeAlpha.js.map +1 -1
  309. package/lib/shared-tree/treeCheckout.d.ts +7 -2
  310. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  311. package/lib/shared-tree/treeCheckout.js +5 -2
  312. package/lib/shared-tree/treeCheckout.js.map +1 -1
  313. package/lib/shared-tree-core/defaultResubmitMachine.d.ts +8 -12
  314. package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  315. package/lib/shared-tree-core/defaultResubmitMachine.js +55 -47
  316. package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  317. package/lib/shared-tree-core/resubmitMachine.d.ts +6 -0
  318. package/lib/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  319. package/lib/shared-tree-core/resubmitMachine.js.map +1 -1
  320. package/lib/shared-tree-core/sharedTreeCore.d.ts +1 -0
  321. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  322. package/lib/shared-tree-core/sharedTreeCore.js +16 -3
  323. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  324. package/lib/simple-tree/api/conciseTree.d.ts +1 -1
  325. package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
  326. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  327. package/lib/simple-tree/api/configuration.d.ts +1 -1
  328. package/lib/simple-tree/api/configuration.d.ts.map +1 -1
  329. package/lib/simple-tree/api/configuration.js +6 -6
  330. package/lib/simple-tree/api/configuration.js.map +1 -1
  331. package/lib/simple-tree/api/create.d.ts +3 -1
  332. package/lib/simple-tree/api/create.d.ts.map +1 -1
  333. package/lib/simple-tree/api/create.js +2 -0
  334. package/lib/simple-tree/api/create.js.map +1 -1
  335. package/lib/simple-tree/api/customTree.d.ts +1 -2
  336. package/lib/simple-tree/api/customTree.d.ts.map +1 -1
  337. package/lib/simple-tree/api/customTree.js.map +1 -1
  338. package/lib/simple-tree/api/getJsonSchema.d.ts +1 -1
  339. package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
  340. package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
  341. package/lib/simple-tree/api/getSimpleSchema.d.ts +1 -1
  342. package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
  343. package/lib/simple-tree/api/identifierIndex.d.ts +1 -1
  344. package/lib/simple-tree/api/identifierIndex.js +1 -1
  345. package/lib/simple-tree/api/identifierIndex.js.map +1 -1
  346. package/lib/simple-tree/api/index.d.ts +1 -1
  347. package/lib/simple-tree/api/index.d.ts.map +1 -1
  348. package/lib/simple-tree/api/index.js.map +1 -1
  349. package/lib/simple-tree/api/schemaCompatibilityTester.d.ts +1 -1
  350. package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
  351. package/lib/simple-tree/api/schemaCreationUtilities.d.ts +14 -2
  352. package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
  353. package/lib/simple-tree/api/schemaCreationUtilities.js +40 -4
  354. package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  355. package/lib/simple-tree/api/schemaFactory.d.ts +36 -3
  356. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  357. package/lib/simple-tree/api/schemaFactory.js +2 -2
  358. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  359. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +16 -16
  360. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  361. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  362. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
  363. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  364. package/lib/simple-tree/api/schemaFactoryRecursive.js +1 -1
  365. package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  366. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  367. package/lib/simple-tree/api/schemaFromSimple.js +1 -1
  368. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
  369. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +1 -1
  370. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  371. package/lib/simple-tree/api/simpleTreeIndex.d.ts +2 -2
  372. package/lib/simple-tree/api/simpleTreeIndex.d.ts.map +1 -1
  373. package/lib/simple-tree/api/simpleTreeIndex.js +2 -2
  374. package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
  375. package/lib/simple-tree/api/storedSchema.d.ts +1 -1
  376. package/lib/simple-tree/api/storedSchema.js +1 -1
  377. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  378. package/lib/simple-tree/api/tree.d.ts +2 -1
  379. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  380. package/lib/simple-tree/api/tree.js.map +1 -1
  381. package/lib/simple-tree/api/treeBeta.d.ts +4 -1
  382. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
  383. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  384. package/lib/simple-tree/api/treeNodeApi.d.ts +1 -2
  385. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  386. package/lib/simple-tree/api/treeNodeApi.js +2 -2
  387. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  388. package/lib/simple-tree/api/typesUnsafe.d.ts +2 -3
  389. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  390. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  391. package/lib/simple-tree/api/verboseTree.d.ts +2 -1
  392. package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
  393. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  394. package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +1 -1
  395. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +1 -1
  396. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
  397. package/lib/simple-tree/core/allowedTypes.d.ts +316 -0
  398. package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -0
  399. package/lib/simple-tree/core/allowedTypes.js +162 -0
  400. package/lib/simple-tree/core/allowedTypes.js.map +1 -0
  401. package/lib/simple-tree/core/context.d.ts +3 -9
  402. package/lib/simple-tree/core/context.d.ts.map +1 -1
  403. package/lib/simple-tree/core/context.js +0 -8
  404. package/lib/simple-tree/core/context.js.map +1 -1
  405. package/lib/simple-tree/core/flexList.d.ts.map +1 -0
  406. package/lib/simple-tree/core/flexList.js.map +1 -0
  407. package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
  408. package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  409. package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
  410. package/lib/simple-tree/core/index.d.ts +9 -3
  411. package/lib/simple-tree/core/index.d.ts.map +1 -1
  412. package/lib/simple-tree/core/index.js +6 -3
  413. package/lib/simple-tree/core/index.js.map +1 -1
  414. package/lib/simple-tree/core/treeNodeKernel.d.ts +8 -1
  415. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  416. package/lib/simple-tree/core/treeNodeKernel.js +10 -6
  417. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  418. package/lib/simple-tree/core/treeNodeSchema.d.ts +182 -39
  419. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  420. package/lib/simple-tree/core/treeNodeSchema.js +44 -14
  421. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  422. package/lib/simple-tree/{treeNodeValid.d.ts → core/treeNodeValid.d.ts} +18 -4
  423. package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -0
  424. package/lib/simple-tree/{treeNodeValid.js → core/treeNodeValid.js} +31 -3
  425. package/lib/simple-tree/core/treeNodeValid.js.map +1 -0
  426. package/lib/simple-tree/core/unhydratedFlexTree.d.ts +1 -1
  427. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  428. package/lib/simple-tree/core/walkSchema.d.ts +2 -1
  429. package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
  430. package/lib/simple-tree/core/walkSchema.js +7 -3
  431. package/lib/simple-tree/core/walkSchema.js.map +1 -1
  432. package/lib/simple-tree/createContext.d.ts +6 -2
  433. package/lib/simple-tree/createContext.d.ts.map +1 -1
  434. package/lib/simple-tree/createContext.js +13 -2
  435. package/lib/simple-tree/createContext.js.map +1 -1
  436. package/lib/simple-tree/fieldSchema.d.ts +423 -0
  437. package/lib/simple-tree/fieldSchema.d.ts.map +1 -0
  438. package/lib/simple-tree/{schemaTypes.js → fieldSchema.js} +3 -183
  439. package/lib/simple-tree/fieldSchema.js.map +1 -0
  440. package/lib/simple-tree/index.d.ts +5 -5
  441. package/lib/simple-tree/index.d.ts.map +1 -1
  442. package/lib/simple-tree/index.js +2 -2
  443. package/lib/simple-tree/index.js.map +1 -1
  444. package/lib/simple-tree/leafNodeSchema.d.ts +14 -5
  445. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  446. package/lib/simple-tree/leafNodeSchema.js +117 -3
  447. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  448. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +3 -4
  449. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  450. package/lib/simple-tree/node-kinds/array/arrayNode.js +86 -15
  451. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  452. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +2 -2
  453. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  454. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js +1 -1
  455. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  456. package/lib/simple-tree/node-kinds/common.d.ts +16 -0
  457. package/lib/simple-tree/node-kinds/common.d.ts.map +1 -0
  458. package/lib/simple-tree/node-kinds/common.js +38 -0
  459. package/lib/simple-tree/node-kinds/common.js.map +1 -0
  460. package/lib/simple-tree/node-kinds/index.d.ts +1 -1
  461. package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
  462. package/lib/simple-tree/node-kinds/index.js.map +1 -1
  463. package/lib/simple-tree/node-kinds/map/mapNode.d.ts +2 -3
  464. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  465. package/lib/simple-tree/node-kinds/map/mapNode.js +51 -13
  466. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  467. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +2 -2
  468. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  469. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js +1 -1
  470. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  471. package/lib/simple-tree/node-kinds/object/index.d.ts +1 -1
  472. package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -1
  473. package/lib/simple-tree/node-kinds/object/index.js.map +1 -1
  474. package/lib/simple-tree/node-kinds/object/objectNode.d.ts +19 -5
  475. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  476. package/lib/simple-tree/node-kinds/object/objectNode.js +116 -14
  477. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  478. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +11 -4
  479. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  480. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js +1 -1
  481. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  482. package/lib/simple-tree/node-kinds/record/recordNode.d.ts +2 -2
  483. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  484. package/lib/simple-tree/node-kinds/record/recordNode.js +40 -12
  485. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  486. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +2 -2
  487. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  488. package/lib/simple-tree/node-kinds/record/recordNodeTypes.js +1 -1
  489. package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  490. package/lib/simple-tree/prepareForInsertion.d.ts +2 -2
  491. package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
  492. package/lib/simple-tree/prepareForInsertion.js +2 -2
  493. package/lib/simple-tree/prepareForInsertion.js.map +1 -1
  494. package/lib/simple-tree/simpleSchema.d.ts +2 -2
  495. package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
  496. package/lib/simple-tree/simpleSchema.js.map +1 -1
  497. package/lib/simple-tree/toStoredSchema.d.ts +1 -1
  498. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  499. package/lib/simple-tree/toStoredSchema.js +2 -3
  500. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  501. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +5 -11
  502. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  503. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +10 -381
  504. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  505. package/lib/simple-tree/unsafeUnknownSchema.d.ts +52 -0
  506. package/lib/simple-tree/unsafeUnknownSchema.d.ts.map +1 -0
  507. package/lib/simple-tree/unsafeUnknownSchema.js +10 -0
  508. package/lib/simple-tree/unsafeUnknownSchema.js.map +1 -0
  509. package/lib/simple-tree/walkFieldSchema.d.ts +1 -1
  510. package/lib/simple-tree/walkFieldSchema.js +1 -1
  511. package/lib/simple-tree/walkFieldSchema.js.map +1 -1
  512. package/lib/tableSchema.d.ts +12 -12
  513. package/lib/treeFactory.d.ts +0 -1
  514. package/lib/treeFactory.d.ts.map +1 -1
  515. package/lib/treeFactory.js +0 -1
  516. package/lib/treeFactory.js.map +1 -1
  517. package/package.json +22 -23
  518. package/src/core/schema-stored/schema.ts +14 -1
  519. package/src/feature-libraries/default-schema/schemaChecker.ts +3 -0
  520. package/src/feature-libraries/flex-tree/context.ts +10 -5
  521. package/src/feature-libraries/flex-tree/index.ts +2 -0
  522. package/src/feature-libraries/flex-tree/lazyField.ts +10 -6
  523. package/src/feature-libraries/flex-tree/lazyNode.ts +6 -1
  524. package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -2
  525. package/src/feature-libraries/index.ts +1 -0
  526. package/src/packageVersion.ts +1 -1
  527. package/src/shared-tree/index.ts +0 -2
  528. package/src/shared-tree/schematizeTree.ts +2 -6
  529. package/src/shared-tree/schematizingTreeView.ts +72 -107
  530. package/src/shared-tree/sharedTreeChangeTypes.ts +1 -1
  531. package/src/shared-tree/tree.ts +4 -3
  532. package/src/shared-tree/treeAlpha.ts +7 -1
  533. package/src/shared-tree/treeCheckout.ts +15 -2
  534. package/src/shared-tree-core/defaultResubmitMachine.ts +99 -52
  535. package/src/shared-tree-core/resubmitMachine.ts +7 -0
  536. package/src/shared-tree-core/sharedTreeCore.ts +18 -6
  537. package/src/simple-tree/api/conciseTree.ts +1 -2
  538. package/src/simple-tree/api/configuration.ts +11 -8
  539. package/src/simple-tree/api/create.ts +3 -1
  540. package/src/simple-tree/api/customTree.ts +1 -2
  541. package/src/simple-tree/api/getJsonSchema.ts +1 -1
  542. package/src/simple-tree/api/getSimpleSchema.ts +1 -1
  543. package/src/simple-tree/api/identifierIndex.ts +1 -1
  544. package/src/simple-tree/api/index.ts +2 -0
  545. package/src/simple-tree/api/schemaCompatibilityTester.ts +1 -1
  546. package/src/simple-tree/api/schemaCreationUtilities.ts +47 -5
  547. package/src/simple-tree/api/schemaFactory.ts +45 -10
  548. package/src/simple-tree/api/schemaFactoryAlpha.ts +4 -7
  549. package/src/simple-tree/api/schemaFactoryRecursive.ts +9 -4
  550. package/src/simple-tree/api/schemaFromSimple.ts +2 -3
  551. package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -1
  552. package/src/simple-tree/api/simpleTreeIndex.ts +8 -3
  553. package/src/simple-tree/api/storedSchema.ts +1 -1
  554. package/src/simple-tree/api/tree.ts +2 -2
  555. package/src/simple-tree/api/treeBeta.ts +4 -1
  556. package/src/simple-tree/api/treeNodeApi.ts +5 -8
  557. package/src/simple-tree/api/typesUnsafe.ts +5 -4
  558. package/src/simple-tree/api/verboseTree.ts +3 -6
  559. package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +1 -1
  560. package/src/simple-tree/core/README.md +1 -1
  561. package/src/simple-tree/core/allowedTypes.ts +496 -0
  562. package/src/simple-tree/core/context.ts +3 -10
  563. package/src/simple-tree/core/getOrCreateNode.ts +1 -1
  564. package/src/simple-tree/core/index.ts +62 -9
  565. package/src/simple-tree/core/treeNodeKernel.ts +12 -6
  566. package/src/simple-tree/core/treeNodeSchema.ts +247 -63
  567. package/src/simple-tree/{treeNodeValid.ts → core/treeNodeValid.ts} +59 -15
  568. package/src/simple-tree/core/unhydratedFlexTree.ts +1 -1
  569. package/src/simple-tree/core/walkSchema.ts +9 -5
  570. package/src/simple-tree/createContext.ts +26 -2
  571. package/src/simple-tree/fieldSchema.ts +734 -0
  572. package/src/simple-tree/index.ts +32 -30
  573. package/src/simple-tree/leafNodeSchema.ts +137 -5
  574. package/src/simple-tree/node-kinds/array/arrayNode.ts +141 -30
  575. package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +5 -7
  576. package/src/simple-tree/node-kinds/common.ts +60 -0
  577. package/src/simple-tree/node-kinds/index.ts +1 -0
  578. package/src/simple-tree/node-kinds/map/mapNode.ts +91 -33
  579. package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +5 -7
  580. package/src/simple-tree/node-kinds/object/index.ts +1 -0
  581. package/src/simple-tree/node-kinds/object/objectNode.ts +205 -25
  582. package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +22 -5
  583. package/src/simple-tree/node-kinds/record/recordNode.ts +68 -26
  584. package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +6 -8
  585. package/src/simple-tree/prepareForInsertion.ts +7 -6
  586. package/src/simple-tree/simpleSchema.ts +2 -2
  587. package/src/simple-tree/toStoredSchema.ts +2 -3
  588. package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +12 -494
  589. package/src/simple-tree/unsafeUnknownSchema.ts +70 -0
  590. package/src/simple-tree/walkFieldSchema.ts +1 -1
  591. package/src/treeFactory.ts +0 -1
  592. package/dist/shared-tree/checkoutFlexTreeView.d.ts +0 -58
  593. package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +0 -1
  594. package/dist/shared-tree/checkoutFlexTreeView.js +0 -77
  595. package/dist/shared-tree/checkoutFlexTreeView.js.map +0 -1
  596. package/dist/simple-tree/flexList.d.ts.map +0 -1
  597. package/dist/simple-tree/flexList.js.map +0 -1
  598. package/dist/simple-tree/schemaTypes.d.ts +0 -856
  599. package/dist/simple-tree/schemaTypes.d.ts.map +0 -1
  600. package/dist/simple-tree/schemaTypes.js.map +0 -1
  601. package/dist/simple-tree/treeNodeValid.d.ts.map +0 -1
  602. package/dist/simple-tree/treeNodeValid.js.map +0 -1
  603. package/lib/shared-tree/checkoutFlexTreeView.d.ts +0 -58
  604. package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +0 -1
  605. package/lib/shared-tree/checkoutFlexTreeView.js +0 -72
  606. package/lib/shared-tree/checkoutFlexTreeView.js.map +0 -1
  607. package/lib/simple-tree/flexList.d.ts.map +0 -1
  608. package/lib/simple-tree/flexList.js.map +0 -1
  609. package/lib/simple-tree/schemaTypes.d.ts +0 -856
  610. package/lib/simple-tree/schemaTypes.d.ts.map +0 -1
  611. package/lib/simple-tree/schemaTypes.js.map +0 -1
  612. package/lib/simple-tree/treeNodeValid.d.ts.map +0 -1
  613. package/lib/simple-tree/treeNodeValid.js.map +0 -1
  614. package/src/shared-tree/checkoutFlexTreeView.ts +0 -100
  615. package/src/simple-tree/schemaTypes.ts +0 -1420
  616. /package/dist/simple-tree/{flexList.d.ts → core/flexList.d.ts} +0 -0
  617. /package/dist/simple-tree/{flexList.js → core/flexList.js} +0 -0
  618. /package/lib/simple-tree/{flexList.d.ts → core/flexList.d.ts} +0 -0
  619. /package/lib/simple-tree/{flexList.js → core/flexList.js} +0 -0
  620. /package/src/simple-tree/{flexList.ts → core/flexList.ts} +0 -0
@@ -397,14 +397,12 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
397
397
  } = this.messageCodec.decode(this.serializer.decode(content), {
398
398
  idCompressor: this.idCompressor,
399
399
  });
400
- const [commit] = this.editManager.findLocalCommit(revision);
401
400
  // If a resubmit phase is not already in progress, then this must be the first commit of a new resubmit phase.
402
401
  if (this.resubmitMachine.isInResubmitPhase === false) {
403
- const toResubmit = this.editManager.getLocalCommits();
404
- assert(
405
- commit === toResubmit[0],
406
- 0x95d /* Resubmit phase should start with the oldest local commit */,
407
- );
402
+ const localCommits = this.editManager.getLocalCommits();
403
+ const revisionIndex = localCommits.findIndex((c) => c.revision === revision);
404
+ assert(revisionIndex >= 0, 0xbdb /* revision must exist in local commits */);
405
+ const toResubmit = localCommits.slice(revisionIndex);
408
406
  this.resubmitMachine.prepareForResubmit(toResubmit);
409
407
  }
410
408
  assert(
@@ -418,6 +416,20 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
418
416
  const enrichedCommit = this.resubmitMachine.peekNextCommit();
419
417
  this.submitCommit(enrichedCommit, localOpMetadata, true);
420
418
  }
419
+ public rollback(content: JsonCompatibleReadOnly, localOpMetadata: unknown): void {
420
+ // Empty context object is passed in, as our decode function is schema-agnostic.
421
+ const {
422
+ commit: { revision },
423
+ } = this.messageCodec.decode(this.serializer.decode(content), {
424
+ idCompressor: this.idCompressor,
425
+ });
426
+ const [commit] = this.editManager.findLocalCommit(revision);
427
+ const { parent } = commit;
428
+ assert(parent !== undefined, 0xbdc /* must have parent */);
429
+ const [precedingCommit] = this.editManager.findLocalCommit(parent.revision);
430
+ this.editManager.localBranch.removeAfter(precedingCommit);
431
+ this.resubmitMachine.onCommitRollback(commit);
432
+ }
421
433
 
422
434
  public applyStashedOp(content: JsonCompatibleReadOnly): void {
423
435
  // Empty context object is passed in, as our decode function is schema-agnostic.
@@ -6,9 +6,8 @@
6
6
  import type { IFluidHandle } from "@fluidframework/core-interfaces";
7
7
 
8
8
  import type { ITreeCursor } from "../../core/index.js";
9
- import type { TreeNodeSchema } from "../core/index.js";
9
+ import type { TreeNodeSchema, TreeLeafValue, ImplicitAllowedTypes } from "../core/index.js";
10
10
  import { getUnhydratedContext } from "../createContext.js";
11
- import type { TreeLeafValue, ImplicitAllowedTypes } from "../schemaTypes.js";
12
11
 
13
12
  import {
14
13
  customFromCursor,
@@ -15,13 +15,16 @@ import { UsageError } from "@fluidframework/telemetry-utils/internal";
15
15
  import {
16
16
  type FieldSchemaAlpha,
17
17
  type ImplicitFieldSchema,
18
- evaluateLazySchema,
19
18
  FieldKind,
19
+ normalizeFieldSchema,
20
+ } from "../fieldSchema.js";
21
+ import {
22
+ NodeKind,
23
+ type TreeNodeSchema,
20
24
  isAnnotatedAllowedType,
25
+ evaluateLazySchema,
21
26
  markSchemaMostDerived,
22
- normalizeFieldSchema,
23
- } from "../schemaTypes.js";
24
- import { NodeKind, type TreeNodeSchema } from "../core/index.js";
27
+ } from "../core/index.js";
25
28
  import { toStoredSchema } from "../toStoredSchema.js";
26
29
  import {
27
30
  isArrayNodeSchema,
@@ -327,7 +330,7 @@ export function checkUnion(
327
330
  break;
328
331
  }
329
332
  case NodeKind.Object: {
330
- assert(isObjectNodeSchema(schema), "Expected object schema.");
333
+ assert(isObjectNodeSchema(schema), 0xbde /* Expected object schema. */);
331
334
  objects.push(schema);
332
335
  for (const key of schema.fields.keys()) {
333
336
  getOrCreate(allObjectKeys, key, () => new Set()).add(schema);
@@ -335,17 +338,17 @@ export function checkUnion(
335
338
  break;
336
339
  }
337
340
  case NodeKind.Array: {
338
- assert(isArrayNodeSchema(schema), "Expected array schema.");
341
+ assert(isArrayNodeSchema(schema), 0xbdf /* Expected array schema. */);
339
342
  arrays.push(schema);
340
343
  break;
341
344
  }
342
345
  case NodeKind.Map: {
343
- assert(isMapNodeSchema(schema), "Expected map schema.");
346
+ assert(isMapNodeSchema(schema), 0xbe0 /* Expected map schema. */);
344
347
  maps.push(schema);
345
348
  break;
346
349
  }
347
350
  case NodeKind.Record: {
348
- assert(isRecordNodeSchema(schema), "Expected record schema.");
351
+ assert(isRecordNodeSchema(schema), 0xbe1 /* Expected record schema. */);
349
352
  records.push(schema);
350
353
  break;
351
354
  }
@@ -12,7 +12,7 @@ import {
12
12
  type ITreeCursorSynchronous,
13
13
  type SchemaAndPolicy,
14
14
  } from "../../core/index.js";
15
- import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../schemaTypes.js";
15
+ import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../fieldSchema.js";
16
16
  import {
17
17
  type Context,
18
18
  getOrCreateNodeFromInnerNode,
@@ -37,6 +37,8 @@ import { unknownTypeError } from "./customTree.js";
37
37
  * @remarks
38
38
  * Does not support defaults.
39
39
  * Validates the field is in schema.
40
+ *
41
+ * TODO: AB#43548: How this handles unknown optional fields needs to be figured out, tested and documented.
40
42
  */
41
43
  export function createFromCursor<const TSchema extends ImplicitFieldSchema>(
42
44
  schema: TSchema,
@@ -22,7 +22,7 @@ import {
22
22
  } from "../../core/index.js";
23
23
  import { FieldKinds, valueSchemaAllows } from "../../feature-libraries/index.js";
24
24
  import { cloneWithReplacements } from "../../util/index.js";
25
- import type { TreeNodeSchema } from "../core/index.js";
25
+ import type { TreeNodeSchema, TreeLeafValue } from "../core/index.js";
26
26
  import {
27
27
  booleanSchema,
28
28
  handleSchema,
@@ -31,7 +31,6 @@ import {
31
31
  stringSchema,
32
32
  } from "../leafNodeSchema.js";
33
33
  import { isArrayNodeSchema, isObjectNodeSchema } from "../node-kinds/index.js";
34
- import type { TreeLeafValue } from "../schemaTypes.js";
35
34
 
36
35
  /**
37
36
  * Options for how to interpret or encode a tree when schema information is available.
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import type { JsonTreeSchema } from "./jsonSchema.js";
7
- import type { ImplicitAllowedTypes } from "../schemaTypes.js";
7
+ import type { ImplicitAllowedTypes } from "../core/index.js";
8
8
  import { toJsonSchema } from "./simpleSchemaToJsonSchema.js";
9
9
  import type { TreeEncodingOptions } from "./customTree.js";
10
10
  import { TreeViewConfigurationAlpha } from "./configuration.js";
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { ImplicitFieldSchema } from "../schemaTypes.js";
6
+ import type { ImplicitFieldSchema } from "../fieldSchema.js";
7
7
  import type { SimpleTreeSchema } from "../simpleSchema.js";
8
8
 
9
9
  import { toSimpleTreeSchema } from "./viewSchemaToSimpleSchema.js";
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
7
7
  import type { TreeIndexKey } from "../../feature-libraries/index.js";
8
- import { FieldKind, type ImplicitFieldSchema } from "../schemaTypes.js";
8
+ import { FieldKind, type ImplicitFieldSchema } from "../fieldSchema.js";
9
9
  import type { TreeNode } from "../core/index.js";
10
10
  import { ObjectNodeSchema } from "../node-kinds/index.js";
11
11
  import type { TreeView } from "./tree.js";
@@ -30,6 +30,8 @@ export {
30
30
  type SchemaFactoryObjectOptions,
31
31
  type SchemaStatics,
32
32
  schemaStatics,
33
+ type NodeSchemaOptions,
34
+ type NodeSchemaOptionsAlpha,
33
35
  } from "./schemaFactory.js";
34
36
  export { SchemaFactoryAlpha } from "./schemaFactoryAlpha.js";
35
37
  export type {
@@ -23,7 +23,7 @@ import {
23
23
  fieldRealizer,
24
24
  comparePosetElements,
25
25
  } from "../../feature-libraries/index.js";
26
- import type { FieldSchema } from "../schemaTypes.js";
26
+ import type { FieldSchema } from "../fieldSchema.js";
27
27
  import { toStoredSchema } from "../toStoredSchema.js";
28
28
 
29
29
  import type { SchemaCompatibilityStatus } from "./tree.js";
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
7
- import { fail } from "@fluidframework/core-utils/internal";
7
+ import { assert, fail } from "@fluidframework/core-utils/internal";
8
8
 
9
9
  import type { SchemaFactory, ScopedSchemaName } from "./schemaFactory.js";
10
- import type { NodeFromSchema } from "../schemaTypes.js";
11
10
  import type {
11
+ NodeFromSchema,
12
12
  InternalTreeNode,
13
13
  NodeKind,
14
14
  TreeNode,
@@ -47,6 +47,12 @@ export function singletonSchema<TScope extends string, TName extends string | nu
47
47
  public get value(): TName {
48
48
  return name;
49
49
  }
50
+
51
+ public static override toString(): string {
52
+ return `SingletonSchema(${name})`;
53
+ }
54
+
55
+ public static [Symbol.toStringTag] = `SingletonSchema(${name})`;
50
56
  }
51
57
 
52
58
  type SingletonNodeType = TreeNode & { readonly value: TName };
@@ -71,10 +77,16 @@ export function singletonSchema<TScope extends string, TName extends string | nu
71
77
 
72
78
  /**
73
79
  * Converts an enum into a collection of schema which can be used in a union.
80
+ *
81
+ * @typeParam TScope - The scope of the provided factory.
82
+ * There is a known issue where if a factory is provided that is typed as a {@link SchemaFactoryAlpha}, and its scope contains a "." character,
83
+ * the inferred type for the scope will end up as a union of the scope up to the first "." character and the scope as it should be.
84
+ * This can be mitigated by explicitly providing the TScope type parameter or by typing the provided factory as a {@link SchemaFactory} instead of a {@link SchemaFactoryAlpha}.
85
+ *
74
86
  * @remarks
75
87
  * The string value of the enum is used as the name of the schema: callers must ensure that it is stable and unique.
76
88
  * Numeric enums values have the value implicitly converted into a string.
77
- * Consider making a dedicated schema factory with a nested scope to avoid the enum members colliding with other schema.
89
+ * Consider making a dedicated schema factory with a nested scope (for example using {@link SchemaFactoryAlpha.scopedFactory}) to avoid the enum members colliding with other schema.
78
90
  * @example
79
91
  * ```typescript
80
92
  * const schemaFactory = new SchemaFactory("com.myApp");
@@ -105,7 +117,8 @@ export function singletonSchema<TScope extends string, TName extends string | nu
105
117
  * }
106
118
  * ```
107
119
  * @privateRemarks
108
- * Maybe provide `SchemaFactory.nested` to ease creating nested scopes?
120
+ * TODO: AB#43345: see TScope known issue above, and other references to this work item.
121
+ *
109
122
  * @see {@link enumFromStrings} for a similar function that works on arrays of strings instead of an enum.
110
123
  * @beta
111
124
  */
@@ -144,7 +157,7 @@ export function adaptEnum<
144
157
  : never;
145
158
  };
146
159
  const out = factoryOut as typeof factoryOut & TOut & { readonly schema: SchemaArray };
147
- for (const [key, value] of Object.entries(members)) {
160
+ for (const [key, value] of enumEntries(members)) {
148
161
  const schema = singletonSchema(factory, value);
149
162
  schemaArray.push(schema);
150
163
  Object.defineProperty(out, key, {
@@ -165,6 +178,35 @@ export function adaptEnum<
165
178
  return out;
166
179
  }
167
180
 
181
+ /**
182
+ * Returns en "entries" (like Object.entries) for an enum object, omitting the
183
+ * {@link https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings|reverse mappings}
184
+ */
185
+ export function enumEntries(
186
+ enumObject: Record<string, string | number>,
187
+ ): [string, string | number][] {
188
+ // Skip reverse mapping for numeric entries.
189
+ // For numeric entries, TypeScript defines an additional property keyed with the number implicitly converted to a string.
190
+ // Note TypeScript can overwrite its own enum entries in some edge cases (see https://github.com/microsoft/TypeScript/issues/48956), so it's not possible to handle all cases correctly.
191
+ return Object.entries(enumObject).filter(([key, value]) => {
192
+ // All reverse mapping must also have a inverse mapping (the regular forward mapping) to a number:
193
+ const inverse = enumObject[value];
194
+ if (typeof inverse !== "number") {
195
+ // Known not to be a reverse mapping, so keep it.
196
+ return true;
197
+ }
198
+ // At this point, it is expected that all remaining cases are reverse mappings,
199
+ // but do some asserts to ensure that the above logic is sufficient.
200
+ assert(typeof value === "string", "expected reverse mapping and thus a string value");
201
+ assert(
202
+ Number.parseFloat(key).toString() === key,
203
+ "expected reverse mapping and thus a key that is a normalized number",
204
+ );
205
+ // Discard the reverse mapping.
206
+ return false;
207
+ });
208
+ }
209
+
168
210
  /**
169
211
  * Converts an array of distinct strings into a collection of schema which can be used like an enum style union.
170
212
  * @remarks
@@ -13,11 +13,13 @@ import type { TreeValue } from "../../core/index.js";
13
13
  // eslint-disable-next-line unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars
14
14
  import type { TreeAlpha } from "../../shared-tree/index.js";
15
15
  import {
16
+ type JsonCompatibleReadOnlyObject,
16
17
  type RestrictiveStringRecord,
17
18
  compareSets,
18
19
  getOrCreate,
19
20
  isReadonlyArray,
20
21
  } from "../../util/index.js";
22
+ import { normalizeAllowedTypes, markSchemaMostDerived, isLazy } from "../core/index.js";
21
23
  import type {
22
24
  NodeKind,
23
25
  WithType,
@@ -26,8 +28,12 @@ import type {
26
28
  TreeNodeSchemaNonClass,
27
29
  TreeNodeSchemaBoth,
28
30
  UnhydratedFlexTreeNode,
31
+ NodeSchemaMetadata,
32
+ ImplicitAnnotatedAllowedTypes,
33
+ UnannotateImplicitAllowedTypes,
34
+ ImplicitAllowedTypes,
35
+ InsertableTreeNodeFromImplicitAllowedTypes,
29
36
  } from "../core/index.js";
30
- import { isLazy } from "../flexList.js";
31
37
  import {
32
38
  booleanSchema,
33
39
  handleSchema,
@@ -45,26 +51,19 @@ import {
45
51
  type InsertableObjectFromSchemaRecord,
46
52
  type TreeMapNode,
47
53
  type TreeObjectNode,
54
+ type UnannotateSchemaRecord,
48
55
  } from "../node-kinds/index.js";
49
56
  import {
50
57
  FieldKind,
51
58
  type FieldSchema,
52
- type ImplicitAllowedTypes,
53
59
  type ImplicitFieldSchema,
54
- type InsertableTreeNodeFromImplicitAllowedTypes,
55
60
  type FieldProps,
56
61
  createFieldSchema,
57
62
  type DefaultProvider,
58
63
  getDefaultProvider,
59
- markSchemaMostDerived,
60
64
  type FieldSchemaAlpha,
61
- type ImplicitAnnotatedAllowedTypes,
62
- type UnannotateImplicitAllowedTypes,
63
- type UnannotateSchemaRecord,
64
- type NodeSchemaOptionsAlpha,
65
- normalizeAllowedTypes,
66
65
  type FieldPropsAlpha,
67
- } from "../schemaTypes.js";
66
+ } from "../fieldSchema.js";
68
67
 
69
68
  import { createFieldSchemaUnsafe } from "./schemaFactoryRecursive.js";
70
69
  import type { System_Unsafe, FieldSchemaAlphaUnsafe } from "./typesUnsafe.js";
@@ -1312,3 +1311,39 @@ export function structuralName<const T extends string>(
1312
1311
  * Using this is only better than creating fully random V4 UUIDs because it reduces the entropy making it possible for things like text compression to work slightly better.
1313
1312
  */
1314
1313
  const globalIdentifierAllocator: IIdCompressor = createIdCompressor();
1314
+
1315
+ /**
1316
+ * Additional information to provide to Node Schema creation.
1317
+ *
1318
+ * @typeParam TCustomMetadata - Custom metadata properties to associate with the Node Schema.
1319
+ * See {@link NodeSchemaMetadata.custom}.
1320
+ *
1321
+ * @sealed
1322
+ * @public
1323
+ */
1324
+ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
1325
+ /**
1326
+ * Optional metadata to associate with the Node Schema.
1327
+ *
1328
+ * @remarks
1329
+ * Note: this metadata is not persisted nor made part of the collaborative state; it is strictly client-local.
1330
+ * Different clients in the same collaborative session may see different metadata for the same field.
1331
+ */
1332
+ readonly metadata?: NodeSchemaMetadata<TCustomMetadata> | undefined;
1333
+ }
1334
+
1335
+ /**
1336
+ * Additional information to provide to Node Schema creation. Includes fields for alpha features.
1337
+ *
1338
+ * @typeParam TCustomMetadata - Custom metadata properties to associate with the Node Schema.
1339
+ * See {@link NodeSchemaMetadata.custom}.
1340
+ *
1341
+ * @alpha
1342
+ */
1343
+ export interface NodeSchemaOptionsAlpha<out TCustomMetadata = unknown>
1344
+ extends NodeSchemaOptions<TCustomMetadata> {
1345
+ /**
1346
+ * The persisted metadata for this schema element.
1347
+ */
1348
+ readonly persistedMetadata?: JsonCompatibleReadOnlyObject | undefined;
1349
+ }
@@ -20,16 +20,11 @@ import {
20
20
  SchemaFactory,
21
21
  schemaStatics,
22
22
  structuralName,
23
+ type NodeSchemaOptionsAlpha,
23
24
  type SchemaFactoryObjectOptions,
24
25
  type ScopedSchemaName,
25
26
  } from "./schemaFactory.js";
26
- import type {
27
- ImplicitAllowedTypes,
28
- ImplicitAnnotatedAllowedTypes,
29
- ImplicitAnnotatedFieldSchema,
30
- ImplicitFieldSchema,
31
- NodeSchemaOptionsAlpha,
32
- } from "../schemaTypes.js";
27
+ import type { ImplicitAnnotatedFieldSchema, ImplicitFieldSchema } from "../fieldSchema.js";
33
28
  import type { RestrictiveStringRecord } from "../../util/index.js";
34
29
  import type {
35
30
  NodeKind,
@@ -38,6 +33,8 @@ import type {
38
33
  TreeNodeSchemaClass,
39
34
  TreeNodeSchemaNonClass,
40
35
  WithType,
36
+ ImplicitAllowedTypes,
37
+ ImplicitAnnotatedAllowedTypes,
41
38
  } from "../core/index.js";
42
39
  import type {
43
40
  ArrayNodeCustomizableSchemaUnsafe,
@@ -4,16 +4,21 @@
4
4
  */
5
5
 
6
6
  import type { RestrictiveStringRecord } from "../../util/index.js";
7
- import type { NodeKind, TreeNodeSchema, WithType, TreeNode } from "../core/index.js";
7
+ import type {
8
+ NodeKind,
9
+ TreeNodeSchema,
10
+ WithType,
11
+ TreeNode,
12
+ ImplicitAllowedTypes,
13
+ InsertableTreeNodeFromImplicitAllowedTypes,
14
+ } from "../core/index.js";
8
15
  import type { InsertableObjectFromSchemaRecord } from "../node-kinds/index.js";
9
16
  import {
10
17
  type FieldKind,
11
18
  type FieldProps,
12
19
  createFieldSchema,
13
- type ImplicitAllowedTypes,
14
20
  type ImplicitFieldSchema,
15
- type InsertableTreeNodeFromImplicitAllowedTypes,
16
- } from "../schemaTypes.js";
21
+ } from "../fieldSchema.js";
17
22
 
18
23
  import type { FieldSchemaAlphaUnsafe, System_Unsafe } from "./typesUnsafe.js";
19
24
 
@@ -5,14 +5,13 @@
5
5
 
6
6
  import { unreachableCase, fail } from "@fluidframework/core-utils/internal";
7
7
 
8
- import { NodeKind, type TreeNodeSchema } from "../core/index.js";
8
+ import { NodeKind, type TreeNodeSchema, type AllowedTypes } from "../core/index.js";
9
9
  import {
10
10
  type FieldSchema,
11
- type AllowedTypes,
12
11
  type FieldSchemaAlpha,
13
12
  FieldKind,
14
13
  type FieldProps,
15
- } from "../schemaTypes.js";
14
+ } from "../fieldSchema.js";
16
15
  import type {
17
16
  SimpleFieldSchema,
18
17
  SimpleNodeSchema,
@@ -20,7 +20,7 @@ import type {
20
20
  JsonLeafSchemaType,
21
21
  JsonRecordNodeSchema,
22
22
  } from "./jsonSchema.js";
23
- import { FieldKind } from "../schemaTypes.js";
23
+ import { FieldKind } from "../fieldSchema.js";
24
24
  import type {
25
25
  SimpleArrayNodeSchema,
26
26
  SimpleLeafNodeSchema,
@@ -20,8 +20,13 @@ import {
20
20
  type KeyFinder,
21
21
  } from "../../feature-libraries/index.js";
22
22
  import { brand } from "../../util/index.js";
23
- import type { ImplicitFieldSchema, NodeFromSchema } from "../schemaTypes.js";
24
- import { treeNodeFromAnchor, type TreeNode, type TreeNodeSchema } from "../core/index.js";
23
+ import type { ImplicitFieldSchema } from "../fieldSchema.js";
24
+ import {
25
+ treeNodeFromAnchor,
26
+ type TreeNode,
27
+ type TreeNodeSchema,
28
+ type NodeFromSchema,
29
+ } from "../core/index.js";
25
30
  import { treeNodeApi } from "./treeNodeApi.js";
26
31
  import type { TreeView } from "./tree.js";
27
32
  import { walkFieldSchema } from "../walkFieldSchema.js";
@@ -180,7 +185,7 @@ export function createSimpleTreeIndex<
180
185
  };
181
186
 
182
187
  const index = new AnchorTreeIndex<TKey, TValue>(
183
- (view as SchematizingSimpleTreeView<TFieldSchema>).getView().checkout.forest,
188
+ (view as SchematizingSimpleTreeView<TFieldSchema>).checkout.forest,
184
189
  schemaIndexer,
185
190
  (anchorNodes) => {
186
191
  const simpleTreeNodes: TreeNode[] = [];
@@ -16,7 +16,7 @@ import {
16
16
  // eslint-disable-next-line import/no-internal-modules
17
17
  } from "../../feature-libraries/schema-index/index.js";
18
18
  import type { JsonCompatible } from "../../util/index.js";
19
- import { normalizeFieldSchema, type ImplicitFieldSchema } from "../schemaTypes.js";
19
+ import { normalizeFieldSchema, type ImplicitFieldSchema } from "../fieldSchema.js";
20
20
  import type { SimpleTreeSchema } from "../simpleSchema.js";
21
21
  import { simpleToStoredSchema } from "../toStoredSchema.js";
22
22
 
@@ -22,8 +22,8 @@ import type {
22
22
  ReadableField,
23
23
  ReadSchema,
24
24
  TreeFieldFromImplicitField,
25
- UnsafeUnknownSchema,
26
- } from "../schemaTypes.js";
25
+ } from "../fieldSchema.js";
26
+ import type { UnsafeUnknownSchema } from "../unsafeUnknownSchema.js";
27
27
  import type { SimpleTreeSchema } from "../simpleSchema.js";
28
28
 
29
29
  import type { TreeViewConfiguration } from "./configuration.js";
@@ -11,7 +11,7 @@ import {
11
11
  type Unhydrated,
12
12
  type WithType,
13
13
  } from "../core/index.js";
14
- import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../schemaTypes.js";
14
+ import type { ImplicitFieldSchema, TreeFieldFromImplicitField } from "../fieldSchema.js";
15
15
 
16
16
  import { createFromCursor } from "./create.js";
17
17
  import type { TreeChangeEvents } from "./treeChangeEvents.js";
@@ -127,6 +127,9 @@ export interface TreeBeta {
127
127
  * - Value node types (i.e., numbers, strings, booleans, nulls and Fluid handles) will be returned as is.
128
128
  *
129
129
  * - The identifiers in the node's subtree will be preserved, i.e., they are not replaced with new values.
130
+ *
131
+ * @privateRemarks
132
+ * TODO: AB#43548: How this handles unknown optional fields needs to be figured out, tested and documented.
130
133
  */
131
134
  clone<const TSchema extends ImplicitFieldSchema>(
132
135
  node: TreeFieldFromImplicitField<TSchema>,
@@ -8,14 +8,7 @@ import { assert, oob, fail, unreachableCase } from "@fluidframework/core-utils/i
8
8
  import { EmptyKey, rootFieldKey } from "../../core/index.js";
9
9
  import { type TreeStatus, isTreeValue, FieldKinds } from "../../feature-libraries/index.js";
10
10
  import { extractFromOpaque } from "../../util/index.js";
11
- import {
12
- type TreeLeafValue,
13
- type ImplicitFieldSchema,
14
- FieldSchema,
15
- type ImplicitAllowedTypes,
16
- type TreeNodeFromImplicitAllowedTypes,
17
- normalizeAllowedTypes,
18
- } from "../schemaTypes.js";
11
+ import { type ImplicitFieldSchema, FieldSchema } from "../fieldSchema.js";
19
12
  import {
20
13
  booleanSchema,
21
14
  handleSchema,
@@ -36,6 +29,10 @@ import {
36
29
  getOrCreateNodeFromInnerNode,
37
30
  typeSchemaSymbol,
38
31
  getOrCreateInnerNode,
32
+ type TreeLeafValue,
33
+ type ImplicitAllowedTypes,
34
+ type TreeNodeFromImplicitAllowedTypes,
35
+ normalizeAllowedTypes,
39
36
  } from "../core/index.js";
40
37
  import type { TreeChangeEvents } from "./treeChangeEvents.js";
41
38
  import { isArrayNodeSchema, isObjectNodeSchema } from "../node-kinds/index.js";
@@ -15,9 +15,7 @@ import type {
15
15
  FieldKind,
16
16
  FieldSchema,
17
17
  FieldSchemaAlpha,
18
- ImplicitAllowedTypes,
19
- TreeLeafValue,
20
- } from "../schemaTypes.js";
18
+ } from "../fieldSchema.js";
21
19
  import type {
22
20
  NodeKind,
23
21
  WithType,
@@ -27,9 +25,12 @@ import type {
27
25
  TreeNodeSchema,
28
26
  TreeNodeSchemaCore,
29
27
  TreeNodeSchemaClass,
28
+ ImplicitAllowedTypes,
29
+ TreeLeafValue,
30
+ FlexListToUnion,
31
+ LazyItem,
30
32
  } from "../core/index.js";
31
33
  import type { TreeArrayNode } from "../node-kinds/index.js";
32
- import type { FlexListToUnion, LazyItem } from "../flexList.js";
33
34
  import type { SimpleArrayNodeSchema, SimpleMapNodeSchema } from "../simpleSchema.js";
34
35
 
35
36
  /*
@@ -17,12 +17,9 @@ import {
17
17
  type ITreeCursorSynchronous,
18
18
  } from "../../core/index.js";
19
19
  import { brand } from "../../util/index.js";
20
- import type {
21
- TreeLeafValue,
22
- ImplicitFieldSchema,
23
- ImplicitAllowedTypes,
24
- } from "../schemaTypes.js";
25
- import { NodeKind, type TreeNodeSchema } from "../core/index.js";
20
+ import type { ImplicitFieldSchema } from "../fieldSchema.js";
21
+ import { NodeKind } from "../core/index.js";
22
+ import type { TreeNodeSchema, ImplicitAllowedTypes, TreeLeafValue } from "../core/index.js";
26
23
  import {
27
24
  isTreeValue,
28
25
  stackTreeFieldCursor,
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
7
- import { normalizeFieldSchema, type ImplicitFieldSchema } from "../schemaTypes.js";
7
+ import { normalizeFieldSchema, type ImplicitFieldSchema } from "../fieldSchema.js";
8
8
  import type {
9
9
  SimpleArrayNodeSchema,
10
10
  SimpleFieldSchema,
@@ -8,4 +8,4 @@ This specifically does not contain any logic specific to field kinds or node kin
8
8
  ## Status
9
9
 
10
10
  More content should be moved into this directory as its disentangled from node kind specific logic.
11
- `proxyBinding.ts` is a good candidate to work toward moving here to.
11
+