@fluidframework/tree 2.74.0-365691 → 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 (856) hide show
  1. package/.vscode/settings.json +4 -2
  2. package/CHANGELOG.md +11 -0
  3. package/api-report/tree.alpha.api.md +125 -87
  4. package/api-report/tree.beta.api.md +0 -1
  5. package/api-report/tree.legacy.beta.api.md +0 -1
  6. package/api-report/tree.legacy.public.api.md +0 -1
  7. package/api-report/tree.public.api.md +0 -1
  8. package/assertTagging.config.mjs +1 -1
  9. package/dist/alpha.d.ts +6 -2
  10. package/dist/codec/codec.d.ts +41 -13
  11. package/dist/codec/codec.d.ts.map +1 -1
  12. package/dist/codec/codec.js +46 -19
  13. package/dist/codec/codec.js.map +1 -1
  14. package/dist/codec/versioned/codec.d.ts +1 -1
  15. package/dist/codec/versioned/codec.d.ts.map +1 -1
  16. package/dist/codec/versioned/codec.js.map +1 -1
  17. package/dist/codec/versioned/format.d.ts +4 -1
  18. package/dist/codec/versioned/format.d.ts.map +1 -1
  19. package/dist/codec/versioned/format.js +4 -1
  20. package/dist/codec/versioned/format.js.map +1 -1
  21. package/dist/core/index.d.ts +2 -2
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +4 -3
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/rebase/index.d.ts +1 -1
  26. package/dist/core/rebase/index.d.ts.map +1 -1
  27. package/dist/core/rebase/index.js.map +1 -1
  28. package/dist/core/rebase/types.d.ts +20 -1
  29. package/dist/core/rebase/types.d.ts.map +1 -1
  30. package/dist/core/rebase/types.js.map +1 -1
  31. package/dist/core/schema-stored/schema.d.ts +4 -7
  32. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  33. package/dist/core/schema-stored/schema.js +2 -2
  34. package/dist/core/schema-stored/schema.js.map +1 -1
  35. package/dist/core/tree/detachedFieldIndex.d.ts +34 -13
  36. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  37. package/dist/core/tree/detachedFieldIndex.js +12 -12
  38. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  39. package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts +4 -4
  40. package/dist/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
  41. package/dist/core/tree/detachedFieldIndexFormatCommon.js +2 -2
  42. package/dist/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  43. package/dist/core/tree/index.d.ts +3 -2
  44. package/dist/core/tree/index.d.ts.map +1 -1
  45. package/dist/core/tree/index.js +3 -0
  46. package/dist/core/tree/index.js.map +1 -1
  47. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  48. package/dist/feature-libraries/chunked-forest/codec/codecs.js +2 -2
  49. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  50. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +5 -5
  51. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  52. package/dist/feature-libraries/chunked-forest/codec/format.js +4 -4
  53. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  54. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +14 -6
  55. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
  56. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
  57. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +7 -2
  58. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  59. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
  60. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  61. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +22 -26
  62. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  63. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +30 -8
  64. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  65. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +41 -11
  66. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  67. package/dist/feature-libraries/forest-summary/codec.d.ts +7 -1
  68. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  69. package/dist/feature-libraries/forest-summary/codec.js +13 -11
  70. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  71. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +10 -13
  72. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  73. package/dist/feature-libraries/forest-summary/forestSummarizer.js +35 -31
  74. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  75. package/dist/feature-libraries/forest-summary/formatCommon.d.ts +61 -0
  76. package/dist/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -0
  77. package/dist/feature-libraries/forest-summary/formatCommon.js +27 -0
  78. package/dist/feature-libraries/forest-summary/formatCommon.js.map +1 -0
  79. package/dist/feature-libraries/forest-summary/formatV1.d.ts +51 -0
  80. package/dist/feature-libraries/forest-summary/formatV1.d.ts.map +1 -0
  81. package/dist/feature-libraries/forest-summary/formatV1.js +11 -0
  82. package/dist/feature-libraries/forest-summary/formatV1.js.map +1 -0
  83. package/dist/feature-libraries/forest-summary/formatV2.d.ts +51 -0
  84. package/dist/feature-libraries/forest-summary/formatV2.d.ts.map +1 -0
  85. package/dist/feature-libraries/forest-summary/formatV2.js +11 -0
  86. package/dist/feature-libraries/forest-summary/formatV2.js.map +1 -0
  87. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +18 -24
  88. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  89. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js +21 -43
  90. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  91. package/dist/feature-libraries/forest-summary/index.d.ts +2 -2
  92. package/dist/feature-libraries/forest-summary/index.d.ts.map +1 -1
  93. package/dist/feature-libraries/forest-summary/index.js +3 -4
  94. package/dist/feature-libraries/forest-summary/index.js.map +1 -1
  95. package/dist/feature-libraries/forest-summary/summaryFormatCommon.d.ts +35 -0
  96. package/dist/feature-libraries/forest-summary/summaryFormatCommon.d.ts.map +1 -0
  97. package/dist/feature-libraries/forest-summary/summaryFormatCommon.js +43 -0
  98. package/dist/feature-libraries/forest-summary/summaryFormatCommon.js.map +1 -0
  99. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts +11 -0
  100. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts.map +1 -0
  101. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.js +14 -0
  102. package/dist/feature-libraries/forest-summary/summaryFormatV1ToV2.js.map +1 -0
  103. package/dist/feature-libraries/forest-summary/summaryFormatV3.d.ts +18 -0
  104. package/dist/feature-libraries/forest-summary/summaryFormatV3.d.ts.map +1 -0
  105. package/dist/feature-libraries/forest-summary/summaryFormatV3.js +21 -0
  106. package/dist/feature-libraries/forest-summary/summaryFormatV3.js.map +1 -0
  107. package/dist/feature-libraries/forest-summary/summaryTypes.d.ts +17 -0
  108. package/dist/feature-libraries/forest-summary/summaryTypes.d.ts.map +1 -0
  109. package/dist/feature-libraries/forest-summary/summaryTypes.js +35 -0
  110. package/dist/feature-libraries/forest-summary/summaryTypes.js.map +1 -0
  111. package/dist/feature-libraries/index.d.ts +1 -1
  112. package/dist/feature-libraries/index.d.ts.map +1 -1
  113. package/dist/feature-libraries/index.js +3 -2
  114. package/dist/feature-libraries/index.js.map +1 -1
  115. package/dist/feature-libraries/modular-schema/comparison.d.ts +18 -2
  116. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  117. package/dist/feature-libraries/modular-schema/comparison.js +54 -3
  118. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  119. package/dist/feature-libraries/modular-schema/fieldKind.d.ts +25 -13
  120. package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  121. package/dist/feature-libraries/modular-schema/fieldKind.js +0 -21
  122. package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  123. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  124. package/dist/feature-libraries/modular-schema/genericFieldKind.js +4 -1
  125. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  126. package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
  127. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  128. package/dist/feature-libraries/modular-schema/index.js +2 -1
  129. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  130. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  131. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -3
  132. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  133. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  134. package/dist/feature-libraries/schema-index/codec.js +4 -4
  135. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  136. package/dist/feature-libraries/schema-index/formatV1.d.ts +1 -1
  137. package/dist/feature-libraries/schema-index/formatV2.d.ts +1 -1
  138. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +27 -8
  139. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  140. package/dist/feature-libraries/schema-index/schemaSummarizer.js +42 -16
  141. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  142. package/dist/index.d.ts +2 -2
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +5 -3
  145. package/dist/index.js.map +1 -1
  146. package/dist/packageVersion.d.ts +1 -1
  147. package/dist/packageVersion.d.ts.map +1 -1
  148. package/dist/packageVersion.js +1 -1
  149. package/dist/packageVersion.js.map +1 -1
  150. package/dist/shared-tree/independentView.d.ts +1 -1
  151. package/dist/shared-tree/independentView.d.ts.map +1 -1
  152. package/dist/shared-tree/independentView.js +1 -1
  153. package/dist/shared-tree/independentView.js.map +1 -1
  154. package/dist/shared-tree/schematizingTreeView.d.ts +2 -1
  155. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  156. package/dist/shared-tree/schematizingTreeView.js +3 -0
  157. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  158. package/dist/shared-tree/sharedTree.d.ts +2 -2
  159. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  160. package/dist/shared-tree/sharedTree.js +4 -4
  161. package/dist/shared-tree/sharedTree.js.map +1 -1
  162. package/dist/shared-tree/sharedTreeChangeCodecs.js +2 -2
  163. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  164. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +20 -8
  165. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  166. package/dist/shared-tree/sharedTreeChangeEnricher.js +25 -11
  167. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  168. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  169. package/dist/shared-tree/treeAlpha.js +1 -1
  170. package/dist/shared-tree/treeAlpha.js.map +1 -1
  171. package/dist/shared-tree/treeCheckout.d.ts +10 -5
  172. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  173. package/dist/shared-tree/treeCheckout.js +72 -17
  174. package/dist/shared-tree/treeCheckout.js.map +1 -1
  175. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  176. package/dist/shared-tree-core/editManagerCodecs.js +10 -8
  177. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  178. package/{lib/shared-tree-core/editManagerCodecsV5.d.ts → dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts} +3 -3
  179. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -0
  180. package/dist/shared-tree-core/{editManagerCodecsV5.js → editManagerCodecsVSharedBranches.js} +7 -7
  181. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -0
  182. package/dist/shared-tree-core/editManagerFormatCommons.d.ts +8 -30
  183. package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  184. package/dist/shared-tree-core/editManagerFormatCommons.js +18 -9
  185. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  186. package/dist/shared-tree-core/editManagerFormatV1toV4.d.ts +1 -1
  187. package/dist/shared-tree-core/{editManagerFormatV5.d.ts → editManagerFormatVSharedBranches.d.ts} +3 -3
  188. package/dist/shared-tree-core/editManagerFormatVSharedBranches.d.ts.map +1 -0
  189. package/dist/shared-tree-core/{editManagerFormatV5.js → editManagerFormatVSharedBranches.js} +2 -2
  190. package/dist/shared-tree-core/editManagerFormatVSharedBranches.js.map +1 -0
  191. package/dist/shared-tree-core/editManagerSummarizer.d.ts +29 -9
  192. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  193. package/dist/shared-tree-core/editManagerSummarizer.js +41 -13
  194. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  195. package/dist/shared-tree-core/index.d.ts +5 -2
  196. package/dist/shared-tree-core/index.d.ts.map +1 -1
  197. package/dist/shared-tree-core/index.js +7 -1
  198. package/dist/shared-tree-core/index.js.map +1 -1
  199. package/{lib/shared-tree-core/messageCodecV5.d.ts → dist/shared-tree-core/messageCodecVSharedBranches.d.ts} +2 -2
  200. package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -0
  201. package/dist/shared-tree-core/{messageCodecV5.js → messageCodecVSharedBranches.js} +6 -6
  202. package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -0
  203. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  204. package/dist/shared-tree-core/messageCodecs.js +12 -10
  205. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  206. package/dist/shared-tree-core/messageFormat.d.ts +9 -36
  207. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  208. package/dist/shared-tree-core/messageFormat.js +19 -9
  209. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  210. package/{lib/shared-tree-core/messageFormatV5.d.ts → dist/shared-tree-core/messageFormatVSharedBranches.d.ts} +5 -7
  211. package/dist/shared-tree-core/messageFormatVSharedBranches.d.ts.map +1 -0
  212. package/dist/shared-tree-core/{messageFormatV5.js → messageFormatVSharedBranches.js} +3 -2
  213. package/dist/shared-tree-core/messageFormatVSharedBranches.js.map +1 -0
  214. package/dist/shared-tree-core/sharedTreeCore.d.ts +13 -47
  215. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  216. package/dist/shared-tree-core/sharedTreeCore.js +29 -17
  217. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  218. package/dist/shared-tree-core/summaryTypes.d.ts +94 -0
  219. package/dist/shared-tree-core/summaryTypes.d.ts.map +1 -0
  220. package/dist/shared-tree-core/summaryTypes.js +47 -0
  221. package/dist/shared-tree-core/summaryTypes.js.map +1 -0
  222. package/dist/shared-tree-core/versionedSummarizer.d.ts +72 -0
  223. package/dist/shared-tree-core/versionedSummarizer.d.ts.map +1 -0
  224. package/dist/shared-tree-core/versionedSummarizer.js +64 -0
  225. package/dist/shared-tree-core/versionedSummarizer.js.map +1 -0
  226. package/dist/simple-tree/api/configuration.d.ts +3 -26
  227. package/dist/simple-tree/api/configuration.d.ts.map +1 -1
  228. package/dist/simple-tree/api/configuration.js +10 -21
  229. package/dist/simple-tree/api/configuration.js.map +1 -1
  230. package/dist/simple-tree/api/dirtyIndex.d.ts +11 -0
  231. package/dist/simple-tree/api/dirtyIndex.d.ts.map +1 -1
  232. package/dist/simple-tree/api/dirtyIndex.js +7 -0
  233. package/dist/simple-tree/api/dirtyIndex.js.map +1 -1
  234. package/dist/simple-tree/api/discrepancies.d.ts +1 -1
  235. package/dist/simple-tree/api/discrepancies.d.ts.map +1 -1
  236. package/dist/simple-tree/api/discrepancies.js.map +1 -1
  237. package/dist/simple-tree/api/eraseSchemaDetails.d.ts +89 -0
  238. package/dist/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -0
  239. package/dist/simple-tree/api/eraseSchemaDetails.js +97 -0
  240. package/dist/simple-tree/api/eraseSchemaDetails.js.map +1 -0
  241. package/dist/simple-tree/api/getSimpleSchema.d.ts +3 -3
  242. package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
  243. package/dist/simple-tree/api/getSimpleSchema.js +9 -3
  244. package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
  245. package/dist/simple-tree/api/incrementalAllowedTypes.d.ts +1 -1
  246. package/dist/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
  247. package/dist/simple-tree/api/incrementalAllowedTypes.js +7 -0
  248. package/dist/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
  249. package/dist/simple-tree/api/index.d.ts +4 -4
  250. package/dist/simple-tree/api/index.d.ts.map +1 -1
  251. package/dist/simple-tree/api/index.js +8 -5
  252. package/dist/simple-tree/api/index.js.map +1 -1
  253. package/dist/simple-tree/api/schemaCompatibilityTester.d.ts +1 -1
  254. package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
  255. package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
  256. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +5 -5
  257. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  258. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  259. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  260. package/dist/simple-tree/api/schemaFactoryRecursive.js +0 -1
  261. package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  262. package/dist/simple-tree/api/schemaFromSimple.d.ts +6 -1
  263. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  264. package/dist/simple-tree/api/schemaFromSimple.js +5 -0
  265. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
  266. package/dist/simple-tree/api/schemaStatics.d.ts +12 -12
  267. package/dist/simple-tree/api/simpleSchemaCodec.d.ts +15 -3
  268. package/dist/simple-tree/api/simpleSchemaCodec.d.ts.map +1 -1
  269. package/dist/simple-tree/api/simpleSchemaCodec.js +18 -6
  270. package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
  271. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  272. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  273. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  274. package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +8 -1
  275. package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
  276. package/dist/simple-tree/api/snapshotCompatibilityChecker.js +13 -8
  277. package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
  278. package/dist/simple-tree/api/storedSchema.d.ts +1 -1
  279. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  280. package/dist/simple-tree/api/storedSchema.js +1 -2
  281. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  282. package/dist/simple-tree/api/tree.d.ts +15 -2
  283. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  284. package/dist/simple-tree/api/tree.js.map +1 -1
  285. package/dist/simple-tree/api/typesUnsafe.d.ts +3 -3
  286. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  287. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  288. package/dist/simple-tree/core/allowedTypes.d.ts +2 -2
  289. package/dist/simple-tree/core/allowedTypes.d.ts.map +1 -1
  290. package/dist/simple-tree/core/allowedTypes.js.map +1 -1
  291. package/dist/simple-tree/core/index.d.ts +1 -1
  292. package/dist/simple-tree/core/index.d.ts.map +1 -1
  293. package/dist/simple-tree/core/index.js +2 -3
  294. package/dist/simple-tree/core/index.js.map +1 -1
  295. package/dist/simple-tree/core/toStored.d.ts +17 -15
  296. package/dist/simple-tree/core/toStored.d.ts.map +1 -1
  297. package/dist/simple-tree/core/toStored.js +5 -40
  298. package/dist/simple-tree/core/toStored.js.map +1 -1
  299. package/dist/simple-tree/core/treeNode.d.ts.map +1 -1
  300. package/dist/simple-tree/core/treeNode.js +1 -0
  301. package/dist/simple-tree/core/treeNode.js.map +1 -1
  302. package/dist/simple-tree/core/walkSchema.d.ts.map +1 -1
  303. package/dist/simple-tree/core/walkSchema.js +4 -0
  304. package/dist/simple-tree/core/walkSchema.js.map +1 -1
  305. package/dist/simple-tree/createContext.d.ts.map +1 -1
  306. package/dist/simple-tree/createContext.js +20 -5
  307. package/dist/simple-tree/createContext.js.map +1 -1
  308. package/dist/simple-tree/fieldSchema.d.ts +3 -3
  309. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  310. package/dist/simple-tree/fieldSchema.js.map +1 -1
  311. package/dist/simple-tree/index.d.ts +6 -5
  312. package/dist/simple-tree/index.d.ts.map +1 -1
  313. package/dist/simple-tree/index.js +16 -11
  314. package/dist/simple-tree/index.js.map +1 -1
  315. package/dist/simple-tree/leafNodeSchema.d.ts +5 -5
  316. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  317. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  318. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  319. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
  320. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  321. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  322. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  323. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  324. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
  325. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  326. package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  327. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts +2 -2
  328. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  329. package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  330. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  331. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  332. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts +3 -3
  333. package/dist/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  334. package/dist/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  335. package/dist/simple-tree/simpleSchema.d.ts +55 -23
  336. package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
  337. package/dist/simple-tree/simpleSchema.js +17 -0
  338. package/dist/simple-tree/simpleSchema.js.map +1 -1
  339. package/dist/simple-tree/simpleSchemaFormatV1.d.ts +1 -1
  340. package/dist/simple-tree/simpleSchemaFormatV1.d.ts.map +1 -1
  341. package/dist/simple-tree/simpleSchemaFormatV1.js +8 -1
  342. package/dist/simple-tree/simpleSchemaFormatV1.js.map +1 -1
  343. package/dist/simple-tree/toStoredSchema.d.ts +58 -11
  344. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  345. package/dist/simple-tree/toStoredSchema.js +205 -30
  346. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  347. package/dist/simple-tree/treeSchema.d.ts +23 -0
  348. package/dist/simple-tree/treeSchema.d.ts.map +1 -0
  349. package/dist/simple-tree/treeSchema.js +25 -0
  350. package/dist/simple-tree/treeSchema.js.map +1 -0
  351. package/dist/tableSchema.d.ts +107 -64
  352. package/dist/tableSchema.d.ts.map +1 -1
  353. package/dist/tableSchema.js +161 -60
  354. package/dist/tableSchema.js.map +1 -1
  355. package/dist/util/brand.d.ts +49 -0
  356. package/dist/util/brand.d.ts.map +1 -1
  357. package/dist/util/brand.js +47 -1
  358. package/dist/util/brand.js.map +1 -1
  359. package/dist/util/index.d.ts +2 -1
  360. package/dist/util/index.d.ts.map +1 -1
  361. package/dist/util/index.js +6 -2
  362. package/dist/util/index.js.map +1 -1
  363. package/dist/util/readSnapshotBlob.d.ts +13 -0
  364. package/dist/util/readSnapshotBlob.d.ts.map +1 -0
  365. package/dist/util/readSnapshotBlob.js +18 -0
  366. package/dist/util/readSnapshotBlob.js.map +1 -0
  367. package/eslint.config.mts +98 -0
  368. package/lib/alpha.d.ts +6 -2
  369. package/lib/codec/codec.d.ts +41 -13
  370. package/lib/codec/codec.d.ts.map +1 -1
  371. package/lib/codec/codec.js +40 -13
  372. package/lib/codec/codec.js.map +1 -1
  373. package/lib/codec/versioned/codec.d.ts +1 -1
  374. package/lib/codec/versioned/codec.d.ts.map +1 -1
  375. package/lib/codec/versioned/codec.js.map +1 -1
  376. package/lib/codec/versioned/format.d.ts +4 -1
  377. package/lib/codec/versioned/format.d.ts.map +1 -1
  378. package/lib/codec/versioned/format.js +4 -1
  379. package/lib/codec/versioned/format.js.map +1 -1
  380. package/lib/core/index.d.ts +2 -2
  381. package/lib/core/index.d.ts.map +1 -1
  382. package/lib/core/index.js +1 -1
  383. package/lib/core/index.js.map +1 -1
  384. package/lib/core/rebase/index.d.ts +1 -1
  385. package/lib/core/rebase/index.d.ts.map +1 -1
  386. package/lib/core/rebase/index.js.map +1 -1
  387. package/lib/core/rebase/types.d.ts +20 -1
  388. package/lib/core/rebase/types.d.ts.map +1 -1
  389. package/lib/core/rebase/types.js.map +1 -1
  390. package/lib/core/schema-stored/schema.d.ts +4 -7
  391. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  392. package/lib/core/schema-stored/schema.js +3 -3
  393. package/lib/core/schema-stored/schema.js.map +1 -1
  394. package/lib/core/tree/detachedFieldIndex.d.ts +34 -13
  395. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  396. package/lib/core/tree/detachedFieldIndex.js +12 -12
  397. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  398. package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts +4 -4
  399. package/lib/core/tree/detachedFieldIndexFormatCommon.d.ts.map +1 -1
  400. package/lib/core/tree/detachedFieldIndexFormatCommon.js +3 -3
  401. package/lib/core/tree/detachedFieldIndexFormatCommon.js.map +1 -1
  402. package/lib/core/tree/index.d.ts +3 -2
  403. package/lib/core/tree/index.d.ts.map +1 -1
  404. package/lib/core/tree/index.js +2 -1
  405. package/lib/core/tree/index.js.map +1 -1
  406. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  407. package/lib/feature-libraries/chunked-forest/codec/codecs.js +3 -3
  408. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  409. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +5 -5
  410. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  411. package/lib/feature-libraries/chunked-forest/codec/format.js +5 -5
  412. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  413. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +14 -6
  414. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
  415. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
  416. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +7 -2
  417. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  418. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
  419. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  420. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +23 -27
  421. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  422. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +30 -8
  423. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  424. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +38 -8
  425. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  426. package/lib/feature-libraries/forest-summary/codec.d.ts +7 -1
  427. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  428. package/lib/feature-libraries/forest-summary/codec.js +12 -11
  429. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  430. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +10 -13
  431. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  432. package/lib/feature-libraries/forest-summary/forestSummarizer.js +33 -29
  433. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  434. package/lib/feature-libraries/forest-summary/formatCommon.d.ts +61 -0
  435. package/lib/feature-libraries/forest-summary/formatCommon.d.ts.map +1 -0
  436. package/lib/feature-libraries/forest-summary/formatCommon.js +23 -0
  437. package/lib/feature-libraries/forest-summary/formatCommon.js.map +1 -0
  438. package/lib/feature-libraries/forest-summary/formatV1.d.ts +51 -0
  439. package/lib/feature-libraries/forest-summary/formatV1.d.ts.map +1 -0
  440. package/lib/feature-libraries/forest-summary/formatV1.js +8 -0
  441. package/lib/feature-libraries/forest-summary/formatV1.js.map +1 -0
  442. package/lib/feature-libraries/forest-summary/formatV2.d.ts +51 -0
  443. package/lib/feature-libraries/forest-summary/formatV2.d.ts.map +1 -0
  444. package/lib/feature-libraries/forest-summary/formatV2.js +8 -0
  445. package/lib/feature-libraries/forest-summary/formatV2.js.map +1 -0
  446. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +18 -24
  447. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  448. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js +20 -42
  449. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  450. package/lib/feature-libraries/forest-summary/index.d.ts +2 -2
  451. package/lib/feature-libraries/forest-summary/index.d.ts.map +1 -1
  452. package/lib/feature-libraries/forest-summary/index.js +2 -2
  453. package/lib/feature-libraries/forest-summary/index.js.map +1 -1
  454. package/lib/feature-libraries/forest-summary/summaryFormatCommon.d.ts +35 -0
  455. package/lib/feature-libraries/forest-summary/summaryFormatCommon.d.ts.map +1 -0
  456. package/lib/feature-libraries/forest-summary/summaryFormatCommon.js +40 -0
  457. package/lib/feature-libraries/forest-summary/summaryFormatCommon.js.map +1 -0
  458. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts +11 -0
  459. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.d.ts.map +1 -0
  460. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.js +11 -0
  461. package/lib/feature-libraries/forest-summary/summaryFormatV1ToV2.js.map +1 -0
  462. package/lib/feature-libraries/forest-summary/summaryFormatV3.d.ts +18 -0
  463. package/lib/feature-libraries/forest-summary/summaryFormatV3.d.ts.map +1 -0
  464. package/lib/feature-libraries/forest-summary/summaryFormatV3.js +18 -0
  465. package/lib/feature-libraries/forest-summary/summaryFormatV3.js.map +1 -0
  466. package/lib/feature-libraries/forest-summary/summaryTypes.d.ts +17 -0
  467. package/lib/feature-libraries/forest-summary/summaryTypes.d.ts.map +1 -0
  468. package/lib/feature-libraries/forest-summary/summaryTypes.js +30 -0
  469. package/lib/feature-libraries/forest-summary/summaryTypes.js.map +1 -0
  470. package/lib/feature-libraries/index.d.ts +1 -1
  471. package/lib/feature-libraries/index.d.ts.map +1 -1
  472. package/lib/feature-libraries/index.js +1 -1
  473. package/lib/feature-libraries/index.js.map +1 -1
  474. package/lib/feature-libraries/modular-schema/comparison.d.ts +18 -2
  475. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  476. package/lib/feature-libraries/modular-schema/comparison.js +55 -5
  477. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  478. package/lib/feature-libraries/modular-schema/fieldKind.d.ts +25 -13
  479. package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  480. package/lib/feature-libraries/modular-schema/fieldKind.js +0 -21
  481. package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  482. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  483. package/lib/feature-libraries/modular-schema/genericFieldKind.js +4 -1
  484. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  485. package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
  486. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  487. package/lib/feature-libraries/modular-schema/index.js +1 -1
  488. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  489. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  490. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -3
  491. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  492. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  493. package/lib/feature-libraries/schema-index/codec.js +5 -5
  494. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  495. package/lib/feature-libraries/schema-index/formatV1.d.ts +1 -1
  496. package/lib/feature-libraries/schema-index/formatV2.d.ts +1 -1
  497. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +27 -8
  498. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  499. package/lib/feature-libraries/schema-index/schemaSummarizer.js +38 -12
  500. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  501. package/lib/index.d.ts +2 -2
  502. package/lib/index.d.ts.map +1 -1
  503. package/lib/index.js +1 -1
  504. package/lib/index.js.map +1 -1
  505. package/lib/packageVersion.d.ts +1 -1
  506. package/lib/packageVersion.d.ts.map +1 -1
  507. package/lib/packageVersion.js +1 -1
  508. package/lib/packageVersion.js.map +1 -1
  509. package/lib/shared-tree/independentView.d.ts +1 -1
  510. package/lib/shared-tree/independentView.d.ts.map +1 -1
  511. package/lib/shared-tree/independentView.js +2 -2
  512. package/lib/shared-tree/independentView.js.map +1 -1
  513. package/lib/shared-tree/schematizingTreeView.d.ts +2 -1
  514. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  515. package/lib/shared-tree/schematizingTreeView.js +3 -0
  516. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  517. package/lib/shared-tree/sharedTree.d.ts +2 -2
  518. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  519. package/lib/shared-tree/sharedTree.js +4 -4
  520. package/lib/shared-tree/sharedTree.js.map +1 -1
  521. package/lib/shared-tree/sharedTreeChangeCodecs.js +2 -2
  522. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  523. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +20 -8
  524. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  525. package/lib/shared-tree/sharedTreeChangeEnricher.js +25 -11
  526. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  527. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  528. package/lib/shared-tree/treeAlpha.js +2 -2
  529. package/lib/shared-tree/treeAlpha.js.map +1 -1
  530. package/lib/shared-tree/treeCheckout.d.ts +10 -5
  531. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  532. package/lib/shared-tree/treeCheckout.js +73 -18
  533. package/lib/shared-tree/treeCheckout.js.map +1 -1
  534. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  535. package/lib/shared-tree-core/editManagerCodecs.js +11 -9
  536. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  537. package/{dist/shared-tree-core/editManagerCodecsV5.d.ts → lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts} +3 -3
  538. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -0
  539. package/lib/shared-tree-core/{editManagerCodecsV5.js → editManagerCodecsVSharedBranches.js} +4 -4
  540. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -0
  541. package/lib/shared-tree-core/editManagerFormatCommons.d.ts +8 -30
  542. package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  543. package/lib/shared-tree-core/editManagerFormatCommons.js +19 -10
  544. package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  545. package/lib/shared-tree-core/editManagerFormatV1toV4.d.ts +1 -1
  546. package/lib/shared-tree-core/{editManagerFormatV5.d.ts → editManagerFormatVSharedBranches.d.ts} +3 -3
  547. package/lib/shared-tree-core/editManagerFormatVSharedBranches.d.ts.map +1 -0
  548. package/lib/shared-tree-core/{editManagerFormatV5.js → editManagerFormatVSharedBranches.js} +2 -2
  549. package/lib/shared-tree-core/editManagerFormatVSharedBranches.js.map +1 -0
  550. package/lib/shared-tree-core/editManagerSummarizer.d.ts +29 -9
  551. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  552. package/lib/shared-tree-core/editManagerSummarizer.js +39 -11
  553. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  554. package/lib/shared-tree-core/index.d.ts +5 -2
  555. package/lib/shared-tree-core/index.d.ts.map +1 -1
  556. package/lib/shared-tree-core/index.js +3 -1
  557. package/lib/shared-tree-core/index.js.map +1 -1
  558. package/{dist/shared-tree-core/messageCodecV5.d.ts → lib/shared-tree-core/messageCodecVSharedBranches.d.ts} +2 -2
  559. package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -0
  560. package/lib/shared-tree-core/{messageCodecV5.js → messageCodecVSharedBranches.js} +3 -3
  561. package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -0
  562. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  563. package/lib/shared-tree-core/messageCodecs.js +13 -11
  564. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  565. package/lib/shared-tree-core/messageFormat.d.ts +9 -36
  566. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  567. package/lib/shared-tree-core/messageFormat.js +19 -9
  568. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  569. package/{dist/shared-tree-core/messageFormatV5.d.ts → lib/shared-tree-core/messageFormatVSharedBranches.d.ts} +5 -7
  570. package/lib/shared-tree-core/messageFormatVSharedBranches.d.ts.map +1 -0
  571. package/lib/shared-tree-core/{messageFormatV5.js → messageFormatVSharedBranches.js} +3 -2
  572. package/lib/shared-tree-core/messageFormatVSharedBranches.js.map +1 -0
  573. package/lib/shared-tree-core/sharedTreeCore.d.ts +13 -47
  574. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  575. package/lib/shared-tree-core/sharedTreeCore.js +27 -15
  576. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  577. package/lib/shared-tree-core/summaryTypes.d.ts +94 -0
  578. package/lib/shared-tree-core/summaryTypes.d.ts.map +1 -0
  579. package/lib/shared-tree-core/summaryTypes.js +43 -0
  580. package/lib/shared-tree-core/summaryTypes.js.map +1 -0
  581. package/lib/shared-tree-core/versionedSummarizer.d.ts +72 -0
  582. package/lib/shared-tree-core/versionedSummarizer.d.ts.map +1 -0
  583. package/lib/shared-tree-core/versionedSummarizer.js +60 -0
  584. package/lib/shared-tree-core/versionedSummarizer.js.map +1 -0
  585. package/lib/simple-tree/api/configuration.d.ts +3 -26
  586. package/lib/simple-tree/api/configuration.d.ts.map +1 -1
  587. package/lib/simple-tree/api/configuration.js +14 -25
  588. package/lib/simple-tree/api/configuration.js.map +1 -1
  589. package/lib/simple-tree/api/dirtyIndex.d.ts +11 -0
  590. package/lib/simple-tree/api/dirtyIndex.d.ts.map +1 -1
  591. package/lib/simple-tree/api/dirtyIndex.js +7 -0
  592. package/lib/simple-tree/api/dirtyIndex.js.map +1 -1
  593. package/lib/simple-tree/api/discrepancies.d.ts +1 -1
  594. package/lib/simple-tree/api/discrepancies.d.ts.map +1 -1
  595. package/lib/simple-tree/api/discrepancies.js.map +1 -1
  596. package/lib/simple-tree/api/eraseSchemaDetails.d.ts +89 -0
  597. package/lib/simple-tree/api/eraseSchemaDetails.d.ts.map +1 -0
  598. package/lib/simple-tree/api/eraseSchemaDetails.js +92 -0
  599. package/lib/simple-tree/api/eraseSchemaDetails.js.map +1 -0
  600. package/lib/simple-tree/api/getSimpleSchema.d.ts +3 -3
  601. package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
  602. package/lib/simple-tree/api/getSimpleSchema.js +9 -3
  603. package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
  604. package/lib/simple-tree/api/incrementalAllowedTypes.d.ts +1 -1
  605. package/lib/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
  606. package/lib/simple-tree/api/incrementalAllowedTypes.js +8 -1
  607. package/lib/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
  608. package/lib/simple-tree/api/index.d.ts +4 -4
  609. package/lib/simple-tree/api/index.d.ts.map +1 -1
  610. package/lib/simple-tree/api/index.js +3 -3
  611. package/lib/simple-tree/api/index.js.map +1 -1
  612. package/lib/simple-tree/api/schemaCompatibilityTester.d.ts +1 -1
  613. package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
  614. package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
  615. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +5 -5
  616. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  617. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  618. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  619. package/lib/simple-tree/api/schemaFactoryRecursive.js +0 -1
  620. package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  621. package/lib/simple-tree/api/schemaFromSimple.d.ts +6 -1
  622. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  623. package/lib/simple-tree/api/schemaFromSimple.js +5 -0
  624. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
  625. package/lib/simple-tree/api/schemaStatics.d.ts +12 -12
  626. package/lib/simple-tree/api/simpleSchemaCodec.d.ts +15 -3
  627. package/lib/simple-tree/api/simpleSchemaCodec.d.ts.map +1 -1
  628. package/lib/simple-tree/api/simpleSchemaCodec.js +15 -3
  629. package/lib/simple-tree/api/simpleSchemaCodec.js.map +1 -1
  630. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  631. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  632. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  633. package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +8 -1
  634. package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -1
  635. package/lib/simple-tree/api/snapshotCompatibilityChecker.js +15 -10
  636. package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -1
  637. package/lib/simple-tree/api/storedSchema.d.ts +1 -1
  638. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  639. package/lib/simple-tree/api/storedSchema.js +1 -2
  640. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  641. package/lib/simple-tree/api/tree.d.ts +15 -2
  642. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  643. package/lib/simple-tree/api/tree.js.map +1 -1
  644. package/lib/simple-tree/api/typesUnsafe.d.ts +3 -3
  645. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  646. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  647. package/lib/simple-tree/core/allowedTypes.d.ts +2 -2
  648. package/lib/simple-tree/core/allowedTypes.d.ts.map +1 -1
  649. package/lib/simple-tree/core/allowedTypes.js.map +1 -1
  650. package/lib/simple-tree/core/index.d.ts +1 -1
  651. package/lib/simple-tree/core/index.d.ts.map +1 -1
  652. package/lib/simple-tree/core/index.js +1 -1
  653. package/lib/simple-tree/core/index.js.map +1 -1
  654. package/lib/simple-tree/core/toStored.d.ts +17 -15
  655. package/lib/simple-tree/core/toStored.d.ts.map +1 -1
  656. package/lib/simple-tree/core/toStored.js +4 -37
  657. package/lib/simple-tree/core/toStored.js.map +1 -1
  658. package/lib/simple-tree/core/treeNode.d.ts.map +1 -1
  659. package/lib/simple-tree/core/treeNode.js +1 -0
  660. package/lib/simple-tree/core/treeNode.js.map +1 -1
  661. package/lib/simple-tree/core/walkSchema.d.ts.map +1 -1
  662. package/lib/simple-tree/core/walkSchema.js +5 -1
  663. package/lib/simple-tree/core/walkSchema.js.map +1 -1
  664. package/lib/simple-tree/createContext.d.ts.map +1 -1
  665. package/lib/simple-tree/createContext.js +20 -5
  666. package/lib/simple-tree/createContext.js.map +1 -1
  667. package/lib/simple-tree/fieldSchema.d.ts +3 -3
  668. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  669. package/lib/simple-tree/fieldSchema.js.map +1 -1
  670. package/lib/simple-tree/index.d.ts +6 -5
  671. package/lib/simple-tree/index.d.ts.map +1 -1
  672. package/lib/simple-tree/index.js +5 -4
  673. package/lib/simple-tree/index.js.map +1 -1
  674. package/lib/simple-tree/leafNodeSchema.d.ts +5 -5
  675. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  676. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  677. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  678. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +3 -3
  679. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  680. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  681. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  682. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  683. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +3 -3
  684. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  685. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  686. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts +2 -2
  687. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -1
  688. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -1
  689. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  690. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  691. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts +3 -3
  692. package/lib/simple-tree/node-kinds/record/recordNodeTypes.d.ts.map +1 -1
  693. package/lib/simple-tree/node-kinds/record/recordNodeTypes.js.map +1 -1
  694. package/lib/simple-tree/simpleSchema.d.ts +55 -23
  695. package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
  696. package/lib/simple-tree/simpleSchema.js +16 -1
  697. package/lib/simple-tree/simpleSchema.js.map +1 -1
  698. package/lib/simple-tree/simpleSchemaFormatV1.d.ts +1 -1
  699. package/lib/simple-tree/simpleSchemaFormatV1.d.ts.map +1 -1
  700. package/lib/simple-tree/simpleSchemaFormatV1.js +8 -1
  701. package/lib/simple-tree/simpleSchemaFormatV1.js.map +1 -1
  702. package/lib/simple-tree/toStoredSchema.d.ts +58 -11
  703. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  704. package/lib/simple-tree/toStoredSchema.js +204 -31
  705. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  706. package/lib/simple-tree/treeSchema.d.ts +23 -0
  707. package/lib/simple-tree/treeSchema.d.ts.map +1 -0
  708. package/lib/simple-tree/treeSchema.js +21 -0
  709. package/lib/simple-tree/treeSchema.js.map +1 -0
  710. package/lib/tableSchema.d.ts +107 -64
  711. package/lib/tableSchema.d.ts.map +1 -1
  712. package/lib/tableSchema.js +162 -61
  713. package/lib/tableSchema.js.map +1 -1
  714. package/lib/util/brand.d.ts +49 -0
  715. package/lib/util/brand.d.ts.map +1 -1
  716. package/lib/util/brand.js +44 -0
  717. package/lib/util/brand.js.map +1 -1
  718. package/lib/util/index.d.ts +2 -1
  719. package/lib/util/index.d.ts.map +1 -1
  720. package/lib/util/index.js +2 -1
  721. package/lib/util/index.js.map +1 -1
  722. package/lib/util/readSnapshotBlob.d.ts +13 -0
  723. package/lib/util/readSnapshotBlob.d.ts.map +1 -0
  724. package/lib/util/readSnapshotBlob.js +14 -0
  725. package/lib/util/readSnapshotBlob.js.map +1 -0
  726. package/package.json +24 -23
  727. package/src/codec/codec.ts +44 -14
  728. package/src/codec/versioned/codec.ts +1 -1
  729. package/src/codec/versioned/format.ts +4 -1
  730. package/src/core/index.ts +4 -1
  731. package/src/core/rebase/index.ts +1 -0
  732. package/src/core/rebase/types.ts +25 -0
  733. package/src/core/schema-stored/schema.ts +5 -7
  734. package/src/core/tree/detachedFieldIndex.ts +54 -13
  735. package/src/core/tree/detachedFieldIndexFormatCommon.ts +4 -7
  736. package/src/core/tree/index.ts +7 -2
  737. package/src/feature-libraries/chunked-forest/codec/codecs.ts +3 -2
  738. package/src/feature-libraries/chunked-forest/codec/format.ts +6 -9
  739. package/src/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.ts +15 -7
  740. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +9 -9
  741. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +22 -33
  742. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +62 -15
  743. package/src/feature-libraries/forest-summary/codec.ts +22 -10
  744. package/src/feature-libraries/forest-summary/forestSummarizer.ts +77 -44
  745. package/src/feature-libraries/forest-summary/{format.ts → formatCommon.ts} +12 -13
  746. package/src/feature-libraries/forest-summary/formatV1.ts +12 -0
  747. package/src/feature-libraries/forest-summary/formatV2.ts +12 -0
  748. package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +37 -56
  749. package/src/feature-libraries/forest-summary/index.ts +2 -2
  750. package/src/feature-libraries/forest-summary/summaryFormatCommon.ts +41 -0
  751. package/src/feature-libraries/forest-summary/summaryFormatV1ToV2.ts +11 -0
  752. package/src/feature-libraries/forest-summary/summaryFormatV3.ts +18 -0
  753. package/src/feature-libraries/forest-summary/summaryTypes.ts +41 -0
  754. package/src/feature-libraries/index.ts +1 -1
  755. package/src/feature-libraries/modular-schema/comparison.ts +64 -5
  756. package/src/feature-libraries/modular-schema/fieldKind.ts +24 -40
  757. package/src/feature-libraries/modular-schema/genericFieldKind.ts +4 -1
  758. package/src/feature-libraries/modular-schema/index.ts +1 -0
  759. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +2 -3
  760. package/src/feature-libraries/schema-index/codec.ts +7 -9
  761. package/src/feature-libraries/schema-index/schemaSummarizer.ts +59 -18
  762. package/src/index.ts +6 -2
  763. package/src/packageVersion.ts +1 -1
  764. package/src/shared-tree/independentView.ts +2 -3
  765. package/src/shared-tree/schematizingTreeView.ts +5 -0
  766. package/src/shared-tree/sharedTree.ts +20 -9
  767. package/src/shared-tree/sharedTreeChangeCodecs.ts +2 -2
  768. package/src/shared-tree/sharedTreeChangeEnricher.ts +31 -11
  769. package/src/shared-tree/treeAlpha.ts +2 -3
  770. package/src/shared-tree/treeCheckout.ts +103 -20
  771. package/src/shared-tree-core/editManagerCodecs.ts +11 -9
  772. package/src/shared-tree-core/{editManagerCodecsV5.ts → editManagerCodecsVSharedBranches.ts} +3 -3
  773. package/src/shared-tree-core/editManagerFormatCommons.ts +22 -16
  774. package/src/shared-tree-core/{editManagerFormatV5.ts → editManagerFormatVSharedBranches.ts} +2 -2
  775. package/src/shared-tree-core/editManagerSummarizer.ts +58 -16
  776. package/src/shared-tree-core/index.ts +12 -3
  777. package/src/shared-tree-core/{messageCodecV5.ts → messageCodecVSharedBranches.ts} +3 -3
  778. package/src/shared-tree-core/messageCodecs.ts +13 -11
  779. package/src/shared-tree-core/messageFormat.ts +23 -16
  780. package/src/shared-tree-core/{messageFormatV5.ts → messageFormatVSharedBranches.ts} +4 -6
  781. package/src/shared-tree-core/sharedTreeCore.ts +63 -75
  782. package/src/shared-tree-core/summaryTypes.ts +122 -0
  783. package/src/shared-tree-core/versionedSummarizer.ts +114 -0
  784. package/src/simple-tree/api/configuration.ts +21 -68
  785. package/src/simple-tree/api/dirtyIndex.ts +11 -0
  786. package/src/simple-tree/api/discrepancies.ts +1 -1
  787. package/src/simple-tree/api/eraseSchemaDetails.ts +123 -0
  788. package/src/simple-tree/api/getSimpleSchema.ts +13 -6
  789. package/src/simple-tree/api/incrementalAllowedTypes.ts +15 -3
  790. package/src/simple-tree/api/index.ts +7 -4
  791. package/src/simple-tree/api/schemaCompatibilityTester.ts +1 -1
  792. package/src/simple-tree/api/schemaFactoryAlpha.ts +2 -2
  793. package/src/simple-tree/api/schemaFactoryRecursive.ts +0 -2
  794. package/src/simple-tree/api/schemaFromSimple.ts +11 -5
  795. package/src/simple-tree/api/simpleSchemaCodec.ts +17 -3
  796. package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -1
  797. package/src/simple-tree/api/snapshotCompatibilityChecker.ts +18 -10
  798. package/src/simple-tree/api/storedSchema.ts +2 -2
  799. package/src/simple-tree/api/tree.ts +16 -1
  800. package/src/simple-tree/api/typesUnsafe.ts +7 -3
  801. package/src/simple-tree/core/allowedTypes.ts +3 -3
  802. package/src/simple-tree/core/index.ts +2 -2
  803. package/src/simple-tree/core/toStored.ts +22 -55
  804. package/src/simple-tree/core/treeNode.ts +1 -0
  805. package/src/simple-tree/core/walkSchema.ts +6 -0
  806. package/src/simple-tree/createContext.ts +29 -11
  807. package/src/simple-tree/fieldSchema.ts +10 -3
  808. package/src/simple-tree/index.ts +12 -10
  809. package/src/simple-tree/node-kinds/array/arrayNode.ts +5 -2
  810. package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +3 -3
  811. package/src/simple-tree/node-kinds/map/mapNode.ts +5 -2
  812. package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +3 -3
  813. package/src/simple-tree/node-kinds/object/objectNodeTypes.ts +6 -2
  814. package/src/simple-tree/node-kinds/record/recordNode.ts +5 -2
  815. package/src/simple-tree/node-kinds/record/recordNodeTypes.ts +3 -3
  816. package/src/simple-tree/simpleSchema.ts +79 -32
  817. package/src/simple-tree/simpleSchemaFormatV1.ts +9 -1
  818. package/src/simple-tree/toStoredSchema.ts +319 -61
  819. package/src/simple-tree/treeSchema.ts +54 -0
  820. package/src/tableSchema.ts +487 -173
  821. package/src/util/brand.ts +61 -0
  822. package/src/util/index.ts +5 -0
  823. package/src/util/readSnapshotBlob.ts +23 -0
  824. package/dist/feature-libraries/forest-summary/format.d.ts +0 -23
  825. package/dist/feature-libraries/forest-summary/format.d.ts.map +0 -1
  826. package/dist/feature-libraries/forest-summary/format.js +0 -24
  827. package/dist/feature-libraries/forest-summary/format.js.map +0 -1
  828. package/dist/shared-tree-core/editManagerCodecsV5.d.ts.map +0 -1
  829. package/dist/shared-tree-core/editManagerCodecsV5.js.map +0 -1
  830. package/dist/shared-tree-core/editManagerFormatV5.d.ts.map +0 -1
  831. package/dist/shared-tree-core/editManagerFormatV5.js.map +0 -1
  832. package/dist/shared-tree-core/messageCodecV5.d.ts.map +0 -1
  833. package/dist/shared-tree-core/messageCodecV5.js.map +0 -1
  834. package/dist/shared-tree-core/messageFormatV5.d.ts.map +0 -1
  835. package/dist/shared-tree-core/messageFormatV5.js.map +0 -1
  836. package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +0 -40
  837. package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +0 -1
  838. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +0 -177
  839. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +0 -1
  840. package/lib/feature-libraries/forest-summary/format.d.ts +0 -23
  841. package/lib/feature-libraries/forest-summary/format.d.ts.map +0 -1
  842. package/lib/feature-libraries/forest-summary/format.js +0 -21
  843. package/lib/feature-libraries/forest-summary/format.js.map +0 -1
  844. package/lib/shared-tree-core/editManagerCodecsV5.d.ts.map +0 -1
  845. package/lib/shared-tree-core/editManagerCodecsV5.js.map +0 -1
  846. package/lib/shared-tree-core/editManagerFormatV5.d.ts.map +0 -1
  847. package/lib/shared-tree-core/editManagerFormatV5.js.map +0 -1
  848. package/lib/shared-tree-core/messageCodecV5.d.ts.map +0 -1
  849. package/lib/shared-tree-core/messageCodecV5.js.map +0 -1
  850. package/lib/shared-tree-core/messageFormatV5.d.ts.map +0 -1
  851. package/lib/shared-tree-core/messageFormatV5.js.map +0 -1
  852. package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +0 -40
  853. package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +0 -1
  854. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +0 -171
  855. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +0 -1
  856. package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +0 -209
