@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
@@ -3,8 +3,12 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import type { TreeFieldStoredSchema } from "../../core/index.js";
7
- import { defaultSchemaPolicy, FieldKinds } from "../../feature-libraries/index.js";
6
+ import type { ITreeCursorSynchronous, TreeFieldStoredSchema } from "../../core/index.js";
7
+ import {
8
+ defaultSchemaPolicy,
9
+ FieldKinds,
10
+ isTreeValue,
11
+ } from "../../feature-libraries/index.js";
8
12
  import { brand } from "../../util/index.js";
9
13
  import {
10
14
  Context,
@@ -13,6 +17,7 @@ import {
13
17
  isTreeNode,
14
18
  UnhydratedContext,
15
19
  type NodeKind,
20
+ type TreeLeafValue,
16
21
  type TreeNode,
17
22
  type Unhydrated,
18
23
  type WithType,
@@ -29,8 +34,12 @@ import {
29
34
  } from "../unhydratedFlexTreeFromInsertable.js";
30
35
 
31
36
  import { createFromCursor } from "./create.js";
37
+ import { conciseFromCursor, type ConciseTree } from "./conciseTree.js";
38
+ import type { TreeEncodingOptions } from "./customTree.js";
39
+ import { cursorFromVerbose } from "./verboseTree.js";
32
40
  import type { TreeChangeEvents } from "./treeChangeEvents.js";
33
41
  import { treeNodeApi } from "./treeNodeApi.js";
42
+ import type { InsertableField, UnsafeUnknownSchema } from "../unsafeUnknownSchema.js";
34
43
 
35
44
  // Tests for this file are grouped with those for treeNodeApi.ts as that is where this functionality will eventually land,
36
45
  // and where most of the actual implementation is for much of it.
@@ -128,6 +137,39 @@ export interface TreeBeta {
128
137
  listener: NoInfer<TreeChangeEventsBeta<TNode>[K]>,
129
138
  ): () => void;
130
139
 
140
+ /**
141
+ * A less type-safe version of {@link (TreeAlpha:interface).create}, suitable for importing data.
142
+ * @remarks
143
+ * Due to {@link ConciseTree} relying on type inference from the data, its use is somewhat limited.
144
+ * This does not support {@link ConciseTree|ConciseTrees} with customized handle encodings or using persisted keys.
145
+ * Use "compressed" or "verbose" formats for more flexibility.
146
+ *
147
+ * When using this function,
148
+ * it is recommend to ensure your schema is unambiguous with {@link ITreeConfigurationOptions.preventAmbiguity}.
149
+ * If the schema is ambiguous, consider using {@link (TreeAlpha:interface).create} and {@link Unhydrated} nodes where needed,
150
+ * or using {@link (TreeAlpha:interface).(importVerbose:1)} and specify all types.
151
+ *
152
+ * Documented (and thus recoverable) error handling/reporting for this is not yet implemented,
153
+ * but for now most invalid inputs will throw a recoverable error.
154
+ */
155
+ importConcise<const TSchema extends ImplicitFieldSchema>(
156
+ schema: TSchema,
157
+ data: ConciseTree | undefined,
158
+ ): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
159
+
160
+ /**
161
+ * Copy a snapshot of the current version of a TreeNode into a {@link ConciseTree}.
162
+ */
163
+ exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
164
+
165
+ /**
166
+ * Copy a snapshot of the current version of a TreeNode into a {@link ConciseTree}, allowing undefined.
167
+ */
168
+ exportConcise(
169
+ node: TreeNode | TreeLeafValue | undefined,
170
+ options?: TreeEncodingOptions,
171
+ ): ConciseTree | undefined;
172
+
131
173
  /**
132
174
  * Clones the persisted data associated with a node.
133
175
  *
@@ -143,7 +185,7 @@ export interface TreeBeta {
143
185
  *
144
186
  * - The identifiers in the node's subtree will be preserved, i.e., they are not replaced with new values.
145
187
  *
146
- * - If the node (or any node in its subtree) contains {@link SchemaFactoryObjectOptions.allowUnknownOptionalFields|unknown optional fields},
188
+ * - If the node (or any node in its subtree) contains {@link ObjectSchemaOptions.allowUnknownOptionalFields|unknown optional fields},
147
189
  * those fields will be cloned just like the known fields.
148
190
  */
149
191
  clone<const TSchema extends ImplicitFieldSchema>(
@@ -184,6 +226,93 @@ export interface TreeBeta {
184
226
  ): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
185
227
  }
186
228
 
229
+ /**
230
+ * Borrow a cursor from a node.
231
+ * @remarks
232
+ * The cursor must be put back to its original location before the node is used again.
233
+ */
234
+ export function borrowCursorFromTreeNodeOrValue(
235
+ node: TreeNode | TreeLeafValue,
236
+ ): ITreeCursorSynchronous {
237
+ if (isTreeValue(node)) {
238
+ return cursorFromVerbose(node, {});
239
+ }
240
+ const kernel = getKernel(node);
241
+ const cursor = kernel.getOrCreateInnerNode().borrowCursor();
242
+ return cursor;
243
+ }
244
+
245
+ /**
246
+ * {@inheritDoc (TreeBeta:interface).importConcise}
247
+ */
248
+ export function importConcise<TSchema extends ImplicitFieldSchema>(
249
+ schema: TSchema & ImplicitFieldSchema,
250
+ data: ConciseTree | undefined,
251
+ ): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
252
+ /**
253
+ * {@inheritDoc (TreeAlpha:interface).importConcise}
254
+ */
255
+ export function importConcise<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
256
+ schema: UnsafeUnknownSchema extends TSchema
257
+ ? ImplicitFieldSchema
258
+ : TSchema & ImplicitFieldSchema,
259
+ data: ConciseTree | undefined,
260
+ ): Unhydrated<
261
+ TSchema extends ImplicitFieldSchema
262
+ ? TreeFieldFromImplicitField<TSchema>
263
+ : TreeNode | TreeLeafValue | undefined
264
+ >;
265
+ export function importConcise<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(
266
+ schema: UnsafeUnknownSchema extends TSchema
267
+ ? ImplicitFieldSchema
268
+ : TSchema & ImplicitFieldSchema,
269
+ data: ConciseTree | undefined,
270
+ ): Unhydrated<
271
+ TSchema extends ImplicitFieldSchema
272
+ ? TreeFieldFromImplicitField<TSchema>
273
+ : TreeNode | TreeLeafValue | undefined
274
+ > {
275
+ // Create the tree content from insertable data
276
+ const mapTree = unhydratedFlexTreeFromInsertable(
277
+ data as InsertableField<UnsafeUnknownSchema>,
278
+ schema,
279
+ );
280
+ const result = mapTree === undefined ? undefined : getOrCreateNodeFromInnerNode(mapTree);
281
+ return result as Unhydrated<
282
+ TSchema extends ImplicitFieldSchema
283
+ ? TreeFieldFromImplicitField<TSchema>
284
+ : TreeNode | TreeLeafValue | undefined
285
+ >;
286
+ }
287
+
288
+ /**
289
+ * {@inheritDoc (TreeBeta:interface).(exportConcise:1)}
290
+ */
291
+ export function exportConcise(
292
+ node: TreeNode | TreeLeafValue,
293
+ options?: TreeEncodingOptions,
294
+ ): ConciseTree;
295
+ /**
296
+ * {@inheritDoc (TreeBeta:interface).(exportConcise:2)}
297
+ */
298
+ export function exportConcise(
299
+ node: TreeNode | TreeLeafValue | undefined,
300
+ options?: TreeEncodingOptions,
301
+ ): ConciseTree | undefined;
302
+ export function exportConcise(
303
+ node: TreeNode | TreeLeafValue | undefined,
304
+ options?: TreeEncodingOptions,
305
+ ): ConciseTree | undefined {
306
+ if (!isTreeNode(node)) {
307
+ return node;
308
+ }
309
+ const config: TreeEncodingOptions = { ...options };
310
+
311
+ const kernel = getKernel(node);
312
+ const cursor = borrowCursorFromTreeNodeOrValue(node);
313
+ return conciseFromCursor(cursor, kernel.context, config);
314
+ }
315
+
187
316
  /**
188
317
  * Extensions to {@link (Tree:variable)} which are not yet stable.
189
318
  * @see {@link (TreeBeta:interface)}.
@@ -197,6 +326,10 @@ export const TreeBeta: TreeBeta = {
197
326
  ): () => void {
198
327
  return treeNodeApi.on(node, eventName, listener);
199
328
  },
329
+
330
+ importConcise,
331
+ exportConcise,
332
+
200
333
  clone<const TSchema extends ImplicitFieldSchema>(
201
334
  node: TreeFieldFromImplicitField<TSchema>,
202
335
  ): Unhydrated<TreeFieldFromImplicitField<TSchema>> {
@@ -222,7 +222,7 @@ export const treeNodeApi: TreeNodeApi = {
222
222
  if (actualSchema === undefined) {
223
223
  return false;
224
224
  }
225
- return normalizeAllowedTypes(schema).has(actualSchema);
225
+ return normalizeAllowedTypes(schema).evaluateSet().has(actualSchema);
226
226
  },
227
227
  schema(node: TreeNode | TreeLeafValue): TreeNodeSchema {
228
228
  return tryGetSchema(node) ?? fail(0xb37 /* Not a tree node */);