@fluidframework/tree 2.21.0 → 2.23.0-323641

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 (358) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -0
  3. package/api-report/tree.alpha.api.md +29 -4
  4. package/api-report/tree.beta.api.md +29 -4
  5. package/api-report/tree.legacy.alpha.api.md +29 -4
  6. package/api-report/tree.legacy.public.api.md +29 -4
  7. package/api-report/tree.public.api.md +29 -4
  8. package/dist/alpha.d.ts +1 -0
  9. package/dist/beta.d.ts +1 -0
  10. package/dist/core/forest/editableForest.js +1 -1
  11. package/dist/core/forest/editableForest.js.map +1 -1
  12. package/dist/core/index.d.ts +1 -1
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/core/tree/anchorSet.d.ts +2 -5
  16. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  17. package/dist/core/tree/anchorSet.js +16 -162
  18. package/dist/core/tree/anchorSet.js.map +1 -1
  19. package/dist/core/tree/index.d.ts +1 -2
  20. package/dist/core/tree/index.d.ts.map +1 -1
  21. package/dist/core/tree/index.js.map +1 -1
  22. package/dist/core/tree/pathTree.d.ts +0 -11
  23. package/dist/core/tree/pathTree.d.ts.map +1 -1
  24. package/dist/core/tree/pathTree.js.map +1 -1
  25. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  26. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  27. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +1 -1
  28. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  29. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -2
  30. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  31. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +0 -9
  32. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  33. package/dist/feature-libraries/flex-tree/treeEvents.d.ts +2 -4
  34. package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  35. package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  36. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -2
  37. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  38. package/dist/feature-libraries/forest-summary/forestSummarizer.js +0 -9
  39. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  40. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +6 -2
  41. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  42. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  43. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -4
  44. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  45. package/dist/feature-libraries/modular-schema/genericFieldKind.js +4 -19
  46. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  47. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  48. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +16 -18
  49. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  50. package/dist/feature-libraries/node-key/mockNodeKeyManager.js +1 -1
  51. package/dist/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  52. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  53. package/dist/feature-libraries/optional-field/optionalField.js +7 -3
  54. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  55. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -5
  56. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  57. package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -11
  58. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  59. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +1 -1
  60. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  61. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -1
  62. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  63. package/dist/index.d.ts +3 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +4 -4
  66. package/dist/index.js.map +1 -1
  67. package/dist/legacy.d.ts +1 -0
  68. package/dist/packageVersion.d.ts +1 -1
  69. package/dist/packageVersion.d.ts.map +1 -1
  70. package/dist/packageVersion.js +1 -1
  71. package/dist/packageVersion.js.map +1 -1
  72. package/dist/public.d.ts +1 -0
  73. package/dist/shared-tree/index.d.ts +1 -3
  74. package/dist/shared-tree/index.d.ts.map +1 -1
  75. package/dist/shared-tree/index.js +1 -7
  76. package/dist/shared-tree/index.js.map +1 -1
  77. package/dist/shared-tree/schematizingTreeView.d.ts +4 -5
  78. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  79. package/dist/shared-tree/schematizingTreeView.js +9 -10
  80. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  81. package/dist/shared-tree/sharedTree.d.ts +40 -39
  82. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  83. package/dist/shared-tree/sharedTree.js +84 -52
  84. package/dist/shared-tree/sharedTree.js.map +1 -1
  85. package/dist/shared-tree/treeApi.d.ts +2 -2
  86. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  87. package/dist/shared-tree/treeApi.js +9 -3
  88. package/dist/shared-tree/treeApi.js.map +1 -1
  89. package/dist/shared-tree/treeCheckout.d.ts +3 -3
  90. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  91. package/dist/shared-tree/treeCheckout.js +3 -2
  92. package/dist/shared-tree/treeCheckout.js.map +1 -1
  93. package/dist/shared-tree-core/editManager.d.ts +11 -2
  94. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  95. package/dist/shared-tree-core/editManager.js +64 -29
  96. package/dist/shared-tree-core/editManager.js.map +1 -1
  97. package/dist/shared-tree-core/editManagerSummarizer.d.ts +1 -2
  98. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  99. package/dist/shared-tree-core/editManagerSummarizer.js +0 -9
  100. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  101. package/dist/shared-tree-core/resubmitMachine.d.ts +2 -0
  102. package/dist/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  103. package/dist/shared-tree-core/resubmitMachine.js.map +1 -1
  104. package/dist/shared-tree-core/sequenceIdUtils.d.ts +12 -1
  105. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  106. package/dist/shared-tree-core/sequenceIdUtils.js +25 -7
  107. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  108. package/dist/shared-tree-core/sharedTreeCore.d.ts +33 -30
  109. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  110. package/dist/shared-tree-core/sharedTreeCore.js +62 -56
  111. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  112. package/dist/simple-tree/api/index.d.ts +3 -2
  113. package/dist/simple-tree/api/index.d.ts.map +1 -1
  114. package/dist/simple-tree/api/index.js +3 -1
  115. package/dist/simple-tree/api/index.js.map +1 -1
  116. package/dist/simple-tree/api/schemaFactory.d.ts +156 -63
  117. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  118. package/dist/simple-tree/api/schemaFactory.js +179 -86
  119. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  120. package/dist/{shared-tree → simple-tree/api}/transactionTypes.d.ts +1 -1
  121. package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -0
  122. package/dist/{shared-tree → simple-tree/api}/transactionTypes.js.map +1 -1
  123. package/dist/simple-tree/api/tree.d.ts +23 -2
  124. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  125. package/dist/simple-tree/api/tree.js.map +1 -1
  126. package/dist/simple-tree/index.d.ts +1 -1
  127. package/dist/simple-tree/index.d.ts.map +1 -1
  128. package/dist/simple-tree/index.js +3 -2
  129. package/dist/simple-tree/index.js.map +1 -1
  130. package/dist/simple-tree/schemaTypes.d.ts +2 -2
  131. package/dist/simple-tree/schemaTypes.js +1 -1
  132. package/dist/simple-tree/schemaTypes.js.map +1 -1
  133. package/dist/simple-tree/treeNodeValid.js +1 -2
  134. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  135. package/dist/treeFactory.d.ts +16 -5
  136. package/dist/treeFactory.d.ts.map +1 -1
  137. package/dist/treeFactory.js +21 -12
  138. package/dist/treeFactory.js.map +1 -1
  139. package/dist/util/breakable.d.ts +1 -1
  140. package/dist/util/breakable.d.ts.map +1 -1
  141. package/dist/util/breakable.js.map +1 -1
  142. package/dist/util/index.d.ts +1 -1
  143. package/dist/util/index.d.ts.map +1 -1
  144. package/dist/util/index.js +3 -2
  145. package/dist/util/index.js.map +1 -1
  146. package/dist/util/rangeMap.d.ts +1 -1
  147. package/dist/util/rangeMap.js +1 -1
  148. package/dist/util/rangeMap.js.map +1 -1
  149. package/dist/util/utils.d.ts +16 -0
  150. package/dist/util/utils.d.ts.map +1 -1
  151. package/dist/util/utils.js +29 -1
  152. package/dist/util/utils.js.map +1 -1
  153. package/lib/alpha.d.ts +1 -0
  154. package/lib/beta.d.ts +1 -0
  155. package/lib/core/forest/editableForest.js +1 -1
  156. package/lib/core/forest/editableForest.js.map +1 -1
  157. package/lib/core/index.d.ts +1 -1
  158. package/lib/core/index.d.ts.map +1 -1
  159. package/lib/core/index.js.map +1 -1
  160. package/lib/core/tree/anchorSet.d.ts +2 -5
  161. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  162. package/lib/core/tree/anchorSet.js +17 -163
  163. package/lib/core/tree/anchorSet.js.map +1 -1
  164. package/lib/core/tree/index.d.ts +1 -2
  165. package/lib/core/tree/index.d.ts.map +1 -1
  166. package/lib/core/tree/index.js.map +1 -1
  167. package/lib/core/tree/pathTree.d.ts +0 -11
  168. package/lib/core/tree/pathTree.d.ts.map +1 -1
  169. package/lib/core/tree/pathTree.js.map +1 -1
  170. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  171. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  172. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +1 -1
  173. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  174. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -2
  175. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  176. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +0 -9
  177. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  178. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +2 -4
  179. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  180. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  181. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -2
  182. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  183. package/lib/feature-libraries/forest-summary/forestSummarizer.js +0 -9
  184. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  185. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +6 -2
  186. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  187. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  188. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -4
  189. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  190. package/lib/feature-libraries/modular-schema/genericFieldKind.js +4 -19
  191. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  192. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  193. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +17 -19
  194. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  195. package/lib/feature-libraries/node-key/mockNodeKeyManager.js +1 -1
  196. package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  197. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  198. package/lib/feature-libraries/optional-field/optionalField.js +7 -3
  199. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  200. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -5
  201. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  202. package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -11
  203. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  204. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +1 -1
  205. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  206. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -1
  207. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  208. package/lib/index.d.ts +3 -3
  209. package/lib/index.d.ts.map +1 -1
  210. package/lib/index.js +3 -3
  211. package/lib/index.js.map +1 -1
  212. package/lib/legacy.d.ts +1 -0
  213. package/lib/packageVersion.d.ts +1 -1
  214. package/lib/packageVersion.d.ts.map +1 -1
  215. package/lib/packageVersion.js +1 -1
  216. package/lib/packageVersion.js.map +1 -1
  217. package/lib/public.d.ts +1 -0
  218. package/lib/shared-tree/index.d.ts +1 -3
  219. package/lib/shared-tree/index.d.ts.map +1 -1
  220. package/lib/shared-tree/index.js +1 -3
  221. package/lib/shared-tree/index.js.map +1 -1
  222. package/lib/shared-tree/schematizingTreeView.d.ts +4 -5
  223. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  224. package/lib/shared-tree/schematizingTreeView.js +4 -5
  225. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  226. package/lib/shared-tree/sharedTree.d.ts +40 -39
  227. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  228. package/lib/shared-tree/sharedTree.js +82 -50
  229. package/lib/shared-tree/sharedTree.js.map +1 -1
  230. package/lib/shared-tree/treeApi.d.ts +2 -2
  231. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  232. package/lib/shared-tree/treeApi.js +8 -2
  233. package/lib/shared-tree/treeApi.js.map +1 -1
  234. package/lib/shared-tree/treeCheckout.d.ts +3 -3
  235. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  236. package/lib/shared-tree/treeCheckout.js +4 -3
  237. package/lib/shared-tree/treeCheckout.js.map +1 -1
  238. package/lib/shared-tree-core/editManager.d.ts +11 -2
  239. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  240. package/lib/shared-tree-core/editManager.js +65 -30
  241. package/lib/shared-tree-core/editManager.js.map +1 -1
  242. package/lib/shared-tree-core/editManagerSummarizer.d.ts +1 -2
  243. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  244. package/lib/shared-tree-core/editManagerSummarizer.js +0 -9
  245. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  246. package/lib/shared-tree-core/resubmitMachine.d.ts +2 -0
  247. package/lib/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  248. package/lib/shared-tree-core/resubmitMachine.js.map +1 -1
  249. package/lib/shared-tree-core/sequenceIdUtils.d.ts +12 -1
  250. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  251. package/lib/shared-tree-core/sequenceIdUtils.js +23 -5
  252. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  253. package/lib/shared-tree-core/sharedTreeCore.d.ts +33 -30
  254. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  255. package/lib/shared-tree-core/sharedTreeCore.js +61 -55
  256. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  257. package/lib/simple-tree/api/index.d.ts +3 -2
  258. package/lib/simple-tree/api/index.d.ts.map +1 -1
  259. package/lib/simple-tree/api/index.js +1 -0
  260. package/lib/simple-tree/api/index.js.map +1 -1
  261. package/lib/simple-tree/api/schemaFactory.d.ts +156 -63
  262. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  263. package/lib/simple-tree/api/schemaFactory.js +178 -85
  264. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  265. package/lib/{shared-tree → simple-tree/api}/transactionTypes.d.ts +1 -1
  266. package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -0
  267. package/lib/{shared-tree → simple-tree/api}/transactionTypes.js.map +1 -1
  268. package/lib/simple-tree/api/tree.d.ts +23 -2
  269. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  270. package/lib/simple-tree/api/tree.js.map +1 -1
  271. package/lib/simple-tree/index.d.ts +1 -1
  272. package/lib/simple-tree/index.d.ts.map +1 -1
  273. package/lib/simple-tree/index.js +1 -1
  274. package/lib/simple-tree/index.js.map +1 -1
  275. package/lib/simple-tree/schemaTypes.d.ts +2 -2
  276. package/lib/simple-tree/schemaTypes.js +1 -1
  277. package/lib/simple-tree/schemaTypes.js.map +1 -1
  278. package/lib/simple-tree/treeNodeValid.js +1 -2
  279. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  280. package/lib/treeFactory.d.ts +16 -5
  281. package/lib/treeFactory.d.ts.map +1 -1
  282. package/lib/treeFactory.js +20 -11
  283. package/lib/treeFactory.js.map +1 -1
  284. package/lib/util/breakable.d.ts +1 -1
  285. package/lib/util/breakable.d.ts.map +1 -1
  286. package/lib/util/breakable.js.map +1 -1
  287. package/lib/util/index.d.ts +1 -1
  288. package/lib/util/index.d.ts.map +1 -1
  289. package/lib/util/index.js +1 -1
  290. package/lib/util/index.js.map +1 -1
  291. package/lib/util/rangeMap.d.ts +1 -1
  292. package/lib/util/rangeMap.js +1 -1
  293. package/lib/util/rangeMap.js.map +1 -1
  294. package/lib/util/utils.d.ts +16 -0
  295. package/lib/util/utils.d.ts.map +1 -1
  296. package/lib/util/utils.js +27 -0
  297. package/lib/util/utils.js.map +1 -1
  298. package/package.json +23 -23
  299. package/src/core/forest/editableForest.ts +1 -1
  300. package/src/core/index.ts +0 -3
  301. package/src/core/tree/anchorSet.ts +38 -221
  302. package/src/core/tree/index.ts +0 -3
  303. package/src/core/tree/pathTree.ts +0 -13
  304. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +1 -1
  305. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +0 -11
  306. package/src/feature-libraries/flex-tree/treeEvents.ts +2 -4
  307. package/src/feature-libraries/forest-summary/forestSummarizer.ts +0 -11
  308. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +6 -2
  309. package/src/feature-libraries/modular-schema/genericFieldKind.ts +3 -35
  310. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +18 -48
  311. package/src/feature-libraries/optional-field/optionalField.ts +10 -3
  312. package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -16
  313. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +13 -2
  314. package/src/index.ts +15 -12
  315. package/src/packageVersion.ts +1 -1
  316. package/src/shared-tree/index.ts +3 -19
  317. package/src/shared-tree/schematizingTreeView.ts +18 -16
  318. package/src/shared-tree/sharedTree.ts +208 -100
  319. package/src/shared-tree/treeApi.ts +10 -1
  320. package/src/shared-tree/treeCheckout.ts +11 -8
  321. package/src/shared-tree-core/editManager.ts +80 -43
  322. package/src/shared-tree-core/editManagerSummarizer.ts +0 -11
  323. package/src/shared-tree-core/resubmitMachine.ts +2 -0
  324. package/src/shared-tree-core/sequenceIdUtils.ts +26 -5
  325. package/src/shared-tree-core/sharedTreeCore.ts +88 -99
  326. package/src/simple-tree/api/index.ts +15 -0
  327. package/src/simple-tree/api/schemaFactory.ts +203 -89
  328. package/src/{shared-tree → simple-tree/api}/transactionTypes.ts +1 -1
  329. package/src/simple-tree/api/tree.ts +31 -6
  330. package/src/simple-tree/index.ts +12 -0
  331. package/src/simple-tree/schemaTypes.ts +2 -2
  332. package/src/treeFactory.ts +29 -11
  333. package/src/util/breakable.ts +1 -1
  334. package/src/util/index.ts +1 -0
  335. package/src/util/rangeMap.ts +1 -1
  336. package/src/util/utils.ts +32 -0
  337. package/dist/core/tree/visitPath.d.ts +0 -101
  338. package/dist/core/tree/visitPath.d.ts.map +0 -1
  339. package/dist/core/tree/visitPath.js +0 -7
  340. package/dist/core/tree/visitPath.js.map +0 -1
  341. package/dist/shared-tree/publicContracts.d.ts +0 -18
  342. package/dist/shared-tree/publicContracts.d.ts.map +0 -1
  343. package/dist/shared-tree/publicContracts.js +0 -24
  344. package/dist/shared-tree/publicContracts.js.map +0 -1
  345. package/dist/shared-tree/transactionTypes.d.ts.map +0 -1
  346. package/lib/core/tree/visitPath.d.ts +0 -101
  347. package/lib/core/tree/visitPath.d.ts.map +0 -1
  348. package/lib/core/tree/visitPath.js +0 -6
  349. package/lib/core/tree/visitPath.js.map +0 -1
  350. package/lib/shared-tree/publicContracts.d.ts +0 -18
  351. package/lib/shared-tree/publicContracts.d.ts.map +0 -1
  352. package/lib/shared-tree/publicContracts.js +0 -21
  353. package/lib/shared-tree/publicContracts.js.map +0 -1
  354. package/lib/shared-tree/transactionTypes.d.ts.map +0 -1
  355. package/src/core/tree/visitPath.ts +0 -124
  356. package/src/shared-tree/publicContracts.ts +0 -24
  357. /package/dist/{shared-tree → simple-tree/api}/transactionTypes.js +0 -0
  358. /package/lib/{shared-tree → simple-tree/api}/transactionTypes.js +0 -0
