@fluidframework/tree 2.74.0-368706 → 2.74.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 (1030) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/CHANGELOG.md +11 -0
  3. package/api-report/tree.alpha.api.md +19 -15
  4. package/assertTagging.config.mjs +1 -1
  5. package/dist/alpha.d.ts +3 -0
  6. package/dist/codec/codec.d.ts +32 -17
  7. package/dist/codec/codec.d.ts.map +1 -1
  8. package/dist/codec/codec.js +40 -24
  9. package/dist/codec/codec.js.map +1 -1
  10. package/dist/core/change-family/changeFamily.d.ts +1 -4
  11. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  12. package/dist/core/change-family/changeFamily.js.map +1 -1
  13. package/dist/core/change-family/index.d.ts +1 -1
  14. package/dist/core/change-family/index.d.ts.map +1 -1
  15. package/dist/core/change-family/index.js.map +1 -1
  16. package/dist/core/index.d.ts +3 -3
  17. package/dist/core/index.d.ts.map +1 -1
  18. package/dist/core/index.js +4 -6
  19. package/dist/core/index.js.map +1 -1
  20. package/dist/core/rebase/changeRebaser.d.ts +1 -6
  21. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  22. package/dist/core/rebase/changeRebaser.js.map +1 -1
  23. package/dist/core/rebase/index.d.ts +1 -1
  24. package/dist/core/rebase/index.d.ts.map +1 -1
  25. package/dist/core/rebase/index.js +1 -2
  26. package/dist/core/rebase/index.js.map +1 -1
  27. package/dist/core/rebase/types.d.ts +21 -3
  28. package/dist/core/rebase/types.d.ts.map +1 -1
  29. package/dist/core/rebase/types.js +1 -5
  30. package/dist/core/rebase/types.js.map +1 -1
  31. package/dist/core/rebase/utils.d.ts.map +1 -1
  32. package/dist/core/rebase/utils.js +7 -25
  33. package/dist/core/rebase/utils.js.map +1 -1
  34. package/dist/core/schema-stored/schema.d.ts +4 -7
  35. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  36. package/dist/core/schema-stored/schema.js +2 -2
  37. package/dist/core/schema-stored/schema.js.map +1 -1
  38. package/dist/core/tree/detachedFieldIndex.d.ts +0 -6
  39. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  40. package/dist/core/tree/detachedFieldIndex.js +0 -9
  41. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  42. package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts +4 -4
  43. package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
  44. package/dist/core/tree/detachedFieldIndexFormatCommon.js +2 -2
  45. package/dist/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  46. package/dist/core/tree/index.d.ts +1 -1
  47. package/dist/core/tree/index.d.ts.map +1 -1
  48. package/dist/core/tree/index.js +3 -4
  49. package/dist/core/tree/index.js.map +1 -1
  50. package/dist/core/tree/pathTree.d.ts +3 -11
  51. package/dist/core/tree/pathTree.d.ts.map +1 -1
  52. package/dist/core/tree/pathTree.js +2 -14
  53. package/dist/core/tree/pathTree.js.map +1 -1
  54. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  55. package/dist/feature-libraries/chunked-forest/basicChunk.js +0 -7
  56. package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  57. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  58. package/dist/feature-libraries/chunked-forest/chunkTree.js +1 -4
  59. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  60. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  61. package/dist/feature-libraries/chunked-forest/codec/codecs.js +2 -2
  62. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  63. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +5 -5
  64. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  65. package/dist/feature-libraries/chunked-forest/codec/format.js +4 -4
  66. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  67. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +42 -90
  68. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  69. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +69 -234
  70. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  71. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
  72. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  73. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +2 -11
  74. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  75. package/dist/feature-libraries/default-schema/index.d.ts +1 -2
  76. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  77. package/dist/feature-libraries/default-schema/index.js +2 -4
  78. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  79. package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts +6 -7
  80. package/dist/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
  81. package/dist/feature-libraries/default-schema/mappedEditBuilder.js +0 -15
  82. package/dist/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
  83. package/dist/feature-libraries/deltaUtils.d.ts +0 -1
  84. package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
  85. package/dist/feature-libraries/deltaUtils.js +1 -6
  86. package/dist/feature-libraries/deltaUtils.js.map +1 -1
  87. package/dist/feature-libraries/flex-tree/context.d.ts +0 -9
  88. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  89. package/dist/feature-libraries/flex-tree/context.js +0 -6
  90. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  91. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
  92. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  93. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  94. package/dist/feature-libraries/flex-tree/lazyField.d.ts +7 -8
  95. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  96. package/dist/feature-libraries/flex-tree/lazyField.js +8 -37
  97. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  98. package/dist/feature-libraries/forest-summary/codec.d.ts +8 -2
  99. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  100. package/dist/feature-libraries/forest-summary/codec.js +13 -11
  101. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  102. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -2
  103. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  104. package/dist/feature-libraries/forest-summary/forestSummarizer.js +18 -9
  105. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  106. package/dist/feature-libraries/forest-summary/formatCommon.d.ts +61 -0
  107. package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -0
  108. package/dist/feature-libraries/forest-summary/{format.js → formatCommon.js} +9 -6
  109. package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -0
  110. package/dist/feature-libraries/forest-summary/{format.d.ts → formatV1.d.ts} +6 -14
  111. package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +1 -0
  112. package/dist/feature-libraries/forest-summary/formatV1.js +11 -0
  113. package/dist/feature-libraries/forest-summary/formatV1.js.map +1 -0
  114. package/dist/feature-libraries/forest-summary/formatV2.d.ts +51 -0
  115. package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +1 -0
  116. package/dist/feature-libraries/forest-summary/formatV2.js +11 -0
  117. package/dist/feature-libraries/forest-summary/formatV2.js.map +1 -0
  118. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +7 -15
  119. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  120. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +11 -20
  121. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  122. package/dist/feature-libraries/forest-summary/index.d.ts +1 -2
  123. package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -1
  124. package/dist/feature-libraries/forest-summary/index.js +3 -5
  125. package/dist/feature-libraries/forest-summary/index.js.map +1 -1
  126. package/dist/feature-libraries/forest-summary/summaryFormatCommon.d.ts +35 -0
  127. package/dist/feature-libraries/forest-summary/summaryFormatCommon.d.ts.map +1 -0
  128. package/dist/feature-libraries/forest-summary/summaryFormatCommon.js +43 -0
  129. package/dist/feature-libraries/forest-summary/summaryFormatCommon.js.map +1 -0
  130. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts +11 -0
  131. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts.map +1 -0
  132. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.js +14 -0
  133. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.js.map +1 -0
  134. package/dist/feature-libraries/forest-summary/summaryFormatV3.d.ts +18 -0
  135. package/dist/feature-libraries/forest-summary/summaryFormatV3.d.ts.map +1 -0
  136. package/dist/feature-libraries/forest-summary/summaryFormatV3.js +21 -0
  137. package/dist/feature-libraries/forest-summary/summaryFormatV3.js.map +1 -0
  138. package/dist/feature-libraries/forest-summary/summaryTypes.d.ts +7 -37
  139. package/dist/feature-libraries/forest-summary/summaryTypes.d.ts.map +1 -1
  140. package/dist/feature-libraries/forest-summary/summaryTypes.js +23 -45
  141. package/dist/feature-libraries/forest-summary/summaryTypes.js.map +1 -1
  142. package/dist/feature-libraries/index.d.ts +3 -3
  143. package/dist/feature-libraries/index.d.ts.map +1 -1
  144. package/dist/feature-libraries/index.js +3 -6
  145. package/dist/feature-libraries/index.js.map +1 -1
  146. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  147. package/dist/feature-libraries/mapTreeCursor.js +0 -1
  148. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  149. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  150. package/dist/feature-libraries/mitigatedChangeFamily.js +2 -2
  151. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  152. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  153. package/dist/feature-libraries/modular-schema/comparison.js +1 -1
  154. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  155. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +21 -97
  156. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  157. package/dist/feature-libraries/modular-schema/crossFieldQueries.js +7 -4
  158. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  159. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +52 -20
  160. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  161. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  162. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  163. package/dist/feature-libraries/modular-schema/genericFieldKind.js +9 -3
  164. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  165. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
  166. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  167. package/dist/feature-libraries/modular-schema/index.d.ts +4 -4
  168. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  169. package/dist/feature-libraries/modular-schema/index.js +8 -11
  170. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  171. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  172. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  173. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +284 -8
  174. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  175. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +15 -48
  176. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  177. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +465 -1298
  178. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  179. package/{lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts → dist/feature-libraries/modular-schema/modularChangeFormat.d.ts} +2 -2
  180. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -0
  181. package/dist/feature-libraries/modular-schema/{modularChangeFormatV1.js → modularChangeFormat.js} +5 -5
  182. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -0
  183. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +10 -50
  184. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  185. package/dist/feature-libraries/modular-schema/modularChangeTypes.js +3 -24
  186. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  187. package/dist/feature-libraries/optional-field/index.d.ts +2 -2
  188. package/dist/feature-libraries/optional-field/index.d.ts.map +1 -1
  189. package/dist/feature-libraries/optional-field/index.js +2 -1
  190. package/dist/feature-libraries/optional-field/index.js.map +1 -1
  191. package/dist/feature-libraries/optional-field/optionalField.d.ts +26 -5
  192. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  193. package/dist/feature-libraries/optional-field/optionalField.js +451 -217
  194. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  195. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +33 -24
  196. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  197. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  198. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
  199. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  200. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +28 -57
  201. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  202. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  203. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -3
  204. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  205. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  206. package/dist/feature-libraries/schema-index/codec.js +4 -4
  207. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  208. package/dist/feature-libraries/schema-index/formatV1.d.ts +1 -1
  209. package/dist/feature-libraries/schema-index/formatV2.d.ts +1 -1
  210. package/dist/feature-libraries/sequence-field/compose.d.ts +7 -6
  211. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  212. package/dist/feature-libraries/sequence-field/compose.js +256 -80
  213. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  214. package/dist/feature-libraries/sequence-field/helperTypes.d.ts +10 -14
  215. package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  216. package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  217. package/dist/feature-libraries/sequence-field/index.d.ts +3 -2
  218. package/dist/feature-libraries/sequence-field/index.d.ts.map +1 -1
  219. package/dist/feature-libraries/sequence-field/index.js +3 -1
  220. package/dist/feature-libraries/sequence-field/index.js.map +1 -1
  221. package/dist/feature-libraries/sequence-field/invert.d.ts +3 -3
  222. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  223. package/dist/feature-libraries/sequence-field/invert.js +167 -65
  224. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  225. package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  226. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  227. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  228. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +56 -4
  229. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  230. package/dist/feature-libraries/sequence-field/moveEffectTable.js +86 -7
  231. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  232. package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -3
  233. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  234. package/dist/feature-libraries/sequence-field/rebase.js +112 -106
  235. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  236. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
  237. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
  238. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +50 -0
  239. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
  240. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  241. package/dist/feature-libraries/sequence-field/replaceRevisions.js +33 -16
  242. package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  243. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  244. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +2 -0
  245. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  246. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -22
  247. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  248. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +179 -358
  249. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  250. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  251. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +60 -20
  252. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  253. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
  254. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  255. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +10 -10
  256. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  257. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -3
  258. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  259. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +109 -14
  260. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  261. package/dist/feature-libraries/sequence-field/types.d.ts +59 -30
  262. package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
  263. package/dist/feature-libraries/sequence-field/types.js.map +1 -1
  264. package/dist/feature-libraries/sequence-field/utils.d.ts +24 -15
  265. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  266. package/dist/feature-libraries/sequence-field/utils.js +299 -111
  267. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  268. package/dist/index.d.ts +2 -2
  269. package/dist/index.d.ts.map +1 -1
  270. package/dist/index.js +3 -1
  271. package/dist/index.js.map +1 -1
  272. package/dist/packageVersion.d.ts +1 -1
  273. package/dist/packageVersion.d.ts.map +1 -1
  274. package/dist/packageVersion.js +1 -1
  275. package/dist/packageVersion.js.map +1 -1
  276. package/dist/shared-tree/independentView.d.ts.map +1 -1
  277. package/dist/shared-tree/independentView.js +1 -1
  278. package/dist/shared-tree/independentView.js.map +1 -1
  279. package/dist/shared-tree/index.d.ts +1 -1
  280. package/dist/shared-tree/index.d.ts.map +1 -1
  281. package/dist/shared-tree/index.js.map +1 -1
  282. package/dist/shared-tree/schematizeTree.d.ts +4 -4
  283. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  284. package/dist/shared-tree/schematizeTree.js +1 -2
  285. package/dist/shared-tree/schematizeTree.js.map +1 -1
  286. package/dist/shared-tree/schematizingTreeView.d.ts +7 -2
  287. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  288. package/dist/shared-tree/schematizingTreeView.js +36 -32
  289. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  290. package/dist/shared-tree/sharedTree.d.ts +3 -9
  291. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  292. package/dist/shared-tree/sharedTree.js +0 -10
  293. package/dist/shared-tree/sharedTree.js.map +1 -1
  294. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
  295. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  296. package/dist/shared-tree/sharedTreeChangeCodecs.js +2 -3
  297. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  298. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  299. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  300. package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
  301. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  302. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +6 -16
  303. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  304. package/dist/shared-tree/sharedTreeEditBuilder.js +6 -13
  305. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  306. package/dist/shared-tree/treeCheckout.d.ts +15 -12
  307. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  308. package/dist/shared-tree/treeCheckout.js +54 -48
  309. package/dist/shared-tree/treeCheckout.js.map +1 -1
  310. package/dist/shared-tree-core/branch.d.ts +2 -3
  311. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  312. package/dist/shared-tree-core/branch.js +3 -4
  313. package/dist/shared-tree-core/branch.js.map +1 -1
  314. package/dist/shared-tree-core/editManager.d.ts +2 -2
  315. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  316. package/dist/shared-tree-core/editManager.js +9 -9
  317. package/dist/shared-tree-core/editManager.js.map +1 -1
  318. package/dist/shared-tree-core/editManagerCodecs.d.ts +0 -4
  319. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  320. package/dist/shared-tree-core/editManagerCodecs.js +7 -15
  321. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  322. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js +1 -1
  323. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
  324. package/dist/shared-tree-core/editManagerFormatCommons.d.ts +8 -44
  325. package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  326. package/dist/shared-tree-core/editManagerFormatCommons.js +2 -8
  327. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  328. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
  329. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
  330. package/dist/shared-tree-core/editManagerFormatV1toV4.js +0 -1
  331. package/dist/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  332. package/dist/shared-tree-core/editManagerFormatVSharedBranches.d.ts +1 -1
  333. package/dist/shared-tree-core/index.d.ts +3 -2
  334. package/dist/shared-tree-core/index.d.ts.map +1 -1
  335. package/dist/shared-tree-core/index.js +2 -3
  336. package/dist/shared-tree-core/index.js.map +1 -1
  337. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
  338. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
  339. package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
  340. package/dist/shared-tree-core/messageCodecs.d.ts +0 -4
  341. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  342. package/dist/shared-tree-core/messageCodecs.js +9 -17
  343. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  344. package/dist/shared-tree-core/messageFormat.d.ts +9 -50
  345. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  346. package/dist/shared-tree-core/messageFormat.js +3 -8
  347. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  348. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts +2 -3
  349. package/dist/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
  350. package/dist/shared-tree-core/messageFormatV1ToV4.js +1 -8
  351. package/dist/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  352. package/dist/shared-tree-core/messageFormatVSharedBranches.d.ts +1 -1
  353. package/dist/shared-tree-core/sharedTreeCore.d.ts +0 -1
  354. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  355. package/dist/shared-tree-core/sharedTreeCore.js +1 -1
  356. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  357. package/dist/shared-tree-core/versionedSummarizer.d.ts +6 -1
  358. package/dist/shared-tree-core/versionedSummarizer.d.ts.map +1 -1
  359. package/dist/shared-tree-core/versionedSummarizer.js +4 -3
  360. package/dist/shared-tree-core/versionedSummarizer.js.map +1 -1
  361. package/dist/simple-tree/api/eraseSchemaDetails.d.ts +89 -0
  362. package/dist/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -0
  363. package/dist/simple-tree/api/eraseSchemaDetails.js +97 -0
  364. package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -0
  365. package/dist/simple-tree/api/index.d.ts +1 -0
  366. package/dist/simple-tree/api/index.d.ts.map +1 -1
  367. package/dist/simple-tree/api/index.js +5 -1
  368. package/dist/simple-tree/api/index.js.map +1 -1
  369. package/dist/simple-tree/api/storedSchema.d.ts +1 -1
  370. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  371. package/dist/simple-tree/api/storedSchema.js +1 -2
  372. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  373. package/dist/simple-tree/api/tree.d.ts +15 -2
  374. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  375. package/dist/simple-tree/api/tree.js.map +1 -1
  376. package/dist/simple-tree/core/treeNode.d.ts.map +1 -1
  377. package/dist/simple-tree/core/treeNode.js +1 -0
  378. package/dist/simple-tree/core/treeNode.js.map +1 -1
  379. package/dist/simple-tree/core/unhydratedFlexTree.d.ts +15 -15
  380. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  381. package/dist/simple-tree/core/unhydratedFlexTree.js +8 -59
  382. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  383. package/dist/simple-tree/createContext.d.ts.map +1 -1
  384. package/dist/simple-tree/createContext.js +1 -1
  385. package/dist/simple-tree/createContext.js.map +1 -1
  386. package/dist/simple-tree/fieldSchema.d.ts +4 -4
  387. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  388. package/dist/simple-tree/fieldSchema.js.map +1 -1
  389. package/dist/simple-tree/index.d.ts +3 -3
  390. package/dist/simple-tree/index.d.ts.map +1 -1
  391. package/dist/simple-tree/index.js +5 -3
  392. package/dist/simple-tree/index.js.map +1 -1
  393. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  394. package/dist/simple-tree/node-kinds/array/arrayNode.js +3 -5
  395. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  396. package/dist/simple-tree/node-kinds/common.d.ts.map +1 -1
  397. package/dist/simple-tree/node-kinds/common.js +1 -1
  398. package/dist/simple-tree/node-kinds/common.js.map +1 -1
  399. package/dist/simple-tree/node-kinds/map/mapNode.js +2 -2
  400. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  401. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  402. package/dist/simple-tree/node-kinds/object/objectNode.js +18 -18
  403. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  404. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  405. package/dist/simple-tree/node-kinds/record/recordNode.js +2 -4
  406. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  407. package/dist/simple-tree/prepareForInsertion.d.ts +47 -54
  408. package/dist/simple-tree/prepareForInsertion.d.ts.map +1 -1
  409. package/dist/simple-tree/prepareForInsertion.js +125 -183
  410. package/dist/simple-tree/prepareForInsertion.js.map +1 -1
  411. package/dist/simple-tree/toStoredSchema.js +3 -3
  412. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  413. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +4 -13
  414. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  415. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +11 -29
  416. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  417. package/dist/tableSchema.d.ts +3 -14
  418. package/dist/tableSchema.d.ts.map +1 -1
  419. package/dist/tableSchema.js +2 -2
  420. package/dist/tableSchema.js.map +1 -1
  421. package/dist/treeFactory.d.ts.map +1 -1
  422. package/dist/treeFactory.js +3 -17
  423. package/dist/treeFactory.js.map +1 -1
  424. package/dist/util/brand.d.ts +49 -0
  425. package/dist/util/brand.d.ts.map +1 -1
  426. package/dist/util/brand.js +47 -1
  427. package/dist/util/brand.js.map +1 -1
  428. package/dist/util/index.d.ts +2 -2
  429. package/dist/util/index.d.ts.map +1 -1
  430. package/dist/util/index.js +4 -3
  431. package/dist/util/index.js.map +1 -1
  432. package/dist/util/rangeMap.d.ts +12 -24
  433. package/dist/util/rangeMap.d.ts.map +1 -1
  434. package/dist/util/rangeMap.js +6 -46
  435. package/dist/util/rangeMap.js.map +1 -1
  436. package/docs/main/sequence-field/move-composition.md +46 -0
  437. package/eslint.config.mts +98 -0
  438. package/lib/alpha.d.ts +3 -0
  439. package/lib/codec/codec.d.ts +32 -17
  440. package/lib/codec/codec.d.ts.map +1 -1
  441. package/lib/codec/codec.js +34 -18
  442. package/lib/codec/codec.js.map +1 -1
  443. package/lib/core/change-family/changeFamily.d.ts +1 -4
  444. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  445. package/lib/core/change-family/changeFamily.js.map +1 -1
  446. package/lib/core/change-family/index.d.ts +1 -1
  447. package/lib/core/change-family/index.d.ts.map +1 -1
  448. package/lib/core/change-family/index.js.map +1 -1
  449. package/lib/core/index.d.ts +3 -3
  450. package/lib/core/index.d.ts.map +1 -1
  451. package/lib/core/index.js +2 -2
  452. package/lib/core/index.js.map +1 -1
  453. package/lib/core/rebase/changeRebaser.d.ts +1 -6
  454. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  455. package/lib/core/rebase/changeRebaser.js.map +1 -1
  456. package/lib/core/rebase/index.d.ts +1 -1
  457. package/lib/core/rebase/index.d.ts.map +1 -1
  458. package/lib/core/rebase/index.js +1 -1
  459. package/lib/core/rebase/index.js.map +1 -1
  460. package/lib/core/rebase/types.d.ts +21 -3
  461. package/lib/core/rebase/types.d.ts.map +1 -1
  462. package/lib/core/rebase/types.js +0 -3
  463. package/lib/core/rebase/types.js.map +1 -1
  464. package/lib/core/rebase/utils.d.ts.map +1 -1
  465. package/lib/core/rebase/utils.js +7 -25
  466. package/lib/core/rebase/utils.js.map +1 -1
  467. package/lib/core/schema-stored/schema.d.ts +4 -7
  468. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  469. package/lib/core/schema-stored/schema.js +3 -3
  470. package/lib/core/schema-stored/schema.js.map +1 -1
  471. package/lib/core/tree/detachedFieldIndex.d.ts +0 -6
  472. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  473. package/lib/core/tree/detachedFieldIndex.js +1 -10
  474. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  475. package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts +4 -4
  476. package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
  477. package/lib/core/tree/detachedFieldIndexFormatCommon.js +3 -3
  478. package/lib/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  479. package/lib/core/tree/index.d.ts +1 -1
  480. package/lib/core/tree/index.d.ts.map +1 -1
  481. package/lib/core/tree/index.js +1 -1
  482. package/lib/core/tree/index.js.map +1 -1
  483. package/lib/core/tree/pathTree.d.ts +3 -11
  484. package/lib/core/tree/pathTree.d.ts.map +1 -1
  485. package/lib/core/tree/pathTree.js +1 -12
  486. package/lib/core/tree/pathTree.js.map +1 -1
  487. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  488. package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -8
  489. package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  490. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  491. package/lib/feature-libraries/chunked-forest/chunkTree.js +1 -4
  492. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  493. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  494. package/lib/feature-libraries/chunked-forest/codec/codecs.js +3 -3
  495. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  496. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +5 -5
  497. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  498. package/lib/feature-libraries/chunked-forest/codec/format.js +5 -5
  499. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  500. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +42 -90
  501. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  502. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +69 -232
  503. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  504. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +1 -1
  505. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  506. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +2 -11
  507. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  508. package/lib/feature-libraries/default-schema/index.d.ts +1 -2
  509. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  510. package/lib/feature-libraries/default-schema/index.js +1 -2
  511. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  512. package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts +6 -7
  513. package/lib/feature-libraries/default-schema/mappedEditBuilder.d.ts.map +1 -1
  514. package/lib/feature-libraries/default-schema/mappedEditBuilder.js +0 -15
  515. package/lib/feature-libraries/default-schema/mappedEditBuilder.js.map +1 -1
  516. package/lib/feature-libraries/deltaUtils.d.ts +0 -1
  517. package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
  518. package/lib/feature-libraries/deltaUtils.js +1 -5
  519. package/lib/feature-libraries/deltaUtils.js.map +1 -1
  520. package/lib/feature-libraries/flex-tree/context.d.ts +0 -9
  521. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  522. package/lib/feature-libraries/flex-tree/context.js +0 -6
  523. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  524. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +6 -6
  525. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  526. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  527. package/lib/feature-libraries/flex-tree/lazyField.d.ts +7 -8
  528. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  529. package/lib/feature-libraries/flex-tree/lazyField.js +9 -38
  530. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  531. package/lib/feature-libraries/forest-summary/codec.d.ts +8 -2
  532. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  533. package/lib/feature-libraries/forest-summary/codec.js +12 -11
  534. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  535. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +3 -2
  536. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  537. package/lib/feature-libraries/forest-summary/forestSummarizer.js +19 -10
  538. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  539. package/lib/feature-libraries/forest-summary/formatCommon.d.ts +61 -0
  540. package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -0
  541. package/lib/feature-libraries/forest-summary/{format.js → formatCommon.js} +8 -6
  542. package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -0
  543. package/lib/feature-libraries/forest-summary/{format.d.ts → formatV1.d.ts} +6 -14
  544. package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +1 -0
  545. package/lib/feature-libraries/forest-summary/formatV1.js +8 -0
  546. package/lib/feature-libraries/forest-summary/formatV1.js.map +1 -0
  547. package/lib/feature-libraries/forest-summary/formatV2.d.ts +51 -0
  548. package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +1 -0
  549. package/lib/feature-libraries/forest-summary/formatV2.js +8 -0
  550. package/lib/feature-libraries/forest-summary/formatV2.js.map +1 -0
  551. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +7 -15
  552. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  553. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +11 -20
  554. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  555. package/lib/feature-libraries/forest-summary/index.d.ts +1 -2
  556. package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -1
  557. package/lib/feature-libraries/forest-summary/index.js +1 -2
  558. package/lib/feature-libraries/forest-summary/index.js.map +1 -1
  559. package/lib/feature-libraries/forest-summary/summaryFormatCommon.d.ts +35 -0
  560. package/lib/feature-libraries/forest-summary/summaryFormatCommon.d.ts.map +1 -0
  561. package/lib/feature-libraries/forest-summary/summaryFormatCommon.js +40 -0
  562. package/lib/feature-libraries/forest-summary/summaryFormatCommon.js.map +1 -0
  563. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts +11 -0
  564. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts.map +1 -0
  565. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.js +11 -0
  566. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.js.map +1 -0
  567. package/lib/feature-libraries/forest-summary/summaryFormatV3.d.ts +18 -0
  568. package/lib/feature-libraries/forest-summary/summaryFormatV3.d.ts.map +1 -0
  569. package/lib/feature-libraries/forest-summary/summaryFormatV3.js +18 -0
  570. package/lib/feature-libraries/forest-summary/summaryFormatV3.js.map +1 -0
  571. package/lib/feature-libraries/forest-summary/summaryTypes.d.ts +7 -37
  572. package/lib/feature-libraries/forest-summary/summaryTypes.d.ts.map +1 -1
  573. package/lib/feature-libraries/forest-summary/summaryTypes.js +20 -43
  574. package/lib/feature-libraries/forest-summary/summaryTypes.js.map +1 -1
  575. package/lib/feature-libraries/index.d.ts +3 -3
  576. package/lib/feature-libraries/index.d.ts.map +1 -1
  577. package/lib/feature-libraries/index.js +2 -2
  578. package/lib/feature-libraries/index.js.map +1 -1
  579. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  580. package/lib/feature-libraries/mapTreeCursor.js +1 -2
  581. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  582. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  583. package/lib/feature-libraries/mitigatedChangeFamily.js +2 -2
  584. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  585. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  586. package/lib/feature-libraries/modular-schema/comparison.js +1 -1
  587. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  588. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +21 -97
  589. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  590. package/lib/feature-libraries/modular-schema/crossFieldQueries.js +5 -3
  591. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  592. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +52 -20
  593. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  594. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  595. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  596. package/lib/feature-libraries/modular-schema/genericFieldKind.js +9 -3
  597. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  598. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +1 -1
  599. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  600. package/lib/feature-libraries/modular-schema/index.d.ts +4 -4
  601. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  602. package/lib/feature-libraries/modular-schema/index.js +2 -3
  603. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  604. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  605. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  606. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +285 -9
  607. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  608. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +15 -48
  609. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  610. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +458 -1284
  611. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  612. package/{dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts → lib/feature-libraries/modular-schema/modularChangeFormat.d.ts} +2 -2
  613. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -0
  614. package/lib/feature-libraries/modular-schema/{modularChangeFormatV1.js → modularChangeFormat.js} +2 -2
  615. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -0
  616. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +10 -50
  617. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  618. package/lib/feature-libraries/modular-schema/modularChangeTypes.js +2 -20
  619. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  620. package/lib/feature-libraries/optional-field/index.d.ts +2 -2
  621. package/lib/feature-libraries/optional-field/index.d.ts.map +1 -1
  622. package/lib/feature-libraries/optional-field/index.js +1 -1
  623. package/lib/feature-libraries/optional-field/index.js.map +1 -1
  624. package/lib/feature-libraries/optional-field/optionalField.d.ts +26 -5
  625. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  626. package/lib/feature-libraries/optional-field/optionalField.js +449 -217
  627. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  628. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +33 -24
  629. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  630. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  631. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +1 -1
  632. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  633. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +26 -55
  634. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  635. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  636. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -3
  637. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  638. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  639. package/lib/feature-libraries/schema-index/codec.js +5 -5
  640. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  641. package/lib/feature-libraries/schema-index/formatV1.d.ts +1 -1
  642. package/lib/feature-libraries/schema-index/formatV2.d.ts +1 -1
  643. package/lib/feature-libraries/sequence-field/compose.d.ts +7 -6
  644. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  645. package/lib/feature-libraries/sequence-field/compose.js +258 -82
  646. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  647. package/lib/feature-libraries/sequence-field/helperTypes.d.ts +10 -14
  648. package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  649. package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  650. package/lib/feature-libraries/sequence-field/index.d.ts +3 -2
  651. package/lib/feature-libraries/sequence-field/index.d.ts.map +1 -1
  652. package/lib/feature-libraries/sequence-field/index.js +1 -0
  653. package/lib/feature-libraries/sequence-field/index.js.map +1 -1
  654. package/lib/feature-libraries/sequence-field/invert.d.ts +3 -3
  655. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  656. package/lib/feature-libraries/sequence-field/invert.js +169 -67
  657. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  658. package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  659. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  660. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  661. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +56 -4
  662. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  663. package/lib/feature-libraries/sequence-field/moveEffectTable.js +80 -6
  664. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  665. package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -3
  666. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  667. package/lib/feature-libraries/sequence-field/rebase.js +114 -108
  668. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  669. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +9 -0
  670. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -0
  671. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +46 -0
  672. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -0
  673. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  674. package/lib/feature-libraries/sequence-field/replaceRevisions.js +33 -16
  675. package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  676. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  677. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js +2 -0
  678. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  679. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -22
  680. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  681. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +175 -350
  682. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  683. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  684. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +61 -21
  685. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  686. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +2 -2
  687. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  688. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +10 -10
  689. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  690. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -3
  691. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  692. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +109 -14
  693. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  694. package/lib/feature-libraries/sequence-field/types.d.ts +59 -30
  695. package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
  696. package/lib/feature-libraries/sequence-field/types.js.map +1 -1
  697. package/lib/feature-libraries/sequence-field/utils.d.ts +24 -15
  698. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  699. package/lib/feature-libraries/sequence-field/utils.js +292 -107
  700. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  701. package/lib/index.d.ts +2 -2
  702. package/lib/index.d.ts.map +1 -1
  703. package/lib/index.js +1 -1
  704. package/lib/index.js.map +1 -1
  705. package/lib/packageVersion.d.ts +1 -1
  706. package/lib/packageVersion.d.ts.map +1 -1
  707. package/lib/packageVersion.js +1 -1
  708. package/lib/packageVersion.js.map +1 -1
  709. package/lib/shared-tree/independentView.d.ts.map +1 -1
  710. package/lib/shared-tree/independentView.js +2 -2
  711. package/lib/shared-tree/independentView.js.map +1 -1
  712. package/lib/shared-tree/index.d.ts +1 -1
  713. package/lib/shared-tree/index.d.ts.map +1 -1
  714. package/lib/shared-tree/index.js.map +1 -1
  715. package/lib/shared-tree/schematizeTree.d.ts +4 -4
  716. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  717. package/lib/shared-tree/schematizeTree.js +2 -3
  718. package/lib/shared-tree/schematizeTree.js.map +1 -1
  719. package/lib/shared-tree/schematizingTreeView.d.ts +7 -2
  720. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  721. package/lib/shared-tree/schematizingTreeView.js +39 -35
  722. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  723. package/lib/shared-tree/sharedTree.d.ts +3 -9
  724. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  725. package/lib/shared-tree/sharedTree.js +0 -10
  726. package/lib/shared-tree/sharedTree.js.map +1 -1
  727. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
  728. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  729. package/lib/shared-tree/sharedTreeChangeCodecs.js +2 -3
  730. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  731. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  732. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  733. package/lib/shared-tree/sharedTreeChangeFamily.js +3 -3
  734. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  735. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +6 -16
  736. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  737. package/lib/shared-tree/sharedTreeEditBuilder.js +5 -11
  738. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  739. package/lib/shared-tree/treeCheckout.d.ts +15 -12
  740. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  741. package/lib/shared-tree/treeCheckout.js +57 -51
  742. package/lib/shared-tree/treeCheckout.js.map +1 -1
  743. package/lib/shared-tree-core/branch.d.ts +2 -3
  744. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  745. package/lib/shared-tree-core/branch.js +3 -4
  746. package/lib/shared-tree-core/branch.js.map +1 -1
  747. package/lib/shared-tree-core/editManager.d.ts +2 -2
  748. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  749. package/lib/shared-tree-core/editManager.js +9 -9
  750. package/lib/shared-tree-core/editManager.js.map +1 -1
  751. package/lib/shared-tree-core/editManagerCodecs.d.ts +0 -4
  752. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  753. package/lib/shared-tree-core/editManagerCodecs.js +7 -14
  754. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  755. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js +1 -1
  756. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
  757. package/lib/shared-tree-core/editManagerFormatCommons.d.ts +8 -44
  758. package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  759. package/lib/shared-tree-core/editManagerFormatCommons.js +3 -9
  760. package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  761. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +2 -2
  762. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts.map +1 -1
  763. package/lib/shared-tree-core/editManagerFormatV1toV4.js +0 -1
  764. package/lib/shared-tree-core/editManagerFormatV1toV4.js.map +1 -1
  765. package/lib/shared-tree-core/editManagerFormatVSharedBranches.d.ts +1 -1
  766. package/lib/shared-tree-core/index.d.ts +3 -2
  767. package/lib/shared-tree-core/index.d.ts.map +1 -1
  768. package/lib/shared-tree-core/index.js +2 -2
  769. package/lib/shared-tree-core/index.js.map +1 -1
  770. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +1 -1
  771. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
  772. package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
  773. package/lib/shared-tree-core/messageCodecs.d.ts +0 -4
  774. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  775. package/lib/shared-tree-core/messageCodecs.js +9 -16
  776. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  777. package/lib/shared-tree-core/messageFormat.d.ts +9 -50
  778. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  779. package/lib/shared-tree-core/messageFormat.js +3 -8
  780. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  781. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts +2 -3
  782. package/lib/shared-tree-core/messageFormatV1ToV4.d.ts.map +1 -1
  783. package/lib/shared-tree-core/messageFormatV1ToV4.js +1 -8
  784. package/lib/shared-tree-core/messageFormatV1ToV4.js.map +1 -1
  785. package/lib/shared-tree-core/messageFormatVSharedBranches.d.ts +1 -1
  786. package/lib/shared-tree-core/sharedTreeCore.d.ts +0 -1
  787. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  788. package/lib/shared-tree-core/sharedTreeCore.js +1 -1
  789. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  790. package/lib/shared-tree-core/versionedSummarizer.d.ts +6 -1
  791. package/lib/shared-tree-core/versionedSummarizer.d.ts.map +1 -1
  792. package/lib/shared-tree-core/versionedSummarizer.js +4 -3
  793. package/lib/shared-tree-core/versionedSummarizer.js.map +1 -1
  794. package/lib/simple-tree/api/eraseSchemaDetails.d.ts +89 -0
  795. package/lib/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -0
  796. package/lib/simple-tree/api/eraseSchemaDetails.js +92 -0
  797. package/lib/simple-tree/api/eraseSchemaDetails.js.map +1 -0
  798. package/lib/simple-tree/api/index.d.ts +1 -0
  799. package/lib/simple-tree/api/index.d.ts.map +1 -1
  800. package/lib/simple-tree/api/index.js +1 -0
  801. package/lib/simple-tree/api/index.js.map +1 -1
  802. package/lib/simple-tree/api/storedSchema.d.ts +1 -1
  803. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  804. package/lib/simple-tree/api/storedSchema.js +1 -2
  805. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  806. package/lib/simple-tree/api/tree.d.ts +15 -2
  807. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  808. package/lib/simple-tree/api/tree.js.map +1 -1
  809. package/lib/simple-tree/core/treeNode.d.ts.map +1 -1
  810. package/lib/simple-tree/core/treeNode.js +1 -0
  811. package/lib/simple-tree/core/treeNode.js.map +1 -1
  812. package/lib/simple-tree/core/unhydratedFlexTree.d.ts +15 -15
  813. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  814. package/lib/simple-tree/core/unhydratedFlexTree.js +8 -58
  815. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  816. package/lib/simple-tree/createContext.d.ts.map +1 -1
  817. package/lib/simple-tree/createContext.js +1 -1
  818. package/lib/simple-tree/createContext.js.map +1 -1
  819. package/lib/simple-tree/fieldSchema.d.ts +4 -4
  820. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  821. package/lib/simple-tree/fieldSchema.js.map +1 -1
  822. package/lib/simple-tree/index.d.ts +3 -3
  823. package/lib/simple-tree/index.d.ts.map +1 -1
  824. package/lib/simple-tree/index.js +2 -2
  825. package/lib/simple-tree/index.js.map +1 -1
  826. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  827. package/lib/simple-tree/node-kinds/array/arrayNode.js +4 -6
  828. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  829. package/lib/simple-tree/node-kinds/common.d.ts.map +1 -1
  830. package/lib/simple-tree/node-kinds/common.js +2 -2
  831. package/lib/simple-tree/node-kinds/common.js.map +1 -1
  832. package/lib/simple-tree/node-kinds/map/mapNode.js +2 -2
  833. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  834. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  835. package/lib/simple-tree/node-kinds/object/objectNode.js +19 -19
  836. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  837. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  838. package/lib/simple-tree/node-kinds/record/recordNode.js +2 -4
  839. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  840. package/lib/simple-tree/prepareForInsertion.d.ts +47 -54
  841. package/lib/simple-tree/prepareForInsertion.d.ts.map +1 -1
  842. package/lib/simple-tree/prepareForInsertion.js +124 -183
  843. package/lib/simple-tree/prepareForInsertion.js.map +1 -1
  844. package/lib/simple-tree/toStoredSchema.js +3 -3
  845. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  846. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts +4 -13
  847. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  848. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +9 -26
  849. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  850. package/lib/tableSchema.d.ts +3 -14
  851. package/lib/tableSchema.d.ts.map +1 -1
  852. package/lib/tableSchema.js +3 -3
  853. package/lib/tableSchema.js.map +1 -1
  854. package/lib/treeFactory.d.ts.map +1 -1
  855. package/lib/treeFactory.js +4 -18
  856. package/lib/treeFactory.js.map +1 -1
  857. package/lib/util/brand.d.ts +49 -0
  858. package/lib/util/brand.d.ts.map +1 -1
  859. package/lib/util/brand.js +44 -0
  860. package/lib/util/brand.js.map +1 -1
  861. package/lib/util/index.d.ts +2 -2
  862. package/lib/util/index.d.ts.map +1 -1
  863. package/lib/util/index.js +2 -2
  864. package/lib/util/index.js.map +1 -1
  865. package/lib/util/rangeMap.d.ts +12 -24
  866. package/lib/util/rangeMap.d.ts.map +1 -1
  867. package/lib/util/rangeMap.js +5 -44
  868. package/lib/util/rangeMap.js.map +1 -1
  869. package/package.json +24 -23
  870. package/src/codec/codec.ts +34 -18
  871. package/src/core/change-family/changeFamily.ts +0 -5
  872. package/src/core/change-family/index.ts +0 -1
  873. package/src/core/index.ts +2 -4
  874. package/src/core/rebase/changeRebaser.ts +1 -6
  875. package/src/core/rebase/index.ts +1 -1
  876. package/src/core/rebase/types.ts +26 -8
  877. package/src/core/rebase/utils.ts +7 -31
  878. package/src/core/schema-stored/schema.ts +5 -7
  879. package/src/core/tree/detachedFieldIndex.ts +1 -17
  880. package/src/core/tree/detachedFieldIndexFormatCommon.ts +4 -7
  881. package/src/core/tree/index.ts +1 -2
  882. package/src/core/tree/pathTree.ts +4 -16
  883. package/src/feature-libraries/chunked-forest/basicChunk.ts +1 -7
  884. package/src/feature-libraries/chunked-forest/chunkTree.ts +1 -6
  885. package/src/feature-libraries/chunked-forest/codec/codecs.ts +3 -2
  886. package/src/feature-libraries/chunked-forest/codec/format.ts +6 -9
  887. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +127 -393
  888. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +5 -13
  889. package/src/feature-libraries/default-schema/index.ts +5 -16
  890. package/src/feature-libraries/default-schema/mappedEditBuilder.ts +9 -35
  891. package/src/feature-libraries/deltaUtils.ts +1 -6
  892. package/src/feature-libraries/flex-tree/context.ts +0 -17
  893. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +8 -7
  894. package/src/feature-libraries/flex-tree/lazyField.ts +24 -66
  895. package/src/feature-libraries/forest-summary/codec.ts +25 -13
  896. package/src/feature-libraries/forest-summary/forestSummarizer.ts +37 -12
  897. package/src/feature-libraries/forest-summary/{format.ts → formatCommon.ts} +10 -11
  898. package/src/feature-libraries/forest-summary/formatV1.ts +12 -0
  899. package/src/feature-libraries/forest-summary/formatV2.ts +12 -0
  900. package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +18 -21
  901. package/src/feature-libraries/forest-summary/index.ts +1 -2
  902. package/src/feature-libraries/forest-summary/summaryFormatCommon.ts +41 -0
  903. package/src/feature-libraries/forest-summary/summaryFormatV1ToV2.ts +11 -0
  904. package/src/feature-libraries/forest-summary/summaryFormatV3.ts +18 -0
  905. package/src/feature-libraries/forest-summary/summaryTypes.ts +26 -46
  906. package/src/feature-libraries/index.ts +8 -21
  907. package/src/feature-libraries/mapTreeCursor.ts +1 -2
  908. package/src/feature-libraries/mitigatedChangeFamily.ts +1 -3
  909. package/src/feature-libraries/modular-schema/comparison.ts +2 -1
  910. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +44 -142
  911. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +57 -36
  912. package/src/feature-libraries/modular-schema/genericFieldKind.ts +18 -6
  913. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +1 -1
  914. package/src/feature-libraries/modular-schema/index.ts +15 -20
  915. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +499 -29
  916. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +741 -2541
  917. package/src/feature-libraries/modular-schema/{modularChangeFormatV1.ts → modularChangeFormat.ts} +1 -2
  918. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +10 -98
  919. package/src/feature-libraries/optional-field/index.ts +3 -1
  920. package/src/feature-libraries/optional-field/optionalField.ts +574 -317
  921. package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +38 -24
  922. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +35 -89
  923. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +2 -3
  924. package/src/feature-libraries/schema-index/codec.ts +7 -9
  925. package/src/feature-libraries/sequence-field/compose.ts +519 -134
  926. package/src/feature-libraries/sequence-field/helperTypes.ts +19 -34
  927. package/src/feature-libraries/sequence-field/index.ts +9 -0
  928. package/src/feature-libraries/sequence-field/invert.ts +228 -103
  929. package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
  930. package/src/feature-libraries/sequence-field/moveEffectTable.ts +191 -8
  931. package/src/feature-libraries/sequence-field/rebase.ts +203 -168
  932. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +57 -0
  933. package/src/feature-libraries/sequence-field/replaceRevisions.ts +52 -31
  934. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +2 -0
  935. package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +220 -643
  936. package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +68 -56
  937. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +27 -25
  938. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +129 -19
  939. package/src/feature-libraries/sequence-field/types.ts +64 -34
  940. package/src/feature-libraries/sequence-field/utils.ts +346 -133
  941. package/src/index.ts +3 -0
  942. package/src/packageVersion.ts +1 -1
  943. package/src/shared-tree/independentView.ts +1 -2
  944. package/src/shared-tree/index.ts +2 -3
  945. package/src/shared-tree/schematizeTree.ts +8 -21
  946. package/src/shared-tree/schematizingTreeView.ts +73 -50
  947. package/src/shared-tree/sharedTree.ts +3 -19
  948. package/src/shared-tree/sharedTreeChangeCodecs.ts +3 -7
  949. package/src/shared-tree/sharedTreeChangeFamily.ts +4 -7
  950. package/src/shared-tree/sharedTreeEditBuilder.ts +12 -46
  951. package/src/shared-tree/treeCheckout.ts +92 -82
  952. package/src/shared-tree-core/branch.ts +2 -8
  953. package/src/shared-tree-core/editManager.ts +2 -16
  954. package/src/shared-tree-core/editManagerCodecs.ts +7 -17
  955. package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +1 -1
  956. package/src/shared-tree-core/editManagerFormatCommons.ts +6 -15
  957. package/src/shared-tree-core/editManagerFormatV1toV4.ts +1 -3
  958. package/src/shared-tree-core/index.ts +3 -2
  959. package/src/shared-tree-core/messageCodecV1ToV4.ts +1 -2
  960. package/src/shared-tree-core/messageCodecs.ts +9 -19
  961. package/src/shared-tree-core/messageFormat.ts +7 -15
  962. package/src/shared-tree-core/messageFormatV1ToV4.ts +2 -16
  963. package/src/shared-tree-core/sharedTreeCore.ts +1 -4
  964. package/src/shared-tree-core/versionedSummarizer.ts +10 -3
  965. package/src/simple-tree/api/eraseSchemaDetails.ts +123 -0
  966. package/src/simple-tree/api/index.ts +4 -0
  967. package/src/simple-tree/api/storedSchema.ts +2 -2
  968. package/src/simple-tree/api/tree.ts +16 -1
  969. package/src/simple-tree/core/treeNode.ts +1 -0
  970. package/src/simple-tree/core/unhydratedFlexTree.ts +36 -87
  971. package/src/simple-tree/createContext.ts +4 -1
  972. package/src/simple-tree/fieldSchema.ts +4 -6
  973. package/src/simple-tree/index.ts +3 -2
  974. package/src/simple-tree/node-kinds/array/arrayNode.ts +5 -7
  975. package/src/simple-tree/node-kinds/common.ts +5 -2
  976. package/src/simple-tree/node-kinds/map/mapNode.ts +4 -4
  977. package/src/simple-tree/node-kinds/object/objectNode.ts +26 -26
  978. package/src/simple-tree/node-kinds/record/recordNode.ts +9 -10
  979. package/src/simple-tree/prepareForInsertion.ts +200 -343
  980. package/src/simple-tree/toStoredSchema.ts +3 -3
  981. package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +14 -42
  982. package/src/tableSchema.ts +13 -18
  983. package/src/treeFactory.ts +5 -19
  984. package/src/util/brand.ts +61 -0
  985. package/src/util/index.ts +3 -3
  986. package/src/util/rangeMap.ts +18 -72
  987. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +0 -36
  988. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +0 -1
  989. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js +0 -126
  990. package/dist/feature-libraries/default-schema/locationBasedEditBuilder.js.map +0 -1
  991. package/dist/feature-libraries/forest-summary/format.d.ts.map +0 -1
  992. package/dist/feature-libraries/forest-summary/format.js.map +0 -1
  993. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +0 -17
  994. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +0 -1
  995. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +0 -388
  996. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +0 -1
  997. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +0 -17
  998. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +0 -1
  999. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js +0 -413
  1000. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +0 -1
  1001. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +0 -1
  1002. package/dist/feature-libraries/modular-schema/modularChangeFormatV1.js.map +0 -1
  1003. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +0 -146
  1004. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +0 -1
  1005. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js +0 -32
  1006. package/dist/feature-libraries/modular-schema/modularChangeFormatV2.js.map +0 -1
  1007. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts +0 -36
  1008. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.d.ts.map +0 -1
  1009. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js +0 -122
  1010. package/lib/feature-libraries/default-schema/locationBasedEditBuilder.js.map +0 -1
  1011. package/lib/feature-libraries/forest-summary/format.d.ts.map +0 -1
  1012. package/lib/feature-libraries/forest-summary/format.js.map +0 -1
  1013. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +0 -17
  1014. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +0 -1
  1015. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +0 -384
  1016. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +0 -1
  1017. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +0 -17
  1018. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +0 -1
  1019. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js +0 -409
  1020. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +0 -1
  1021. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.d.ts.map +0 -1
  1022. package/lib/feature-libraries/modular-schema/modularChangeFormatV1.js.map +0 -1
  1023. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts +0 -146
  1024. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.d.ts.map +0 -1
  1025. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js +0 -29
  1026. package/lib/feature-libraries/modular-schema/modularChangeFormatV2.js.map +0 -1
  1027. package/src/feature-libraries/default-schema/locationBasedEditBuilder.ts +0 -180
  1028. package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +0 -732
  1029. package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +0 -790
  1030. package/src/feature-libraries/modular-schema/modularChangeFormatV2.ts +0 -62
