@fluidframework/tree 2.91.0 → 2.93.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 (1023) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +1 -1
  3. package/api-report/tree.alpha.api.md +117 -51
  4. package/api-report/tree.beta.api.md +41 -12
  5. package/api-report/tree.legacy.beta.api.md +41 -12
  6. package/dist/api.d.ts +11 -1
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/api.js.map +1 -1
  9. package/dist/codec/codec.d.ts +28 -2
  10. package/dist/codec/codec.d.ts.map +1 -1
  11. package/dist/codec/codec.js +1 -0
  12. package/dist/codec/codec.js.map +1 -1
  13. package/dist/codec/index.d.ts +2 -2
  14. package/dist/codec/index.d.ts.map +1 -1
  15. package/dist/codec/index.js +2 -4
  16. package/dist/codec/index.js.map +1 -1
  17. package/dist/codec/versioned/codec.d.ts +18 -36
  18. package/dist/codec/versioned/codec.d.ts.map +1 -1
  19. package/dist/codec/versioned/codec.js +46 -59
  20. package/dist/codec/versioned/codec.js.map +1 -1
  21. package/dist/codec/versioned/index.d.ts +1 -1
  22. package/dist/codec/versioned/index.d.ts.map +1 -1
  23. package/dist/codec/versioned/index.js +2 -4
  24. package/dist/codec/versioned/index.js.map +1 -1
  25. package/dist/core/forest/forest.d.ts +5 -2
  26. package/dist/core/forest/forest.d.ts.map +1 -1
  27. package/dist/core/forest/forest.js.map +1 -1
  28. package/dist/core/index.d.ts +1 -1
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/core/index.js +6 -2
  31. package/dist/core/index.js.map +1 -1
  32. package/dist/core/rebase/changeRebaser.d.ts +8 -1
  33. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  34. package/dist/core/rebase/changeRebaser.js.map +1 -1
  35. package/dist/core/rebase/revisionTagCodec.d.ts +4 -3
  36. package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
  37. package/dist/core/rebase/revisionTagCodec.js +2 -0
  38. package/dist/core/rebase/revisionTagCodec.js.map +1 -1
  39. package/dist/core/rebase/utils.d.ts +2 -2
  40. package/dist/core/rebase/utils.d.ts.map +1 -1
  41. package/dist/core/rebase/utils.js +4 -4
  42. package/dist/core/rebase/utils.js.map +1 -1
  43. package/dist/core/schema-stored/formatV2.d.ts +1 -1
  44. package/dist/core/schema-stored/formatV2.js +1 -1
  45. package/dist/core/schema-stored/formatV2.js.map +1 -1
  46. package/dist/core/tree/anchorSet.d.ts +8 -0
  47. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  48. package/dist/core/tree/anchorSet.js +63 -7
  49. package/dist/core/tree/anchorSet.js.map +1 -1
  50. package/dist/core/tree/cursor.d.ts +25 -1
  51. package/dist/core/tree/cursor.d.ts.map +1 -1
  52. package/dist/core/tree/cursor.js +45 -1
  53. package/dist/core/tree/cursor.js.map +1 -1
  54. package/dist/core/tree/deltaUtil.d.ts +13 -1
  55. package/dist/core/tree/deltaUtil.d.ts.map +1 -1
  56. package/dist/core/tree/deltaUtil.js +34 -1
  57. package/dist/core/tree/deltaUtil.js.map +1 -1
  58. package/dist/core/tree/detachedFieldIndexCodecs.d.ts +5 -5
  59. package/dist/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
  60. package/dist/core/tree/detachedFieldIndexCodecs.js.map +1 -1
  61. package/dist/core/tree/index.d.ts +2 -2
  62. package/dist/core/tree/index.d.ts.map +1 -1
  63. package/dist/core/tree/index.js +6 -2
  64. package/dist/core/tree/index.js.map +1 -1
  65. package/dist/core/tree/visitDelta.d.ts +11 -0
  66. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  67. package/dist/core/tree/visitDelta.js +1 -1
  68. package/dist/core/tree/visitDelta.js.map +1 -1
  69. package/dist/core/tree/visitorUtils.d.ts.map +1 -1
  70. package/dist/core/tree/visitorUtils.js +5 -0
  71. package/dist/core/tree/visitorUtils.js.map +1 -1
  72. package/dist/entrypoints/alpha.d.ts +1 -1
  73. package/dist/entrypoints/alpha.d.ts.map +1 -1
  74. package/dist/entrypoints/alpha.js +5 -6
  75. package/dist/entrypoints/alpha.js.map +1 -1
  76. package/dist/entrypoints/beta.d.ts +1 -1
  77. package/dist/entrypoints/beta.d.ts.map +1 -1
  78. package/dist/entrypoints/beta.js +4 -2
  79. package/dist/entrypoints/beta.js.map +1 -1
  80. package/dist/entrypoints/legacy.d.ts +1 -1
  81. package/dist/entrypoints/legacy.d.ts.map +1 -1
  82. package/dist/entrypoints/legacy.js +4 -2
  83. package/dist/entrypoints/legacy.js.map +1 -1
  84. package/dist/entrypoints/public.js +1 -1
  85. package/dist/entrypoints/public.js.map +1 -1
  86. package/dist/feature-libraries/changeAtomIdCodec.d.ts +4 -3
  87. package/dist/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  88. package/dist/feature-libraries/changeAtomIdCodec.js +2 -0
  89. package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
  90. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
  91. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  92. package/dist/feature-libraries/chunked-forest/chunkTree.js +2 -1
  93. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  94. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -1
  95. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  96. package/dist/feature-libraries/chunked-forest/chunkedForest.js +2 -2
  97. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  98. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +4 -4
  99. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  100. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -6
  101. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  102. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +1 -1
  103. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  104. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  105. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -2
  106. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  107. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  108. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -4
  109. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  110. package/dist/feature-libraries/chunked-forest/codec/codecs.js +6 -6
  111. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  112. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +12 -12
  113. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  114. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +3 -3
  115. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  116. package/dist/feature-libraries/chunked-forest/codec/{formatGeneric.d.ts → format/formatGeneric.d.ts} +1 -1
  117. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -0
  118. package/dist/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -0
  119. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.d.ts +187 -0
  120. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.d.ts.map +1 -0
  121. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js +115 -0
  122. package/dist/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -0
  123. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.d.ts +33 -0
  124. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.d.ts.map +1 -0
  125. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js +16 -0
  126. package/dist/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -0
  127. package/dist/feature-libraries/chunked-forest/codec/format/index.d.ts +10 -0
  128. package/dist/feature-libraries/chunked-forest/codec/format/index.d.ts.map +1 -0
  129. package/dist/feature-libraries/chunked-forest/codec/format/index.js +18 -0
  130. package/dist/feature-libraries/chunked-forest/codec/format/index.js.map +1 -0
  131. package/dist/feature-libraries/chunked-forest/codec/format/versions.d.ts +93 -0
  132. package/dist/feature-libraries/chunked-forest/codec/format/versions.d.ts.map +1 -0
  133. package/dist/feature-libraries/chunked-forest/codec/format/versions.js +29 -0
  134. package/dist/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -0
  135. package/dist/feature-libraries/chunked-forest/codec/index.d.ts +2 -2
  136. package/dist/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  137. package/dist/feature-libraries/chunked-forest/codec/index.js +2 -2
  138. package/dist/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  139. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +7 -7
  140. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
  141. package/dist/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
  142. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +1 -1
  143. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  144. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +6 -4
  145. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  146. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +1 -1
  147. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  148. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js +3 -3
  149. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  150. package/dist/feature-libraries/chunked-forest/index.d.ts +1 -1
  151. package/dist/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  152. package/dist/feature-libraries/chunked-forest/index.js.map +1 -1
  153. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +13 -5
  154. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  155. package/dist/feature-libraries/chunked-forest/uniformChunk.js +22 -18
  156. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  157. package/dist/feature-libraries/cursorComparator.d.ts +23 -0
  158. package/dist/feature-libraries/cursorComparator.d.ts.map +1 -0
  159. package/dist/feature-libraries/cursorComparator.js +65 -0
  160. package/dist/feature-libraries/cursorComparator.js.map +1 -0
  161. package/dist/feature-libraries/forest-summary/codec.d.ts +1 -1
  162. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +3 -3
  163. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  164. package/dist/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  165. package/dist/feature-libraries/index.d.ts +3 -2
  166. package/dist/feature-libraries/index.d.ts.map +1 -1
  167. package/dist/feature-libraries/index.js +5 -5
  168. package/dist/feature-libraries/index.js.map +1 -1
  169. package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +3 -0
  170. package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
  171. package/dist/feature-libraries/indexing/anchorTreeIndex.js +15 -8
  172. package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  173. package/dist/feature-libraries/indexing/types.d.ts +4 -3
  174. package/dist/feature-libraries/indexing/types.d.ts.map +1 -1
  175. package/dist/feature-libraries/indexing/types.js.map +1 -1
  176. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  177. package/dist/feature-libraries/mitigatedChangeFamily.js +2 -2
  178. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  179. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +3 -3
  180. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  181. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  182. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  183. package/dist/feature-libraries/modular-schema/genericFieldKind.js +0 -1
  184. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  185. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +10 -10
  186. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
  187. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js +2 -4
  188. package/dist/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
  189. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +3 -3
  190. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
  191. package/dist/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
  192. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +3 -3
  193. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  194. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  195. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +1 -1
  196. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  197. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +4 -3
  198. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  199. package/dist/feature-libraries/object-forest/objectForest.d.ts +1 -1
  200. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  201. package/dist/feature-libraries/object-forest/objectForest.js +2 -2
  202. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  203. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +4 -4
  204. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  205. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  206. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +3 -3
  207. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  208. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  209. package/dist/feature-libraries/schema-edits/index.d.ts +1 -1
  210. package/dist/feature-libraries/schema-edits/index.d.ts.map +1 -1
  211. package/dist/feature-libraries/schema-edits/index.js +2 -3
  212. package/dist/feature-libraries/schema-edits/index.js.map +1 -1
  213. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +6 -15
  214. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  215. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +8 -54
  216. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  217. package/dist/feature-libraries/schema-index/codec.d.ts +3 -16
  218. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  219. package/dist/feature-libraries/schema-index/codec.js +1 -21
  220. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  221. package/dist/feature-libraries/schema-index/formatV2.d.ts +1 -1
  222. package/dist/feature-libraries/schema-index/formatV2.js +1 -1
  223. package/dist/feature-libraries/schema-index/formatV2.js.map +1 -1
  224. package/dist/feature-libraries/schema-index/index.d.ts +1 -1
  225. package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
  226. package/dist/feature-libraries/schema-index/index.js +1 -2
  227. package/dist/feature-libraries/schema-index/index.js.map +1 -1
  228. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -4
  229. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  230. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  231. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +3 -3
  232. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  233. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  234. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +3 -3
  235. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  236. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  237. package/dist/index.d.ts +2 -2
  238. package/dist/index.d.ts.map +1 -1
  239. package/dist/index.js +2 -3
  240. package/dist/index.js.map +1 -1
  241. package/dist/packageVersion.d.ts +1 -1
  242. package/dist/packageVersion.js +1 -1
  243. package/dist/packageVersion.js.map +1 -1
  244. package/dist/serializableDomainSchema.d.ts +5 -5
  245. package/dist/serializableDomainSchema.d.ts.map +1 -1
  246. package/dist/serializableDomainSchema.js.map +1 -1
  247. package/dist/shared-tree/independentView.d.ts +1 -1
  248. package/dist/shared-tree/independentView.d.ts.map +1 -1
  249. package/dist/shared-tree/independentView.js +14 -21
  250. package/dist/shared-tree/independentView.js.map +1 -1
  251. package/dist/shared-tree/index.d.ts +2 -2
  252. package/dist/shared-tree/index.d.ts.map +1 -1
  253. package/dist/shared-tree/index.js +1 -2
  254. package/dist/shared-tree/index.js.map +1 -1
  255. package/dist/shared-tree/schematizingTreeView.d.ts +2 -36
  256. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  257. package/dist/shared-tree/schematizingTreeView.js +15 -117
  258. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  259. package/dist/shared-tree/sharedTree.d.ts +3 -22
  260. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  261. package/dist/shared-tree/sharedTree.js +10 -27
  262. package/dist/shared-tree/sharedTree.js.map +1 -1
  263. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +3 -2
  264. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  265. package/dist/shared-tree/sharedTreeChangeCodecs.js +23 -16
  266. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  267. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  268. package/dist/shared-tree/sharedTreeChangeEnricher.js +1 -1
  269. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  270. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
  271. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  272. package/dist/shared-tree/sharedTreeChangeFamily.js +2 -2
  273. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  274. package/dist/shared-tree/sharedTreeChangeFormat.d.ts +8 -7
  275. package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  276. package/dist/shared-tree/sharedTreeChangeFormat.js +13 -5
  277. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  278. package/dist/shared-tree/tree.d.ts.map +1 -1
  279. package/dist/shared-tree/tree.js +2 -1
  280. package/dist/shared-tree/tree.js.map +1 -1
  281. package/dist/shared-tree/treeAlpha.d.ts +17 -1
  282. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  283. package/dist/shared-tree/treeAlpha.js +3 -0
  284. package/dist/shared-tree/treeAlpha.js.map +1 -1
  285. package/dist/shared-tree/treeCheckout.d.ts +34 -69
  286. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  287. package/dist/shared-tree/treeCheckout.js +885 -678
  288. package/dist/shared-tree/treeCheckout.js.map +1 -1
  289. package/dist/shared-tree/unhydratedTreeContext.js +3 -3
  290. package/dist/shared-tree/unhydratedTreeContext.js.map +1 -1
  291. package/dist/shared-tree-core/editManagerCodecs.d.ts +23 -12
  292. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  293. package/dist/shared-tree-core/editManagerCodecs.js +40 -67
  294. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  295. package/dist/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
  296. package/dist/shared-tree-core/editManagerCodecsCommons.js +0 -1
  297. package/dist/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
  298. package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts +10 -2
  299. package/dist/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
  300. package/dist/shared-tree-core/editManagerCodecsV1toV4.js +18 -13
  301. package/dist/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
  302. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +2 -2
  303. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
  304. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js +6 -9
  305. package/dist/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
  306. package/dist/shared-tree-core/index.d.ts +3 -3
  307. package/dist/shared-tree-core/index.d.ts.map +1 -1
  308. package/dist/shared-tree-core/index.js +5 -8
  309. package/dist/shared-tree-core/index.js.map +1 -1
  310. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts +2 -3
  311. package/dist/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
  312. package/dist/shared-tree-core/messageCodecV1ToV4.js +8 -8
  313. package/dist/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
  314. package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts +2 -3
  315. package/dist/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
  316. package/dist/shared-tree-core/messageCodecVSharedBranches.js +5 -4
  317. package/dist/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
  318. package/dist/shared-tree-core/messageCodecs.d.ts +15 -14
  319. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  320. package/dist/shared-tree-core/messageCodecs.js +38 -74
  321. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  322. package/dist/shared-tree-core/messageFormat.d.ts +0 -1
  323. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  324. package/dist/shared-tree-core/messageFormat.js +1 -2
  325. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  326. package/dist/shared-tree-core/sharedTreeCore.d.ts +1 -3
  327. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  328. package/dist/shared-tree-core/sharedTreeCore.js +12 -2
  329. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  330. package/dist/sharedTreeAttributes.d.ts.map +1 -1
  331. package/dist/sharedTreeAttributes.js +3 -0
  332. package/dist/sharedTreeAttributes.js.map +1 -1
  333. package/dist/simple-tree/api/discrepancies.js +4 -1
  334. package/dist/simple-tree/api/discrepancies.js.map +1 -1
  335. package/dist/simple-tree/api/identifierIndex.d.ts +2 -2
  336. package/dist/simple-tree/api/identifierIndex.js +1 -1
  337. package/dist/simple-tree/api/identifierIndex.js.map +1 -1
  338. package/dist/simple-tree/api/index.d.ts +2 -1
  339. package/dist/simple-tree/api/index.d.ts.map +1 -1
  340. package/dist/simple-tree/api/index.js +3 -2
  341. package/dist/simple-tree/api/index.js.map +1 -1
  342. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  343. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  344. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +33 -4
  345. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  346. package/dist/simple-tree/api/schemaFactoryAlpha.js +17 -1
  347. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  348. package/dist/simple-tree/api/simpleTreeIndex.d.ts +5 -5
  349. package/dist/simple-tree/api/simpleTreeIndex.js +1 -1
  350. package/dist/simple-tree/api/simpleTreeIndex.js.map +1 -1
  351. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  352. package/dist/simple-tree/api/storedSchema.js +10 -7
  353. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  354. package/dist/simple-tree/api/tree.d.ts +7 -19
  355. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  356. package/dist/simple-tree/api/tree.js.map +1 -1
  357. package/dist/simple-tree/api/treeAlpha.d.ts +126 -0
  358. package/dist/simple-tree/api/treeAlpha.d.ts.map +1 -0
  359. package/dist/simple-tree/api/treeAlpha.js +7 -0
  360. package/dist/simple-tree/api/treeAlpha.js.map +1 -0
  361. package/dist/simple-tree/api/treeBeta.d.ts +1 -1
  362. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  363. package/dist/simple-tree/api/treeChangeEvents.d.ts +4 -1
  364. package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
  365. package/dist/simple-tree/api/treeChangeEvents.js.map +1 -1
  366. package/dist/simple-tree/api/treeNodeApi.d.ts +108 -0
  367. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  368. package/dist/simple-tree/api/treeNodeApi.js +104 -3
  369. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  370. package/dist/simple-tree/core/toStored.d.ts +7 -0
  371. package/dist/simple-tree/core/toStored.d.ts.map +1 -1
  372. package/dist/simple-tree/core/toStored.js.map +1 -1
  373. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  374. package/dist/simple-tree/core/treeNodeKernel.js +45 -8
  375. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  376. package/dist/simple-tree/core/unhydratedFlexTree.d.ts +17 -3
  377. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  378. package/dist/simple-tree/core/unhydratedFlexTree.js +117 -11
  379. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  380. package/dist/simple-tree/fieldSchema.d.ts +6 -1
  381. package/dist/simple-tree/fieldSchema.d.ts.map +1 -1
  382. package/dist/simple-tree/fieldSchema.js +3 -0
  383. package/dist/simple-tree/fieldSchema.js.map +1 -1
  384. package/dist/simple-tree/index.d.ts +2 -2
  385. package/dist/simple-tree/index.d.ts.map +1 -1
  386. package/dist/simple-tree/index.js +4 -3
  387. package/dist/simple-tree/index.js.map +1 -1
  388. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts +16 -0
  389. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  390. package/dist/simple-tree/node-kinds/array/arrayNode.js +23 -0
  391. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  392. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +10 -1
  393. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  394. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  395. package/dist/simple-tree/node-kinds/array/index.d.ts +2 -2
  396. package/dist/simple-tree/node-kinds/array/index.d.ts.map +1 -1
  397. package/dist/simple-tree/node-kinds/array/index.js.map +1 -1
  398. package/dist/simple-tree/node-kinds/index.d.ts +2 -2
  399. package/dist/simple-tree/node-kinds/index.d.ts.map +1 -1
  400. package/dist/simple-tree/node-kinds/index.js.map +1 -1
  401. package/dist/simple-tree/node-kinds/map/index.d.ts +1 -1
  402. package/dist/simple-tree/node-kinds/map/index.d.ts.map +1 -1
  403. package/dist/simple-tree/node-kinds/map/index.js.map +1 -1
  404. package/dist/simple-tree/node-kinds/map/mapNode.d.ts +13 -0
  405. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  406. package/dist/simple-tree/node-kinds/map/mapNode.js +6 -1
  407. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  408. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts +6 -6
  409. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  410. package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  411. package/dist/simple-tree/simpleSchema.d.ts +17 -0
  412. package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
  413. package/dist/simple-tree/simpleSchema.js.map +1 -1
  414. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  415. package/dist/simple-tree/toStoredSchema.js +23 -1
  416. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  417. package/dist/tableSchema.d.ts +4 -5
  418. package/dist/tableSchema.d.ts.map +1 -1
  419. package/dist/tableSchema.js +12 -23
  420. package/dist/tableSchema.js.map +1 -1
  421. package/dist/text/textDomain.d.ts.map +1 -1
  422. package/dist/text/textDomain.js +27 -0
  423. package/dist/text/textDomain.js.map +1 -1
  424. package/dist/text/textDomainFormatted.d.ts +321 -11
  425. package/dist/text/textDomainFormatted.d.ts.map +1 -1
  426. package/dist/text/textDomainFormatted.js +100 -25
  427. package/dist/text/textDomainFormatted.js.map +1 -1
  428. package/dist/treeFactory.d.ts.map +1 -1
  429. package/dist/treeFactory.js +5 -2
  430. package/dist/treeFactory.js.map +1 -1
  431. package/dist/util/index.d.ts +1 -1
  432. package/dist/util/index.d.ts.map +1 -1
  433. package/dist/util/index.js +2 -3
  434. package/dist/util/index.js.map +1 -1
  435. package/dist/util/referenceCounting.d.ts.map +1 -1
  436. package/dist/util/referenceCounting.js +0 -1
  437. package/dist/util/referenceCounting.js.map +1 -1
  438. package/dist/util/utils.d.ts +0 -1
  439. package/dist/util/utils.d.ts.map +1 -1
  440. package/dist/util/utils.js +1 -6
  441. package/dist/util/utils.js.map +1 -1
  442. package/eslint.config.mts +1 -1
  443. package/legacy.d.ts +2 -3
  444. package/lib/api.d.ts +11 -1
  445. package/lib/api.d.ts.map +1 -1
  446. package/lib/api.js.map +1 -1
  447. package/lib/codec/codec.d.ts +28 -2
  448. package/lib/codec/codec.d.ts.map +1 -1
  449. package/lib/codec/codec.js +1 -0
  450. package/lib/codec/codec.js.map +1 -1
  451. package/lib/codec/index.d.ts +2 -2
  452. package/lib/codec/index.d.ts.map +1 -1
  453. package/lib/codec/index.js +1 -1
  454. package/lib/codec/index.js.map +1 -1
  455. package/lib/codec/versioned/codec.d.ts +18 -36
  456. package/lib/codec/versioned/codec.d.ts.map +1 -1
  457. package/lib/codec/versioned/codec.js +45 -56
  458. package/lib/codec/versioned/codec.js.map +1 -1
  459. package/lib/codec/versioned/index.d.ts +1 -1
  460. package/lib/codec/versioned/index.d.ts.map +1 -1
  461. package/lib/codec/versioned/index.js +1 -1
  462. package/lib/codec/versioned/index.js.map +1 -1
  463. package/lib/core/forest/forest.d.ts +5 -2
  464. package/lib/core/forest/forest.d.ts.map +1 -1
  465. package/lib/core/forest/forest.js.map +1 -1
  466. package/lib/core/index.d.ts +1 -1
  467. package/lib/core/index.d.ts.map +1 -1
  468. package/lib/core/index.js +1 -1
  469. package/lib/core/index.js.map +1 -1
  470. package/lib/core/rebase/changeRebaser.d.ts +8 -1
  471. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  472. package/lib/core/rebase/changeRebaser.js.map +1 -1
  473. package/lib/core/rebase/revisionTagCodec.d.ts +4 -3
  474. package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
  475. package/lib/core/rebase/revisionTagCodec.js +2 -0
  476. package/lib/core/rebase/revisionTagCodec.js.map +1 -1
  477. package/lib/core/rebase/utils.d.ts +2 -2
  478. package/lib/core/rebase/utils.d.ts.map +1 -1
  479. package/lib/core/rebase/utils.js +4 -4
  480. package/lib/core/rebase/utils.js.map +1 -1
  481. package/lib/core/schema-stored/formatV2.d.ts +1 -1
  482. package/lib/core/schema-stored/formatV2.js +1 -1
  483. package/lib/core/schema-stored/formatV2.js.map +1 -1
  484. package/lib/core/tree/anchorSet.d.ts +8 -0
  485. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  486. package/lib/core/tree/anchorSet.js +63 -7
  487. package/lib/core/tree/anchorSet.js.map +1 -1
  488. package/lib/core/tree/cursor.d.ts +25 -1
  489. package/lib/core/tree/cursor.d.ts.map +1 -1
  490. package/lib/core/tree/cursor.js +43 -0
  491. package/lib/core/tree/cursor.js.map +1 -1
  492. package/lib/core/tree/deltaUtil.d.ts +13 -1
  493. package/lib/core/tree/deltaUtil.d.ts.map +1 -1
  494. package/lib/core/tree/deltaUtil.js +31 -0
  495. package/lib/core/tree/deltaUtil.js.map +1 -1
  496. package/lib/core/tree/detachedFieldIndexCodecs.d.ts +5 -5
  497. package/lib/core/tree/detachedFieldIndexCodecs.d.ts.map +1 -1
  498. package/lib/core/tree/detachedFieldIndexCodecs.js.map +1 -1
  499. package/lib/core/tree/index.d.ts +2 -2
  500. package/lib/core/tree/index.d.ts.map +1 -1
  501. package/lib/core/tree/index.js +2 -2
  502. package/lib/core/tree/index.js.map +1 -1
  503. package/lib/core/tree/visitDelta.d.ts +11 -0
  504. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  505. package/lib/core/tree/visitDelta.js +1 -1
  506. package/lib/core/tree/visitDelta.js.map +1 -1
  507. package/lib/core/tree/visitorUtils.d.ts.map +1 -1
  508. package/lib/core/tree/visitorUtils.js +5 -0
  509. package/lib/core/tree/visitorUtils.js.map +1 -1
  510. package/lib/entrypoints/alpha.d.ts +1 -1
  511. package/lib/entrypoints/alpha.d.ts.map +1 -1
  512. package/lib/entrypoints/alpha.js +2 -2
  513. package/lib/entrypoints/alpha.js.map +1 -1
  514. package/lib/entrypoints/beta.d.ts +1 -1
  515. package/lib/entrypoints/beta.d.ts.map +1 -1
  516. package/lib/entrypoints/beta.js +2 -2
  517. package/lib/entrypoints/beta.js.map +1 -1
  518. package/lib/entrypoints/legacy.d.ts +1 -1
  519. package/lib/entrypoints/legacy.d.ts.map +1 -1
  520. package/lib/entrypoints/legacy.js +2 -2
  521. package/lib/entrypoints/legacy.js.map +1 -1
  522. package/lib/entrypoints/public.js +1 -1
  523. package/lib/entrypoints/public.js.map +1 -1
  524. package/lib/feature-libraries/changeAtomIdCodec.d.ts +4 -3
  525. package/lib/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  526. package/lib/feature-libraries/changeAtomIdCodec.js +2 -0
  527. package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
  528. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +2 -2
  529. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  530. package/lib/feature-libraries/chunked-forest/chunkTree.js +2 -1
  531. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  532. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +2 -1
  533. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  534. package/lib/feature-libraries/chunked-forest/chunkedForest.js +2 -2
  535. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  536. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +4 -4
  537. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  538. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +4 -4
  539. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  540. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +1 -1
  541. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  542. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  543. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +1 -2
  544. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  545. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  546. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +4 -4
  547. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  548. package/lib/feature-libraries/chunked-forest/codec/codecs.js +1 -1
  549. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  550. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +12 -12
  551. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  552. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  553. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  554. package/lib/feature-libraries/chunked-forest/codec/{formatGeneric.d.ts → format/formatGeneric.d.ts} +1 -1
  555. package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.d.ts.map +1 -0
  556. package/lib/feature-libraries/chunked-forest/codec/format/formatGeneric.js.map +1 -0
  557. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.d.ts +187 -0
  558. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.d.ts.map +1 -0
  559. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.js +112 -0
  560. package/lib/feature-libraries/chunked-forest/codec/format/formatV1.js.map +1 -0
  561. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.d.ts +33 -0
  562. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.d.ts.map +1 -0
  563. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.js +13 -0
  564. package/lib/feature-libraries/chunked-forest/codec/format/formatV2.js.map +1 -0
  565. package/lib/feature-libraries/chunked-forest/codec/format/index.d.ts +10 -0
  566. package/lib/feature-libraries/chunked-forest/codec/format/index.d.ts.map +1 -0
  567. package/lib/feature-libraries/chunked-forest/codec/format/index.js +8 -0
  568. package/lib/feature-libraries/chunked-forest/codec/format/index.js.map +1 -0
  569. package/lib/feature-libraries/chunked-forest/codec/format/versions.d.ts +93 -0
  570. package/lib/feature-libraries/chunked-forest/codec/format/versions.d.ts.map +1 -0
  571. package/lib/feature-libraries/chunked-forest/codec/format/versions.js +26 -0
  572. package/lib/feature-libraries/chunked-forest/codec/format/versions.js.map +1 -0
  573. package/lib/feature-libraries/chunked-forest/codec/index.d.ts +2 -2
  574. package/lib/feature-libraries/chunked-forest/codec/index.d.ts.map +1 -1
  575. package/lib/feature-libraries/chunked-forest/codec/index.js +1 -1
  576. package/lib/feature-libraries/chunked-forest/codec/index.js.map +1 -1
  577. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts +7 -7
  578. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.d.ts.map +1 -1
  579. package/lib/feature-libraries/chunked-forest/codec/nodeEncoder.js.map +1 -1
  580. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts +1 -1
  581. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.d.ts.map +1 -1
  582. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js +4 -2
  583. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncode.js.map +1 -1
  584. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +1 -1
  585. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  586. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +1 -1
  587. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  588. package/lib/feature-libraries/chunked-forest/index.d.ts +1 -1
  589. package/lib/feature-libraries/chunked-forest/index.d.ts.map +1 -1
  590. package/lib/feature-libraries/chunked-forest/index.js.map +1 -1
  591. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +13 -5
  592. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  593. package/lib/feature-libraries/chunked-forest/uniformChunk.js +22 -18
  594. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  595. package/lib/feature-libraries/cursorComparator.d.ts +23 -0
  596. package/lib/feature-libraries/cursorComparator.d.ts.map +1 -0
  597. package/lib/feature-libraries/cursorComparator.js +61 -0
  598. package/lib/feature-libraries/cursorComparator.js.map +1 -0
  599. package/lib/feature-libraries/forest-summary/codec.d.ts +1 -1
  600. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts +3 -3
  601. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.d.ts.map +1 -1
  602. package/lib/feature-libraries/forest-summary/incrementalSummaryBuilder.js.map +1 -1
  603. package/lib/feature-libraries/index.d.ts +3 -2
  604. package/lib/feature-libraries/index.d.ts.map +1 -1
  605. package/lib/feature-libraries/index.js +3 -2
  606. package/lib/feature-libraries/index.js.map +1 -1
  607. package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +3 -0
  608. package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
  609. package/lib/feature-libraries/indexing/anchorTreeIndex.js +15 -8
  610. package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  611. package/lib/feature-libraries/indexing/types.d.ts +4 -3
  612. package/lib/feature-libraries/indexing/types.d.ts.map +1 -1
  613. package/lib/feature-libraries/indexing/types.js.map +1 -1
  614. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  615. package/lib/feature-libraries/mitigatedChangeFamily.js +2 -2
  616. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  617. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +3 -3
  618. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  619. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  620. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  621. package/lib/feature-libraries/modular-schema/genericFieldKind.js +0 -1
  622. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  623. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts +10 -10
  624. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.d.ts.map +1 -1
  625. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js +2 -4
  626. package/lib/feature-libraries/modular-schema/modularChangeCodecV1.js.map +1 -1
  627. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts +3 -3
  628. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.d.ts.map +1 -1
  629. package/lib/feature-libraries/modular-schema/modularChangeCodecV2.js.map +1 -1
  630. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +3 -3
  631. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  632. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  633. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +1 -1
  634. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  635. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +4 -3
  636. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  637. package/lib/feature-libraries/object-forest/objectForest.d.ts +1 -1
  638. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  639. package/lib/feature-libraries/object-forest/objectForest.js +2 -2
  640. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  641. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +4 -4
  642. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  643. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +1 -1
  644. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  645. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +3 -3
  646. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  647. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  648. package/lib/feature-libraries/schema-edits/index.d.ts +1 -1
  649. package/lib/feature-libraries/schema-edits/index.d.ts.map +1 -1
  650. package/lib/feature-libraries/schema-edits/index.js +1 -1
  651. package/lib/feature-libraries/schema-edits/index.js.map +1 -1
  652. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +6 -15
  653. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  654. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +6 -50
  655. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  656. package/lib/feature-libraries/schema-index/codec.d.ts +3 -16
  657. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  658. package/lib/feature-libraries/schema-index/codec.js +0 -19
  659. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  660. package/lib/feature-libraries/schema-index/formatV2.d.ts +1 -1
  661. package/lib/feature-libraries/schema-index/formatV2.js +1 -1
  662. package/lib/feature-libraries/schema-index/formatV2.js.map +1 -1
  663. package/lib/feature-libraries/schema-index/index.d.ts +1 -1
  664. package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
  665. package/lib/feature-libraries/schema-index/index.js +1 -1
  666. package/lib/feature-libraries/schema-index/index.js.map +1 -1
  667. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +4 -4
  668. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  669. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  670. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +3 -3
  671. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  672. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +1 -1
  673. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  674. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +3 -3
  675. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  676. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  677. package/lib/index.d.ts +2 -2
  678. package/lib/index.d.ts.map +1 -1
  679. package/lib/index.js +1 -1
  680. package/lib/index.js.map +1 -1
  681. package/lib/packageVersion.d.ts +1 -1
  682. package/lib/packageVersion.js +1 -1
  683. package/lib/packageVersion.js.map +1 -1
  684. package/lib/serializableDomainSchema.d.ts +5 -5
  685. package/lib/serializableDomainSchema.d.ts.map +1 -1
  686. package/lib/serializableDomainSchema.js +4 -1
  687. package/lib/serializableDomainSchema.js.map +1 -1
  688. package/lib/shared-tree/independentView.d.ts +1 -1
  689. package/lib/shared-tree/independentView.d.ts.map +1 -1
  690. package/lib/shared-tree/independentView.js +4 -11
  691. package/lib/shared-tree/independentView.js.map +1 -1
  692. package/lib/shared-tree/index.d.ts +2 -2
  693. package/lib/shared-tree/index.d.ts.map +1 -1
  694. package/lib/shared-tree/index.js +1 -1
  695. package/lib/shared-tree/index.js.map +1 -1
  696. package/lib/shared-tree/schematizingTreeView.d.ts +2 -36
  697. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  698. package/lib/shared-tree/schematizingTreeView.js +17 -116
  699. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  700. package/lib/shared-tree/sharedTree.d.ts +3 -22
  701. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  702. package/lib/shared-tree/sharedTree.js +11 -27
  703. package/lib/shared-tree/sharedTree.js.map +1 -1
  704. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +3 -2
  705. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  706. package/lib/shared-tree/sharedTreeChangeCodecs.js +19 -12
  707. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  708. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  709. package/lib/shared-tree/sharedTreeChangeEnricher.js +2 -2
  710. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  711. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
  712. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  713. package/lib/shared-tree/sharedTreeChangeFamily.js +2 -2
  714. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  715. package/lib/shared-tree/sharedTreeChangeFormat.d.ts +8 -7
  716. package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  717. package/lib/shared-tree/sharedTreeChangeFormat.js +11 -5
  718. package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  719. package/lib/shared-tree/tree.d.ts.map +1 -1
  720. package/lib/shared-tree/tree.js +2 -1
  721. package/lib/shared-tree/tree.js.map +1 -1
  722. package/lib/shared-tree/treeAlpha.d.ts +17 -1
  723. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  724. package/lib/shared-tree/treeAlpha.js +3 -0
  725. package/lib/shared-tree/treeAlpha.js.map +1 -1
  726. package/lib/shared-tree/treeCheckout.d.ts +34 -69
  727. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  728. package/lib/shared-tree/treeCheckout.js +889 -683
  729. package/lib/shared-tree/treeCheckout.js.map +1 -1
  730. package/lib/shared-tree/unhydratedTreeContext.js +1 -1
  731. package/lib/shared-tree/unhydratedTreeContext.js.map +1 -1
  732. package/lib/shared-tree-core/editManagerCodecs.d.ts +23 -12
  733. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  734. package/lib/shared-tree-core/editManagerCodecs.js +41 -65
  735. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  736. package/lib/shared-tree-core/editManagerCodecsCommons.d.ts.map +1 -1
  737. package/lib/shared-tree-core/editManagerCodecsCommons.js +0 -1
  738. package/lib/shared-tree-core/editManagerCodecsCommons.js.map +1 -1
  739. package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts +10 -2
  740. package/lib/shared-tree-core/editManagerCodecsV1toV4.d.ts.map +1 -1
  741. package/lib/shared-tree-core/editManagerCodecsV1toV4.js +16 -11
  742. package/lib/shared-tree-core/editManagerCodecsV1toV4.js.map +1 -1
  743. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts +2 -2
  744. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.d.ts.map +1 -1
  745. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js +5 -8
  746. package/lib/shared-tree-core/editManagerCodecsVSharedBranches.js.map +1 -1
  747. package/lib/shared-tree-core/index.d.ts +3 -3
  748. package/lib/shared-tree-core/index.d.ts.map +1 -1
  749. package/lib/shared-tree-core/index.js +3 -3
  750. package/lib/shared-tree-core/index.js.map +1 -1
  751. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts +2 -3
  752. package/lib/shared-tree-core/messageCodecV1ToV4.d.ts.map +1 -1
  753. package/lib/shared-tree-core/messageCodecV1ToV4.js +8 -8
  754. package/lib/shared-tree-core/messageCodecV1ToV4.js.map +1 -1
  755. package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts +2 -3
  756. package/lib/shared-tree-core/messageCodecVSharedBranches.d.ts.map +1 -1
  757. package/lib/shared-tree-core/messageCodecVSharedBranches.js +5 -4
  758. package/lib/shared-tree-core/messageCodecVSharedBranches.js.map +1 -1
  759. package/lib/shared-tree-core/messageCodecs.d.ts +15 -14
  760. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  761. package/lib/shared-tree-core/messageCodecs.js +38 -71
  762. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  763. package/lib/shared-tree-core/messageFormat.d.ts +0 -1
  764. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  765. package/lib/shared-tree-core/messageFormat.js +0 -1
  766. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  767. package/lib/shared-tree-core/sharedTreeCore.d.ts +1 -3
  768. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  769. package/lib/shared-tree-core/sharedTreeCore.js +14 -4
  770. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  771. package/lib/sharedTreeAttributes.d.ts.map +1 -1
  772. package/lib/sharedTreeAttributes.js +3 -0
  773. package/lib/sharedTreeAttributes.js.map +1 -1
  774. package/lib/simple-tree/api/discrepancies.js +4 -1
  775. package/lib/simple-tree/api/discrepancies.js.map +1 -1
  776. package/lib/simple-tree/api/identifierIndex.d.ts +2 -2
  777. package/lib/simple-tree/api/identifierIndex.js +1 -1
  778. package/lib/simple-tree/api/identifierIndex.js.map +1 -1
  779. package/lib/simple-tree/api/index.d.ts +2 -1
  780. package/lib/simple-tree/api/index.d.ts.map +1 -1
  781. package/lib/simple-tree/api/index.js +1 -1
  782. package/lib/simple-tree/api/index.js.map +1 -1
  783. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  784. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  785. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +33 -4
  786. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  787. package/lib/simple-tree/api/schemaFactoryAlpha.js +19 -3
  788. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  789. package/lib/simple-tree/api/simpleTreeIndex.d.ts +5 -5
  790. package/lib/simple-tree/api/simpleTreeIndex.js +1 -1
  791. package/lib/simple-tree/api/simpleTreeIndex.js.map +1 -1
  792. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  793. package/lib/simple-tree/api/storedSchema.js +11 -8
  794. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  795. package/lib/simple-tree/api/tree.d.ts +7 -19
  796. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  797. package/lib/simple-tree/api/tree.js.map +1 -1
  798. package/lib/simple-tree/api/treeAlpha.d.ts +126 -0
  799. package/lib/simple-tree/api/treeAlpha.d.ts.map +1 -0
  800. package/lib/simple-tree/api/treeAlpha.js +6 -0
  801. package/lib/simple-tree/api/treeAlpha.js.map +1 -0
  802. package/lib/simple-tree/api/treeBeta.d.ts +1 -1
  803. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  804. package/lib/simple-tree/api/treeChangeEvents.d.ts +4 -1
  805. package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -1
  806. package/lib/simple-tree/api/treeChangeEvents.js.map +1 -1
  807. package/lib/simple-tree/api/treeNodeApi.d.ts +108 -0
  808. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  809. package/lib/simple-tree/api/treeNodeApi.js +101 -2
  810. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  811. package/lib/simple-tree/core/toStored.d.ts +7 -0
  812. package/lib/simple-tree/core/toStored.d.ts.map +1 -1
  813. package/lib/simple-tree/core/toStored.js.map +1 -1
  814. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  815. package/lib/simple-tree/core/treeNodeKernel.js +45 -8
  816. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  817. package/lib/simple-tree/core/unhydratedFlexTree.d.ts +17 -3
  818. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  819. package/lib/simple-tree/core/unhydratedFlexTree.js +118 -12
  820. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  821. package/lib/simple-tree/fieldSchema.d.ts +6 -1
  822. package/lib/simple-tree/fieldSchema.d.ts.map +1 -1
  823. package/lib/simple-tree/fieldSchema.js +3 -0
  824. package/lib/simple-tree/fieldSchema.js.map +1 -1
  825. package/lib/simple-tree/index.d.ts +2 -2
  826. package/lib/simple-tree/index.d.ts.map +1 -1
  827. package/lib/simple-tree/index.js +1 -1
  828. package/lib/simple-tree/index.js.map +1 -1
  829. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts +16 -0
  830. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -1
  831. package/lib/simple-tree/node-kinds/array/arrayNode.js +23 -0
  832. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -1
  833. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts +10 -1
  834. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -1
  835. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -1
  836. package/lib/simple-tree/node-kinds/array/index.d.ts +2 -2
  837. package/lib/simple-tree/node-kinds/array/index.d.ts.map +1 -1
  838. package/lib/simple-tree/node-kinds/array/index.js.map +1 -1
  839. package/lib/simple-tree/node-kinds/index.d.ts +2 -2
  840. package/lib/simple-tree/node-kinds/index.d.ts.map +1 -1
  841. package/lib/simple-tree/node-kinds/index.js.map +1 -1
  842. package/lib/simple-tree/node-kinds/map/index.d.ts +1 -1
  843. package/lib/simple-tree/node-kinds/map/index.d.ts.map +1 -1
  844. package/lib/simple-tree/node-kinds/map/index.js.map +1 -1
  845. package/lib/simple-tree/node-kinds/map/mapNode.d.ts +13 -0
  846. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -1
  847. package/lib/simple-tree/node-kinds/map/mapNode.js +6 -1
  848. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -1
  849. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts +6 -6
  850. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -1
  851. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -1
  852. package/lib/simple-tree/simpleSchema.d.ts +17 -0
  853. package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
  854. package/lib/simple-tree/simpleSchema.js.map +1 -1
  855. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  856. package/lib/simple-tree/toStoredSchema.js +24 -2
  857. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  858. package/lib/tableSchema.d.ts +4 -5
  859. package/lib/tableSchema.d.ts.map +1 -1
  860. package/lib/tableSchema.js +12 -23
  861. package/lib/tableSchema.js.map +1 -1
  862. package/lib/text/textDomain.d.ts.map +1 -1
  863. package/lib/text/textDomain.js +29 -0
  864. package/lib/text/textDomain.js.map +1 -1
  865. package/lib/text/textDomainFormatted.d.ts +321 -11
  866. package/lib/text/textDomainFormatted.d.ts.map +1 -1
  867. package/lib/text/textDomainFormatted.js +103 -28
  868. package/lib/text/textDomainFormatted.js.map +1 -1
  869. package/lib/treeFactory.d.ts.map +1 -1
  870. package/lib/treeFactory.js +6 -3
  871. package/lib/treeFactory.js.map +1 -1
  872. package/lib/tsdoc-metadata.json +1 -1
  873. package/lib/util/index.d.ts +1 -1
  874. package/lib/util/index.d.ts.map +1 -1
  875. package/lib/util/index.js +1 -1
  876. package/lib/util/index.js.map +1 -1
  877. package/lib/util/referenceCounting.d.ts.map +1 -1
  878. package/lib/util/referenceCounting.js +0 -1
  879. package/lib/util/referenceCounting.js.map +1 -1
  880. package/lib/util/utils.d.ts +0 -1
  881. package/lib/util/utils.d.ts.map +1 -1
  882. package/lib/util/utils.js +0 -1
  883. package/lib/util/utils.js.map +1 -1
  884. package/package.json +35 -40
  885. package/scripts/generate-entrypoint-sources.sh +4 -2
  886. package/src/api.ts +21 -0
  887. package/src/codec/codec.ts +32 -2
  888. package/src/codec/index.ts +2 -3
  889. package/src/codec/versioned/codec.ts +99 -109
  890. package/src/codec/versioned/index.ts +1 -3
  891. package/src/core/forest/forest.ts +5 -2
  892. package/src/core/index.ts +4 -0
  893. package/src/core/rebase/changeRebaser.ts +8 -0
  894. package/src/core/rebase/revisionTagCodec.ts +4 -4
  895. package/src/core/rebase/utils.ts +9 -2
  896. package/src/core/schema-stored/formatV2.ts +1 -1
  897. package/src/core/tree/anchorSet.ts +92 -10
  898. package/src/core/tree/cursor.ts +52 -1
  899. package/src/core/tree/deltaUtil.ts +37 -1
  900. package/src/core/tree/detachedFieldIndexCodecs.ts +4 -4
  901. package/src/core/tree/index.ts +4 -0
  902. package/src/core/tree/visitDelta.ts +13 -1
  903. package/src/core/tree/visitorUtils.ts +5 -0
  904. package/src/entrypoints/alpha.ts +21 -10
  905. package/src/entrypoints/beta.ts +7 -1
  906. package/src/entrypoints/legacy.ts +7 -1
  907. package/src/entrypoints/public.ts +1 -1
  908. package/src/feature-libraries/changeAtomIdCodec.ts +8 -7
  909. package/src/feature-libraries/chunked-forest/chunkTree.ts +3 -2
  910. package/src/feature-libraries/chunked-forest/chunkedForest.ts +3 -2
  911. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +18 -13
  912. package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +1 -1
  913. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +1 -2
  914. package/src/feature-libraries/chunked-forest/codec/codecs.ts +16 -10
  915. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +16 -14
  916. package/src/feature-libraries/chunked-forest/codec/{formatGeneric.ts → format/formatGeneric.ts} +1 -1
  917. package/src/feature-libraries/chunked-forest/codec/{format.ts → format/formatV1.ts} +41 -111
  918. package/src/feature-libraries/chunked-forest/codec/format/formatV2.ts +31 -0
  919. package/src/feature-libraries/chunked-forest/codec/format/index.ts +31 -0
  920. package/src/feature-libraries/chunked-forest/codec/format/versions.ts +81 -0
  921. package/src/feature-libraries/chunked-forest/codec/index.ts +6 -2
  922. package/src/feature-libraries/chunked-forest/codec/nodeEncoder.ts +19 -12
  923. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncode.ts +6 -4
  924. package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +10 -10
  925. package/src/feature-libraries/chunked-forest/index.ts +2 -1
  926. package/src/feature-libraries/chunked-forest/uniformChunk.ts +42 -20
  927. package/src/feature-libraries/cursorComparator.ts +77 -0
  928. package/src/feature-libraries/forest-summary/incrementalSummaryBuilder.ts +5 -5
  929. package/src/feature-libraries/index.ts +5 -3
  930. package/src/feature-libraries/indexing/anchorTreeIndex.ts +21 -10
  931. package/src/feature-libraries/indexing/types.ts +5 -3
  932. package/src/feature-libraries/mitigatedChangeFamily.ts +4 -1
  933. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +4 -5
  934. package/src/feature-libraries/modular-schema/genericFieldKind.ts +0 -1
  935. package/src/feature-libraries/modular-schema/modularChangeCodecV1.ts +19 -26
  936. package/src/feature-libraries/modular-schema/modularChangeCodecV2.ts +4 -4
  937. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +4 -5
  938. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +6 -2
  939. package/src/feature-libraries/object-forest/objectForest.ts +8 -2
  940. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +11 -13
  941. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +4 -5
  942. package/src/feature-libraries/schema-edits/index.ts +1 -4
  943. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +10 -78
  944. package/src/feature-libraries/schema-index/codec.ts +0 -25
  945. package/src/feature-libraries/schema-index/formatV2.ts +1 -1
  946. package/src/feature-libraries/schema-index/index.ts +1 -4
  947. package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +6 -6
  948. package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +8 -5
  949. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +4 -5
  950. package/src/index.ts +14 -3
  951. package/src/packageVersion.ts +1 -1
  952. package/src/serializableDomainSchema.ts +6 -0
  953. package/src/shared-tree/independentView.ts +5 -18
  954. package/src/shared-tree/index.ts +0 -4
  955. package/src/shared-tree/schematizingTreeView.ts +19 -165
  956. package/src/shared-tree/sharedTree.ts +16 -59
  957. package/src/shared-tree/sharedTreeChangeCodecs.ts +23 -29
  958. package/src/shared-tree/sharedTreeChangeEnricher.ts +1 -2
  959. package/src/shared-tree/sharedTreeChangeFamily.ts +2 -0
  960. package/src/shared-tree/sharedTreeChangeFormat.ts +23 -8
  961. package/src/shared-tree/tree.ts +2 -5
  962. package/src/shared-tree/treeAlpha.ts +30 -0
  963. package/src/shared-tree/treeCheckout.ts +275 -99
  964. package/src/shared-tree/unhydratedTreeContext.ts +1 -1
  965. package/src/shared-tree-core/editManagerCodecs.ts +99 -124
  966. package/src/shared-tree-core/editManagerCodecsCommons.ts +0 -1
  967. package/src/shared-tree-core/editManagerCodecsV1toV4.ts +54 -59
  968. package/src/shared-tree-core/editManagerCodecsVSharedBranches.ts +72 -95
  969. package/src/shared-tree-core/index.ts +4 -8
  970. package/src/shared-tree-core/messageCodecV1ToV4.ts +56 -71
  971. package/src/shared-tree-core/messageCodecVSharedBranches.ts +76 -92
  972. package/src/shared-tree-core/messageCodecs.ts +88 -126
  973. package/src/shared-tree-core/messageFormat.ts +0 -3
  974. package/src/shared-tree-core/sharedTreeCore.ts +14 -21
  975. package/src/sharedTreeAttributes.ts +3 -0
  976. package/src/simple-tree/api/discrepancies.ts +6 -1
  977. package/src/simple-tree/api/identifierIndex.ts +2 -2
  978. package/src/simple-tree/api/index.ts +14 -0
  979. package/src/simple-tree/api/schemaFactory.ts +0 -2
  980. package/src/simple-tree/api/schemaFactoryAlpha.ts +80 -4
  981. package/src/simple-tree/api/simpleTreeIndex.ts +6 -6
  982. package/src/simple-tree/api/storedSchema.ts +12 -20
  983. package/src/simple-tree/api/tree.ts +7 -20
  984. package/src/simple-tree/api/treeAlpha.ts +153 -0
  985. package/src/simple-tree/api/treeBeta.ts +1 -1
  986. package/src/simple-tree/api/treeChangeEvents.ts +4 -1
  987. package/src/simple-tree/api/treeNodeApi.ts +189 -3
  988. package/src/simple-tree/core/toStored.ts +8 -0
  989. package/src/simple-tree/core/treeNodeKernel.ts +53 -7
  990. package/src/simple-tree/core/unhydratedFlexTree.ts +137 -9
  991. package/src/simple-tree/fieldSchema.ts +10 -0
  992. package/src/simple-tree/index.ts +15 -0
  993. package/src/simple-tree/node-kinds/array/arrayNode.ts +64 -0
  994. package/src/simple-tree/node-kinds/array/arrayNodeTypes.ts +25 -1
  995. package/src/simple-tree/node-kinds/array/index.ts +2 -0
  996. package/src/simple-tree/node-kinds/index.ts +3 -0
  997. package/src/simple-tree/node-kinds/map/index.ts +1 -0
  998. package/src/simple-tree/node-kinds/map/mapNode.ts +20 -3
  999. package/src/simple-tree/node-kinds/map/mapNodeTypes.ts +6 -6
  1000. package/src/simple-tree/simpleSchema.ts +20 -0
  1001. package/src/simple-tree/toStoredSchema.ts +28 -1
  1002. package/src/tableSchema.ts +16 -28
  1003. package/src/text/textDomain.ts +68 -1
  1004. package/src/text/textDomainFormatted.ts +113 -11
  1005. package/src/treeFactory.ts +10 -5
  1006. package/src/util/index.ts +0 -1
  1007. package/src/util/referenceCounting.ts +0 -1
  1008. package/src/util/utils.ts +0 -2
  1009. package/.mocharc.customBenchmarks.cjs +0 -25
  1010. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +0 -383
  1011. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +0 -1
  1012. package/dist/feature-libraries/chunked-forest/codec/format.js +0 -191
  1013. package/dist/feature-libraries/chunked-forest/codec/format.js.map +0 -1
  1014. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +0 -1
  1015. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +0 -1
  1016. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +0 -383
  1017. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +0 -1
  1018. package/lib/feature-libraries/chunked-forest/codec/format.js +0 -188
  1019. package/lib/feature-libraries/chunked-forest/codec/format.js.map +0 -1
  1020. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +0 -1
  1021. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +0 -1
  1022. /package/dist/feature-libraries/chunked-forest/codec/{formatGeneric.js → format/formatGeneric.js} +0 -0
  1023. /package/lib/feature-libraries/chunked-forest/codec/{formatGeneric.js → format/formatGeneric.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"serializableDomainSchema.js","sourceRoot":"","sources":["../src/serializableDomainSchema.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,qDAMgC;AAGhC,MAAM,EAAE,GAAG,IAAI,4BAAiB,CAAC,iCAAiC,CAAC,CAAC;AAEpE;;;;;;;;;GASG;AACH,IAAiB,uBAAuB,CA8FvC;AA9FD,WAAiB,uBAAuB;IASvC;;;;;;;OAOG;IACU,4BAAI,GAAG;QACnB,GAAG,EAAE,CAAC,uBAAuB;QAC7B,GAAG,EAAE,CAAC,KAAK;QACX,GAAG,wBAAa,CAAC,MAAM;KACd,CAAC;IAOX;;;OAGG;IACU,yDAAiC,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,wBAAA,IAAI,CAAC,CAAC;IAEpF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAa,uBAAwB,SAAQ,wBAAA,iCAAiC;KAAG;IAApE,+CAAuB,0BAA6C,CAAA;IACjF,CAAC;IAED,CAAC;IAaD;;;OAGG;IACU,wDAAgC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,wBAAA,IAAI,CAAC,CAAC;IAEjF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAa,KAAM,SAAQ,wBAAA,gCAAgC;KAAG;IAAjD,6BAAK,QAA4C,CAAA;IAC9D,CAAC;IAED,CAAC;AACF,CAAC,EA9FgB,uBAAuB,uCAAvB,uBAAuB,QA8FvC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"@fluidframework/core-interfaces\";\n\nimport {\n\tSchemaFactory,\n\tSchemaFactoryBeta,\n\ttype FixRecursiveArraySchema,\n\ttype TreeNodeFromImplicitAllowedTypes,\n\ttype ValidateRecursiveSchema,\n} from \"./simple-tree/index.js\";\nimport type { JsonCompatible } from \"./util/index.js\";\n\nconst sf = new SchemaFactoryBeta(\"com.fluidframework.serializable\");\n\n/**\n * Utilities for storing {@link FluidSerializableAsTree.Data|Fluid Serializable data} in {@link TreeNode}s.\n *\n * Same as {@link JsonAsTree} except allows {@link @fluidframework/core-interfaces#(IFluidHandle:interface)}s.\n * @remarks\n * Schema which replicate the Fluid Serializable data model with {@link TreeNode}s.\n *\n * Fluid Serializable data can be imported from the {@link FluidSerializableAsTree.Data|Fluid Serializable format} into this format using {@link (TreeBeta:interface).importConcise} with the {@link FluidSerializableAsTree.(Tree:variable)} schema.\n * @beta\n */\nexport namespace FluidSerializableAsTree {\n\t/**\n\t * Data which can be serialized by Fluid.\n\t * @remarks\n\t * Can be encoded as a {@link FluidSerializableAsTree.(Tree:type)} using {@link (TreeBeta:interface).importConcise}.\n\t * @beta\n\t */\n\texport type Data = JsonCompatible<IFluidHandle>;\n\n\t/**\n\t * {@link AllowedTypes} for any content allowed in the {@link FluidSerializableAsTree} domain.\n\t * @example\n\t * ```typescript\n\t * const tree = TreeBeta.importConcise(FluidSerializableAsTree.Tree, { example: { nested: true }, value: 5 });\n\t * ```\n\t * @beta\n\t */\n\texport const Tree = [\n\t\t() => FluidSerializableObject,\n\t\t() => Array,\n\t\t...SchemaFactory.leaves,\n\t] as const;\n\n\t/**\n\t * @beta\n\t */\n\texport type Tree = TreeNodeFromImplicitAllowedTypes<typeof Tree>;\n\n\t/**\n\t * Do not use. Exists only as a workaround for {@link https://github.com/microsoft/TypeScript/issues/59550} and {@link https://github.com/microsoft/rushstack/issues/4429}.\n\t * @system @beta\n\t */\n\texport const _APIExtractorWorkaroundObjectBase = sf.recordRecursive(\"object\", Tree);\n\n\t/**\n\t * Arbitrary Fluid Serializable object as a {@link TreeNode}.\n\t * @remarks\n\t * API of the tree node is more aligned with an es6 map than a JS object using its properties like a map.\n\t * @example\n\t * ```typescript\n\t * // Due to TypeScript restrictions on recursive types, the constructor and be somewhat limiting.\n\t * const fromArray = new JsonAsTreeObject([[\"a\", 0]]);\n\t * // Using `importConcise` can work better for Fluid Serializable data:\n\t * const imported = TreeBeta.importConcise(FluidSerializableAsTree.Object, { a: 0 });\n\t * // Node API is like a Map:\n\t * const value = imported.get(\"a\");\n\t * ```\n\t * @privateRemarks\n\t * Due to https://github.com/microsoft/TypeScript/issues/61270 this can't be named `Object`.\n\t * @sealed @beta\n\t */\n\texport class FluidSerializableObject extends _APIExtractorWorkaroundObjectBase {}\n\t{\n\t\ttype _check = ValidateRecursiveSchema<typeof FluidSerializableObject>;\n\t}\n\n\t/**\n\t * D.ts bug workaround, see {@link FixRecursiveArraySchema}.\n\t * @privateRemarks\n\t * In the past this this had to reference the base type (_APIExtractorWorkaroundArrayBase).\n\t * Testing for this in examples/utils/import-testing now shows it has to reference FluidSerializableAsTree.Array instead.\n\t * @system @beta\n\t */\n\texport declare type _RecursiveArrayWorkaroundJsonArray = FixRecursiveArraySchema<\n\t\ttypeof Array\n\t>;\n\n\t/**\n\t * Do not use. Exists only as a workaround for {@link https://github.com/microsoft/TypeScript/issues/59550} and {@link https://github.com/microsoft/rushstack/issues/4429}.\n\t * @system @beta\n\t */\n\texport const _APIExtractorWorkaroundArrayBase = sf.arrayRecursive(\"array\", Tree);\n\n\t/**\n\t * Arbitrary Fluid Serializable array as a {@link TreeNode}.\n\t * @remarks\n\t * This can be imported using {@link (TreeBeta:interface).importConcise}.\n\t * @example\n\t * ```typescript\n\t * // Due to TypeScript restrictions on recursive types, the constructor can be somewhat limiting.\n\t * const usingConstructor = new FluidSerializableAsTree.Array([\"a\", 0, new FluidSerializableAsTree.Array([1])]);\n\t * // Using `importConcise` can work better for Fluid Serializable data:\n\t * const imported = TreeBeta.importConcise(FluidSerializableAsTree.Array, [\"a\", 0, [1]]);\n\t * // Node API is like an Array:\n\t * const inner: FluidSerializableAsTree.Tree = imported[2];\n\t * assert(Tree.is(inner, FluidSerializableAsTree.Array));\n\t * const leaf = inner[0];\n\t * ```\n\t * @sealed @beta\n\t */\n\texport class Array extends _APIExtractorWorkaroundArrayBase {}\n\t{\n\t\ttype _check = ValidateRecursiveSchema<typeof Array>;\n\t}\n}\n"]}
