@fluidframework/tree 2.21.0 → 2.22.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 (327) 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 +1 -151
  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 +11 -12
  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.js +1 -1
  70. package/dist/packageVersion.js.map +1 -1
  71. package/dist/public.d.ts +1 -0
  72. package/dist/shared-tree/index.d.ts +1 -3
  73. package/dist/shared-tree/index.d.ts.map +1 -1
  74. package/dist/shared-tree/index.js +1 -7
  75. package/dist/shared-tree/index.js.map +1 -1
  76. package/dist/shared-tree/schematizingTreeView.d.ts +4 -5
  77. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  78. package/dist/shared-tree/schematizingTreeView.js +9 -10
  79. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  80. package/dist/shared-tree/sharedTree.d.ts +39 -39
  81. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  82. package/dist/shared-tree/sharedTree.js +81 -52
  83. package/dist/shared-tree/sharedTree.js.map +1 -1
  84. package/dist/shared-tree/treeApi.d.ts +2 -2
  85. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  86. package/dist/shared-tree/treeApi.js +9 -3
  87. package/dist/shared-tree/treeApi.js.map +1 -1
  88. package/dist/shared-tree/treeCheckout.d.ts +3 -3
  89. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  90. package/dist/shared-tree/treeCheckout.js +3 -2
  91. package/dist/shared-tree/treeCheckout.js.map +1 -1
  92. package/dist/shared-tree-core/editManager.js +1 -1
  93. package/dist/shared-tree-core/editManager.js.map +1 -1
  94. package/dist/shared-tree-core/editManagerSummarizer.d.ts +1 -2
  95. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  96. package/dist/shared-tree-core/editManagerSummarizer.js +0 -9
  97. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  98. package/dist/shared-tree-core/sequenceIdUtils.d.ts +12 -1
  99. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  100. package/dist/shared-tree-core/sequenceIdUtils.js +25 -7
  101. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  102. package/dist/shared-tree-core/sharedTreeCore.d.ts +25 -30
  103. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  104. package/dist/shared-tree-core/sharedTreeCore.js +20 -49
  105. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  106. package/dist/simple-tree/api/index.d.ts +3 -2
  107. package/dist/simple-tree/api/index.d.ts.map +1 -1
  108. package/dist/simple-tree/api/index.js +3 -1
  109. package/dist/simple-tree/api/index.js.map +1 -1
  110. package/dist/simple-tree/api/schemaFactory.d.ts +156 -63
  111. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  112. package/dist/simple-tree/api/schemaFactory.js +179 -86
  113. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  114. package/dist/{shared-tree → simple-tree/api}/transactionTypes.d.ts +1 -1
  115. package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -0
  116. package/dist/{shared-tree → simple-tree/api}/transactionTypes.js.map +1 -1
  117. package/dist/simple-tree/api/tree.d.ts +23 -2
  118. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  119. package/dist/simple-tree/api/tree.js.map +1 -1
  120. package/dist/simple-tree/index.d.ts +1 -1
  121. package/dist/simple-tree/index.d.ts.map +1 -1
  122. package/dist/simple-tree/index.js +3 -2
  123. package/dist/simple-tree/index.js.map +1 -1
  124. package/dist/simple-tree/schemaTypes.d.ts +2 -2
  125. package/dist/simple-tree/schemaTypes.js +1 -1
  126. package/dist/simple-tree/schemaTypes.js.map +1 -1
  127. package/dist/simple-tree/treeNodeValid.js +1 -2
  128. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  129. package/dist/treeFactory.d.ts +16 -5
  130. package/dist/treeFactory.d.ts.map +1 -1
  131. package/dist/treeFactory.js +21 -12
  132. package/dist/treeFactory.js.map +1 -1
  133. package/dist/util/breakable.d.ts +1 -1
  134. package/dist/util/breakable.d.ts.map +1 -1
  135. package/dist/util/breakable.js.map +1 -1
  136. package/dist/util/rangeMap.d.ts +1 -1
  137. package/dist/util/rangeMap.js +1 -1
  138. package/dist/util/rangeMap.js.map +1 -1
  139. package/lib/alpha.d.ts +1 -0
  140. package/lib/beta.d.ts +1 -0
  141. package/lib/core/forest/editableForest.js +1 -1
  142. package/lib/core/forest/editableForest.js.map +1 -1
  143. package/lib/core/index.d.ts +1 -1
  144. package/lib/core/index.d.ts.map +1 -1
  145. package/lib/core/index.js.map +1 -1
  146. package/lib/core/tree/anchorSet.d.ts +2 -5
  147. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  148. package/lib/core/tree/anchorSet.js +1 -151
  149. package/lib/core/tree/anchorSet.js.map +1 -1
  150. package/lib/core/tree/index.d.ts +1 -2
  151. package/lib/core/tree/index.d.ts.map +1 -1
  152. package/lib/core/tree/index.js.map +1 -1
  153. package/lib/core/tree/pathTree.d.ts +0 -11
  154. package/lib/core/tree/pathTree.d.ts.map +1 -1
  155. package/lib/core/tree/pathTree.js.map +1 -1
  156. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  157. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  158. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +1 -1
  159. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  160. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -2
  161. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  162. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +0 -9
  163. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  164. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +2 -4
  165. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  166. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  167. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -2
  168. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  169. package/lib/feature-libraries/forest-summary/forestSummarizer.js +0 -9
  170. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  171. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +6 -2
  172. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  173. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  174. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -4
  175. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  176. package/lib/feature-libraries/modular-schema/genericFieldKind.js +4 -19
  177. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  178. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  179. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +11 -12
  180. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  181. package/lib/feature-libraries/node-key/mockNodeKeyManager.js +1 -1
  182. package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  183. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  184. package/lib/feature-libraries/optional-field/optionalField.js +7 -3
  185. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  186. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -5
  187. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  188. package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -11
  189. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  190. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +1 -1
  191. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  192. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -1
  193. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  194. package/lib/index.d.ts +3 -3
  195. package/lib/index.d.ts.map +1 -1
  196. package/lib/index.js +3 -3
  197. package/lib/index.js.map +1 -1
  198. package/lib/legacy.d.ts +1 -0
  199. package/lib/packageVersion.d.ts +1 -1
  200. package/lib/packageVersion.js +1 -1
  201. package/lib/packageVersion.js.map +1 -1
  202. package/lib/public.d.ts +1 -0
  203. package/lib/shared-tree/index.d.ts +1 -3
  204. package/lib/shared-tree/index.d.ts.map +1 -1
  205. package/lib/shared-tree/index.js +1 -3
  206. package/lib/shared-tree/index.js.map +1 -1
  207. package/lib/shared-tree/schematizingTreeView.d.ts +4 -5
  208. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  209. package/lib/shared-tree/schematizingTreeView.js +4 -5
  210. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  211. package/lib/shared-tree/sharedTree.d.ts +39 -39
  212. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  213. package/lib/shared-tree/sharedTree.js +79 -50
  214. package/lib/shared-tree/sharedTree.js.map +1 -1
  215. package/lib/shared-tree/treeApi.d.ts +2 -2
  216. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  217. package/lib/shared-tree/treeApi.js +8 -2
  218. package/lib/shared-tree/treeApi.js.map +1 -1
  219. package/lib/shared-tree/treeCheckout.d.ts +3 -3
  220. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  221. package/lib/shared-tree/treeCheckout.js +4 -3
  222. package/lib/shared-tree/treeCheckout.js.map +1 -1
  223. package/lib/shared-tree-core/editManager.js +2 -2
  224. package/lib/shared-tree-core/editManager.js.map +1 -1
  225. package/lib/shared-tree-core/editManagerSummarizer.d.ts +1 -2
  226. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  227. package/lib/shared-tree-core/editManagerSummarizer.js +0 -9
  228. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  229. package/lib/shared-tree-core/sequenceIdUtils.d.ts +12 -1
  230. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  231. package/lib/shared-tree-core/sequenceIdUtils.js +23 -5
  232. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  233. package/lib/shared-tree-core/sharedTreeCore.d.ts +25 -30
  234. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  235. package/lib/shared-tree-core/sharedTreeCore.js +19 -48
  236. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  237. package/lib/simple-tree/api/index.d.ts +3 -2
  238. package/lib/simple-tree/api/index.d.ts.map +1 -1
  239. package/lib/simple-tree/api/index.js +1 -0
  240. package/lib/simple-tree/api/index.js.map +1 -1
  241. package/lib/simple-tree/api/schemaFactory.d.ts +156 -63
  242. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  243. package/lib/simple-tree/api/schemaFactory.js +178 -85
  244. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  245. package/lib/{shared-tree → simple-tree/api}/transactionTypes.d.ts +1 -1
  246. package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -0
  247. package/lib/{shared-tree → simple-tree/api}/transactionTypes.js.map +1 -1
  248. package/lib/simple-tree/api/tree.d.ts +23 -2
  249. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  250. package/lib/simple-tree/api/tree.js.map +1 -1
  251. package/lib/simple-tree/index.d.ts +1 -1
  252. package/lib/simple-tree/index.d.ts.map +1 -1
  253. package/lib/simple-tree/index.js +1 -1
  254. package/lib/simple-tree/index.js.map +1 -1
  255. package/lib/simple-tree/schemaTypes.d.ts +2 -2
  256. package/lib/simple-tree/schemaTypes.js +1 -1
  257. package/lib/simple-tree/schemaTypes.js.map +1 -1
  258. package/lib/simple-tree/treeNodeValid.js +1 -2
  259. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  260. package/lib/treeFactory.d.ts +16 -5
  261. package/lib/treeFactory.d.ts.map +1 -1
  262. package/lib/treeFactory.js +20 -11
  263. package/lib/treeFactory.js.map +1 -1
  264. package/lib/util/breakable.d.ts +1 -1
  265. package/lib/util/breakable.d.ts.map +1 -1
  266. package/lib/util/breakable.js.map +1 -1
  267. package/lib/util/rangeMap.d.ts +1 -1
  268. package/lib/util/rangeMap.js +1 -1
  269. package/lib/util/rangeMap.js.map +1 -1
  270. package/package.json +21 -21
  271. package/src/core/forest/editableForest.ts +1 -1
  272. package/src/core/index.ts +0 -3
  273. package/src/core/tree/anchorSet.ts +4 -197
  274. package/src/core/tree/index.ts +0 -3
  275. package/src/core/tree/pathTree.ts +0 -13
  276. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +1 -1
  277. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +0 -11
  278. package/src/feature-libraries/flex-tree/treeEvents.ts +2 -4
  279. package/src/feature-libraries/forest-summary/forestSummarizer.ts +0 -11
  280. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +6 -2
  281. package/src/feature-libraries/modular-schema/genericFieldKind.ts +3 -35
  282. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +9 -42
  283. package/src/feature-libraries/optional-field/optionalField.ts +10 -3
  284. package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -16
  285. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +13 -2
  286. package/src/index.ts +15 -12
  287. package/src/packageVersion.ts +1 -1
  288. package/src/shared-tree/index.ts +3 -19
  289. package/src/shared-tree/schematizingTreeView.ts +18 -16
  290. package/src/shared-tree/sharedTree.ts +203 -100
  291. package/src/shared-tree/treeApi.ts +10 -1
  292. package/src/shared-tree/treeCheckout.ts +11 -8
  293. package/src/shared-tree-core/editManager.ts +2 -2
  294. package/src/shared-tree-core/editManagerSummarizer.ts +0 -11
  295. package/src/shared-tree-core/sequenceIdUtils.ts +26 -5
  296. package/src/shared-tree-core/sharedTreeCore.ts +30 -87
  297. package/src/simple-tree/api/index.ts +15 -0
  298. package/src/simple-tree/api/schemaFactory.ts +203 -89
  299. package/src/{shared-tree → simple-tree/api}/transactionTypes.ts +1 -1
  300. package/src/simple-tree/api/tree.ts +31 -6
  301. package/src/simple-tree/index.ts +12 -0
  302. package/src/simple-tree/schemaTypes.ts +2 -2
  303. package/src/treeFactory.ts +29 -11
  304. package/src/util/breakable.ts +1 -1
  305. package/src/util/rangeMap.ts +1 -1
  306. package/dist/core/tree/visitPath.d.ts +0 -101
  307. package/dist/core/tree/visitPath.d.ts.map +0 -1
  308. package/dist/core/tree/visitPath.js +0 -7
  309. package/dist/core/tree/visitPath.js.map +0 -1
  310. package/dist/shared-tree/publicContracts.d.ts +0 -18
  311. package/dist/shared-tree/publicContracts.d.ts.map +0 -1
  312. package/dist/shared-tree/publicContracts.js +0 -24
  313. package/dist/shared-tree/publicContracts.js.map +0 -1
  314. package/dist/shared-tree/transactionTypes.d.ts.map +0 -1
  315. package/lib/core/tree/visitPath.d.ts +0 -101
  316. package/lib/core/tree/visitPath.d.ts.map +0 -1
  317. package/lib/core/tree/visitPath.js +0 -6
  318. package/lib/core/tree/visitPath.js.map +0 -1
  319. package/lib/shared-tree/publicContracts.d.ts +0 -18
  320. package/lib/shared-tree/publicContracts.d.ts.map +0 -1
  321. package/lib/shared-tree/publicContracts.js +0 -21
  322. package/lib/shared-tree/publicContracts.js.map +0 -1
  323. package/lib/shared-tree/transactionTypes.d.ts.map +0 -1
  324. package/src/core/tree/visitPath.ts +0 -124
  325. package/src/shared-tree/publicContracts.ts +0 -24
  326. /package/dist/{shared-tree → simple-tree/api}/transactionTypes.js +0 -0
  327. /package/lib/{shared-tree → simple-tree/api}/transactionTypes.js +0 -0
