@fluidframework/tree 2.0.0-dev-rc.3.0.0.254866 → 2.0.0-dev-rc.5.0.0.263932

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 (978) hide show
  1. package/.eslintrc.cjs +35 -2
  2. package/.vscode/settings.json +3 -0
  3. package/CHANGELOG.md +91 -0
  4. package/README.md +17 -5
  5. package/api-report/tree.api.md +85 -78
  6. package/beta.d.ts +11 -0
  7. package/dist/beta.d.ts +8 -1
  8. package/dist/codec/codec.d.ts.map +1 -1
  9. package/dist/codec/codec.js.map +1 -1
  10. package/dist/core/change-family/changeFamily.d.ts +2 -1
  11. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  12. package/dist/core/change-family/changeFamily.js.map +1 -1
  13. package/dist/core/index.d.ts +2 -2
  14. package/dist/core/index.d.ts.map +1 -1
  15. package/dist/core/index.js +3 -1
  16. package/dist/core/index.js.map +1 -1
  17. package/dist/core/rebase/changeRebaser.d.ts +2 -1
  18. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  19. package/dist/core/rebase/changeRebaser.js.map +1 -1
  20. package/dist/core/rebase/index.d.ts +1 -1
  21. package/dist/core/rebase/index.d.ts.map +1 -1
  22. package/dist/core/rebase/index.js +2 -1
  23. package/dist/core/rebase/index.js.map +1 -1
  24. package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
  25. package/dist/core/rebase/revisionTagCodec.js.map +1 -1
  26. package/dist/core/rebase/types.d.ts +1 -0
  27. package/dist/core/rebase/types.d.ts.map +1 -1
  28. package/dist/core/rebase/types.js +12 -1
  29. package/dist/core/rebase/types.js.map +1 -1
  30. package/dist/core/rebase/utils.d.ts +2 -2
  31. package/dist/core/rebase/utils.d.ts.map +1 -1
  32. package/dist/core/rebase/utils.js +16 -9
  33. package/dist/core/rebase/utils.js.map +1 -1
  34. package/dist/core/rebase/verifyChangeRebaser.js +1 -1
  35. package/dist/core/rebase/verifyChangeRebaser.js.map +1 -1
  36. package/dist/core/schema-stored/index.d.ts +1 -1
  37. package/dist/core/schema-stored/index.d.ts.map +1 -1
  38. package/dist/core/schema-stored/index.js +2 -1
  39. package/dist/core/schema-stored/index.js.map +1 -1
  40. package/dist/core/schema-stored/schema.d.ts +7 -7
  41. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  42. package/dist/core/schema-stored/schema.js +14 -7
  43. package/dist/core/schema-stored/schema.js.map +1 -1
  44. package/dist/core/tree/anchorSet.js.map +1 -1
  45. package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  46. package/dist/core/tree/detachedFieldIndexCodec.js +1 -0
  47. package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
  48. package/dist/core/tree/persistedTreeTextFormat.d.ts +4 -4
  49. package/dist/core/tree/treeTextFormat.d.ts +2 -0
  50. package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
  51. package/dist/core/tree/treeTextFormat.js.map +1 -1
  52. package/dist/core/tree/visitDelta.js +3 -3
  53. package/dist/core/tree/visitDelta.js.map +1 -1
  54. package/dist/domains/index.d.ts +0 -1
  55. package/dist/domains/index.d.ts.map +1 -1
  56. package/dist/domains/index.js +1 -5
  57. package/dist/domains/index.js.map +1 -1
  58. package/dist/domains/json/jsonCursor.d.ts.map +1 -1
  59. package/dist/domains/json/jsonCursor.js +2 -1
  60. package/dist/domains/json/jsonCursor.js.map +1 -1
  61. package/dist/feature-libraries/changeAtomIdCodec.js +2 -2
  62. package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
  63. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  64. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  65. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  66. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  67. package/dist/feature-libraries/chunked-forest/codec/codecs.js +1 -1
  68. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  69. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +1 -1
  70. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  71. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  72. package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  73. package/dist/feature-libraries/contextuallyTyped.js +1 -1
  74. package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
  75. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +1 -1
  76. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  77. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +2 -2
  78. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  79. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +0 -6
  80. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  81. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +19 -8
  82. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  83. package/dist/feature-libraries/default-schema/index.d.ts +1 -1
  84. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  85. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  86. package/dist/feature-libraries/default-schema/noChangeCodecs.js +1 -1
  87. package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
  88. package/dist/feature-libraries/default-schema/schemaChecker.d.ts +27 -0
  89. package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -0
  90. package/dist/feature-libraries/default-schema/schemaChecker.js +120 -0
  91. package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -0
  92. package/dist/feature-libraries/deltaUtils.d.ts +2 -2
  93. package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
  94. package/dist/feature-libraries/deltaUtils.js +2 -2
  95. package/dist/feature-libraries/deltaUtils.js.map +1 -1
  96. package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  97. package/dist/feature-libraries/editableTreeBinder.js +1 -1
  98. package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
  99. package/dist/feature-libraries/flex-tree/context.d.ts +12 -19
  100. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  101. package/dist/feature-libraries/flex-tree/context.js +15 -29
  102. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  103. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +8 -13
  104. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  105. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +0 -1
  106. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  107. package/dist/feature-libraries/flex-tree/index.d.ts +0 -1
  108. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  109. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  110. package/dist/feature-libraries/flex-tree/lazyField.d.ts +3 -10
  111. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  112. package/dist/feature-libraries/flex-tree/lazyField.js +10 -40
  113. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  114. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +2 -6
  115. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  116. package/dist/feature-libraries/flex-tree/lazyNode.js +9 -32
  117. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  118. package/dist/feature-libraries/flex-tree/utilities.d.ts +2 -2
  119. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  120. package/dist/feature-libraries/flex-tree/utilities.js +5 -5
  121. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  122. package/dist/feature-libraries/index.d.ts +5 -5
  123. package/dist/feature-libraries/index.d.ts.map +1 -1
  124. package/dist/feature-libraries/index.js +4 -5
  125. package/dist/feature-libraries/index.js.map +1 -1
  126. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  127. package/dist/feature-libraries/mitigatedChangeFamily.js +1 -0
  128. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  129. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -10
  130. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  131. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js +4 -3
  132. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  133. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  134. package/dist/feature-libraries/modular-schema/genericFieldKind.js +16 -9
  135. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  136. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
  137. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  138. package/dist/feature-libraries/modular-schema/index.d.ts +1 -1
  139. package/dist/feature-libraries/modular-schema/index.d.ts.map +1 -1
  140. package/dist/feature-libraries/modular-schema/index.js +2 -1
  141. package/dist/feature-libraries/modular-schema/index.js.map +1 -1
  142. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +25 -10
  143. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  144. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
  145. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  146. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +149 -121
  147. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  148. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +0 -8
  149. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  150. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +0 -10
  151. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  152. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +1 -9
  153. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  154. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  155. package/dist/feature-libraries/node-key/index.d.ts +1 -1
  156. package/dist/feature-libraries/node-key/index.d.ts.map +1 -1
  157. package/dist/feature-libraries/node-key/index.js +1 -2
  158. package/dist/feature-libraries/node-key/index.js.map +1 -1
  159. package/dist/feature-libraries/node-key/nodeKey.d.ts +0 -8
  160. package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  161. package/dist/feature-libraries/node-key/nodeKey.js +1 -9
  162. package/dist/feature-libraries/node-key/nodeKey.js.map +1 -1
  163. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +20 -2
  164. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  165. package/dist/feature-libraries/node-key/nodeKeyManager.js +27 -5
  166. package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  167. package/dist/feature-libraries/optional-field/optionalField.d.ts +2 -2
  168. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  169. package/dist/feature-libraries/optional-field/optionalField.js +85 -63
  170. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  171. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +5 -13
  172. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  173. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +12 -19
  174. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  175. package/dist/feature-libraries/optional-field/{optionalFieldChangeFormatV0.d.ts → optionalFieldChangeFormatV2.d.ts} +14 -6
  176. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
  177. package/dist/feature-libraries/optional-field/{optionalFieldChangeFormatV0.js → optionalFieldChangeFormatV2.js} +20 -13
  178. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
  179. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
  180. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js +97 -26
  181. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
  182. package/{lib/feature-libraries/optional-field/optionalFieldCodecV0.d.ts → dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts} +2 -2
  183. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
  184. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js +87 -0
  185. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
  186. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js +2 -2
  187. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  188. package/dist/feature-libraries/schema-aware/schemaAware.d.ts +1 -1
  189. package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  190. package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  191. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -2
  192. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  193. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  194. package/dist/feature-libraries/schema-index/codec.js +1 -1
  195. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  196. package/dist/feature-libraries/sequence-field/compose.d.ts +3 -4
  197. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  198. package/dist/feature-libraries/sequence-field/compose.js +99 -68
  199. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  200. package/dist/feature-libraries/sequence-field/format.d.ts +40 -40
  201. package/dist/feature-libraries/sequence-field/invert.d.ts +2 -2
  202. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  203. package/dist/feature-libraries/sequence-field/invert.js +20 -20
  204. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  205. package/dist/feature-libraries/sequence-field/markQueue.d.ts +1 -3
  206. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  207. package/dist/feature-libraries/sequence-field/markQueue.js +2 -3
  208. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  209. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +13 -2
  210. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  211. package/dist/feature-libraries/sequence-field/moveEffectTable.js +18 -9
  212. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  213. package/dist/feature-libraries/sequence-field/rebase.d.ts +1 -2
  214. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  215. package/dist/feature-libraries/sequence-field/rebase.js +55 -62
  216. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  217. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
  218. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  219. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
  220. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  221. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +8 -0
  222. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -0
  223. package/dist/feature-libraries/sequence-field/replaceRevisions.js +63 -0
  224. package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -0
  225. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -0
  226. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  227. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +2 -0
  228. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  229. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js +24 -29
  230. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  231. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -2
  232. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  233. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js +7 -7
  234. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  235. package/dist/feature-libraries/sequence-field/utils.d.ts +16 -9
  236. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  237. package/dist/feature-libraries/sequence-field/utils.js +50 -32
  238. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  239. package/dist/feature-libraries/valueUtilities.d.ts +1 -2
  240. package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
  241. package/dist/feature-libraries/valueUtilities.js +7 -25
  242. package/dist/feature-libraries/valueUtilities.js.map +1 -1
  243. package/dist/index.d.ts +5 -5
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +3 -5
  246. package/dist/index.js.map +1 -1
  247. package/dist/packageVersion.d.ts +1 -1
  248. package/dist/packageVersion.js +1 -1
  249. package/dist/packageVersion.js.map +1 -1
  250. package/dist/public.d.ts +8 -1
  251. package/dist/shared-tree/defaultCommitEnricher.d.ts +91 -0
  252. package/dist/shared-tree/defaultCommitEnricher.d.ts.map +1 -0
  253. package/dist/shared-tree/defaultCommitEnricher.js +121 -0
  254. package/dist/shared-tree/defaultCommitEnricher.js.map +1 -0
  255. package/dist/shared-tree/index.d.ts +1 -1
  256. package/dist/shared-tree/index.d.ts.map +1 -1
  257. package/dist/shared-tree/index.js +2 -1
  258. package/dist/shared-tree/index.js.map +1 -1
  259. package/dist/shared-tree/schematizingTreeView.d.ts +2 -4
  260. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  261. package/dist/shared-tree/schematizingTreeView.js +7 -8
  262. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  263. package/dist/shared-tree/sharedTree.d.ts +11 -5
  264. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  265. package/dist/shared-tree/sharedTree.js +21 -11
  266. package/dist/shared-tree/sharedTree.js.map +1 -1
  267. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  268. package/dist/shared-tree/sharedTreeChangeCodecs.js +7 -2
  269. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  270. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +24 -0
  271. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -0
  272. package/dist/shared-tree/sharedTreeChangeEnricher.js +65 -0
  273. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -0
  274. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +12 -3
  275. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  276. package/dist/shared-tree/sharedTreeChangeFamily.js +83 -7
  277. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  278. package/dist/shared-tree/treeApi.d.ts +261 -8
  279. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  280. package/dist/shared-tree/treeApi.js +52 -18
  281. package/dist/shared-tree/treeApi.js.map +1 -1
  282. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  283. package/dist/shared-tree/treeCheckout.js +9 -11
  284. package/dist/shared-tree/treeCheckout.js.map +1 -1
  285. package/dist/shared-tree/treeView.d.ts +2 -4
  286. package/dist/shared-tree/treeView.d.ts.map +1 -1
  287. package/dist/shared-tree/treeView.js +3 -4
  288. package/dist/shared-tree/treeView.js.map +1 -1
  289. package/dist/shared-tree-core/branch.d.ts +22 -2
  290. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  291. package/dist/shared-tree-core/branch.js +18 -12
  292. package/dist/shared-tree-core/branch.js.map +1 -1
  293. package/dist/shared-tree-core/commitEnricher.d.ts +35 -0
  294. package/dist/shared-tree-core/commitEnricher.d.ts.map +1 -0
  295. package/{lib/domains/nodeKey/index.d.ts → dist/shared-tree-core/commitEnricher.js} +3 -2
  296. package/dist/shared-tree-core/commitEnricher.js.map +1 -0
  297. package/dist/shared-tree-core/editManager.d.ts +8 -5
  298. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  299. package/dist/shared-tree-core/editManager.js +11 -3
  300. package/dist/shared-tree-core/editManager.js.map +1 -1
  301. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  302. package/dist/shared-tree-core/editManagerCodecs.js +28 -10
  303. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  304. package/dist/shared-tree-core/editManagerFormat.d.ts +8 -10
  305. package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  306. package/dist/shared-tree-core/editManagerFormat.js +2 -3
  307. package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
  308. package/dist/shared-tree-core/index.d.ts +1 -0
  309. package/dist/shared-tree-core/index.d.ts.map +1 -1
  310. package/dist/shared-tree-core/index.js.map +1 -1
  311. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  312. package/dist/shared-tree-core/messageCodecs.js +16 -7
  313. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  314. package/dist/shared-tree-core/sharedTreeCore.d.ts +12 -5
  315. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  316. package/dist/shared-tree-core/sharedTreeCore.js +50 -15
  317. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  318. package/dist/simple-tree/arrayNode.d.ts +20 -6
  319. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  320. package/dist/simple-tree/arrayNode.js +252 -234
  321. package/dist/simple-tree/arrayNode.js.map +1 -1
  322. package/dist/simple-tree/index.d.ts +3 -3
  323. package/dist/simple-tree/index.d.ts.map +1 -1
  324. package/dist/simple-tree/index.js +2 -2
  325. package/dist/simple-tree/index.js.map +1 -1
  326. package/dist/simple-tree/leafNodeSchema.d.ts +1 -1
  327. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  328. package/dist/simple-tree/leafNodeSchema.js +1 -1
  329. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  330. package/dist/simple-tree/mapNode.d.ts +3 -11
  331. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  332. package/dist/simple-tree/mapNode.js +84 -133
  333. package/dist/simple-tree/mapNode.js.map +1 -1
  334. package/{lib/feature-libraries/flex-tree → dist/simple-tree}/nodeKeys.d.ts +10 -11
  335. package/dist/simple-tree/nodeKeys.d.ts.map +1 -0
  336. package/{lib/domains/nodeKey/index.js → dist/simple-tree/nodeKeys.js} +3 -2
  337. package/dist/simple-tree/nodeKeys.js.map +1 -0
  338. package/dist/simple-tree/objectNode.d.ts +18 -8
  339. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  340. package/dist/simple-tree/objectNode.js +108 -82
  341. package/dist/simple-tree/objectNode.js.map +1 -1
  342. package/dist/simple-tree/proxies.d.ts +1 -1
  343. package/dist/simple-tree/proxies.d.ts.map +1 -1
  344. package/dist/simple-tree/proxies.js +7 -6
  345. package/dist/simple-tree/proxies.js.map +1 -1
  346. package/dist/simple-tree/proxyBinding.d.ts +2 -2
  347. package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
  348. package/dist/simple-tree/proxyBinding.js +5 -5
  349. package/dist/simple-tree/proxyBinding.js.map +1 -1
  350. package/dist/simple-tree/schemaCaching.js +2 -2
  351. package/dist/simple-tree/schemaCaching.js.map +1 -1
  352. package/dist/simple-tree/schemaFactory.d.ts +21 -18
  353. package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
  354. package/dist/simple-tree/schemaFactory.js +41 -55
  355. package/dist/simple-tree/schemaFactory.js.map +1 -1
  356. package/dist/simple-tree/schemaFactoryRecursive.d.ts +2 -2
  357. package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  358. package/dist/simple-tree/schemaFactoryRecursive.js +2 -2
  359. package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
  360. package/dist/simple-tree/schemaTypes.d.ts +41 -23
  361. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  362. package/dist/simple-tree/schemaTypes.js +18 -3
  363. package/dist/simple-tree/schemaTypes.js.map +1 -1
  364. package/dist/simple-tree/toFlexSchema.d.ts +2 -2
  365. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  366. package/dist/simple-tree/toFlexSchema.js +4 -4
  367. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  368. package/dist/simple-tree/toMapTree.d.ts +12 -4
  369. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  370. package/dist/simple-tree/toMapTree.js +46 -35
  371. package/dist/simple-tree/toMapTree.js.map +1 -1
  372. package/dist/simple-tree/tree.d.ts +2 -2
  373. package/dist/simple-tree/tree.d.ts.map +1 -1
  374. package/dist/simple-tree/tree.js.map +1 -1
  375. package/{lib/simple-tree/treeApi.d.ts → dist/simple-tree/treeNodeApi.d.ts} +16 -8
  376. package/dist/simple-tree/treeNodeApi.d.ts.map +1 -0
  377. package/dist/simple-tree/{treeApi.js → treeNodeApi.js} +55 -15
  378. package/dist/simple-tree/treeNodeApi.js.map +1 -0
  379. package/dist/simple-tree/types.d.ts +63 -0
  380. package/dist/simple-tree/types.d.ts.map +1 -1
  381. package/dist/simple-tree/types.js +109 -1
  382. package/dist/simple-tree/types.js.map +1 -1
  383. package/dist/simple-tree/typesUnsafe.d.ts +2 -2
  384. package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
  385. package/dist/simple-tree/typesUnsafe.js.map +1 -1
  386. package/dist/treeFactory.d.ts +4 -4
  387. package/dist/treeFactory.d.ts.map +1 -1
  388. package/dist/treeFactory.js +12 -14
  389. package/dist/treeFactory.js.map +1 -1
  390. package/dist/util/brand.d.ts +7 -86
  391. package/dist/util/brand.d.ts.map +1 -1
  392. package/dist/util/brand.js +2 -53
  393. package/dist/util/brand.js.map +1 -1
  394. package/dist/util/idAllocator.js.map +1 -1
  395. package/dist/util/index.d.ts +1 -1
  396. package/dist/util/index.d.ts.map +1 -1
  397. package/dist/util/index.js +2 -5
  398. package/dist/util/index.js.map +1 -1
  399. package/dist/util/nestedMap.d.ts.map +1 -1
  400. package/dist/util/nestedMap.js.map +1 -1
  401. package/dist/util/opaque.d.ts +5 -5
  402. package/dist/util/opaque.d.ts.map +1 -1
  403. package/dist/util/opaque.js.map +1 -1
  404. package/dist/util/typeboxBrand.d.ts +3 -3
  405. package/dist/util/typeboxBrand.d.ts.map +1 -1
  406. package/dist/util/typeboxBrand.js +1 -1
  407. package/dist/util/typeboxBrand.js.map +1 -1
  408. package/dist/util/utils.d.ts.map +1 -1
  409. package/dist/util/utils.js.map +1 -1
  410. package/docs/.attachments/merge-semantics.drawio +835 -0
  411. package/docs/.attachments/ms-set-color-red-and-blue.png +0 -0
  412. package/docs/.attachments/ms-set-color-red-then-blue.png +0 -0
  413. package/docs/.attachments/ms-set-color-red.png +0 -0
  414. package/docs/SharedTree Philosophy.md +319 -0
  415. package/docs/main/merge-semantics.md +529 -0
  416. package/docs/main/sequence-field/move-composition.md +46 -0
  417. package/internal.d.ts +11 -0
  418. package/lib/beta.d.ts +8 -1
  419. package/lib/codec/codec.d.ts.map +1 -1
  420. package/lib/codec/codec.js.map +1 -1
  421. package/lib/core/change-family/changeFamily.d.ts +2 -1
  422. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  423. package/lib/core/change-family/changeFamily.js.map +1 -1
  424. package/lib/core/index.d.ts +2 -2
  425. package/lib/core/index.d.ts.map +1 -1
  426. package/lib/core/index.js +2 -2
  427. package/lib/core/index.js.map +1 -1
  428. package/lib/core/rebase/changeRebaser.d.ts +2 -1
  429. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  430. package/lib/core/rebase/changeRebaser.js.map +1 -1
  431. package/lib/core/rebase/index.d.ts +1 -1
  432. package/lib/core/rebase/index.d.ts.map +1 -1
  433. package/lib/core/rebase/index.js +1 -1
  434. package/lib/core/rebase/index.js.map +1 -1
  435. package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
  436. package/lib/core/rebase/revisionTagCodec.js.map +1 -1
  437. package/lib/core/rebase/types.d.ts +1 -0
  438. package/lib/core/rebase/types.d.ts.map +1 -1
  439. package/lib/core/rebase/types.js +10 -0
  440. package/lib/core/rebase/types.js.map +1 -1
  441. package/lib/core/rebase/utils.d.ts +2 -2
  442. package/lib/core/rebase/utils.d.ts.map +1 -1
  443. package/lib/core/rebase/utils.js +17 -10
  444. package/lib/core/rebase/utils.js.map +1 -1
  445. package/lib/core/rebase/verifyChangeRebaser.js +1 -1
  446. package/lib/core/rebase/verifyChangeRebaser.js.map +1 -1
  447. package/lib/core/schema-stored/index.d.ts +1 -1
  448. package/lib/core/schema-stored/index.d.ts.map +1 -1
  449. package/lib/core/schema-stored/index.js +1 -1
  450. package/lib/core/schema-stored/index.js.map +1 -1
  451. package/lib/core/schema-stored/schema.d.ts +7 -7
  452. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  453. package/lib/core/schema-stored/schema.js +13 -7
  454. package/lib/core/schema-stored/schema.js.map +1 -1
  455. package/lib/core/tree/anchorSet.js.map +1 -1
  456. package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  457. package/lib/core/tree/detachedFieldIndexCodec.js +1 -0
  458. package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
  459. package/lib/core/tree/persistedTreeTextFormat.d.ts +4 -4
  460. package/lib/core/tree/treeTextFormat.d.ts +2 -0
  461. package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
  462. package/lib/core/tree/treeTextFormat.js.map +1 -1
  463. package/lib/core/tree/visitDelta.js +3 -3
  464. package/lib/core/tree/visitDelta.js.map +1 -1
  465. package/lib/domains/index.d.ts +0 -1
  466. package/lib/domains/index.d.ts.map +1 -1
  467. package/lib/domains/index.js +0 -1
  468. package/lib/domains/index.js.map +1 -1
  469. package/lib/domains/json/jsonCursor.d.ts.map +1 -1
  470. package/lib/domains/json/jsonCursor.js +2 -1
  471. package/lib/domains/json/jsonCursor.js.map +1 -1
  472. package/lib/feature-libraries/changeAtomIdCodec.js +2 -2
  473. package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
  474. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  475. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  476. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  477. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  478. package/lib/feature-libraries/chunked-forest/codec/codecs.js +1 -1
  479. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  480. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +1 -1
  481. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  482. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  483. package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  484. package/lib/feature-libraries/contextuallyTyped.js +1 -1
  485. package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
  486. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +1 -1
  487. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  488. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +2 -2
  489. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  490. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +0 -6
  491. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  492. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +19 -8
  493. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  494. package/lib/feature-libraries/default-schema/index.d.ts +1 -1
  495. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  496. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  497. package/lib/feature-libraries/default-schema/noChangeCodecs.js +1 -1
  498. package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
  499. package/lib/feature-libraries/default-schema/schemaChecker.d.ts +27 -0
  500. package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -0
  501. package/lib/feature-libraries/default-schema/schemaChecker.js +114 -0
  502. package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -0
  503. package/lib/feature-libraries/deltaUtils.d.ts +2 -2
  504. package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
  505. package/lib/feature-libraries/deltaUtils.js +3 -3
  506. package/lib/feature-libraries/deltaUtils.js.map +1 -1
  507. package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  508. package/lib/feature-libraries/editableTreeBinder.js +1 -1
  509. package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
  510. package/lib/feature-libraries/flex-tree/context.d.ts +12 -19
  511. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  512. package/lib/feature-libraries/flex-tree/context.js +15 -29
  513. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  514. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +8 -13
  515. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  516. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +0 -1
  517. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  518. package/lib/feature-libraries/flex-tree/index.d.ts +0 -1
  519. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  520. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  521. package/lib/feature-libraries/flex-tree/lazyField.d.ts +3 -10
  522. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  523. package/lib/feature-libraries/flex-tree/lazyField.js +10 -39
  524. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  525. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +2 -6
  526. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  527. package/lib/feature-libraries/flex-tree/lazyNode.js +9 -31
  528. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  529. package/lib/feature-libraries/flex-tree/utilities.d.ts +2 -2
  530. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  531. package/lib/feature-libraries/flex-tree/utilities.js +5 -5
  532. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  533. package/lib/feature-libraries/index.d.ts +5 -5
  534. package/lib/feature-libraries/index.d.ts.map +1 -1
  535. package/lib/feature-libraries/index.js +3 -3
  536. package/lib/feature-libraries/index.js.map +1 -1
  537. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  538. package/lib/feature-libraries/mitigatedChangeFamily.js +1 -0
  539. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  540. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +9 -10
  541. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  542. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js +4 -3
  543. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  544. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  545. package/lib/feature-libraries/modular-schema/genericFieldKind.js +17 -10
  546. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  547. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js +2 -2
  548. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  549. package/lib/feature-libraries/modular-schema/index.d.ts +1 -1
  550. package/lib/feature-libraries/modular-schema/index.d.ts.map +1 -1
  551. package/lib/feature-libraries/modular-schema/index.js +1 -1
  552. package/lib/feature-libraries/modular-schema/index.js.map +1 -1
  553. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +25 -10
  554. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  555. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +14 -8
  556. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  557. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +151 -123
  558. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  559. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +0 -8
  560. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  561. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +0 -10
  562. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  563. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +1 -9
  564. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  565. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  566. package/lib/feature-libraries/node-key/index.d.ts +1 -1
  567. package/lib/feature-libraries/node-key/index.d.ts.map +1 -1
  568. package/lib/feature-libraries/node-key/index.js +1 -1
  569. package/lib/feature-libraries/node-key/index.js.map +1 -1
  570. package/lib/feature-libraries/node-key/nodeKey.d.ts +0 -8
  571. package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  572. package/lib/feature-libraries/node-key/nodeKey.js +0 -8
  573. package/lib/feature-libraries/node-key/nodeKey.js.map +1 -1
  574. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +20 -2
  575. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  576. package/lib/feature-libraries/node-key/nodeKeyManager.js +27 -6
  577. package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  578. package/lib/feature-libraries/optional-field/optionalField.d.ts +2 -2
  579. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  580. package/lib/feature-libraries/optional-field/optionalField.js +86 -64
  581. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  582. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +5 -13
  583. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  584. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js +11 -18
  585. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  586. package/lib/feature-libraries/optional-field/{optionalFieldChangeFormatV0.d.ts → optionalFieldChangeFormatV2.d.ts} +14 -6
  587. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -0
  588. package/lib/feature-libraries/optional-field/{optionalFieldChangeFormatV0.js → optionalFieldChangeFormatV2.js} +19 -12
  589. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -0
  590. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
  591. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js +98 -27
  592. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
  593. package/{dist/feature-libraries/optional-field/optionalFieldCodecV0.d.ts → lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts} +2 -2
  594. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -0
  595. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js +83 -0
  596. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -0
  597. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js +2 -2
  598. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  599. package/lib/feature-libraries/schema-aware/schemaAware.d.ts +1 -1
  600. package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  601. package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  602. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +2 -2
  603. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  604. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  605. package/lib/feature-libraries/schema-index/codec.js +3 -3
  606. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  607. package/lib/feature-libraries/sequence-field/compose.d.ts +3 -4
  608. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  609. package/lib/feature-libraries/sequence-field/compose.js +99 -68
  610. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  611. package/lib/feature-libraries/sequence-field/format.d.ts +40 -40
  612. package/lib/feature-libraries/sequence-field/invert.d.ts +2 -2
  613. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  614. package/lib/feature-libraries/sequence-field/invert.js +21 -21
  615. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  616. package/lib/feature-libraries/sequence-field/markQueue.d.ts +1 -3
  617. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  618. package/lib/feature-libraries/sequence-field/markQueue.js +2 -3
  619. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  620. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +13 -2
  621. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  622. package/lib/feature-libraries/sequence-field/moveEffectTable.js +18 -9
  623. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  624. package/lib/feature-libraries/sequence-field/rebase.d.ts +1 -2
  625. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  626. package/lib/feature-libraries/sequence-field/rebase.js +56 -63
  627. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  628. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +2 -2
  629. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  630. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js +2 -2
  631. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  632. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +8 -0
  633. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -0
  634. package/lib/feature-libraries/sequence-field/replaceRevisions.js +59 -0
  635. package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -0
  636. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -0
  637. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  638. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js +2 -0
  639. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  640. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js +25 -30
  641. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  642. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +2 -2
  643. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  644. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js +9 -9
  645. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  646. package/lib/feature-libraries/sequence-field/utils.d.ts +16 -9
  647. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  648. package/lib/feature-libraries/sequence-field/utils.js +47 -30
  649. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  650. package/lib/feature-libraries/valueUtilities.d.ts +1 -2
  651. package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
  652. package/lib/feature-libraries/valueUtilities.js +1 -18
  653. package/lib/feature-libraries/valueUtilities.js.map +1 -1
  654. package/lib/index.d.ts +5 -5
  655. package/lib/index.d.ts.map +1 -1
  656. package/lib/index.js +3 -3
  657. package/lib/index.js.map +1 -1
  658. package/lib/packageVersion.d.ts +1 -1
  659. package/lib/packageVersion.js +1 -1
  660. package/lib/packageVersion.js.map +1 -1
  661. package/lib/public.d.ts +8 -1
  662. package/lib/shared-tree/defaultCommitEnricher.d.ts +91 -0
  663. package/lib/shared-tree/defaultCommitEnricher.d.ts.map +1 -0
  664. package/lib/shared-tree/defaultCommitEnricher.js +117 -0
  665. package/lib/shared-tree/defaultCommitEnricher.js.map +1 -0
  666. package/lib/shared-tree/index.d.ts +1 -1
  667. package/lib/shared-tree/index.d.ts.map +1 -1
  668. package/lib/shared-tree/index.js +1 -1
  669. package/lib/shared-tree/index.js.map +1 -1
  670. package/lib/shared-tree/schematizingTreeView.d.ts +2 -4
  671. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  672. package/lib/shared-tree/schematizingTreeView.js +7 -8
  673. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  674. package/lib/shared-tree/sharedTree.d.ts +11 -5
  675. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  676. package/lib/shared-tree/sharedTree.js +23 -13
  677. package/lib/shared-tree/sharedTree.js.map +1 -1
  678. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  679. package/lib/shared-tree/sharedTreeChangeCodecs.js +7 -2
  680. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  681. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +24 -0
  682. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -0
  683. package/lib/shared-tree/sharedTreeChangeEnricher.js +61 -0
  684. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -0
  685. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +12 -3
  686. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  687. package/lib/shared-tree/sharedTreeChangeFamily.js +82 -7
  688. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  689. package/lib/shared-tree/treeApi.d.ts +261 -8
  690. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  691. package/lib/shared-tree/treeApi.js +52 -19
  692. package/lib/shared-tree/treeApi.js.map +1 -1
  693. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  694. package/lib/shared-tree/treeCheckout.js +10 -12
  695. package/lib/shared-tree/treeCheckout.js.map +1 -1
  696. package/lib/shared-tree/treeView.d.ts +2 -4
  697. package/lib/shared-tree/treeView.d.ts.map +1 -1
  698. package/lib/shared-tree/treeView.js +3 -4
  699. package/lib/shared-tree/treeView.js.map +1 -1
  700. package/lib/shared-tree-core/branch.d.ts +22 -2
  701. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  702. package/lib/shared-tree-core/branch.js +18 -12
  703. package/lib/shared-tree-core/branch.js.map +1 -1
  704. package/lib/shared-tree-core/commitEnricher.d.ts +35 -0
  705. package/lib/shared-tree-core/commitEnricher.d.ts.map +1 -0
  706. package/{src/domains/nodeKey/index.ts → lib/shared-tree-core/commitEnricher.js} +2 -2
  707. package/lib/shared-tree-core/commitEnricher.js.map +1 -0
  708. package/lib/shared-tree-core/editManager.d.ts +8 -5
  709. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  710. package/lib/shared-tree-core/editManager.js +13 -5
  711. package/lib/shared-tree-core/editManager.js.map +1 -1
  712. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  713. package/lib/shared-tree-core/editManagerCodecs.js +28 -10
  714. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  715. package/lib/shared-tree-core/editManagerFormat.d.ts +8 -10
  716. package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  717. package/lib/shared-tree-core/editManagerFormat.js +1 -2
  718. package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
  719. package/lib/shared-tree-core/index.d.ts +1 -0
  720. package/lib/shared-tree-core/index.d.ts.map +1 -1
  721. package/lib/shared-tree-core/index.js.map +1 -1
  722. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  723. package/lib/shared-tree-core/messageCodecs.js +16 -7
  724. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  725. package/lib/shared-tree-core/sharedTreeCore.d.ts +12 -5
  726. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  727. package/lib/shared-tree-core/sharedTreeCore.js +50 -15
  728. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  729. package/lib/simple-tree/arrayNode.d.ts +20 -6
  730. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  731. package/lib/simple-tree/arrayNode.js +252 -235
  732. package/lib/simple-tree/arrayNode.js.map +1 -1
  733. package/lib/simple-tree/index.d.ts +3 -3
  734. package/lib/simple-tree/index.d.ts.map +1 -1
  735. package/lib/simple-tree/index.js +1 -1
  736. package/lib/simple-tree/index.js.map +1 -1
  737. package/lib/simple-tree/leafNodeSchema.d.ts +1 -1
  738. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  739. package/lib/simple-tree/leafNodeSchema.js +1 -1
  740. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  741. package/lib/simple-tree/mapNode.d.ts +3 -11
  742. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  743. package/lib/simple-tree/mapNode.js +84 -132
  744. package/lib/simple-tree/mapNode.js.map +1 -1
  745. package/{dist/feature-libraries/flex-tree → lib/simple-tree}/nodeKeys.d.ts +10 -11
  746. package/lib/simple-tree/nodeKeys.d.ts.map +1 -0
  747. package/{dist/domains/nodeKey/index.d.ts → lib/simple-tree/nodeKeys.js} +2 -2
  748. package/lib/simple-tree/nodeKeys.js.map +1 -0
  749. package/lib/simple-tree/objectNode.d.ts +18 -8
  750. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  751. package/lib/simple-tree/objectNode.js +108 -83
  752. package/lib/simple-tree/objectNode.js.map +1 -1
  753. package/lib/simple-tree/proxies.d.ts +1 -1
  754. package/lib/simple-tree/proxies.d.ts.map +1 -1
  755. package/lib/simple-tree/proxies.js +4 -3
  756. package/lib/simple-tree/proxies.js.map +1 -1
  757. package/lib/simple-tree/proxyBinding.d.ts +2 -2
  758. package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
  759. package/lib/simple-tree/proxyBinding.js +5 -5
  760. package/lib/simple-tree/proxyBinding.js.map +1 -1
  761. package/lib/simple-tree/schemaCaching.js +2 -2
  762. package/lib/simple-tree/schemaCaching.js.map +1 -1
  763. package/lib/simple-tree/schemaFactory.d.ts +21 -18
  764. package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
  765. package/lib/simple-tree/schemaFactory.js +42 -56
  766. package/lib/simple-tree/schemaFactory.js.map +1 -1
  767. package/lib/simple-tree/schemaFactoryRecursive.d.ts +2 -2
  768. package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  769. package/lib/simple-tree/schemaFactoryRecursive.js +3 -3
  770. package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
  771. package/lib/simple-tree/schemaTypes.d.ts +41 -23
  772. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  773. package/lib/simple-tree/schemaTypes.js +20 -3
  774. package/lib/simple-tree/schemaTypes.js.map +1 -1
  775. package/lib/simple-tree/toFlexSchema.d.ts +2 -2
  776. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  777. package/lib/simple-tree/toFlexSchema.js +4 -4
  778. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  779. package/lib/simple-tree/toMapTree.d.ts +12 -4
  780. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  781. package/lib/simple-tree/toMapTree.js +45 -35
  782. package/lib/simple-tree/toMapTree.js.map +1 -1
  783. package/lib/simple-tree/tree.d.ts +2 -2
  784. package/lib/simple-tree/tree.d.ts.map +1 -1
  785. package/lib/simple-tree/tree.js.map +1 -1
  786. package/{dist/simple-tree/treeApi.d.ts → lib/simple-tree/treeNodeApi.d.ts} +16 -8
  787. package/lib/simple-tree/treeNodeApi.d.ts.map +1 -0
  788. package/lib/simple-tree/{treeApi.js → treeNodeApi.js} +57 -18
  789. package/lib/simple-tree/treeNodeApi.js.map +1 -0
  790. package/lib/simple-tree/types.d.ts +63 -0
  791. package/lib/simple-tree/types.d.ts.map +1 -1
  792. package/lib/simple-tree/types.js +106 -0
  793. package/lib/simple-tree/types.js.map +1 -1
  794. package/lib/simple-tree/typesUnsafe.d.ts +2 -2
  795. package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
  796. package/lib/simple-tree/typesUnsafe.js.map +1 -1
  797. package/lib/treeFactory.d.ts +4 -4
  798. package/lib/treeFactory.d.ts.map +1 -1
  799. package/lib/treeFactory.js +12 -14
  800. package/lib/treeFactory.js.map +1 -1
  801. package/lib/tsdoc-metadata.json +1 -1
  802. package/lib/util/brand.d.ts +7 -86
  803. package/lib/util/brand.d.ts.map +1 -1
  804. package/lib/util/brand.js +1 -49
  805. package/lib/util/brand.js.map +1 -1
  806. package/lib/util/idAllocator.js.map +1 -1
  807. package/lib/util/index.d.ts +1 -1
  808. package/lib/util/index.d.ts.map +1 -1
  809. package/lib/util/index.js +1 -1
  810. package/lib/util/index.js.map +1 -1
  811. package/lib/util/nestedMap.d.ts.map +1 -1
  812. package/lib/util/nestedMap.js.map +1 -1
  813. package/lib/util/opaque.d.ts +5 -5
  814. package/lib/util/opaque.d.ts.map +1 -1
  815. package/lib/util/opaque.js.map +1 -1
  816. package/lib/util/typeboxBrand.d.ts +3 -3
  817. package/lib/util/typeboxBrand.d.ts.map +1 -1
  818. package/lib/util/typeboxBrand.js +1 -1
  819. package/lib/util/typeboxBrand.js.map +1 -1
  820. package/lib/util/utils.d.ts.map +1 -1
  821. package/lib/util/utils.js.map +1 -1
  822. package/package.json +31 -31
  823. package/src/codec/codec.ts +6 -4
  824. package/src/core/change-family/changeFamily.ts +2 -1
  825. package/src/core/forest/README.md +1 -1
  826. package/src/core/index.ts +2 -1
  827. package/src/core/rebase/changeRebaser.ts +7 -1
  828. package/src/core/rebase/index.ts +1 -0
  829. package/src/core/rebase/revisionTagCodec.ts +1 -0
  830. package/src/core/rebase/types.ts +17 -0
  831. package/src/core/rebase/utils.ts +23 -15
  832. package/src/core/rebase/verifyChangeRebaser.ts +4 -4
  833. package/src/core/schema-stored/index.ts +1 -1
  834. package/src/core/schema-stored/schema.ts +22 -19
  835. package/src/core/tree/anchorSet.ts +1 -1
  836. package/src/core/tree/detachedFieldIndexCodec.ts +1 -0
  837. package/src/core/tree/treeTextFormat.ts +2 -0
  838. package/src/core/tree/visitDelta.ts +3 -3
  839. package/src/domains/index.ts +0 -2
  840. package/src/domains/json/jsonCursor.ts +2 -5
  841. package/src/feature-libraries/changeAtomIdCodec.ts +2 -2
  842. package/src/feature-libraries/chunked-forest/chunkedForest.ts +1 -1
  843. package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +2 -2
  844. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +1 -1
  845. package/src/feature-libraries/chunked-forest/codec/codecs.ts +1 -1
  846. package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +8 -5
  847. package/src/feature-libraries/contextuallyTyped.ts +1 -1
  848. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +2 -4
  849. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +19 -13
  850. package/src/feature-libraries/default-schema/index.ts +0 -1
  851. package/src/feature-libraries/default-schema/noChangeCodecs.ts +1 -1
  852. package/src/feature-libraries/default-schema/schemaChecker.ts +140 -0
  853. package/src/feature-libraries/deltaUtils.ts +3 -12
  854. package/src/feature-libraries/editableTreeBinder.ts +1 -1
  855. package/src/feature-libraries/flex-tree/context.ts +20 -36
  856. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +19 -17
  857. package/src/feature-libraries/flex-tree/index.ts +0 -2
  858. package/src/feature-libraries/flex-tree/lazyField.ts +10 -54
  859. package/src/feature-libraries/flex-tree/lazyNode.ts +13 -46
  860. package/src/feature-libraries/flex-tree/utilities.ts +5 -6
  861. package/src/feature-libraries/index.ts +2 -4
  862. package/src/feature-libraries/mitigatedChangeFamily.ts +8 -1
  863. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +18 -15
  864. package/src/feature-libraries/modular-schema/genericFieldKind.ts +33 -26
  865. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +2 -2
  866. package/src/feature-libraries/modular-schema/index.ts +1 -0
  867. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +35 -13
  868. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +213 -213
  869. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +0 -20
  870. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +0 -10
  871. package/src/feature-libraries/node-key/index.ts +0 -1
  872. package/src/feature-libraries/node-key/nodeKey.ts +0 -9
  873. package/src/feature-libraries/node-key/nodeKeyManager.ts +41 -6
  874. package/src/feature-libraries/optional-field/optionalField.ts +112 -94
  875. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV1.ts +14 -22
  876. package/src/feature-libraries/optional-field/{optionalFieldChangeFormatV0.ts → optionalFieldChangeFormatV2.ts} +22 -14
  877. package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +113 -44
  878. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +135 -0
  879. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +2 -2
  880. package/src/feature-libraries/schema-aware/schemaAware.ts +3 -1
  881. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +5 -2
  882. package/src/feature-libraries/schema-index/codec.ts +3 -3
  883. package/src/feature-libraries/sequence-field/compose.ts +198 -146
  884. package/src/feature-libraries/sequence-field/invert.ts +21 -48
  885. package/src/feature-libraries/sequence-field/markQueue.ts +1 -5
  886. package/src/feature-libraries/sequence-field/moveEffectTable.ts +38 -15
  887. package/src/feature-libraries/sequence-field/rebase.ts +46 -150
  888. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +3 -3
  889. package/src/feature-libraries/sequence-field/replaceRevisions.ts +87 -0
  890. package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +2 -0
  891. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +42 -34
  892. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +8 -14
  893. package/src/feature-libraries/sequence-field/utils.ts +47 -44
  894. package/src/feature-libraries/valueUtilities.ts +2 -22
  895. package/src/index.ts +7 -6
  896. package/src/packageVersion.ts +1 -1
  897. package/src/shared-tree/defaultCommitEnricher.ts +176 -0
  898. package/src/shared-tree/index.ts +8 -1
  899. package/src/shared-tree/schematizingTreeView.ts +10 -14
  900. package/src/shared-tree/sharedTree.ts +32 -15
  901. package/src/shared-tree/sharedTreeChangeCodecs.ts +12 -3
  902. package/src/shared-tree/sharedTreeChangeEnricher.ts +87 -0
  903. package/src/shared-tree/sharedTreeChangeFamily.ts +124 -8
  904. package/src/shared-tree/treeApi.ts +365 -34
  905. package/src/shared-tree/treeCheckout.ts +19 -19
  906. package/src/shared-tree/treeView.ts +3 -16
  907. package/src/shared-tree-core/branch.ts +49 -12
  908. package/src/shared-tree-core/commitEnricher.ts +39 -0
  909. package/src/shared-tree-core/editManager.ts +32 -15
  910. package/src/shared-tree-core/editManagerCodecs.ts +30 -16
  911. package/src/shared-tree-core/editManagerFormat.ts +2 -4
  912. package/src/shared-tree-core/index.ts +2 -0
  913. package/src/shared-tree-core/messageCodecs.ts +28 -7
  914. package/src/shared-tree-core/sharedTreeCore.ts +82 -18
  915. package/src/simple-tree/arrayNode.ts +411 -334
  916. package/src/simple-tree/index.ts +3 -2
  917. package/src/simple-tree/leafNodeSchema.ts +1 -1
  918. package/src/simple-tree/mapNode.ts +120 -169
  919. package/src/{feature-libraries/flex-tree → simple-tree}/nodeKeys.ts +10 -20
  920. package/src/simple-tree/objectNode.ts +186 -136
  921. package/src/simple-tree/proxies.ts +4 -4
  922. package/src/simple-tree/proxyBinding.ts +11 -6
  923. package/src/simple-tree/schemaCaching.ts +2 -2
  924. package/src/simple-tree/schemaFactory.ts +60 -91
  925. package/src/simple-tree/schemaFactoryRecursive.ts +8 -6
  926. package/src/simple-tree/schemaTypes.ts +69 -16
  927. package/src/simple-tree/toFlexSchema.ts +8 -3
  928. package/src/simple-tree/toMapTree.ts +76 -34
  929. package/src/simple-tree/tree.ts +2 -2
  930. package/src/simple-tree/{treeApi.ts → treeNodeApi.ts} +82 -40
  931. package/src/simple-tree/types.ts +160 -1
  932. package/src/simple-tree/typesUnsafe.ts +2 -2
  933. package/src/treeFactory.ts +14 -17
  934. package/src/util/brand.ts +8 -107
  935. package/src/util/idAllocator.ts +1 -1
  936. package/src/util/index.ts +1 -11
  937. package/src/util/nestedMap.ts +1 -1
  938. package/src/util/opaque.ts +5 -5
  939. package/src/util/typeboxBrand.ts +3 -3
  940. package/src/util/utils.ts +4 -4
  941. package/dist/alpha.d.ts +0 -87
  942. package/dist/domains/nodeKey/index.d.ts.map +0 -1
  943. package/dist/domains/nodeKey/index.js +0 -12
  944. package/dist/domains/nodeKey/index.js.map +0 -1
  945. package/dist/domains/nodeKey/nodeKeySchema.d.ts +0 -30
  946. package/dist/domains/nodeKey/nodeKeySchema.d.ts.map +0 -1
  947. package/dist/domains/nodeKey/nodeKeySchema.js +0 -36
  948. package/dist/domains/nodeKey/nodeKeySchema.js.map +0 -1
  949. package/dist/feature-libraries/flex-tree/nodeKeys.d.ts.map +0 -1
  950. package/dist/feature-libraries/flex-tree/nodeKeys.js +0 -24
  951. package/dist/feature-libraries/flex-tree/nodeKeys.js.map +0 -1
  952. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV0.d.ts.map +0 -1
  953. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV0.js.map +0 -1
  954. package/dist/feature-libraries/optional-field/optionalFieldCodecV0.d.ts.map +0 -1
  955. package/dist/feature-libraries/optional-field/optionalFieldCodecV0.js +0 -158
  956. package/dist/feature-libraries/optional-field/optionalFieldCodecV0.js.map +0 -1
  957. package/dist/simple-tree/treeApi.d.ts.map +0 -1
  958. package/dist/simple-tree/treeApi.js.map +0 -1
  959. package/lib/alpha.d.ts +0 -87
  960. package/lib/domains/nodeKey/index.d.ts.map +0 -1
  961. package/lib/domains/nodeKey/index.js.map +0 -1
  962. package/lib/domains/nodeKey/nodeKeySchema.d.ts +0 -30
  963. package/lib/domains/nodeKey/nodeKeySchema.d.ts.map +0 -1
  964. package/lib/domains/nodeKey/nodeKeySchema.js +0 -33
  965. package/lib/domains/nodeKey/nodeKeySchema.js.map +0 -1
  966. package/lib/feature-libraries/flex-tree/nodeKeys.d.ts.map +0 -1
  967. package/lib/feature-libraries/flex-tree/nodeKeys.js +0 -20
  968. package/lib/feature-libraries/flex-tree/nodeKeys.js.map +0 -1
  969. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV0.d.ts.map +0 -1
  970. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV0.js.map +0 -1
  971. package/lib/feature-libraries/optional-field/optionalFieldCodecV0.d.ts.map +0 -1
  972. package/lib/feature-libraries/optional-field/optionalFieldCodecV0.js +0 -154
  973. package/lib/feature-libraries/optional-field/optionalFieldCodecV0.js.map +0 -1
  974. package/lib/simple-tree/treeApi.d.ts.map +0 -1
  975. package/lib/simple-tree/treeApi.js.map +0 -1
  976. package/src/domains/nodeKey/fence.json +0 -5
  977. package/src/domains/nodeKey/nodeKeySchema.ts +0 -44
  978. package/src/feature-libraries/optional-field/optionalFieldCodecV0.ts +0 -204