1
+ {"version":3,"file":"serializableDomainSchema.js","sourceRoot":"","sources":["../src/serializableDomainSchema.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,qDAYgC;AAGhC,MAAM,EAAE,GAAG,IAAI,4BAAiB,CAAC,iCAAiC,CAAC,CAAC;AAEpE;;;;;;;;;GASG;AACH,IAAiB,uBAAuB,CA8FvC;AA9FD,WAAiB,uBAAuB;IASvC;;;;;;;OAOG;IACU,4BAAI,GAAG;QACnB,GAAG,EAAE,CAAC,uBAAuB;QAC7B,GAAG,EAAE,CAAC,KAAK;QACX,GAAG,wBAAa,CAAC,MAAM;KACd,CAAC;IAOX;;;OAGG;IACU,yDAAiC,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,wBAAA,IAAI,CAAC,CAAC;IAEpF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAa,uBAAwB,SAAQ,wBAAA,iCAAiC;KAAG;IAApE,+CAAuB,0BAA6C,CAAA;IACjF,CAAC;IAED,CAAC;IAaD;;;OAGG;IACU,wDAAgC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,wBAAA,IAAI,CAAC,CAAC;IAEjF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAa,KAAM,SAAQ,wBAAA,gCAAgC;KAAG;IAAjD,6BAAK,QAA4C,CAAA;IAC9D,CAAC;IAED,CAAC;AACF,CAAC,EA9FgB,uBAAuB,uCAAvB,uBAAuB,QA8FvC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"@fluidframework/core-interfaces\";\n\nimport {\n\t// #region Unused imports to make d.ts cleaner\n\t/* eslint-disable unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars */\n\tNodeKind,\n\tSystem_Unsafe,\n\t/* eslint-enable unused-imports/no-unused-imports, @typescript-eslint/no-unused-vars */\n\t// #endregion\n\tSchemaFactory,\n\tSchemaFactoryBeta,\n\ttype FixRecursiveArraySchema,\n\ttype TreeNodeFromImplicitAllowedTypes,\n\ttype ValidateRecursiveSchema,\n} from \"./simple-tree/index.js\";\nimport type { JsonCompatible } from \"./util/index.js\";\n\nconst sf = new SchemaFactoryBeta(\"com.fluidframework.serializable\");\n\n/**\n * Utilities for storing {@link FluidSerializableAsTree.Data|Fluid Serializable data} in {@link TreeNode}s.\n *\n * Same as {@link JsonAsTree} except allows {@link @fluidframework/core-interfaces#(IFluidHandle:interface)}s.\n * @remarks\n * Schema which replicate the Fluid Serializable data model with {@link TreeNode}s.\n *\n * Fluid Serializable data can be imported from the {@link FluidSerializableAsTree.Data|Fluid Serializable format} into this format using {@link (TreeBeta:interface).importConcise} with the {@link FluidSerializableAsTree.(Tree:variable)} schema.\n * @beta\n */\nexport namespace FluidSerializableAsTree {\n\t/**\n\t * Data which can be serialized by Fluid.\n\t * @remarks\n\t * Can be encoded as a {@link FluidSerializableAsTree.(Tree:type)} using {@link (TreeBeta:interface).importConcise}.\n\t * @beta\n\t */\n\texport type Data = JsonCompatible<IFluidHandle>;\n\n\t/**\n\t * {@link AllowedTypes} for any content allowed in the {@link FluidSerializableAsTree} domain.\n\t * @example\n\t * ```typescript\n\t * const tree = TreeBeta.importConcise(FluidSerializableAsTree.Tree, { example: { nested: true }, value: 5 });\n\t * ```\n\t * @beta\n\t */\n\texport const Tree = [\n\t\t() => FluidSerializableObject,\n\t\t() => Array,\n\t\t...SchemaFactory.leaves,\n\t] as const;\n\n\t/**\n\t * @beta\n\t */\n\texport type Tree = TreeNodeFromImplicitAllowedTypes<typeof Tree>;\n\n\t/**\n\t * Do not use. Exists only as a workaround for {@link https://github.com/microsoft/TypeScript/issues/59550} and {@link https://github.com/microsoft/rushstack/issues/4429}.\n\t * @system @beta\n\t */\n\texport const _APIExtractorWorkaroundObjectBase = sf.recordRecursive(\"object\", Tree);\n\n\t/**\n\t * Arbitrary Fluid Serializable object as a {@link TreeNode}.\n\t * @remarks\n\t * API of the tree node is more aligned with an es6 map than a JS object using its properties like a map.\n\t * @example\n\t * ```typescript\n\t * // Due to TypeScript restrictions on recursive types, the constructor and be somewhat limiting.\n\t * const fromArray = new JsonAsTreeObject([[\"a\", 0]]);\n\t * // Using `importConcise` can work better for Fluid Serializable data:\n\t * const imported = TreeBeta.importConcise(FluidSerializableAsTree.Object, { a: 0 });\n\t * // Node API is like a Map:\n\t * const value = imported.get(\"a\");\n\t * ```\n\t * @privateRemarks\n\t * Due to https://github.com/microsoft/TypeScript/issues/61270 this can't be named `Object`.\n\t * @sealed @beta\n\t */\n\texport class FluidSerializableObject extends _APIExtractorWorkaroundObjectBase {}\n\t{\n\t\ttype _check = ValidateRecursiveSchema<typeof FluidSerializableObject>;\n\t}\n\n\t/**\n\t * D.ts bug workaround, see {@link FixRecursiveArraySchema}.\n\t * @privateRemarks\n\t * In the past this this had to reference the base type (_APIExtractorWorkaroundArrayBase).\n\t * Testing for this in examples/utils/import-testing now shows it has to reference FluidSerializableAsTree.Array instead.\n\t * @system @beta\n\t */\n\texport declare type _RecursiveArrayWorkaroundJsonArray = FixRecursiveArraySchema<\n\t\ttypeof Array\n\t>;\n\n\t/**\n\t * Do not use. Exists only as a workaround for {@link https://github.com/microsoft/TypeScript/issues/59550} and {@link https://github.com/microsoft/rushstack/issues/4429}.\n\t * @system @beta\n\t */\n\texport const _APIExtractorWorkaroundArrayBase = sf.arrayRecursive(\"array\", Tree);\n\n\t/**\n\t * Arbitrary Fluid Serializable array as a {@link TreeNode}.\n\t * @remarks\n\t * This can be imported using {@link (TreeBeta:interface).importConcise}.\n\t * @example\n\t * ```typescript\n\t * // Due to TypeScript restrictions on recursive types, the constructor can be somewhat limiting.\n\t * const usingConstructor = new FluidSerializableAsTree.Array([\"a\", 0, new FluidSerializableAsTree.Array([1])]);\n\t * // Using `importConcise` can work better for Fluid Serializable data:\n\t * const imported = TreeBeta.importConcise(FluidSerializableAsTree.Array, [\"a\", 0, [1]]);\n\t * // Node API is like an Array:\n\t * const inner: FluidSerializableAsTree.Tree = imported[2];\n\t * assert(Tree.is(inner, FluidSerializableAsTree.Array));\n\t * const leaf = inner[0];\n\t * ```\n\t * @sealed @beta\n\t */\n\texport class Array extends _APIExtractorWorkaroundArrayBase {}\n\t{\n\t\ttype _check = ValidateRecursiveSchema<typeof Array>;\n\t}\n}\n"]}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import type { IFluidHandle } from "@fluidframework/core-interfaces";
6
6
  import { type IIdCompressor } from "@fluidframework/id-compressor/internal";