@@ -6,7 +6,7 @@
6
6
  import { assert, unreachableCase, fail } from "@fluidframework/core-utils/internal";
7
7
  import type { IFluidHandle, Listenable } from "@fluidframework/core-interfaces/internal";
8
8
  import { createEmitter } from "@fluid-internal/client-utils";
9
- import type { IIdCompressor } from "@fluidframework/id-compressor";
9
+ import type { IIdCompressor, SessionId } from "@fluidframework/id-compressor";
10
10
  import {
11
11
  UsageError,
12
12
  type ITelemetryLoggerExt,
@@ -20,7 +20,6 @@ import {
20
20
  type AnchorSetRootEvents,
21
21
  type ChangeFamily,
22
22
  CommitKind,
23
- type CommitMetadata,
24
23
  type DeltaVisitor,
25
24
  type DetachedFieldIndex,
26
25
  type IEditableForest,
@@ -47,27 +46,21 @@ import {
47
46
  type TreeNodeSchemaIdentifier,
48
47
  type TreeNodeStoredSchema,
49
48
  LeafNodeStoredSchema,
50
- type ChangeAtomId,
51
- offsetChangeAtomId,
52
49
  diffHistories,
50
+ type ChangeMetadata,
51
+ type ChangeEncodingContext,
53
52
  type ReadOnlyDetachedFieldIndex,
54
53
  } from "../core/index.js";
55
54
  import {
56
- type DetachedRootIds,
57
- type DetachedRootLocation,
58
- type DetachedRootsLocation,
59
55
  type FieldBatchCodec,
60
- type Locator,
61
56
  type TreeCompressionStrategy,
62
57
  allowsRepoSuperset,
63
58
  buildForest,
64
- changeAtomFromDetachedNodeId,
65
59
  createNodeIdentifierManager,
66
60
  defaultSchemaPolicy,
67
61
  intoDelta,
68
62
  jsonableTreeFromCursor,
69
63
  makeFieldBatchCodec,
70
- nodeIdFromChangeAtom,
71
64
  } from "../feature-libraries/index.js";
72
65
  import {
73
66
  SquashingTransactionStack,
@@ -81,18 +74,13 @@ import {
81
74
  Breakable,
82
75
  disposeSymbol,
83
76
  getOrCreate,
84
- makeArray,
77
+ type JsonCompatibleReadOnly,
85
78
  type WithBreakable,
86
79
  } from "../util/index.js";
87
80
 
88
81
  import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
89
82
  import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
90
- import {
91
- type IdBasedSharedTreeEditBuilder,
92
- type ILocationBasedSharedTreeEditor,
93
- type IIdBasedSharedTreeEditor,
94
- LocationBasedSharedTreeEditBuilder,
95
- } from "./sharedTreeEditBuilder.js";
83
+ import type { ISharedTreeEditor, SharedTreeEditBuilder } from "./sharedTreeEditBuilder.js";
96
84
  import type { IDisposable } from "@fluidframework/core-interfaces";
97
85
  import {
98
86
  type ImplicitFieldSchema,
@@ -109,6 +97,7 @@ import {
109
97
  type CustomTreeNode,
110
98
  } from "../simple-tree/index.js";
111
99
  import { getCheckout, SchematizingSimpleTreeView } from "./schematizingTreeView.js";
100
+ import { isStableId } from "@fluidframework/id-compressor/internal";
112
101
 
113
102
  /**
114
103
  * Events for {@link ITreeCheckout}.
@@ -142,7 +131,7 @@ export interface CheckoutEvents {
142
131
  * @param getRevertible - a function provided that allows users to get a revertible for the change. If not provided,
143
132
  * this change is not revertible.
144
133
  */
145
- changed(data: CommitMetadata, getRevertible?: RevertibleAlphaFactory): void;
134
+ changed(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
146
135
 
147
136
  /**
148
137
  * Fired when a new branch is created from this checkout.
@@ -243,7 +232,7 @@ export interface ITreeCheckout extends AnchorLocator, ViewableTree, WithBreakabl
243
232
  * Used to edit the state of the tree. Edits will be immediately applied locally to the tree.
244
233
  * If there is no transaction currently ongoing, then the edits will be submitted to Fluid immediately as well.
245
234
  */
246
- readonly editor: ILocationBasedSharedTreeEditor;
235
+ readonly editor: ISharedTreeEditor;
247
236
 
248
237
  /**
249
238
  * A collection of functions for managing transactions.
@@ -301,8 +290,8 @@ export function createTreeCheckout(
301
290
  mintRevisionTag: () => RevisionTag,
302
291
  revisionTagCodec: RevisionTagCodec,
303
292
  args?: {
304
- branch?: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>;
305
- changeFamily?: ChangeFamily<IdBasedSharedTreeEditBuilder, SharedTreeChange>;
293
+ branch?: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>;
294
+ changeFamily?: ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>;
306
295
  schema?: TreeStoredSchemaRepository;
307
296
  forest?: IEditableForest;
308
297
  fieldBatchCodec?: FieldBatchCodec;
@@ -389,7 +378,6 @@ export class TreeCheckout implements ITreeCheckoutFork {
389
378
  public disposed = false;
390
379
 
391
380
  private editLock: EditLock;
392
- private readonly locator: Locator;
393
381
 
394
382
  private readonly views = new Set<TreeView<ImplicitFieldSchema>>();
395
383
 
@@ -405,7 +393,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
405
393
  */
406
394
  private readonly revertibleCommitBranches = new Map<
407
395
  RevisionTag,
408
- SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>
396
+ SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>
409
397
  >();
410
398
 
411
399
  /**
@@ -418,13 +406,10 @@ export class TreeCheckout implements ITreeCheckoutFork {
418
406
  public events: Listenable<CheckoutEvents> = this.#events;
419
407
 
420
408
  public constructor(
421
- branch: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>,
409
+ branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>,
422
410
  /** True if and only if this checkout is for a branch which is persisted and shared with other clients. */
423
411
  public readonly isSharedBranch: boolean,
424
- private readonly changeFamily: ChangeFamily<
425
- IdBasedSharedTreeEditBuilder,
426
- SharedTreeChange
427
- >,
412
+ private readonly changeFamily: ChangeFamily<SharedTreeEditBuilder, SharedTreeChange>,
428
413
  public readonly storedSchema: TreeStoredSchemaRepository,
429
414
  public readonly forest: IEditableForest,
430
415
  private readonly mintRevisionTag: () => RevisionTag,
@@ -442,31 +427,6 @@ export class TreeCheckout implements ITreeCheckoutFork {
442
427
  ) {
443
428
  this.#transaction = this.createTransactionStack(branch);
444
429
  this.editLock = new EditLock(this.#transaction.activeBranchEditor);
445
- this.locator = {
446
- locationFromId: (id: ChangeAtomId): DetachedRootLocation => {
447
- const rootId = this.removedRoots.getEntry(nodeIdFromChangeAtom(id));
448
- return this.removedRoots.toFieldKey(rootId);
449
- },
450
- idFromLocation: (location: DetachedRootLocation): ChangeAtomId => {
451
- const nodeId = this.removedRoots.fromFieldKey(location);
452
- return changeAtomFromDetachedNodeId(nodeId);
453
- },
454
- locationsFromIdRanges: (ids: DetachedRootIds): DetachedRootsLocation => {
455
- return ids.flatMap((id) => {
456
- return makeArray(id.count, (offset) => {
457
- const field = this.locator.locationFromId(offsetChangeAtomId(id.first, offset));
458
- return { field, count: 1 };
459
- });
460
- });
461
- },
462
- idRangesFromLocations: (ids: DetachedRootsLocation): DetachedRootIds => {
463
- return ids.map((id) => {
464
- assert(id.count === 1, "Expected count of 1");
465
- const first = this.locator.idFromLocation(id.field);
466
- return { first, count: id.count };
467
- });
468
- },
469
- };
470
430
  this.registerForBranchEvents();
471
431
  }
472
432
 
@@ -487,8 +447,8 @@ export class TreeCheckout implements ITreeCheckoutFork {
487
447
  }
488
448
 
489
449
  private createTransactionStack(
490
- branch: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>,
491
- ): SquashingTransactionStack<IdBasedSharedTreeEditBuilder, SharedTreeChange> {
450
+ branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>,
451
+ ): SquashingTransactionStack<SharedTreeEditBuilder, SharedTreeChange> {
492
452
  return new SquashingTransactionStack(
493
453
  branch,
494
454
  (commits) => {
@@ -585,7 +545,34 @@ export class TreeCheckout implements ITreeCheckoutFork {
585
545
  };
586
546
 
587
547
  let withinEventContext = true;
588
- this.#events.emit("changed", { isLocal: true, kind }, getRevertible);
548
+
549
+ const metadata: ChangeMetadata = {
550
+ kind,
551
+ isLocal: true,
552
+ getChange: () => {
553
+ const context: ChangeEncodingContext = {
554
+ idCompressor: this.idCompressor,
555
+ originatorId: this.idCompressor.localSessionId,
556
+ revision,
557
+ };
558
+ const encodedChange = this.changeFamily.codecs
559
+ .resolve(4)
560
+ .json.encode(change, context);
561
+
562
+ assert(
563
+ commit.parent !== undefined,
564
+ 0xca4 /* Expected applied commit to be parented */,
565
+ );
566
+ return {
567
+ version: 1,
568
+ revision,
569
+ originatorId: this.idCompressor.localSessionId,
570
+ change: encodedChange,
571
+ } satisfies SerializedChange;
572
+ },
573
+ };
574
+
575
+ this.#events.emit("changed", metadata, getRevertible);
589
576
  withinEventContext = false;
590
577
  }
591
578
  } else if (this.isRemoteChangeEvent(event)) {
@@ -612,6 +599,28 @@ export class TreeCheckout implements ITreeCheckoutFork {
612
599
  }
613
600
  };
614
601
 
602
+ /**
603
+ * Applies the given serialized change (as was produced via a `"changed"` event of another checkout) to this checkout.
604
+ */
605
+ public applySerializedChange(serializedChange: JsonCompatibleReadOnly): void {
606
+ if (!isSerializedChange(serializedChange)) {
607
+ throw new UsageError(`Cannot apply change. Invalid serialized change format.`);
608
+ }
609
+ const { revision, originatorId, change } = serializedChange;
610
+ if (originatorId !== this.idCompressor.localSessionId) {
611
+ throw new UsageError(
612
+ `Cannot apply change. A serialized changed must be applied to the same SharedTree as it was created from.`,
613
+ );
614
+ }
615
+ const context: ChangeEncodingContext = {
616
+ idCompressor: this.idCompressor,
617
+ originatorId: this.idCompressor.localSessionId,
618
+ revision,
619
+ };
620
+ const decodedChange = this.changeFamily.codecs.resolve(4).json.decode(change, context);
621
+ this.applyChange(decodedChange, revision);
622
+ }
623
+
615
624
  // Revision is the revision of the commit, if any, which caused this change.
616
625
  private applyChange(change: SharedTreeChange, revision?: RevisionTag): void {
617
626
  // Conflicts due to schema will be empty and thus are not applied.
@@ -784,9 +793,9 @@ export class TreeCheckout implements ITreeCheckoutFork {
784
793
  return this.forest.anchors.events;
785
794
  }
786
795
 
787
- public get editor(): ILocationBasedSharedTreeEditor {
796
+ public get editor(): ISharedTreeEditor {
788
797
  this.checkNotDisposed();
789
- return new LocationBasedSharedTreeEditBuilder(this.editLock.editor, this.locator);
798
+ return this.editLock.editor;
790
799
  }
791
800
 
792
801
  public locate(anchor: Anchor): AnchorNode | undefined {
@@ -807,7 +816,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
807
816
  * To avoid updating observers of the view state with intermediate results during a transaction,
808
817
  * use {@link ITreeCheckout#branch} and {@link ISharedTreeFork#merge}.
809
818
  */
810
- #transaction: SquashingTransactionStack<IdBasedSharedTreeEditBuilder, SharedTreeChange>;
819
+ #transaction: SquashingTransactionStack<SharedTreeEditBuilder, SharedTreeChange>;
811
820
 
812
821
  public branch(): TreeCheckout {
813
822
  this.checkNotDisposed(
@@ -837,7 +846,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
837
846
  }
838
847
 
839
848
  public switchBranch(
840
- branch: SharedTreeBranch<IdBasedSharedTreeEditBuilder, SharedTreeChange>,
849
+ branch: SharedTreeBranch<SharedTreeEditBuilder, SharedTreeChange>,
841
850
  ): void {
842
851
  // TODO: Dispose old branch, if necessary
843
852
  assert(
@@ -1123,23 +1132,19 @@ class EditLock {
1123
1132
  * Edits the tree by calling the methods of the editor passed into the {@link EditLock} constructor.
1124
1133
  * @remarks Edits will throw an error if the lock is currently locked.
1125
1134
  */
1126
- public readonly editor: IIdBasedSharedTreeEditor;
1135
+ public readonly editor: ISharedTreeEditor;
1127
1136
  private locked = false;
1128
1137
 
1129
1138
  /**
1130
1139
  * @param editor - an editor which will be used to create a new editor that is monitored to determine if any changes are happening to the tree.
1131
1140
  * Use {@link EditLock.editor} in place of the original editor to ensure that changes are monitored.
1132
1141
  */
1133
- public constructor(editor: IIdBasedSharedTreeEditor) {
1142
+ public constructor(editor: ISharedTreeEditor) {
1134
1143
  const checkLock = (): void => this.checkUnlocked("Editing the tree");
1135
1144
  this.editor = {
1136
1145
  get schema() {
1137
1146
  return editor.schema;
1138
1147
  },
1139
- buildRoots(unhydrated) {
1140
- checkLock();
1141
- return editor.buildRoots(unhydrated);
1142
- },
1143
1148
  valueField(...fieldArgs) {
1144
1149
  const valueField = editor.valueField(...fieldArgs);
1145
1150
  return {
@@ -1147,10 +1152,6 @@ class EditLock {
1147
1152
  checkLock();
1148
1153
  valueField.set(...editArgs);
1149
1154
  },
1150
- attach(...editArgs) {
1151
- checkLock();
1152
- valueField.attach(...editArgs);
1153
- },
1154
1155
  };
1155
1156
  },
1156
1157
  optionalField(...fieldArgs) {
@@ -1160,14 +1161,6 @@ class EditLock {
1160
1161
  checkLock();
1161
1162
  optionalField.set(...editArgs);
1162
1163
  },
1163
- attach(...editArgs) {
1164
- checkLock();
1165
- optionalField.attach(...editArgs);
1166
- },
1167
- clear(...editArgs) {
1168
- checkLock();
1169
- optionalField.clear(...editArgs);
1170
- },
1171
1164
  };
1172
1165
  },
1173
1166
  sequenceField(...fieldArgs) {
@@ -1177,10 +1170,6 @@ class EditLock {
1177
1170
  checkLock();
1178
1171
  sequenceField.insert(...editArgs);
1179
1172
  },
1180
- attach(...editArgs) {
1181
- checkLock();
1182
- sequenceField.attach(...editArgs);
1183
- },
1184
1173
  remove(...editArgs) {
1185
1174
  checkLock();
1186
1175
  sequenceField.remove(...editArgs);
@@ -1278,3 +1267,24 @@ function verboseFromCursor(
1278
1267
  fields: fields as CustomTreeNode<IFluidHandle>,
1279
1268
  };
1280
1269
  }
1270
+
1271
+ interface SerializedChange {
1272
+ version: 1;
1273
+ revision: RevisionTag;
1274
+ change: JsonCompatibleReadOnly;
1275
+ originatorId: SessionId;
1276
+ }
1277
+
1278
+ function isSerializedChange(value: unknown): value is SerializedChange {
1279
+ if (typeof value !== "object" || value === null) {
1280
+ return false;
1281
+ }
1282
+ const change = value as Partial<SerializedChange>;
1283
+ return (
1284
+ change.version === 1 &&
1285
+ (change.revision === "root" || typeof change.revision === "number") &&
1286
+ typeof change.originatorId === "string" &&
1287
+ isStableId(change.originatorId) &&
1288
+ change.change !== undefined
1289
+ );
1290
+ }
@@ -22,7 +22,6 @@ import {
22
22
  rebaseBranch,
23
23
  tagRollbackInverse,
24
24
  type RebaseStatsWithDuration,
25
- type EditorOptions,
26
25
  } from "../core/index.js";
27
26
  import { hasSome, defineLazyCachedProperty } from "../util/index.js";
28
27
  import type {
@@ -129,12 +128,9 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
129
128
  private readonly telemetryEventBatcher?: TelemetryEventBatcher<
130
129
  keyof RebaseStatsWithDuration
131
130
  >,
132
- private readonly editorOptions?: EditorOptions,
133
131
  ) {
134
- this.editor = this.changeFamily.buildEditor(
135
- mintRevisionTag,
136
- (change) => this.apply(change),
137
- this.editorOptions,
132
+ this.editor = this.changeFamily.buildEditor(mintRevisionTag, (change) =>
133
+ this.apply(change),
138
134
  );
139
135
  this.unsubscribeBranchTrimmer = branchTrimmer?.on("ancestryTrimmed", (commit) => {
140
136
  this.#events.emit("ancestryTrimmed", commit);
@@ -200,8 +196,6 @@ export class SharedTreeBranch<TEditor extends ChangeFamilyEditor, TChange> {
200
196
  this.changeFamily,
201
197
  this.mintRevisionTag,
202
198
  this.branchTrimmer,
203
- undefined,
204
- this.editorOptions,
205
199
  );
206
200
  this.#events.emit("fork", fork);
207
201
  return fork;
@@ -18,7 +18,6 @@ import {
18
18
  mintCommit,
19
19
  type RebaseStatsWithDuration,
20
20
  tagChange,
21
- type EditorOptions,
22
21
  } from "../core/index.js";
23
22
  import { type Mutable, brand, getOrCreate, mapIterable } from "../util/index.js";
24
23
 
@@ -124,7 +123,6 @@ export class EditManager<
124
123
  public readonly localSessionId: SessionId,
125
124
  private readonly mintRevisionTag: () => RevisionTag,
126
125
  private readonly onSharedBranchCreated?: (branchId: BranchId) => void,
127
- editorOptions?: EditorOptions,
128
126
  logger?: ITelemetryLoggerExt,
129
127
  ) {
130
128
  this.trunkBase = {
@@ -149,10 +147,9 @@ export class EditManager<
149
147
  mintRevisionTag,
150
148
  this._events,
151
149
  this.telemetryEventBatcher,
152
- editorOptions,
153
150
  );
154
151
 
155
- this.createAndAddSharedBranch("main", undefined, undefined, mainTrunk, editorOptions);
152
+ this.createAndAddSharedBranch("main", undefined, undefined, mainTrunk);
156
153
  }
157
154
 
158
155
  public getLocalBranch(branchId: BranchId): SharedTreeBranch<TEditor, TChangeset> {
@@ -483,15 +480,8 @@ export class EditManager<
483
480
  sessionId: SessionId | undefined,
484
481
  parent: SharedBranch<TEditor, TChangeset> | undefined,
485
482
  branch: SharedTreeBranch<TEditor, TChangeset>,
486
- editorOptions?: EditorOptions,
487
483
  ): SharedBranch<TEditor, TChangeset> {
488
- const sharedBranch = this.createSharedBranch(
489
- branchId,
490
- sessionId,
491
- parent,
492
- branch,
493
- editorOptions,
494
- );
484
+ const sharedBranch = this.createSharedBranch(branchId, sessionId, parent, branch);
495
485
  this.addSharedBranch(branchId, sharedBranch);
496
486
  return sharedBranch;
497
487
  }
@@ -522,7 +512,6 @@ export class EditManager<
522
512
  sessionId: SessionId | undefined,
523
513
  parent: SharedBranch<TEditor, TChangeset> | undefined,
524
514
  branch: SharedTreeBranch<TEditor, TChangeset>,
525
- editorOptions?: EditorOptions,
526
515
  ): SharedBranch<TEditor, TChangeset> {
527
516
  const sharedBranch = new SharedBranch(
528
517
  parent,
@@ -534,7 +523,6 @@ export class EditManager<
534
523
  this.mintRevisionTag,
535
524
  this._events,
536
525
  this.telemetryEventBatcher,
537
- editorOptions,
538
526
  );
539
527
 
540
528
  return sharedBranch;
@@ -707,7 +695,6 @@ class SharedBranch<TEditor extends ChangeFamilyEditor, TChangeset> {
707
695
  private readonly mintRevisionTag: () => RevisionTag,
708
696
  branchTrimmer: Listenable<BranchTrimmingEvents>,
709
697
  telemetryEventBatcher: TelemetryEventBatcher<keyof RebaseStatsWithDuration> | undefined,
710
- editorOptions?: EditorOptions,
711
698
  ) {
712
699
  this.localBranch = new SharedTreeBranch(
713
700
  this.trunk.getHead(),
@@ -715,7 +702,6 @@ class SharedBranch<TEditor extends ChangeFamilyEditor, TChangeset> {
715
702
  mintRevisionTag,
716
703
  branchTrimmer,
717
704
  telemetryEventBatcher,
718
- editorOptions,
719
705
  );
720
706
 
721
707
  this.sequenceIdToCommit.set(baseCommitSequenceId, this.trunk.getHead());
@@ -29,7 +29,7 @@ import type {
29
29
  RevisionTag,
30
30
  SchemaAndPolicy,
31
31
  } from "../core/index.js";
32
- import { brand, type JsonCompatibleReadOnly } from "../util/index.js";
32
+ import { brand, unbrand, type JsonCompatibleReadOnly } from "../util/index.js";
33
33
 
34
34
  import type { SummaryData } from "./editManager.js";
35
35
  import { makeV1CodecWithVersion } from "./editManagerCodecsV1toV4.js";
@@ -73,15 +73,6 @@ export function editManagerFormatVersionSelectorForSharedBranches(
73
73
  return brand(EditManagerFormatVersion.vSharedBranches);
74
74
  }
75
75
 
76
- /**
77
- * Returns the version that should be used for testing shared branches.
78
- */
79
- export function editManagerFormatVersionSelectorForDetachedRootEditing(
80
- clientVersion: MinimumVersionForCollab,
81
- ): EditManagerFormatVersion {
82
- return brand(EditManagerFormatVersion.vDetachedRoots);
83
- }
84
-
85
76
  export interface EditManagerCodecOptions {
86
77
  readonly editManagerFormatSelector?: (
87
78
  minVersionForCollab: MinimumVersionForCollab,
@@ -143,21 +134,20 @@ export function makeEditManagerCodecs<TChangeset>(
143
134
  >,
144
135
  ][] = Array.from(editManagerFormatVersions, (version) => {
145
136
  switch (version) {
146
- case EditManagerFormatVersion.v1:
147
- case EditManagerFormatVersion.v2:
137
+ case unbrand(EditManagerFormatVersion.v1):
138
+ case unbrand(EditManagerFormatVersion.v2):
148
139
  return [version, makeDiscontinuedCodecVersion(options, version, "2.73.0")];
149
- case EditManagerFormatVersion.v3:
150
- case EditManagerFormatVersion.v4:
151
- case EditManagerFormatVersion.vDetachedRoots: {
140
+ case unbrand(EditManagerFormatVersion.v3):
141
+ case unbrand(EditManagerFormatVersion.v4): {
152
142
  const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
153
143
  return [
154
144
  version,
155
145
  makeV1CodecWithVersion(changeCodec, revisionTagCodec, options, version),
156
146
  ];
157
147
  }
158
- case EditManagerFormatVersion.v5:
148
+ case unbrand(EditManagerFormatVersion.v5):
159
149
  return [version, makeDiscontinuedCodecVersion(options, version, "2.74.0")];
160
- case EditManagerFormatVersion.vSharedBranches: {
150
+ case unbrand(EditManagerFormatVersion.vSharedBranches): {
161
151
  const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
162
152
  return [
163
153
  version,
@@ -78,7 +78,7 @@ export function makeSharedBranchesCodecWithVersion<TChangeset>(
78
78
  );
79
79
  assert(
80
80
  data.originator !== undefined,
81
- "Cannot encode vSharedBranches summary without originator",
81
+ 0xca5 /* Cannot encode vSharedBranches summary without originator */,
82
82
  );
83
83
  const json: Mutable<EncodedEditManager<TChangeset>> = {
84
84
  main: mainBranch,
@@ -12,7 +12,7 @@ import {
12
12
  RevisionTagSchema,
13
13
  SessionIdSchema,
14
14
  } from "../core/index.js";
15
- import { type Brand, brandedNumberType } from "../util/index.js";
15
+ import { type Brand, brandedNumberType, strictEnum, type Values } from "../util/index.js";
16
16
  import type { EncodedBranchId } from "./branch.js";
17
17
 
18
18
  /**
@@ -123,7 +123,7 @@ export const EncodedSharedBranch = <ChangeSchema extends TSchema>(tChange: Chang
123
123
  /**
124
124
  * The format version for the EditManager.
125
125
  */
126
- export const EditManagerFormatVersion = {
126
+ export const EditManagerFormatVersion = strictEnum("editManager.FormatVersion", {
127
127
  /**
128
128
  * Introduced and retired prior to 2.0.
129
129
  * Reading and writing capability removed in 2.73.0.
@@ -161,24 +161,15 @@ export const EditManagerFormatVersion = {
161
161
  * Only used for testing shared branches.
162
162
  */
163
163
  vSharedBranches: "shared-branches|v0.1",
164
- /**
165
- * Not yet released.
166
- * Only used for testing detached roots.
167
- */
168
- vDetachedRoots: "detached-roots|v0.1",
169
- } as const;
170
- export type EditManagerFormatVersion = Brand<
171
- (typeof EditManagerFormatVersion)[keyof typeof EditManagerFormatVersion],
172
- "EditManagerFormatVersion"
173
- >;
164
+ });
165
+ export type EditManagerFormatVersion = Values<typeof EditManagerFormatVersion>;
174
166
  export const supportedEditManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> =
175
167
  new Set([
176
168
  EditManagerFormatVersion.v3,
177
169
  EditManagerFormatVersion.v4,
178
170
  EditManagerFormatVersion.vSharedBranches,
179
- EditManagerFormatVersion.vDetachedRoots,
180
- ] as EditManagerFormatVersion[]);
171
+ ]);
181
172
  export const editManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> = new Set(
182
- Object.values(EditManagerFormatVersion) as EditManagerFormatVersion[],
173
+ Object.values(EditManagerFormatVersion),
183
174
  );
184
175
  /* eslint-enable @typescript-eslint/explicit-function-return-type */
@@ -26,8 +26,7 @@ export interface EncodedEditManager<TChangeset> {
26
26
  | typeof EditManagerFormatVersion.v1
27
27
  | typeof EditManagerFormatVersion.v2
28
28
  | typeof EditManagerFormatVersion.v3
29
- | typeof EditManagerFormatVersion.v4
30
- | typeof EditManagerFormatVersion.vDetachedRoots;
29
+ | typeof EditManagerFormatVersion.v4;
31
30
  }
32
31
 
33
32
  export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: ChangeSchema) =>
@@ -38,7 +37,6 @@ export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: Change
38
37
  Type.Literal(EditManagerFormatVersion.v2),
39
38
  Type.Literal(EditManagerFormatVersion.v3),
40
39
  Type.Literal(EditManagerFormatVersion.v4),
41
- Type.Literal(EditManagerFormatVersion.vDetachedRoots),
42
40
  ]),
43
41
  trunk: Type.Array(SequencedCommit(tChange)),
44
42
  branches: Type.Array(Type.Tuple([SessionIdSchema, SummarySessionBranch(tChange)])),
@@ -51,7 +51,6 @@ export {
51
51
  type EditManagerCodecOptions,
52
52
  clientVersionToEditManagerFormatVersion,
53
53
  editManagerFormatVersionSelectorForSharedBranches,
54
- editManagerFormatVersionSelectorForDetachedRootEditing,
55
54
  } from "./editManagerCodecs.js";
56
55
  export {
57
56
  EditManagerFormatVersion,
@@ -72,11 +71,13 @@ export type {
72
71
  EncodedCommit,
73
72
  } from "./editManagerFormatCommons.js";
74
73
 
74
+ export type { DecodedMessage } from "./messageTypes.js";
75
75
  export {
76
76
  getCodecTreeForMessageFormatWithChange,
77
77
  clientVersionToMessageFormatVersion,
78
78
  messageFormatVersionSelectorForSharedBranches,
79
- messageFormatVersionSelectorForDetachedRootEditing,
79
+ makeMessageCodec,
80
+ type MessageEncodingContext,
80
81
  } from "./messageCodecs.js";
81
82
  export {
82
83
  MessageFormatVersion,
@@ -33,8 +33,7 @@ export function makeV1ToV4CodecWithVersion<TChangeset>(
33
33
  | typeof MessageFormatVersion.v1
34
34
  | typeof MessageFormatVersion.v2
35
35
  | typeof MessageFormatVersion.v3
36
- | typeof MessageFormatVersion.v4
37
- | typeof MessageFormatVersion.vDetachedRoots,
36
+ | typeof MessageFormatVersion.v4,
38
37
  ): IJsonCodec<
39
38
  DecodedMessage<TChangeset>,
40
39
  JsonCompatibleReadOnly,
@@ -29,7 +29,7 @@ import type {
29
29
  RevisionTag,
30
30
  SchemaAndPolicy,
31
31
  } from "../core/index.js";
32
- import { brand, type JsonCompatibleReadOnly } from "../util/index.js";
32
+ import { brand, unbrand, type JsonCompatibleReadOnly } from "../util/index.js";
33
33
 
34
34
  import type { DecodedMessage } from "./messageTypes.js";
35
35
  import type { IIdCompressor } from "@fluidframework/id-compressor";
@@ -82,15 +82,6 @@ export function messageFormatVersionSelectorForSharedBranches(
82
82
  return brand(MessageFormatVersion.vSharedBranches);
83
83
  }
84
84
 
85
- /**
86
- * Returns the version that should be used for testing detached root editing.
87
- */
88
- export function messageFormatVersionSelectorForDetachedRootEditing(
89
- clientVersion: MinimumVersionForCollab,
90
- ): MessageFormatVersion {
91
- return brand(MessageFormatVersion.vDetachedRoots);
92
- }
93
-
94
85
  export function makeMessageCodec<TChangeset>(
95
86
  changeCodecs: ICodecFamily<TChangeset, ChangeEncodingContext>,
96
87
  dependentChangeFormatVersion: DependentFormatVersion<MessageFormatVersion>,
@@ -141,19 +132,18 @@ export function makeMessageCodecs<TChangeset>(
141
132
  >,
142
133
  ][] = Array.from(messageFormatVersions).map((version) => {
143
134
  switch (version) {
144
- case MessageFormatVersion.undefined:
145
- case MessageFormatVersion.v1:
146
- case MessageFormatVersion.v2: {
135
+ case unbrand(MessageFormatVersion.undefined):
136
+ case unbrand(MessageFormatVersion.v1):
137
+ case unbrand(MessageFormatVersion.v2): {
147
138
  const versionOrUndefined =
148
- version === MessageFormatVersion.undefined ? undefined : version;
139
+ version === unbrand(MessageFormatVersion.undefined) ? undefined : version;
149
140
  return [
150
141
  versionOrUndefined,
151
142
  makeDiscontinuedCodecVersion(options, versionOrUndefined, "2.73.0"),
152
143
  ];
153
144
  }
154
- case MessageFormatVersion.v3:
155
- case MessageFormatVersion.v4:
156
- case MessageFormatVersion.vDetachedRoots: {
145
+ case unbrand(MessageFormatVersion.v3):
146
+ case unbrand(MessageFormatVersion.v4): {
157
147
  const changeCodec = changeCodecs.resolve(
158
148
  dependentChangeFormatVersion.lookup(version),
159
149
  ).json;
@@ -162,9 +152,9 @@ export function makeMessageCodecs<TChangeset>(
162
152
  makeV1ToV4CodecWithVersion(changeCodec, revisionTagCodec, options, version),
163
153
  ];
164
154
  }
165
- case MessageFormatVersion.v5:
155
+ case unbrand(MessageFormatVersion.v5):
166
156
  return [version, makeDiscontinuedCodecVersion(options, version, "2.74.0")];
167
- case MessageFormatVersion.vSharedBranches: {
157
+ case unbrand(MessageFormatVersion.vSharedBranches): {
168
158
  const changeCodec = changeCodecs.resolve(
169
159
  dependentChangeFormatVersion.lookup(version),
170
160
  ).json;