@@ -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,
@@ -48,6 +47,9 @@ import {
48
47
  type TreeNodeStoredSchema,
49
48
  LeafNodeStoredSchema,
50
49
  diffHistories,
50
+ type ChangeMetadata,
51
+ type ChangeEncodingContext,
52
+ type ReadOnlyDetachedFieldIndex,
51
53
  } from "../core/index.js";
52
54
  import {
53
55
  type FieldBatchCodec,
@@ -68,7 +70,13 @@ import {
68
70
  type SharedTreeBranchChange,
69
71
  type Transactor,
70
72
  } from "../shared-tree-core/index.js";
71
- import { Breakable, disposeSymbol, getOrCreate, type WithBreakable } from "../util/index.js";
73
+ import {
74
+ Breakable,
75
+ disposeSymbol,
76
+ getOrCreate,
77
+ type JsonCompatibleReadOnly,
78
+ type WithBreakable,
79
+ } from "../util/index.js";
72
80
 
73
81
  import { SharedTreeChangeFamily, hasSchemaChange } from "./sharedTreeChangeFamily.js";
74
82
  import type { SharedTreeChange } from "./sharedTreeChangeTypes.js";
@@ -89,6 +97,7 @@ import {
89
97
  type CustomTreeNode,
90
98
  } from "../simple-tree/index.js";
91
99
  import { getCheckout, SchematizingSimpleTreeView } from "./schematizingTreeView.js";
100
+ import { isStableId } from "@fluidframework/id-compressor/internal";
92
101
 
93
102
  /**
94
103
  * Events for {@link ITreeCheckout}.
@@ -122,7 +131,7 @@ export interface CheckoutEvents {
122
131
  * @param getRevertible - a function provided that allows users to get a revertible for the change. If not provided,
123
132
  * this change is not revertible.
124
133
  */
125
- changed(data: CommitMetadata, getRevertible?: RevertibleAlphaFactory): void;
134
+ changed(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
126
135
 
127
136
  /**
128
137
  * Fired when a new branch is created from this checkout.
@@ -406,7 +415,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
406
415
  private readonly mintRevisionTag: () => RevisionTag,
407
416
  private readonly revisionTagCodec: RevisionTagCodec,
408
417
  private readonly idCompressor: IIdCompressor,
409
- public removedRoots: DetachedFieldIndex = makeDetachedFieldIndex(
418
+ private readonly _removedRoots: DetachedFieldIndex = makeDetachedFieldIndex(
410
419
  "repair",
411
420
  revisionTagCodec,
412
421
  idCompressor,
@@ -421,6 +430,10 @@ export class TreeCheckout implements ITreeCheckoutFork {
421
430
  this.registerForBranchEvents();
422
431
  }
423
432
 
433
+ public get removedRoots(): ReadOnlyDetachedFieldIndex {
434
+ return this._removedRoots;
435
+ }
436
+
424
437
  private registerForBranchEvents(): void {
425
438
  this.#transaction.branch.events.on("afterChange", this.onAfterBranchChange);
426
439
  this.#transaction.activeBranchEvents.on("afterChange", this.onAfterChange);
@@ -441,7 +454,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
441
454
  (commits) => {
442
455
  const revision = this.mintRevisionTag();
443
456
  for (const transactionStep of commits) {
444
- this.removedRoots.updateMajor(transactionStep.revision, revision);
457
+ this._removedRoots.updateMajor(transactionStep.revision, revision);
445
458
  }
446
459
 
447
460
  const squashedChange = this.changeFamily.rebaser.compose(commits);
@@ -452,12 +465,12 @@ export class TreeCheckout implements ITreeCheckoutFork {
452
465
  const disposeForks = this.disposeForksAfterTransaction
453
466
  ? trackForksForDisposal(this)
454
467
  : undefined;
455
- // When each transaction is started, take a snapshot of the current state of removed roots
456
- const removedRootsSnapshot = this.removedRoots.clone();
468
+ // When each transaction is started, make a restorable checkpoint of the current state of removed roots
469
+ const restoreRemovedRoots = this._removedRoots.createCheckpoint();
457
470
  return (result) => {
458
471
  switch (result) {
459
472
  case TransactionResult.Abort:
460
- this.removedRoots = removedRootsSnapshot;
473
+ restoreRemovedRoots();
461
474
  break;
462
475
  case TransactionResult.Commit:
463
476
  if (!this.transaction.isInProgress()) {
@@ -532,7 +545,34 @@ export class TreeCheckout implements ITreeCheckoutFork {
532
545
  };
533
546
 
534
547
  let withinEventContext = true;
535
- 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);
536
576
  withinEventContext = false;
537
577
  }
538
578
  } else if (this.isRemoteChangeEvent(event)) {
@@ -559,6 +599,28 @@ export class TreeCheckout implements ITreeCheckoutFork {
559
599
  }
560
600
  };
561
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
+
562
624
  // Revision is the revision of the commit, if any, which caused this change.
563
625
  private applyChange(change: SharedTreeChange, revision?: RevisionTag): void {
564
626
  // Conflicts due to schema will be empty and thus are not applied.
@@ -566,7 +628,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
566
628
  if (innerChange.type === "data") {
567
629
  const delta = intoDelta(tagChange(innerChange.innerChange, revision));
568
630
  this.withCombinedVisitor((visitor) => {
569
- visitDelta(delta, visitor, this.removedRoots, revision);
631
+ visitDelta(delta, visitor, this._removedRoots, revision);
570
632
  });
571
633
  } else if (innerChange.type === "schema") {
572
634
  // Schema changes from a current to a new schema are expected to be backwards compatible.
@@ -597,14 +659,14 @@ export class TreeCheckout implements ITreeCheckoutFork {
597
659
  this.withCombinedVisitor((visitor) => {
598
660
  revisions.forEach((revision) => {
599
661
  // get all the roots last created or used by the revision
600
- const roots = this.removedRoots.getRootsLastTouchedByRevision(revision);
662
+ const roots = this._removedRoots.getRootsLastTouchedByRevision(revision);
601
663
 
602
664
  // get the detached field for the root and delete it from the removed roots
603
665
  for (const root of roots) {
604
- visitor.destroy(this.removedRoots.toFieldKey(root), 1);
666
+ visitor.destroy(this._removedRoots.toFieldKey(root), 1);
605
667
  }
606
668
 
607
- this.removedRoots.deleteRootsLastTouchedByRevision(revision);
669
+ this._removedRoots.deleteRootsLastTouchedByRevision(revision);
608
670
  });
609
671
  });
610
672
  };
@@ -774,7 +836,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
774
836
  this.mintRevisionTag,
775
837
  this.revisionTagCodec,
776
838
  this.idCompressor,
777
- this.removedRoots.clone(),
839
+ this._removedRoots.clone(),
778
840
  this.logger,
779
841
  this.breaker,
780
842
  this.disposeForksAfterTransaction,
@@ -894,8 +956,8 @@ export class TreeCheckout implements ITreeCheckoutFork {
894
956
  this.assertNoUntrackedRoots();
895
957
  const trees: [string | number | undefined, number, JsonableTree][] = [];
896
958
  const cursor = this.forest.allocateCursor("getRemovedRoots");
897
- for (const { id, root } of this.removedRoots.entries()) {
898
- const parentField = this.removedRoots.toFieldKey(root);
959
+ for (const { id, root } of this._removedRoots.entries()) {
960
+ const parentField = this._removedRoots.toFieldKey(root);
899
961
  this.forest.moveCursorToPath({ parent: undefined, parentField, parentIndex: 0 }, cursor);
900
962
  const tree = jsonableTreeFromCursor(cursor);
901
963
  // This method is used for tree consistency comparison.
@@ -915,7 +977,7 @@ export class TreeCheckout implements ITreeCheckoutFork {
915
977
  public load(): void {
916
978
  // Set the tip revision as the latest relevant revision for any removed roots that are loaded from a summary - this allows them to be garbage collected later.
917
979
  // When a load happens, the head of the trunk and the head of the local/main branch must be the same (this is enforced by SharedTree).
918
- this.removedRoots.setRevisionsForLoadedData(this.#transaction.branch.getHead().revision);
980
+ this._removedRoots.setRevisionsForLoadedData(this.#transaction.branch.getHead().revision);
919
981
  // The content of the checkout (e.g. the forest) has (maybe) changed, so fire an afterBatch event.
920
982
  this.#events.emit("afterBatch");
921
983
  }
@@ -987,8 +1049,8 @@ export class TreeCheckout implements ITreeCheckoutFork {
987
1049
  private assertNoUntrackedRoots(): void {
988
1050
  const cursor = this.forest.getCursorAboveDetachedFields();
989
1051
  const rootFields = new Set([rootFieldKey]);
990
- for (const { root } of this.removedRoots.entries()) {
991
- rootFields.add(this.removedRoots.toFieldKey(root));
1052
+ for (const { root } of this._removedRoots.entries()) {
1053
+ rootFields.add(this._removedRoots.toFieldKey(root));
992
1054
  }
993
1055
 
994
1056
  if (!cursor.firstField()) {
@@ -1205,3 +1267,24 @@ function verboseFromCursor(
1205
1267
  fields: fields as CustomTreeNode<IFluidHandle>,
1206
1268
  };
1207
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
+ }
@@ -29,11 +29,11 @@ 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";
36
- import { makeV5CodecWithVersion } from "./editManagerCodecsV5.js";
36
+ import { makeSharedBranchesCodecWithVersion } from "./editManagerCodecsVSharedBranches.js";
37
37
  import type { MinimumVersionForCollab } from "@fluidframework/runtime-definitions/internal";
38
38
  import {
39
39
  EditManagerFormatVersion,
@@ -70,7 +70,7 @@ export function clientVersionToEditManagerFormatVersion(
70
70
  export function editManagerFormatVersionSelectorForSharedBranches(
71
71
  clientVersion: MinimumVersionForCollab,
72
72
  ): EditManagerFormatVersion {
73
- return brand(EditManagerFormatVersion.v5);
73
+ return brand(EditManagerFormatVersion.vSharedBranches);
74
74
  }
75
75
 
76
76
  export interface EditManagerCodecOptions {
@@ -134,22 +134,24 @@ export function makeEditManagerCodecs<TChangeset>(
134
134
  >,
135
135
  ][] = Array.from(editManagerFormatVersions, (version) => {
136
136
  switch (version) {
137
- case EditManagerFormatVersion.v1:
138
- case EditManagerFormatVersion.v2:
137
+ case unbrand(EditManagerFormatVersion.v1):
138
+ case unbrand(EditManagerFormatVersion.v2):
139
139
  return [version, makeDiscontinuedCodecVersion(options, version, "2.73.0")];
140
- case EditManagerFormatVersion.v3:
141
- case EditManagerFormatVersion.v4: {
140
+ case unbrand(EditManagerFormatVersion.v3):
141
+ case unbrand(EditManagerFormatVersion.v4): {
142
142
  const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
143
143
  return [
144
144
  version,
145
145
  makeV1CodecWithVersion(changeCodec, revisionTagCodec, options, version),
146
146
  ];
147
147
  }
148
- case EditManagerFormatVersion.v5: {
148
+ case unbrand(EditManagerFormatVersion.v5):
149
+ return [version, makeDiscontinuedCodecVersion(options, version, "2.74.0")];
150
+ case unbrand(EditManagerFormatVersion.vSharedBranches): {
149
151
  const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
150
152
  return [
151
153
  version,
152
- makeV5CodecWithVersion(changeCodec, revisionTagCodec, options, version),
154
+ makeSharedBranchesCodecWithVersion(changeCodec, revisionTagCodec, options, version),
153
155
  ];
154
156
  }
155
157
  default:
@@ -25,7 +25,7 @@ import {
25
25
  } from "../util/index.js";
26
26
 
27
27
  import type { SharedBranchSummaryData, SummaryData } from "./editManager.js";
28
- import { EncodedEditManager } from "./editManagerFormatV5.js";
28
+ import { EncodedEditManager } from "./editManagerFormatVSharedBranches.js";
29
29
  import { decodeSharedBranch, encodeSharedBranch } from "./editManagerCodecsCommons.js";
30
30
  import type { EncodedSharedBranch } from "./editManagerFormatCommons.js";
31
31
  import type { BranchId } from "./branch.js";
@@ -35,7 +35,7 @@ export interface EditManagerEncodingContext {
35
35
  readonly schema?: SchemaAndPolicy;
36
36
  }
37
37
 
38
- export function makeV5CodecWithVersion<TChangeset>(
38
+ export function makeSharedBranchesCodecWithVersion<TChangeset>(
39
39
  changeCodec: IMultiFormatCodec<
40
40
  TChangeset,
41
41
  JsonCompatibleReadOnly,
@@ -78,7 +78,7 @@ export function makeV5CodecWithVersion<TChangeset>(
78
78
  );
79
79
  assert(
80
80
  data.originator !== undefined,
81
- 0xc65 /* Cannot encode V5 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.
@@ -136,34 +136,40 @@ export const EditManagerFormatVersion = {
136
136
  v2: 2,
137
137
  /**
138
138
  * Introduced prior to 2.0 and used beyond.
139
- * Reading capability is currently maintained for backwards compatibility, but it could be removed in the future.
140
- * Writing capability needs to be maintained.
139
+ * Reading capability must be maintained for backwards compatibility.
140
+ * Writing capability needs to be maintained so long as {@link lowestMinVersionForCollab} is less than 2.2.0.
141
141
  */
142
142
  v3: 3,
143
143
  /**
144
- * Was inadvertently released in 2.43.0 (through usages of configuredSharedTree) and remains available.
144
+ * Introduced in 2.2.0.
145
+ * Was inadvertently made usable for writing in 2.43.0 (through configuredSharedTree) and remains available.
145
146
  * Reading capability must be maintained for backwards compatibility.
146
- * Writing capability needs to be maintained.
147
- * @privateRemarks TODO: stop writing this version.
147
+ * Writing capability could be dropped in favor of {@link EditManagerFormatVersion.v3},
148
+ * but doing so would make the pattern of writable versions more complex and gain little
149
+ * because most of the logic for this format is shared with {@link EditManagerFormatVersion.v3}.
148
150
  */
149
151
  v4: 4,
152
+ /**
153
+ * This version number was used internally for testing shared branches.
154
+ * This format was never made stable.
155
+ * This version number is kept here solely to avoid reusing the number: it is not supported for either reading or writing.
156
+ * @deprecated Use {@link EditManagerFormatVersion.vSharedBranches} for testing shared branches.
157
+ */
158
+ v5: 5,
150
159
  /**
151
160
  * Not yet released.
152
161
  * Only used for testing shared branches.
153
162
  */
154
- v5: 5,
155
- } as const;
156
- export type EditManagerFormatVersion = Brand<
157
- (typeof EditManagerFormatVersion)[keyof typeof EditManagerFormatVersion],
158
- "EditManagerFormatVersion"
159
- >;
163
+ vSharedBranches: "shared-branches|v0.1",
164
+ });
165
+ export type EditManagerFormatVersion = Values<typeof EditManagerFormatVersion>;
160
166
  export const supportedEditManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> =
