@fluidframework/tree 2.23.0-325054 → 2.30.0

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 (629) hide show
  1. package/.vscode/settings.json +0 -1
  2. package/CHANGELOG.md +38 -0
  3. package/api-report/tree.alpha.api.md +34 -146
  4. package/api-report/tree.beta.api.md +9 -101
  5. package/api-report/tree.legacy.alpha.api.md +9 -101
  6. package/api-report/tree.legacy.public.api.md +9 -101
  7. package/api-report/tree.public.api.md +9 -101
  8. package/dist/alpha.d.ts +5 -18
  9. package/dist/beta.d.ts +0 -15
  10. package/dist/core/forest/editableForest.d.ts +1 -14
  11. package/dist/core/forest/editableForest.d.ts.map +1 -1
  12. package/dist/core/forest/editableForest.js +1 -28
  13. package/dist/core/forest/editableForest.js.map +1 -1
  14. package/dist/core/forest/forest.d.ts +16 -3
  15. package/dist/core/forest/forest.d.ts.map +1 -1
  16. package/dist/core/forest/forest.js +4 -1
  17. package/dist/core/forest/forest.js.map +1 -1
  18. package/dist/core/forest/index.d.ts +1 -1
  19. package/dist/core/forest/index.d.ts.map +1 -1
  20. package/dist/core/forest/index.js +1 -2
  21. package/dist/core/forest/index.js.map +1 -1
  22. package/dist/core/index.d.ts +2 -2
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +3 -3
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/tree/anchorSet.d.ts +8 -3
  27. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  28. package/dist/core/tree/anchorSet.js +12 -5
  29. package/dist/core/tree/anchorSet.js.map +1 -1
  30. package/dist/core/tree/delta.d.ts +8 -23
  31. package/dist/core/tree/delta.d.ts.map +1 -1
  32. package/dist/core/tree/delta.js.map +1 -1
  33. package/dist/core/tree/deltaUtil.d.ts +3 -3
  34. package/dist/core/tree/deltaUtil.d.ts.map +1 -1
  35. package/dist/core/tree/deltaUtil.js +2 -2
  36. package/dist/core/tree/deltaUtil.js.map +1 -1
  37. package/dist/core/tree/index.d.ts +2 -2
  38. package/dist/core/tree/index.d.ts.map +1 -1
  39. package/dist/core/tree/index.js +2 -1
  40. package/dist/core/tree/index.js.map +1 -1
  41. package/dist/core/tree/pathTree.d.ts +54 -1
  42. package/dist/core/tree/pathTree.d.ts.map +1 -1
  43. package/dist/core/tree/pathTree.js +8 -1
  44. package/dist/core/tree/pathTree.js.map +1 -1
  45. package/dist/core/tree/visitDelta.d.ts +7 -5
  46. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  47. package/dist/core/tree/visitDelta.js +19 -9
  48. package/dist/core/tree/visitDelta.js.map +1 -1
  49. package/dist/core/tree/visitorUtils.d.ts +5 -23
  50. package/dist/core/tree/visitorUtils.d.ts.map +1 -1
  51. package/dist/core/tree/visitorUtils.js +8 -5
  52. package/dist/core/tree/visitorUtils.js.map +1 -1
  53. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +1 -1
  54. package/dist/feature-libraries/chunked-forest/basicChunk.js +1 -1
  55. package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  56. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +5 -3
  57. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  58. package/dist/feature-libraries/chunked-forest/chunkTree.js +10 -7
  59. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  60. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +1 -0
  61. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  62. package/dist/feature-libraries/chunked-forest/chunkedForest.js +5 -2
  63. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  64. package/dist/feature-libraries/chunked-forest/codec/codecs.js +2 -2
  65. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  66. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +1 -1
  67. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  68. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  69. package/dist/feature-libraries/chunked-forest/codec/{schemaBasedEncoding.d.ts → schemaBasedEncode.d.ts} +1 -1
  70. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -0
  71. package/dist/feature-libraries/chunked-forest/codec/{schemaBasedEncoding.js → schemaBasedEncode.js} +1 -1
  72. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -0
  73. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +3 -2
  74. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  75. package/dist/feature-libraries/chunked-forest/uniformChunk.js +3 -2
  76. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  77. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +12 -14
  78. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  79. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +5 -6
  80. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  81. package/dist/feature-libraries/default-schema/index.d.ts +1 -0
  82. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  83. package/dist/feature-libraries/default-schema/index.js +3 -1
  84. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  85. package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +21 -0
  86. package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -0
  87. package/dist/feature-libraries/default-schema/mappedEditBuilder.js +57 -0
  88. package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -0
  89. package/dist/feature-libraries/deltaUtils.js +1 -1
  90. package/dist/feature-libraries/deltaUtils.js.map +1 -1
  91. package/dist/feature-libraries/flex-tree/context.d.ts +5 -5
  92. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  93. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  94. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -2
  95. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  96. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  97. package/dist/feature-libraries/flex-tree/lazyField.d.ts +5 -4
  98. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  99. package/dist/feature-libraries/flex-tree/lazyField.js +9 -6
  100. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  101. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  102. package/dist/feature-libraries/forest-summary/forestSummarizer.js +4 -5
  103. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  104. package/dist/feature-libraries/index.d.ts +2 -1
  105. package/dist/feature-libraries/index.d.ts.map +1 -1
  106. package/dist/feature-libraries/index.js +9 -7
  107. package/dist/feature-libraries/index.js.map +1 -1
  108. package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  109. package/dist/feature-libraries/initializeForest.d.ts +18 -0
  110. package/dist/feature-libraries/initializeForest.d.ts.map +1 -0
  111. package/dist/feature-libraries/initializeForest.js +35 -0
  112. package/dist/feature-libraries/initializeForest.js.map +1 -0
  113. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +5 -5
  114. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  115. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +9 -15
  116. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  117. package/dist/feature-libraries/node-identifier/index.d.ts +8 -0
  118. package/dist/feature-libraries/node-identifier/index.d.ts.map +1 -0
  119. package/dist/feature-libraries/node-identifier/index.js +16 -0
  120. package/dist/feature-libraries/node-identifier/index.js.map +1 -0
  121. package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts +22 -0
  122. package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts.map +1 -0
  123. package/dist/feature-libraries/{node-key/mockNodeKeyManager.js → node-identifier/mockNodeIdentifierManager.js} +18 -18
  124. package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -0
  125. package/dist/feature-libraries/node-identifier/nodeIdentifier.d.ts +38 -0
  126. package/dist/feature-libraries/node-identifier/nodeIdentifier.d.ts.map +1 -0
  127. package/dist/feature-libraries/node-identifier/nodeIdentifier.js +26 -0
  128. package/dist/feature-libraries/node-identifier/nodeIdentifier.js.map +1 -0
  129. package/dist/feature-libraries/node-identifier/nodeIdentifierManager.d.ts +37 -0
  130. package/dist/feature-libraries/node-identifier/nodeIdentifierManager.d.ts.map +1 -0
  131. package/dist/feature-libraries/node-identifier/nodeIdentifierManager.js +48 -0
  132. package/dist/feature-libraries/node-identifier/nodeIdentifierManager.js.map +1 -0
  133. package/dist/feature-libraries/object-forest/objectForest.d.ts +2 -1
  134. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  135. package/dist/feature-libraries/object-forest/objectForest.js +6 -2
  136. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  137. package/dist/feature-libraries/treeCursorUtils.js +1 -1
  138. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  139. package/dist/index.d.ts +3 -3
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +8 -5
  142. package/dist/index.js.map +1 -1
  143. package/dist/legacy.d.ts +0 -15
  144. package/dist/packageVersion.d.ts +1 -1
  145. package/dist/packageVersion.d.ts.map +1 -1
  146. package/dist/packageVersion.js +1 -1
  147. package/dist/packageVersion.js.map +1 -1
  148. package/dist/public.d.ts +0 -15
  149. package/dist/shared-tree/checkoutFlexTreeView.d.ts +3 -3
  150. package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
  151. package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
  152. package/dist/shared-tree/independentView.d.ts.map +1 -1
  153. package/dist/shared-tree/independentView.js +3 -18
  154. package/dist/shared-tree/independentView.js.map +1 -1
  155. package/dist/shared-tree/index.d.ts +1 -1
  156. package/dist/shared-tree/index.d.ts.map +1 -1
  157. package/dist/shared-tree/index.js +2 -1
  158. package/dist/shared-tree/index.js.map +1 -1
  159. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  160. package/dist/shared-tree/schematizeTree.js +3 -2
  161. package/dist/shared-tree/schematizeTree.js.map +1 -1
  162. package/dist/shared-tree/schematizingTreeView.d.ts +4 -4
  163. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  164. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  165. package/dist/shared-tree/sharedTree.d.ts +1 -0
  166. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  167. package/dist/shared-tree/sharedTree.js +11 -7
  168. package/dist/shared-tree/sharedTree.js.map +1 -1
  169. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  170. package/dist/shared-tree/sharedTreeChangeFamily.js +1 -1
  171. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  172. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +1 -2
  173. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  174. package/dist/shared-tree/sharedTreeEditBuilder.js +2 -2
  175. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  176. package/dist/shared-tree/treeApiAlpha.d.ts +6 -31
  177. package/dist/shared-tree/treeApiAlpha.d.ts.map +1 -1
  178. package/dist/shared-tree/treeApiAlpha.js +3 -18
  179. package/dist/shared-tree/treeApiAlpha.js.map +1 -1
  180. package/dist/shared-tree/treeCheckout.js +1 -1
  181. package/dist/shared-tree/treeCheckout.js.map +1 -1
  182. package/dist/simple-tree/api/conciseTree.d.ts +8 -2
  183. package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
  184. package/dist/simple-tree/api/conciseTree.js +10 -1
  185. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  186. package/dist/simple-tree/api/create.d.ts +3 -3
  187. package/dist/simple-tree/api/create.d.ts.map +1 -1
  188. package/dist/simple-tree/api/create.js.map +1 -1
  189. package/dist/simple-tree/api/customTree.d.ts +42 -12
  190. package/dist/simple-tree/api/customTree.d.ts.map +1 -1
  191. package/dist/simple-tree/api/customTree.js +30 -2
  192. package/dist/simple-tree/api/customTree.js.map +1 -1
  193. package/dist/simple-tree/api/index.d.ts +5 -5
  194. package/dist/simple-tree/api/index.d.ts.map +1 -1
  195. package/dist/simple-tree/api/index.js +6 -3
  196. package/dist/simple-tree/api/index.js.map +1 -1
  197. package/dist/simple-tree/api/schemaFactory.d.ts +12 -1
  198. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  199. package/dist/simple-tree/api/schemaFactory.js +12 -1
  200. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  201. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +7 -0
  202. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  203. package/dist/simple-tree/api/schemaFactoryAlpha.js +9 -0
  204. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  205. package/dist/simple-tree/api/schemaFromSimple.d.ts +19 -0
  206. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -0
  207. package/dist/simple-tree/api/schemaFromSimple.js +60 -0
  208. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -0
  209. package/dist/simple-tree/api/simpleSchema.d.ts +3 -0
  210. package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -1
  211. package/dist/simple-tree/api/simpleSchema.js.map +1 -1
  212. package/dist/simple-tree/api/tree.d.ts +11 -5
  213. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  214. package/dist/simple-tree/api/tree.js +10 -0
  215. package/dist/simple-tree/api/tree.js.map +1 -1
  216. package/dist/simple-tree/api/treeNodeApi.js +1 -1
  217. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  218. package/dist/simple-tree/api/typesUnsafe.d.ts +19 -127
  219. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  220. package/dist/simple-tree/api/typesUnsafe.js +0 -17
  221. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  222. package/dist/simple-tree/api/verboseTree.d.ts +16 -25
  223. package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
  224. package/dist/simple-tree/api/verboseTree.js +15 -10
  225. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  226. package/dist/simple-tree/arrayNode.d.ts +1 -1
  227. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  228. package/dist/simple-tree/core/unhydratedFlexTree.d.ts +2 -2
  229. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  230. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  231. package/dist/simple-tree/index.d.ts +4 -4
  232. package/dist/simple-tree/index.d.ts.map +1 -1
  233. package/dist/simple-tree/index.js +6 -5
  234. package/dist/simple-tree/index.js.map +1 -1
  235. package/dist/simple-tree/objectNode.d.ts +2 -25
  236. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  237. package/dist/simple-tree/objectNode.js +1 -1
  238. package/dist/simple-tree/objectNode.js.map +1 -1
  239. package/dist/simple-tree/schemaTypes.d.ts +29 -199
  240. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  241. package/dist/simple-tree/schemaTypes.js +20 -48
  242. package/dist/simple-tree/schemaTypes.js.map +1 -1
  243. package/dist/simple-tree/toMapTree.d.ts +4 -4
  244. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  245. package/dist/simple-tree/toMapTree.js.map +1 -1
  246. package/dist/simple-tree/treeNodeValid.js +1 -1
  247. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  248. package/dist/util/cloneWithReplacements.d.ts +21 -0
  249. package/dist/util/cloneWithReplacements.d.ts.map +1 -0
  250. package/dist/util/cloneWithReplacements.js +38 -0
  251. package/dist/util/cloneWithReplacements.js.map +1 -0
  252. package/dist/util/index.d.ts +1 -0
  253. package/dist/util/index.d.ts.map +1 -1
  254. package/dist/util/index.js +3 -1
  255. package/dist/util/index.js.map +1 -1
  256. package/dist/util/referenceCounting.d.ts +18 -0
  257. package/dist/util/referenceCounting.d.ts.map +1 -1
  258. package/dist/util/referenceCounting.js.map +1 -1
  259. package/lib/alpha.d.ts +5 -18
  260. package/lib/beta.d.ts +0 -15
  261. package/lib/core/forest/editableForest.d.ts +1 -14
  262. package/lib/core/forest/editableForest.d.ts.map +1 -1
  263. package/lib/core/forest/editableForest.js +0 -26
  264. package/lib/core/forest/editableForest.js.map +1 -1
  265. package/lib/core/forest/forest.d.ts +16 -3
  266. package/lib/core/forest/forest.d.ts.map +1 -1
  267. package/lib/core/forest/forest.js +4 -1
  268. package/lib/core/forest/forest.js.map +1 -1
  269. package/lib/core/forest/index.d.ts +1 -1
  270. package/lib/core/forest/index.d.ts.map +1 -1
  271. package/lib/core/forest/index.js +1 -1
  272. package/lib/core/forest/index.js.map +1 -1
  273. package/lib/core/index.d.ts +2 -2
  274. package/lib/core/index.d.ts.map +1 -1
  275. package/lib/core/index.js +2 -2
  276. package/lib/core/index.js.map +1 -1
  277. package/lib/core/tree/anchorSet.d.ts +8 -3
  278. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  279. package/lib/core/tree/anchorSet.js +12 -5
  280. package/lib/core/tree/anchorSet.js.map +1 -1
  281. package/lib/core/tree/delta.d.ts +8 -23
  282. package/lib/core/tree/delta.d.ts.map +1 -1
  283. package/lib/core/tree/delta.js.map +1 -1
  284. package/lib/core/tree/deltaUtil.d.ts +3 -3
  285. package/lib/core/tree/deltaUtil.d.ts.map +1 -1
  286. package/lib/core/tree/deltaUtil.js +2 -2
  287. package/lib/core/tree/deltaUtil.js.map +1 -1
  288. package/lib/core/tree/index.d.ts +2 -2
  289. package/lib/core/tree/index.d.ts.map +1 -1
  290. package/lib/core/tree/index.js +1 -1
  291. package/lib/core/tree/index.js.map +1 -1
  292. package/lib/core/tree/pathTree.d.ts +54 -1
  293. package/lib/core/tree/pathTree.d.ts.map +1 -1
  294. package/lib/core/tree/pathTree.js +6 -0
  295. package/lib/core/tree/pathTree.js.map +1 -1
  296. package/lib/core/tree/visitDelta.d.ts +7 -5
  297. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  298. package/lib/core/tree/visitDelta.js +19 -9
  299. package/lib/core/tree/visitDelta.js.map +1 -1
  300. package/lib/core/tree/visitorUtils.d.ts +5 -23
  301. package/lib/core/tree/visitorUtils.d.ts.map +1 -1
  302. package/lib/core/tree/visitorUtils.js +8 -5
  303. package/lib/core/tree/visitorUtils.js.map +1 -1
  304. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +1 -1
  305. package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -1
  306. package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  307. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +5 -3
  308. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  309. package/lib/feature-libraries/chunked-forest/chunkTree.js +11 -8
  310. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  311. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +1 -0
  312. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  313. package/lib/feature-libraries/chunked-forest/chunkedForest.js +6 -3
  314. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  315. package/lib/feature-libraries/chunked-forest/codec/codecs.js +1 -1
  316. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  317. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +1 -1
  318. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  319. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  320. package/lib/feature-libraries/chunked-forest/codec/{schemaBasedEncoding.d.ts → schemaBasedEncode.d.ts} +1 -1
  321. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -0
  322. package/lib/feature-libraries/chunked-forest/codec/{schemaBasedEncoding.js → schemaBasedEncode.js} +1 -1
  323. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -0
  324. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +3 -2
  325. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  326. package/lib/feature-libraries/chunked-forest/uniformChunk.js +3 -2
  327. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  328. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +12 -14
  329. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  330. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +5 -6
  331. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  332. package/lib/feature-libraries/default-schema/index.d.ts +1 -0
  333. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  334. package/lib/feature-libraries/default-schema/index.js +1 -0
  335. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  336. package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +21 -0
  337. package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -0
  338. package/lib/feature-libraries/default-schema/mappedEditBuilder.js +53 -0
  339. package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -0
  340. package/lib/feature-libraries/deltaUtils.js +1 -1
  341. package/lib/feature-libraries/deltaUtils.js.map +1 -1
  342. package/lib/feature-libraries/flex-tree/context.d.ts +5 -5
  343. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  344. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  345. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -2
  346. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  347. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  348. package/lib/feature-libraries/flex-tree/lazyField.d.ts +5 -4
  349. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  350. package/lib/feature-libraries/flex-tree/lazyField.js +11 -8
  351. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  352. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  353. package/lib/feature-libraries/forest-summary/forestSummarizer.js +6 -7
  354. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  355. package/lib/feature-libraries/index.d.ts +2 -1
  356. package/lib/feature-libraries/index.d.ts.map +1 -1
  357. package/lib/feature-libraries/index.js +2 -1
  358. package/lib/feature-libraries/index.js.map +1 -1
  359. package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  360. package/lib/feature-libraries/initializeForest.d.ts +18 -0
  361. package/lib/feature-libraries/initializeForest.d.ts.map +1 -0
  362. package/lib/feature-libraries/initializeForest.js +31 -0
  363. package/lib/feature-libraries/initializeForest.js.map +1 -0
  364. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +5 -5
  365. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  366. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +10 -16
  367. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  368. package/lib/feature-libraries/node-identifier/index.d.ts +8 -0
  369. package/lib/feature-libraries/node-identifier/index.d.ts.map +1 -0
  370. package/lib/feature-libraries/node-identifier/index.js +8 -0
  371. package/lib/feature-libraries/node-identifier/index.js.map +1 -0
  372. package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts +22 -0
  373. package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts.map +1 -0
  374. package/lib/feature-libraries/{node-key/mockNodeKeyManager.js → node-identifier/mockNodeIdentifierManager.js} +16 -16
  375. package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -0
  376. package/lib/feature-libraries/node-identifier/nodeIdentifier.d.ts +38 -0
  377. package/lib/feature-libraries/node-identifier/nodeIdentifier.d.ts.map +1 -0
  378. package/lib/feature-libraries/node-identifier/nodeIdentifier.js +22 -0
  379. package/lib/feature-libraries/node-identifier/nodeIdentifier.js.map +1 -0
  380. package/lib/feature-libraries/node-identifier/nodeIdentifierManager.d.ts +37 -0
  381. package/lib/feature-libraries/node-identifier/nodeIdentifierManager.d.ts.map +1 -0
  382. package/lib/feature-libraries/node-identifier/nodeIdentifierManager.js +43 -0
  383. package/lib/feature-libraries/node-identifier/nodeIdentifierManager.js.map +1 -0
  384. package/lib/feature-libraries/object-forest/objectForest.d.ts +2 -1
  385. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  386. package/lib/feature-libraries/object-forest/objectForest.js +6 -2
  387. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  388. package/lib/feature-libraries/treeCursorUtils.js +1 -1
  389. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  390. package/lib/index.d.ts +3 -3
  391. package/lib/index.d.ts.map +1 -1
  392. package/lib/index.js +2 -1
  393. package/lib/index.js.map +1 -1
  394. package/lib/legacy.d.ts +0 -15
  395. package/lib/packageVersion.d.ts +1 -1
  396. package/lib/packageVersion.d.ts.map +1 -1
  397. package/lib/packageVersion.js +1 -1
  398. package/lib/packageVersion.js.map +1 -1
  399. package/lib/public.d.ts +0 -15
  400. package/lib/shared-tree/checkoutFlexTreeView.d.ts +3 -3
  401. package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
  402. package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
  403. package/lib/shared-tree/independentView.d.ts.map +1 -1
  404. package/lib/shared-tree/independentView.js +5 -20
  405. package/lib/shared-tree/independentView.js.map +1 -1
  406. package/lib/shared-tree/index.d.ts +1 -1
  407. package/lib/shared-tree/index.d.ts.map +1 -1
  408. package/lib/shared-tree/index.js +1 -1
  409. package/lib/shared-tree/index.js.map +1 -1
  410. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  411. package/lib/shared-tree/schematizeTree.js +3 -2
  412. package/lib/shared-tree/schematizeTree.js.map +1 -1
  413. package/lib/shared-tree/schematizingTreeView.d.ts +4 -4
  414. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  415. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  416. package/lib/shared-tree/sharedTree.d.ts +1 -0
  417. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  418. package/lib/shared-tree/sharedTree.js +9 -6
  419. package/lib/shared-tree/sharedTree.js.map +1 -1
  420. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  421. package/lib/shared-tree/sharedTreeChangeFamily.js +1 -1
  422. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  423. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +1 -2
  424. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  425. package/lib/shared-tree/sharedTreeEditBuilder.js +2 -2
  426. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  427. package/lib/shared-tree/treeApiAlpha.d.ts +6 -31
  428. package/lib/shared-tree/treeApiAlpha.d.ts.map +1 -1
  429. package/lib/shared-tree/treeApiAlpha.js +3 -18
  430. package/lib/shared-tree/treeApiAlpha.js.map +1 -1
  431. package/lib/shared-tree/treeCheckout.js +2 -2
  432. package/lib/shared-tree/treeCheckout.js.map +1 -1
  433. package/lib/simple-tree/api/conciseTree.d.ts +8 -2
  434. package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
  435. package/lib/simple-tree/api/conciseTree.js +9 -1
  436. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  437. package/lib/simple-tree/api/create.d.ts +3 -3
  438. package/lib/simple-tree/api/create.d.ts.map +1 -1
  439. package/lib/simple-tree/api/create.js.map +1 -1
  440. package/lib/simple-tree/api/customTree.d.ts +42 -12
  441. package/lib/simple-tree/api/customTree.d.ts.map +1 -1
  442. package/lib/simple-tree/api/customTree.js +29 -2
  443. package/lib/simple-tree/api/customTree.js.map +1 -1
  444. package/lib/simple-tree/api/index.d.ts +5 -5
  445. package/lib/simple-tree/api/index.d.ts.map +1 -1
  446. package/lib/simple-tree/api/index.js +4 -4
  447. package/lib/simple-tree/api/index.js.map +1 -1
  448. package/lib/simple-tree/api/schemaFactory.d.ts +12 -1
  449. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  450. package/lib/simple-tree/api/schemaFactory.js +12 -1
  451. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  452. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +7 -0
  453. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  454. package/lib/simple-tree/api/schemaFactoryAlpha.js +9 -0
  455. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  456. package/lib/simple-tree/api/schemaFromSimple.d.ts +19 -0
  457. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -0
  458. package/lib/simple-tree/api/schemaFromSimple.js +56 -0
  459. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -0
  460. package/lib/simple-tree/api/simpleSchema.d.ts +3 -0
  461. package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -1
  462. package/lib/simple-tree/api/simpleSchema.js.map +1 -1
  463. package/lib/simple-tree/api/tree.d.ts +11 -5
  464. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  465. package/lib/simple-tree/api/tree.js +10 -0
  466. package/lib/simple-tree/api/tree.js.map +1 -1
  467. package/lib/simple-tree/api/treeNodeApi.js +1 -1
  468. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  469. package/lib/simple-tree/api/typesUnsafe.d.ts +19 -127
  470. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  471. package/lib/simple-tree/api/typesUnsafe.js +1 -15
  472. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  473. package/lib/simple-tree/api/verboseTree.d.ts +16 -25
  474. package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
  475. package/lib/simple-tree/api/verboseTree.js +14 -10
  476. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  477. package/lib/simple-tree/arrayNode.d.ts +1 -1
  478. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  479. package/lib/simple-tree/core/unhydratedFlexTree.d.ts +2 -2
  480. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  481. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  482. package/lib/simple-tree/index.d.ts +4 -4
  483. package/lib/simple-tree/index.d.ts.map +1 -1
  484. package/lib/simple-tree/index.js +2 -2
  485. package/lib/simple-tree/index.js.map +1 -1
  486. package/lib/simple-tree/objectNode.d.ts +2 -25
  487. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  488. package/lib/simple-tree/objectNode.js +1 -1
  489. package/lib/simple-tree/objectNode.js.map +1 -1
  490. package/lib/simple-tree/schemaTypes.d.ts +29 -199
  491. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  492. package/lib/simple-tree/schemaTypes.js +20 -47
  493. package/lib/simple-tree/schemaTypes.js.map +1 -1
  494. package/lib/simple-tree/toMapTree.d.ts +4 -4
  495. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  496. package/lib/simple-tree/toMapTree.js.map +1 -1
  497. package/lib/simple-tree/treeNodeValid.js +1 -1
  498. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  499. package/lib/util/cloneWithReplacements.d.ts +21 -0
  500. package/lib/util/cloneWithReplacements.d.ts.map +1 -0
  501. package/lib/util/cloneWithReplacements.js +34 -0
  502. package/lib/util/cloneWithReplacements.js.map +1 -0
  503. package/lib/util/index.d.ts +1 -0
  504. package/lib/util/index.d.ts.map +1 -1
  505. package/lib/util/index.js +1 -0
  506. package/lib/util/index.js.map +1 -1
  507. package/lib/util/referenceCounting.d.ts +18 -0
  508. package/lib/util/referenceCounting.d.ts.map +1 -1
  509. package/lib/util/referenceCounting.js.map +1 -1
  510. package/package.json +23 -27
  511. package/src/core/forest/editableForest.ts +1 -52
  512. package/src/core/forest/forest.ts +17 -2
  513. package/src/core/forest/index.ts +0 -1
  514. package/src/core/index.ts +4 -2
  515. package/src/core/tree/anchorSet.ts +41 -10
  516. package/src/core/tree/delta.ts +8 -25
  517. package/src/core/tree/deltaUtil.ts +5 -5
  518. package/src/core/tree/index.ts +4 -1
  519. package/src/core/tree/pathTree.ts +72 -1
  520. package/src/core/tree/visitDelta.ts +38 -17
  521. package/src/core/tree/visitorUtils.ts +22 -36
  522. package/src/feature-libraries/chunked-forest/basicChunk.ts +1 -1
  523. package/src/feature-libraries/chunked-forest/chunkTree.ts +19 -8
  524. package/src/feature-libraries/chunked-forest/chunkedForest.ts +9 -4
  525. package/src/feature-libraries/chunked-forest/codec/README.md +3 -3
  526. package/src/feature-libraries/chunked-forest/codec/codecs.ts +1 -1
  527. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +1 -1
  528. package/src/feature-libraries/chunked-forest/uniformChunk.ts +3 -2
  529. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +21 -38
  530. package/src/feature-libraries/default-schema/index.ts +2 -0
  531. package/src/feature-libraries/default-schema/mappedEditBuilder.ts +68 -0
  532. package/src/feature-libraries/deltaUtils.ts +1 -1
  533. package/src/feature-libraries/flex-tree/context.ts +4 -4
  534. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +2 -2
  535. package/src/feature-libraries/flex-tree/lazyField.ts +19 -10
  536. package/src/feature-libraries/forest-summary/forestSummarizer.ts +5 -9
  537. package/src/feature-libraries/index.ts +10 -8
  538. package/src/feature-libraries/indexing/anchorTreeIndex.ts +2 -2
  539. package/src/feature-libraries/initializeForest.ts +55 -0
  540. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +12 -28
  541. package/src/feature-libraries/node-identifier/README.md +11 -0
  542. package/src/feature-libraries/node-identifier/index.ts +17 -0
  543. package/src/feature-libraries/node-identifier/mockNodeIdentifierManager.ts +59 -0
  544. package/src/feature-libraries/node-identifier/nodeIdentifier.ts +50 -0
  545. package/src/feature-libraries/node-identifier/nodeIdentifierManager.ts +95 -0
  546. package/src/feature-libraries/object-forest/objectForest.ts +10 -3
  547. package/src/feature-libraries/treeCursorUtils.ts +1 -1
  548. package/src/index.ts +16 -28
  549. package/src/packageVersion.ts +1 -1
  550. package/src/shared-tree/checkoutFlexTreeView.ts +2 -2
  551. package/src/shared-tree/independentView.ts +5 -29
  552. package/src/shared-tree/index.ts +1 -0
  553. package/src/shared-tree/schematizeTree.ts +3 -2
  554. package/src/shared-tree/schematizingTreeView.ts +3 -3
  555. package/src/shared-tree/sharedTree.ts +13 -9
  556. package/src/shared-tree/sharedTreeChangeFamily.ts +0 -1
  557. package/src/shared-tree/sharedTreeEditBuilder.ts +5 -11
  558. package/src/shared-tree/treeApiAlpha.ts +15 -78
  559. package/src/shared-tree/treeCheckout.ts +2 -2
  560. package/src/simple-tree/api/conciseTree.ts +25 -8
  561. package/src/simple-tree/api/create.ts +3 -3
  562. package/src/simple-tree/api/customTree.ts +59 -16
  563. package/src/simple-tree/api/index.ts +9 -7
  564. package/src/simple-tree/api/schemaFactory.ts +17 -4
  565. package/src/simple-tree/api/schemaFactoryAlpha.ts +12 -0
  566. package/src/simple-tree/api/schemaFromSimple.ts +68 -0
  567. package/src/simple-tree/api/simpleSchema.ts +10 -0
  568. package/src/simple-tree/api/tree.ts +11 -6
  569. package/src/simple-tree/api/treeNodeApi.ts +1 -1
  570. package/src/simple-tree/api/typesUnsafe.ts +18 -193
  571. package/src/simple-tree/api/verboseTree.ts +43 -55
  572. package/src/simple-tree/core/unhydratedFlexTree.ts +2 -2
  573. package/src/simple-tree/index.ts +6 -24
  574. package/src/simple-tree/objectNode.ts +4 -46
  575. package/src/simple-tree/schemaTypes.ts +43 -276
  576. package/src/simple-tree/toMapTree.ts +6 -6
  577. package/src/simple-tree/treeNodeValid.ts +1 -1
  578. package/src/util/cloneWithReplacements.ts +41 -0
  579. package/src/util/index.ts +2 -0
  580. package/src/util/referenceCounting.ts +18 -1
  581. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +0 -1
  582. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +0 -1
  583. package/dist/feature-libraries/node-key/index.d.ts +0 -8
  584. package/dist/feature-libraries/node-key/index.d.ts.map +0 -1
  585. package/dist/feature-libraries/node-key/index.js +0 -16
  586. package/dist/feature-libraries/node-key/index.js.map +0 -1
  587. package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts +0 -22
  588. package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +0 -1
  589. package/dist/feature-libraries/node-key/mockNodeKeyManager.js.map +0 -1
  590. package/dist/feature-libraries/node-key/nodeKey.d.ts +0 -38
  591. package/dist/feature-libraries/node-key/nodeKey.d.ts.map +0 -1
  592. package/dist/feature-libraries/node-key/nodeKey.js +0 -26
  593. package/dist/feature-libraries/node-key/nodeKey.js.map +0 -1
  594. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +0 -37
  595. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +0 -1
  596. package/dist/feature-libraries/node-key/nodeKeyManager.js +0 -48
  597. package/dist/feature-libraries/node-key/nodeKeyManager.js.map +0 -1
  598. package/dist/simple-tree/api/component.d.ts +0 -30
  599. package/dist/simple-tree/api/component.d.ts.map +0 -1
  600. package/dist/simple-tree/api/component.js +0 -26
  601. package/dist/simple-tree/api/component.js.map +0 -1
  602. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +0 -1
  603. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +0 -1
  604. package/lib/feature-libraries/node-key/index.d.ts +0 -8
  605. package/lib/feature-libraries/node-key/index.d.ts.map +0 -1
  606. package/lib/feature-libraries/node-key/index.js +0 -8
  607. package/lib/feature-libraries/node-key/index.js.map +0 -1
  608. package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts +0 -22
  609. package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +0 -1
  610. package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +0 -1
  611. package/lib/feature-libraries/node-key/nodeKey.d.ts +0 -38
  612. package/lib/feature-libraries/node-key/nodeKey.d.ts.map +0 -1
  613. package/lib/feature-libraries/node-key/nodeKey.js +0 -22
  614. package/lib/feature-libraries/node-key/nodeKey.js.map +0 -1
  615. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +0 -37
  616. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +0 -1
  617. package/lib/feature-libraries/node-key/nodeKeyManager.js +0 -43
  618. package/lib/feature-libraries/node-key/nodeKeyManager.js.map +0 -1
  619. package/lib/simple-tree/api/component.d.ts +0 -30
  620. package/lib/simple-tree/api/component.d.ts.map +0 -1
  621. package/lib/simple-tree/api/component.js +0 -23
  622. package/lib/simple-tree/api/component.js.map +0 -1
  623. package/src/feature-libraries/node-key/README.md +0 -11
  624. package/src/feature-libraries/node-key/index.ts +0 -17
  625. package/src/feature-libraries/node-key/mockNodeKeyManager.ts +0 -54
  626. package/src/feature-libraries/node-key/nodeKey.ts +0 -47
  627. package/src/feature-libraries/node-key/nodeKeyManager.ts +0 -93
  628. package/src/simple-tree/api/component.ts +0 -42
  629. /package/src/feature-libraries/chunked-forest/codec/{schemaBasedEncoding.ts → schemaBasedEncode.ts} +0 -0