7
- import { type CodecWriteOptions, type ICodecOptions } from "../codec/index.js";
7
+ import type { CodecWriteOptions, ICodecOptions } from "../codec/index.js";
8
8
  import type { TreeViewConfiguration, ImplicitFieldSchema, TreeViewAlpha, ITreeAlpha, ViewableTree } from "../simple-tree/index.js";
9
9
  import { type JsonCompatible } from "../util/index.js";
10
10
  import { type ForestOptions } from "./sharedTree.js";
@@ -1 +1 @@
1
- {"version":3,"file":"independentView.d.ts","sourceRoot":"","sources":["../../src/shared-tree/independentView.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EACN,KAAK,aAAa,EAElB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,MAAM,mBAAmB,CAAC;AAmB3B,OAAO,KAAK,EACX,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,YAAY,EAKZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,KAAK,cAAc,EAGnB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAIN,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AAGzB;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC;IACxF;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,MAAM,iCAAiC,GAAG,aAAa,GAC5D,CACG,CAAC,sBAAsB,GAAG;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;CACf,CAAC,GACF,CAAC,aAAa,GAAG;IACjB;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC,CACJ,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EACxE,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,EACtC,OAAO,CAAC,EAAE,sBAAsB,GAC9B,aAAa,CAAC,OAAO,CAAC,CAExB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EACnF,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,EACtC,OAAO,EAAE,aAAa,GAAG,aAAa,EACtC,OAAO,EAAE,WAAW,GAClB,aAAa,CAAC,OAAO,CAAC,CAIxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EAClF,OAAO,CAAC,EAAE,aAAa,GACrB,YAAY,CAEd;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EACnF,OAAO,CAAC,EAAE,iCAAiC,GACzC,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,oBAAoB,CAAC,CAgFzE;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;CACrC"}
1
+ {"version":3,"file":"independentView.d.ts","sourceRoot":"","sources":["../../src/shared-tree/independentView.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EACN,KAAK,aAAa,EAElB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgB1E,OAAO,KAAK,EACX,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,YAAY,EAKZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,KAAK,cAAc,EAGnB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAIN,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AAGzB;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC;IACxF;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,MAAM,iCAAiC,GAAG,aAAa,GAC5D,CACG,CAAC,sBAAsB,GAAG;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;CACf,CAAC,GACF,CAAC,aAAa,GAAG;IACjB;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC,CACJ,CAAC;AAEH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EACxE,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,EACtC,OAAO,CAAC,EAAE,sBAAsB,GAC9B,aAAa,CAAC,OAAO,CAAC,CAExB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EACnF,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,EACtC,OAAO,EAAE,aAAa,GAAG,aAAa,EACtC,OAAO,EAAE,WAAW,GAClB,aAAa,CAAC,OAAO,CAAC,CAIxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EAClF,OAAO,CAAC,EAAE,aAAa,GACrB,YAAY,CAEd;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,OAAO,SAAS,mBAAmB,EACnF,OAAO,CAAC,EAAE,iCAAiC,GACzC,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,oBAAoB,CAAC,CA0EzE;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;CACrC"}
@@ -7,11 +7,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.createIndependentTreeAlpha = exports.createIndependentTreeBeta = exports.independentInitializedView = exports.independentView = void 0;
8
8
  const internal_1 = require("@fluidframework/core-utils/internal");
9
9
  const internal_2 = require("@fluidframework/id-compressor/internal");
10
- const index_js_1 = require("../codec/index.js");
11
- const index_js_2 = require("../core/index.js");
10
+ const index_js_1 = require("../core/index.js");
11
+ const index_js_2 = require("../feature-libraries/index.js");
12
12
  const index_js_3 = require("../feature-libraries/index.js");
13
- const index_js_4 = require("../feature-libraries/index.js");
14
- const index_js_5 = require("../util/index.js");
13
+ const index_js_4 = require("../util/index.js");
15
14
  const schematizeTree_js_1 = require("./schematizeTree.js");
16
15
  const schematizingTreeView_js_1 = require("./schematizingTreeView.js");
17
16
  const sharedTree_js_1 = require("./sharedTree.js");
@@ -114,13 +113,13 @@ exports.createIndependentTreeBeta = createIndependentTreeBeta;
114
113
  * @alpha
115
114
  */
116
115
  function createIndependentTreeAlpha(options) {
117
- const breaker = new index_js_5.Breakable("independentView");
116
+ const breaker = new index_js_4.Breakable("independentView");
118
117
  const idCompressor = options?.idCompressor ?? options?.content?.idCompressor ?? (0, internal_2.createIdCompressor)();
119
118
  const mintRevisionTag = () => idCompressor.generateCompressedId();
120
- const revisionTagCodec = new index_js_2.RevisionTagCodec(idCompressor);
119
+ const revisionTagCodec = new index_js_1.RevisionTagCodec(idCompressor);
121
120
  // To ensure the forest is in schema when constructed, start it with an empty schema and set the schema repository content later.
122
- const schemaRepository = new index_js_2.TreeStoredSchemaRepository();
123
- const forest = (0, sharedTree_js_1.buildConfiguredForest)(breaker, options?.forest ?? sharedTree_js_1.defaultSharedTreeOptions.forest, schemaRepository, idCompressor, index_js_3.defaultIncrementalEncodingPolicy);
121
+ const schemaRepository = new index_js_1.TreeStoredSchemaRepository();
122
+ const forest = (0, sharedTree_js_1.buildConfiguredForest)(breaker, options?.forest ?? sharedTree_js_1.defaultSharedTreeOptions.forest, schemaRepository, idCompressor, index_js_2.defaultIncrementalEncodingPolicy);
124
123
  const checkout = (0, treeCheckout_js_1.createTreeCheckout)(idCompressor, mintRevisionTag, revisionTagCodec, {
125
124
  forest,
126
125
  schema: schemaRepository,
@@ -128,30 +127,24 @@ function createIndependentTreeAlpha(options) {
128
127
  codecOptions: options,
129
128
  });
130
129
  if (options?.content !== undefined) {
131
- // Any version can be passed down to `makeSchemaCodec` and `fieldBatchCodecBuilder.build` here.
132
- // We only use the decode part, which always dispatches to the correct codec based on the version in the data, not `minVersionForCollab`.
133
- const writeOptions = {
134
- ...options,
135
- minVersionForCollab: index_js_1.FluidClientVersion.v2_0,
136
- };
137
- const schemaCodec = (0, index_js_3.makeSchemaCodec)(writeOptions, index_js_2.SchemaFormatVersion.v1);
138
- const fieldBatchCodec = index_js_3.fieldBatchCodecBuilder.build(writeOptions);
130
+ const schemaCodec = index_js_2.schemaCodecBuilder.buildDecoder(options);
131
+ const fieldBatchCodec = index_js_2.fieldBatchCodecBuilder.buildDecoder(options);
139
132
  const newSchema = schemaCodec.decode(options.content.schema);
140
133
  const context = {
141
- encodeType: index_js_3.TreeCompressionStrategy.Compressed,
134
+ encodeType: index_js_2.TreeCompressionStrategy.Compressed,
142
135
  idCompressor,
143
136
  originatorId: idCompressor.localSessionId, // Is this right? If so, why is is needed?
144
- schema: { schema: newSchema, policy: index_js_3.defaultSchemaPolicy },
137
+ schema: { schema: newSchema, policy: index_js_2.defaultSchemaPolicy },
145
138
  };
146
139
  const fieldCursors = fieldBatchCodec.decode(options.content.tree, context);
147
140
  (0, internal_1.assert)(fieldCursors.length === 1, 0xa5b /* must have exactly 1 field in batch */);
148
- const fieldCursor = (0, index_js_5.oneFromIterable)(fieldCursors);
141
+ const fieldCursor = (0, index_js_4.oneFromIterable)(fieldCursors);
149
142
  (0, internal_1.assert)(fieldCursor !== undefined, 0xc94 /* expected exactly one field in batch */);
150
- (0, schematizeTree_js_1.initialize)(checkout, newSchema, (0, schematizeTree_js_1.initializerFromChunk)(checkout, () => (0, index_js_4.combineChunks)(checkout.forest.chunkField(fieldCursor))));
143
+ (0, schematizeTree_js_1.initialize)(checkout, newSchema, (0, schematizeTree_js_1.initializerFromChunk)(checkout, () => (0, index_js_3.combineChunks)(checkout.forest.chunkField(fieldCursor))));
151
144
  }
152
145
  return {
153
146
  viewWith(config) {
154
- const out = new schematizingTreeView_js_1.SchematizingSimpleTreeView(checkout, config, (0, index_js_3.createNodeIdentifierManager)(idCompressor));
147
+ const out = new schematizingTreeView_js_1.SchematizingSimpleTreeView(checkout, config, (0, index_js_2.createNodeIdentifierManager)(idCompressor));
155
148
  return out;
156
149
  },
157
150
  exportVerbose() {
@@ -1 +1 @@
1
- {"version":3,"file":"independentView.js","sourceRoot":"","sources":["../../src/shared-tree/independentView.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,kEAA6D;AAC7D,qEAGgD;AAEhD,gDAI2B;AAC3B,+CAK0B;AAC1B,4DAQuC;AACvC,4DAA8D;AAc9D,+CAK0B;AAE1B,2DAAuE;AACvE,uEAAuE;AACvE,mDAKyB;AACzB,uDAAuD;AAyCvD;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAC9B,MAAsC,EACtC,OAAgC;IAEhC,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAA2B,CAAC;AACvF,CAAC;AALD,0CAKC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,0BAA0B,CACzC,MAAsC,EACtC,OAAsC,EACtC,OAAoB;IAEpB,OAAO,0BAA0B,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAClE,MAAM,CACoB,CAAC;AAC7B,CAAC;AARD,gEAQC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,SAAgB,yBAAyB,CACxC,OAAuB;IAEvB,OAAO,0BAA0B,CAAU,OAAO,CAAC,CAAC;AACrD,CAAC;AAJD,8DAIC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,0BAA0B,CACzC,OAA2C;IAE3C,MAAM,OAAO,GAAG,IAAI,oBAAS,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,YAAY,GACjB,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,OAAO,EAAE,YAAY,IAAI,IAAA,6BAAkB,GAAE,CAAC;IACjF,MAAM,eAAe,GAAG,GAAgB,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC/E,MAAM,gBAAgB,GAAG,IAAI,2BAAgB,CAAC,YAAY,CAAC,CAAC;IAE5D,iIAAiI;IACjI,MAAM,gBAAgB,GAAG,IAAI,qCAA0B,EAAE,CAAC;IAE1D,MAAM,MAAM,GAAG,IAAA,qCAAqB,EACnC,OAAO,EACP,OAAO,EAAE,MAAM,IAAI,wCAAwB,CAAC,MAAM,EAClD,gBAAgB,EAChB,YAAY,EACZ,2CAAgC,CAChC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,oCAAkB,EAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE;QACpF,MAAM;QACN,MAAM,EAAE,gBAAgB;QACxB,OAAO;QACP,YAAY,EAAE,OAAO;KACrB,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,+FAA+F;QAC/F,yIAAyI;QACzI,MAAM,YAAY,GAAsB;YACvC,GAAG,OAAO;YACV,mBAAmB,EAAE,6BAAkB,CAAC,IAAI;SAC5C,CAAC;QACF,MAAM,WAAW,GAAG,IAAA,0BAAe,EAAC,YAAY,EAAE,8BAAmB,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,iCAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAgB,CAAC,CAAC;QAEvE,MAAM,OAAO,GAA8B;YAC1C,UAAU,EAAE,kCAAuB,CAAC,UAAU;YAC9C,YAAY;YACZ,YAAY,EAAE,YAAY,CAAC,cAAc,EAAE,0CAA0C;YACrF,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,8BAAmB,EAAE;SAC1D,CAAC;QACF,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAC1C,OAAO,CAAC,OAAO,CAAC,IAA8B,EAC9C,OAAO,CACP,CAAC;QACF,IAAA,iBAAM,EAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAElF,MAAM,WAAW,GAAG,IAAA,0BAAe,EAAC,YAAY,CAAC,CAAC;QAClD,IAAA,iBAAM,EAAC,WAAW,KAAK,SAAS,EAAE,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEnF,IAAA,8BAAU,EACT,QAAQ,EACR,SAAS,EACT,IAAA,wCAAoB,EAAC,QAAQ,EAAE,GAAG,EAAE,CACnC,IAAA,wBAAa,EAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CACtD,CACD,CAAC;IACH,CAAC;IAED,OAAO;QACN,QAAQ,CACP,MAAoC;YAEpC,MAAM,GAAG,GAA2B,IAAI,oDAA0B,CACjE,QAAQ,EACR,MAA6E,EAC7E,IAAA,sCAA2B,EAAC,YAAY,CAAC,CACzC,CAAC;YACF,OAAO,GAAiC,CAAC;QAC1C,CAAC;QAED,aAAa;YACZ,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC;QAED,kBAAkB;YACjB,OAAO,IAAA,kCAAkB,EAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;KACD,CAAC;AACH,CAAC;AAlFD,gEAkFC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\ttype IIdCompressor,\n\tcreateIdCompressor,\n} from \"@fluidframework/id-compressor/internal\";\n\nimport {\n\tFluidClientVersion,\n\ttype CodecWriteOptions,\n\ttype ICodecOptions,\n} from \"../codec/index.js\";\nimport {\n\ttype RevisionTag,\n\tRevisionTagCodec,\n\tSchemaFormatVersion,\n\tTreeStoredSchemaRepository,\n} from \"../core/index.js\";\nimport {\n\tcreateNodeIdentifierManager,\n\tfieldBatchCodecBuilder,\n\tmakeSchemaCodec,\n\ttype FieldBatchEncodingContext,\n\tdefaultSchemaPolicy,\n\tTreeCompressionStrategy,\n\tdefaultIncrementalEncodingPolicy,\n} from \"../feature-libraries/index.js\";\nimport { combineChunks } from \"../feature-libraries/index.js\";\n// eslint-disable-next-line import-x/no-internal-modules\nimport type { Format } from \"../feature-libraries/schema-index/formatV1.js\";\nimport type {\n\tTreeViewConfiguration,\n\tImplicitFieldSchema,\n\tTreeViewAlpha,\n\tITreeAlpha,\n\tViewableTree,\n\tTreeView,\n\tReadSchema,\n\tVerboseTree,\n\tSimpleTreeSchema,\n} from \"../simple-tree/index.js\";\nimport {\n\ttype JsonCompatibleReadOnly,\n\ttype JsonCompatible,\n\tBreakable,\n\toneFromIterable,\n} from \"../util/index.js\";\n\nimport { initialize, initializerFromChunk } from \"./schematizeTree.js\";\nimport { SchematizingSimpleTreeView } from \"./schematizingTreeView.js\";\nimport {\n\tbuildConfiguredForest,\n\tdefaultSharedTreeOptions,\n\texportSimpleSchema,\n\ttype ForestOptions,\n} from \"./sharedTree.js\";\nimport { createTreeCheckout } from \"./treeCheckout.js\";\n\n/**\n * {@link independentView} options.\n * @alpha @input\n */\nexport interface IndependentViewOptions extends ForestOptions, Partial<CodecWriteOptions> {\n\t/**\n\t * Optional ID compressor for generating and compressing identifiers.\n\t * If not provided, a new one will be created.\n\t */\n\tidCompressor?: IIdCompressor | undefined;\n}\n\n/**\n * {@link createIndependentTreeAlpha} options.\n * @alpha\n */\nexport type CreateIndependentTreeAlphaOptions = ForestOptions &\n\t(\n\t\t| (IndependentViewOptions & {\n\t\t\t\t/**\n\t\t\t\t * Optional content for initializing the tree.\n\t\t\t\t * If not provided, the tree will be uninitialized.\n\t\t\t\t */\n\t\t\t\tcontent?: never;\n\t\t })\n\t\t| (ICodecOptions & {\n\t\t\t\t/**\n\t\t\t\t * Content for initializing the tree.\n\t\t\t\t * The content includes the idCompressor, so idCompressor should not be provided at the top level.\n\t\t\t\t */\n\t\t\t\tcontent: ViewContent;\n\t\t\t\t/**\n\t\t\t\t * Should not be provided when content is specified.\n\t\t\t\t * The idCompressor will be obtained from the content.\n\t\t\t\t */\n\t\t\t\tidCompressor?: never;\n\t\t })\n\t);\n\n/**\n * Create an uninitialized {@link TreeView} that is not tied to any {@link ITree} instance.\n *\n * @remarks\n * Such a view can never experience collaboration or be persisted to to a Fluid Container.\n *\n * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.\n * @alpha\n */\nexport function independentView<const TSchema extends ImplicitFieldSchema>(\n\tconfig: TreeViewConfiguration<TSchema>,\n\toptions?: IndependentViewOptions,\n): TreeViewAlpha<TSchema> {\n\treturn createIndependentTreeAlpha(options).viewWith(config) as TreeViewAlpha<TSchema>;\n}\n\n/**\n * Create an initialized {@link TreeView} that is not tied to any {@link ITree} instance.\n *\n * @remarks\n * Such a view can never experience collaboration or be persisted to to a Fluid Container.\n *\n * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.\n * @privateRemarks\n * TODO: Providing an API which generates a {@link ViewableTree} extended with export options from {@link ITreeAlpha} and maybe even branching APIs would likely be better that just exposing a {@link TreeViewAlpha}.\n * @alpha\n */\nexport function independentInitializedView<const TSchema extends ImplicitFieldSchema>(\n\tconfig: TreeViewConfiguration<TSchema>,\n\toptions: ForestOptions & ICodecOptions,\n\tcontent: ViewContent,\n): TreeViewAlpha<TSchema> {\n\treturn createIndependentTreeAlpha({ ...options, content }).viewWith(\n\t\tconfig,\n\t) as TreeViewAlpha<TSchema>;\n}\n\n/**\n * Create a {@link ViewableTree} that is not tied to any Fluid runtimes or services.\n *\n * @remarks\n * Such a tree can never experience collaboration or be persisted to to a Fluid Container.\n *\n * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.\n *\n * @example\n * ```typescript\n * const tree = createIndependentTreeBeta();\n *\n * const stagedConfig = new TreeViewConfiguration({\n * \tschema: SchemaFactoryAlpha.types([\n * \t\tSchemaFactory.number,\n * \t\tSchemaFactoryAlpha.staged(SchemaFactory.string),\n * \t]),\n * });\n * const afterConfig = new TreeViewConfigurationAlpha({\n * \tschema: [SchemaFactory.number, SchemaFactory.string],\n * });\n *\n * // Initialize tree\n * {\n * \tconst view = tree.viewWith(stagedConfig);\n * \tview.initialize(1);\n * \tview.dispose();\n * }\n *\n * // Do schema upgrade\n * {\n * \tconst view = tree.viewWith(afterConfig);\n * \tview.upgradeSchema();\n * \tview.root = \"A\";\n * \tview.dispose();\n * }\n *\n * // Can still view tree with staged schema\n * {\n * \tconst view = tree.viewWith(stagedConfig);\n * \tassert.equal(view.root, \"A\");\n * \tview.dispose();\n * }\n * ```\n * @privateRemarks\n * Before stabilizing this as public, consider if we can instead just expose a better way to create regular Fluid service based SharedTrees for tests.\n * Something like https://github.com/microsoft/FluidFramework/pull/25422 might be a better long term stable/public solution.\n * @beta\n */\nexport function createIndependentTreeBeta<const TSchema extends ImplicitFieldSchema>(\n\toptions?: ForestOptions,\n): ViewableTree {\n\treturn createIndependentTreeAlpha<TSchema>(options);\n}\n\n/**\n * Alpha extensions to {@link createIndependentTreeBeta}.\n *\n * @param options - Configuration options for the independent tree.\n * This can be used to create an uninitialized tree, or `content` can be provided to create an initialized tree.\n * If content is provided, the idCompressor is a required part of it: otherwise it is optional and provided at the top level.\n *\n * @privateRemarks\n * TODO: Support more of {@link ITreeAlpha}, including branching APIs to allow for merges.\n * TODO: Better unify this logic with SharedTreeKernel and SharedTreeCore.\n *\n * Before further stabilizing: consider better ways to handle initialized vs uninitialized trees.\n * Perhaps it would be better to not allow initialize here at all, but expose the ability to load compressed tree content and stored schema via ITree or TreeView?\n * If keeping the option here, maybe a separate function of overload would be better? Or maybe flatten ViewContent inline to deduplicate the idCompressor options?\n * @alpha\n */\nexport function createIndependentTreeAlpha<const TSchema extends ImplicitFieldSchema>(\n\toptions?: CreateIndependentTreeAlphaOptions,\n): ViewableTree & Pick<ITreeAlpha, \"exportVerbose\" | \"exportSimpleSchema\"> {\n\tconst breaker = new Breakable(\"independentView\");\n\tconst idCompressor: IIdCompressor =\n\t\toptions?.idCompressor ?? options?.content?.idCompressor ?? createIdCompressor();\n\tconst mintRevisionTag = (): RevisionTag => idCompressor.generateCompressedId();\n\tconst revisionTagCodec = new RevisionTagCodec(idCompressor);\n\n\t// To ensure the forest is in schema when constructed, start it with an empty schema and set the schema repository content later.\n\tconst schemaRepository = new TreeStoredSchemaRepository();\n\n\tconst forest = buildConfiguredForest(\n\t\tbreaker,\n\t\toptions?.forest ?? defaultSharedTreeOptions.forest,\n\t\tschemaRepository,\n\t\tidCompressor,\n\t\tdefaultIncrementalEncodingPolicy,\n\t);\n\n\tconst checkout = createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCodec, {\n\t\tforest,\n\t\tschema: schemaRepository,\n\t\tbreaker,\n\t\tcodecOptions: options,\n\t});\n\n\tif (options?.content !== undefined) {\n\t\t// Any version can be passed down to `makeSchemaCodec` and `fieldBatchCodecBuilder.build` here.\n\t\t// We only use the decode part, which always dispatches to the correct codec based on the version in the data, not `minVersionForCollab`.\n\t\tconst writeOptions: CodecWriteOptions = {\n\t\t\t...options,\n\t\t\tminVersionForCollab: FluidClientVersion.v2_0,\n\t\t};\n\t\tconst schemaCodec = makeSchemaCodec(writeOptions, SchemaFormatVersion.v1);\n\t\tconst fieldBatchCodec = fieldBatchCodecBuilder.build(writeOptions);\n\t\tconst newSchema = schemaCodec.decode(options.content.schema as Format);\n\n\t\tconst context: FieldBatchEncodingContext = {\n\t\t\tencodeType: TreeCompressionStrategy.Compressed,\n\t\t\tidCompressor,\n\t\t\toriginatorId: idCompressor.localSessionId, // Is this right? If so, why is is needed?\n\t\t\tschema: { schema: newSchema, policy: defaultSchemaPolicy },\n\t\t};\n\t\tconst fieldCursors = fieldBatchCodec.decode(\n\t\t\toptions.content.tree as JsonCompatibleReadOnly,\n\t\t\tcontext,\n\t\t);\n\t\tassert(fieldCursors.length === 1, 0xa5b /* must have exactly 1 field in batch */);\n\n\t\tconst fieldCursor = oneFromIterable(fieldCursors);\n\t\tassert(fieldCursor !== undefined, 0xc94 /* expected exactly one field in batch */);\n\n\t\tinitialize(\n\t\t\tcheckout,\n\t\t\tnewSchema,\n\t\t\tinitializerFromChunk(checkout, () =>\n\t\t\t\tcombineChunks(checkout.forest.chunkField(fieldCursor)),\n\t\t\t),\n\t\t);\n\t}\n\n\treturn {\n\t\tviewWith<TRoot extends ImplicitFieldSchema>(\n\t\t\tconfig: TreeViewConfiguration<TRoot>,\n\t\t): TreeView<TRoot> {\n\t\t\tconst out: TreeViewAlpha<TSchema> = new SchematizingSimpleTreeView<TSchema>(\n\t\t\t\tcheckout,\n\t\t\t\tconfig as TreeViewConfiguration as TreeViewConfiguration<ReadSchema<TSchema>>,\n\t\t\t\tcreateNodeIdentifierManager(idCompressor),\n\t\t\t);\n\t\t\treturn out as unknown as TreeView<TRoot>;\n\t\t},\n\n\t\texportVerbose(): VerboseTree | undefined {\n\t\t\treturn checkout.exportVerbose();\n\t\t},\n\n\t\texportSimpleSchema(): SimpleTreeSchema {\n\t\t\treturn exportSimpleSchema(checkout.storedSchema);\n\t\t},\n\t};\n}\n\n/**\n * The portion of SharedTree data typically persisted by the container.\n * Usable with {@link independentInitializedView} to create a {@link TreeView}\n * without loading a container.\n * @alpha\n */\nexport interface ViewContent {\n\t/**\n\t * Compressed tree from {@link (TreeAlpha:interface).exportCompressed}.\n\t * @remarks\n\t * This is an owning reference:\n\t * consumers of this content might modify this data in place (for example when applying edits) to avoid copying.\n\t */\n\treadonly tree: JsonCompatible<IFluidHandle>;\n\t/**\n\t * Persisted schema from {@link extractPersistedSchema}.\n\t */\n\treadonly schema: JsonCompatible;\n\t/**\n\t * IIdCompressor which will be used to decompress any compressed identifiers in `tree`\n\t * as well as for any other identifiers added to the view.\n\t */\n\treadonly idCompressor: IIdCompressor;\n}\n"]}
1
+ {"version":3,"file":"independentView.js","sourceRoot":"","sources":["../../src/shared-tree/independentView.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\ttype IIdCompressor,\n\tcreateIdCompressor,\n} from \"@fluidframework/id-compressor/internal\";\n\nimport type { CodecWriteOptions, ICodecOptions } from \"../codec/index.js\";\nimport {\n\ttype RevisionTag,\n\tRevisionTagCodec,\n\tTreeStoredSchemaRepository,\n} from \"../core/index.js\";\nimport {\n\tcreateNodeIdentifierManager,\n\tfieldBatchCodecBuilder,\n\ttype FieldBatchEncodingContext,\n\tdefaultSchemaPolicy,\n\tTreeCompressionStrategy,\n\tdefaultIncrementalEncodingPolicy,\n\tschemaCodecBuilder,\n} from \"../feature-libraries/index.js\";\nimport { combineChunks } from \"../feature-libraries/index.js\";\nimport type {\n\tTreeViewConfiguration,\n\tImplicitFieldSchema,\n\tTreeViewAlpha,\n\tITreeAlpha,\n\tViewableTree,\n\tTreeView,\n\tReadSchema,\n\tVerboseTree,\n\tSimpleTreeSchema,\n} from \"../simple-tree/index.js\";\nimport {\n\ttype JsonCompatibleReadOnly,\n\ttype JsonCompatible,\n\tBreakable,\n\toneFromIterable,\n} from \"../util/index.js\";\n\nimport { initialize, initializerFromChunk } from \"./schematizeTree.js\";\nimport { SchematizingSimpleTreeView } from \"./schematizingTreeView.js\";\nimport {\n\tbuildConfiguredForest,\n\tdefaultSharedTreeOptions,\n\texportSimpleSchema,\n\ttype ForestOptions,\n} from \"./sharedTree.js\";\nimport { createTreeCheckout } from \"./treeCheckout.js\";\n\n/**\n * {@link independentView} options.\n * @alpha @input\n */\nexport interface IndependentViewOptions extends ForestOptions, Partial<CodecWriteOptions> {\n\t/**\n\t * Optional ID compressor for generating and compressing identifiers.\n\t * If not provided, a new one will be created.\n\t */\n\tidCompressor?: IIdCompressor | undefined;\n}\n\n/**\n * {@link createIndependentTreeAlpha} options.\n * @alpha\n */\nexport type CreateIndependentTreeAlphaOptions = ForestOptions &\n\t(\n\t\t| (IndependentViewOptions & {\n\t\t\t\t/**\n\t\t\t\t * Optional content for initializing the tree.\n\t\t\t\t * If not provided, the tree will be uninitialized.\n\t\t\t\t */\n\t\t\t\tcontent?: never;\n\t\t })\n\t\t| (ICodecOptions & {\n\t\t\t\t/**\n\t\t\t\t * Content for initializing the tree.\n\t\t\t\t * The content includes the idCompressor, so idCompressor should not be provided at the top level.\n\t\t\t\t */\n\t\t\t\tcontent: ViewContent;\n\t\t\t\t/**\n\t\t\t\t * Should not be provided when content is specified.\n\t\t\t\t * The idCompressor will be obtained from the content.\n\t\t\t\t */\n\t\t\t\tidCompressor?: never;\n\t\t })\n\t);\n\n/**\n * Create an uninitialized {@link TreeView} that is not tied to any {@link ITree} instance.\n *\n * @remarks\n * Such a view can never experience collaboration or be persisted to to a Fluid Container.\n *\n * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.\n * @alpha\n */\nexport function independentView<const TSchema extends ImplicitFieldSchema>(\n\tconfig: TreeViewConfiguration<TSchema>,\n\toptions?: IndependentViewOptions,\n): TreeViewAlpha<TSchema> {\n\treturn createIndependentTreeAlpha(options).viewWith(config) as TreeViewAlpha<TSchema>;\n}\n\n/**\n * Create an initialized {@link TreeView} that is not tied to any {@link ITree} instance.\n *\n * @remarks\n * Such a view can never experience collaboration or be persisted to to a Fluid Container.\n *\n * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.\n * @privateRemarks\n * TODO: Providing an API which generates a {@link ViewableTree} extended with export options from {@link ITreeAlpha} and maybe even branching APIs would likely be better that just exposing a {@link TreeViewAlpha}.\n * @alpha\n */\nexport function independentInitializedView<const TSchema extends ImplicitFieldSchema>(\n\tconfig: TreeViewConfiguration<TSchema>,\n\toptions: ForestOptions & ICodecOptions,\n\tcontent: ViewContent,\n): TreeViewAlpha<TSchema> {\n\treturn createIndependentTreeAlpha({ ...options, content }).viewWith(\n\t\tconfig,\n\t) as TreeViewAlpha<TSchema>;\n}\n\n/**\n * Create a {@link ViewableTree} that is not tied to any Fluid runtimes or services.\n *\n * @remarks\n * Such a tree can never experience collaboration or be persisted to to a Fluid Container.\n *\n * This can be useful for testing, as well as use-cases like working on local files instead of documents stored in some Fluid service.\n *\n * @example\n * ```typescript\n * const tree = createIndependentTreeBeta();\n *\n * const stagedConfig = new TreeViewConfiguration({\n * \tschema: SchemaFactoryAlpha.types([\n * \t\tSchemaFactory.number,\n * \t\tSchemaFactoryAlpha.staged(SchemaFactory.string),\n * \t]),\n * });\n * const afterConfig = new TreeViewConfigurationAlpha({\n * \tschema: [SchemaFactory.number, SchemaFactory.string],\n * });\n *\n * // Initialize tree\n * {\n * \tconst view = tree.viewWith(stagedConfig);\n * \tview.initialize(1);\n * \tview.dispose();\n * }\n *\n * // Do schema upgrade\n * {\n * \tconst view = tree.viewWith(afterConfig);\n * \tview.upgradeSchema();\n * \tview.root = \"A\";\n * \tview.dispose();\n * }\n *\n * // Can still view tree with staged schema\n * {\n * \tconst view = tree.viewWith(stagedConfig);\n * \tassert.equal(view.root, \"A\");\n * \tview.dispose();\n * }\n * ```\n * @privateRemarks\n * Before stabilizing this as public, consider if we can instead just expose a better way to create regular Fluid service based SharedTrees for tests.\n * Something like https://github.com/microsoft/FluidFramework/pull/25422 might be a better long term stable/public solution.\n * @beta\n */\nexport function createIndependentTreeBeta<const TSchema extends ImplicitFieldSchema>(\n\toptions?: ForestOptions,\n): ViewableTree {\n\treturn createIndependentTreeAlpha<TSchema>(options);\n}\n\n/**\n * Alpha extensions to {@link createIndependentTreeBeta}.\n *\n * @param options - Configuration options for the independent tree.\n * This can be used to create an uninitialized tree, or `content` can be provided to create an initialized tree.\n * If content is provided, the idCompressor is a required part of it: otherwise it is optional and provided at the top level.\n *\n * @privateRemarks\n * TODO: Support more of {@link ITreeAlpha}, including branching APIs to allow for merges.\n * TODO: Better unify this logic with SharedTreeKernel and SharedTreeCore.\n *\n * Before further stabilizing: consider better ways to handle initialized vs uninitialized trees.\n * Perhaps it would be better to not allow initialize here at all, but expose the ability to load compressed tree content and stored schema via ITree or TreeView?\n * If keeping the option here, maybe a separate function of overload would be better? Or maybe flatten ViewContent inline to deduplicate the idCompressor options?\n * @alpha\n */\nexport function createIndependentTreeAlpha<const TSchema extends ImplicitFieldSchema>(\n\toptions?: CreateIndependentTreeAlphaOptions,\n): ViewableTree & Pick<ITreeAlpha, \"exportVerbose\" | \"exportSimpleSchema\"> {\n\tconst breaker = new Breakable(\"independentView\");\n\tconst idCompressor: IIdCompressor =\n\t\toptions?.idCompressor ?? options?.content?.idCompressor ?? createIdCompressor();\n\tconst mintRevisionTag = (): RevisionTag => idCompressor.generateCompressedId();\n\tconst revisionTagCodec = new RevisionTagCodec(idCompressor);\n\n\t// To ensure the forest is in schema when constructed, start it with an empty schema and set the schema repository content later.\n\tconst schemaRepository = new TreeStoredSchemaRepository();\n\n\tconst forest = buildConfiguredForest(\n\t\tbreaker,\n\t\toptions?.forest ?? defaultSharedTreeOptions.forest,\n\t\tschemaRepository,\n\t\tidCompressor,\n\t\tdefaultIncrementalEncodingPolicy,\n\t);\n\n\tconst checkout = createTreeCheckout(idCompressor, mintRevisionTag, revisionTagCodec, {\n\t\tforest,\n\t\tschema: schemaRepository,\n\t\tbreaker,\n\t\tcodecOptions: options,\n\t});\n\n\tif (options?.content !== undefined) {\n\t\tconst schemaCodec = schemaCodecBuilder.buildDecoder(options);\n\t\tconst fieldBatchCodec = fieldBatchCodecBuilder.buildDecoder(options);\n\t\tconst newSchema = schemaCodec.decode(options.content.schema);\n\n\t\tconst context: FieldBatchEncodingContext = {\n\t\t\tencodeType: TreeCompressionStrategy.Compressed,\n\t\t\tidCompressor,\n\t\t\toriginatorId: idCompressor.localSessionId, // Is this right? If so, why is is needed?\n\t\t\tschema: { schema: newSchema, policy: defaultSchemaPolicy },\n\t\t};\n\t\tconst fieldCursors = fieldBatchCodec.decode(\n\t\t\toptions.content.tree as JsonCompatibleReadOnly,\n\t\t\tcontext,\n\t\t);\n\t\tassert(fieldCursors.length === 1, 0xa5b /* must have exactly 1 field in batch */);\n\n\t\tconst fieldCursor = oneFromIterable(fieldCursors);\n\t\tassert(fieldCursor !== undefined, 0xc94 /* expected exactly one field in batch */);\n\n\t\tinitialize(\n\t\t\tcheckout,\n\t\t\tnewSchema,\n\t\t\tinitializerFromChunk(checkout, () =>\n\t\t\t\tcombineChunks(checkout.forest.chunkField(fieldCursor)),\n\t\t\t),\n\t\t);\n\t}\n\n\treturn {\n\t\tviewWith<TRoot extends ImplicitFieldSchema>(\n\t\t\tconfig: TreeViewConfiguration<TRoot>,\n\t\t): TreeView<TRoot> {\n\t\t\tconst out: TreeViewAlpha<TSchema> = new SchematizingSimpleTreeView<TSchema>(\n\t\t\t\tcheckout,\n\t\t\t\tconfig as TreeViewConfiguration as TreeViewConfiguration<ReadSchema<TSchema>>,\n\t\t\t\tcreateNodeIdentifierManager(idCompressor),\n\t\t\t);\n\t\t\treturn out as unknown as TreeView<TRoot>;\n\t\t},\n\n\t\texportVerbose(): VerboseTree | undefined {\n\t\t\treturn checkout.exportVerbose();\n\t\t},\n\n\t\texportSimpleSchema(): SimpleTreeSchema {\n\t\t\treturn exportSimpleSchema(checkout.storedSchema);\n\t\t},\n\t};\n}\n\n/**\n * The portion of SharedTree data typically persisted by the container.\n * Usable with {@link independentInitializedView} to create a {@link TreeView}\n * without loading a container.\n * @alpha\n */\nexport interface ViewContent {\n\t/**\n\t * Compressed tree from {@link (TreeAlpha:interface).exportCompressed}.\n\t * @remarks\n\t * This is an owning reference:\n\t * consumers of this content might modify this data in place (for example when applying edits) to avoid copying.\n\t */\n\treadonly tree: JsonCompatible<IFluidHandle>;\n\t/**\n\t * Persisted schema from {@link extractPersistedSchema}.\n\t */\n\treadonly schema: JsonCompatible;\n\t/**\n\t * IIdCompressor which will be used to decompress any compressed identifiers in `tree`\n\t * as well as for any other identifiers added to the view.\n\t */\n\treadonly idCompressor: IIdCompressor;\n}\n"]}
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- export { type ITreePrivate, type SharedTreeOptionsInternal, type SharedTreeOptions, type SharedTreeOptionsBeta, SharedTreeKernel, getBranch, type ForestType, type SharedTreeContentSnapshot, type SharedTreeFormatOptions, buildConfiguredForest, defaultSharedTreeOptions, type ForestOptions, type ITreeInternal, ForestTypeOptimized, ForestTypeExpensiveDebug, ForestTypeReference, exportSimpleSchema, type SharedTreeKernelView, persistedToSimpleSchema, getCodecTreeForSharedTreeFormat, } from "./sharedTree.js";
6
- export { createTreeCheckout, TreeCheckout, type ITreeCheckout, type CheckoutEvents, type ITreeCheckoutFork, type BranchableTree, type TreeBranchFork, } from "./treeCheckout.js";
5
+ export { type ITreePrivate, type SharedTreeOptionsInternal, type SharedTreeOptions, type SharedTreeOptionsBeta, SharedTreeKernel, type ForestType, type SharedTreeContentSnapshot, type SharedTreeFormatOptions, buildConfiguredForest, defaultSharedTreeOptions, type ForestOptions, type ITreeInternal, ForestTypeOptimized, ForestTypeExpensiveDebug, ForestTypeReference, exportSimpleSchema, type SharedTreeKernelView, persistedToSimpleSchema, getCodecTreeForSharedTreeFormat, } from "./sharedTree.js";
6
+ export { createTreeCheckout, TreeCheckout, type ITreeCheckout, type CheckoutEvents, } from "./treeCheckout.js";
7
7
  export { SchematizingSimpleTreeView } from "./schematizingTreeView.js";
8
8
  export { initialize, initializerFromChunk } from "./schematizeTree.js";
9
9
  export type { ISharedTreeEditor, ISchemaEditor, SharedTreeEditBuilder, } from "./sharedTreeEditBuilder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared-tree/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,SAAS,EACT,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,+BAA+B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,kBAAkB,EAClB,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACN,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,0BAA0B,EAC1B,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,sBAAsB,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,iCAAiC,GACtC,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACN,2BAA2B,EAC3B,KAAK,6BAA6B,GAClC,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared-tree/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,+BAA+B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,kBAAkB,EAClB,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EACN,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,0BAA0B,EAC1B,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,sBAAsB,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,iCAAiC,GACtC,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACN,2BAA2B,EAC3B,KAAK,6BAA6B,GAClC,MAAM,6BAA6B,CAAC"}
@@ -4,10 +4,9 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.getCodecTreeForChangeFormat = exports.createIndependentTreeAlpha = exports.createIndependentTreeBeta = exports.independentView = exports.independentInitializedView = exports.TreeAlpha = exports.Tree = exports.initializerFromChunk = exports.initialize = exports.SchematizingSimpleTreeView = exports.TreeCheckout = exports.createTreeCheckout = exports.getCodecTreeForSharedTreeFormat = exports.persistedToSimpleSchema = exports.exportSimpleSchema = exports.ForestTypeReference = exports.ForestTypeExpensiveDebug = exports.ForestTypeOptimized = exports.defaultSharedTreeOptions = exports.buildConfiguredForest = exports.getBranch = exports.SharedTreeKernel = void 0;
7
+ exports.getCodecTreeForChangeFormat = exports.createIndependentTreeAlpha = exports.createIndependentTreeBeta = exports.independentView = exports.independentInitializedView = exports.TreeAlpha = exports.Tree = exports.initializerFromChunk = exports.initialize = exports.SchematizingSimpleTreeView = exports.TreeCheckout = exports.createTreeCheckout = exports.getCodecTreeForSharedTreeFormat = exports.persistedToSimpleSchema = exports.exportSimpleSchema = exports.ForestTypeReference = exports.ForestTypeExpensiveDebug = exports.ForestTypeOptimized = exports.defaultSharedTreeOptions = exports.buildConfiguredForest = exports.SharedTreeKernel = void 0;
8
8
  var sharedTree_js_1 = require("./sharedTree.js");
9
9
  Object.defineProperty(exports, "SharedTreeKernel", { enumerable: true, get: function () { return sharedTree_js_1.SharedTreeKernel; } });
10
- Object.defineProperty(exports, "getBranch", { enumerable: true, get: function () { return sharedTree_js_1.getBranch; } });
11
10
  Object.defineProperty(exports, "buildConfiguredForest", { enumerable: true, get: function () { return sharedTree_js_1.buildConfiguredForest; } });
12
11
  Object.defineProperty(exports, "defaultSharedTreeOptions", { enumerable: true, get: function () { return sharedTree_js_1.defaultSharedTreeOptions; } });
13
12
  Object.defineProperty(exports, "ForestTypeOptimized", { enumerable: true, get: function () { return sharedTree_js_1.ForestTypeOptimized; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared-tree/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAqByB;AAhBxB,iHAAA,gBAAgB,OAAA;AAChB,0GAAA,SAAS,OAAA;AAIT,sHAAA,qBAAqB,OAAA;AACrB,yHAAA,wBAAwB,OAAA;AAGxB,oHAAA,mBAAmB,OAAA;AACnB,yHAAA,wBAAwB,OAAA;AACxB,oHAAA,mBAAmB,OAAA;AACnB,mHAAA,kBAAkB,OAAA;AAElB,wHAAA,uBAAuB,OAAA;AACvB,gIAAA,+BAA+B,OAAA;AAGhC,qDAQ2B;AAP1B,qHAAA,kBAAkB,OAAA;AAClB,+GAAA,YAAY,OAAA;AAQb,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AAEnC,yDAAuE;AAA9D,+GAAA,UAAU,OAAA;AAAE,yHAAA,oBAAoB,OAAA;AAQzC,qCAAiC;AAAxB,+FAAA,IAAI,OAAA;AAGb,+CAIwB;AAHvB,yGAAA,SAAS,OAAA;AAKV,2DAQ8B;AAP7B,gIAAA,0BAA0B,OAAA;AAE1B,qHAAA,eAAe,OAAA;AAEf,+HAAA,yBAAyB,OAAA;AACzB,gIAAA,0BAA0B,OAAA;AAM3B,yEAGqC;AAFpC,wIAAA,2BAA2B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n\ttype ITreePrivate,\n\ttype SharedTreeOptionsInternal,\n\ttype SharedTreeOptions,\n\ttype SharedTreeOptionsBeta,\n\tSharedTreeKernel,\n\tgetBranch,\n\ttype ForestType,\n\ttype SharedTreeContentSnapshot,\n\ttype SharedTreeFormatOptions,\n\tbuildConfiguredForest,\n\tdefaultSharedTreeOptions,\n\ttype ForestOptions,\n\ttype ITreeInternal,\n\tForestTypeOptimized,\n\tForestTypeExpensiveDebug,\n\tForestTypeReference,\n\texportSimpleSchema,\n\ttype SharedTreeKernelView,\n\tpersistedToSimpleSchema,\n\tgetCodecTreeForSharedTreeFormat,\n} from \"./sharedTree.js\";\n\nexport {\n\tcreateTreeCheckout,\n\tTreeCheckout,\n\ttype ITreeCheckout,\n\ttype CheckoutEvents,\n\ttype ITreeCheckoutFork,\n\ttype BranchableTree,\n\ttype TreeBranchFork,\n} from \"./treeCheckout.js\";\n\nexport { SchematizingSimpleTreeView } from \"./schematizingTreeView.js\";\n\nexport { initialize, initializerFromChunk } from \"./schematizeTree.js\";\n\nexport type {\n\tISharedTreeEditor,\n\tISchemaEditor,\n\tSharedTreeEditBuilder,\n} from \"./sharedTreeEditBuilder.js\";\n\nexport { Tree } from \"./tree.js\";\nexport type { RunTransaction } from \"./tree.js\";\n\nexport {\n\tTreeAlpha,\n\ttype TreeIdentifierUtils,\n\ttype ObservationResults,\n} from \"./treeAlpha.js\";\n\nexport {\n\tindependentInitializedView,\n\ttype ViewContent,\n\tindependentView,\n\ttype IndependentViewOptions,\n\tcreateIndependentTreeBeta,\n\tcreateIndependentTreeAlpha,\n\ttype CreateIndependentTreeAlphaOptions,\n} from \"./independentView.js\";\n\nexport type { SharedTreeChange } from \"./sharedTreeChangeTypes.js\";\n\nexport {\n\tgetCodecTreeForChangeFormat,\n\ttype SharedTreeChangeFormatVersion,\n} from \"./sharedTreeChangeCodecs.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared-tree/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAoByB;AAfxB,iHAAA,gBAAgB,OAAA;AAIhB,sHAAA,qBAAqB,OAAA;AACrB,yHAAA,wBAAwB,OAAA;AAGxB,oHAAA,mBAAmB,OAAA;AACnB,yHAAA,wBAAwB,OAAA;AACxB,oHAAA,mBAAmB,OAAA;AACnB,mHAAA,kBAAkB,OAAA;AAElB,wHAAA,uBAAuB,OAAA;AACvB,gIAAA,+BAA+B,OAAA;AAGhC,qDAK2B;AAJ1B,qHAAA,kBAAkB,OAAA;AAClB,+GAAA,YAAY,OAAA;AAKb,qEAAuE;AAA9D,qIAAA,0BAA0B,OAAA;AAEnC,yDAAuE;AAA9D,+GAAA,UAAU,OAAA;AAAE,yHAAA,oBAAoB,OAAA;AAQzC,qCAAiC;AAAxB,+FAAA,IAAI,OAAA;AAGb,+CAIwB;AAHvB,yGAAA,SAAS,OAAA;AAKV,2DAQ8B;AAP7B,gIAAA,0BAA0B,OAAA;AAE1B,qHAAA,eAAe,OAAA;AAEf,+HAAA,yBAAyB,OAAA;AACzB,gIAAA,0BAA0B,OAAA;AAM3B,yEAGqC;AAFpC,wIAAA,2BAA2B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n\ttype ITreePrivate,\n\ttype SharedTreeOptionsInternal,\n\ttype SharedTreeOptions,\n\ttype SharedTreeOptionsBeta,\n\tSharedTreeKernel,\n\ttype ForestType,\n\ttype SharedTreeContentSnapshot,\n\ttype SharedTreeFormatOptions,\n\tbuildConfiguredForest,\n\tdefaultSharedTreeOptions,\n\ttype ForestOptions,\n\ttype ITreeInternal,\n\tForestTypeOptimized,\n\tForestTypeExpensiveDebug,\n\tForestTypeReference,\n\texportSimpleSchema,\n\ttype SharedTreeKernelView,\n\tpersistedToSimpleSchema,\n\tgetCodecTreeForSharedTreeFormat,\n} from \"./sharedTree.js\";\n\nexport {\n\tcreateTreeCheckout,\n\tTreeCheckout,\n\ttype ITreeCheckout,\n\ttype CheckoutEvents,\n} from \"./treeCheckout.js\";\n\nexport { SchematizingSimpleTreeView } from \"./schematizingTreeView.js\";\n\nexport { initialize, initializerFromChunk } from \"./schematizeTree.js\";\n\nexport type {\n\tISharedTreeEditor,\n\tISchemaEditor,\n\tSharedTreeEditBuilder,\n} from \"./sharedTreeEditBuilder.js\";\n\nexport { Tree } from \"./tree.js\";\nexport type { RunTransaction } from \"./tree.js\";\n\nexport {\n\tTreeAlpha,\n\ttype TreeIdentifierUtils,\n\ttype ObservationResults,\n} from \"./treeAlpha.js\";\n\nexport {\n\tindependentInitializedView,\n\ttype ViewContent,\n\tindependentView,\n\ttype IndependentViewOptions,\n\tcreateIndependentTreeBeta,\n\tcreateIndependentTreeAlpha,\n\ttype CreateIndependentTreeAlphaOptions,\n} from \"./independentView.js\";\n\nexport type { SharedTreeChange } from \"./sharedTreeChangeTypes.js\";\n\nexport {\n\tgetCodecTreeForChangeFormat,\n\ttype SharedTreeChangeFormatVersion,\n} from \"./sharedTreeChangeCodecs.js\";\n"]}
@@ -4,9 +4,9 @@
4
4
  */
5
5
  import type { HasListeners, IEmitter, Listenable } from "@fluidframework/core-interfaces/internal";
6
6
  import { type NodeIdentifierManager, Context } from "../feature-libraries/index.js";
7
- import { type ImplicitFieldSchema, type SchemaCompatibilityStatus, type TreeView, type TreeViewEvents, type TreeViewConfiguration, type TreeViewAlpha, type InsertableField, type ReadableField, type ReadSchema, type UnsafeUnknownSchema, type TreeBranch, type TreeBranchEvents, type VoidTransactionCallbackStatus, type TransactionCallbackStatus, type TransactionResult, type TransactionResultExt, type RunTransactionParams, type TransactionConstraintAlpha, type TreeBranchAlpha } from "../simple-tree/index.js";
7
+ import { type ImplicitFieldSchema, type SchemaCompatibilityStatus, type TreeView, type TreeViewEvents, type TreeViewConfiguration, type TreeViewAlpha, type InsertableField, type ReadableField, type ReadSchema, type UnsafeUnknownSchema, type TreeBranchEvents, type VoidTransactionCallbackStatus, type TransactionCallbackStatus, type TransactionResult, type TransactionResultExt, type RunTransactionParams, type TreeBranchAlpha } from "../simple-tree/index.js";
8
8
  import { type Breakable, type JsonCompatibleReadOnly, type WithBreakable } from "../util/index.js";
9
- import type { ITreeCheckout, TreeCheckout } from "./treeCheckout.js";
9
+ import type { TreeCheckout } from "./treeCheckout.js";
10
10
  /**
11
11
  * Creating multiple tree views from the same checkout is not supported. This slot is used to detect if one already
12
12
  * exists and error if creating a second.
@@ -65,24 +65,10 @@ export declare class SchematizingSimpleTreeView<in out TRootSchema extends Impli
65
65
  * Gets the flex-tree context. Throws when disposed or out of schema.
66
66
  */
67
67
  getFlexTreeContext(): Context;
68
- /**
69
- * {@inheritDoc @fluidframework/shared-tree#TreeViewAlpha.runTransaction}
70
- */
71
68
  runTransaction<TSuccessValue, TFailureValue>(transaction: () => TransactionCallbackStatus<TSuccessValue, TFailureValue>, params?: RunTransactionParams): TransactionResultExt<TSuccessValue, TFailureValue>;
72
- /**
73
- * {@inheritDoc @fluidframework/shared-tree#TreeViewAlpha.runTransaction}
74
- */
75
69
  runTransaction(transaction: () => VoidTransactionCallbackStatus | void, params?: RunTransactionParams): TransactionResult;
76
- /**
77
- * {@inheritDoc @fluidframework/shared-tree#TreeViewAlpha.runTransactionAsync}
78
- */
79
70
  runTransactionAsync<TSuccessValue, TFailureValue>(transaction: () => Promise<TransactionCallbackStatus<TSuccessValue, TFailureValue>>, params?: RunTransactionParams): Promise<TransactionResultExt<TSuccessValue, TFailureValue>>;
80
- /**
81
- * {@inheritDoc @fluidframework/shared-tree#TreeViewAlpha.runTransactionAsync}
82
- */
83
71
  runTransactionAsync(transaction: () => Promise<VoidTransactionCallbackStatus | void>, params?: RunTransactionParams): Promise<TransactionResult>;
84
- private mountTransaction;
85
- private unmountTransaction;
86
72
  private ensureUndisposed;
87
73
  private failDisposed;
88
74
  /**
@@ -108,24 +94,4 @@ export declare class SchematizingSimpleTreeView<in out TRootSchema extends Impli
108
94
  merge(context: TreeBranchAlpha, disposeMerged?: boolean): void;
109
95
  rebaseOnto(context: TreeBranchAlpha): void;
110
96
  }
111
- /**
112
- * Get the {@link TreeCheckout} associated with a given {@link TreeBranch}.
113
- * @remarks Currently, all contexts are also {@link SchematizingSimpleTreeView}s.
114
- * Other checkout implementations (e.g. not associated with a view) may be supported in the future.
115
- */
116
- export declare function getCheckout(context: TreeBranch): TreeCheckout;
117
- /**
118
- * Adds constraints to a `checkout`'s pending transaction.
119
- *
120
- * @param checkout - The checkout's who's transaction will have the constraints added to it.
121
- * @param constraintsOnRevert - If true, use {@link ISharedTreeEditor.addNodeExistsConstraintOnRevert}.
122
- * @param constraints - The constraints to add to the transaction.
123
- *
124
- * @see {@link RunTransactionParams.preconditions}.
125
- */
126
- export declare function addConstraintsToTransaction(checkout: ITreeCheckout, constraintsOnRevert: boolean, constraints?: readonly TransactionConstraintAlpha[]): void;
127
- /**
128
- * Throws if the given {@link TransactionConstraintAlpha | transaction constraint} is not currently satisfied.
129
- */
130
- export declare function assertValidConstraint(constraint: TransactionConstraintAlpha, onRevert: boolean): void;
131
97
  //# sourceMappingURL=schematizingTreeView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schematizingTreeView.d.ts","sourceRoot":"","sources":["../../src/shared-tree/schematizingTreeView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schematizingTreeView.d.ts","sourceRoot":"","sources":["../../src/shared-tree/schematizingTreeView.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ var __setFunctionName = (this && this.__setFunctionName) || function (f, name, p
42
42
  return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
43
43
  };
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.assertValidConstraint = exports.addConstraintsToTransaction = exports.getCheckout = exports.SchematizingSimpleTreeView = exports.ViewSlot = void 0;
45
+ exports.SchematizingSimpleTreeView = exports.ViewSlot = void 0;
46
46
  const client_utils_1 = require("@fluid-internal/client-utils");
47
47
  const internal_1 = require("@fluidframework/core-utils/internal");
48
48
  const internal_2 = require("@fluidframework/telemetry-utils/internal");
@@ -181,47 +181,21 @@ let SchematizingSimpleTreeView = (() => {
181
181
  return this.flexTreeContext;
182
182
  }
183
183
  runTransaction(transaction, params) {
184
- this.mountTransaction(params, false);
185
- const transactionCallbackStatus = transaction();
186
- return this.unmountTransaction(transactionCallbackStatus, params);
187
- }
188
- async runTransactionAsync(transaction, params) {
189
- this.mountTransaction(params, true);
190
- const transactionCallbackStatus = await transaction();
191
- return this.unmountTransaction(transactionCallbackStatus, params);
192
- }
193
- mountTransaction(params, isAsync) {
194
184
  this.ensureUndisposed();
195
- const { checkout } = this;
196
- if (isAsync && checkout.transaction.size > 0) {
197
- throw new internal_2.UsageError("An asynchronous transaction cannot be started while another transaction is already in progress.");
198
- }
199
- checkout.pushLabelFrame(params?.label);
200
- checkout.transaction.start();
201
- // Validate preconditions before running the transaction callback.
202
- addConstraintsToTransaction(checkout, false /* constraintsOnRevert */, params?.preconditions);
185
+ return this.checkout.runTransaction(transaction, params);
203
186
  }
204
- unmountTransaction(transactionCallbackStatus, params) {
187
+ async runTransactionAsync(transaction, params) {
205
188
  this.ensureUndisposed();
206
- const { checkout } = this;
207
- const rollback = transactionCallbackStatus?.rollback;
208
- const value = transactionCallbackStatus?.value;
209
- if (rollback === true) {
210
- checkout.popLabelFrame(true);
211
- checkout.transaction.abort();
212
- return value === undefined
213
- ? { success: false }
214
- : { success: false, value: value };
189
+ if (this.checkout.transaction.size > 0) {
190
+ // breaker.break() sets brokenBy synchronously before throwing.
191
+ // A plain `throw` inside an async function would be captured as a rejected Promise
192
+ // before @breakingClass could set brokenBy. By setting it here first, the
193
+ // subsequent call to unmountTransaction (also @breakingClass-wrapped) will see the
194
+ // broken state and throw synchronously, propagating out of the outer runTransaction
195
+ // to its caller.
196
+ this.breaker.break(new internal_2.UsageError("An asynchronous transaction cannot be started while another transaction is already in progress."));
215
197
  }
216
- // Validate preconditions on revert after running the transaction callback and was successful.
217
- addConstraintsToTransaction(checkout, true /* constraintsOnRevert */, transactionCallbackStatus?.preconditionsOnRevert);
218
- checkout.popLabelFrame(false);
219
- checkout.runWithTransactionLabel(() => {
220
- checkout.transaction.commit();
221
- }, params?.label);
222
- return value === undefined
223
- ? { success: true }
224
- : { success: true, value: value };
198
+ return this.checkout.runTransactionAsync(transaction, params);
225
199
  }
226
200
  ensureUndisposed() {
227
201
  if (this.disposed) {
@@ -362,13 +336,13 @@ let SchematizingSimpleTreeView = (() => {
362
336
  }
363
337
  // #region Branching
364
338
  fork() {
365
- return this.checkout.branch().viewWith(this.config);
339
+ return this.checkout.fork().viewWith(this.config);
366
340
  }
367
341
  merge(context, disposeMerged = true) {
368
- this.checkout.merge(getCheckout(context), disposeMerged);
342
+ this.checkout.merge(context, disposeMerged);
369
343
  }
370
344
  rebaseOnto(context) {
371
- getCheckout(context).rebase(this.checkout);
345
+ this.checkout.rebaseOnto(context);
372
346
  }
373
347
  };
374
348
  __setFunctionName(_classThis, "SchematizingSimpleTreeView");
@@ -382,80 +356,4 @@ let SchematizingSimpleTreeView = (() => {
382
356
  return SchematizingSimpleTreeView = _classThis;
383
357
  })();
384
358
  exports.SchematizingSimpleTreeView = SchematizingSimpleTreeView;
385
- /**
386
- * Get the {@link TreeCheckout} associated with a given {@link TreeBranch}.
387
- * @remarks Currently, all contexts are also {@link SchematizingSimpleTreeView}s.
388
- * Other checkout implementations (e.g. not associated with a view) may be supported in the future.
389
- */
390
- function getCheckout(context) {
391
- if (context instanceof SchematizingSimpleTreeView) {
392
- return context.checkout;
393
- }
394
- throw new internal_2.UsageError("Unsupported context implementation");
395
- }
396
- exports.getCheckout = getCheckout;
397
- /**
398
- * Adds constraints to a `checkout`'s pending transaction.
399
- *
400
- * @param checkout - The checkout's who's transaction will have the constraints added to it.
401
- * @param constraintsOnRevert - If true, use {@link ISharedTreeEditor.addNodeExistsConstraintOnRevert}.
402
- * @param constraints - The constraints to add to the transaction.
403
- *
404
- * @see {@link RunTransactionParams.preconditions}.
405
- */
406
- function addConstraintsToTransaction(checkout, constraintsOnRevert, constraints = []) {
407
- for (const constraint of constraints) {
408
- assertValidConstraint(constraint, constraintsOnRevert);
409
- const constraintType = constraint.type;
410
- switch (constraintType) {
411
- case "nodeInDocument": {
412
- const node = (0, index_js_3.getInnerNode)(constraint.node);
413
- (0, internal_1.assert)(node.isHydrated(), 0xbc2 /* In document node must be hydrated. */);
414
- if (constraintsOnRevert) {
415
- checkout.editor.addNodeExistsConstraintOnRevert(node.anchorNode);
416
- }
417
- else {
418
- checkout.editor.addNodeExistsConstraint(node.anchorNode);
419
- }
420
- break;
421
- }
422
- case "noChange": {
423
- if (constraintsOnRevert) {
424
- checkout.editor.addNoChangeConstraintOnRevert();
425
- }
426
- else {
427
- checkout.editor.addNoChangeConstraint();
428
- }
429
- break;
430
- }
431
- default: {
432
- (0, internal_1.unreachableCase)(constraintType);
433
- }
434
- }
435
- }
436
- }
437
- exports.addConstraintsToTransaction = addConstraintsToTransaction;
438
- /**
439
- * Throws if the given {@link TransactionConstraintAlpha | transaction constraint} is not currently satisfied.
440
- */
441
- function assertValidConstraint(constraint, onRevert) {
442
- switch (constraint.type) {
443
- case "nodeInDocument": {
444
- const nodeStatus = (0, index_js_3.getKernel)(constraint.node).getStatus();
445
- if (nodeStatus !== index_js_2.TreeStatus.InDocument) {
446
- const revertText = onRevert ? " on revert" : "";
447
- throw new internal_2.UsageError(`Attempted to add a "nodeInDocument" constraint${revertText}, but the node is not currently in the document. Node status: ${nodeStatus}`);
448
- }
449
- break;
450
- }
451
- case "noChange": {
452
- // This constraint is always satisfied at the time of checking, since it just requires that no changes have been made since the transaction callback returned.
453
- break;
454
- }
455
- default: {
456
- (0, internal_1.unreachableCase)(constraint);
457
- }
458
- }
459
- }
460
- exports.assertValidConstraint = assertValidConstraint;
461
359
  //# sourceMappingURL=schematizingTreeView.js.map