@fluidframework/tree 2.1.0-276985 → 2.1.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 (583) hide show
  1. package/.eslintrc.cjs +7 -0
  2. package/.vscode/Tree.code-workspace +9 -2
  3. package/CHANGELOG.md +38 -0
  4. package/README.md +55 -12
  5. package/api-report/tree.alpha.api.md +2 -1
  6. package/api-report/tree.beta.api.md +2 -1
  7. package/api-report/tree.public.api.md +2 -1
  8. package/beta.d.ts +1 -1
  9. package/dist/beta.d.ts +1 -1
  10. package/dist/core/forest/editableForest.d.ts +6 -3
  11. package/dist/core/forest/editableForest.d.ts.map +1 -1
  12. package/dist/core/forest/editableForest.js +16 -4
  13. package/dist/core/forest/editableForest.js.map +1 -1
  14. package/dist/core/index.d.ts +1 -1
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +3 -1
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/rebase/index.d.ts +1 -1
  19. package/dist/core/rebase/index.d.ts.map +1 -1
  20. package/dist/core/rebase/index.js +3 -1
  21. package/dist/core/rebase/index.js.map +1 -1
  22. package/dist/core/rebase/types.d.ts +2 -0
  23. package/dist/core/rebase/types.d.ts.map +1 -1
  24. package/dist/core/rebase/types.js +9 -1
  25. package/dist/core/rebase/types.js.map +1 -1
  26. package/dist/core/tree/anchorSet.d.ts +1 -0
  27. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  28. package/dist/core/tree/anchorSet.js +13 -0
  29. package/dist/core/tree/anchorSet.js.map +1 -1
  30. package/dist/core/tree/detachedFieldIndex.d.ts +48 -11
  31. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  32. package/dist/core/tree/detachedFieldIndex.js +144 -20
  33. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  34. package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  35. package/dist/core/tree/detachedFieldIndexCodec.js +13 -4
  36. package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
  37. package/dist/core/tree/detachedFieldIndexFormat.d.ts +1 -1
  38. package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  39. package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -1
  40. package/dist/core/tree/detachedFieldIndexTypes.d.ts +39 -4
  41. package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  42. package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
  43. package/dist/core/tree/index.d.ts +2 -1
  44. package/dist/core/tree/index.d.ts.map +1 -1
  45. package/dist/core/tree/index.js.map +1 -1
  46. package/dist/core/tree/visitDelta.d.ts +3 -1
  47. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  48. package/dist/core/tree/visitDelta.js +31 -15
  49. package/dist/core/tree/visitDelta.js.map +1 -1
  50. package/dist/core/tree/visitorUtils.d.ts +3 -3
  51. package/dist/core/tree/visitorUtils.d.ts.map +1 -1
  52. package/dist/core/tree/visitorUtils.js +4 -4
  53. package/dist/core/tree/visitorUtils.js.map +1 -1
  54. package/dist/events/events.d.ts +4 -1
  55. package/dist/events/events.d.ts.map +1 -1
  56. package/dist/events/events.js.map +1 -1
  57. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +1 -1
  58. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  59. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  60. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +1 -0
  61. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  62. package/dist/feature-libraries/editableTreeBinder.js +1 -1
  63. package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
  64. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +1 -10
  65. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  66. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +0 -72
  67. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  68. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -51
  69. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  70. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +0 -2
  71. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  72. package/dist/feature-libraries/flex-tree/index.d.ts +3 -2
  73. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  74. package/dist/feature-libraries/flex-tree/index.js +5 -1
  75. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  76. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +1 -2
  77. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  78. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  79. package/dist/feature-libraries/flex-tree/lazyField.d.ts +1 -6
  80. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  81. package/dist/feature-libraries/flex-tree/lazyField.js +11 -32
  82. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  83. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +1 -5
  84. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  85. package/dist/feature-libraries/flex-tree/lazyNode.js +0 -30
  86. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  87. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  88. package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -1
  89. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  90. package/dist/feature-libraries/index.d.ts +3 -3
  91. package/dist/feature-libraries/index.d.ts.map +1 -1
  92. package/dist/feature-libraries/index.js +6 -3
  93. package/dist/feature-libraries/index.js.map +1 -1
  94. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +11 -0
  95. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  96. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  97. package/dist/feature-libraries/modular-schema/discrepancies.d.ts +96 -0
  98. package/dist/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -0
  99. package/dist/feature-libraries/modular-schema/discrepancies.js +264 -0
  100. package/dist/feature-libraries/modular-schema/discrepancies.js.map +1 -0
  101. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -2
  102. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  103. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  104. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  105. package/dist/feature-libraries/modular-schema/genericFieldKind.js +3 -0
  106. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  107. package/dist/feature-libraries/modular-schema/index.d.ts +2 -1
  108. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  109. package/dist/feature-libraries/modular-schema/index.js +3 -1
  110. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  111. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  112. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +42 -26
  113. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  114. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +51 -2
  115. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  116. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +827 -245
  117. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  118. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  119. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +2 -0
  120. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  121. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +44 -1
  122. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  123. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  124. package/dist/feature-libraries/node-key/index.d.ts +0 -1
  125. package/dist/feature-libraries/node-key/index.d.ts.map +1 -1
  126. package/dist/feature-libraries/node-key/index.js +1 -3
  127. package/dist/feature-libraries/node-key/index.js.map +1 -1
  128. package/dist/feature-libraries/object-forest/objectForest.d.ts +3 -2
  129. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  130. package/dist/feature-libraries/object-forest/objectForest.js +5 -4
  131. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  132. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  133. package/dist/feature-libraries/optional-field/optionalField.js +1 -0
  134. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  135. package/dist/feature-libraries/sequence-field/index.d.ts +1 -1
  136. package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -1
  137. package/dist/feature-libraries/sequence-field/index.js +1 -2
  138. package/dist/feature-libraries/sequence-field/index.js.map +1 -1
  139. package/dist/feature-libraries/sequence-field/invert.js +1 -1
  140. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  141. package/dist/feature-libraries/sequence-field/rebase.js +6 -1
  142. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  143. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  144. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +1 -0
  145. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  146. package/dist/feature-libraries/sequence-field/utils.d.ts +2 -17
  147. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  148. package/dist/feature-libraries/sequence-field/utils.js +31 -39
  149. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  150. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +1 -0
  151. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  152. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +2 -0
  153. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  154. package/dist/index.d.ts +1 -1
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js.map +1 -1
  157. package/dist/packageVersion.d.ts +1 -1
  158. package/dist/packageVersion.d.ts.map +1 -1
  159. package/dist/packageVersion.js +1 -1
  160. package/dist/packageVersion.js.map +1 -1
  161. package/dist/public.d.ts +1 -1
  162. package/dist/shared-tree/schematizingTreeView.d.ts +4 -2
  163. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  164. package/dist/shared-tree/schematizingTreeView.js +240 -184
  165. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  166. package/dist/shared-tree/sharedTree.d.ts +5 -1
  167. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  168. package/dist/shared-tree/sharedTree.js +157 -90
  169. package/dist/shared-tree/sharedTree.js.map +1 -1
  170. package/dist/shared-tree/sharedTreeChangeEnricher.js +1 -1
  171. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  172. package/dist/shared-tree/treeApi.js +1 -1
  173. package/dist/shared-tree/treeApi.js.map +1 -1
  174. package/dist/shared-tree/treeCheckout.d.ts +10 -1
  175. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  176. package/dist/shared-tree/treeCheckout.js +47 -3
  177. package/dist/shared-tree/treeCheckout.js.map +1 -1
  178. package/dist/shared-tree/treeView.d.ts.map +1 -1
  179. package/dist/shared-tree/treeView.js +7 -3
  180. package/dist/shared-tree/treeView.js.map +1 -1
  181. package/dist/shared-tree-core/branch.d.ts +6 -0
  182. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  183. package/dist/shared-tree-core/branch.js +3 -0
  184. package/dist/shared-tree-core/branch.js.map +1 -1
  185. package/dist/shared-tree-core/sharedTreeCore.d.ts +8 -6
  186. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  187. package/dist/shared-tree-core/sharedTreeCore.js +271 -209
  188. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  189. package/dist/simple-tree/arrayNode.d.ts +4 -0
  190. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  191. package/dist/simple-tree/arrayNode.js +36 -19
  192. package/dist/simple-tree/arrayNode.js.map +1 -1
  193. package/dist/simple-tree/index.d.ts +3 -3
  194. package/dist/simple-tree/index.d.ts.map +1 -1
  195. package/dist/simple-tree/index.js +2 -1
  196. package/dist/simple-tree/index.js.map +1 -1
  197. package/dist/simple-tree/leafNodeSchema.d.ts +22 -1
  198. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  199. package/dist/simple-tree/leafNodeSchema.js +2 -1
  200. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  201. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  202. package/dist/simple-tree/mapNode.js.map +1 -1
  203. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  204. package/dist/simple-tree/objectNode.js +2 -1
  205. package/dist/simple-tree/objectNode.js.map +1 -1
  206. package/dist/simple-tree/proxies.d.ts.map +1 -1
  207. package/dist/simple-tree/proxies.js +9 -25
  208. package/dist/simple-tree/proxies.js.map +1 -1
  209. package/dist/simple-tree/proxyBinding.d.ts +4 -0
  210. package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
  211. package/dist/simple-tree/proxyBinding.js +23 -1
  212. package/dist/simple-tree/proxyBinding.js.map +1 -1
  213. package/dist/simple-tree/schemaFactory.d.ts +16 -1
  214. package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
  215. package/dist/simple-tree/schemaFactory.js +32 -4
  216. package/dist/simple-tree/schemaFactory.js.map +1 -1
  217. package/dist/simple-tree/schemaTypes.d.ts +36 -1
  218. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  219. package/dist/simple-tree/schemaTypes.js.map +1 -1
  220. package/dist/simple-tree/toFlexSchema.d.ts +2 -2
  221. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  222. package/dist/simple-tree/toFlexSchema.js +3 -2
  223. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  224. package/dist/simple-tree/tree.d.ts +4 -1
  225. package/dist/simple-tree/tree.d.ts.map +1 -1
  226. package/dist/simple-tree/tree.js +48 -1
  227. package/dist/simple-tree/tree.js.map +1 -1
  228. package/dist/simple-tree/treeNodeApi.d.ts +2 -75
  229. package/dist/simple-tree/treeNodeApi.d.ts.map +1 -1
  230. package/dist/simple-tree/treeNodeApi.js +17 -25
  231. package/dist/simple-tree/treeNodeApi.js.map +1 -1
  232. package/dist/simple-tree/treeNodeKernel.d.ts +26 -0
  233. package/dist/simple-tree/treeNodeKernel.d.ts.map +1 -0
  234. package/dist/simple-tree/treeNodeKernel.js +83 -0
  235. package/dist/simple-tree/treeNodeKernel.js.map +1 -0
  236. package/dist/simple-tree/types.d.ts +95 -3
  237. package/dist/simple-tree/types.d.ts.map +1 -1
  238. package/dist/simple-tree/types.js +120 -21
  239. package/dist/simple-tree/types.js.map +1 -1
  240. package/dist/util/breakable.d.ts +83 -0
  241. package/dist/util/breakable.d.ts.map +1 -0
  242. package/dist/util/breakable.js +178 -0
  243. package/dist/util/breakable.js.map +1 -0
  244. package/dist/util/index.d.ts +3 -2
  245. package/dist/util/index.d.ts.map +1 -1
  246. package/dist/util/index.js +9 -2
  247. package/dist/util/index.js.map +1 -1
  248. package/dist/util/nestedMap.d.ts +17 -3
  249. package/dist/util/nestedMap.d.ts.map +1 -1
  250. package/dist/util/nestedMap.js +21 -1
  251. package/dist/util/nestedMap.js.map +1 -1
  252. package/dist/util/utils.d.ts +7 -0
  253. package/dist/util/utils.d.ts.map +1 -1
  254. package/dist/util/utils.js +15 -1
  255. package/dist/util/utils.js.map +1 -1
  256. package/internal.d.ts +1 -1
  257. package/lib/beta.d.ts +1 -1
  258. package/lib/core/forest/editableForest.d.ts +6 -3
  259. package/lib/core/forest/editableForest.d.ts.map +1 -1
  260. package/lib/core/forest/editableForest.js +17 -5
  261. package/lib/core/forest/editableForest.js.map +1 -1
  262. package/lib/core/index.d.ts +1 -1
  263. package/lib/core/index.d.ts.map +1 -1
  264. package/lib/core/index.js +1 -1
  265. package/lib/core/index.js.map +1 -1
  266. package/lib/core/rebase/index.d.ts +1 -1
  267. package/lib/core/rebase/index.d.ts.map +1 -1
  268. package/lib/core/rebase/index.js +1 -1
  269. package/lib/core/rebase/index.js.map +1 -1
  270. package/lib/core/rebase/types.d.ts +2 -0
  271. package/lib/core/rebase/types.d.ts.map +1 -1
  272. package/lib/core/rebase/types.js +7 -1
  273. package/lib/core/rebase/types.js.map +1 -1
  274. package/lib/core/tree/anchorSet.d.ts +1 -0
  275. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  276. package/lib/core/tree/anchorSet.js +13 -0
  277. package/lib/core/tree/anchorSet.js.map +1 -1
  278. package/lib/core/tree/detachedFieldIndex.d.ts +48 -11
  279. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  280. package/lib/core/tree/detachedFieldIndex.js +145 -21
  281. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  282. package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  283. package/lib/core/tree/detachedFieldIndexCodec.js +13 -4
  284. package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
  285. package/lib/core/tree/detachedFieldIndexFormat.d.ts +1 -1
  286. package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  287. package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -1
  288. package/lib/core/tree/detachedFieldIndexTypes.d.ts +39 -4
  289. package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  290. package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
  291. package/lib/core/tree/index.d.ts +2 -1
  292. package/lib/core/tree/index.d.ts.map +1 -1
  293. package/lib/core/tree/index.js.map +1 -1
  294. package/lib/core/tree/visitDelta.d.ts +3 -1
  295. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  296. package/lib/core/tree/visitDelta.js +31 -15
  297. package/lib/core/tree/visitDelta.js.map +1 -1
  298. package/lib/core/tree/visitorUtils.d.ts +3 -3
  299. package/lib/core/tree/visitorUtils.d.ts.map +1 -1
  300. package/lib/core/tree/visitorUtils.js +4 -4
  301. package/lib/core/tree/visitorUtils.js.map +1 -1
  302. package/lib/events/events.d.ts +4 -1
  303. package/lib/events/events.d.ts.map +1 -1
  304. package/lib/events/events.js.map +1 -1
  305. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +1 -1
  306. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  307. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  308. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +1 -0
  309. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  310. package/lib/feature-libraries/editableTreeBinder.js +1 -1
  311. package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
  312. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +1 -10
  313. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  314. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +2 -74
  315. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  316. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +1 -51
  317. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  318. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +0 -2
  319. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  320. package/lib/feature-libraries/flex-tree/index.d.ts +3 -2
  321. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  322. package/lib/feature-libraries/flex-tree/index.js +2 -1
  323. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  324. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +1 -2
  325. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  326. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  327. package/lib/feature-libraries/flex-tree/lazyField.d.ts +1 -6
  328. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  329. package/lib/feature-libraries/flex-tree/lazyField.js +13 -34
  330. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  331. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +1 -5
  332. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  333. package/lib/feature-libraries/flex-tree/lazyNode.js +3 -33
  334. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  335. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  336. package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -1
  337. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  338. package/lib/feature-libraries/index.d.ts +3 -3
  339. package/lib/feature-libraries/index.d.ts.map +1 -1
  340. package/lib/feature-libraries/index.js +3 -3
  341. package/lib/feature-libraries/index.js.map +1 -1
  342. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +11 -0
  343. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  344. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  345. package/lib/feature-libraries/modular-schema/discrepancies.d.ts +96 -0
  346. package/lib/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -0
  347. package/lib/feature-libraries/modular-schema/discrepancies.js +260 -0
  348. package/lib/feature-libraries/modular-schema/discrepancies.js.map +1 -0
  349. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -2
  350. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  351. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  352. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  353. package/lib/feature-libraries/modular-schema/genericFieldKind.js +3 -0
  354. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  355. package/lib/feature-libraries/modular-schema/index.d.ts +2 -1
  356. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  357. package/lib/feature-libraries/modular-schema/index.js +1 -0
  358. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  359. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  360. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +42 -26
  361. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  362. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +51 -2
  363. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  364. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +826 -247
  365. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  366. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  367. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +2 -0
  368. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  369. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +44 -1
  370. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  371. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  372. package/lib/feature-libraries/node-key/index.d.ts +0 -1
  373. package/lib/feature-libraries/node-key/index.d.ts.map +1 -1
  374. package/lib/feature-libraries/node-key/index.js +0 -1
  375. package/lib/feature-libraries/node-key/index.js.map +1 -1
  376. package/lib/feature-libraries/object-forest/objectForest.d.ts +3 -2
  377. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  378. package/lib/feature-libraries/object-forest/objectForest.js +5 -4
  379. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  380. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  381. package/lib/feature-libraries/optional-field/optionalField.js +1 -0
  382. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  383. package/lib/feature-libraries/sequence-field/index.d.ts +1 -1
  384. package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -1
  385. package/lib/feature-libraries/sequence-field/index.js +1 -1
  386. package/lib/feature-libraries/sequence-field/index.js.map +1 -1
  387. package/lib/feature-libraries/sequence-field/invert.js +1 -1
  388. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  389. package/lib/feature-libraries/sequence-field/rebase.js +6 -1
  390. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  391. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  392. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +2 -1
  393. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  394. package/lib/feature-libraries/sequence-field/utils.d.ts +2 -17
  395. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  396. package/lib/feature-libraries/sequence-field/utils.js +31 -39
  397. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  398. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +1 -0
  399. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  400. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +4 -2
  401. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  402. package/lib/index.d.ts +1 -1
  403. package/lib/index.d.ts.map +1 -1
  404. package/lib/index.js.map +1 -1
  405. package/lib/packageVersion.d.ts +1 -1
  406. package/lib/packageVersion.d.ts.map +1 -1
  407. package/lib/packageVersion.js +1 -1
  408. package/lib/packageVersion.js.map +1 -1
  409. package/lib/public.d.ts +1 -1
  410. package/lib/shared-tree/schematizingTreeView.d.ts +4 -2
  411. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  412. package/lib/shared-tree/schematizingTreeView.js +242 -185
  413. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  414. package/lib/shared-tree/sharedTree.d.ts +5 -1
  415. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  416. package/lib/shared-tree/sharedTree.js +158 -90
  417. package/lib/shared-tree/sharedTree.js.map +1 -1
  418. package/lib/shared-tree/sharedTreeChangeEnricher.js +1 -1
  419. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  420. package/lib/shared-tree/treeApi.js +1 -1
  421. package/lib/shared-tree/treeApi.js.map +1 -1
  422. package/lib/shared-tree/treeCheckout.d.ts +10 -1
  423. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  424. package/lib/shared-tree/treeCheckout.js +47 -3
  425. package/lib/shared-tree/treeCheckout.js.map +1 -1
  426. package/lib/shared-tree/treeView.d.ts.map +1 -1
  427. package/lib/shared-tree/treeView.js +4 -0
  428. package/lib/shared-tree/treeView.js.map +1 -1
  429. package/lib/shared-tree-core/branch.d.ts +6 -0
  430. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  431. package/lib/shared-tree-core/branch.js +3 -0
  432. package/lib/shared-tree-core/branch.js.map +1 -1
  433. package/lib/shared-tree-core/sharedTreeCore.d.ts +8 -6
  434. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  435. package/lib/shared-tree-core/sharedTreeCore.js +273 -210
  436. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  437. package/lib/simple-tree/arrayNode.d.ts +4 -0
  438. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  439. package/lib/simple-tree/arrayNode.js +39 -22
  440. package/lib/simple-tree/arrayNode.js.map +1 -1
  441. package/lib/simple-tree/index.d.ts +3 -3
  442. package/lib/simple-tree/index.d.ts.map +1 -1
  443. package/lib/simple-tree/index.js +1 -1
  444. package/lib/simple-tree/index.js.map +1 -1
  445. package/lib/simple-tree/leafNodeSchema.d.ts +22 -1
  446. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  447. package/lib/simple-tree/leafNodeSchema.js +1 -1
  448. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  449. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  450. package/lib/simple-tree/mapNode.js.map +1 -1
  451. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  452. package/lib/simple-tree/objectNode.js +3 -2
  453. package/lib/simple-tree/objectNode.js.map +1 -1
  454. package/lib/simple-tree/proxies.d.ts.map +1 -1
  455. package/lib/simple-tree/proxies.js +9 -25
  456. package/lib/simple-tree/proxies.js.map +1 -1
  457. package/lib/simple-tree/proxyBinding.d.ts +4 -0
  458. package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
  459. package/lib/simple-tree/proxyBinding.js +19 -0
  460. package/lib/simple-tree/proxyBinding.js.map +1 -1
  461. package/lib/simple-tree/schemaFactory.d.ts +16 -1
  462. package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
  463. package/lib/simple-tree/schemaFactory.js +30 -3
  464. package/lib/simple-tree/schemaFactory.js.map +1 -1
  465. package/lib/simple-tree/schemaTypes.d.ts +36 -1
  466. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  467. package/lib/simple-tree/schemaTypes.js.map +1 -1
  468. package/lib/simple-tree/toFlexSchema.d.ts +2 -2
  469. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  470. package/lib/simple-tree/toFlexSchema.js +3 -2
  471. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  472. package/lib/simple-tree/tree.d.ts +4 -1
  473. package/lib/simple-tree/tree.d.ts.map +1 -1
  474. package/lib/simple-tree/tree.js +44 -0
  475. package/lib/simple-tree/tree.js.map +1 -1
  476. package/lib/simple-tree/treeNodeApi.d.ts +2 -75
  477. package/lib/simple-tree/treeNodeApi.d.ts.map +1 -1
  478. package/lib/simple-tree/treeNodeApi.js +20 -28
  479. package/lib/simple-tree/treeNodeApi.js.map +1 -1
  480. package/lib/simple-tree/treeNodeKernel.d.ts +26 -0
  481. package/lib/simple-tree/treeNodeKernel.d.ts.map +1 -0
  482. package/lib/simple-tree/treeNodeKernel.js +79 -0
  483. package/lib/simple-tree/treeNodeKernel.js.map +1 -0
  484. package/lib/simple-tree/types.d.ts +95 -3
  485. package/lib/simple-tree/types.d.ts.map +1 -1
  486. package/lib/simple-tree/types.js +121 -22
  487. package/lib/simple-tree/types.js.map +1 -1
  488. package/lib/util/breakable.d.ts +83 -0
  489. package/lib/util/breakable.d.ts.map +1 -0
  490. package/lib/util/breakable.js +171 -0
  491. package/lib/util/breakable.js.map +1 -0
  492. package/lib/util/index.d.ts +3 -2
  493. package/lib/util/index.d.ts.map +1 -1
  494. package/lib/util/index.js +3 -2
  495. package/lib/util/index.js.map +1 -1
  496. package/lib/util/nestedMap.d.ts +17 -3
  497. package/lib/util/nestedMap.d.ts.map +1 -1
  498. package/lib/util/nestedMap.js +19 -0
  499. package/lib/util/nestedMap.js.map +1 -1
  500. package/lib/util/utils.d.ts +7 -0
  501. package/lib/util/utils.d.ts.map +1 -1
  502. package/lib/util/utils.js +13 -0
  503. package/lib/util/utils.js.map +1 -1
  504. package/package.json +29 -27
  505. package/src/core/forest/editableForest.ts +25 -4
  506. package/src/core/index.ts +2 -0
  507. package/src/core/rebase/index.ts +2 -0
  508. package/src/core/rebase/types.ts +17 -0
  509. package/src/core/tree/anchorSet.ts +14 -0
  510. package/src/core/tree/detachedFieldIndex.ts +217 -35
  511. package/src/core/tree/detachedFieldIndexCodec.ts +17 -8
  512. package/src/core/tree/detachedFieldIndexFormat.ts +1 -1
  513. package/src/core/tree/detachedFieldIndexTypes.ts +41 -5
  514. package/src/core/tree/index.ts +2 -1
  515. package/src/core/tree/visitDelta.ts +58 -16
  516. package/src/core/tree/visitorUtils.ts +7 -4
  517. package/src/events/events.ts +4 -2
  518. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +1 -1
  519. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +1 -0
  520. package/src/feature-libraries/editableTreeBinder.ts +1 -1
  521. package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +1 -95
  522. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +0 -62
  523. package/src/feature-libraries/flex-tree/index.ts +7 -2
  524. package/src/feature-libraries/flex-tree/lazyEntity.ts +0 -3
  525. package/src/feature-libraries/flex-tree/lazyField.ts +15 -47
  526. package/src/feature-libraries/flex-tree/lazyNode.ts +1 -48
  527. package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -0
  528. package/src/feature-libraries/index.ts +4 -2
  529. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +18 -0
  530. package/src/feature-libraries/modular-schema/discrepancies.ts +395 -0
  531. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +10 -2
  532. package/src/feature-libraries/modular-schema/genericFieldKind.ts +3 -0
  533. package/src/feature-libraries/modular-schema/index.ts +2 -0
  534. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +81 -35
  535. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +1521 -444
  536. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +2 -0
  537. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +51 -0
  538. package/src/feature-libraries/node-key/index.ts +0 -1
  539. package/src/feature-libraries/object-forest/objectForest.ts +7 -3
  540. package/src/feature-libraries/optional-field/optionalField.ts +1 -0
  541. package/src/feature-libraries/sequence-field/index.ts +0 -2
  542. package/src/feature-libraries/sequence-field/invert.ts +1 -1
  543. package/src/feature-libraries/sequence-field/rebase.ts +7 -1
  544. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +2 -1
  545. package/src/feature-libraries/sequence-field/utils.ts +37 -85
  546. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +10 -0
  547. package/src/index.ts +0 -1
  548. package/src/packageVersion.ts +1 -1
  549. package/src/shared-tree/schematizingTreeView.ts +6 -2
  550. package/src/shared-tree/sharedTree.ts +12 -1
  551. package/src/shared-tree/sharedTreeChangeEnricher.ts +1 -1
  552. package/src/shared-tree/treeApi.ts +1 -1
  553. package/src/shared-tree/treeCheckout.ts +60 -5
  554. package/src/shared-tree/treeView.ts +5 -0
  555. package/src/shared-tree-core/branch.ts +10 -0
  556. package/src/shared-tree-core/sharedTreeCore.ts +25 -6
  557. package/src/simple-tree/arrayNode.ts +50 -23
  558. package/src/simple-tree/index.ts +3 -3
  559. package/src/simple-tree/leafNodeSchema.ts +1 -1
  560. package/src/simple-tree/mapNode.ts +2 -2
  561. package/src/simple-tree/objectNode.ts +9 -3
  562. package/src/simple-tree/proxies.ts +10 -33
  563. package/src/simple-tree/proxyBinding.ts +23 -0
  564. package/src/simple-tree/schemaFactory.ts +37 -2
  565. package/src/simple-tree/schemaTypes.ts +36 -1
  566. package/src/simple-tree/toFlexSchema.ts +5 -4
  567. package/src/simple-tree/tree.ts +68 -4
  568. package/src/simple-tree/treeNodeApi.ts +29 -111
  569. package/src/simple-tree/treeNodeKernel.ts +91 -0
  570. package/src/simple-tree/types.ts +292 -31
  571. package/src/util/breakable.ts +214 -0
  572. package/src/util/index.ts +11 -0
  573. package/src/util/nestedMap.ts +33 -3
  574. package/src/util/utils.ts +17 -0
  575. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +0 -41
  576. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +0 -1
  577. package/dist/feature-libraries/node-key/nodeKeyIndex.js +0 -101
  578. package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +0 -1
  579. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +0 -41
  580. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +0 -1
  581. package/lib/feature-libraries/node-key/nodeKeyIndex.js +0 -97
  582. package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +0 -1
  583. package/src/feature-libraries/node-key/nodeKeyIndex.ts +0 -132
