@fluidframework/tree 2.72.0 → 2.74.0-365691

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 (696) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/api-report/tree.alpha.api.md +32 -31
  3. package/dist/alpha.d.ts +7 -1
  4. package/dist/api.d.ts +6 -2
  5. package/dist/api.d.ts.map +1 -1
  6. package/dist/api.js +2 -11
  7. package/dist/api.js.map +1 -1
  8. package/dist/codec/codec.d.ts +9 -2
  9. package/dist/codec/codec.d.ts.map +1 -1
  10. package/dist/codec/codec.js +9 -2
  11. package/dist/codec/codec.js.map +1 -1
  12. package/dist/codec/index.d.ts +1 -1
  13. package/dist/codec/index.d.ts.map +1 -1
  14. package/dist/codec/index.js +2 -1
  15. package/dist/codec/index.js.map +1 -1
  16. package/dist/codec/versioned/codec.d.ts +7 -2
  17. package/dist/codec/versioned/codec.d.ts.map +1 -1
  18. package/dist/codec/versioned/codec.js +24 -1
  19. package/dist/codec/versioned/codec.js.map +1 -1
  20. package/dist/codec/versioned/index.d.ts +1 -1
  21. package/dist/codec/versioned/index.d.ts.map +1 -1
  22. package/dist/codec/versioned/index.js +2 -1
  23. package/dist/codec/versioned/index.js.map +1 -1
  24. package/dist/core/schema-stored/schema.d.ts +12 -1
  25. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  26. package/dist/core/schema-stored/schema.js.map +1 -1
  27. package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
  28. package/dist/core/tree/detachedFieldIndexCodecs.js +5 -3
  29. package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
  30. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +4 -5
  31. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  32. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  33. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  34. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +1 -0
  35. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  36. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +2 -1
  37. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  38. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  39. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +3 -3
  40. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  41. package/dist/feature-libraries/chunked-forest/codec/codecs.js +32 -18
  42. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  43. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +6 -6
  44. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  45. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +4 -2
  46. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  47. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +156 -4
  48. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  49. package/dist/feature-libraries/chunked-forest/codec/format.js +7 -3
  50. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  51. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +8 -3
  52. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
  53. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js +4 -1
  54. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
  55. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +2 -2
  56. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
  57. package/dist/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
  58. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  59. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  60. package/dist/feature-libraries/chunked-forest/codec/index.js +2 -1
  61. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  62. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +13 -13
  63. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  64. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +23 -6
  65. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  66. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +9 -8
  67. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  68. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +20 -4
  69. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  70. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  71. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  72. package/dist/feature-libraries/chunked-forest/index.js +2 -1
  73. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  74. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +35 -17
  75. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  76. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +53 -55
  77. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  78. package/dist/feature-libraries/default-schema/index.d.ts +1 -3
  79. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  80. package/dist/feature-libraries/default-schema/index.js +2 -8
  81. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  82. package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -1
  83. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  84. package/dist/feature-libraries/forest-summary/format.d.ts +2 -2
  85. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  86. package/dist/feature-libraries/forest-summary/format.js +4 -2
  87. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  88. package/dist/feature-libraries/index.d.ts +5 -4
  89. package/dist/feature-libraries/index.d.ts.map +1 -1
  90. package/dist/feature-libraries/index.js +8 -8
  91. package/dist/feature-libraries/index.js.map +1 -1
  92. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  93. package/dist/feature-libraries/modular-schema/comparison.js +1 -2
  94. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  95. package/dist/feature-libraries/modular-schema/fieldKind.d.ts +38 -12
  96. package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  97. package/dist/feature-libraries/modular-schema/fieldKind.js +29 -11
  98. package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  99. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
  100. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
  101. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
  102. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -2
  103. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  104. package/dist/feature-libraries/modular-schema/genericFieldKind.js +3 -2
  105. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  106. package/dist/feature-libraries/modular-schema/index.d.ts +0 -1
  107. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  108. package/dist/feature-libraries/modular-schema/index.js +1 -3
  109. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  110. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +5 -6
  111. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  112. package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  113. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  114. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  115. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  116. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +8 -8
  117. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  118. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +1 -2
  119. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  120. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +66 -9
  121. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  122. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  123. package/dist/feature-libraries/object-forest/objectForest.js +3 -2
  124. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  125. package/dist/feature-libraries/optional-field/index.d.ts +1 -1
  126. package/dist/feature-libraries/optional-field/index.d.ts.map +1 -1
  127. package/dist/feature-libraries/optional-field/index.js.map +1 -1
  128. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  129. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
  130. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  131. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  132. package/dist/feature-libraries/schema-index/codec.js +5 -3
  133. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  134. package/dist/feature-libraries/{default-schema/schemaChecker.d.ts → schemaChecker.d.ts} +2 -2
  135. package/dist/feature-libraries/schemaChecker.d.ts.map +1 -0
  136. package/dist/feature-libraries/{default-schema/schemaChecker.js → schemaChecker.js} +3 -3
  137. package/dist/feature-libraries/schemaChecker.js.map +1 -0
  138. package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  139. package/dist/feature-libraries/sequence-field/formatV2.js +1 -0
  140. package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
  141. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  142. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +0 -2
  143. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  144. package/dist/feature-libraries/treeCompressionUtils.d.ts +2 -12
  145. package/dist/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
  146. package/dist/feature-libraries/treeCompressionUtils.js +4 -14
  147. package/dist/feature-libraries/treeCompressionUtils.js.map +1 -1
  148. package/dist/index.d.ts +4 -4
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +8 -3
  151. package/dist/index.js.map +1 -1
  152. package/dist/packageVersion.d.ts +1 -1
  153. package/dist/packageVersion.d.ts.map +1 -1
  154. package/dist/packageVersion.js +1 -1
  155. package/dist/packageVersion.js.map +1 -1
  156. package/dist/shared-tree/index.d.ts +1 -1
  157. package/dist/shared-tree/index.d.ts.map +1 -1
  158. package/dist/shared-tree/index.js +1 -2
  159. package/dist/shared-tree/index.js.map +1 -1
  160. package/dist/shared-tree/sharedTree.d.ts +7 -54
  161. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  162. package/dist/shared-tree/sharedTree.js +2 -52
  163. package/dist/shared-tree/sharedTree.js.map +1 -1
  164. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
  165. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  166. package/dist/shared-tree/sharedTreeChangeCodecs.js +0 -2
  167. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  168. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  169. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  170. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  171. package/dist/shared-tree/treeCheckout.d.ts +2 -2
  172. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  173. package/dist/shared-tree/treeCheckout.js.map +1 -1
  174. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  175. package/dist/shared-tree-core/editManagerCodecs.js +12 -6
  176. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  177. package/dist/shared-tree-core/editManagerFormatCommons.d.ts +3 -4
  178. package/dist/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  179. package/dist/shared-tree-core/editManagerFormatCommons.js +5 -8
  180. package/dist/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  181. package/dist/shared-tree-core/index.d.ts +3 -3
  182. package/dist/shared-tree-core/index.d.ts.map +1 -1
  183. package/dist/shared-tree-core/index.js +3 -2
  184. package/dist/shared-tree-core/index.js.map +1 -1
  185. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  186. package/dist/shared-tree-core/messageCodecs.js +20 -9
  187. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  188. package/dist/shared-tree-core/messageFormat.d.ts +4 -6
  189. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  190. package/dist/shared-tree-core/messageFormat.js +9 -7
  191. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  192. package/dist/simple-tree/api/configuration.d.ts +2 -0
  193. package/dist/simple-tree/api/configuration.d.ts.map +1 -1
  194. package/dist/simple-tree/api/configuration.js +10 -0
  195. package/dist/simple-tree/api/configuration.js.map +1 -1
  196. package/dist/simple-tree/api/incrementalAllowedTypes.d.ts +15 -12
  197. package/dist/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
  198. package/dist/simple-tree/api/incrementalAllowedTypes.js +17 -14
  199. package/dist/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
  200. package/dist/simple-tree/api/index.d.ts +2 -1
  201. package/dist/simple-tree/api/index.d.ts.map +1 -1
  202. package/dist/simple-tree/api/index.js +6 -2
  203. package/dist/simple-tree/api/index.js.map +1 -1
  204. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  205. package/dist/simple-tree/api/schemaFromSimple.js +7 -1
  206. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
  207. package/dist/simple-tree/api/simpleSchemaCodec.js +4 -6
  208. package/dist/simple-tree/api/simpleSchemaCodec.js.map +1 -1
  209. package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts +103 -0
  210. package/dist/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -0
  211. package/dist/simple-tree/api/snapshotCompatibilityChecker.js +128 -0
  212. package/dist/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -0
  213. package/dist/simple-tree/api/tree.d.ts +2 -2
  214. package/dist/simple-tree/api/tree.js +1 -1
  215. package/dist/simple-tree/api/tree.js.map +1 -1
  216. package/dist/simple-tree/core/allowedTypes.js +1 -1
  217. package/dist/simple-tree/core/allowedTypes.js.map +1 -1
  218. package/dist/simple-tree/core/index.d.ts +3 -3
  219. package/dist/simple-tree/core/index.d.ts.map +1 -1
  220. package/dist/simple-tree/core/index.js +3 -1
  221. package/dist/simple-tree/core/index.js.map +1 -1
  222. package/dist/simple-tree/core/toStored.d.ts +12 -5
  223. package/dist/simple-tree/core/toStored.d.ts.map +1 -1
  224. package/dist/simple-tree/core/toStored.js +26 -10
  225. package/dist/simple-tree/core/toStored.js.map +1 -1
  226. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  227. package/dist/simple-tree/core/treeNodeKernel.js +1 -0
  228. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  229. package/dist/simple-tree/core/treeNodeSchema.d.ts +1 -6
  230. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  231. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  232. package/dist/simple-tree/core/treeNodeValid.d.ts +1 -1
  233. package/dist/simple-tree/core/treeNodeValid.d.ts.map +1 -1
  234. package/dist/simple-tree/core/treeNodeValid.js +1 -2
  235. package/dist/simple-tree/core/treeNodeValid.js.map +1 -1
  236. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  237. package/dist/simple-tree/fieldSchema.js +1 -8
  238. package/dist/simple-tree/fieldSchema.js.map +1 -1
  239. package/dist/simple-tree/index.d.ts +3 -3
  240. package/dist/simple-tree/index.d.ts.map +1 -1
  241. package/dist/simple-tree/index.js +10 -4
  242. package/dist/simple-tree/index.js.map +1 -1
  243. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  244. package/dist/simple-tree/leafNodeSchema.js +0 -1
  245. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  246. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  247. package/dist/simple-tree/node-kinds/array/arrayNode.js +14 -49
  248. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  249. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  250. package/dist/simple-tree/node-kinds/map/mapNode.js +1 -5
  251. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  252. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  253. package/dist/simple-tree/node-kinds/object/objectNode.js +3 -10
  254. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  255. package/dist/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  256. package/dist/simple-tree/node-kinds/record/recordNode.js +1 -5
  257. package/dist/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  258. package/dist/simple-tree/simpleSchema.d.ts +15 -3
  259. package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
  260. package/dist/simple-tree/simpleSchema.js.map +1 -1
  261. package/dist/simple-tree/toStoredSchema.d.ts +20 -8
  262. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  263. package/dist/simple-tree/toStoredSchema.js +27 -22
  264. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  265. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  266. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js +18 -15
  267. package/dist/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  268. package/dist/tableSchema.d.ts +22 -52
  269. package/dist/tableSchema.d.ts.map +1 -1
  270. package/dist/tableSchema.js +141 -277
  271. package/dist/tableSchema.js.map +1 -1
  272. package/dist/treeFactory.d.ts +5 -0
  273. package/dist/treeFactory.d.ts.map +1 -1
  274. package/dist/treeFactory.js +12 -5
  275. package/dist/treeFactory.js.map +1 -1
  276. package/dist/util/arrayUtilities.d.ts +45 -0
  277. package/dist/util/arrayUtilities.d.ts.map +1 -0
  278. package/dist/util/arrayUtilities.js +76 -0
  279. package/dist/util/arrayUtilities.js.map +1 -0
  280. package/dist/util/breakable.js +3 -3
  281. package/dist/util/breakable.js.map +1 -1
  282. package/dist/util/index.d.ts +1 -0
  283. package/dist/util/index.d.ts.map +1 -1
  284. package/dist/util/index.js +7 -2
  285. package/dist/util/index.js.map +1 -1
  286. package/dist/util/typeCheckTests.d.ts.map +1 -1
  287. package/dist/util/typeCheckTests.js.map +1 -1
  288. package/lib/alpha.d.ts +7 -1
  289. package/lib/api.d.ts +6 -2
  290. package/lib/api.d.ts.map +1 -1
  291. package/lib/api.js +2 -13
  292. package/lib/api.js.map +1 -1
  293. package/lib/codec/codec.d.ts +9 -2
  294. package/lib/codec/codec.d.ts.map +1 -1
  295. package/lib/codec/codec.js +9 -2
  296. package/lib/codec/codec.js.map +1 -1
  297. package/lib/codec/index.d.ts +1 -1
  298. package/lib/codec/index.d.ts.map +1 -1
  299. package/lib/codec/index.js +1 -1
  300. package/lib/codec/index.js.map +1 -1
  301. package/lib/codec/versioned/codec.d.ts +7 -2
  302. package/lib/codec/versioned/codec.d.ts.map +1 -1
  303. package/lib/codec/versioned/codec.js +22 -0
  304. package/lib/codec/versioned/codec.js.map +1 -1
  305. package/lib/codec/versioned/index.d.ts +1 -1
  306. package/lib/codec/versioned/index.d.ts.map +1 -1
  307. package/lib/codec/versioned/index.js +1 -1
  308. package/lib/codec/versioned/index.js.map +1 -1
  309. package/lib/core/schema-stored/schema.d.ts +12 -1
  310. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  311. package/lib/core/schema-stored/schema.js.map +1 -1
  312. package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
  313. package/lib/core/tree/detachedFieldIndexCodecs.js +5 -3
  314. package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
  315. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +4 -5
  316. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  317. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  318. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  319. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +2 -1
  320. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  321. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +2 -1
  322. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  323. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  324. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +3 -3
  325. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  326. package/lib/feature-libraries/chunked-forest/codec/codecs.js +36 -22
  327. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  328. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +6 -6
  329. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  330. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +4 -2
  331. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  332. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +156 -4
  333. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  334. package/lib/feature-libraries/chunked-forest/codec/format.js +6 -2
  335. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  336. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +8 -3
  337. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
  338. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js +4 -1
  339. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
  340. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts +2 -2
  341. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.d.ts.map +1 -1
  342. package/lib/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.js.map +1 -1
  343. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +1 -1
  344. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  345. package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
  346. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  347. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +13 -13
  348. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  349. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +22 -6
  350. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  351. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +9 -8
  352. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  353. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +17 -2
  354. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  355. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  356. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  357. package/lib/feature-libraries/chunked-forest/index.js +1 -1
  358. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  359. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +35 -17
  360. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  361. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +55 -57
  362. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  363. package/lib/feature-libraries/default-schema/index.d.ts +1 -3
  364. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  365. package/lib/feature-libraries/default-schema/index.js +1 -3
  366. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  367. package/lib/feature-libraries/forest-summary/forestSummarizer.js +2 -2
  368. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  369. package/lib/feature-libraries/forest-summary/format.d.ts +2 -2
  370. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  371. package/lib/feature-libraries/forest-summary/format.js +4 -2
  372. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  373. package/lib/feature-libraries/index.d.ts +5 -4
  374. package/lib/feature-libraries/index.d.ts.map +1 -1
  375. package/lib/feature-libraries/index.js +5 -4
  376. package/lib/feature-libraries/index.js.map +1 -1
  377. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  378. package/lib/feature-libraries/modular-schema/comparison.js +1 -2
  379. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  380. package/lib/feature-libraries/modular-schema/fieldKind.d.ts +38 -12
  381. package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  382. package/lib/feature-libraries/modular-schema/fieldKind.js +29 -11
  383. package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  384. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
  385. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
  386. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
  387. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -2
  388. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  389. package/lib/feature-libraries/modular-schema/genericFieldKind.js +3 -2
  390. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  391. package/lib/feature-libraries/modular-schema/index.d.ts +0 -1
  392. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  393. package/lib/feature-libraries/modular-schema/index.js +0 -1
  394. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  395. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +5 -6
  396. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  397. package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  398. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +2 -2
  399. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  400. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +1 -1
  401. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  402. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +8 -8
  403. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  404. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +1 -2
  405. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  406. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +66 -9
  407. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  408. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  409. package/lib/feature-libraries/object-forest/objectForest.js +2 -1
  410. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  411. package/lib/feature-libraries/optional-field/index.d.ts +1 -1
  412. package/lib/feature-libraries/optional-field/index.d.ts.map +1 -1
  413. package/lib/feature-libraries/optional-field/index.js.map +1 -1
  414. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  415. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +1 -5
  416. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  417. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  418. package/lib/feature-libraries/schema-index/codec.js +5 -3
  419. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  420. package/lib/feature-libraries/{default-schema/schemaChecker.d.ts → schemaChecker.d.ts} +2 -2
  421. package/lib/feature-libraries/schemaChecker.d.ts.map +1 -0
  422. package/lib/feature-libraries/{default-schema/schemaChecker.js → schemaChecker.js} +3 -3
  423. package/lib/feature-libraries/schemaChecker.js.map +1 -0
  424. package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  425. package/lib/feature-libraries/sequence-field/formatV2.js +1 -0
  426. package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
  427. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  428. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +0 -2
  429. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  430. package/lib/feature-libraries/treeCompressionUtils.d.ts +2 -12
  431. package/lib/feature-libraries/treeCompressionUtils.d.ts.map +1 -1
  432. package/lib/feature-libraries/treeCompressionUtils.js +3 -13
  433. package/lib/feature-libraries/treeCompressionUtils.js.map +1 -1
  434. package/lib/index.d.ts +4 -4
  435. package/lib/index.d.ts.map +1 -1
  436. package/lib/index.js +3 -3
  437. package/lib/index.js.map +1 -1
  438. package/lib/packageVersion.d.ts +1 -1
  439. package/lib/packageVersion.d.ts.map +1 -1
  440. package/lib/packageVersion.js +1 -1
  441. package/lib/packageVersion.js.map +1 -1
  442. package/lib/shared-tree/index.d.ts +1 -1
  443. package/lib/shared-tree/index.d.ts.map +1 -1
  444. package/lib/shared-tree/index.js +1 -1
  445. package/lib/shared-tree/index.js.map +1 -1
  446. package/lib/shared-tree/sharedTree.d.ts +7 -54
  447. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  448. package/lib/shared-tree/sharedTree.js +1 -51
  449. package/lib/shared-tree/sharedTree.js.map +1 -1
  450. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +1 -1
  451. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  452. package/lib/shared-tree/sharedTreeChangeCodecs.js +0 -2
  453. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  454. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  455. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  456. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  457. package/lib/shared-tree/treeCheckout.d.ts +2 -2
  458. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  459. package/lib/shared-tree/treeCheckout.js.map +1 -1
  460. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  461. package/lib/shared-tree-core/editManagerCodecs.js +13 -7
  462. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  463. package/lib/shared-tree-core/editManagerFormatCommons.d.ts +3 -4
  464. package/lib/shared-tree-core/editManagerFormatCommons.d.ts.map +1 -1
  465. package/lib/shared-tree-core/editManagerFormatCommons.js +4 -7
  466. package/lib/shared-tree-core/editManagerFormatCommons.js.map +1 -1
  467. package/lib/shared-tree-core/index.d.ts +3 -3
  468. package/lib/shared-tree-core/index.d.ts.map +1 -1
  469. package/lib/shared-tree-core/index.js +2 -2
  470. package/lib/shared-tree-core/index.js.map +1 -1
  471. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  472. package/lib/shared-tree-core/messageCodecs.js +21 -10
  473. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  474. package/lib/shared-tree-core/messageFormat.d.ts +4 -6
  475. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  476. package/lib/shared-tree-core/messageFormat.js +8 -6
  477. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  478. package/lib/simple-tree/api/configuration.d.ts +2 -0
  479. package/lib/simple-tree/api/configuration.d.ts.map +1 -1
  480. package/lib/simple-tree/api/configuration.js +10 -0
  481. package/lib/simple-tree/api/configuration.js.map +1 -1
  482. package/lib/simple-tree/api/incrementalAllowedTypes.d.ts +15 -12
  483. package/lib/simple-tree/api/incrementalAllowedTypes.d.ts.map +1 -1
  484. package/lib/simple-tree/api/incrementalAllowedTypes.js +15 -12
  485. package/lib/simple-tree/api/incrementalAllowedTypes.js.map +1 -1
  486. package/lib/simple-tree/api/index.d.ts +2 -1
  487. package/lib/simple-tree/api/index.d.ts.map +1 -1
  488. package/lib/simple-tree/api/index.js +2 -1
  489. package/lib/simple-tree/api/index.js.map +1 -1
  490. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  491. package/lib/simple-tree/api/schemaFromSimple.js +8 -2
  492. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
  493. package/lib/simple-tree/api/simpleSchemaCodec.js +5 -7
  494. package/lib/simple-tree/api/simpleSchemaCodec.js.map +1 -1
  495. package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts +103 -0
  496. package/lib/simple-tree/api/snapshotCompatibilityChecker.d.ts.map +1 -0
  497. package/lib/simple-tree/api/snapshotCompatibilityChecker.js +122 -0
  498. package/lib/simple-tree/api/snapshotCompatibilityChecker.js.map +1 -0
  499. package/lib/simple-tree/api/tree.d.ts +2 -2
  500. package/lib/simple-tree/api/tree.js +1 -1
  501. package/lib/simple-tree/api/tree.js.map +1 -1
  502. package/lib/simple-tree/core/allowedTypes.js +1 -1
  503. package/lib/simple-tree/core/allowedTypes.js.map +1 -1
  504. package/lib/simple-tree/core/index.d.ts +3 -3
  505. package/lib/simple-tree/core/index.d.ts.map +1 -1
  506. package/lib/simple-tree/core/index.js +2 -2
  507. package/lib/simple-tree/core/index.js.map +1 -1
  508. package/lib/simple-tree/core/toStored.d.ts +12 -5
  509. package/lib/simple-tree/core/toStored.d.ts.map +1 -1
  510. package/lib/simple-tree/core/toStored.js +25 -9
  511. package/lib/simple-tree/core/toStored.js.map +1 -1
  512. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  513. package/lib/simple-tree/core/treeNodeKernel.js +1 -0
  514. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  515. package/lib/simple-tree/core/treeNodeSchema.d.ts +1 -6
  516. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  517. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  518. package/lib/simple-tree/core/treeNodeValid.d.ts +1 -1
  519. package/lib/simple-tree/core/treeNodeValid.d.ts.map +1 -1
  520. package/lib/simple-tree/core/treeNodeValid.js +1 -2
  521. package/lib/simple-tree/core/treeNodeValid.js.map +1 -1
  522. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  523. package/lib/simple-tree/fieldSchema.js +2 -9
  524. package/lib/simple-tree/fieldSchema.js.map +1 -1
  525. package/lib/simple-tree/index.d.ts +3 -3
  526. package/lib/simple-tree/index.d.ts.map +1 -1
  527. package/lib/simple-tree/index.js +3 -3
  528. package/lib/simple-tree/index.js.map +1 -1
  529. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  530. package/lib/simple-tree/leafNodeSchema.js +1 -2
  531. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  532. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  533. package/lib/simple-tree/node-kinds/array/arrayNode.js +16 -51
  534. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  535. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  536. package/lib/simple-tree/node-kinds/map/mapNode.js +3 -7
  537. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  538. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -1
  539. package/lib/simple-tree/node-kinds/object/objectNode.js +4 -11
  540. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -1
  541. package/lib/simple-tree/node-kinds/record/recordNode.d.ts.map +1 -1
  542. package/lib/simple-tree/node-kinds/record/recordNode.js +3 -7
  543. package/lib/simple-tree/node-kinds/record/recordNode.js.map +1 -1
  544. package/lib/simple-tree/simpleSchema.d.ts +15 -3
  545. package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
  546. package/lib/simple-tree/simpleSchema.js.map +1 -1
  547. package/lib/simple-tree/toStoredSchema.d.ts +20 -8
  548. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  549. package/lib/simple-tree/toStoredSchema.js +28 -24
  550. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  551. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.d.ts.map +1 -1
  552. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js +20 -17
  553. package/lib/simple-tree/unhydratedFlexTreeFromInsertable.js.map +1 -1
  554. package/lib/tableSchema.d.ts +22 -52
  555. package/lib/tableSchema.d.ts.map +1 -1
  556. package/lib/tableSchema.js +143 -279
  557. package/lib/tableSchema.js.map +1 -1
  558. package/lib/treeFactory.d.ts +5 -0
  559. package/lib/treeFactory.d.ts.map +1 -1
  560. package/lib/treeFactory.js +10 -4
  561. package/lib/treeFactory.js.map +1 -1
  562. package/lib/util/arrayUtilities.d.ts +45 -0
  563. package/lib/util/arrayUtilities.d.ts.map +1 -0
  564. package/lib/util/arrayUtilities.js +69 -0
  565. package/lib/util/arrayUtilities.js.map +1 -0
  566. package/lib/util/breakable.js +3 -3
  567. package/lib/util/breakable.js.map +1 -1
  568. package/lib/util/index.d.ts +1 -0
  569. package/lib/util/index.d.ts.map +1 -1
  570. package/lib/util/index.js +1 -0
  571. package/lib/util/index.js.map +1 -1
  572. package/lib/util/typeCheckTests.d.ts.map +1 -1
  573. package/lib/util/typeCheckTests.js.map +1 -1
  574. package/package.json +22 -22
  575. package/src/api.ts +22 -11
  576. package/src/codec/codec.ts +10 -2
  577. package/src/codec/index.ts +1 -0
  578. package/src/codec/versioned/codec.ts +40 -2
  579. package/src/codec/versioned/index.ts +1 -0
  580. package/src/core/schema-stored/schema.ts +12 -1
  581. package/src/core/tree/detachedFieldIndexCodecs.ts +10 -3
  582. package/src/feature-libraries/README.md +1 -1
  583. package/src/feature-libraries/chunked-forest/chunkTree.ts +3 -3
  584. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +5 -0
  585. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +2 -1
  586. package/src/feature-libraries/chunked-forest/codec/codecs.ts +55 -26
  587. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +8 -3
  588. package/src/feature-libraries/chunked-forest/codec/format.ts +14 -4
  589. package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +7 -2
  590. package/src/feature-libraries/chunked-forest/codec/incrementalEncodingPolicy.ts +5 -6
  591. package/src/feature-libraries/chunked-forest/codec/index.ts +1 -4
  592. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +62 -9
  593. package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +24 -2
  594. package/src/feature-libraries/chunked-forest/index.ts +1 -1
  595. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +86 -74
  596. package/src/feature-libraries/default-schema/index.ts +1 -9
  597. package/src/feature-libraries/forest-summary/forestSummarizer.ts +2 -2
  598. package/src/feature-libraries/forest-summary/format.ts +15 -9
  599. package/src/feature-libraries/index.ts +8 -10
  600. package/src/feature-libraries/modular-schema/comparison.ts +2 -3
  601. package/src/feature-libraries/modular-schema/fieldKind.ts +90 -13
  602. package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +2 -3
  603. package/src/feature-libraries/modular-schema/genericFieldKind.ts +6 -6
  604. package/src/feature-libraries/modular-schema/index.ts +0 -1
  605. package/src/feature-libraries/modular-schema/isNeverTree.ts +7 -8
  606. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +3 -6
  607. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +13 -13
  608. package/src/feature-libraries/object-forest/objectForest.ts +2 -6
  609. package/src/feature-libraries/optional-field/index.ts +1 -0
  610. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +1 -5
  611. package/src/feature-libraries/schema-index/codec.ts +10 -3
  612. package/src/feature-libraries/{default-schema/schemaChecker.ts → schemaChecker.ts} +4 -4
  613. package/src/feature-libraries/sequence-field/formatV2.ts +1 -0
  614. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +0 -2
  615. package/src/feature-libraries/treeCompressionUtils.ts +1 -15
  616. package/src/index.ts +7 -1
  617. package/src/packageVersion.ts +1 -1
  618. package/src/shared-tree/index.ts +0 -1
  619. package/src/shared-tree/sharedTree.ts +12 -88
  620. package/src/shared-tree/sharedTreeChangeCodecs.ts +1 -6
  621. package/src/shared-tree/sharedTreeChangeFamily.ts +2 -2
  622. package/src/shared-tree/treeCheckout.ts +2 -2
  623. package/src/shared-tree-core/editManagerCodecs.ts +19 -7
  624. package/src/shared-tree-core/editManagerFormatCommons.ts +11 -12
  625. package/src/shared-tree-core/index.ts +7 -3
  626. package/src/shared-tree-core/messageCodecs.ts +32 -17
  627. package/src/shared-tree-core/messageFormat.ts +8 -6
  628. package/src/simple-tree/api/configuration.ts +17 -4
  629. package/src/simple-tree/api/incrementalAllowedTypes.ts +20 -18
  630. package/src/simple-tree/api/index.ts +6 -1
  631. package/src/simple-tree/api/schemaFromSimple.ts +14 -6
  632. package/src/simple-tree/api/simpleSchemaCodec.ts +10 -9
  633. package/src/simple-tree/api/snapshotCompatibilityChecker.ts +135 -0
  634. package/src/simple-tree/api/tree.ts +2 -2
  635. package/src/simple-tree/core/allowedTypes.ts +1 -1
  636. package/src/simple-tree/core/index.ts +3 -1
  637. package/src/simple-tree/core/toStored.ts +42 -18
  638. package/src/simple-tree/core/treeNodeKernel.ts +1 -0
  639. package/src/simple-tree/core/treeNodeSchema.ts +1 -7
  640. package/src/simple-tree/core/treeNodeValid.ts +0 -2
  641. package/src/simple-tree/fieldSchema.ts +2 -11
  642. package/src/simple-tree/index.ts +7 -2
  643. package/src/simple-tree/leafNodeSchema.ts +1 -2
  644. package/src/simple-tree/node-kinds/array/arrayNode.ts +28 -75
  645. package/src/simple-tree/node-kinds/map/mapNode.ts +1 -15
  646. package/src/simple-tree/node-kinds/object/objectNode.ts +4 -18
  647. package/src/simple-tree/node-kinds/record/recordNode.ts +1 -15
  648. package/src/simple-tree/simpleSchema.ts +16 -3
  649. package/src/simple-tree/toStoredSchema.ts +54 -38
  650. package/src/simple-tree/unhydratedFlexTreeFromInsertable.ts +22 -17
  651. package/src/tableSchema.ts +110 -334
  652. package/src/treeFactory.ts +13 -4
  653. package/src/util/arrayUtilities.ts +88 -0
  654. package/src/util/breakable.ts +4 -4
  655. package/src/util/index.ts +6 -0
  656. package/src/util/typeCheckTests.ts +0 -1
  657. package/dist/feature-libraries/default-schema/defaultSchema.d.ts +0 -10
  658. package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +0 -1
  659. package/dist/feature-libraries/default-schema/defaultSchema.js +0 -15
  660. package/dist/feature-libraries/default-schema/defaultSchema.js.map +0 -1
  661. package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +0 -1
  662. package/dist/feature-libraries/default-schema/schemaChecker.js.map +0 -1
  663. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +0 -50
  664. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +0 -1
  665. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -76
  666. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +0 -1
  667. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +0 -12
  668. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +0 -1
  669. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js +0 -158
  670. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +0 -1
  671. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +0 -11
  672. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +0 -1
  673. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js +0 -245
  674. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +0 -1
  675. package/lib/feature-libraries/default-schema/defaultSchema.d.ts +0 -10
  676. package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +0 -1
  677. package/lib/feature-libraries/default-schema/defaultSchema.js +0 -12
  678. package/lib/feature-libraries/default-schema/defaultSchema.js.map +0 -1
  679. package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +0 -1
  680. package/lib/feature-libraries/default-schema/schemaChecker.js.map +0 -1
  681. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +0 -50
  682. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +0 -1
  683. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -71
  684. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +0 -1
  685. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +0 -12
  686. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +0 -1
  687. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js +0 -154
  688. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +0 -1
  689. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +0 -11
  690. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +0 -1
  691. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js +0 -241
  692. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +0 -1
  693. package/src/feature-libraries/default-schema/defaultSchema.ts +0 -15
  694. package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +0 -108
  695. package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +0 -208
  696. package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +0 -344