@@ -57,6 +57,7 @@ import {
57
57
  mergeTupleBTrees,
58
58
  type TupleBTree,
59
59
  RangeMap,
60
+ balancedReduce,
60
61
  } from "../../util/index.js";
61
62
  import {
62
63
  type TreeChunk,
@@ -131,8 +132,6 @@ export class ModularChangeFamily
131
132
  private normalizeFieldChanges(
132
133
  change1: FieldChange,
133
134
  change2: FieldChange,
134
- genId: IdAllocator,
135
- revisionMetadata: RevisionMetadataSource,
136
135
  ): {
137
136
  fieldKind: FieldKindIdentifier;
138
137
  changeHandler: FieldChangeHandler<unknown>;
@@ -156,18 +155,8 @@ export class ModularChangeFamily
156
155
  }
157
156
  const fieldKind = getFieldKind(this.fieldKinds, kind);
158
157
  const changeHandler = fieldKind.changeHandler;
159
- const normalizedChange1 = this.normalizeFieldChange(
160
- change1,
161
- changeHandler,
162
- genId,
163
- revisionMetadata,
164
- );
165
- const normalizedChange2 = this.normalizeFieldChange(
166
- change2,
167
- changeHandler,
168
- genId,
169
- revisionMetadata,
170
- );
158
+ const normalizedChange1 = this.normalizeFieldChange(change1, changeHandler);
159
+ const normalizedChange2 = this.normalizeFieldChange(change2, changeHandler);
171
160
  return {
172
161
  fieldKind: kind,
173
162
  changeHandler,
@@ -179,8 +168,6 @@ export class ModularChangeFamily
179
168
  private normalizeFieldChange<T>(
180
169
  fieldChange: FieldChange,
181
170
  handler: FieldChangeHandler<T>,
182
- genId: IdAllocator,
183
- revisionMetadata: RevisionMetadataSource,
184
171
  ): FieldChangeset {
185
172
  if (fieldChange.fieldKind !== genericFieldKind.identifier) {
186
173
  return fieldChange.change;
@@ -188,20 +175,7 @@ export class ModularChangeFamily
188
175
 
189
176
  // The cast is based on the `fieldKind` check above
190
177
  const genericChange = fieldChange.change as unknown as GenericChangeset;
191
- const convertedChange = convertGenericChange(
192
- genericChange,
193
- handler,
194
- (child1, child2) => {
195
- assert(
196
- child1 === undefined || child2 === undefined,
197
- 0x92f /* Should not have two changesets to compose */,
198
- );
199
-
200
- return child1 ?? child2 ?? fail("Should not compose two undefined node IDs");
201
- },
202
- genId,
203
- revisionMetadata,
204
- ) as FieldChangeset;
178
+ const convertedChange = convertGenericChange(genericChange, handler) as FieldChangeset;
205
179
 
206
180
  return convertedChange;
207
181
  }
@@ -210,13 +184,15 @@ export class ModularChangeFamily
210
184
  const { revInfos, maxId } = getRevInfoFromTaggedChanges(changes);
211
185
  const idState: IdAllocationState = { maxId };
212
186
 
213
- if (changes.length === 0) {
214
- return makeModularChangeset();
215
- }
187
+ const pairwiseDelegate = (
188
+ left: ModularChangeset,
189
+ right: ModularChangeset,
190
+ ): ModularChangeset => {
191
+ return this.composePair(left, right, revInfos, idState);
192
+ };
216
193
 
217
- return changes
218
- .map((change) => change.change)
219
- .reduce((change1, change2) => this.composePair(change1, change2, revInfos, idState));
194
+ const innerChanges = changes.map((change) => change.change);
195
+ return balancedReduce(innerChanges, pairwiseDelegate, makeModularChangeset);
220
196
  }
221
197
 
222
198
  private composePair(
@@ -578,7 +554,7 @@ export class ModularChangeFamily
578
554
  changeHandler,
579
555
  change1: change1Normalized,
580
556
  change2: change2Normalized,
581
- } = this.normalizeFieldChanges(change1, change2, idAllocator, revisionMetadata);
557
+ } = this.normalizeFieldChanges(change1, change2);
582
558
 
583
559
  const manager = new ComposeManager(crossFieldTable, change1, fieldId);
584
560
 
@@ -1155,12 +1131,7 @@ export class ModularChangeFamily
1155
1131
  changeHandler,
1156
1132
  change1: fieldChangeset,
1157
1133
  change2: baseChangeset,
1158
- } = this.normalizeFieldChanges(
1159
- context.newChange,
1160
- context.baseChange,
1161
- genId,
1162
- rebaseMetadata,
1163
- );
1134
+ } = this.normalizeFieldChanges(context.newChange, context.baseChange);
1164
1135
 
1165
1136
  const rebaseChild = (
1166
1137
  curr: NodeId | undefined,
@@ -1338,7 +1309,7 @@ export class ModularChangeFamily
1338
1309
  changeHandler,
1339
1310
  change1: fieldChangeset,
1340
1311
  change2: baseChangeset,
1341
- } = this.normalizeFieldChanges(fieldChange, baseChange, genId, revisionMetadata);
1312
+ } = this.normalizeFieldChanges(fieldChange, baseChange);
1342
1313
 
1343
1314
  const manager = new RebaseManager(crossFieldTable, baseChange, fieldId);
1344
1315
 
@@ -2938,10 +2909,9 @@ function buildModularChangesetFromNode(props: {
2938
2909
  nodeId = { localId: brand(props.idAllocator.allocate()), revision: props.revision },
2939
2910
  } = props;
2940
2911
  setInChangeAtomIdMap(props.nodeChanges, nodeId, props.nodeChange);
2941
- const fieldChangeset = genericFieldKind.changeHandler.editor.buildChildChange(
2942
- path.parentIndex,
2943
- nodeId,
2944
- );
2912
+ const fieldChangeset = genericFieldKind.changeHandler.editor.buildChildChanges([
2913
+ [path.parentIndex, nodeId],
2914
+ ]);
2945
2915
 
2946
2916
  const fieldChange: FieldChange = {
2947
2917
  fieldKind: genericFieldKind.identifier,
@@ -645,11 +645,18 @@ export const optionalFieldEditor: OptionalFieldEditor = {
645
645
  },
646
646
  }),