@@ -7,7 +7,6 @@ import { bufferToString } from "@fluid-internal/client-utils";
7
7
  import { assert } from "@fluidframework/core-utils/internal";
8
8
  import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
9
9
  import type {
10
- IGarbageCollectionData,
11
10
  ISummaryTreeWithStats,
12
11
  ITelemetryContext,
13
12
  } from "@fluidframework/runtime-definitions/internal";
@@ -114,16 +113,6 @@ export class ForestSummarizer implements Summarizable {
114
113
  return createSingleBlobSummary(treeBlobKey, this.getTreeString(stringify));
115
114
  }
116
115
 
117
- public getGCData(fullGC?: boolean): IGarbageCollectionData {
118
- // TODO: Properly implement garbage collection. Right now, garbage collection is performed automatically
119
- // by the code in SharedObject (from which SharedTreeCore extends). The `runtime.uploadBlob` API delegates
120
- // to the `BlobManager`, which automatically populates the summary with ISummaryAttachment entries for each
121
- // blob.
122
- return {
123
- gcNodes: {},
124
- };
125
- }
126
-
127
116
  public async load(
128
117
  services: IChannelStorageService,
129
118
  parse: SummaryElementParser,
@@ -201,9 +201,13 @@ export function isolatedFieldChangeRebaser<TChangeset>(data: {
201
201
 
202
202
  export interface FieldEditor<TChangeset> {
203
203
  /**
204
- * Creates a changeset which represents the given `change` to the child at `childIndex` of this editor's field.
204
+ * Creates a changeset which represents the given changes to the children of this editor's field.
205
+ * For each element in the given iterable
206
+ * - The number represents the index of the child node in the field.
207
+ * - The `NodeId` represents the nested changes for that child node.
208
+ * Note: The indices in the iterable must be ordered from smallest to largest (with no duplicates).
205
209
  */
206
- buildChildChange(childIndex: number, change: NodeId): TChangeset;
210
+ buildChildChanges(changes: Iterable<[index: number, change: NodeId]>): TChangeset;
207
211
  }
208
212
 
209
213
  /**
@@ -6,14 +6,11 @@
6
6
  import {
7
7
  type DeltaDetachedNodeId,
8
8
  type DeltaMark,
9
- type RevisionMetadataSource,
10
9
  Multiplicity,
11
10
  type RevisionTag,
12
11
  replaceAtomRevisions,
13
12
  } from "../../core/index.js";
14
- import { type IdAllocator, fail } from "../../util/index.js";
15
13
  import { assert } from "@fluidframework/core-utils/internal";
16
- import type { CrossFieldManager } from "./crossFieldQueries.js";
17
14
  import type {
18
15
  FieldChangeDelta,
19
16
  FieldChangeHandler,
@@ -43,8 +40,8 @@ export const genericChangeHandler: FieldChangeHandler<GenericChangeset> = {
43
40
  },
44
41
  codecsFactory: makeGenericChangeCodec,
45
42
  editor: {
46
- buildChildChange(index, change): GenericChangeset {
47
- return newGenericChangeset([[index, change]]);
43
+ buildChildChanges(changes: Iterable<[number, NodeId]>): GenericChangeset {
44
+ return newGenericChangeset(Array.from(changes));
48
45
  },
49
46
  },
50
47
  intoDelta: (change: GenericChangeset, deltaFromChild: ToDelta): FieldChangeDelta => {
@@ -182,39 +179,10 @@ export const genericFieldKind: FieldKindWithEditor = new FieldKindWithEditor(
182
179
  export function convertGenericChange<TChange>(
183
180
  changeset: GenericChangeset,
184
181
  target: FieldChangeHandler<TChange>,
185
- composeChild: NodeChangeComposer,
186
- genId: IdAllocator,
187
- revisionMetadata: RevisionMetadataSource,
188
182
  ): TChange {
189
- const perIndex: TChange[] = [];
190
- for (const [index, nodeChange] of changeset.entries()) {
191
- perIndex.push(target.editor.buildChildChange(index, nodeChange));
192
- }
193
-
194
- if (perIndex.length === 0) {
195
- return target.createEmpty();
196
- }
197
-
198
- return perIndex.reduce((a, b) =>
199
- target.rebaser.compose(
200
- a,
201
- b,
202
- composeChild,
203
- genId,
204
- invalidCrossFieldManager,
205
- revisionMetadata,
206
- ),
207
- );
183
+ return target.editor.buildChildChanges(changeset.entries());
208
184
  }
209
185
 
210
- const invalidFunc = (): never => fail("Should not be called when converting generic changes");
211
- const invalidCrossFieldManager: CrossFieldManager = {
212
- set: invalidFunc,
213
- get: invalidFunc,
214
- onMoveIn: invalidFunc,
215
- moveKey: invalidFunc,
216
- };
217
-
218
186
  function* relevantRemovedRoots(
219
187
  change: GenericChangeset,
220
188
  relevantRemovedRootsFromChild: RelevantRemovedRootsFromChild,
@@ -131,8 +131,6 @@ export class ModularChangeFamily
131
131
  private normalizeFieldChanges(
132
132
  change1: FieldChange,
133
133
  change2: FieldChange,
134
- genId: IdAllocator,
135
- revisionMetadata: RevisionMetadataSource,
136
134
  ): {
137
135
  fieldKind: FieldKindIdentifier;
138
136
  changeHandler: FieldChangeHandler<unknown>;
@@ -156,18 +154,8 @@ export class ModularChangeFamily
156
154
  }
157
155
  const fieldKind = getFieldKind(this.fieldKinds, kind);
158
156
  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
- );
157
+ const normalizedChange1 = this.normalizeFieldChange(change1, changeHandler);
158
+ const normalizedChange2 = this.normalizeFieldChange(change2, changeHandler);
171
159
  return {
172
160
  fieldKind: kind,
173
161
  changeHandler,
@@ -179,8 +167,6 @@ export class ModularChangeFamily
179
167
  private normalizeFieldChange<T>(
180
168
  fieldChange: FieldChange,
181
169
  handler: FieldChangeHandler<T>,
182
- genId: IdAllocator,
183
- revisionMetadata: RevisionMetadataSource,
184
170
  ): FieldChangeset {
185
171
  if (fieldChange.fieldKind !== genericFieldKind.identifier) {
186
172
  return fieldChange.change;
@@ -188,20 +174,7 @@ export class ModularChangeFamily
188
174
 
189
175
  // The cast is based on the `fieldKind` check above
190
176
  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;
177
+ const convertedChange = convertGenericChange(genericChange, handler) as FieldChangeset;
205
178
 
206
179
  return convertedChange;
207
180
  }
@@ -578,7 +551,7 @@ export class ModularChangeFamily
578
551
  changeHandler,
579
552
  change1: change1Normalized,
580
553
  change2: change2Normalized,
581
- } = this.normalizeFieldChanges(change1, change2, idAllocator, revisionMetadata);
554
+ } = this.normalizeFieldChanges(change1, change2);
582
555
 
583
556
  const manager = new ComposeManager(crossFieldTable, change1, fieldId);
584
557
 
@@ -1155,12 +1128,7 @@ export class ModularChangeFamily
1155
1128
  changeHandler,
1156
1129
  change1: fieldChangeset,
1157
1130
  change2: baseChangeset,
1158
- } = this.normalizeFieldChanges(
1159
- context.newChange,
1160
- context.baseChange,
1161
- genId,
1162
- rebaseMetadata,
1163
- );
1131
+ } = this.normalizeFieldChanges(context.newChange, context.baseChange);
1164
1132
 
1165
1133
  const rebaseChild = (
1166
1134
  curr: NodeId | undefined,
@@ -1338,7 +1306,7 @@ export class ModularChangeFamily
1338
1306
  changeHandler,
1339
1307
  change1: fieldChangeset,
1340
1308
  change2: baseChangeset,
1341
- } = this.normalizeFieldChanges(fieldChange, baseChange, genId, revisionMetadata);
1309
+ } = this.normalizeFieldChanges(fieldChange, baseChange);
1342
1310
 
1343
1311
  const manager = new RebaseManager(crossFieldTable, baseChange, fieldId);
1344
1312
 
@@ -2938,10 +2906,9 @@ function buildModularChangesetFromNode(props: {
2938
2906
  nodeId = { localId: brand(props.idAllocator.allocate()), revision: props.revision },
2939
2907
  } = props;
2940
2908
  setInChangeAtomIdMap(props.nodeChanges, nodeId, props.nodeChange);
2941
- const fieldChangeset = genericFieldKind.changeHandler.editor.buildChildChange(
2942
- path.parentIndex,
2943
- nodeId,
2944
- );
2909
+ const fieldChangeset = genericFieldKind.changeHandler.editor.buildChildChanges([
2910
+ [path.parentIndex, nodeId],
2911
+ ]);
2945
2912
 
2946
2913
  const fieldChange: FieldChange = {
2947
2914
  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.22.0";
@@ -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
  }