package/.eslintrc.cjs CHANGED
@@ -14,7 +14,7 @@ module.exports = {
14
14
  rules: {
15
15
  "@typescript-eslint/no-namespace": "off",
16
16
  "@typescript-eslint/no-empty-interface": "off",
17
- "@typescript-eslint/explicit-member-accessibility": "error",
17
+
18
18
  // This package is build with noUnusedLocals disabled for a specific use case (see note in tsconfig.json),
19
19
  // but should reject other cases using this rule:
20
20
  "@typescript-eslint/no-unused-vars": [
@@ -25,8 +25,12 @@ module.exports = {
25
25
  caughtErrorsIgnorePattern: "^_",
26
26
  },
27
27
  ],
28
- // This rule can be removed once the client release group has eslint-config-fluid 5.2.0+
28
+
29
+ // TODO: Remove this override once dependency on eslint-config-fluid has been updated to 5.2.0+
29
30
  "import/order": "off",
31
+
32
+ // TODO: Remove these overrides once this config has been updated to extend the "strict" base config.
33
+ "@typescript-eslint/explicit-member-accessibility": "error",
30
34
  },
31
35
  overrides: [
32
36
  {
@@ -39,4 +43,33 @@ module.exports = {
39
43
  },
40
44
  },
41
45
  ],
46
+ settings: {
47
+ "import/extensions": [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
48
+ "import/parsers": {
49
+ "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"],
50
+ },
51
+ "import/resolver": {
52
+ typescript: {
53
+ extensions: [".ts", ".tsx", ".d.ts", ".js", ".jsx"],
54
+ conditionNames: [
55
+ "allow-ff-test-exports",
56
+
57
+ // Default condition names below, see https://www.npmjs.com/package/eslint-import-resolver-typescript#conditionnames
58
+ "types",
59
+ "import",
60
+
61
+ // APF: https://angular.io/guide/angular-package-format
62
+ "esm2020",
63
+ "es2020",
64
+ "es2015",
65
+
66
+ "require",
67
+ "node",
68
+ "node-addons",
69
+ "browser",
70
+ "default",
71
+ ],
72
+ },
73
+ },
74
+ },
42
75
  };