@@ -19,7 +19,6 @@
19
19
  "contravariance",
20
20
  "contravariantly",
21
21
  "covariantly",
22
- "Customizer",
23
22
  "deprioritized",
24
23
  "endregion",
25
24
  "fluidframework",
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # @fluidframework/tree
2
2
 
3
+ ## 2.30.0
4
+
5
+ ### Minor Changes
6
+
7
+ - New SchemaFactoryAlpha.scopedFactory method ([#23987](https://github.com/microsoft/FluidFramework/pull/23987)) [cddd5139c3](https://github.com/microsoft/FluidFramework/commit/cddd5139c3e070ef26db55331528435a99c0a1b1)
8
+
9
+ The [`SchemaFactoryAlpha.scopedFactory`](https://fluidframework.com/docs/api/fluid-framework/schemafactoryalpha-class)
10
+ method has been added, providing an easy way to create a new `SchemaFactory` with a nested scope string.
11
+
12
+ - TreeBranchEvents now exposes the rootChanged event ([#24014](https://github.com/microsoft/FluidFramework/pull/24014)) [702a08af83](https://github.com/microsoft/FluidFramework/commit/702a08af83206c21e1016ca47051052fa8554aa5)
13
+
14
+ `TreeBranchEvents` now includes the `rootChanged` event from `TreeViewEvents`.
15
+
16
+ - Alpha APIs for replacing handles in export formats have been redesigned ([#24061](https://github.com/microsoft/FluidFramework/pull/24061)) [34b319cae7](https://github.com/microsoft/FluidFramework/commit/34b319cae7a78db5530dc898689e2eb846f1419f)
17
+
18
+ The various import and export [`VerboseTree`](https://fluidframework.com/docs/api/fluid-framework/verbosetree-typealias) and [`ConciseTree`](https://fluidframework.com/docs/api/fluid-framework/concisetree-typealias) APIs no longer include `valueConverter` options.
19
+ Instead the resulting tree can be further processed to do any desired replacements.
20
+ The following `@alpha` APIs have been added to assist with this:
21
+
22
+ 1. `cloneWithReplacements`
23
+ 2. `replaceHandles`
24
+ 3. `replaceConciseTreeHandles`
25
+ 4. `replaceVerboseTreeHandles`
26
+
27
+ - Rules regarding how and when lazy schema references are resolved have been clarified ([#24030](https://github.com/microsoft/FluidFramework/pull/24030)) [23f32794db](https://github.com/microsoft/FluidFramework/commit/23f32794dbd3672dcc18e2a9ba2f16f4bf1241f0)
28
+
29
+ A lazy schema reference is a [LazyItem](https://fluidframework.com/docs/api/fluid-framework/lazyitem-typealias) referencing a [TreeNodeSchema](https://fluidframework.com/docs/api/fluid-framework/treenodeschema-typealias).
30
+ They typically look like `() => MySchema` and are used when a [forward reference](https://en.wikipedia.org/wiki/Forward_declaration#Forward_reference) from one schema to another is required (including but not limited to recursive and co-recursive schema).
31
+
32
+ [TreeViewConfiguration](https://fluidframework.com/docs/api/fluid-framework/treeviewconfiguration-class#_constructor_-constructor) now documents its significance with respect to lazy schema references.
33
+ Additionally some implicit assumptions like no modifications of [AllowedTypes](https://fluidframework.com/docs/api/fluid-framework/allowedtypes-typealias)
34
+ after resolving of lazy schema references have been enforced (such modifications would previously cause undefined behavior in the future, and now an error is thrown when trying to modify them).
35
+
36
+ `evaluateLazySchema` has been added as an `@alpha` API that is now consistently used by all internal code when evaluating lazy schema references.
37
+ This ensures consistent behavior and error reporting, but also adds caching.
38
+ Therefore it is now supported for applications to have lazy schema references which compute the schema when invoked,
39
+ without having to implement their own caching as long as those applications use `evaluateLazySchema` anytime they need to evaluate a lazy schema reference.
40
+
3
41
  ## 2.23.0
4
42
 
5
43
  ### Minor Changes
@@ -28,22 +28,11 @@ type ApplyKind<T, Kind extends FieldKind> = {
28
28
  [FieldKind.Identifier]: T;
29
29
  }[Kind];
30
30
 
31
- // @public
32
- export type ApplyKindAssignment<T, Kind extends FieldKind> = [Kind] extends [
33
- FieldKind.Required
34
- ] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : never;
35
-
36
31
  // @public
37
32
  type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
38
33
  Kind
39
34
  ] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
40
35
 
41
- // @public
42
- export type AssignableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = SchemaUnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindAssignment<GetTypes<Types>["readWrite"], Kind> : [TSchema] extends [ImplicitAllowedTypes] ? GetTypes<TSchema>["readWrite"] : never;
43
-
44
- // @public
45
- export type AssignableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKindAssignment<GetTypesUnsafe<Types>["readWrite"], Kind> : GetTypesUnsafe<TSchema>["readWrite"];
46
-
47
36
  // @alpha
48
37
  export function asTreeViewAlpha<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): TreeViewAlpha<TSchema>;
49
38
 
@@ -55,6 +44,12 @@ export interface BranchableTree extends ViewableTree {
55
44
  rebase(branch: TreeBranchFork): void;
56
45
  }
57
46
 
47
+ // @alpha
48
+ export function cloneWithReplacements(root: unknown, rootKey: string, replacer: (key: string, value: unknown) => {
49
+ clone: boolean;
50
+ value: unknown;
51
+ }): unknown;
52
+
58
53
  // @public
59
54
  export enum CommitKind {
60
55
  Default = 0,
@@ -71,13 +66,6 @@ export interface CommitMetadata {
71
66
  // @alpha
72
67
  export function comparePersistedSchema(persisted: JsonCompatible, view: ImplicitFieldSchema, options: ICodecOptions, canInitialize: boolean): SchemaCompatibilityStatus;
73
68
 
74
- // @alpha
75
- export namespace Component {
76
- export type ComponentSchemaCollection<TConfig, TSchema> = (lazyConfiguration: () => TConfig) => LazyArray<TSchema>;
77
- export function composeComponentSchema<TConfig, TItem>(allComponents: readonly ComponentSchemaCollection<TConfig, TItem>[], lazyConfiguration: () => TConfig): (() => TItem)[];
78
- export type LazyArray<T> = readonly (() => T)[];
79
- }
80
-
81
69
  // @alpha
82
70
  export type ConciseTree<THandle = IFluidHandle> = Exclude<TreeLeafValue, IFluidHandle> | THandle | ConciseTree<THandle>[] | {
83
71
  [key: string]: ConciseTree<THandle>;
@@ -98,70 +86,13 @@ export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema,
98
86
  // @alpha
99
87
  export function createSimpleTreeIndex<TFieldSchema extends ImplicitFieldSchema, TKey extends TreeIndexKey, TValue, TSchema extends TreeNodeSchema>(view: TreeView<TFieldSchema>, indexer: Map<TreeNodeSchema, string>, getValue: (nodes: TreeIndexNodes<NodeFromSchema<TSchema>>) => TValue, isKeyValid: (key: TreeIndexKey) => key is TKey, indexableSchema: readonly TSchema[]): SimpleTreeIndex<TKey, TValue>;
100
88
 
101
- // @public
102
- export type CustomizedSchemaTyping<TSchema, TCustom extends CustomTypes> = TSchema & {
103
- [CustomizedTyping]: TCustom;
104
- };
105
-
106
- // @public
107
- export const CustomizedTyping: unique symbol;
108
-
109
- // @public
110
- export type CustomizedTyping = typeof CustomizedTyping;
111
-
112
- // @alpha @sealed
113
- export interface Customizer<TSchema extends ImplicitAllowedTypes> {
114
- custom<T extends Partial<CustomTypes>>(): CustomizedSchemaTyping<TSchema, {
115
- [Property in keyof CustomTypes]: Property extends keyof T ? T[Property] extends CustomTypes[Property] ? T[Property] : GetTypes<TSchema>[Property] : GetTypes<TSchema>[Property];
116
- }>;
117
- relaxed(): CustomizedSchemaTyping<TSchema, {
118
- input: TreeNodeSchema extends TSchema ? InsertableContent : TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? TSchema[number] extends LazyItem<infer TSchemaInner extends TreeNodeSchema> ? InsertableTypedNode<TSchemaInner, TSchemaInner> : never : never;
119
- readWrite: TreeNodeFromImplicitAllowedTypes<TSchema>;
120
- output: TreeNodeFromImplicitAllowedTypes<TSchema>;
121
- }>;
122
- simplified<T extends TreeNodeFromImplicitAllowedTypes<TSchema>>(): CustomizedSchemaTyping<TSchema, {
123
- input: T;
124
- readWrite: T;
125
- output: T;
126
- }>;
127
- simplifiedUnrestricted<T extends TreeNode | TreeLeafValue>(): CustomizedSchemaTyping<TSchema, {
128
- input: T;
129
- readWrite: T;
130
- output: T;
131
- }>;
132
- strict(): CustomizedSchemaTyping<TSchema, StrictTypes<TSchema>>;
133
- }
134
-
135
- // @alpha
136
- export function customizeSchemaTyping<const TSchema extends ImplicitAllowedTypes>(schema: TSchema): Customizer<TSchema>;
137
-
138
- // @public @sealed
139
- export interface CustomTypes {
140
- readonly input: unknown;
141
- readonly output: TreeLeafValue | TreeNode;
142
- readonly readWrite: TreeLeafValue | TreeNode;
143
- }
144
-
145
- // @public
146
- export type DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
147
-
148
- // @public
149
- export type DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
150
-
151
89
  // @public @sealed
152
90
  interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
153
91
  }
154
92
 
155
- // @public
156
- export type DefaultTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
157
-
158
- // @public
159
- export type DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
160
-
161
93
  // @alpha
162
- export interface EncodeOptions<TCustom> {
94
+ export interface EncodeOptions {
163
95
  readonly useStoredKeys?: boolean;
164
- valueConverter(data: IFluidHandle): TCustom;
165
96
  }
166
97
 
167
98
  // @alpha
@@ -285,15 +216,8 @@ export function getBranch<T extends ImplicitFieldSchema | UnsafeUnknownSchema>(v
285
216
  // @alpha
286
217
  export function getJsonSchema(schema: ImplicitFieldSchema): JsonTreeSchema;
287
218
 
288
- // @public
289
- export type GetTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [
290
- CustomizedSchemaTyping<unknown, infer TCustom>
291
- ] ? TCustom : StrictTypes<TSchema>;
292
-
293
- // @public
294
- export type GetTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [
295
- TSchema
296
- ] extends [CustomizedSchemaTyping<unknown, infer TCustom>] ? TCustom : StrictTypesUnsafe<TSchema>;
219
+ // @alpha
220
+ export type HandleConverter<TCustom> = (data: IFluidHandle) => TCustom;
297
221
 
298
222
  // @alpha
299
223
  export interface ICodecOptions {
@@ -324,7 +248,7 @@ type _InlineTrick = 0;
324
248
  export type Input<T extends never> = T;
325
249
 
326
250
  // @alpha
327
- export type Insertable<TSchema extends ImplicitAllowedTypes> = InsertableTreeNodeFromImplicitAllowedTypes<TSchema>;
251
+ export type Insertable<TSchema extends ImplicitAllowedTypes | UnsafeUnknownSchema> = TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : InsertableContent;
328
252
 
329
253
  // @alpha
330
254
  export type InsertableContent = Unhydrated<TreeNode> | FactoryContent;
@@ -349,7 +273,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
349
273
  };
350
274
 
351
275
  // @public
352
- export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = [TSchemaInput] extends [CustomizedSchemaTyping<unknown, CustomTypes>] ? TSchemaInput : SchemaUnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
276
+ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
353
277
 
354
278
  // @public
355
279
  export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends Unenforced<ImplicitFieldSchema>, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : never;
@@ -367,10 +291,12 @@ LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
367
291
  ] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
368
292
 
369
293
  // @public
370
- export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = GetTypes<TSchema>["input"];
294
+ export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
295
+ TSchema
296
+ ] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
371
297
 
372
298
  // @public
373
- export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = GetTypesUnsafe<TSchema>["input"];
299
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
374
300
 
375
301
  // @public
376
302
  export type InsertableTypedNode<TSchema extends TreeNodeSchema, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderData<T> : never) | (T extends TreeNodeSchema ? Unhydrated<TreeNode extends NodeFromSchema<T> ? never : NodeFromSchema<T>> : never);
@@ -618,39 +544,20 @@ export const noopValidator: JsonValidator;
618
544
 
619
545
  // @public
620
546
  type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
621
- -readonly [Property in keyof T as [
622
- AssignableTreeFieldFromImplicitField<T[Property & string]>
623
- ] extends [never | undefined] ? never : Property]: AssignableTreeFieldFromImplicitField<T[Property & string]>;
624
- } & {
625
- readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property & string]>;
547
+ -readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
626
548
  };
627
549
 
628
550
  // @public
629
551
  type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>> = {
630
- -readonly [Property in keyof T as [T[Property]] extends [
631
- CustomizedSchemaTyping<unknown, {
632
- readonly readWrite: never;
633
- readonly input: unknown;
634
- readonly output: TreeNode | TreeLeafValue;
635
- }>
636
- ] ? never : Property]: AssignableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
637
- } & {
638
- readonly [Property in keyof T as [T[Property]] extends [
639
- CustomizedSchemaTyping<unknown, {
640
- readonly readWrite: never;
641
- readonly input: unknown;
642
- readonly output: TreeNode | TreeLeafValue;
643
- }>
644
- ] ? Property : never]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
552
+ -readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
645
553
  };
646
554
 
647
555
  // @public @deprecated
648
556
  export type Off = Off_2;
649
557
 
650
558
  // @alpha
651
- export interface ParseOptions<TCustom> {
559
+ export interface ParseOptions {
652
560
  readonly useStoredKeys?: boolean;
653
- valueConverter(data: VerboseTree<TCustom>): TreeLeafValue | VerboseTreeNode<TCustom>;
654
561
  }
655
562
 
656
563
  // @alpha
@@ -684,6 +591,15 @@ export type ReadSchema<TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema
684
591
  TSchema
685
592
  ] extends [ImplicitFieldSchema] ? TSchema : ImplicitFieldSchema;
686
593
 
594
+ // @alpha
595
+ export function replaceConciseTreeHandles<T>(tree: ConciseTree, replacer: HandleConverter<T>): ConciseTree<T>;
596
+
597
+ // @alpha
598
+ export function replaceHandles<T>(tree: unknown, replacer: HandleConverter<T>): unknown;
599
+
600
+ // @alpha
601
+ export function replaceVerboseTreeHandles<T>(tree: VerboseTree, replacer: HandleConverter<T>): VerboseTree<T>;
602
+
687
603
  // @public @deprecated
688
604
  export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
689
605
  readonly [P in symbol | string]: P extends K ? T : never;
@@ -816,6 +732,7 @@ export class SchemaFactoryAlpha<out TScope extends string | undefined = string |
816
732
  }, false, T, undefined, TCustomMetadata>;
817
733
  object<const Name extends TName, const T extends RestrictiveStringRecord<ImplicitFieldSchema>, const TCustomMetadata = unknown>(name: Name, fields: T, options?: SchemaFactoryObjectOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T, never, TCustomMetadata>;
818
734
  objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>, const TCustomMetadata = unknown>(name: Name, t: T, options?: SchemaFactoryObjectOptions<TCustomMetadata>): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecordUnsafe<T>, false, T, never, TCustomMetadata>;
735
+ scopedFactory<const T extends TName, TNameInner extends number | string = string>(name: T): SchemaFactoryAlpha<ScopedSchemaName<TScope, T>, TNameInner>;
819
736
  }
820
737
 
821
738
  // @alpha
@@ -837,11 +754,6 @@ export const schemaStatics: {
837
754
  readonly requiredRecursive: <const T_3 extends unknown>(t: T_3, props?: Omit<FieldProps, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T_3>;
838
755
  };
839
756
 
840
- // @public
841
- export type SchemaUnionToIntersection<T> = [T] extends [
842
- CustomizedSchemaTyping<unknown, CustomTypes>
843
- ] ? T : UnionToIntersection<T>;
844
-
845
757
  // @alpha
846
758
  export interface SchemaValidationFunction<Schema extends TSchema> {
847
759
  check(data: unknown): data is Static<Schema>;
@@ -877,26 +789,6 @@ export function singletonSchema<TScope extends string, TName extends string | nu
877
789
  readonly value: TName;
878
790
  }, Record<string, never>, true, Record<string, never>, undefined>;
879
791
 
880
- // @public @sealed
881
- export interface StrictTypes<TSchema extends ImplicitAllowedTypes, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema>, TOutput extends TreeNode | TreeLeafValue = DefaultTreeNodeFromImplicitAllowedTypes<TSchema>> {
882
- // (undocumented)
883
- input: TInput;
884
- // (undocumented)
885
- output: TOutput;
886
- // (undocumented)
887
- readWrite: TInput extends never ? never : TOutput;
888
- }
889
-
890
- // @public
891
- export interface StrictTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>, TOutput = DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>> {
892
- // (undocumented)
893
- input: TInput;
894
- // (undocumented)
895
- output: TOutput;
896
- // (undocumented)
897
- readWrite: TOutput;
898
- }
899
-
900
792
  // @alpha
901
793
  export type TransactionCallbackStatus<TSuccessValue, TFailureValue> = ({
902
794
  rollback?: false;
@@ -937,12 +829,9 @@ export const TreeAlpha: {
937
829
  branch(node: TreeNode): TreeBranch | undefined;
938
830
  create<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: InsertableField<TSchema>): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
939
831
  importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: ConciseTree | undefined): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
940
- importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: Partial<ParseOptions<IFluidHandle>>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
941
- importVerbose<const TSchema extends ImplicitFieldSchema, THandle>(schema: TSchema, data: VerboseTree<THandle> | undefined, options: ParseOptions<THandle>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
942
- exportConcise(node: TreeNode | TreeLeafValue, options?: Partial<EncodeOptions<IFluidHandle>>): ConciseTree;
943
- exportConcise<THandle>(node: TreeNode | TreeLeafValue, options: EncodeOptions<THandle>): ConciseTree<THandle>;
944
- exportVerbose(node: TreeNode | TreeLeafValue, options?: Partial<EncodeOptions<IFluidHandle>>): VerboseTree;
945
- exportVerbose<T>(node: TreeNode | TreeLeafValue, options: EncodeOptions<T>): VerboseTree<T>;
832
+ importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: Partial<ParseOptions>): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
833
+ exportConcise(node: TreeNode | TreeLeafValue, options?: EncodeOptions): ConciseTree;
834
+ exportVerbose(node: TreeNode | TreeLeafValue, options?: EncodeOptions): VerboseTree;
946
835
  exportCompressed(tree: TreeNode | TreeLeafValue, options: {
947
836
  oldestCompatibleClient: FluidClientVersion;
948
837
  idCompressor?: IIdCompressor;
@@ -1006,10 +895,9 @@ export interface TreeBranch extends IDisposable {
1006
895
  }
1007
896
 
1008
897
  // @alpha @sealed
1009
- export interface TreeBranchEvents {
898
+ export interface TreeBranchEvents extends Omit<TreeViewEvents, "commitApplied"> {
1010
899
  changed(data: CommitMetadata, getRevertible?: RevertibleAlphaFactory): void;
1011
900
  commitApplied(data: CommitMetadata, getRevertible?: RevertibleAlphaFactory): void;
1012
- schemaChanged(): void;
1013
901
  }
1014
902
 
1015
903
  // @alpha @sealed
@@ -1092,10 +980,10 @@ export interface TreeNodeApi {
1092
980
  }
1093
981
 
1094
982
  // @public
1095
- export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = GetTypes<TSchema>["output"];
983
+ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
1096
984
 
1097
985
  // @public
1098
- type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = GetTypesUnsafe<TSchema>["output"];
986
+ type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
1099
987
 
1100
988
  // @public @sealed
1101
989
  export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TCustomMetadata = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata>;
@@ -17,22 +17,11 @@ type ApplyKind<T, Kind extends FieldKind> = {
17
17
  [FieldKind.Identifier]: T;
18
18
  }[Kind];
19
19
 
20
- // @public
21
- export type ApplyKindAssignment<T, Kind extends FieldKind> = [Kind] extends [
22
- FieldKind.Required
23
- ] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : never;
24
-
25
20
  // @public
26
21
  type ApplyKindInput<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = [
27
22
  Kind
28
23
  ] extends [FieldKind.Required] ? T : [Kind] extends [FieldKind.Optional] ? T | undefined : [Kind] extends [FieldKind.Identifier] ? DefaultsAreOptional extends true ? T | undefined : T : never;
29
24
 
30
- // @public
31
- export type AssignableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = SchemaUnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindAssignment<GetTypes<Types>["readWrite"], Kind> : [TSchema] extends [ImplicitAllowedTypes] ? GetTypes<TSchema>["readWrite"] : never;
32
-
33
- // @public
34
- export type AssignableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKindAssignment<GetTypesUnsafe<Types>["readWrite"], Kind> : GetTypesUnsafe<TSchema>["readWrite"];
35
-
36
25
  // @public
37
26
  export enum CommitKind {
38
27
  Default = 0,
@@ -46,40 +35,10 @@ export interface CommitMetadata {
46
35
  readonly kind: CommitKind;
47
36
  }
48
37
 
49
- // @public
50
- export type CustomizedSchemaTyping<TSchema, TCustom extends CustomTypes> = TSchema & {
51
- [CustomizedTyping]: TCustom;
52
- };
53
-
54
- // @public
55
- export const CustomizedTyping: unique symbol;
56
-
57
- // @public
58
- export type CustomizedTyping = typeof CustomizedTyping;
59
-
60
- // @public @sealed
61
- export interface CustomTypes {
62
- readonly input: unknown;
63
- readonly output: TreeLeafValue | TreeNode;
64
- readonly readWrite: TreeLeafValue | TreeNode;
65
- }
66
-
67
- // @public
68
- export type DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
69
-
70
- // @public
71
- export type DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
72
-
73
38
  // @public @sealed
74
39
  interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
75
40
  }
76
41
 
77
- // @public
78
- export type DefaultTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
79
-
80
- // @public
81
- export type DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
82
-
83
42
  // @public
84
43
  type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
85
44
 
@@ -138,16 +97,6 @@ type FlexList<Item = unknown> = readonly LazyItem<Item>[];
138
97
  // @public
139
98
  type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
140
99
 
141
- // @public
142
- export type GetTypes<TSchema extends ImplicitAllowedTypes> = [TSchema] extends [
143
- CustomizedSchemaTyping<unknown, infer TCustom>
144
- ] ? TCustom : StrictTypes<TSchema>;
145
-
146
- // @public
147
- export type GetTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [
148
- TSchema
149
- ] extends [CustomizedSchemaTyping<unknown, infer TCustom>] ? TCustom : StrictTypesUnsafe<TSchema>;
150
-
151
100
  // @public
152
101
  export type ImplicitAllowedTypes = AllowedTypes | TreeNodeSchema;
153
102
 
@@ -175,7 +124,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
175
124
  };
176
125
 
177
126
  // @public
178
- export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = [TSchemaInput] extends [CustomizedSchemaTyping<unknown, CustomTypes>] ? TSchemaInput : SchemaUnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
127
+ export type InsertableTreeFieldFromImplicitField<TSchemaInput extends ImplicitFieldSchema, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchema<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
179
128
 
180
129
  // @public
181
130
  export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchemaInput extends Unenforced<ImplicitFieldSchema>, TSchema = UnionToIntersection<TSchemaInput>> = [TSchema] extends [FieldSchemaUnsafe<infer Kind, infer Types>] ? ApplyKindInput<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : [TSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : never;
@@ -193,10 +142,12 @@ LazyItem<infer TSchema extends TreeNodeSchemaUnsafe>,
193
142
  ] ? InsertableTypedNodeUnsafe<TSchema> | InsertableTreeNodeFromAllowedTypesUnsafe<Rest> : never;
194
143
 
195
144
  // @public
196
- export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = GetTypes<TSchema>["input"];
145
+ export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes> = [
146
+ TSchema
147
+ ] extends [TreeNodeSchema] ? InsertableTypedNode<TSchema> : [TSchema] extends [AllowedTypes] ? InsertableTreeNodeFromAllowedTypes<TSchema> : never;
197
148
 
198
149
  // @public
199
- export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = GetTypesUnsafe<TSchema>["input"];
150
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = [TSchema] extends [TreeNodeSchemaUnsafe] ? InsertableTypedNodeUnsafe<TSchema> : [TSchema] extends [AllowedTypesUnsafe] ? InsertableTreeNodeFromAllowedTypesUnsafe<TSchema> : never;
200
151
 
201
152
  // @public
202
153
  export type InsertableTypedNode<TSchema extends TreeNodeSchema, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderData<T> : never) | (T extends TreeNodeSchema ? Unhydrated<TreeNode extends NodeFromSchema<T> ? never : NodeFromSchema<T>> : never);
@@ -331,30 +282,12 @@ export interface NodeSchemaOptions<out TCustomMetadata = unknown> {
331
282
 
332
283
  // @public
333
284
  type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> = {
334
- -readonly [Property in keyof T as [
335
- AssignableTreeFieldFromImplicitField<T[Property & string]>
336
- ] extends [never | undefined] ? never : Property]: AssignableTreeFieldFromImplicitField<T[Property & string]>;
337
- } & {
338
- readonly [Property in keyof T]: TreeFieldFromImplicitField<T[Property & string]>;
285
+ -readonly [Property in keyof T]: Property extends string ? TreeFieldFromImplicitField<T[Property]> : unknown;
339
286
  };
340
287
 
341
288
  // @public
342
289
  type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<ImplicitFieldSchema>>> = {
343
- -readonly [Property in keyof T as [T[Property]] extends [
344
- CustomizedSchemaTyping<unknown, {
345
- readonly readWrite: never;
346
- readonly input: unknown;
347
- readonly output: TreeNode | TreeLeafValue;
348
- }>
349
- ] ? never : Property]: AssignableTreeFieldFromImplicitFieldUnsafe<T[Property]>;
350
- } & {
351
- readonly [Property in keyof T as [T[Property]] extends [
352
- CustomizedSchemaTyping<unknown, {
353
- readonly readWrite: never;
354
- readonly input: unknown;
355
- readonly output: TreeNode | TreeLeafValue;
356
- }>
357
- ] ? Property : never]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
290
+ -readonly [Property in keyof T]: TreeFieldFromImplicitFieldUnsafe<T[Property]>;
358
291
  };
359
292
 
360
293
  // @public @deprecated
@@ -496,34 +429,9 @@ export const schemaStatics: {
496
429
  readonly requiredRecursive: <const T_3 extends unknown>(t: T_3, props?: Omit<FieldProps, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T_3>;
497
430
  };
498
431
 
499
- // @public
500
- export type SchemaUnionToIntersection<T> = [T] extends [
501
- CustomizedSchemaTyping<unknown, CustomTypes>
502
- ] ? T : UnionToIntersection<T>;
503
-
504
432
  // @public
505
433
  type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
506
434
 
507
- // @public @sealed
508
- export interface StrictTypes<TSchema extends ImplicitAllowedTypes, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypes<TSchema>, TOutput extends TreeNode | TreeLeafValue = DefaultTreeNodeFromImplicitAllowedTypes<TSchema>> {
509
- // (undocumented)
510
- input: TInput;
511
- // (undocumented)
512
- output: TOutput;
513
- // (undocumented)
514
- readWrite: TInput extends never ? never : TOutput;
515
- }
516
-
517
- // @public
518
- export interface StrictTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>, TInput = DefaultInsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>, TOutput = DefaultTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>> {
519
- // (undocumented)
520
- input: TInput;
521
- // (undocumented)
522
- output: TOutput;
523
- // (undocumented)
524
- readWrite: TOutput;
525
- }
526
-
527
435
  // @public
528
436
  export type TransactionConstraint = NodeInDocumentConstraint;
529
437
 
@@ -631,10 +539,10 @@ export interface TreeNodeApi {
631
539
  }
632
540
 
633
541
  // @public
634
- export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = GetTypes<TSchema>["output"];
542
+ export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
635
543
 
636
544
  // @public
637
- type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = GetTypesUnsafe<TSchema>["output"];
545
+ type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
638
546
 
639
547
  // @public @sealed
640
548
  export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown, TCustomMetadata = unknown> = (TNode extends TreeNode ? TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata> : never) | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info, never, TCustomMetadata>;