647
647
 
648
- buildChildChange: (index: number, childChange: NodeId): OptionalChangeset => {
649
- assert(index === 0, 0x404 /* Optional fields only support a single child node */);
648
+ buildChildChanges: (changes: Iterable<[number, NodeId]>): OptionalChangeset => {
649
+ const childChanges: ChildChange[] = Array.from(changes, ([index, childChange]) => {
650
+ assert(index === 0, 0x404 /* Optional fields only support a single child node */);
651
+ return ["self", childChange];
652
+ });
653
+ assert(
654
+ childChanges.length <= 1,
655
+ 0xabd /* Optional fields only support a single child node */,
656
+ );
650
657
  return {
651
658
  moves: [],
652
- childChanges: [["self", childChange]],
659
+ childChanges,
653
660
  };
654
661
  },
655
662
  };
@@ -5,14 +5,10 @@
5
5
 
6
6
  import { bufferToString } from "@fluid-internal/client-utils";
7
7
  import { assert } from "@fluidframework/core-utils/internal";
8
- import type {
9
- IFluidDataStoreRuntime,
10
- IChannelStorageService,
11
- } from "@fluidframework/datastore-definitions/internal";
8
+ import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
12
9
  import { SummaryType } from "@fluidframework/driver-definitions";
13
10
  import type {
14
11
  IExperimentalIncrementalSummaryContext,
15
- IGarbageCollectionData,
16
12
  ISummaryTreeWithStats,
17
13
  ITelemetryContext,
18
14
  } from "@fluidframework/runtime-definitions/internal";