@@ -40,10 +40,7 @@ import {
40
40
  chunkFieldSingle,
41
41
  defaultChunkPolicy,
42
42
  } from "../chunked-forest/index.js";
43
- import {
44
- TreeCompressionStrategy,
45
- type TreeCompressionStrategyPrivate,
46
- } from "../treeCompressionUtils.js";
43
+ import { TreeCompressionStrategy } from "../treeCompressionUtils.js";
47
44
 
48
45
  import type { FieldChangeEncodingContext, FieldChangeHandler } from "./fieldChangeHandler.js";
49
46
  import type {
@@ -81,7 +78,7 @@ export function makeModularChangeCodecFamily(
81
78
  >,
82
79
  fieldsCodec: FieldBatchCodec,
83
80
  codecOptions: ICodecOptions,
84
- chunkCompressionStrategy: TreeCompressionStrategyPrivate = TreeCompressionStrategy.Compressed,
81
+ chunkCompressionStrategy: TreeCompressionStrategy = TreeCompressionStrategy.Compressed,
85
82
  ): ICodecFamily<ModularChangeset, ChangeEncodingContext> {
86
83
  return makeCodecFamily(
87
84
  Array.from(fieldKindConfigurations.entries(), ([version, fieldKinds]) => [
@@ -121,7 +118,7 @@ function makeModularChangeCodec(
121
118
  >,
122
119
  fieldsCodec: FieldBatchCodec,
123
120
  codecOptions: ICodecOptions,
124
- chunkCompressionStrategy: TreeCompressionStrategyPrivate = TreeCompressionStrategy.Compressed,
121
+ chunkCompressionStrategy: TreeCompressionStrategy = TreeCompressionStrategy.Compressed,
125
122
  ): ModularChangeCodec {
126
123
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
127
124
  const getMapEntry = ({ kind, formatVersion }: FieldKindConfigurationEntry) => {
@@ -70,7 +70,6 @@ import {
70
70
  NodeAttachState,
71
71
  type RebaseRevisionMetadata,
72
72
  } from "./fieldChangeHandler.js";
73
- import { type FieldKindWithEditor, withEditor } from "./fieldKindWithEditor.js";
74
73
  import { convertGenericChange, genericFieldKind } from "./genericFieldKind.js";
75
74
  import type { GenericChangeset } from "./genericFieldKindTypes.js";
76
75
  import {
@@ -87,6 +86,7 @@ import {
87
86
  type NodeChangeset,
88
87
  type NodeId,
89
88
  } from "./modularChangeTypes.js";
89
+ import type { FlexFieldKind } from "./fieldKind.js";
90
90
 
91
91
  /**
92
92
  * Implementation of ChangeFamily which delegates work in a given field to the appropriate FieldKind
@@ -99,10 +99,10 @@ export class ModularChangeFamily
99
99
  {
100
100
  public static readonly emptyChange: ModularChangeset = makeModularChangeset();
101
101
 
102
- public readonly fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>;
102
+ public readonly fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>;
103
103
 
104
104
  public constructor(
105
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
105
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
106
106
  public readonly codecs: ICodecFamily<ModularChangeset, ChangeEncodingContext>,
107
107
  ) {
108
108
  this.fieldKinds = fieldKinds;
@@ -1908,7 +1908,7 @@ function invertBuilds(
1908
1908
  */
1909
1909
  export function* relevantRemovedRoots(
1910
1910
  change: ModularChangeset,
1911
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
1911
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
1912
1912
  ): Iterable<DeltaDetachedNodeId> {
1913
1913
  yield* relevantRemovedRootsFromFields(change.fieldChanges, change.nodeChanges, fieldKinds);
1914
1914
  }
@@ -1916,7 +1916,7 @@ export function* relevantRemovedRoots(
1916
1916
  function* relevantRemovedRootsFromFields(
1917
1917
  change: FieldChangeMap,
1918
1918
  nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
1919
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
1919
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
1920
1920
  ): Iterable<DeltaDetachedNodeId> {
1921
1921
  for (const [_, fieldChange] of change) {
1922
1922
  const handler = getChangeHandler(fieldKinds, fieldChange.fieldKind);
@@ -2022,7 +2022,7 @@ export function updateRefreshers(
2022
2022
  */
2023
2023
  export function intoDelta(
2024
2024
  taggedChange: TaggedChange<ModularChangeset>,
2025
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
2025
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
2026
2026
  ): DeltaRoot {
2027
2027
  const change = taggedChange.change;
2028
2028
  const rootDelta: Mutable<DeltaRoot> = {};
@@ -2091,7 +2091,7 @@ function copyDetachedNodes(
2091
2091
  function intoDeltaImpl(
2092
2092
  change: FieldChangeMap,
2093
2093
  nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
2094
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
2094
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
2095
2095
  global: DeltaDetachedNodeChanges[],
2096
2096
  rename: DeltaDetachedNodeRename[],
2097
2097
  ): Map<FieldKey, DeltaFieldChanges> {
@@ -2121,7 +2121,7 @@ function intoDeltaImpl(
2121
2121
  function deltaFromNodeChange(
2122
2122
  change: NodeChangeset,
2123
2123
  nodeChanges: ChangeAtomIdBTree<NodeChangeset>,
2124
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
2124
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
2125
2125
  global: DeltaDetachedNodeChanges[],
2126
2126
  rename: DeltaDetachedNodeRename[],
2127
2127
  ): DeltaFieldMap {
@@ -2173,19 +2173,19 @@ function isEmptyNodeChangeset(change: NodeChangeset): boolean {
2173
2173
  }
2174
2174
 
2175
2175
  export function getFieldKind(
2176
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
2176
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
2177
2177
  kind: FieldKindIdentifier,
2178
- ): FieldKindWithEditor {
2178
+ ): FlexFieldKind {
2179
2179
  if (kind === genericFieldKind.identifier) {
2180
2180
  return genericFieldKind;
2181
2181
  }
2182
2182
  const fieldKind = fieldKinds.get(kind);
2183
2183
  assert(fieldKind !== undefined, 0x3ad /* Unknown field kind */);
2184
- return withEditor(fieldKind);
2184
+ return fieldKind;
2185
2185
  }
2186
2186
 
2187
2187
  export function getChangeHandler(
2188
- fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
2188
+ fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
2189
2189
  kind: FieldKindIdentifier,
2190
2190
  ): FieldChangeHandler<unknown> {
2191
2191
  return getFieldKind(fieldKinds, kind).changeHandler;
@@ -2668,7 +2668,7 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
2668
2668
 
2669
2669
  public constructor(
2670
2670
  family: ChangeFamily<ChangeFamilyEditor, ModularChangeset>,
2671
- private readonly fieldKinds: ReadonlyMap<FieldKindIdentifier, FieldKindWithEditor>,
2671
+ private readonly fieldKinds: ReadonlyMap<FieldKindIdentifier, FlexFieldKind>,
2672
2672
  changeReceiver: (change: TaggedChange<ModularChangeset>) => void,
2673
2673
  ) {
2674
2674
  super(family, changeReceiver);
@@ -52,12 +52,8 @@ import {
52
52
  import { chunkField, defaultChunkPolicy } from "../chunked-forest/index.js";
53
53
  import { cursorForMapTreeNode, mapTreeFromCursor } from "../mapTreeCursor.js";
54
54
  import { type CursorWithNode, SynchronousCursor } from "../treeCursorUtils.js";
55
- import {
56
- defaultSchemaPolicy,
57
- FieldKinds,
58
- isFieldInSchema,
59
- throwOutOfSchema,
60
- } from "../default-schema/index.js";
55
+ import { defaultSchemaPolicy, FieldKinds } from "../default-schema/index.js";
56
+ import { isFieldInSchema, throwOutOfSchema } from "../schemaChecker.js";
61
57
 
62
58
  /** A `MapTree` with mutable fields */
63
59
  interface MutableMapTree extends MapTree {
@@ -12,4 +12,5 @@ export {
12
12
  optionalFieldEditor,
13
13
  optionalChangeRebaser,
14
14
  optionalFieldIntoDelta,
15
+ type OptionalFieldEditor,
15
16
  } from "./optionalField.js";
@@ -12,7 +12,6 @@ import type {
12
12
  import type { FieldChangeEncodingContext } from "../modular-schema/index.js";
13
13
 
14
14
  import type { OptionalChangeset } from "./optionalFieldChangeTypes.js";
15
- import { makeOptionalFieldCodec as makeV1Codec } from "./optionalFieldCodecV1.js";
16
15
  import { makeOptionalFieldCodec as makeV2Codec } from "./optionalFieldCodecV2.js";
17
16
 
18
17
  export const makeOptionalFieldCodecFamily = (
@@ -23,7 +22,4 @@ export const makeOptionalFieldCodecFamily = (
23
22
  ChangeEncodingContext
24
23
  >,
25
24
  ): ICodecFamily<OptionalChangeset, FieldChangeEncodingContext> =>
26
- makeCodecFamily([
27
- [1, makeV1Codec(revisionTagCodec)],
28
- [2, makeV2Codec(revisionTagCodec)],
29
- ]);
25
+ makeCodecFamily([[2, makeV2Codec(revisionTagCodec)]]);
@@ -4,6 +4,10 @@
4
4
  */
5
5
 
6
6
  import { fail, unreachableCase } from "@fluidframework/core-utils/internal";
7
+ import {
8
+ getConfigForMinVersionForCollab,
9
+ lowestMinVersionForCollab,
10
+ } from "@fluidframework/runtime-utils/internal";
7
11
 
8
12
  import {
9
13
  type CodecTree,
@@ -40,9 +44,12 @@ import type { MinimumVersionForCollab } from "@fluidframework/runtime-definition
40
44
  export function clientVersionToSchemaVersion(
41
45
  clientVersion: MinimumVersionForCollab,
42
46
  ): SchemaFormatVersion {
43
- return clientVersion < FluidClientVersion.v2_43
44
- ? brand(SchemaFormatVersion.v1)
45
- : brand(SchemaFormatVersion.v2);
47
+ return brand(
48
+ getConfigForMinVersionForCollab(clientVersion, {
49
+ [lowestMinVersionForCollab]: SchemaFormatVersion.v1,
50
+ [FluidClientVersion.v2_43]: SchemaFormatVersion.v2,
51
+ }),
52
+ );
46
53
  }
47
54
 
48
55
  export function getCodecTreeForSchemaFormat(
@@ -13,10 +13,10 @@ import {
13
13
  MapNodeStoredSchema,
14
14
  Multiplicity,
15
15
  type SchemaAndPolicy,
16
- } from "../../core/index.js";
17
- import { allowsValue } from "../valueUtilities.js";
18
- import type { MapTreeFieldViewGeneric, MinimalMapTreeNodeView } from "../mapTreeCursor.js";
19
- import { iterableHasSome, mapIterable } from "../../util/index.js";
16
+ } from "../core/index.js";
17
+ import { allowsValue } from "./valueUtilities.js";
18
+ import type { MapTreeFieldViewGeneric, MinimalMapTreeNodeView } from "./mapTreeCursor.js";
19
+ import { iterableHasSome, mapIterable } from "../util/index.js";
20
20
 
21
21
  export enum SchemaValidationError {
22
22
  Field_KindNotInSchemaPolicy,
@@ -16,6 +16,7 @@ const CellCount = Type.Number({ multipleOf: 1, minimum: 1 });
16
16
  const MoveId = ChangesetLocalIdSchema;
17
17
  const HasMoveId = Type.Object({ id: MoveId });
18
18
 
19
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
20
  const IdRange = Type.Tuple([ChangesetLocalIdSchema, CellCount]);
20
21
 
21
22
  export const CellId = EncodedChangeAtomId;
@@ -11,7 +11,6 @@ import type {
11
11
  } from "../../core/index.js";
12
12
  import type { FieldChangeEncodingContext } from "../modular-schema/index.js";
13
13
 
14
- import { makeV1Codec } from "./sequenceFieldCodecV1.js";
15
14
  import { makeV2Codec } from "./sequenceFieldCodecV2.js";
16
15
  import { makeV3Codec } from "./sequenceFieldCodecV3.js";
17
16
  import type { Changeset, MarkList } from "./types.js";
@@ -25,7 +24,6 @@ export const sequenceFieldChangeCodecFactory = (
25
24
  >,
26
25
  ): ICodecFamily<MarkList, FieldChangeEncodingContext> =>
27
26
  makeCodecFamily<Changeset, FieldChangeEncodingContext>([
28
- [1, makeV1Codec(revisionTagCodec)],
29
27
  [2, makeV2Codec(revisionTagCodec)],
30
28
  [3, makeV3Codec(revisionTagCodec)],
31
29
  ]);
@@ -20,23 +20,9 @@ export enum TreeCompressionStrategy {
20
20
  * Use this when debugging or testing and needing to inspect encoded tree content.
21
21
  */
22
22
  Uncompressed = 1,
23
- }
24
-
25
- /**
26
- * A private extension of {@link TreeCompressionStrategy} for strategies that are not intended for public use just yet.
27
- */
28
- export enum TreeCompressionStrategyExtended {
29
23
  /**
30
- * Optimized for encoded size, same as TreeCompressionStrategy.Compressed. It also enables incremental encoding
24
+ * Optimized for encoded size, same as TreeCompressionStrategy.Compressed but it enables incremental encoding
31
25
  * of the data.
32
- * @remarks
33
- * TODO: AB#41865
34
- * This needs to be stabilized to allow opting into it.
35
- * It could possibly be made the default instead of {@link TreeCompressionStrategy.Compressed}.
36
26
  */
37
27
  CompressedIncremental = 2,
38
28
  }
39
-
40
- export type TreeCompressionStrategyPrivate =
41
- | TreeCompressionStrategy
42
- | TreeCompressionStrategyExtended;
package/src/index.ts CHANGED
@@ -52,6 +52,7 @@ export {
52
52
  type TreeIndex,
53
53
  type TreeIndexKey,
54
54
  type TreeIndexNodes,
55
+ type IncrementalEncodingPolicy,
55
56
  } from "./feature-libraries/index.js";
56
57
 
57
58
  export {
@@ -60,7 +61,6 @@ export {
60
61
  type SharedTreeOptionsBeta,
61
62
  type ForestType,
62
63
  type SharedTreeFormatOptions,
63
- SharedTreeFormatVersion,
64
64
  Tree,
65
65
  type RunTransaction,
66
66
  type ForestOptions,
@@ -285,10 +285,16 @@ export {
285
285
  type SimpleAllowedTypeAttributes,
286
286
  encodeSimpleSchema,
287
287
  decodeSimpleSchema,
288
+ exportCompatibilitySchemaSnapshot,
289
+ importCompatibilitySchemaSnapshot,
290
+ checkCompatibility,
291
+ incrementalSummaryHint,
292
+ incrementalEncodingPolicyForAllowedTypes,
288
293
  } from "./simple-tree/index.js";
289
294
  export {
290
295
  SharedTree,
291
296
  configuredSharedTree,
297
+ configuredSharedTreeAlpha,
292
298
  configuredSharedTreeBeta,
293
299
  configuredSharedTreeBetaLegacy,
294
300
  } from "./treeFactory.js";
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/tree";
9
- export const pkgVersion = "2.72.0";
9
+ export const pkgVersion = "2.74.0-365691";
@@ -13,7 +13,6 @@ export {
13
13
  type ForestType,
14
14
  type SharedTreeContentSnapshot,
15
15
  type SharedTreeFormatOptions,
16
- SharedTreeFormatVersion,
17
16
  buildConfiguredForest,
18
17
  defaultSharedTreeOptions,
19
18
  type ForestOptions,
@@ -64,7 +64,6 @@ import {
64
64
  makeSchemaCodec,
65
65
  makeTreeChunker,
66
66
  type IncrementalEncodingPolicy,
67
- type TreeCompressionStrategyPrivate,
68
67
  } from "../feature-libraries/index.js";
69
68
  // eslint-disable-next-line import-x/no-internal-modules
70
69
  import type { FormatV1 } from "../feature-libraries/schema-index/index.js";
@@ -75,7 +74,7 @@ import {
75
74
  type ClonableSchemaAndPolicy,
76
75
  getCodecTreeForEditManagerFormatWithChange,
77
76
  getCodecTreeForMessageFormatWithChange,
78
- type SharedTreCoreOptionsInternal,
77
+ type SharedTreeCoreOptionsInternal,
79
78
  MessageFormatVersion,
80
79
  SharedTreeCore,
81
80
  EditManagerFormatVersion,
@@ -574,56 +573,6 @@ export function getBranch<T extends ImplicitFieldSchema | UnsafeUnknownSchema>(
574
573
  return kernel.checkout as unknown as BranchableTree;
575
574
  }
576
575
 
577
- /**
578
- * Format versions supported by SharedTree.
579
- *
580
- * Each version documents a required minimum version of the \@fluidframework/tree package.
581
- * @alpha
582
- */
583
- export const SharedTreeFormatVersion = {
584
- /**
585
- * Requires \@fluidframework/tree \>= 2.0.0.
586
- *
587
- * @deprecated FF does not currently plan on supporting this format long-term.
588
- * Do not write production documents using this format, as they may not be loadable in the future.
589
- */
590
- v1: 1,
591
-
592
- /**
593
- * Requires \@fluidframework/tree \>= 2.0.0.
594
- */
595
- v2: 2,
596
-
597
- /**
598
- * Requires \@fluidframework/tree \>= 2.0.0.
599
- */
600
- v3: 3,
601
-
602
- /**
603
- * Requires \@fluidframework/tree \>= 2.0.0.
604
- */
605
- v5: 5,
606
-
607
- /**
608
- * For testing purposes only.
609
- */
610
- vSharedBranches: 100,
611
- } as const;
612
-
613
- /**
614
- * Format versions supported by SharedTree.
615
- *
616
- * Each version documents a required minimum version of the \@fluidframework/tree package.
617
- * @alpha
618
- * @privateRemarks
619
- * See packages/dds/tree/docs/main/compatibility.md for information on how to add support for a new format.
620
- *
621
- * TODO: Before this gets promoted past Alpha,
622
- * a separate abstraction more suited for use in the public API should be adopted rather than reusing the same types used internally.
623
- * Such an abstraction should probably be in the form of a Fluid-Framework wide compatibility enum.
624
- */
625
- export type SharedTreeFormatVersion = typeof SharedTreeFormatVersion;
626
-
627
576
  /**
628
577
  * Defines for each EditManagerFormatVersion the SharedTreeChangeFormatVersion to use.
629
578
  * This is an arbitrary mapping that is injected in the EditManger codec.
@@ -631,14 +580,6 @@ export type SharedTreeFormatVersion = typeof SharedTreeFormatVersion;
631
580
  * This is because the format for SharedTree changes are not explicitly versioned.
632
581
  */
633
582
  export const changeFormatVersionForEditManager = DependentFormatVersion.fromPairs([
634
- [
635
- brand<EditManagerFormatVersion>(EditManagerFormatVersion.v1),
636
- brand<SharedTreeChangeFormatVersion>(1),
637
- ],
638
- [
639
- brand<EditManagerFormatVersion>(EditManagerFormatVersion.v2),
640
- brand<SharedTreeChangeFormatVersion>(2),
641
- ],
642
583
  [
643
584
  brand<EditManagerFormatVersion>(EditManagerFormatVersion.v3),
644
585
  brand<SharedTreeChangeFormatVersion>(3),
@@ -660,18 +601,6 @@ export const changeFormatVersionForEditManager = DependentFormatVersion.fromPair
660
601
  * This is because the format for SharedTree changes are not explicitly versioned.
661
602
  */
662
603
  export const changeFormatVersionForMessage = DependentFormatVersion.fromPairs([
663
- [
664
- brand<MessageFormatVersion>(MessageFormatVersion.undefined),
665
- brand<SharedTreeChangeFormatVersion>(1),
666
- ],
667
- [
668
- brand<MessageFormatVersion>(MessageFormatVersion.v1),
669
- brand<SharedTreeChangeFormatVersion>(1),
670
- ],
671
- [
672
- brand<MessageFormatVersion>(MessageFormatVersion.v2),
673
- brand<SharedTreeChangeFormatVersion>(2),
674
- ],
675
604
  [
676
605
  brand<MessageFormatVersion>(MessageFormatVersion.v3),
677
606
  brand<SharedTreeChangeFormatVersion>(3),
@@ -726,26 +655,19 @@ export function getCodecTreeForSharedTreeFormat(
726
655
  export type SharedTreeOptionsBeta = ForestOptions;
727
656
 
728
657
  /**
729
- * Configuration options for SharedTree.
658
+ * Configuration options for SharedTree with alpha features.
730
659
  * @alpha @input
731
660
  */
732
661
  export interface SharedTreeOptions
733
- extends Partial<CodecWriteOptions>,
734
- Partial<SharedTreeFormatOptions>,
735
- SharedTreeOptionsBeta {
662
+ extends SharedTreeOptionsBeta,
663
+ Partial<CodecWriteOptions>,
664
+ Partial<SharedTreeFormatOptions> {
736
665
  /**
737
666
  * Experimental feature flag to enable shared branches.
738
667
  * This feature is not yet complete and should not be used in production.
739
668
  * Defaults to false.
740
669
  */
741
670
  readonly enableSharedBranches?: boolean;
742
- }
743
-
744
- export interface SharedTreeOptionsInternal
745
- extends Partial<SharedTreCoreOptionsInternal>,
746
- Partial<ForestOptions>,
747
- Partial<SharedTreeFormatOptionsInternal> {
748
- disposeForksAfterTransaction?: boolean;
749
671
  /**
750
672
  * Returns whether a node / field should be incrementally encoded.
751
673
  * @remarks
@@ -754,6 +676,12 @@ export interface SharedTreeOptionsInternal
754
676
  shouldEncodeIncrementally?: IncrementalEncodingPolicy;
755
677
  }
756
678
 
679
+ export interface SharedTreeOptionsInternal
680
+ extends SharedTreeOptions,
681
+ Partial<SharedTreeCoreOptionsInternal> {
682
+ disposeForksAfterTransaction?: boolean;
683
+ }
684
+
757
685
  /**
758
686
  * Configuration options for SharedTree's internal tree storage.
759
687
  * @beta @input
@@ -777,11 +705,6 @@ export interface SharedTreeFormatOptions {
777
705
  treeEncodeType: TreeCompressionStrategy;
778
706
  }
779
707
 
780
- export interface SharedTreeFormatOptionsInternal
781
- extends Omit<SharedTreeFormatOptions, "treeEncodeType"> {
782
- treeEncodeType: TreeCompressionStrategyPrivate;
783
- }
784
-
785
708
  /**
786
709
  * Used to distinguish between different forest types.
787
710
  * @remarks
@@ -884,6 +807,7 @@ export const defaultSharedTreeOptions: Required<SharedTreeOptionsInternal> = {
884
807
  shouldEncodeIncrementally: defaultIncrementalEncodingPolicy,
885
808
  editManagerFormatSelector: clientVersionToEditManagerFormatVersion,
886
809
  messageFormatSelector: clientVersionToMessageFormatVersion,
810
+ enableSharedBranches: false,
887
811
  };
888
812
 
889
813
  /**
@@ -74,10 +74,7 @@ interface ChangeFormatDependencies {
74
74
  readonly schemaChange: SchemaFormatVersion;
75
75
  }
76
76
 
77
- export type SharedTreeChangeFormatVersion = Brand<
78
- 1 | 2 | 3 | 4,
79
- "SharedTreeChangeFormatVersion"
80
- >;
77
+ export type SharedTreeChangeFormatVersion = Brand<3 | 4, "SharedTreeChangeFormatVersion">;
81
78
 
82
79
  /**
83
80
  * Defines for each SharedTree change format the corresponding dependent formats to use.
@@ -89,8 +86,6 @@ export const dependenciesForChangeFormat: Map<
89
86
  SharedTreeChangeFormatVersion,
90
87
  ChangeFormatDependencies
91
88
  > = new Map([
92
- [brand(1), { modularChange: brand(1), schemaChange: brand(SchemaFormatVersion.v1) }],
93
- [brand(2), { modularChange: brand(2), schemaChange: brand(SchemaFormatVersion.v1) }],
94
89
  [brand(3), { modularChange: brand(3), schemaChange: brand(SchemaFormatVersion.v1) }],
95
90
  [brand(4), { modularChange: brand(4), schemaChange: brand(SchemaFormatVersion.v1) }],
96
91
  ]);
@@ -23,7 +23,7 @@ import {
23
23
  ModularChangeFamily,
24
24
  type ModularChangeset,
25
25
  type TreeChunk,
26
- type TreeCompressionStrategyPrivate,
26
+ type TreeCompressionStrategy,
27
27
  fieldKindConfigurations,
28
28
  fieldKinds,
29
29
  makeModularChangeCodecFamily,
@@ -61,7 +61,7 @@ export class SharedTreeChangeFamily
61
61
  revisionTagCodec: RevisionTagCodec,
62
62
  fieldBatchCodec: FieldBatchCodec,
63
63
  codecOptions: CodecWriteOptions,
64
- chunkCompressionStrategy?: TreeCompressionStrategyPrivate,
64
+ chunkCompressionStrategy?: TreeCompressionStrategy,
65
65
  private readonly idCompressor?: IIdCompressor,
66
66
  ) {
67
67
  const modularChangeCodec = makeModularChangeCodecFamily(
@@ -51,7 +51,7 @@ import {
51
51
  } from "../core/index.js";
52
52
  import {
53
53
  type FieldBatchCodec,
54
- type TreeCompressionStrategyPrivate,
54
+ type TreeCompressionStrategy,
55
55
  allowsRepoSuperset,
56
56
  buildForest,
57
57
  createNodeIdentifierManager,
@@ -287,7 +287,7 @@ export function createTreeCheckout(
287
287
  forest?: IEditableForest;
288
288
  fieldBatchCodec?: FieldBatchCodec;
289
289
  removedRoots?: DetachedFieldIndex;
290
- chunkCompressionStrategy?: TreeCompressionStrategyPrivate;
290
+ chunkCompressionStrategy?: TreeCompressionStrategy;
291
291
  logger?: ITelemetryLoggerExt;
292
292
  breaker?: Breakable;
293
293
  disposeForksAfterTransaction?: boolean;
@@ -5,6 +5,10 @@
5
5
 
6
6
  import type { IIdCompressor } from "@fluidframework/id-compressor";
7
7
  import { unreachableCase } from "@fluidframework/core-utils/internal";
8
+ import {
9
+ getConfigForMinVersionForCollab,
10
+ lowestMinVersionForCollab,
11
+ } from "@fluidframework/runtime-utils/internal";
8
12
 
9
13
  import {
10
14
  type CodecTree,
@@ -16,6 +20,7 @@ import {
16
20
  type ICodecOptions,
17
21
  type IJsonCodec,
18
22
  makeCodecFamily,
23
+ makeDiscontinuedCodecVersion,
19
24
  } from "../codec/index.js";
20
25
  import { makeVersionDispatchingCodec } from "../codec/index.js";
21
26
  import type {
@@ -49,10 +54,13 @@ export function clientVersionToEditManagerFormatVersion(
49
54
  clientVersion: MinimumVersionForCollab,
50
55
  writeVersionOverride?: EditManagerFormatVersion,
51
56
  ): EditManagerFormatVersion {
52
- const compatibleVersion: EditManagerFormatVersion =
53
- clientVersion < FluidClientVersion.v2_43
54
- ? brand(EditManagerFormatVersion.v3)
55
- : brand(EditManagerFormatVersion.v4);
57
+ const compatibleVersion: EditManagerFormatVersion = brand(
58
+ getConfigForMinVersionForCollab(clientVersion, {
59
+ [lowestMinVersionForCollab]: EditManagerFormatVersion.v3,
60
+ [FluidClientVersion.v2_43]: EditManagerFormatVersion.v4,
61
+ }),
62
+ );
63
+
56
64
  return writeVersionOverride ?? compatibleVersion;
57
65
  }
58
66
 
@@ -125,21 +133,25 @@ export function makeEditManagerCodecs<TChangeset>(
125
133
  EditManagerEncodingContext
126
134
  >,
127
135
  ][] = Array.from(editManagerFormatVersions, (version) => {
128
- const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
129
136
  switch (version) {
130
137
  case EditManagerFormatVersion.v1:
131
138
  case EditManagerFormatVersion.v2:
139
+ return [version, makeDiscontinuedCodecVersion(options, version, "2.73.0")];
132
140
  case EditManagerFormatVersion.v3:
133
- case EditManagerFormatVersion.v4:
141
+ case EditManagerFormatVersion.v4: {
142
+ const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
134
143
  return [
135
144
  version,
136
145
  makeV1CodecWithVersion(changeCodec, revisionTagCodec, options, version),
137
146
  ];
138
- case EditManagerFormatVersion.v5:
147
+ }
148
+ case EditManagerFormatVersion.v5: {
149
+ const changeCodec = changeCodecs.resolve(dependentChangeFormatVersion.lookup(version));
139
150
  return [
140
151
  version,
141
152
  makeV5CodecWithVersion(changeCodec, revisionTagCodec, options, version),
142
153
  ];
154
+ }
143
155
  default:
144
156
  unreachableCase(version);
145
157
  }
@@ -126,14 +126,12 @@ export const EncodedSharedBranch = <ChangeSchema extends TSchema>(tChange: Chang
126
126
  export const EditManagerFormatVersion = {
127
127
  /**
128
128
  * Introduced and retired prior to 2.0.
129
- * Reading capability is currently maintained for backwards compatibility, but it could be removed in the future.
130
- * Writing capability need not be maintained.
129
+ * Reading and writing capability removed in 2.73.0.
131
130
  */
132
131
  v1: 1,
133
132
  /**
134
133
  * Introduced and retired prior to 2.0.
135
- * Reading capability is currently maintained for backwards compatibility, but it could be removed in the future.
136
- * Writing capability need not be maintained.
134
+ * Reading and writing capability removed in 2.73.0.
137
135
  */
138
136
  v2: 2,
139
137
  /**
@@ -159,12 +157,13 @@ export type EditManagerFormatVersion = Brand<
159
157
  (typeof EditManagerFormatVersion)[keyof typeof EditManagerFormatVersion],
160
158
  "EditManagerFormatVersion"
161
159
  >;
162
- export const editManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> = new Set([
163
- EditManagerFormatVersion.v1,
164
- EditManagerFormatVersion.v2,
165
- EditManagerFormatVersion.v3,
166
- EditManagerFormatVersion.v4,
167
- EditManagerFormatVersion.v5,
168
- ] as EditManagerFormatVersion[]);
169
-
160
+ export const supportedEditManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> =
161
+ new Set([
162
+ EditManagerFormatVersion.v3,
163
+ EditManagerFormatVersion.v4,
164
+ EditManagerFormatVersion.v5,
165
+ ] as EditManagerFormatVersion[]);
166
+ export const editManagerFormatVersions: ReadonlySet<EditManagerFormatVersion> = new Set(
167
+ Object.values(EditManagerFormatVersion) as EditManagerFormatVersion[],
168
+ );
170
169
  /* eslint-enable @typescript-eslint/explicit-function-return-type */