@@ -7,11 +7,12 @@ import { assert } from "@fluidframework/core-utils/internal";
7
7
 
8
8
  import type { ICodecOptions } from "../../codec/index.js";
9
9
  import { type IdAllocator, idAllocatorFromMaxId } from "../../util/index.js";
10
- import type { RevisionTagCodec } from "../rebase/index.js";
10
+ import type { RevisionTag, RevisionTagCodec } from "../rebase/index.js";
11
11
  import type { FieldKey } from "../schema-stored/index.js";
12
12
 
13
13
  import type { ProtoNodes, Root } from "./delta.js";
14
- import { DetachedFieldIndex, type ForestRootId } from "./detachedFieldIndex.js";
14
+ import { DetachedFieldIndex } from "./detachedFieldIndex.js";
15
+ import type { ForestRootId } from "./detachedFieldIndexTypes.js";
15
16
  import type { PlaceIndex, Range } from "./pathTree.js";
16
17
  import { type DeltaVisitor, visitDelta } from "./visitDelta.js";
17
18
  import type { IIdCompressor } from "@fluidframework/id-compressor";
@@ -33,21 +34,23 @@ export function makeDetachedFieldIndex(
33
34
 
34
35
  export function applyDelta(
35
36
  delta: Root,
37
+ latestRevision: RevisionTag | undefined,
36
38
  deltaProcessor: { acquireVisitor: () => DeltaVisitor },
37
39
  detachedFieldIndex: DetachedFieldIndex,
38
40
  ): void {
39
41
  const visitor = deltaProcessor.acquireVisitor();
40
- visitDelta(delta, visitor, detachedFieldIndex);
42
+ visitDelta(delta, visitor, detachedFieldIndex, latestRevision);
41
43
  visitor.free();
42
44
  }
43
45
 
44
46
  export function announceDelta(
45
47
  delta: Root,
48
+ latestRevision: RevisionTag | undefined,
46
49
  deltaProcessor: { acquireVisitor: () => DeltaVisitor & AnnouncedVisitor },
47
50
  detachedFieldIndex: DetachedFieldIndex,
48
51
  ): void {
49
52
  const visitor = deltaProcessor.acquireVisitor();
50
- visitDelta(delta, combineVisitors([visitor], [visitor]), detachedFieldIndex);
53
+ visitDelta(delta, combineVisitors([visitor], [visitor]), detachedFieldIndex, latestRevision);
51
54
  visitor.free();
52
55
  }
53
56
 
@@ -8,9 +8,11 @@ import { getOrCreate } from "../util/index.js";
8
8
 
9
9
  /**
10
10
  * Convert a union of types to an intersection of those types. Useful for `TransformEvents`.
11
+ * @privateRemarks
12
+ * First an always true extends clause is used (T extends T) to distribute T into to a union of types contravariant over each member of the T union.
13
+ * Then the constraint on the type parameter in this new context is inferred, giving the intersection.
11
14
  */
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- export type UnionToIntersection<T> = (T extends any ? (k: T) => unknown : never) extends (
15
+ export type UnionToIntersection<T> = (T extends T ? (k: T) => unknown : never) extends (
14
16
  k: infer U,
15
17
  ) => unknown
16
18
  ? U
@@ -170,7 +170,7 @@ export class DefaultEditBuilder implements ChangeFamilyEditor, IDefaultEditBuild
170
170
  family: ChangeFamily<ChangeFamilyEditor, DefaultChangeset>,
171
171
  changeReceiver: (change: DefaultChangeset) => void,
172
172
  ) {
173
- this.modularBuilder = new ModularEditBuilder(family, changeReceiver);
173
+ this.modularBuilder = new ModularEditBuilder(family, fieldKinds, changeReceiver);
174
174
  }
175
175
 
176
176
  public enterTransaction(): void {
@@ -48,6 +48,7 @@ export const noChangeHandler: FieldChangeHandler<0> = {
48
48
  isEmpty: (change: 0) => true,
49
49
  getNestedChanges: (change: 0) => [],
50
50
  createEmpty: () => 0,
51
+ getCrossFieldKeys: () => [],
51
52
  };
52
53
 
53
54
  export interface ValueFieldEditor extends FieldEditor<OptionalChangeset> {
@@ -741,7 +741,7 @@ class AbstractDataBinder<
741
741
  const visitor = getOrCreate(this.visitors, anchor, () => {
742
742
  const newVisitor = this.visitorFactory(anchor);
743
743
  this.unregisterHandles.add(
744
- anchor.on("subtreeChanging", (upPath: UpPath) => {
744
+ anchor.anchorNode.on("subtreeChanging", (upPath: UpPath) => {
745
745
  assert(newVisitor !== undefined, 0x6dc /* visitor expected to be defined */);
746
746
  if (!this.visitorLocations.has(newVisitor)) {
747
747
  this.visitorLocations.set(newVisitor, upPath);
@@ -14,7 +14,7 @@ import {
14
14
  type TreeValue,
15
15
  type Value,
16
16
  } from "../../core/index.js";
17
- import { brand, fail, getOrCreate, mapIterable } from "../../util/index.js";
17
+ import { brand, fail, mapIterable } from "../../util/index.js";
18
18
  import {
19
19
  type FlexTreeContext,
20
20
  FlexTreeEntityKind,
@@ -23,7 +23,6 @@ import {
23
23
  type FlexTreeLeafNode,
24
24
  type FlexTreeMapNode,
25
25
  type FlexTreeNode,
26
- type FlexTreeNodeEvents,
27
26
  type FlexTreeOptionalField,
28
27
  type FlexTreeRequiredField,
29
28
  type FlexTreeSequenceField,
@@ -34,7 +33,6 @@ import {
34
33
  type FlexTreeUnboxNodeUnion,
35
34
  type FlexibleFieldContent,
36
35
  type FlexibleNodeSubSequence,
37
- TreeStatus,
38
36
  flexTreeMarker,
39
37
  indexForAt,
40
38
  } from "../flex-tree/index.js";
@@ -54,7 +52,6 @@ import {
54
52
  import { type FlexImplicitAllowedTypes, normalizeAllowedTypes } from "../schemaBuilderBase.js";
55
53
  import type { FlexFieldKind } from "../modular-schema/index.js";
56
54
  import { FieldKinds, type SequenceFieldEditBuilder } from "../default-schema/index.js";
57
- import { ComposableEventEmitter, type Listenable, type Off } from "../../events/index.js";
58
55
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
59
56
 
60
57
  // #region Nodes
@@ -66,7 +63,6 @@ import { UsageError } from "@fluidframework/telemetry-utils/internal";
66
63
  */
67
64
  export interface MapTreeNode extends FlexTreeNode {
68
65
  readonly mapTree: MapTree;
69
- forwardEvents(to: Listenable<FlexTreeNodeEvents>): void;
70
66
  }
71
67
 
72
68
  /**
@@ -82,38 +78,6 @@ interface LocationInField {
82
78
  readonly index: number;
83
79
  }
84
80
 
85
- /**
86
- * Allows events to be forwarded to another event emitter.
87
- * @remarks TODO: After the eventing library is simplified, find a way to support this pattern elegantly in the library.
88
- */
89
- class ForwardingEventEmitter extends ComposableEventEmitter<FlexTreeNodeEvents> {
90
- // A map from deregistration functions produced by this class to deregistration functions of Listenables that have been forwarded to
91
- private readonly forwardedOffs = new Map<Off, Off[]>();
92
-
93
- public override on<K extends keyof FlexTreeNodeEvents>(
94
- eventName: K,
95
- listener: FlexTreeNodeEvents[K],
96
- ): Off {
97
- const off = super.on(eventName, listener);
98
- // Return a deregister function which...
99
- return (): void => {
100
- off(); // ...deregisters the event in this emitter,
101
- // and also deregisters the event in any Listenable that it gets forwarded to
102
- (this.forwardedOffs.get(off) ?? []).forEach((f) => f());
103
- };
104
- }
105
-
106
- public forwardEvents(to: Listenable<FlexTreeNodeEvents>): void {
107
- for (const [eventName, listeners] of this.listeners) {
108
- for (const [off, listener] of listeners) {
109
- // For every one of our listeners, make the same subscription in the Listenable that we're forwarding to,
110
- // and then create a mapping from our deregistration function to theirs, so we can call it later if need be.
111
- getOrCreate(this.forwardedOffs, off, () => []).push(to.on(eventName, listener));
112
- }
113
- }
114
- }
115
- }
116
-
117
81
  /**
118
82
  * A readonly implementation of {@link FlexTreeNode} which wraps a {@link MapTree}.
119
83
  * @remarks Any methods that would mutate the node will fail,
@@ -123,10 +87,6 @@ class ForwardingEventEmitter extends ComposableEventEmitter<FlexTreeNodeEvents>
123
87
  */
124
88
  export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements MapTreeNode {
125
89
  public readonly [flexTreeMarker] = FlexTreeEntityKind.Node as const;
126
- private readonly events = new ForwardingEventEmitter();
127
- public forwardEvents(to: Listenable<FlexTreeNodeEvents>): void {
128
- this.events.forwardEvents(to);
129
- }
130
90
 
131
91
  /**
132
92
  * Create a new MapTreeNode.
@@ -212,27 +172,10 @@ export class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements Map
212
172
  );
213
173
  }
214
174
 
215
- public treeStatus(): TreeStatus {
216
- return TreeStatus.New;
217
- }
218
-
219
175
  public get value(): Value {
220
176
  return this.mapTree.value;
221
177
  }
222
178
 
223
- public on<K extends keyof FlexTreeNodeEvents>(
224
- eventName: K,
225
- listener: FlexTreeNodeEvents[K],
226
- ): () => void {
227
- switch (eventName) {
228
- case "nodeChanged":
229
- case "treeChanged":
230
- return this.events.on(eventName, listener);
231
- default:
232
- throw unsupportedUsageError(`Subscribing to ${eventName}`);
233
- }
234
- }
235
-
236
179
  public get context(): FlexTreeContext {
237
180
  // This API is relevant to `LazyTreeNode`s, but not `MapTreeNode`s.
238
181
  // TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.
@@ -282,16 +225,6 @@ export class EagerMapTreeFieldNode<TSchema extends FlexFieldNodeSchema>
282
225
  return unboxedField(field, EmptyKey, this.mapTree, this);
283
226
  }
284
227
 
285
- public get boxedContent(): FlexTreeTypedField<TSchema["info"]> {
286
- const field = this.mapTree.fields.get(EmptyKey) ?? [];
287
- return getOrCreateField(
288
- this,
289
- EmptyKey,
290
- field,
291
- this.schema.info,
292
- ) as unknown as FlexTreeTypedField<TSchema["info"]>;
293
- }
294
-
295
228
  public override getBoxed(key: string): FlexTreeTypedField<TSchema["info"]> {
296
229
  return super.getBoxed(key) as FlexTreeTypedField<TSchema["info"]>;
297
230
  }
@@ -418,9 +351,6 @@ export const rootMapTreeField: MapTreeField<FlexAllowedTypes> = {
418
351
  is<TSchema extends FlexFieldSchema>(schema: TSchema) {
419
352
  return schema === (FlexFieldSchema.empty as FlexFieldSchema);
420
353
  },
421
- isSameAs(other: FlexTreeField): boolean {
422
- return other === this;
423
- },
424
354
  boxedIterator(): IterableIterator<FlexTreeNode> {
425
355
  return [].values();
426
356
  },
@@ -431,9 +361,6 @@ export const rootMapTreeField: MapTreeField<FlexAllowedTypes> = {
431
361
  get context(): FlexTreeContext {
432
362
  return fail("MapTreeField does not implement context");
433
363
  },
434
- treeStatus(): TreeStatus {
435
- return TreeStatus.New;
436
- },
437
364
  mapTrees: [],
438
365
  };
439
366
 
@@ -476,15 +403,6 @@ class MapTreeField<T extends FlexAllowedTypes> implements FlexTreeField {
476
403
  return this.schema.equals(schema);
477
404
  }
478
405
 
479
- public isSameAs(other: FlexTreeField): boolean {
480
- if (other.parent === this.parent && other.key === this.key) {
481
- assert(other === this, 0x992 /* Expected field to be cached */);
482
- return true;
483
- }
484
-
485
- return false;
486
- }
487
-
488
406
  public boxedIterator(): IterableIterator<FlexTreeTypedNodeUnion<T>> {
489
407
  return this.mapTrees
490
408
  .map(
@@ -514,10 +432,6 @@ class MapTreeField<T extends FlexAllowedTypes> implements FlexTreeField {
514
432
  public get context(): FlexTreeContext {
515
433
  return fail("MapTreeField does not implement context");
516
434
  }
517
-
518
- public treeStatus(): TreeStatus {
519
- return TreeStatus.New;
520
- }
521
435
  }
522
436
 
523
437
  class MapTreeRequiredField<T extends FlexAllowedTypes>
@@ -530,10 +444,6 @@ class MapTreeRequiredField<T extends FlexAllowedTypes>
530
444
  public set content(_: FlexTreeUnboxNodeUnion<T>) {
531
445
  throw unsupportedUsageError("Setting an optional field");
532
446
  }
533
-
534
- public get boxedContent(): FlexTreeTypedNodeUnion<T> {
535
- return this.boxedAt(0) ?? fail("Required field must have exactly one node");
536
- }
537
447
  }
538
448
 
539
449
  class MapTreeOptionalField<T extends FlexAllowedTypes>
@@ -548,10 +458,6 @@ class MapTreeOptionalField<T extends FlexAllowedTypes>
548
458
  public set content(_: FlexTreeUnboxNodeUnion<T> | undefined) {
549
459
  throw unsupportedUsageError("Setting an optional field");
550
460
  }
551
-
552
- public get boxedContent(): FlexTreeTypedNodeUnion<T> | undefined {
553
- return this.boxedAt(0);
554
- }
555
461
  }
556
462
 
557
463
  class MapTreeSequenceField<T extends FlexAllowedTypes>
@@ -14,7 +14,6 @@ import {
14
14
  import type { Assume, FlattenKeys } from "../../util/index.js";
15
15
  import type { FieldKinds, SequenceFieldEditBuilder } from "../default-schema/index.js";
16
16
  import type { FlexFieldKind } from "../modular-schema/index.js";
17
- import type { LocalNodeKey, StableNodeKey } from "../node-key/index.js";
18
17
  import type {
19
18
  AllowedTypesToFlexInsertableTree,
20
19
  InsertableFlexField,
@@ -35,7 +34,6 @@ import type {
35
34
  } from "../typed-schema/index.js";
36
35
 
37
36
  import type { FlexTreeContext } from "./context.js";
38
- import type { FlexTreeNodeEvents } from "./treeEvents.js";
39
37
 
40
38
  /**
41
39
  * An anchor slot which records the {@link FlexTreeNode} associated with that anchor, if there is one.
@@ -99,14 +97,6 @@ export interface FlexTreeEntity<out TSchema = unknown> {
99
97
  */
100
98
  readonly context: FlexTreeContext;
101
99
 
102
- /**
103
- * Gets the {@link TreeStatus} of this tree.
104
- *
105
- * @remarks
106
- * For non-root fields, this is the status of the parent node, since fields do not have a separate lifetime.
107
- */
108
- treeStatus(): TreeStatus;
109
-
110
100
  /**
111
101
  * Iterate through all nodes/fields in this field/node.
112
102
  *
@@ -168,14 +158,6 @@ export interface FlexTreeNode extends FlexTreeEntity<FlexTreeNodeSchema> {
168
158
  */
169
159
  readonly value?: TreeValue;
170
160
 
171
- /**
172
- * {@inheritDoc ISubscribable#on}
173
- */
174
- on<K extends keyof FlexTreeNodeEvents>(
175
- eventName: K,
176
- listener: FlexTreeNodeEvents[K],
177
- ): () => void;
178
-
179
161
  /**
180
162
  * Gets a field of this node, if it is not empty.
181
163
  */
@@ -262,18 +244,6 @@ export interface FlexTreeField extends FlexTreeEntity<FlexFieldSchema> {
262
244
 
263
245
  boxedIterator(): IterableIterator<FlexTreeNode>;
264
246
 
265
- /**
266
- * Check if this field is the same as a different field.
267
- * This is defined to mean that both are in the same flex tree, and are the same field on the same node.
268
- * This is more than just a reference comparison because unlike FlexTree nodes, fields are not cached on anchors and can be duplicated.
269
- *
270
- * @privateRemarks
271
- * TODO:
272
- * If practical, cache TreeField instances so use of this method can be replaced with `===` to compare object identity.
273
- * Implementing this will require some care to preserve lazy-ness and work efficiently (without leaks) for empty fields, particularly on MapNodes.
274
- */
275
- isSameAs(other: FlexTreeField): boolean;
276
-
277
247
  /**
278
248
  * Gets a node of this field by its index without unboxing.
279
249
  * @param index - Zero-based index of the item to retrieve. Negative values are interpreted from the end of the sequence.
@@ -468,20 +438,8 @@ export interface FlexTreeFieldNode<in out TSchema extends FlexFieldNodeSchema>
468
438
 
469
439
  /**
470
440
  * The content this field node wraps.
471
- * @remarks
472
- * This is a version of {@link FlexTreeFieldNode.boxedContent} but does unboxing.
473
- * Since field node are usually used to wrap fields which don't do unboxing (like {@link FlexTreeSequenceField})
474
441
  */
475
442
  readonly content: FlexTreeUnboxField<TSchema["info"]>;
476
- /**
477
- * The field this field node wraps.
478
- *
479
- * @remarks
480
- * Since field nodes are usually used to wrap fields which don't do unboxing (like {@link FlexTreeSequenceField}),
481
- * this is usually the same as {@link FlexTreeFieldNode.content}.
482
- * This is also the same as `[...this][0]`.
483
- */
484
- readonly boxedContent: FlexTreeTypedField<TSchema["info"]>;
485
443
  }
486
444
 
487
445
  /**
@@ -507,11 +465,6 @@ export interface FlexTreeFieldNode<in out TSchema extends FlexFieldNodeSchema>
507
465
  */
508
466
  export interface FlexTreeObjectNode extends FlexTreeNode {
509
467
  readonly schema: FlexObjectNodeSchema;
510
-
511
- /**
512
- * {@link LocalNodeKey} that identifies this node.
513
- */
514
- readonly localNodeKey?: LocalNodeKey;
515
468
  }
516
469
 
517
470
  /**
@@ -615,10 +568,8 @@ export const reservedObjectNodeFieldPropertyNames = [
615
568
  "constructor",
616
569
  "context",
617
570
  "is",
618
- "on",
619
571
  "parentField",
620
572
  "schema",
621
- "treeStatus",
622
573
  "tryGetField",
623
574
  "type",
624
575
  "value",
@@ -987,8 +938,6 @@ export interface FlexTreeRequiredField<in out TTypes extends FlexAllowedTypes>
987
938
  extends FlexTreeField {
988
939
  get content(): FlexTreeUnboxNodeUnion<TTypes>;
989
940
  set content(content: FlexibleNodeContent<TTypes>);
990
-
991
- readonly boxedContent: FlexTreeTypedNodeUnion<TTypes>;
992
941
  }
993
942
 
994
943
  /**
@@ -1009,17 +958,6 @@ export interface FlexTreeOptionalField<in out TTypes extends FlexAllowedTypes>
1009
958
  extends FlexTreeField {
1010
959
  get content(): FlexTreeUnboxNodeUnion<TTypes> | undefined;
1011
960
  set content(newContent: FlexibleNodeContent<TTypes> | undefined);
1012
-
1013
- readonly boxedContent?: FlexTreeTypedNodeUnion<TTypes>;
1014
- }
1015
-
1016
- /**
1017
- * Field that contains an immutable {@link StableNodeKey} identifying this node.
1018
- * @internal
1019
- */
1020
- export interface FlexTreeNodeKeyField extends FlexTreeField {
1021
- readonly localNodeKey: LocalNodeKey;
1022
- readonly stableNodeKey: StableNodeKey;
1023
961
  }
1024
962
 
1025
963
  // #endregion
@@ -56,11 +56,16 @@ export type {
56
56
  FlexTreeObjectNodeFields,
57
57
  FlexTreeUnboxNode,
58
58
  FlexTreeUnboxNodeUnion,
59
- FlexTreeNodeKeyField,
60
59
  IsArrayOfOne,
61
60
  FlexibleNodeSubSequence,
62
61
  } from "./flexTreeTypes.js";
63
62
 
64
- export { assertFlexTreeEntityNotFreed } from "./lazyEntity.js";
63
+ export {
64
+ assertFlexTreeEntityNotFreed,
65
+ isFreedSymbol,
66
+ LazyEntity,
67
+ } from "./lazyEntity.js";
65
68
 
66
69
  export { getSchemaAndPolicy, indexForAt } from "./utilities.js";
70
+
71
+ export { treeStatusFromAnchorCache } from "./utilities.js";
@@ -16,7 +16,6 @@ import type { Context } from "./context.js";
16
16
  import {
17
17
  type FlexTreeEntity,
18
18
  type FlexTreeEntityKind,
19
- type TreeStatus,
20
19
  flexTreeMarker,
21
20
  } from "./flexTreeTypes.js";
22
21
 
@@ -65,8 +64,6 @@ export abstract class LazyEntity<TSchema = unknown, TAnchor = unknown>
65
64
  public abstract boxedIterator(): IterableIterator<FlexTreeEntity>;
66
65
  public abstract get [flexTreeMarker](): FlexTreeEntityKind;
67
66
 
68
- public abstract treeStatus(): TreeStatus;
69
-
70
67
  public [disposeSymbol](): void {
71
68
  this.#lazyCursor.free();
72
69
  this.context.withCursors.delete(this);
@@ -16,7 +16,7 @@ import {
16
16
  inCursorNode,
17
17
  isCursor,
18
18
  iterateCursorField,
19
- keyAsDetachedField,
19
+ rootFieldKey,
20
20
  } from "../../core/index.js";
21
21
  import {
22
22
  assertValidIndex,
@@ -64,11 +64,7 @@ import {
64
64
  } from "./lazyEntity.js";
65
65
  import { type LazyTreeNode, makeTree } from "./lazyNode.js";
66
66
  import { unboxedUnion } from "./unboxed.js";
67
- import {
68
- indexForAt,
69
- treeStatusFromAnchorCache,
70
- treeStatusFromDetachedField,
71
- } from "./utilities.js";
67
+ import { indexForAt, treeStatusFromAnchorCache } from "./utilities.js";
72
68
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
73
69
 
74
70
  /**
@@ -190,14 +186,6 @@ export abstract class LazyField<
190
186
  return this.schema.equals(schema);
191
187
  }
192
188
 
193
- public isSameAs(other: FlexTreeField): boolean {
194
- assert(
195
- other.context === this.context,
196
- 0x77d /* Content from different flex trees should not be used together */,
197
- );
198
- return this.key === other.key && this.parent === other.parent;
199
- }
200
-
201
189
  public get parent(): FlexTreeNode | undefined {
202
190
  if (this[anchorSymbol].parent === undefined) {
203
191
  return undefined;
@@ -267,23 +255,6 @@ export abstract class LazyField<
267
255
  );
268
256
  }
269
257
 
270
- public treeStatus(): TreeStatus {
271
- if (this[isFreedSymbol]()) {
272
- return TreeStatus.Deleted;
273
- }
274
- const fieldAnchor = this[anchorSymbol];
275
- const parentAnchor = fieldAnchor.parent;
276
- // If the parentAnchor is undefined it is a detached field.
277
- if (parentAnchor === undefined) {
278
- return treeStatusFromDetachedField(keyAsDetachedField(fieldAnchor.fieldKey));
279
- }
280
- const parentAnchorNode = this.context.checkout.forest.anchors.locate(parentAnchor);
281
-
282
- // As the "parentAnchor === undefined" case is handled above, parentAnchorNode should exist.
283
- assert(parentAnchorNode !== undefined, 0x77e /* parentAnchorNode must exist. */);
284
- return treeStatusFromAnchorCache(parentAnchorNode);
285
- }
286
-
287
258
  public getFieldPath(): FieldUpPath {
288
259
  return this[cursorSymbol].getFieldPath();
289
260
  }
@@ -293,10 +264,19 @@ export abstract class LazyField<
293
264
  * This path is not valid to hold onto across edits: this must be recalled for each edit.
294
265
  */
295
266
  public getFieldPathForEditing(): FieldUpPath {
296
- if (this.treeStatus() !== TreeStatus.InDocument) {
297
- throw new UsageError("Editing only allowed on fields with TreeStatus.InDocument status");
267
+ if (!this[isFreedSymbol]()) {
268
+ if (
269
+ // Only allow editing if we are the root document field...
270
+ (this.parent === undefined && this[anchorSymbol].fieldKey === rootFieldKey) ||
271
+ // ...or are under a node in the document
272
+ (this.parent !== undefined &&
273
+ treeStatusFromAnchorCache(this.parent.anchorNode) === TreeStatus.InDocument)
274
+ ) {
275
+ return this.getFieldPath();
276
+ }
298
277
  }
299
- return this.getFieldPath();
278
+
279
+ throw new UsageError("Editing only allowed on fields with TreeStatus.InDocument status");
300
280
  }
301
281
  }
302
282
 
@@ -444,7 +424,7 @@ export class LazySequence<TTypes extends FlexAllowedTypes>
444
424
  sourceEnd: number,
445
425
  source?: FlexTreeSequenceField<FlexAllowedTypes>,
446
426
  ): void {
447
- const sourceField = source !== undefined ? (this.isSameAs(source) ? this : source) : this;
427
+ const sourceField = source ?? this;
448
428
 
449
429
  // TODO: determine support for move across different sequence types
450
430
  assert(
@@ -495,10 +475,6 @@ export class ReadonlyLazyValueField<TTypes extends FlexAllowedTypes>
495
475
  public set content(newContent: FlexibleNodeContent<TTypes>) {
496
476
  fail("cannot set content in readonly field");
497
477
  }
498
-
499
- public get boxedContent(): FlexTreeTypedNodeUnion<TTypes> {
500
- return this.boxedAt(0) ?? fail("value node must have 1 item");
501
- }
502
478
  }
503
479
 
504
480
  export class LazyValueField<TTypes extends FlexAllowedTypes>
@@ -532,10 +508,6 @@ export class LazyValueField<TTypes extends FlexAllowedTypes>
532
508
  assert(content.length === 1, 0x780 /* value field content should normalize to one item */);
533
509
  fieldEditor.set(content[0]);
534
510
  }
535
-
536
- public override get boxedContent(): FlexTreeTypedNodeUnion<TTypes> {
537
- return this.boxedAt(0) ?? fail("value node must have 1 item");
538
- }
539
511
  }
540
512
 
541
513
  export class LazyIdentifierField<TTypes extends FlexAllowedTypes>
@@ -589,10 +561,6 @@ export class LazyOptionalField<TTypes extends FlexAllowedTypes>
589
561
  );
590
562
  fieldEditor.set(content.length === 0 ? undefined : content[0], this.length === 0);
591
563
  }
592
-
593
- public get boxedContent(): FlexTreeTypedNodeUnion<TTypes> | undefined {
594
- return this.length === 0 ? undefined : this.boxedAt(0);
595
- }
596
564
  }
597
565
 
598
566
  export class LazyForbiddenField<TTypes extends FlexAllowedTypes> extends LazyField<
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
6
+ import { assert } from "@fluidframework/core-utils/internal";
7
7
 
8
8
  import {
9
9
  type Anchor,
@@ -55,7 +55,6 @@ import {
55
55
  type FlexibleFieldContent,
56
56
  type FlexibleNodeContent,
57
57
  type PropertyNameFromFieldKey,
58
- TreeStatus,
59
58
  flexTreeMarker,
60
59
  flexTreeSlot,
61
60
  reservedObjectNodeFieldPropertyNamePrefixes,
@@ -66,13 +65,10 @@ import {
66
65
  anchorSymbol,
67
66
  cursorSymbol,
68
67
  forgetAnchorSymbol,
69
- isFreedSymbol,
70
68
  tryMoveCursorToAnchorSymbol,
71
69
  } from "./lazyEntity.js";
72
70
  import { makeField } from "./lazyField.js";
73
- import type { FlexTreeNodeEvents } from "./treeEvents.js";
74
71
  import { unboxedField } from "./unboxed.js";
75
- import { treeStatusFromAnchorCache } from "./utilities.js";
76
72
 
77
73
  /**
78
74
  * @param cursor - This does not take ownership of this cursor: Node will fork it as needed.
@@ -256,43 +252,6 @@ export abstract class LazyTreeNode<TSchema extends FlexTreeNodeSchema = FlexTree
256
252
 
257
253
  return { parent: proxifiedField, index };
258
254
  }
259
-
260
- public override treeStatus(): TreeStatus {
261
- if (this[isFreedSymbol]()) {
262
- return TreeStatus.Deleted;
263
- }
264
- return treeStatusFromAnchorCache(this.anchorNode);
265
- }
266
-
267
- public on<K extends keyof FlexTreeNodeEvents>(
268
- eventName: K,
269
- listener: FlexTreeNodeEvents[K],
270
- ): () => void {
271
- switch (eventName) {
272
- case "changing": {
273
- const unsubscribeFromChildrenChange = this.anchorNode.on(
274
- "childrenChanging",
275
- (anchorNode: AnchorNode) => listener(anchorNode),
276
- );
277
- return unsubscribeFromChildrenChange;
278
- }
279
- case "subtreeChanging": {
280
- const unsubscribeFromSubtreeChange = this.anchorNode.on(
281
- "subtreeChanging",
282
- (anchorNode: AnchorNode) => listener(anchorNode),
283
- );
284
- return unsubscribeFromSubtreeChange;
285
- }
286
- case "nodeChanged": {
287
- return this.anchorNode.on("childrenChangedAfterBatch", listener);
288
- }
289
- case "treeChanged": {
290
- return this.anchorNode.on("subtreeChangedAfterBatch", listener);
291
- }
292
- default:
293
- unreachableCase(eventName);
294
- }
295
- }
296
255
  }
297
256
 
298
257
  export class LazyMap<TSchema extends FlexMapNodeSchema>
@@ -434,12 +393,6 @@ export class LazyFieldNode<TSchema extends FlexFieldNodeSchema>
434
393
  unboxedField(this.context, this.schema.info, cursor),
435
394
  ) as FlexTreeUnboxField<TSchema["info"]>;
436
395
  }
437
-
438
- public get boxedContent(): FlexTreeTypedField<TSchema["info"]> {
439
- return inCursorField(this[cursorSymbol], EmptyKey, (cursor) =>
440
- makeField(this.context, this.schema.info, cursor),
441
- ) as FlexTreeTypedField<TSchema["info"]>;
442
- }
443
396
  }
444
397
 
445
398
  /**
@@ -158,6 +158,7 @@ export class ForestSummarizer implements Summarizable {
158
158
  assert(this.forest.isEmpty, 0x797 /* forest must be empty */);
159
159
  applyDelta(
160
160
  { build, fields: new Map(fieldChanges) },
161
+ undefined,
161
162
  this.forest,
162
163
  makeDetachedFieldIndex("init", this.revisionTagCodec, this.idCompressor),
163
164
  );