@@ -46,7 +42,6 @@ export class SchemaSummarizer implements Summarizable {
46
42
  private schemaIndexLastChangedSeq: number | undefined;
47
43
 
48
44
  public constructor(
49
- private readonly runtime: IFluidDataStoreRuntime,
50
45
  private readonly schema: MutableTreeStoredSchema,
51
46
  options: ICodecOptions,
52
47
  collabWindow: CollabWindow,
@@ -94,16 +89,6 @@ export class SchemaSummarizer implements Summarizable {
94
89
  throw new Error("Method not implemented.");
95
90
  }
96
91
 
97
- public getGCData(fullGC?: boolean): IGarbageCollectionData {
98
- // TODO: Properly implement garbage collection. Right now, garbage collection is performed automatically
99
- // by the code in SharedObject (from which SharedTreeCore extends). The `runtime.uploadBlob` API delegates
100
- // to the `BlobManager`, which automatically populates the summary with ISummaryAttachment entries for each
101
- // blob.
102
- return {
103
- gcNodes: {},
104
- };
105
- }
106
-
107
92
  public async load(
108
93
  services: IChannelStorageService,
109
94
  parse: SummaryElementParser,
@@ -75,8 +75,19 @@ export interface SequenceFieldEditor extends FieldEditor<Changeset> {
75
75
  }
76
76
 
77
77
  export const sequenceFieldEditor = {
78
- buildChildChange: (index: number, change: NodeId): Changeset =>
79
- markAtIndex(index, { count: 1, changes: change }),
78
+ buildChildChanges: (changes: Iterable<[number, NodeId]>): Changeset => {
79
+ const changeset: Changeset = [];
80
+ let currentIndex = 0;
81
+ for (const [index, change] of changes) {
82
+ assert(index >= currentIndex, 0xabe /* Child changes must be in order. */);
83
+ if (index > currentIndex) {
84
+ changeset.push({ count: index - currentIndex });
85
+ }
86
+ changeset.push({ count: 1, changes: change });
87
+ currentIndex = index + 1;
88
+ }
89
+ return changeset;
90
+ },
80
91
  insert: (
81
92
  index: number,
82
93
  count: number,
package/src/index.ts CHANGED
@@ -61,10 +61,7 @@ export {
61
61
  type SharedTreeFormatOptions,
62
62
  SharedTreeFormatVersion,
63
63
  Tree,
64
- type TransactionConstraint,
65
- type NodeInDocumentConstraint,
66
64
  type RunTransaction,
67
- rollback,
68
65
  type ForestOptions,
69
66
  getBranch,
70
67
  type BranchableTree,
@@ -73,18 +70,10 @@ export {
73
70
  type ViewContent,
74
71
  TreeAlpha,
75
72
  independentView,
76
- type RunTransactionParams,
77
- type VoidTransactionCallbackStatus,
78
- type TransactionCallbackStatus,
79
- type TransactionResult,
80
- type TransactionResultExt,
81
- type TransactionResultSuccess,
82
- type TransactionResultFailed,
83
73
  ForestTypeOptimized,
84
74
  ForestTypeExpensiveDebug,
85
75
  ForestTypeReference,
86
- SharedTreeAttributes,
87
- SharedTreeFactoryType,
76
+ type IChannelView,
88
77
  } from "./shared-tree/index.js";
89
78
 
90
79
  export {
@@ -216,10 +205,24 @@ export {
216
205
  asTreeViewAlpha,
217
206
  type NodeSchemaOptions,
218
207
  type NodeSchemaMetadata,
208
+ type schemaStatics,
209
+ type ITreeAlpha,
210
+ type TransactionConstraint,
211
+ type NodeInDocumentConstraint,
212
+ type RunTransactionParams,
213
+ type VoidTransactionCallbackStatus,
214
+ type TransactionCallbackStatus,
215
+ type TransactionResult,
216
+ type TransactionResultExt,
217
+ type TransactionResultSuccess,
218
+ type TransactionResultFailed,
219
+ rollback,
219
220
  } from "./simple-tree/index.js";
220
221
  export {
221
222
  SharedTree,
222
223
  configuredSharedTree,
224
+ SharedTreeAttributes,
225
+ SharedTreeFactoryType,
223
226
  } from "./treeFactory.js";
224
227
 
225
228
  export {
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/tree";
9
- export const pkgVersion = "2.21.0";
9
+ export const pkgVersion = "2.23.0-323641";
@@ -5,7 +5,8 @@
5
5
 
6
6
  export {
7
7
  type ISharedTree,
8
- SharedTreeFactory,
8
+ type ITreePrivate,
9
+ type SharedTreeOptionsInternal,
9
10
  type SharedTreeOptions,
10
11
  SharedTree,
11
12
  getBranch,
@@ -20,13 +21,9 @@ export {
20
21
  ForestTypeOptimized,
21
22
  ForestTypeExpensiveDebug,
22
23
  ForestTypeReference,
24
+ type IChannelView,
23
25
  } from "./sharedTree.js";
24
26
 
25
- export {
26
- SharedTreeAttributes,
27
- SharedTreeFactoryType,
28
- } from "./publicContracts.js";
29
-
30
27
  export {
31
28
  createTreeCheckout,
32
29
  TreeCheckout,
@@ -51,19 +48,6 @@ export {
51
48
  type RunTransaction,
52
49
  } from "./treeApi.js";
53
50
 
54
- export {
55
- type TransactionConstraint,
56
- type NodeInDocumentConstraint,
57
- type RunTransactionParams,
58
- type VoidTransactionCallbackStatus,
59
- type TransactionCallbackStatus,
60
- type TransactionResult,
61
- type TransactionResultExt,
62
- type TransactionResultSuccess,
63
- type TransactionResultFailed,
64
- rollback,
65
- } from "./transactionTypes.js";
66
-
67
51
  export { TreeAlpha } from "./treeApiAlpha.js";
68
52
 
69
53
  export {
@@ -46,26 +46,27 @@ import {
46
46
  type TreeBranchEvents,
47
47
  getOrCreateInnerNode,
48
48
  getKernel,
49
- } from "../simple-tree/index.js";
50
- import { Breakable, breakingClass, disposeSymbol, type WithBreakable } from "../util/index.js";
51
-
52
- import { canInitialize, ensureSchema, initialize } from "./schematizeTree.js";
53
- import type { ITreeCheckout, TreeCheckout } from "./treeCheckout.js";
54
- import { CheckoutFlexTreeView } from "./checkoutFlexTreeView.js";
55
- import {
49
+ type VoidTransactionCallbackStatus,
50
+ type TransactionCallbackStatus,
51
+ type TransactionResult,
52
+ type TransactionResultExt,
53
+ type RunTransactionParams,
54
+ type TransactionConstraint,
56
55
  HydratedContext,
57
56
  SimpleContextSlot,
58
57
  areImplicitFieldSchemaEqual,
59
58
  createUnknownOptionalFieldPolicy,
60
59
  } from "../simple-tree/index.js";
61
- import type {
62
- VoidTransactionCallbackStatus,
63
- TransactionCallbackStatus,
64
- TransactionResult,
65
- TransactionResultExt,
66
- RunTransactionParams,
67
- TransactionConstraint,
68
- } from "./transactionTypes.js";
60
+ import {
61
+ type Breakable,
62
+ breakingClass,
63
+ disposeSymbol,
64
+ type WithBreakable,
65
+ } from "../util/index.js";
66
+
67
+ import { canInitialize, ensureSchema, initialize } from "./schematizeTree.js";
68
+ import type { ITreeCheckout, TreeCheckout } from "./treeCheckout.js";
69
+ import { CheckoutFlexTreeView } from "./checkoutFlexTreeView.js";
69
70
 
70
71
  /**
71
72
  * Creating multiple tree views from the same checkout is not supported. This slot is used to detect if one already
@@ -111,14 +112,15 @@ export class SchematizingSimpleTreeView<
111
112
  private midUpgrade = false;
112
113
 
113
114
  private readonly rootFieldSchema: FieldSchema;
115
+ public readonly breaker: Breakable;
114
116
 
115
117
  public constructor(
116
118
  public readonly checkout: TreeCheckout,
117
119
  public readonly config: TreeViewConfiguration<ReadSchema<TRootSchema>>,
118
120
  public readonly nodeKeyManager: NodeKeyManager,
119
- public readonly breaker: Breakable = new Breakable("SchematizingSimpleTreeView"),
120
121
  private readonly onDispose?: () => void,
121
122
  ) {
123
+ this.breaker = checkout.breaker;
122
124
  if (checkout.forest.anchors.slots.has(ViewSlot)) {
123
125
  throw new UsageError("Cannot create a second tree view from the same checkout");
124
126
  }