@@ -12,5 +12,8 @@
12
12
  ],
13
13
  "mochaExplorer.configFile": ".mocharc.cjs",
14
14
  "mochaExplorer.timeout": 999999,
15
+ // This extension appears to invoke mocha programmatically, meaning that the enablement of this option in the common
16
+ // mocha test config isn't sufficient; it also needs to be enabled here.
17
+ "mochaExplorer.nodeArgv": ["--conditions", "allow-ff-test-exports"],
15
18
  "cSpell.words": ["deprioritized", "endregion", "insertable", "reentrantly", "unhydrated"],
16
19
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,96 @@
1
1
  # @fluidframework/tree
2
2
 
3
+ ## 2.0.0-rc.4.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Deprecated members of IFluidHandle are split off into new IFluidHandleInternal interface [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
8
+
9
+ Split IFluidHandle into two interfaces, `IFluidHandle` and `IFluidHandleInternal`.
10
+ Code depending on the previously deprecated members of IFluidHandle can access them by using `toFluidHandleInternal` from `@fluidframework/runtime-utils/legacy`.
11
+
12
+ External implementation of the `IFluidHandle` interface are not supported: this change makes the typing better convey this using the `ErasedType` pattern.
13
+ Any existing and previously working, and now broken, external implementations of `IFluidHandle` should still work at runtime, but will need some unsafe type casts to compile.
14
+ Such handle implementation may break in the future and thus should be replaced with use of handles produced by the Fluid Framework client packages.
15
+
16
+ - Minor API fixes for "@fluidframework/tree" package. [96872186d0](https://github.com/microsoft/FluidFramework/commit/96872186d0d0f245c1fece7d19b3743e501679b6)
17
+
18
+ Changes constructor for `FieldSchema` from public to private. Users should call `makeFieldSchema` to create instance of `FieldSchema`.
19
+
20
+ ## 2.0.0-rc.3.0.0
21
+
22
+ ### Major Changes
23
+
24
+ - Packages now use package.json "exports" and require modern module resolution [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
25
+
26
+ Fluid Framework packages have been updated to use the [package.json "exports"
27
+ field](https://nodejs.org/docs/latest-v18.x/api/packages.html#exports) to define explicit entry points for both
28
+ TypeScript types and implementation code.
29
+
30
+ This means that using Fluid Framework packages require the following TypeScript settings in tsconfig.json:
31
+
32
+ - `"moduleResolution": "Node16"` with `"module": "Node16"`
33
+ - `"moduleResolution": "Bundler"` with `"module": "ESNext"`
34
+
35
+ We recommend using Node16/Node16 unless absolutely necessary. That will produce transpiled JavaScript that is suitable
36
+ for use with modern versions of Node.js _and_ Bundlers.
37
+ [See the TypeScript documentation](https://www.typescriptlang.org/tsconfig#moduleResolution) for more information
38
+ regarding the module and moduleResolution options.
39
+
40
+ **Node10 moduleResolution is not supported; it does not support Fluid Framework's API structuring pattern that is used
41
+ to distinguish stable APIs from those that are in development.**
42
+
43
+ ### Minor Changes
44
+
45
+ - Better events [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
46
+
47
+ We have updated the Events to make it easier to create granular event listeners for single nodes and better support the
48
+ undo/redo feature. SharedTree nodes now expose `nodeChanged` and `treeChanged` events that fire in response to changes
49
+ in the node, and to changes in the subtree rooted at the node, respectively.
50
+
51
+ This change was originally made in [#20286](https://github.com/microsoft/FluidFramework/pull/20286) ([ac1e773960](https://github.com/microsoft/FluidFramework/commit/ac1e7739607551abb0dae7fa74dda56aec94b609)).
52
+
53
+ [Read more about SharedTree Events at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#event-handling)
54
+
55
+ - Recursive schemas [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
56
+
57
+ Schemas are even more powerful now with the added support for recursive types, which allows you to define types that
58
+ reference nodes of the same type in their subtree.
59
+
60
+ Users of the beta APIs via `SchemaFactoryRecursive` can now find them on `SchemaFactory`.
61
+
62
+ [Read more about Recursive Schema at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#recursive-schema)
63
+
64
+ - Transactions [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
65
+
66
+ You can group multiple changes such that they are applied atomically, and if they fail, they fail atomically. As a
67
+ result of grouping changes in a transaction, you also get a single revertible object making it easier to undo and redo.
68
+
69
+ [Read more about Transactions at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#transactions)
70
+
71
+ - tree: Empty optional fields on object nodes now are undefined non-enumerable own properties instead of not a property at all. [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
72
+
73
+ Empty optional fields on object nodes now are now undefined non-enumerable own properties.
74
+ This improves behavior in cases where they shadow inherited members which no longer have types which differ from the runtime behavior.
75
+
76
+ - tree: Allow root editing and make TreeView parameterized over schema. [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
77
+
78
+ TreeView now is parameterized over the field schema instead of the root field type. This was needed to infer the correct input type when reassigning the root.
79
+ Code providing an explicit type to TreeView, like `TreeView<Foo>` can usually be updated by replacing that with `TreeView<typeof Foo>`.
80
+
81
+ - fluid-framework: Replace SharedObjectClass with new ISharedObjectKind type. [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
82
+
83
+ The static objects used as SharedObjectClass now explicitly implement the new ISharedObjectKind type.
84
+ SharedObjectClass has been removed as ISharedObjectKind now fills that role.
85
+ LoadableObjectCtor has been inlined as it only had one use: an external user of it can replace it with `(new (...args: any[]) => T)`.
86
+
87
+ - Undo/Redo [97d68aa06b](https://github.com/microsoft/FluidFramework/commit/97d68aa06bd5c022ecb026655814aea222a062ae)
88
+
89
+ Added the ability to listen for changes and track revertible objects on your undo/redo stacks. Revertibles allow you to
90
+ undo and redo changes even if other changes have been made in remote clients.
91
+
92
+ [Read more about Undo/redo at fluidframework.com](https://fluidframework.com/docs/data-structures/tree/#undoredo-support)
93
+
3
94
  ## 2.0.0-rc.2.0.0
4
95
 
5
96
  ### Minor Changes
package/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # @fluidframework/tree
2
2
 
3
- For a high-level overview of the goals of this project, see the [roadmap](docs/roadmap.md).
3
+ A [tree](<https://en.wikipedia.org/wiki/Tree_(data_structure)>) data structure for the [Fluid Framework](https://fluidframework.com/).
4
+
5
+ The contents of this package are also reported as part of the [`fluid-framework` package](https://www.npmjs.com/package/fluid-framework) which provides an alternative way to consume the functionality from this package.
6
+
7
+ [SharedTree Philosophy](./docs/SharedTree%20Philosophy.md) covers the goals of the SharedTree project,
8
+ and some of the implications of those goals for developers working on this package.
4
9
 
5
10
  ## Status
6
11
 
@@ -12,7 +17,13 @@ Notable consideration that early adopters should be wary of:
12
17
  - SharedTree currently has unbounded memory growth:
13
18
  - Removed content is retained forever.
14
19
  - Accessing an `EditableField` object (from its parent, e.g., with `getField`) in a loop will leak unbounded memory.
15
- - All changes are atomized by the `visitDelta` function. This means that, when inserting/removing/moving 2 contiguous nodes, the `visitDelta` function will call the `DeltaVisitor` twice (once for each node) instead of once for both nodes. Change notification consumers that are downstream from the `DeltaVisitor` will therefore also see those changes as atomized.
20
+ - All changes are atomized by the `visitDelta` function.
21
+ This means that, when inserting/removing/moving 2 contiguous nodes, the `visitDelta` function will call the `DeltaVisitor` twice (once for each node) instead of once for both nodes.
22
+ Change notification consumers that are downstream from the `DeltaVisitor` will therefore also see those changes as atomized.
23
+ - Some documentation (such as this readme and [the roadmap](docs/roadmap.md)) are out of date.
24
+ The [API documentation](https://fluidframework.com/docs/api/v2/tree) which is derived from the documentation comments in the source code should be more up to date.
25
+
26
+ More details on the development status of various features can be found in the [roadmap](docs/roadmap.md).
16
27
 
17
28
  <!-- AUTO-GENERATED-CONTENT:START (README_DEPENDENCY_GUIDELINES_SECTION:includeHeading=TRUE) -->
18
29
 
@@ -89,11 +100,12 @@ This tree serves to get these feature into the hands of users much faster than c
89
100
 
90
101
  This package can be developed using any of the [regular workflows for working on Fluid Framework](../../../README.md) and/or its Client release group of packages, but for work only touching the tree package, there is an optional workflow that might be more ergonomic:
91
102
 
103
+ - Follow the [Setup and Building](../../../README.md#setup-and-building) instructions.
92
104
  - Open the [.vscode/Tree.code-workspace](.vscode/Tree.code-workspace) in VS Code.
93
105
  This will recommend a test runner extension, which should be installed.
94
- - Build the Client release group as normal (for example: `pnpm i && npm run build:fast` in the repository root).
95
- - After editing the tree project, run `npm run build` in its directory.
96
- - Run tests using the "Testing" side panel in VS Code, or using the inline `Run | Debug` buttons which should show up above tests in the source:
106
+ - Build the the tree package as normal (for run example: `pnpm i && pnpm run build` in the `tree` directory).
107
+ - After editing the tree project, run `npm run build` (still in the `tree`) directory.
108
+ - Run and debug tests using the "Testing" side panel in VS Code, or using the inline `Run | Debug` buttons which should show up above tests in the source:
97
109
  both of these are provided by the mocha testing extension thats recommended by the workspace.
98
110
  Note that this does not build the tests, so always be sure to build first.
99
111
 
@@ -4,12 +4,7 @@
4
4
 
5
5
  ```ts
6
6
 
7
- import { FluidObject } from '@fluidframework/core-interfaces';
8
- import { IChannel } from '@fluidframework/datastore-definitions';
9
- import { IChannelAttributes } from '@fluidframework/datastore-definitions';
10
- import { IChannelFactory } from '@fluidframework/datastore-definitions';
11
- import { IChannelServices } from '@fluidframework/datastore-definitions';
12
- import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
7
+ import { ErasedType } from '@fluidframework/core-interfaces';
13
8
  import { IFluidHandle } from '@fluidframework/core-interfaces';
14
9
  import { IFluidLoadable } from '@fluidframework/core-interfaces';
15
10
  import { ISharedObject } from '@fluidframework/shared-object-base';
@@ -139,7 +134,11 @@ export const Any: "Any";
139
134
  export type Any = typeof Any;
140
135
 
141
136
  // @public
142
- export type ApplyKind<T, Kind extends FieldKind> = Kind extends FieldKind.Required ? T : undefined | T;
137
+ export type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
138
+ [FieldKind.Required]: T;
139
+ [FieldKind.Optional]: T | undefined;
140
+ [FieldKind.Identifier]: DefaultsAreOptional extends true ? T | undefined : T;
141
+ }[Kind];
143
142
 
144
143
  // @internal
145
144
  export type ApplyMultiplicity<TMultiplicity extends Multiplicity, TypedChild> = {
@@ -162,10 +161,10 @@ export type AssignableFieldKinds = typeof FieldKinds.optional | typeof FieldKind
162
161
  export type Assume<TInput, TAssumeToBe> = [TInput] extends [TAssumeToBe] ? TInput : TAssumeToBe;
163
162
 
164
163
  // @internal
165
- export type Brand<ValueType, Name extends string | ErasedType<string>> = ValueType & BrandedType<ValueType, Name extends Erased<infer TName> ? TName : Assume<Name, string>>;
164
+ export type Brand<ValueType, Name> = ValueType & BrandedType<ValueType, Name>;
166
165
 
167
166
  // @internal
168
- export function brand<T>(value: T extends BrandedType<infer ValueType, string> ? ValueType : never): T;
167
+ export function brand<T>(value: T extends BrandedType<infer ValueType, unknown> ? ValueType : never): T;
169
168
 
170
169
  // @internal
171
170
  export type BrandedKey<TKey, TContent> = TKey & Invariant<TContent>;
@@ -186,7 +185,7 @@ export interface BrandedMapSubset<K extends BrandedKey<unknown, any>> {
186
185
  }
187
186
 
188
187
  // @internal @sealed
189
- export abstract class BrandedType<out ValueType, Name extends string> {
188
+ export abstract class BrandedType<out ValueType, Name> {
190
189
  static [Symbol.hasInstance](value: never): value is never;
191
190
  protected abstract brand(dummy: never): Name;
192
191
  // (undocumented)
@@ -307,6 +306,10 @@ export interface CursorWithNode<TNode> extends ITreeCursorSynchronous {
307
306
  getNode(): TNode;
308
307
  }
309
308
 
309
+ // @public
310
+ export interface DefaultProvider extends ErasedType<"@fluidframework/tree.FieldProvider"> {
311
+ }
312
+
310
313
  // @internal
311
314
  export const defaultSchemaPolicy: FullSchemaPolicy;
312
315
 
@@ -427,16 +430,7 @@ export function enumFromStrings<TScope extends string, const Members extends str
427
430
  })>;
428
431
 
429
432
  // @internal
430
- export type Erased<Name extends string> = ErasedType<Name>;
431
-
432
- // @internal
433
- export interface ErasedTreeNodeSchemaDataFormat extends Erased<"TreeNodeSchemaDataFormat"> {
434
- }
435
-
436
- // @internal @sealed
437
- export abstract class ErasedType<out Name extends string> {
438
- static [Symbol.hasInstance](value: never): value is never;
439
- protected abstract brand(dummy: never): Name;
433
+ export interface ErasedTreeNodeSchemaDataFormat extends ErasedType<"TreeNodeSchemaDataFormat"> {
440
434
  }
441
435
 
442
436
  // @public
@@ -445,10 +439,10 @@ export type Events<E> = {
445
439
  };
446
440
 
447
441
  // @internal
448
- export type ExtractFromOpaque<TOpaque extends BrandedType<any, string>> = TOpaque extends BrandedType<infer ValueType, infer Name> ? isAny<ValueType> extends true ? unknown : Brand<ValueType, Name> : never;
442
+ export type ExtractFromOpaque<TOpaque extends BrandedType<any, unknown>> = TOpaque extends BrandedType<infer ValueType, infer Name> ? isAny<ValueType> extends true ? unknown : Brand<ValueType, Name> : never;
449
443
 
450
444
  // @internal
451
- export function extractFromOpaque<TOpaque extends BrandedType<any, string>>(value: TOpaque): ExtractFromOpaque<TOpaque>;
445
+ export function extractFromOpaque<TOpaque extends BrandedType<any, unknown>>(value: TOpaque): ExtractFromOpaque<TOpaque>;
452
446
 
453
447
  // @public
454
448
  export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
@@ -492,7 +486,6 @@ export const FieldKinds: {
492
486
  readonly required: Required_2;
493
487
  readonly optional: Optional;
494
488
  readonly sequence: Sequence;
495
- readonly nodeKey: NodeKeyFieldKind;
496
489
  readonly identifier: Identifier;
497
490
  readonly forbidden: Forbidden;
498
491
  };
@@ -513,15 +506,12 @@ export interface FieldMapObject<TChild> {
513
506
 
514
507
  // @public
515
508
  export interface FieldProps {
509
+ readonly defaultProvider?: DefaultProvider;
516
510
  readonly key?: string;
517
511
  }
518
512
 
519
513
  // @public @sealed
520
514
  export class FieldSchema<out Kind extends FieldKind = FieldKind, out Types extends ImplicitAllowedTypes = ImplicitAllowedTypes> {
521
- constructor(
522
- kind: Kind,
523
- allowedTypes: Types,
524
- props?: FieldProps | undefined);
525
515
  readonly allowedTypes: Types;
526
516
  get allowedTypeSet(): ReadonlySet<TreeNodeSchema>;
527
517
  readonly kind: Kind;
@@ -646,9 +636,9 @@ export class FlexObjectNodeSchema<const out Name extends string = string, const
646
636
 
647
637
  // @internal
648
638
  export interface FlexTreeContext extends ISubscribable<ForestEvents> {
649
- readonly forest: IForestSubscription;
639
+ readonly checkout: ITreeCheckout;
650
640
  // (undocumented)
651
- readonly nodeKeys: NodeKeys;
641
+ readonly nodeKeyManager: NodeKeyManager;
652
642
  get root(): FlexTreeField;
653
643
  readonly schema: FlexTreeSchema;
654
644
  }
@@ -839,14 +829,14 @@ export interface FlexTreeSequenceField<in out TTypes extends FlexAllowedTypes> e
839
829
  moveToStart(sourceIndex: number): void;
840
830
  moveToStart(sourceIndex: number, source: FlexTreeSequenceField<FlexAllowedTypes>): void;
841
831
  removeAt(index: number): void;
842
- removeRange(start?: number, end?: number): void;
832
+ sequenceEditor(): SequenceFieldEditBuilder;
843
833
  }
844
834
 
845
835
  // @internal
846
836
  export type FlexTreeTypedField<TSchema extends FlexFieldSchema> = FlexTreeTypedFieldInner<TSchema["kind"], TSchema["allowedTypes"]>;
847
837
 
848
838
  // @internal
849
- export type FlexTreeTypedFieldInner<Kind extends FlexFieldKind, Types extends FlexAllowedTypes> = Kind extends typeof FieldKinds.sequence ? FlexTreeSequenceField<Types> : Kind extends typeof FieldKinds.required ? FlexTreeRequiredField<Types> : Kind extends typeof FieldKinds.optional ? FlexTreeOptionalField<Types> : Kind extends typeof FieldKinds.nodeKey ? FlexTreeNodeKeyField : FlexTreeField;
839
+ export type FlexTreeTypedFieldInner<Kind extends FlexFieldKind, Types extends FlexAllowedTypes> = Kind extends typeof FieldKinds.sequence ? FlexTreeSequenceField<Types> : Kind extends typeof FieldKinds.required ? FlexTreeRequiredField<Types> : Kind extends typeof FieldKinds.optional ? FlexTreeOptionalField<Types> : FlexTreeField;
850
840
 
851
841
  // @internal
852
842
  export type FlexTreeTypedNode<TSchema extends FlexTreeNodeSchema> = TSchema extends LeafNodeSchema ? FlexTreeLeafNode<TSchema> : TSchema extends FlexMapNodeSchema ? FlexTreeMapNode<TSchema> : TSchema extends FlexFieldNodeSchema ? FlexTreeFieldNode<TSchema> : TSchema extends FlexObjectNodeSchema ? FlexTreeObjectNodeTyped<TSchema> : FlexTreeNode;
@@ -858,7 +848,7 @@ export type FlexTreeTypedNodeUnion<T extends FlexAllowedTypes> = T extends FlexL
858
848
  export type FlexTreeUnboxField<TSchema extends FlexFieldSchema, Emptiness extends "maybeEmpty" | "notEmpty" = "maybeEmpty"> = FlexTreeUnboxFieldInner<TSchema["kind"], TSchema["allowedTypes"], Emptiness>;
859
849
 
860
850
  // @internal
861
- export type FlexTreeUnboxFieldInner<Kind extends FlexFieldKind, TTypes extends FlexAllowedTypes, Emptiness extends "maybeEmpty" | "notEmpty"> = Kind extends typeof FieldKinds.sequence ? FlexTreeSequenceField<TTypes> : Kind extends typeof FieldKinds.required ? FlexTreeUnboxNodeUnion<TTypes> : Kind extends typeof FieldKinds.optional ? FlexTreeUnboxNodeUnion<TTypes> | (Emptiness extends "notEmpty" ? never : undefined) : Kind extends typeof FieldKinds.nodeKey ? FlexTreeNodeKeyField : unknown;
851
+ export type FlexTreeUnboxFieldInner<Kind extends FlexFieldKind, TTypes extends FlexAllowedTypes, Emptiness extends "maybeEmpty" | "notEmpty"> = Kind extends typeof FieldKinds.sequence ? FlexTreeSequenceField<TTypes> : Kind extends typeof FieldKinds.required ? FlexTreeUnboxNodeUnion<TTypes> : Kind extends typeof FieldKinds.optional ? FlexTreeUnboxNodeUnion<TTypes> | (Emptiness extends "notEmpty" ? never : undefined) : unknown;
862
852
 
863
853
  // @internal
864
854
  export type FlexTreeUnboxNode<TSchema extends FlexTreeNodeSchema> = TSchema extends LeafNodeSchema ? TreeValue<TSchema["info"]> : TSchema extends FlexMapNodeSchema ? FlexTreeMapNode<TSchema> : TSchema extends FlexFieldNodeSchema ? FlexTreeFieldNode<TSchema> : TSchema extends FlexObjectNodeSchema ? FlexTreeObjectNodeTyped<TSchema> : FlexTreeUnknownUnboxed;
@@ -1001,7 +991,7 @@ ApplyMultiplicity<TField["kind"]["multiplicity"], AllowedTypesToFlexInsertableTr
1001
991
  // @internal
1002
992
  export type InsertableFlexNode<TSchema extends FlexTreeNodeSchema> = FlattenKeys<CollectOptions<TSchema extends FlexObjectNodeSchema<string, infer TFields extends FlexObjectNodeFields> ? TypedFields<TFields> : TSchema extends FlexFieldNodeSchema<string, infer TField extends FlexFieldSchema> ? InsertableFlexField<TField> : TSchema extends FlexMapNodeSchema<string, infer TField extends FlexFieldSchema> ? {
1003
993
  readonly [P in string]: InsertableFlexField<TField>;
1004
- } : EmptyObject, TSchema extends LeafNodeSchema<string, infer TValueSchema> ? TValueSchema : undefined, TSchema["name"]>>;
994
+ } : EmptyObject, TSchema extends LeafNodeSchema<string, infer TValueSchema extends ValueSchema> ? TValueSchema : undefined, TSchema["name"]>>;
1005
995
 
1006
996
  // @public
1007
997
  export type InsertableObjectFromSchemaRecord<T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>> = {
@@ -1014,10 +1004,10 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
1014
1004
  };
1015
1005
 
1016
1006
  // @public
1017
- export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
1007
+ export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
1018
1008
 
1019
1009
  // @public
1020
- export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
1010
+ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
1021
1011
 
1022
1012
  // @public
1023
1013
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
@@ -1035,6 +1025,10 @@ export type InsertableTypedNodeUnsafe<T extends Unenforced<TreeNodeSchema>> = Un
1035
1025
  implicitlyConstructable: true;
1036
1026
  } ? NodeBuilderDataUnsafe<T> : never);
1037
1027
 
1028
+ // @public
1029
+ export interface InternalTreeNode extends ErasedType<"@fluidframework/tree.InternalTreeNode"> {
1030
+ }
1031
+
1038
1032
  // @internal
1039
1033
  export interface Invariant<in out T> extends Contravariant<T>, Covariant<T> {
1040
1034
  }
@@ -1089,7 +1083,7 @@ export interface ITransaction {
1089
1083
  }
1090
1084
 
1091
1085
  // @public
1092
- export interface ITree extends IChannel {
1086
+ export interface ITree extends IFluidLoadable {
1093
1087
  schematize<TRoot extends ImplicitFieldSchema>(config: TreeConfiguration<TRoot>): TreeView<TRoot>;
1094
1088
  }
1095
1089
 
@@ -1282,7 +1276,7 @@ export interface Named<TName> {
1282
1276
  }
1283
1277
 
1284
1278
  // @internal
1285
- export type NameFromBranded<T extends BrandedType<unknown, string>> = T extends BrandedType<unknown, infer Name> ? Name : never;
1279
+ export type NameFromBranded<T extends BrandedType<unknown, unknown>> = T extends BrandedType<unknown, infer Name> ? Name : never;
1286
1280
 
1287
1281
  // @internal
1288
1282
  export type NestedMap<Key1, Key2, Value> = Map<Key1, Map<Key2, Value>>;
@@ -1317,19 +1311,20 @@ export type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T exten
1317
1311
  // @internal
1318
1312
  export type NodeIndex = number;
1319
1313
 
1320
- // @internal
1321
- export const nodeKeyFieldKey = "__n_id__";
1322
-
1323
- // @internal (undocumented)
1324
- export interface NodeKeyFieldKind extends FlexFieldKind<"NodeKey", Multiplicity.Single> {
1314
+ // @public
1315
+ export interface NodeInDocumentConstraint {
1316
+ // (undocumented)
1317
+ node: TreeNode;
1318
+ // (undocumented)
1319
+ type: "nodeInDocument";
1325
1320
  }
1326
1321
 
1327
1322
  // @internal
1328
- export interface NodeKeys {
1329
- generate(): LocalNodeKey;
1330
- localize(key: StableNodeKey): LocalNodeKey;
1331
- readonly map: ReadonlyMap<LocalNodeKey, FlexTreeObjectNode>;
1332
- stabilize(key: LocalNodeKey): StableNodeKey;
1323
+ export interface NodeKeyManager {
1324
+ generateLocalNodeKey(): LocalNodeKey;
1325
+ localizeNodeKey(key: StableNodeKey): LocalNodeKey;
1326
+ stabilizeNodeKey(key: LocalNodeKey): StableNodeKey;
1327
+ tryLocalizeNodeKey(key: string): LocalNodeKey | undefined;
1333
1328
  }
1334
1329
 
1335
1330
  // @public
@@ -1383,7 +1378,7 @@ export class ObjectNodeStoredSchema extends TreeNodeStoredSchema {
1383
1378
  export function oneFromSet<T>(set: ReadonlySet<T> | undefined): T | undefined;
1384
1379
 
1385
1380
  // @internal
1386
- export type Opaque<T extends Brand<any, string>> = T extends BrandedType<infer ValueType, infer Name> ? BrandedType<ValueType, Name> : never;
1381
+ export type Opaque<T extends Brand<any, unknown>> = T extends BrandedType<infer ValueType, infer Name> ? BrandedType<ValueType, Name> : never;
1387
1382
 
1388
1383
  // @internal (undocumented)
1389
1384
  export interface Optional extends FlexFieldKind<"Optional", Multiplicity.Optional> {
@@ -1486,7 +1481,7 @@ export const reservedObjectNodeFieldPropertyNamePrefixes: readonly ["set", "boxe
1486
1481
  export type ReservedObjectNodeFieldPropertyNames = (typeof reservedObjectNodeFieldPropertyNames)[number];
1487
1482
 
1488
1483
  // @internal
1489
- export const reservedObjectNodeFieldPropertyNames: readonly ["anchorNode", "constructor", "context", "is", "on", "parentField", "schema", "treeStatus", "tryGetField", "type", "value", "localNodeKey", "boxedIterator", "iterator", "getBoxed"];
1484
+ export const reservedObjectNodeFieldPropertyNames: readonly ["anchorNode", "constructor", "context", "is", "on", "parentField", "schema", "treeStatus", "tryGetField", "type", "value", "boxedIterator", "iterator", "getBoxed"];
1490
1485
 
1491
1486
  // @public
1492
1487
  export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
@@ -1513,6 +1508,9 @@ export enum RevertibleStatus {
1513
1508
  // @internal
1514
1509
  export type RevisionTag = SessionSpaceCompressedId | "root";
1515
1510
 
1511
+ // @public
1512
+ export const rollback: unique symbol;
1513
+
1516
1514
  // @internal
1517
1515
  export interface RootField {
1518
1516
  // (undocumented)
@@ -1528,6 +1526,23 @@ export const rootFieldKey: FieldKey;
1528
1526
  // @internal
1529
1527
  export function runSynchronous(view: ITreeCheckout, transaction: (view: ITreeCheckout) => TransactionResult | void): TransactionResult;
1530
1528
 
1529
+ // @public
1530
+ export interface RunTransaction {
1531
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
1532
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
1533
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
1534
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
1535
+ <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
1536
+ <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
1537
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: TransactionConstraint[]): TResult;
1538
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: TransactionConstraint[]): TResult;
1539
+ <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: TransactionConstraint[]): TResult | typeof rollback;
1540
+ <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: TransactionConstraint[]): TResult | typeof rollback;
1541
+ <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: TransactionConstraint[]): void;
1542
+ <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: TransactionConstraint[]): void;
1543
+ readonly rollback: typeof rollback;
1544
+ }
1545
+
1531
1546
  // @internal
1532
1547
  export class SchemaBuilderBase<TScope extends string, TDefaultKind extends FlexFieldKind, TName extends number | string = string> {
1533
1548
  constructor(defaultKind: TDefaultKind, options: SchemaBuilderOptions<TScope>);
@@ -1585,8 +1600,8 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
1585
1600
  [Symbol.iterator](): Iterator<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<T>>;
1586
1601
  }, false, T>;
1587
1602
  readonly boolean: TreeNodeSchema<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean>;
1588
- readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<FluidObject & IFluidLoadable>, IFluidHandle<FluidObject & IFluidLoadable>>;
1589
- get identifier(): FieldSchema<FieldKind.Identifier>;
1603
+ readonly handle: TreeNodeSchema<"com.fluidframework.leaf.handle", NodeKind.Leaf, IFluidHandle<unknown>, IFluidHandle<unknown>>;
1604
+ get identifier(): FieldSchema<FieldKind.Identifier, typeof SchemaFactory.string>;
1590
1605
  map<const T extends TreeNodeSchema | readonly TreeNodeSchema[]>(allowedTypes: T): TreeNodeSchema<ScopedSchemaName<TScope, `Map<${string}>`>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, `Map<${string}>`>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
1591
1606
  map<Name extends TName, const T extends ImplicitAllowedTypes>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNode<T> & WithType<ScopedSchemaName<TScope, Name>>, Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T>]>, true, T>;
1592
1607
  mapRecursive<Name extends TName, const T extends Unenforced<ImplicitAllowedTypes>>(name: Name, allowedTypes: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Map, TreeMapNodeUnsafe<T> & WithType<ScopedSchemaName<TScope, Name>>, {
@@ -1599,9 +1614,10 @@ export class SchemaFactory<out TScope extends string | undefined = string | unde
1599
1614
  readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
1600
1615
  object<const Name extends TName, const T extends RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>(name: Name, fields: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNode<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecord<T>, true, T>;
1601
1616
  objectRecursive<const Name extends TName, const T extends Unenforced<RestrictiveReadonlyRecord<string, ImplicitFieldSchema>>>(name: Name, t: T): TreeNodeSchemaClass<ScopedSchemaName<TScope, Name>, NodeKind.Object, TreeObjectNodeUnsafe<T, ScopedSchemaName<TScope, Name>>, object & InsertableObjectFromSchemaRecordUnsafe<T>, false, T>;
1602
- optional<const T extends ImplicitAllowedTypes>(t: T, props?: FieldProps): FieldSchema<FieldKind.Optional, T>;
1603
- optionalRecursive<const T extends Unenforced<readonly (() => TreeNodeSchema)[]>>(t: T): FieldSchemaUnsafe<FieldKind.Optional, T>;
1604
- required<const T extends ImplicitAllowedTypes>(t: T, props?: FieldProps): FieldSchema<FieldKind.Required, T>;
1617
+ optional<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Optional, T>;
1618
+ optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
1619
+ required<const T extends ImplicitAllowedTypes>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchema<FieldKind.Required, T>;
1620
+ requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
1605
1621
  // (undocumented)
1606
1622
  readonly scope: TScope;
1607
1623
  readonly string: TreeNodeSchema<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string>;
@@ -1685,19 +1701,6 @@ export interface SharedTreeContentSnapshot {
1685
1701
  readonly tree: JsonableTree[];
1686
1702
  }
1687
1703
 
1688
- // @internal
1689
- export class SharedTreeFactory implements IChannelFactory<ISharedTree> {
1690
- constructor(options?: SharedTreeOptions);
1691
- // (undocumented)
1692
- readonly attributes: IChannelAttributes;
1693
- // (undocumented)
1694
- create(runtime: IFluidDataStoreRuntime, id: string): ISharedTree;
1695
- // (undocumented)
1696
- load(runtime: IFluidDataStoreRuntime, id: string, services: IChannelServices, channelAttributes: Readonly<IChannelAttributes>): Promise<ISharedTree>;
1697
- // (undocumented)
1698
- readonly type: string;
1699
- }
1700
-
1701
1704
  // @internal
1702
1705
  export interface SharedTreeFormatOptions {
1703
1706
  formatVersion: SharedTreeFormatVersion[keyof SharedTreeFormatVersion];
@@ -1707,6 +1710,7 @@ export interface SharedTreeFormatOptions {
1707
1710
  // @internal
1708
1711
  export const SharedTreeFormatVersion: {
1709
1712
  readonly v1: 1;
1713
+ readonly v2: 2;
1710
1714
  };
1711
1715
 
1712
1716
  // @internal
@@ -1766,6 +1770,9 @@ readonly recursive: FieldSchemaUnsafe<FieldKind.Optional, readonly [() => TreeNo
1766
1770
  readonly number: TreeNodeSchema<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number>;
1767
1771
  }>;
1768
1772
 
1773
+ // @public
1774
+ export type TransactionConstraint = NodeInDocumentConstraint;
1775
+
1769
1776
  // @internal
1770
1777
  export enum TransactionResult {
1771
1778
  Abort = 0,
@@ -1786,8 +1793,7 @@ export interface TreeAdapter {
1786
1793
  // @public
1787
1794
  export interface TreeApi extends TreeNodeApi {
1788
1795
  contains(node: TreeNode, other: TreeNode): boolean;
1789
- runTransaction<TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void | "rollback"): void;
1790
- runTransaction<TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void | "rollback"): void;
1796
+ readonly runTransaction: RunTransaction;
1791
1797
  }
1792
1798
 
1793
1799
  // @public
@@ -1801,9 +1807,9 @@ export const TreeArrayNode: {
1801
1807
 
1802
1808
  // @public
1803
1809
  export interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
1804
- insertAt(index: number, ...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
1805
- insertAtEnd(...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
1806
- insertAtStart(...value: (TNew | IterableTreeArrayContent<TNew>)[]): void;
1810
+ insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
1811
+ insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
1812
+ insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
1807
1813
  moveRangeToEnd(sourceStart: number, sourceEnd: number): void;
1808
1814
  moveRangeToEnd(sourceStart: number, sourceEnd: number, source: TMoveFrom): void;
1809
1815
  moveRangeToIndex(index: number, sourceStart: number, sourceEnd: number): void;
@@ -1857,10 +1863,10 @@ export interface TreeDataContext {
1857
1863
  }
1858
1864
 
1859
1865
  // @public
1860
- export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
1866
+ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
1861
1867
 
1862
1868
  // @public
1863
- export type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
1869
+ export type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
1864
1870
 
1865
1871
  // @internal
1866
1872
  export interface TreeFieldStoredSchema {
@@ -1902,16 +1908,17 @@ export const enum TreeNavigationResult {
1902
1908
  // @public
1903
1909
  export abstract class TreeNode implements WithType {
1904
1910
  abstract get [type](): string;
1911
+ protected constructor();
1905
1912
  }
1906
1913
 
1907
1914
  // @public
1908
1915
  export interface TreeNodeApi {
1909
- is<TSchema extends TreeNodeSchema>(value: unknown, schema: TSchema): value is NodeFromSchema<TSchema>;
1916
+ is<TSchema extends ImplicitAllowedTypes>(value: unknown, schema: TSchema): value is TreeNodeFromImplicitAllowedTypes<TSchema>;
1910
1917
  key(node: TreeNode): string | number;
1911
1918
  on<K extends keyof TreeChangeEvents>(node: TreeNode, eventName: K, listener: TreeChangeEvents[K]): () => void;
1912
1919
  parent(node: TreeNode): TreeNode | undefined;
1913
1920
  schema<T extends TreeNode | TreeLeafValue>(node: T): TreeNodeSchema<string, NodeKind, unknown, T>;
1914
- shortId(node: TreeNode): number | undefined;
1921
+ shortId(node: TreeNode): number | string | undefined;
1915
1922
  readonly status: (node: TreeNode) => TreeStatus;
1916
1923
  }
1917
1924
 
@@ -1944,7 +1951,7 @@ export abstract class TreeNodeSchemaBase<const out Name extends string = string,
1944
1951
  // @public
1945
1952
  export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
1946
1953
  // @sealed
1947
- new (data: TInsertable): Unhydrated<TNode>;
1954
+ new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
1948
1955
  }
1949
1956
 
1950
1957
  // @public
@@ -2096,7 +2103,7 @@ export interface ValueFieldEditBuilder {
2096
2103
  }
2097
2104
 
2098
2105
  // @internal
2099
- export type ValueFromBranded<T extends BrandedType<unknown, string>> = T extends BrandedType<infer ValueType, string> ? ValueType : never;
2106
+ export type ValueFromBranded<T extends BrandedType<unknown, unknown>> = T extends BrandedType<infer ValueType, unknown> ? ValueType : never;
2100
2107
 
2101
2108
  // @internal
2102
2109
  export enum ValueSchema {
package/beta.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ /*
7
+ * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
8
+ * Generated by "flub generate entrypoints" in @fluidframework/build-tools.
9
+ */
10
+
11
+ export * from "./lib/beta.js";