161
167
  new Set([
162
168
  EditManagerFormatVersion.v3,
163
169
  EditManagerFormatVersion.v4,
164
- EditManagerFormatVersion.v5,
165
- ] as EditManagerFormatVersion[]);
170
+ EditManagerFormatVersion.vSharedBranches,
171
+ ]);
166
172
  export const editManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> = new Set(
167
- Object.values(EditManagerFormatVersion) as EditManagerFormatVersion[],
173
+ Object.values(EditManagerFormatVersion),
168
174
  );
169
175
  /* eslint-enable @typescript-eslint/explicit-function-return-type */
@@ -15,7 +15,7 @@ const noAdditionalProps: ObjectOptions = { additionalProperties: false };
15
15
  /* eslint-disable @typescript-eslint/explicit-function-return-type */
16
16
 
17
17
  export interface EncodedEditManager<TChangeset> {
18
- readonly version: typeof EditManagerFormatVersion.v5;
18
+ readonly version: typeof EditManagerFormatVersion.vSharedBranches;
19
19
  readonly originator: SessionId;
20
20
  readonly main: EncodedSharedBranch<TChangeset>;
21
21
  readonly branches?: readonly EncodedSharedBranch<TChangeset>[];
@@ -24,7 +24,7 @@ export interface EncodedEditManager<TChangeset> {
24
24
  export const EncodedEditManager = <ChangeSchema extends TSchema>(tChange: ChangeSchema) =>
25
25
  Type.Object(
26
26
  {
27
- version: Type.Union([Type.Literal(EditManagerFormatVersion.v5)]),
27
+ version: Type.Literal(EditManagerFormatVersion.vSharedBranches),
28
28
  originator: SessionIdSchema,
29
29
  main: EncodedSharedBranch(tChange),
30
30
  branches: Type.Optional(Type.Array(EncodedSharedBranch(tChange))),
@@ -9,10 +9,10 @@ import type { IChannelStorageService } from "@fluidframework/datastore-definitio
9
9
  import type { IIdCompressor } from "@fluidframework/id-compressor";
10
10
  import type {
11
11
  IExperimentalIncrementalSummaryContext,
12
- ISummaryTreeWithStats,
13
12
  ITelemetryContext,
13
+ MinimumVersionForCollab,
14
14
  } from "@fluidframework/runtime-definitions/internal";
15
- import { createSingleBlobSummary } from "@fluidframework/shared-object-base/internal";
15
+ import type { SummaryTreeBuilder } from "@fluidframework/runtime-utils/internal";
16
16
 
17
17
  import type { IJsonCodec } from "../codec/index.js";
18
18
  import type { ChangeFamily, ChangeFamilyEditor, SchemaAndPolicy } from "../core/index.js";
@@ -24,16 +24,52 @@ import type {
24
24
  Summarizable,
25
25
  SummaryElementParser,
26
26
  SummaryElementStringifier,
27
- } from "./sharedTreeCore.js";
27
+ } from "./summaryTypes.js";
28
+ import { VersionedSummarizer } from "./versionedSummarizer.js";
28
29
 
29
- const stringKey = "String";
30
+ export const stringKey = "String";
30
31
 
31
32
  /**
32
- * Provides methods for summarizing and loading an `EditManager`
33
+ * The versions for the edit manager summary format.
33
34
  */
34
- export class EditManagerSummarizer<TChangeset> implements Summarizable {
35
- public readonly key = "EditManager";
35
+ export const enum EditManagerSummaryFormatVersion {
36
+ /**
37
+ * This version represents summary format before summary versioning was introduced.
38
+ */
39
+ v1 = 1,
40
+ /**
41
+ * This version adds metadata to the summary. This is backward compatible with version 1.
42
+ */
43
+ v2 = 2,
44
+ /**
45
+ * The latest version of the summary. Must be updated when a new version is added.
46
+ */
47
+ vLatest = v2,
48
+ }
49
+
50
+ const supportedVersions = new Set<EditManagerSummaryFormatVersion>([
51
+ EditManagerSummaryFormatVersion.v1,
52
+ EditManagerSummaryFormatVersion.v2,
53
+ ]);
54
+
55
+ /**
56
+ * Returns the summary version to use as per the given minimum version for collab.
57
+ */
58
+ function minVersionToEditManagerSummaryFormatVersion(
59
+ version: MinimumVersionForCollab,
60
+ ): EditManagerSummaryFormatVersion {
61
+ // Currently, version 2 is written which adds metadata blob to the summary.
62
+ return EditManagerSummaryFormatVersion.v2;
63
+ }
36
64
 
65
+ /**
66
+ * Provides methods for summarizing and loading an `EditManager`
67
+ */
68
+ export class EditManagerSummarizer<TChangeset>
69
+ extends VersionedSummarizer<EditManagerSummaryFormatVersion>
70
+ implements Summarizable
71
+ {
72
+ public static readonly key = "EditManager";
37
73
  public constructor(
38
74
  private readonly editManager: EditManager<
39
75
  ChangeFamilyEditor,
@@ -47,30 +83,36 @@ export class EditManagerSummarizer<TChangeset> implements Summarizable {
47
83
  EditManagerEncodingContext
48
84
  >,
49
85
  private readonly idCompressor: IIdCompressor,
86
+ minVersionForCollab: MinimumVersionForCollab,
50
87
  private readonly schemaAndPolicy?: SchemaAndPolicy,
51
- ) {}
88
+ ) {
89
+ super(
90
+ EditManagerSummarizer.key,
91
+ minVersionToEditManagerSummaryFormatVersion(minVersionForCollab),
92
+ supportedVersions,
93
+ true /* supportPreVersioningFormat */,
94
+ );
95
+ }
52
96
 
53
- public summarize(props: {
97
+ protected summarizeInternal(props: {
54
98
  stringify: SummaryElementStringifier;
55
99
  fullTree?: boolean;
56
100
  trackState?: boolean;
57
101
  telemetryContext?: ITelemetryContext;
58
102
  incrementalSummaryContext?: IExperimentalIncrementalSummaryContext;
59
- }): ISummaryTreeWithStats {
60
- return this.summarizeCore(props.stringify);
61
- }
62
-
63
- private summarizeCore(stringify: SummaryElementStringifier): ISummaryTreeWithStats {
103
+ builder: SummaryTreeBuilder;
104
+ }): void {
105
+ const { stringify, builder } = props;
64
106
  const context: EditManagerEncodingContext =
65
107
  this.schemaAndPolicy !== undefined
66
108
  ? { schema: this.schemaAndPolicy, idCompressor: this.idCompressor }
67
109
  : { idCompressor: this.idCompressor };
68
110
  const jsonCompatible = this.codec.encode(this.editManager.getSummaryData(), context);
69
111
  const dataString = stringify(jsonCompatible);
70
- return createSingleBlobSummary(stringKey, dataString);
112
+ builder.addBlob(stringKey, dataString);
71
113
  }
72
114
 
73
- public async load(
115
+ protected async loadInternal(
74
116
  services: IChannelStorageService,
75
117
  parse: SummaryElementParser,
76
118
  ): Promise<void> {
@@ -23,12 +23,18 @@ export {
23
23
 
24
24
  export {
25
25
  SharedTreeCore,
26
- type Summarizable,
27
- type SummaryElementParser,
28
- type SummaryElementStringifier,
29
26
  type ClonableSchemaAndPolicy,
30
27
  type SharedTreeCoreOptionsInternal,
31
28
  } from "./sharedTreeCore.js";
29
+ export {
30
+ SharedTreeSummaryFormatVersion,
31
+ type SharedTreeSummarizableMetadata,
32
+ type Summarizable,
33
+ type SummaryElementParser,
34
+ type SummaryElementStringifier,
35
+ summarizablesMetadataKey,
36
+ } from "./summaryTypes.js";
37
+ export { VersionedSummarizer } from "./versionedSummarizer.js";
32
38
 
33
39
  export type { ResubmitMachine } from "./resubmitMachine.js";
34
40
  export { DefaultResubmitMachine } from "./defaultResubmitMachine.js";
@@ -65,10 +71,13 @@ export type {
65
71
  EncodedCommit,
66
72
  } from "./editManagerFormatCommons.js";
67
73
 
74
+ export type { DecodedMessage } from "./messageTypes.js";
68
75
  export {
69
76
  getCodecTreeForMessageFormatWithChange,
70
77
  clientVersionToMessageFormatVersion,
71
78
  messageFormatVersionSelectorForSharedBranches,
79
+ makeMessageCodec,
80
+ type MessageEncodingContext,
72
81
  } from "./messageCodecs.js";
73
82
  export {
74
83
  MessageFormatVersion,
@@ -14,14 +14,14 @@ import type {
14
14
  } from "../core/index.js";
15
15
  import type { JsonCompatibleReadOnly } from "../util/index.js";
16
16
 
17
- import { Message } from "./messageFormatV5.js";
17
+ import { Message } from "./messageFormatVSharedBranches.js";
18
18
  import type { DecodedMessage } from "./messageTypes.js";
19
19
  import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
20
20
  import type { MessageEncodingContext } from "./messageCodecs.js";
21
21
  import { decodeBranchId, encodeBranchId } from "./branchIdCodec.js";
22
22
  import type { MessageFormatVersion } from "./messageFormat.js";
23
23
 
24
- export function makeV5CodecWithVersion<TChangeset>(
24
+ export function makeSharedBranchesCodecWithVersion<TChangeset>(
25
25
  changeCodec: ChangeFamilyCodec<TChangeset>,
26
26
  revisionTagCodec: IJsonCodec<
27
27
  RevisionTag,
@@ -30,7 +30,7 @@ export function makeV5CodecWithVersion<TChangeset>(
30
30
  ChangeEncodingContext
31
31
  >,
32
32
  options: ICodecOptions,
33
- version: typeof MessageFormatVersion.v5,
33
+ version: typeof MessageFormatVersion.vSharedBranches,
34
34
  ): IJsonCodec<
35
35
  DecodedMessage<TChangeset>,
36
36
  JsonCompatibleReadOnly,
@@ -29,12 +29,12 @@ 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";
36
36
  import { makeV1ToV4CodecWithVersion } from "./messageCodecV1ToV4.js";
37
- import { makeV5CodecWithVersion } from "./messageCodecV5.js";
37
+ import { makeSharedBranchesCodecWithVersion } from "./messageCodecVSharedBranches.js";
38
38
  import { MessageFormatVersion, messageFormatVersions } from "./messageFormat.js";
39
39
 
40
40
  export interface MessageEncodingContext {
@@ -79,7 +79,7 @@ function messageFormatVersionFromOptions(
79
79
  export function messageFormatVersionSelectorForSharedBranches(
80
80
  clientVersion: MinimumVersionForCollab,
81
81
  ): MessageFormatVersion {
82
- return brand(MessageFormatVersion.v5);
82
+ return brand(MessageFormatVersion.vSharedBranches);
83
83
  }
84
84
 
85
85
  export function makeMessageCodec<TChangeset>(
@@ -132,18 +132,18 @@ export function makeMessageCodecs<TChangeset>(
132
132
  >,
133
133
  ][] = Array.from(messageFormatVersions).map((version) => {
134
134
  switch (version) {
135
- case MessageFormatVersion.undefined:
136
- case MessageFormatVersion.v1:
137
- case MessageFormatVersion.v2: {
135
+ case unbrand(MessageFormatVersion.undefined):
136
+ case unbrand(MessageFormatVersion.v1):
137
+ case unbrand(MessageFormatVersion.v2): {
138
138
  const versionOrUndefined =
139
- version === MessageFormatVersion.undefined ? undefined : version;
139
+ version === unbrand(MessageFormatVersion.undefined) ? undefined : version;
140
140
  return [
141
141
  versionOrUndefined,
142
142
  makeDiscontinuedCodecVersion(options, versionOrUndefined, "2.73.0"),
143
143
  ];
144
144
  }
145
- case MessageFormatVersion.v3:
146
- case MessageFormatVersion.v4: {
145
+ case unbrand(MessageFormatVersion.v3):
146
+ case unbrand(MessageFormatVersion.v4): {
147
147
  const changeCodec = changeCodecs.resolve(
148
148
  dependentChangeFormatVersion.lookup(version),
149
149
  ).json;
@@ -152,13 +152,15 @@ export function makeMessageCodecs<TChangeset>(
152
152
  makeV1ToV4CodecWithVersion(changeCodec, revisionTagCodec, options, version),
153
153
  ];
154
154
  }
155
- case MessageFormatVersion.v5: {
155
+ case unbrand(MessageFormatVersion.v5):
156
+ return [version, makeDiscontinuedCodecVersion(options, version, "2.74.0")];
157
+ case unbrand(MessageFormatVersion.vSharedBranches): {
156
158
  const changeCodec = changeCodecs.resolve(
157
159
  dependentChangeFormatVersion.lookup(version),
158
160
  ).json;
159
161
  return [
160
162
  version,
161
- makeV5CodecWithVersion(changeCodec, revisionTagCodec, options, version),
163
+ makeSharedBranchesCodecWithVersion(changeCodec, revisionTagCodec, options, version),
162
164
  ];
163
165
  }
164
166
  default: