@fluidframework/tree 2.41.0-338401 → 2.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (974) hide show
  1. package/CHANGELOG.md +341 -0
  2. package/api-report/tree.alpha.api.md +10 -0
  3. package/dist/alpha.d.ts +1 -0
  4. package/dist/codec/codec.d.ts +10 -0
  5. package/dist/codec/codec.d.ts.map +1 -1
  6. package/dist/codec/codec.js +13 -3
  7. package/dist/codec/codec.js.map +1 -1
  8. package/dist/core/index.d.ts +1 -1
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +2 -1
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/core/rebase/types.d.ts +2 -2
  13. package/dist/core/rebase/types.js +2 -2
  14. package/dist/core/rebase/types.js.map +1 -1
  15. package/dist/core/rebase/utils.d.ts +0 -2
  16. package/dist/core/rebase/utils.d.ts.map +1 -1
  17. package/dist/core/rebase/utils.js +6 -10
  18. package/dist/core/rebase/utils.js.map +1 -1
  19. package/dist/core/schema-stored/formatV1.d.ts +0 -1
  20. package/dist/core/schema-stored/formatV1.d.ts.map +1 -1
  21. package/dist/core/schema-stored/formatV1.js +1 -2
  22. package/dist/core/schema-stored/formatV1.js.map +1 -1
  23. package/dist/core/schema-stored/index.d.ts +1 -1
  24. package/dist/core/schema-stored/index.d.ts.map +1 -1
  25. package/dist/core/schema-stored/index.js +2 -1
  26. package/dist/core/schema-stored/index.js.map +1 -1
  27. package/dist/core/schema-stored/schema.d.ts +6 -0
  28. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  29. package/dist/core/schema-stored/schema.js +8 -1
  30. package/dist/core/schema-stored/schema.js.map +1 -1
  31. package/dist/core/tree/anchorSet.d.ts +2 -1
  32. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  33. package/dist/core/tree/anchorSet.js +2 -1
  34. package/dist/core/tree/anchorSet.js.map +1 -1
  35. package/dist/core/tree/pathTree.d.ts +12 -11
  36. package/dist/core/tree/pathTree.d.ts.map +1 -1
  37. package/dist/core/tree/pathTree.js +8 -7
  38. package/dist/core/tree/pathTree.js.map +1 -1
  39. package/dist/core/tree/treeTextFormat.d.ts +1 -1
  40. package/dist/core/tree/treeTextFormat.js +1 -1
  41. package/dist/core/tree/treeTextFormat.js.map +1 -1
  42. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +1 -1
  43. package/dist/feature-libraries/chunked-forest/chunkedForest.js +1 -1
  44. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  45. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +1 -1
  46. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  47. package/dist/feature-libraries/default-schema/index.d.ts +1 -1
  48. package/dist/feature-libraries/default-schema/index.d.ts.map +1 -1
  49. package/dist/feature-libraries/default-schema/index.js +2 -2
  50. package/dist/feature-libraries/default-schema/index.js.map +1 -1
  51. package/dist/feature-libraries/default-schema/schemaChecker.d.ts +15 -15
  52. package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
  53. package/dist/feature-libraries/default-schema/schemaChecker.js +50 -35
  54. package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
  55. package/dist/feature-libraries/flex-tree/context.d.ts +18 -2
  56. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  57. package/dist/feature-libraries/flex-tree/context.js +22 -6
  58. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  59. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +3 -2
  60. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  61. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +3 -2
  62. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  63. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  64. package/dist/feature-libraries/flex-tree/lazyField.js +1 -1
  65. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  66. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  67. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  68. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -1
  69. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  70. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  71. package/dist/feature-libraries/index.d.ts +2 -2
  72. package/dist/feature-libraries/index.d.ts.map +1 -1
  73. package/dist/feature-libraries/index.js +3 -4
  74. package/dist/feature-libraries/index.js.map +1 -1
  75. package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts +2 -2
  76. package/dist/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
  77. package/dist/feature-libraries/indexing/anchorTreeIndex.js +15 -15
  78. package/dist/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  79. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  80. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  81. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
  82. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  83. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  84. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -1
  85. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +1 -1
  86. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  87. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  88. package/dist/feature-libraries/modular-schema/genericFieldKind.js +2 -2
  89. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  90. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  91. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  92. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  93. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  94. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +0 -2
  95. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  96. package/dist/feature-libraries/modular-schema/isNeverTree.js +0 -2
  97. package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  98. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  99. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  100. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -0
  101. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  102. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +2 -0
  103. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  104. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  105. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  106. package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts.map +1 -1
  107. package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js +8 -3
  108. package/dist/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
  109. package/dist/feature-libraries/object-forest/objectForest.d.ts +22 -5
  110. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  111. package/dist/feature-libraries/object-forest/objectForest.js +296 -207
  112. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  113. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
  114. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  115. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +3 -2
  116. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  117. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  118. package/dist/feature-libraries/schema-index/codec.d.ts +6 -12
  119. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  120. package/dist/feature-libraries/schema-index/codec.js +8 -15
  121. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  122. package/dist/feature-libraries/schema-index/formatV1.d.ts +2 -2
  123. package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
  124. package/dist/feature-libraries/schema-index/formatV1.js +1 -1
  125. package/dist/feature-libraries/schema-index/formatV1.js.map +1 -1
  126. package/dist/feature-libraries/schema-index/index.d.ts +1 -1
  127. package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
  128. package/dist/feature-libraries/schema-index/index.js +1 -2
  129. package/dist/feature-libraries/schema-index/index.js.map +1 -1
  130. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -1
  131. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  132. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  133. package/dist/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
  134. package/dist/feature-libraries/sequence-field/formatV3.js.map +1 -1
  135. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  136. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  137. package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  138. package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
  139. package/dist/feature-libraries/sequence-field/rebase.js +1 -1
  140. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  141. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +1 -1
  142. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  143. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  144. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  145. package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  146. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +1 -1
  147. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
  148. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js +1 -1
  149. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
  150. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +2 -2
  151. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  152. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js +1 -1
  153. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  154. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +1 -1
  155. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  156. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js +2 -2
  157. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  158. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +1 -1
  159. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  160. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  161. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +1 -1
  162. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  163. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  164. package/dist/feature-libraries/sequence-field/utils.d.ts +7 -5
  165. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  166. package/dist/feature-libraries/sequence-field/utils.js +7 -5
  167. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  168. package/dist/feature-libraries/treeCursorUtils.js +2 -2
  169. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  170. package/dist/feature-libraries/treeTextCursor.d.ts +1 -1
  171. package/dist/feature-libraries/treeTextCursor.js +1 -1
  172. package/dist/feature-libraries/treeTextCursor.js.map +1 -1
  173. package/dist/index.d.ts +2 -2
  174. package/dist/index.d.ts.map +1 -1
  175. package/dist/index.js +2 -6
  176. package/dist/index.js.map +1 -1
  177. package/dist/packageVersion.d.ts +1 -1
  178. package/dist/packageVersion.d.ts.map +1 -1
  179. package/dist/packageVersion.js +1 -1
  180. package/dist/packageVersion.js.map +1 -1
  181. package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
  182. package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
  183. package/dist/shared-tree/independentView.d.ts +1 -1
  184. package/dist/shared-tree/independentView.d.ts.map +1 -1
  185. package/dist/shared-tree/independentView.js +8 -3
  186. package/dist/shared-tree/independentView.js.map +1 -1
  187. package/dist/shared-tree/index.d.ts +1 -1
  188. package/dist/shared-tree/index.d.ts.map +1 -1
  189. package/dist/shared-tree/index.js.map +1 -1
  190. package/dist/shared-tree/schematizeTree.d.ts +1 -1
  191. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  192. package/dist/shared-tree/schematizeTree.js.map +1 -1
  193. package/dist/shared-tree/schematizingTreeView.d.ts +1 -1
  194. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  195. package/dist/shared-tree/schematizingTreeView.js +1 -1
  196. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  197. package/dist/shared-tree/sharedTree.d.ts +3 -3
  198. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  199. package/dist/shared-tree/sharedTree.js +8 -8
  200. package/dist/shared-tree/sharedTree.js.map +1 -1
  201. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
  202. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  203. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  204. package/dist/shared-tree/tree.js +1 -1
  205. package/dist/shared-tree/tree.js.map +1 -1
  206. package/dist/shared-tree/treeAlpha.d.ts +76 -2
  207. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  208. package/dist/shared-tree/treeAlpha.js +62 -16
  209. package/dist/shared-tree/treeAlpha.js.map +1 -1
  210. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  211. package/dist/shared-tree/treeCheckout.js +3 -2
  212. package/dist/shared-tree/treeCheckout.js.map +1 -1
  213. package/dist/shared-tree-core/branch.d.ts +2 -2
  214. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  215. package/dist/shared-tree-core/branch.js +2 -2
  216. package/dist/shared-tree-core/branch.js.map +1 -1
  217. package/dist/shared-tree-core/branchCommitEnricher.d.ts +1 -1
  218. package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  219. package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
  220. package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  221. package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  222. package/dist/shared-tree-core/editManager.d.ts +3 -1
  223. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  224. package/dist/shared-tree-core/editManager.js +4 -2
  225. package/dist/shared-tree-core/editManager.js.map +1 -1
  226. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  227. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  228. package/dist/shared-tree-core/editManagerSummarizer.d.ts +1 -1
  229. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  230. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  231. package/dist/shared-tree-core/messageCodecs.d.ts +1 -1
  232. package/dist/shared-tree-core/messageCodecs.js +1 -1
  233. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  234. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  235. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  236. package/dist/shared-tree-core/sharedTreeCore.d.ts +2 -2
  237. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  238. package/dist/shared-tree-core/sharedTreeCore.js +4 -4
  239. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  240. package/dist/shared-tree-core/transaction.d.ts.map +1 -1
  241. package/dist/shared-tree-core/transaction.js +1 -1
  242. package/dist/shared-tree-core/transaction.js.map +1 -1
  243. package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  244. package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
  245. package/dist/simple-tree/api/conciseTree.d.ts.map +1 -1
  246. package/dist/simple-tree/api/conciseTree.js +1 -1
  247. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  248. package/dist/simple-tree/api/configuration.js +4 -4
  249. package/dist/simple-tree/api/configuration.js.map +1 -1
  250. package/dist/simple-tree/api/create.d.ts +2 -26
  251. package/dist/simple-tree/api/create.d.ts.map +1 -1
  252. package/dist/simple-tree/api/create.js +4 -41
  253. package/dist/simple-tree/api/create.js.map +1 -1
  254. package/dist/simple-tree/api/customTree.d.ts +1 -1
  255. package/dist/simple-tree/api/customTree.d.ts.map +1 -1
  256. package/dist/simple-tree/api/customTree.js +24 -24
  257. package/dist/simple-tree/api/customTree.js.map +1 -1
  258. package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
  259. package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
  260. package/dist/simple-tree/api/identifierIndex.js +2 -2
  261. package/dist/simple-tree/api/identifierIndex.js.map +1 -1
  262. package/dist/simple-tree/api/index.d.ts +2 -3
  263. package/dist/simple-tree/api/index.d.ts.map +1 -1
  264. package/dist/simple-tree/api/index.js +2 -9
  265. package/dist/simple-tree/api/index.js.map +1 -1
  266. package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
  267. package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
  268. package/dist/simple-tree/api/schemaFactory.d.ts +5 -5
  269. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  270. package/dist/simple-tree/api/schemaFactory.js +8 -8
  271. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  272. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +1 -3
  273. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  274. package/dist/simple-tree/api/schemaFactoryAlpha.js +4 -6
  275. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  276. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
  277. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  278. package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  279. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  280. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
  281. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  282. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  283. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +4 -6
  284. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  285. package/dist/simple-tree/api/storedSchema.d.ts +1 -1
  286. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  287. package/dist/simple-tree/api/storedSchema.js +7 -6
  288. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  289. package/dist/simple-tree/api/tree.d.ts +2 -2
  290. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  291. package/dist/simple-tree/api/tree.js.map +1 -1
  292. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
  293. package/dist/simple-tree/api/treeBeta.js +1 -1
  294. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  295. package/dist/simple-tree/api/treeNodeApi.d.ts +30 -3
  296. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  297. package/dist/simple-tree/api/treeNodeApi.js +40 -28
  298. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  299. package/dist/simple-tree/api/typesUnsafe.d.ts +1 -1
  300. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  301. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  302. package/dist/simple-tree/api/verboseTree.js +3 -3
  303. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  304. package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
  305. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +4 -6
  306. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
  307. package/dist/simple-tree/core/context.d.ts.map +1 -1
  308. package/dist/simple-tree/core/context.js.map +1 -1
  309. package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
  310. package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  311. package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
  312. package/dist/simple-tree/core/treeNode.d.ts.map +1 -1
  313. package/dist/simple-tree/core/treeNode.js +1 -1
  314. package/dist/simple-tree/core/treeNode.js.map +1 -1
  315. package/dist/simple-tree/core/treeNodeKernel.d.ts +3 -3
  316. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  317. package/dist/simple-tree/core/treeNodeKernel.js +2 -2
  318. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  319. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  320. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  321. package/dist/simple-tree/core/types.d.ts.map +1 -1
  322. package/dist/simple-tree/core/types.js.map +1 -1
  323. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  324. package/dist/simple-tree/core/unhydratedFlexTree.js +21 -21
  325. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  326. package/dist/simple-tree/core/withType.d.ts +1 -1
  327. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  328. package/dist/simple-tree/core/withType.js.map +1 -1
  329. package/dist/simple-tree/createContext.d.ts.map +1 -1
  330. package/dist/simple-tree/createContext.js.map +1 -1
  331. package/dist/simple-tree/getTreeNodeForField.d.ts.map +1 -1
  332. package/dist/simple-tree/getTreeNodeForField.js.map +1 -1
  333. package/dist/simple-tree/index.d.ts +2 -9
  334. package/dist/simple-tree/index.d.ts.map +1 -1
  335. package/dist/simple-tree/index.js +13 -21
  336. package/dist/simple-tree/index.js.map +1 -1
  337. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  338. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  339. package/dist/simple-tree/{arrayNode.d.ts → node-kinds/array/arrayNode.d.ts} +3 -3
  340. package/dist/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -0
  341. package/dist/simple-tree/{arrayNode.js → node-kinds/array/arrayNode.js} +9 -9
  342. package/dist/simple-tree/node-kinds/array/arrayNode.js.map +1 -0
  343. package/dist/simple-tree/{arrayNodeTypes.d.ts → node-kinds/array/arrayNodeTypes.d.ts} +3 -3
  344. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -0
  345. package/dist/simple-tree/{arrayNodeTypes.js → node-kinds/array/arrayNodeTypes.js} +1 -1
  346. package/dist/simple-tree/node-kinds/array/arrayNodeTypes.js.map +1 -0
  347. package/dist/simple-tree/node-kinds/array/index.d.ts +7 -0
  348. package/dist/simple-tree/node-kinds/array/index.d.ts.map +1 -0
  349. package/dist/simple-tree/node-kinds/array/index.js +16 -0
  350. package/dist/simple-tree/node-kinds/array/index.js.map +1 -0
  351. package/dist/simple-tree/node-kinds/index.d.ts +8 -0
  352. package/dist/simple-tree/node-kinds/index.d.ts.map +1 -0
  353. package/dist/simple-tree/node-kinds/index.js +26 -0
  354. package/dist/simple-tree/node-kinds/index.js.map +1 -0
  355. package/dist/simple-tree/node-kinds/map/index.d.ts +7 -0
  356. package/dist/simple-tree/node-kinds/map/index.d.ts.map +1 -0
  357. package/dist/simple-tree/node-kinds/map/index.js +13 -0
  358. package/dist/simple-tree/node-kinds/map/index.js.map +1 -0
  359. package/{lib/simple-tree → dist/simple-tree/node-kinds/map}/mapNode.d.ts +3 -3
  360. package/dist/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -0
  361. package/dist/simple-tree/{mapNode.js → node-kinds/map/mapNode.js} +8 -8
  362. package/dist/simple-tree/node-kinds/map/mapNode.js.map +1 -0
  363. package/dist/simple-tree/{mapNodeTypes.d.ts → node-kinds/map/mapNodeTypes.d.ts} +3 -3
  364. package/dist/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -0
  365. package/dist/simple-tree/{mapNodeTypes.js → node-kinds/map/mapNodeTypes.js} +1 -1
  366. package/dist/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -0
  367. package/dist/simple-tree/node-kinds/object/index.d.ts +7 -0
  368. package/dist/simple-tree/node-kinds/object/index.d.ts.map +1 -0
  369. package/dist/simple-tree/node-kinds/object/index.js +16 -0
  370. package/dist/simple-tree/node-kinds/object/index.js.map +1 -0
  371. package/{lib/simple-tree → dist/simple-tree/node-kinds/object}/objectNode.d.ts +17 -6
  372. package/dist/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -0
  373. package/dist/simple-tree/{objectNode.js → node-kinds/object/objectNode.js} +47 -24
  374. package/dist/simple-tree/node-kinds/object/objectNode.js.map +1 -0
  375. package/{lib/simple-tree → dist/simple-tree/node-kinds/object}/objectNodeTypes.d.ts +5 -5
  376. package/dist/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -0
  377. package/dist/simple-tree/{objectNodeTypes.js → node-kinds/object/objectNodeTypes.js} +1 -1
  378. package/dist/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -0
  379. package/dist/simple-tree/prepareForInsertion.js.map +1 -1
  380. package/dist/simple-tree/schemaTypes.d.ts +2 -2
  381. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  382. package/dist/simple-tree/schemaTypes.js.map +1 -1
  383. package/dist/simple-tree/simpleSchema.d.ts.map +1 -1
  384. package/dist/simple-tree/simpleSchema.js.map +1 -1
  385. package/dist/simple-tree/toMapTree.d.ts +1 -16
  386. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  387. package/dist/simple-tree/toMapTree.js +41 -1
  388. package/dist/simple-tree/toMapTree.js.map +1 -1
  389. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  390. package/dist/simple-tree/toStoredSchema.js +1 -1
  391. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  392. package/dist/simple-tree/treeNodeValid.d.ts +1 -1
  393. package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
  394. package/dist/simple-tree/treeNodeValid.js +10 -10
  395. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  396. package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -1
  397. package/dist/simple-tree/walkFieldSchema.js.map +1 -1
  398. package/dist/tableSchema.d.ts +10 -10
  399. package/dist/treeFactory.d.ts +1 -1
  400. package/dist/treeFactory.js +1 -1
  401. package/dist/treeFactory.js.map +1 -1
  402. package/dist/util/bTreeUtils.d.ts.map +1 -1
  403. package/dist/util/bTreeUtils.js.map +1 -1
  404. package/dist/util/breakable.d.ts +23 -4
  405. package/dist/util/breakable.d.ts.map +1 -1
  406. package/dist/util/breakable.js +12 -3
  407. package/dist/util/breakable.js.map +1 -1
  408. package/docs/SharedTree Philosophy.md +5 -5
  409. package/lib/alpha.d.ts +1 -0
  410. package/lib/codec/codec.d.ts +10 -0
  411. package/lib/codec/codec.d.ts.map +1 -1
  412. package/lib/codec/codec.js +13 -3
  413. package/lib/codec/codec.js.map +1 -1
  414. package/lib/core/index.d.ts +1 -1
  415. package/lib/core/index.d.ts.map +1 -1
  416. package/lib/core/index.js +1 -1
  417. package/lib/core/index.js.map +1 -1
  418. package/lib/core/rebase/types.d.ts +2 -2
  419. package/lib/core/rebase/types.js +2 -2
  420. package/lib/core/rebase/types.js.map +1 -1
  421. package/lib/core/rebase/utils.d.ts +0 -2
  422. package/lib/core/rebase/utils.d.ts.map +1 -1
  423. package/lib/core/rebase/utils.js +6 -10
  424. package/lib/core/rebase/utils.js.map +1 -1
  425. package/lib/core/schema-stored/formatV1.d.ts +0 -1
  426. package/lib/core/schema-stored/formatV1.d.ts.map +1 -1
  427. package/lib/core/schema-stored/formatV1.js +0 -1
  428. package/lib/core/schema-stored/formatV1.js.map +1 -1
  429. package/lib/core/schema-stored/index.d.ts +1 -1
  430. package/lib/core/schema-stored/index.d.ts.map +1 -1
  431. package/lib/core/schema-stored/index.js +1 -1
  432. package/lib/core/schema-stored/index.js.map +1 -1
  433. package/lib/core/schema-stored/schema.d.ts +6 -0
  434. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  435. package/lib/core/schema-stored/schema.js +7 -0
  436. package/lib/core/schema-stored/schema.js.map +1 -1
  437. package/lib/core/tree/anchorSet.d.ts +2 -1
  438. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  439. package/lib/core/tree/anchorSet.js +2 -1
  440. package/lib/core/tree/anchorSet.js.map +1 -1
  441. package/lib/core/tree/pathTree.d.ts +12 -11
  442. package/lib/core/tree/pathTree.d.ts.map +1 -1
  443. package/lib/core/tree/pathTree.js +8 -7
  444. package/lib/core/tree/pathTree.js.map +1 -1
  445. package/lib/core/tree/treeTextFormat.d.ts +1 -1
  446. package/lib/core/tree/treeTextFormat.js +1 -1
  447. package/lib/core/tree/treeTextFormat.js.map +1 -1
  448. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +1 -1
  449. package/lib/feature-libraries/chunked-forest/chunkedForest.js +1 -1
  450. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  451. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +1 -1
  452. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  453. package/lib/feature-libraries/default-schema/index.d.ts +1 -1
  454. package/lib/feature-libraries/default-schema/index.d.ts.map +1 -1
  455. package/lib/feature-libraries/default-schema/index.js +1 -1
  456. package/lib/feature-libraries/default-schema/index.js.map +1 -1
  457. package/lib/feature-libraries/default-schema/schemaChecker.d.ts +15 -15
  458. package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
  459. package/lib/feature-libraries/default-schema/schemaChecker.js +49 -34
  460. package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
  461. package/lib/feature-libraries/flex-tree/context.d.ts +18 -2
  462. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  463. package/lib/feature-libraries/flex-tree/context.js +23 -7
  464. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  465. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +3 -2
  466. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  467. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +3 -2
  468. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  469. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  470. package/lib/feature-libraries/flex-tree/lazyField.js +1 -1
  471. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  472. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  473. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  474. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -1
  475. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  476. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  477. package/lib/feature-libraries/index.d.ts +2 -2
  478. package/lib/feature-libraries/index.d.ts.map +1 -1
  479. package/lib/feature-libraries/index.js +2 -2
  480. package/lib/feature-libraries/index.js.map +1 -1
  481. package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts +2 -2
  482. package/lib/feature-libraries/indexing/anchorTreeIndex.d.ts.map +1 -1
  483. package/lib/feature-libraries/indexing/anchorTreeIndex.js +1 -1
  484. package/lib/feature-libraries/indexing/anchorTreeIndex.js.map +1 -1
  485. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  486. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  487. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
  488. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  489. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  490. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +1 -1
  491. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +1 -1
  492. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  493. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  494. package/lib/feature-libraries/modular-schema/genericFieldKind.js +2 -2
  495. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  496. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  497. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  498. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  499. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  500. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +0 -2
  501. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  502. package/lib/feature-libraries/modular-schema/isNeverTree.js +0 -2
  503. package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  504. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  505. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  506. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -0
  507. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  508. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +2 -0
  509. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  510. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  511. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  512. package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.d.ts.map +1 -1
  513. package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js +8 -3
  514. package/lib/feature-libraries/node-identifier/mockNodeIdentifierManager.js.map +1 -1
  515. package/lib/feature-libraries/object-forest/objectForest.d.ts +22 -5
  516. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  517. package/lib/feature-libraries/object-forest/objectForest.js +299 -209
  518. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  519. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
  520. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  521. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +4 -3
  522. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  523. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  524. package/lib/feature-libraries/schema-index/codec.d.ts +6 -12
  525. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  526. package/lib/feature-libraries/schema-index/codec.js +8 -15
  527. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  528. package/lib/feature-libraries/schema-index/formatV1.d.ts +2 -2
  529. package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -1
  530. package/lib/feature-libraries/schema-index/formatV1.js +2 -2
  531. package/lib/feature-libraries/schema-index/formatV1.js.map +1 -1
  532. package/lib/feature-libraries/schema-index/index.d.ts +1 -1
  533. package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
  534. package/lib/feature-libraries/schema-index/index.js +1 -1
  535. package/lib/feature-libraries/schema-index/index.js.map +1 -1
  536. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +1 -1
  537. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  538. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  539. package/lib/feature-libraries/sequence-field/formatV3.d.ts.map +1 -1
  540. package/lib/feature-libraries/sequence-field/formatV3.js.map +1 -1
  541. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  542. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  543. package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  544. package/lib/feature-libraries/sequence-field/prune.js.map +1 -1
  545. package/lib/feature-libraries/sequence-field/rebase.js +1 -1
  546. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  547. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +1 -1
  548. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  549. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  550. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  551. package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  552. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +1 -1
  553. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
  554. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js +1 -1
  555. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
  556. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +2 -2
  557. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  558. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js +1 -1
  559. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  560. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts +1 -1
  561. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.d.ts.map +1 -1
  562. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js +2 -2
  563. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV3.js.map +1 -1
  564. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +1 -1
  565. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  566. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  567. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +1 -1
  568. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  569. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  570. package/lib/feature-libraries/sequence-field/utils.d.ts +7 -5
  571. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  572. package/lib/feature-libraries/sequence-field/utils.js +7 -5
  573. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  574. package/lib/feature-libraries/treeCursorUtils.js +2 -2
  575. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  576. package/lib/feature-libraries/treeTextCursor.d.ts +1 -1
  577. package/lib/feature-libraries/treeTextCursor.js +1 -1
  578. package/lib/feature-libraries/treeTextCursor.js.map +1 -1
  579. package/lib/index.d.ts +2 -2
  580. package/lib/index.d.ts.map +1 -1
  581. package/lib/index.js +0 -2
  582. package/lib/index.js.map +1 -1
  583. package/lib/packageVersion.d.ts +1 -1
  584. package/lib/packageVersion.d.ts.map +1 -1
  585. package/lib/packageVersion.js +1 -1
  586. package/lib/packageVersion.js.map +1 -1
  587. package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
  588. package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
  589. package/lib/shared-tree/independentView.d.ts +1 -1
  590. package/lib/shared-tree/independentView.d.ts.map +1 -1
  591. package/lib/shared-tree/independentView.js +10 -5
  592. package/lib/shared-tree/independentView.js.map +1 -1
  593. package/lib/shared-tree/index.d.ts +1 -1
  594. package/lib/shared-tree/index.d.ts.map +1 -1
  595. package/lib/shared-tree/index.js +1 -1
  596. package/lib/shared-tree/index.js.map +1 -1
  597. package/lib/shared-tree/schematizeTree.d.ts +1 -1
  598. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  599. package/lib/shared-tree/schematizeTree.js.map +1 -1
  600. package/lib/shared-tree/schematizingTreeView.d.ts +1 -1
  601. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  602. package/lib/shared-tree/schematizingTreeView.js +1 -1
  603. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  604. package/lib/shared-tree/sharedTree.d.ts +3 -3
  605. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  606. package/lib/shared-tree/sharedTree.js +10 -10
  607. package/lib/shared-tree/sharedTree.js.map +1 -1
  608. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +1 -1
  609. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  610. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  611. package/lib/shared-tree/tree.js +1 -1
  612. package/lib/shared-tree/tree.js.map +1 -1
  613. package/lib/shared-tree/treeAlpha.d.ts +76 -2
  614. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  615. package/lib/shared-tree/treeAlpha.js +50 -4
  616. package/lib/shared-tree/treeAlpha.js.map +1 -1
  617. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  618. package/lib/shared-tree/treeCheckout.js +3 -2
  619. package/lib/shared-tree/treeCheckout.js.map +1 -1
  620. package/lib/shared-tree-core/branch.d.ts +2 -2
  621. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  622. package/lib/shared-tree-core/branch.js +2 -2
  623. package/lib/shared-tree-core/branch.js.map +1 -1
  624. package/lib/shared-tree-core/branchCommitEnricher.d.ts +1 -1
  625. package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  626. package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
  627. package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  628. package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  629. package/lib/shared-tree-core/editManager.d.ts +3 -1
  630. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  631. package/lib/shared-tree-core/editManager.js +4 -2
  632. package/lib/shared-tree-core/editManager.js.map +1 -1
  633. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  634. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  635. package/lib/shared-tree-core/editManagerSummarizer.d.ts +1 -1
  636. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  637. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  638. package/lib/shared-tree-core/messageCodecs.d.ts +1 -1
  639. package/lib/shared-tree-core/messageCodecs.js +1 -1
  640. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  641. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  642. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  643. package/lib/shared-tree-core/sharedTreeCore.d.ts +2 -2
  644. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  645. package/lib/shared-tree-core/sharedTreeCore.js +4 -4
  646. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  647. package/lib/shared-tree-core/transaction.d.ts.map +1 -1
  648. package/lib/shared-tree-core/transaction.js +1 -1
  649. package/lib/shared-tree-core/transaction.js.map +1 -1
  650. package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  651. package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
  652. package/lib/simple-tree/api/conciseTree.d.ts.map +1 -1
  653. package/lib/simple-tree/api/conciseTree.js +1 -1
  654. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  655. package/lib/simple-tree/api/configuration.js +1 -1
  656. package/lib/simple-tree/api/configuration.js.map +1 -1
  657. package/lib/simple-tree/api/create.d.ts +2 -26
  658. package/lib/simple-tree/api/create.d.ts.map +1 -1
  659. package/lib/simple-tree/api/create.js +2 -37
  660. package/lib/simple-tree/api/create.js.map +1 -1
  661. package/lib/simple-tree/api/customTree.d.ts +1 -1
  662. package/lib/simple-tree/api/customTree.d.ts.map +1 -1
  663. package/lib/simple-tree/api/customTree.js +3 -3
  664. package/lib/simple-tree/api/customTree.js.map +1 -1
  665. package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
  666. package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
  667. package/lib/simple-tree/api/identifierIndex.js +1 -1
  668. package/lib/simple-tree/api/identifierIndex.js.map +1 -1
  669. package/lib/simple-tree/api/index.d.ts +2 -3
  670. package/lib/simple-tree/api/index.d.ts.map +1 -1
  671. package/lib/simple-tree/api/index.js +2 -5
  672. package/lib/simple-tree/api/index.js.map +1 -1
  673. package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -1
  674. package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -1
  675. package/lib/simple-tree/api/schemaFactory.d.ts +5 -5
  676. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  677. package/lib/simple-tree/api/schemaFactory.js +5 -5
  678. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  679. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +1 -3
  680. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  681. package/lib/simple-tree/api/schemaFactoryAlpha.js +1 -3
  682. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  683. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +2 -2
  684. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  685. package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  686. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  687. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
  688. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  689. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  690. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +1 -3
  691. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  692. package/lib/simple-tree/api/storedSchema.d.ts +1 -1
  693. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  694. package/lib/simple-tree/api/storedSchema.js +3 -2
  695. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  696. package/lib/simple-tree/api/tree.d.ts +2 -2
  697. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  698. package/lib/simple-tree/api/tree.js.map +1 -1
  699. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
  700. package/lib/simple-tree/api/treeBeta.js +1 -1
  701. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  702. package/lib/simple-tree/api/treeNodeApi.d.ts +30 -3
  703. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  704. package/lib/simple-tree/api/treeNodeApi.js +37 -26
  705. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  706. package/lib/simple-tree/api/typesUnsafe.d.ts +1 -1
  707. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  708. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  709. package/lib/simple-tree/api/verboseTree.js +1 -1
  710. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  711. package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
  712. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +1 -3
  713. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
  714. package/lib/simple-tree/core/context.d.ts.map +1 -1
  715. package/lib/simple-tree/core/context.js.map +1 -1
  716. package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
  717. package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  718. package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
  719. package/lib/simple-tree/core/treeNode.d.ts.map +1 -1
  720. package/lib/simple-tree/core/treeNode.js +1 -1
  721. package/lib/simple-tree/core/treeNode.js.map +1 -1
  722. package/lib/simple-tree/core/treeNodeKernel.d.ts +3 -3
  723. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  724. package/lib/simple-tree/core/treeNodeKernel.js +2 -2
  725. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  726. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  727. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  728. package/lib/simple-tree/core/types.d.ts.map +1 -1
  729. package/lib/simple-tree/core/types.js.map +1 -1
  730. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  731. package/lib/simple-tree/core/unhydratedFlexTree.js +3 -3
  732. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  733. package/lib/simple-tree/core/withType.d.ts +1 -1
  734. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  735. package/lib/simple-tree/core/withType.js.map +1 -1
  736. package/lib/simple-tree/createContext.d.ts.map +1 -1
  737. package/lib/simple-tree/createContext.js.map +1 -1
  738. package/lib/simple-tree/getTreeNodeForField.d.ts.map +1 -1
  739. package/lib/simple-tree/getTreeNodeForField.js.map +1 -1
  740. package/lib/simple-tree/index.d.ts +2 -9
  741. package/lib/simple-tree/index.d.ts.map +1 -1
  742. package/lib/simple-tree/index.js +2 -6
  743. package/lib/simple-tree/index.js.map +1 -1
  744. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  745. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  746. package/lib/simple-tree/{arrayNode.d.ts → node-kinds/array/arrayNode.d.ts} +3 -3
  747. package/lib/simple-tree/node-kinds/array/arrayNode.d.ts.map +1 -0
  748. package/lib/simple-tree/{arrayNode.js → node-kinds/array/arrayNode.js} +9 -9
  749. package/lib/simple-tree/node-kinds/array/arrayNode.js.map +1 -0
  750. package/lib/simple-tree/{arrayNodeTypes.d.ts → node-kinds/array/arrayNodeTypes.d.ts} +3 -3
  751. package/lib/simple-tree/node-kinds/array/arrayNodeTypes.d.ts.map +1 -0
  752. package/lib/simple-tree/{arrayNodeTypes.js → node-kinds/array/arrayNodeTypes.js} +1 -1
  753. package/{dist/simple-tree → lib/simple-tree/node-kinds/array}/arrayNodeTypes.js.map +1 -1
  754. package/lib/simple-tree/node-kinds/array/index.d.ts +7 -0
  755. package/lib/simple-tree/node-kinds/array/index.d.ts.map +1 -0
  756. package/lib/simple-tree/node-kinds/array/index.js +7 -0
  757. package/lib/simple-tree/node-kinds/array/index.js.map +1 -0
  758. package/lib/simple-tree/node-kinds/index.d.ts +8 -0
  759. package/lib/simple-tree/node-kinds/index.d.ts.map +1 -0
  760. package/lib/simple-tree/node-kinds/index.js +8 -0
  761. package/lib/simple-tree/node-kinds/index.js.map +1 -0
  762. package/lib/simple-tree/node-kinds/map/index.d.ts +7 -0
  763. package/lib/simple-tree/node-kinds/map/index.d.ts.map +1 -0
  764. package/lib/simple-tree/node-kinds/map/index.js +7 -0
  765. package/lib/simple-tree/node-kinds/map/index.js.map +1 -0
  766. package/{dist/simple-tree → lib/simple-tree/node-kinds/map}/mapNode.d.ts +3 -3
  767. package/lib/simple-tree/node-kinds/map/mapNode.d.ts.map +1 -0
  768. package/lib/simple-tree/{mapNode.js → node-kinds/map/mapNode.js} +8 -8
  769. package/lib/simple-tree/node-kinds/map/mapNode.js.map +1 -0
  770. package/lib/simple-tree/{mapNodeTypes.d.ts → node-kinds/map/mapNodeTypes.d.ts} +3 -3
  771. package/lib/simple-tree/node-kinds/map/mapNodeTypes.d.ts.map +1 -0
  772. package/lib/simple-tree/{mapNodeTypes.js → node-kinds/map/mapNodeTypes.js} +1 -1
  773. package/lib/simple-tree/node-kinds/map/mapNodeTypes.js.map +1 -0
  774. package/lib/simple-tree/node-kinds/object/index.d.ts +7 -0
  775. package/lib/simple-tree/node-kinds/object/index.d.ts.map +1 -0
  776. package/lib/simple-tree/node-kinds/object/index.js +7 -0
  777. package/lib/simple-tree/node-kinds/object/index.js.map +1 -0
  778. package/{dist/simple-tree → lib/simple-tree/node-kinds/object}/objectNode.d.ts +17 -6
  779. package/lib/simple-tree/node-kinds/object/objectNode.d.ts.map +1 -0
  780. package/lib/simple-tree/{objectNode.js → node-kinds/object/objectNode.js} +35 -13
  781. package/lib/simple-tree/node-kinds/object/objectNode.js.map +1 -0
  782. package/{dist/simple-tree → lib/simple-tree/node-kinds/object}/objectNodeTypes.d.ts +5 -5
  783. package/lib/simple-tree/node-kinds/object/objectNodeTypes.d.ts.map +1 -0
  784. package/lib/simple-tree/{objectNodeTypes.js → node-kinds/object/objectNodeTypes.js} +1 -1
  785. package/lib/simple-tree/node-kinds/object/objectNodeTypes.js.map +1 -0
  786. package/lib/simple-tree/prepareForInsertion.js.map +1 -1
  787. package/lib/simple-tree/schemaTypes.d.ts +2 -2
  788. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  789. package/lib/simple-tree/schemaTypes.js.map +1 -1
  790. package/lib/simple-tree/simpleSchema.d.ts.map +1 -1
  791. package/lib/simple-tree/simpleSchema.js.map +1 -1
  792. package/lib/simple-tree/toMapTree.d.ts +1 -16
  793. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  794. package/lib/simple-tree/toMapTree.js +41 -1
  795. package/lib/simple-tree/toMapTree.js.map +1 -1
  796. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  797. package/lib/simple-tree/toStoredSchema.js +1 -1
  798. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  799. package/lib/simple-tree/treeNodeValid.d.ts +1 -1
  800. package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
  801. package/lib/simple-tree/treeNodeValid.js +2 -2
  802. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  803. package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -1
  804. package/lib/simple-tree/walkFieldSchema.js.map +1 -1
  805. package/lib/tableSchema.d.ts +10 -10
  806. package/lib/treeFactory.d.ts +1 -1
  807. package/lib/treeFactory.js +1 -1
  808. package/lib/treeFactory.js.map +1 -1
  809. package/lib/util/bTreeUtils.d.ts.map +1 -1
  810. package/lib/util/bTreeUtils.js.map +1 -1
  811. package/lib/util/breakable.d.ts +23 -4
  812. package/lib/util/breakable.d.ts.map +1 -1
  813. package/lib/util/breakable.js +12 -3
  814. package/lib/util/breakable.js.map +1 -1
  815. package/package.json +21 -21
  816. package/src/codec/codec.ts +13 -3
  817. package/src/core/index.ts +1 -0
  818. package/src/core/rebase/types.ts +2 -2
  819. package/src/core/rebase/utils.ts +10 -10
  820. package/src/core/schema-stored/formatV1.ts +0 -2
  821. package/src/core/schema-stored/index.ts +1 -0
  822. package/src/core/schema-stored/schema.ts +7 -0
  823. package/src/core/tree/anchorSet.ts +2 -1
  824. package/src/core/tree/pathTree.ts +12 -11
  825. package/src/core/tree/treeTextFormat.ts +1 -1
  826. package/src/feature-libraries/chunked-forest/chunkedForest.ts +1 -1
  827. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +1 -1
  828. package/src/feature-libraries/default-schema/index.ts +1 -1
  829. package/src/feature-libraries/default-schema/schemaChecker.ts +44 -29
  830. package/src/feature-libraries/flex-tree/context.ts +29 -8
  831. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +3 -2
  832. package/src/feature-libraries/flex-tree/lazyField.ts +1 -1
  833. package/src/feature-libraries/flex-tree/utilities.ts +1 -1
  834. package/src/feature-libraries/forest-summary/forestSummarizer.ts +1 -1
  835. package/src/feature-libraries/index.ts +1 -2
  836. package/src/feature-libraries/indexing/anchorTreeIndex.ts +4 -2
  837. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +1 -0
  838. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +1 -1
  839. package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +1 -1
  840. package/src/feature-libraries/modular-schema/genericFieldKind.ts +4 -2
  841. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +1 -0
  842. package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +1 -0
  843. package/src/feature-libraries/modular-schema/isNeverTree.ts +0 -2
  844. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +1 -1
  845. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +2 -0
  846. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +1 -0
  847. package/src/feature-libraries/node-identifier/mockNodeIdentifierManager.ts +11 -5
  848. package/src/feature-libraries/object-forest/objectForest.ts +65 -7
  849. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +5 -8
  850. package/src/feature-libraries/schema-index/codec.ts +13 -21
  851. package/src/feature-libraries/schema-index/formatV1.ts +2 -2
  852. package/src/feature-libraries/schema-index/index.ts +0 -1
  853. package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -1
  854. package/src/feature-libraries/sequence-field/formatV3.ts +1 -0
  855. package/src/feature-libraries/sequence-field/markQueue.ts +1 -0
  856. package/src/feature-libraries/sequence-field/prune.ts +1 -0
  857. package/src/feature-libraries/sequence-field/rebase.ts +1 -1
  858. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +1 -1
  859. package/src/feature-libraries/sequence-field/replaceRevisions.ts +3 -1
  860. package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +2 -2
  861. package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +3 -3
  862. package/src/feature-libraries/sequence-field/sequenceFieldCodecV3.ts +3 -3
  863. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +2 -2
  864. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +1 -1
  865. package/src/feature-libraries/sequence-field/utils.ts +7 -5
  866. package/src/feature-libraries/treeCursorUtils.ts +2 -2
  867. package/src/feature-libraries/treeTextCursor.ts +1 -1
  868. package/src/index.ts +1 -4
  869. package/src/packageVersion.ts +1 -1
  870. package/src/shared-tree/checkoutFlexTreeView.ts +1 -0
  871. package/src/shared-tree/independentView.ts +10 -3
  872. package/src/shared-tree/index.ts +4 -1
  873. package/src/shared-tree/schematizeTree.ts +2 -1
  874. package/src/shared-tree/schematizingTreeView.ts +2 -2
  875. package/src/shared-tree/sharedTree.ts +26 -19
  876. package/src/shared-tree/sharedTreeChangeFamily.ts +1 -1
  877. package/src/shared-tree/tree.ts +1 -1
  878. package/src/shared-tree/treeAlpha.ts +142 -18
  879. package/src/shared-tree/treeCheckout.ts +3 -2
  880. package/src/shared-tree-core/branch.ts +3 -4
  881. package/src/shared-tree-core/branchCommitEnricher.ts +3 -1
  882. package/src/shared-tree-core/defaultResubmitMachine.ts +2 -0
  883. package/src/shared-tree-core/editManager.ts +4 -2
  884. package/src/shared-tree-core/editManagerCodecs.ts +1 -0
  885. package/src/shared-tree-core/editManagerSummarizer.ts +1 -1
  886. package/src/shared-tree-core/messageCodecs.ts +1 -1
  887. package/src/shared-tree-core/sequenceIdUtils.ts +1 -0
  888. package/src/shared-tree-core/sharedTreeCore.ts +5 -5
  889. package/src/shared-tree-core/transaction.ts +4 -2
  890. package/src/shared-tree-core/transactionEnricher.ts +2 -0
  891. package/src/simple-tree/api/conciseTree.ts +3 -2
  892. package/src/simple-tree/api/configuration.ts +1 -1
  893. package/src/simple-tree/api/create.ts +3 -80
  894. package/src/simple-tree/api/customTree.ts +4 -4
  895. package/src/simple-tree/api/getSimpleSchema.ts +1 -0
  896. package/src/simple-tree/api/identifierIndex.ts +1 -1
  897. package/src/simple-tree/api/index.ts +1 -10
  898. package/src/simple-tree/api/schemaCompatibilityTester.ts +2 -0
  899. package/src/simple-tree/api/schemaFactory.ts +28 -23
  900. package/src/simple-tree/api/schemaFactoryAlpha.ts +8 -6
  901. package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -3
  902. package/src/simple-tree/api/schemaFromSimple.ts +3 -1
  903. package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -3
  904. package/src/simple-tree/api/storedSchema.ts +5 -4
  905. package/src/simple-tree/api/tree.ts +3 -4
  906. package/src/simple-tree/api/treeBeta.ts +3 -2
  907. package/src/simple-tree/api/treeNodeApi.ts +89 -40
  908. package/src/simple-tree/api/typesUnsafe.ts +1 -1
  909. package/src/simple-tree/api/verboseTree.ts +1 -1
  910. package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +1 -3
  911. package/src/simple-tree/core/context.ts +1 -0
  912. package/src/simple-tree/core/getOrCreateNode.ts +2 -1
  913. package/src/simple-tree/core/treeNode.ts +1 -1
  914. package/src/simple-tree/core/treeNodeKernel.ts +10 -8
  915. package/src/simple-tree/core/treeNodeSchema.ts +1 -0
  916. package/src/simple-tree/core/types.ts +1 -1
  917. package/src/simple-tree/core/unhydratedFlexTree.ts +4 -3
  918. package/src/simple-tree/core/withType.ts +1 -1
  919. package/src/simple-tree/createContext.ts +1 -0
  920. package/src/simple-tree/getTreeNodeForField.ts +2 -0
  921. package/src/simple-tree/index.ts +14 -21
  922. package/src/simple-tree/leafNodeSchema.ts +1 -0
  923. package/src/simple-tree/{arrayNode.ts → node-kinds/array/arrayNode.ts} +10 -10
  924. package/src/simple-tree/{arrayNodeTypes.ts → node-kinds/array/arrayNodeTypes.ts} +3 -3
  925. package/src/simple-tree/node-kinds/array/index.ts +18 -0
  926. package/src/simple-tree/node-kinds/index.ts +40 -0
  927. package/src/simple-tree/node-kinds/map/index.ts +16 -0
  928. package/src/simple-tree/{mapNode.ts → node-kinds/map/mapNode.ts} +10 -10
  929. package/src/simple-tree/{mapNodeTypes.ts → node-kinds/map/mapNodeTypes.ts} +3 -3
  930. package/src/simple-tree/node-kinds/object/index.ts +17 -0
  931. package/src/simple-tree/{objectNode.ts → node-kinds/object/objectNode.ts} +63 -34
  932. package/src/simple-tree/{objectNodeTypes.ts → node-kinds/object/objectNodeTypes.ts} +5 -5
  933. package/src/simple-tree/prepareForInsertion.ts +1 -1
  934. package/src/simple-tree/schemaTypes.ts +4 -3
  935. package/src/simple-tree/simpleSchema.ts +1 -0
  936. package/src/simple-tree/toMapTree.ts +11 -30
  937. package/src/simple-tree/toStoredSchema.ts +3 -2
  938. package/src/simple-tree/treeNodeValid.ts +3 -3
  939. package/src/simple-tree/walkFieldSchema.ts +0 -1
  940. package/src/treeFactory.ts +1 -1
  941. package/src/util/bTreeUtils.ts +1 -0
  942. package/src/util/breakable.ts +19 -4
  943. package/dist/simple-tree/api/testRecursiveDomain.d.ts +0 -62
  944. package/dist/simple-tree/api/testRecursiveDomain.d.ts.map +0 -1
  945. package/dist/simple-tree/api/testRecursiveDomain.js +0 -45
  946. package/dist/simple-tree/api/testRecursiveDomain.js.map +0 -1
  947. package/dist/simple-tree/arrayNode.d.ts.map +0 -1
  948. package/dist/simple-tree/arrayNode.js.map +0 -1
  949. package/dist/simple-tree/arrayNodeTypes.d.ts.map +0 -1
  950. package/dist/simple-tree/mapNode.d.ts.map +0 -1
  951. package/dist/simple-tree/mapNode.js.map +0 -1
  952. package/dist/simple-tree/mapNodeTypes.d.ts.map +0 -1
  953. package/dist/simple-tree/mapNodeTypes.js.map +0 -1
  954. package/dist/simple-tree/objectNode.d.ts.map +0 -1
  955. package/dist/simple-tree/objectNode.js.map +0 -1
  956. package/dist/simple-tree/objectNodeTypes.d.ts.map +0 -1
  957. package/dist/simple-tree/objectNodeTypes.js.map +0 -1
  958. package/lib/simple-tree/api/testRecursiveDomain.d.ts +0 -62
  959. package/lib/simple-tree/api/testRecursiveDomain.d.ts.map +0 -1
  960. package/lib/simple-tree/api/testRecursiveDomain.js +0 -41
  961. package/lib/simple-tree/api/testRecursiveDomain.js.map +0 -1
  962. package/lib/simple-tree/arrayNode.d.ts.map +0 -1
  963. package/lib/simple-tree/arrayNode.js.map +0 -1
  964. package/lib/simple-tree/arrayNodeTypes.d.ts.map +0 -1
  965. package/lib/simple-tree/arrayNodeTypes.js.map +0 -1
  966. package/lib/simple-tree/mapNode.d.ts.map +0 -1
  967. package/lib/simple-tree/mapNode.js.map +0 -1
  968. package/lib/simple-tree/mapNodeTypes.d.ts.map +0 -1
  969. package/lib/simple-tree/mapNodeTypes.js.map +0 -1
  970. package/lib/simple-tree/objectNode.d.ts.map +0 -1
  971. package/lib/simple-tree/objectNode.js.map +0 -1
  972. package/lib/simple-tree/objectNodeTypes.d.ts.map +0 -1
  973. package/lib/simple-tree/objectNodeTypes.js.map +0 -1
  974. package/src/simple-tree/api/testRecursiveDomain.ts +0 -53
@@ -372,8 +372,6 @@ export function rebaseChange<TChange>(
372
372
  };
373
373
  }
374
374
 
375
- /**
376
- */
377
375
  export function revisionMetadataSourceFromInfo(
378
376
  revInfos: readonly RevisionInfo[],
379
377
  ): RevisionMetadataSource {
@@ -440,19 +438,21 @@ function rollbackFromCommit<TChange>(
440
438
  mintRevisionTag: () => RevisionTag,
441
439
  cache?: boolean,
442
440
  ): TaggedChange<TChange, RevisionTag> {
443
- const rollback = Rollback.get(commit);
444
- if (rollback !== undefined) {
445
- return rollback;
441
+ const cachedRollback = Rollback.get(commit);
442
+ if (cachedRollback !== undefined) {
443
+ return cachedRollback;
446
444
  }
447
445
  const tag = mintRevisionTag();
448
- const untagged = changeRebaser.invert(commit, true, tag);
449
- const deeplyTaggedRollback = changeRebaser.changeRevision(untagged, tag, commit.revision);
450
- const fullyTaggedRollback = tagRollbackInverse(deeplyTaggedRollback, tag, commit.revision);
446
+ const rollback = tagRollbackInverse(
447
+ changeRebaser.invert(commit, true, tag),
448
+ tag,
449
+ commit.revision,
450
+ );
451
451
 
452
452
  if (cache === true) {
453
- Rollback.set(commit, fullyTaggedRollback);
453
+ Rollback.set(commit, rollback);
454
454
  }
455
- return fullyTaggedRollback;
455
+ return rollback;
456
456
  }
457
457
 
458
458
  /**
@@ -8,8 +8,6 @@ import { type ObjectOptions, type Static, Type } from "@sinclair/typebox";
8
8
  import { unionOptions } from "../../codec/index.js";
9
9
  import { type Brand, brandedStringType } from "../../util/index.js";
10
10
 
11
- export const version = 1 as const;
12
-
13
11
  /**
14
12
  * Key (aka Name or Label) for a field which is scoped to a specific TreeNodeStoredSchema.
15
13
  *
@@ -22,6 +22,7 @@ export {
22
22
  storedSchemaDecodeDispatcher,
23
23
  type SchemaAndPolicy,
24
24
  type SchemaPolicy,
25
+ SchemaVersion,
25
26
  } from "./schema.js";
26
27
  export {
27
28
  type TreeStoredSchemaSubscription,
@@ -18,6 +18,13 @@ import {
18
18
  } from "./formatV1.js";
19
19
  import type { Multiplicity } from "./multiplicity.js";
20
20
 
21
+ /**
22
+ * The format version for the schema.
23
+ */
24
+ export enum SchemaVersion {
25
+ v1 = 1,
26
+ }
27
+
21
28
  /**
22
29
  * Schema for what {@link TreeLeafValue} is allowed on a Leaf node.
23
30
  * @privateRemarks
@@ -1075,7 +1075,8 @@ class PathNode extends ReferenceCountedBase implements AnchorNode {
1075
1075
  }
1076
1076
 
1077
1077
  /**
1078
- * @returns true iff this PathNode is the special root node that sits above all the detached fields.
1078
+ * Whether or not this `PathNode` is the special root node that sits above all the detached fields.
1079
+ * @remarks
1079
1080
  * In this case, the fields are detached sequences.
1080
1081
  * Note that the special root node should never appear in an UpPath
1081
1082
  * since UpPaths represent this root as `undefined`.
@@ -177,7 +177,8 @@ export type NodeIndex = number;
177
177
  export type PlaceIndex = number;
178
178
 
179
179
  /**
180
- * @returns the number of nodes above this one.
180
+ * Gets the number of nodes above this one.
181
+ * @remarks
181
182
  * Zero when the path's parent is undefined, meaning the path represents a node in a detached field.
182
183
  * Runs in O(depth) time.
183
184
  */
@@ -192,14 +193,14 @@ export function getDepth(path: UpPath): number {
192
193
  }
193
194
 
194
195
  /**
195
- * @returns a deep copy of the provided path as simple javascript objects.
196
- * This is safe to hold onto and use deep object comparisons on.
196
+ * Creates deep copy of the provided path as simple JavaScript object.
197
+ * @remarks This is safe to hold onto and use deep object comparisons on.
197
198
  */
198
199
  export function clonePath(path: UpPath): UpPath;
199
200
 
200
201
  /**
201
- * @returns a deep copy of the provided path as simple javascript objects.
202
- * This is safe to hold onto and use deep object comparisons on.
202
+ * Creates a deep copy of the provided path as simple JavaScript object.
203
+ * @remarks This is safe to hold onto and use deep object comparisons on.
203
204
  */
204
205
  export function clonePath(path: UpPath | undefined): UpPath | undefined;
205
206
 
@@ -215,8 +216,8 @@ export function clonePath(path: UpPath | undefined): UpPath | undefined {
215
216
  }
216
217
 
217
218
  /**
218
- * @returns The elements of the given `path`, ordered from root-most to child-most.
219
- * These elements are unchanged and therefore still point "up".
219
+ * Gets the elements of the given `path`, ordered from root-most to child-most.
220
+ * @remarks These elements are unchanged and therefore still point "up".
220
221
  */
221
222
  export function topDownPath(path: UpPath | undefined): UpPath[] {
222
223
  const out: UpPath[] = [];
@@ -230,8 +231,8 @@ export function topDownPath(path: UpPath | undefined): UpPath[] {
230
231
  }
231
232
 
232
233
  /**
233
- * @returns true iff `a` and `b` describe the same path.
234
- *
234
+ * Returns true if and only if `a` and `b` describe the same path.
235
+ * @remarks
235
236
  * Note that for mutable paths (as used in `AnchorSet`), this equality may change over time: this only checks if the two paths are currently the same.
236
237
  */
237
238
  export function compareUpPaths(a: UpPath | undefined, b: UpPath | undefined): boolean {
@@ -249,8 +250,8 @@ export function compareUpPaths(a: UpPath | undefined, b: UpPath | undefined): bo
249
250
  }
250
251
 
251
252
  /**
252
- * @returns true iff `a` and `b` describe the same field path.
253
- *
253
+ * Returns true if and only if `a` and `b` describe the same field path.
254
+ * @remarks
254
255
  * Note that for mutable paths (as used in `AnchorSet`), this equality may change over time: this only checks if the two paths are currently the same.
255
256
  */
256
257
  export function compareFieldUpPaths(a: FieldUpPath, b: FieldUpPath): boolean {
@@ -140,7 +140,7 @@ export function setGenericTreeField<T>(
140
140
  }
141
141
 
142
142
  /**
143
- * @returns keys for fields of `tree`.
143
+ * Returns keys for fields of `tree`.
144
144
  */
145
145
  export function genericTreeKeys<T>(tree: GenericFieldsNode<T>): readonly FieldKey[] {
146
146
  const fields = tree.fields;
@@ -468,7 +468,7 @@ class Cursor extends BasicChunkCursor implements ITreeSubscriptionCursor {
468
468
  }
469
469
 
470
470
  /**
471
- * @returns an implementation of {@link IEditableForest} with no data or schema.
471
+ * Creates an implementation of {@link IEditableForest} with no data or schema.
472
472
  */
473
473
  export function buildChunkedForest(
474
474
  chunker: IChunker,
@@ -452,7 +452,7 @@ export interface SequenceFieldEditBuilder<TContent> {
452
452
  }
453
453
 
454
454
  /**
455
- * @returns The number of path elements that both paths share, starting at index 0.
455
+ * Gets the number of path elements that both paths share, starting at index 0.
456
456
  */
457
457
  function getSharedPrefixLength(pathA: readonly UpPath[], pathB: readonly UpPath[]): number {
458
458
  const minDepth = Math.min(pathA.length, pathB.length);
@@ -27,7 +27,7 @@ export {
27
27
  } from "./defaultEditBuilder.js";
28
28
 
29
29
  export {
30
- SchemaValidationErrors,
30
+ SchemaValidationError,
31
31
  isNodeInSchema,
32
32
  isFieldInSchema,
33
33
  inSchemaOrThrow,
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import { unreachableCase, fail } from "@fluidframework/core-utils/internal";
7
+ import { UsageError } from "@fluidframework/telemetry-utils/internal";
7
8
 
8
9
  import {
9
10
  type MapTree,
@@ -15,27 +16,28 @@ import {
15
16
  type SchemaAndPolicy,
16
17
  } from "../../core/index.js";
17
18
  import { allowsValue } from "../valueUtilities.js";
18
- import { UsageError } from "@fluidframework/telemetry-utils/internal";
19
19
 
20
- export const enum SchemaValidationErrors {
21
- NoError,
20
+ export enum SchemaValidationError {
22
21
  Field_KindNotInSchemaPolicy,
23
- Field_IncorrectMultiplicity,
22
+ Field_MissingRequiredChild,
23
+ Field_MultipleChildrenNotAllowed,
24
+ Field_ChildInForbiddenField,
24
25
  Field_NodeTypeNotAllowed,
25
26
  LeafNode_InvalidValue,
26
27
  LeafNode_FieldsNotAllowed,
27
28
  ObjectNode_FieldNotInSchema,
28
29
  NonLeafNode_ValueNotAllowed,
29
30
  Node_MissingSchema,
30
- UnknownError,
31
31
  }
32
32
 
33
33
  /**
34
34
  * Throws a UsageError if maybeError indicates a tree is out of schema.
35
35
  */
36
- export function inSchemaOrThrow(maybeError: SchemaValidationErrors): void {
37
- if (maybeError !== SchemaValidationErrors.NoError) {
38
- throw new UsageError("Tree does not conform to schema.");
36
+ export function inSchemaOrThrow(maybeError: SchemaValidationError | undefined): void {
37
+ if (maybeError !== undefined) {
38
+ throw new UsageError(
39
+ `Tree does not conform to schema: ${SchemaValidationError[maybeError]}`,
40
+ );
39
41
  }
40
42
  }
41
43
 
@@ -45,25 +47,25 @@ export function inSchemaOrThrow(maybeError: SchemaValidationErrors): void {
45
47
  export function isNodeInSchema(
46
48
  node: MapTree,
47
49
  schemaAndPolicy: SchemaAndPolicy,
48
- ): SchemaValidationErrors {
50
+ ): SchemaValidationError | undefined {
49
51
  // Validate the schema declared by the node exists
50
52
  const schema = schemaAndPolicy.schema.nodeSchema.get(node.type);
51
53
  if (schema === undefined) {
52
- return SchemaValidationErrors.Node_MissingSchema;
54
+ return SchemaValidationError.Node_MissingSchema;
53
55
  }
54
56
 
55
57
  // Validate the node is well formed according to its schema
56
58
 
57
59
  if (schema instanceof LeafNodeStoredSchema) {
58
60
  if (node.fields.size !== 0) {
59
- return SchemaValidationErrors.LeafNode_FieldsNotAllowed;
61
+ return SchemaValidationError.LeafNode_FieldsNotAllowed;
60
62
  }
61
63
  if (!allowsValue(schema.leafValue, node.value)) {
62
- return SchemaValidationErrors.LeafNode_InvalidValue;
64
+ return SchemaValidationError.LeafNode_InvalidValue;
63
65
  }
64
66
  } else {
65
67
  if (node.value !== undefined) {
66
- return SchemaValidationErrors.NonLeafNode_ValueNotAllowed;
68
+ return SchemaValidationError.NonLeafNode_ValueNotAllowed;
67
69
  }
68
70
 
69
71
  if (schema instanceof ObjectNodeStoredSchema) {
@@ -71,7 +73,7 @@ export function isNodeInSchema(
71
73
  for (const [fieldKey, fieldSchema] of schema.objectNodeFields) {
72
74
  const nodeField = node.fields.get(fieldKey) ?? [];
73
75
  const fieldInSchemaResult = isFieldInSchema(nodeField, fieldSchema, schemaAndPolicy);
74
- if (fieldInSchemaResult !== SchemaValidationErrors.NoError) {
76
+ if (fieldInSchemaResult !== undefined) {
75
77
  return fieldInSchemaResult;
76
78
  }
77
79
  uncheckedFieldsFromNode.delete(fieldKey);
@@ -81,12 +83,12 @@ export function isNodeInSchema(
81
83
  uncheckedFieldsFromNode.size !== 0 &&
82
84
  !schemaAndPolicy.policy.allowUnknownOptionalFields(node.type)
83
85
  ) {
84
- return SchemaValidationErrors.ObjectNode_FieldNotInSchema;
86
+ return SchemaValidationError.ObjectNode_FieldNotInSchema;
85
87
  }
86
88
  } else if (schema instanceof MapNodeStoredSchema) {
87
89
  for (const field of node.fields.values()) {
88
90
  const fieldInSchemaResult = isFieldInSchema(field, schema.mapFields, schemaAndPolicy);
89
- if (fieldInSchemaResult !== SchemaValidationErrors.NoError) {
91
+ if (fieldInSchemaResult !== undefined) {
90
92
  return fieldInSchemaResult;
91
93
  }
92
94
  }
@@ -95,7 +97,7 @@ export function isNodeInSchema(
95
97
  }
96
98
  }
97
99
 
98
- return SchemaValidationErrors.NoError;
100
+ return undefined;
99
101
  }
100
102
 
101
103
  /**
@@ -105,32 +107,35 @@ export function isFieldInSchema(
105
107
  childNodes: readonly MapTree[],
106
108
  schema: TreeFieldStoredSchema,
107
109
  schemaAndPolicy: SchemaAndPolicy,
108
- ): SchemaValidationErrors {
110
+ ): SchemaValidationError | undefined {
109
111
  // Validate that the field kind is handled by the schema policy
110
112
  const kind = schemaAndPolicy.policy.fieldKinds.get(schema.kind);
111
113
  if (kind === undefined) {
112
- return SchemaValidationErrors.Field_KindNotInSchemaPolicy;
114
+ return SchemaValidationError.Field_KindNotInSchemaPolicy;
113
115
  }
114
116
 
115
117
  // Validate that the field doesn't contain more nodes than its type supports
116
- if (!compliesWithMultiplicity(childNodes.length, kind.multiplicity)) {
117
- return SchemaValidationErrors.Field_IncorrectMultiplicity;
118
+ {
119
+ const multiplicityCheck = compliesWithMultiplicity(childNodes.length, kind.multiplicity);
120
+ if (multiplicityCheck !== undefined) {
121
+ return multiplicityCheck;
122
+ }
118
123
  }
119
124
 
120
125
  for (const node of childNodes) {
121
126
  // Validate the type declared by the node is allowed in this field
122
127
  if (schema.types !== undefined && !schema.types.has(node.type)) {
123
- return SchemaValidationErrors.Field_NodeTypeNotAllowed;
128
+ return SchemaValidationError.Field_NodeTypeNotAllowed;
124
129
  }
125
130
 
126
131
  // Validate the node complies with the type it declares to be.
127
132
  const nodeInSchemaResult = isNodeInSchema(node, schemaAndPolicy);
128
- if (nodeInSchemaResult !== SchemaValidationErrors.NoError) {
133
+ if (nodeInSchemaResult !== undefined) {
129
134
  return nodeInSchemaResult;
130
135
  }
131
136
  }
132
137
 
133
- return SchemaValidationErrors.NoError;
138
+ return undefined;
134
139
  }
135
140
 
136
141
  /**
@@ -142,16 +147,26 @@ export function isFieldInSchema(
142
147
  export function compliesWithMultiplicity(
143
148
  numberOfItems: number,
144
149
  multiplicity: Multiplicity,
145
- ): boolean {
150
+ ): SchemaValidationError | undefined {
146
151
  switch (multiplicity) {
147
152
  case Multiplicity.Single:
148
- return numberOfItems === 1;
153
+ if (numberOfItems < 1) {
154
+ return SchemaValidationError.Field_MissingRequiredChild;
155
+ } else if (numberOfItems > 1) {
156
+ return SchemaValidationError.Field_MultipleChildrenNotAllowed;
157
+ } else {
158
+ return undefined;
159
+ }
149
160
  case Multiplicity.Optional:
150
- return numberOfItems <= 1;
161
+ return numberOfItems > 1
162
+ ? SchemaValidationError.Field_MultipleChildrenNotAllowed
163
+ : undefined;
151
164
  case Multiplicity.Sequence:
152
- return true;
165
+ return undefined;
153
166
  case Multiplicity.Forbidden:
154
- return numberOfItems === 0;
167
+ return numberOfItems === 0
168
+ ? undefined
169
+ : SchemaValidationError.Field_ChildInForbiddenField;
155
170
  default:
156
171
  unreachableCase(multiplicity);
157
172
  }
@@ -3,23 +3,26 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import type { Listenable } from "@fluidframework/core-interfaces";
6
7
  import { assert, debugAssert } from "@fluidframework/core-utils/internal";
7
8
 
8
9
  import {
10
+ type DetachedField,
11
+ type FieldKindIdentifier,
9
12
  type ForestEvents,
10
13
  type SchemaPolicy,
11
14
  type TreeStoredSchema,
12
15
  anchorSlot,
13
16
  moveToDetachedField,
17
+ rootField,
14
18
  } from "../../core/index.js";
15
- import type { Listenable } from "@fluidframework/core-interfaces";
19
+ import type { ITreeCheckout } from "../../shared-tree/index.js";
16
20
  import { type IDisposable, disposeSymbol } from "../../util/index.js";
17
21
  import type { NodeIdentifierManager } from "../node-identifier/index.js";
18
22
 
19
23
  import type { FlexTreeField } from "./flexTreeTypes.js";
20
24
  import type { LazyEntity } from "./lazyEntity.js";
21
25
  import { makeField } from "./lazyField.js";
22
- import type { ITreeCheckout } from "../../shared-tree/index.js";
23
26
 
24
27
  /**
25
28
  * Context for FlexTrees.
@@ -82,6 +85,8 @@ export const ContextSlot = anchorSlot<Context>();
82
85
  *
83
86
  * A {@link FlexTreeContext} which is used to manage the cursors and anchors within the FlexTrees:
84
87
  * This is necessary for supporting using this tree across edits to the forest, and not leaking memory.
88
+ *
89
+ * This context and the trees it produces observe the kinds of fields from the schema
85
90
  */
86
91
  export class Context implements FlexTreeHydratedContext, IDisposable {
87
92
  public readonly withCursors: Set<LazyEntity> = new Set();
@@ -159,6 +164,7 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
159
164
 
160
165
  /**
161
166
  * Release any cursors and anchors held by tree entities created in this context.
167
+ * @remarks
162
168
  * Ensures the cashed references to those entities on the Anchors are also cleared.
163
169
  * The tree entities are invalid to use after this, but the context may still be used
164
170
  * to create new trees starting from the root.
@@ -172,17 +178,32 @@ export class Context implements FlexTreeHydratedContext, IDisposable {
172
178
  assert(this.withAnchors.size === 0, 0x775 /* free should remove all anchors */);
173
179
  }
174
180
 
181
+ /**
182
+ * Gets the root field of the tree.
183
+ * @remarks
184
+ * This is a cached value: it should not be disposed by the accessor.
185
+ * Like all other fields from this context, it will become invalid to use after {@link clear} is called or the {@link disposeSymbol} method is called.
186
+ */
175
187
  public get root(): FlexTreeField {
176
188
  assert(this.disposed === false, 0x804 /* use after dispose */);
177
- if (this.lazyRootCache !== undefined) {
178
- return this.lazyRootCache;
179
- }
189
+
190
+ this.lazyRootCache ??= this.detachedField(rootField, this.schema.rootFieldSchema.kind);
191
+ return this.lazyRootCache;
192
+ }
193
+
194
+ /**
195
+ * Returns a new {@link FlexTreeField} that will live as long as the caller allows up to the next call to {@link clear} or disposal of the context.
196
+ * @remarks
197
+ * Due to limited support for detached fields, not all operations are supported.
198
+ * Additionally if the detached field's content is deleted, the field will become out of schema if it is required: it must not be used after that point.
199
+ */
200
+ public detachedField(key: DetachedField, schema: FieldKindIdentifier): FlexTreeField {
201
+ assert(this.disposed === false, 0xb9c /* use after dispose */);
180
202
 
181
203
  const cursor = this.checkout.forest.allocateCursor("root");
182
- moveToDetachedField(this.checkout.forest, cursor);
183
- const field = makeField(this, this.schema.rootFieldSchema.kind, cursor);
204
+ moveToDetachedField(this.checkout.forest, cursor, key);
205
+ const field = makeField(this, schema, cursor);
184
206
  cursor.free();
185
- this.lazyRootCache = field;
186
207
  return field;
187
208
  }
188
209
 
@@ -119,8 +119,9 @@ export enum TreeStatus {
119
119
  *
120
120
  * - Transactions do not work: transactions apply to a single {@link TreeView}, and `New` nodes are not part of one.
121
121
  *
122
- * - `Tree.shortId` (when the identifier was explicitly specified and thus works at all) will just return the full identifier as a string,
123
- * but might return a compressed form as a number once hydrated.
122
+ * - Automatically generated {@link SchemaFactory.identifier | identifiers} will be less compressible if read.
123
+ *
124
+ * - {@link TreeIdentifierUtils.getShort} and {@link TreeNodeApi.shortId | Tree.shortId} cannot return their short identifiers.
124
125
  */
125
126
  New = 3,
126
127
  }
@@ -30,6 +30,7 @@ import {
30
30
  type SequenceFieldEditBuilder,
31
31
  type ValueFieldEditBuilder,
32
32
  } from "../default-schema/index.js";
33
+ import { cursorForMapTreeField } from "../mapTreeCursor.js";
33
34
  import type { FlexFieldKind } from "../modular-schema/index.js";
34
35
 
35
36
  import type { Context } from "./context.js";
@@ -49,7 +50,6 @@ import {
49
50
  import { LazyEntity } from "./lazyEntity.js";
50
51
  import { type LazyTreeNode, makeTree } from "./lazyNode.js";
51
52
  import { indexForAt, treeStatusFromAnchorCache } from "./utilities.js";
52
- import { cursorForMapTreeField } from "../mapTreeCursor.js";
53
53
 
54
54
  /**
55
55
  * Reuse fields.
@@ -11,8 +11,8 @@ import {
11
11
  rootField,
12
12
  type SchemaAndPolicy,
13
13
  } from "../../core/index.js";
14
- import type { FlexTreeContext } from "./context.js";
15
14
 
15
+ import type { FlexTreeContext } from "./context.js";
16
16
  import { TreeStatus } from "./flexTreeTypes.js";
17
17
  /**
18
18
  * Checks the detached field and returns the TreeStatus based on whether or not the detached field is a root field.
@@ -6,6 +6,7 @@
6
6
  import { bufferToString } from "@fluid-internal/client-utils";
7
7
  import { assert } from "@fluidframework/core-utils/internal";
8
8
  import type { IChannelStorageService } from "@fluidframework/datastore-definitions/internal";
9
+ import type { IIdCompressor } from "@fluidframework/id-compressor";
9
10
  import type {
10
11
  ISummaryTreeWithStats,
11
12
  ITelemetryContext,
@@ -38,7 +39,6 @@ import type { FieldBatchCodec, FieldBatchEncodingContext } from "../chunked-fore
38
39
 
39
40
  import { type ForestCodec, makeForestSummarizerCodec } from "./codec.js";
40
41
  import type { Format } from "./format.js";
41
- import type { IIdCompressor } from "@fluidframework/id-compressor";
42
42
  /**
43
43
  * The storage key for the blob in the summary containing tree data
44
44
  */
@@ -22,7 +22,6 @@ export {
22
22
  encodeTreeSchema,
23
23
  makeSchemaCodec,
24
24
  makeSchemaCodecs,
25
- SchemaCodecVersion,
26
25
  } from "./schema-index/index.js";
27
26
  export {
28
27
  stackTreeNodeCursor,
@@ -143,7 +142,7 @@ export {
143
142
  fieldKindConfigurations,
144
143
  intoDelta,
145
144
  relevantRemovedRoots,
146
- SchemaValidationErrors,
145
+ SchemaValidationError,
147
146
  isNodeInSchema,
148
147
  isFieldInSchema,
149
148
  inSchemaOrThrow,
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { assert, fail } from "@fluidframework/core-utils/internal";
7
- import { disposeSymbol, getOrCreate } from "../../util/index.js";
7
+
8
8
  import {
9
9
  type Anchor,
10
10
  type AnchorNode,
@@ -24,9 +24,11 @@ import {
24
24
  TreeNavigationResult,
25
25
  type ITreeCursorSynchronous,
26
26
  } from "../../core/index.js";
27
- import type { TreeIndex, TreeIndexKey, TreeIndexNodes } from "./types.js";
27
+ import { disposeSymbol, getOrCreate } from "../../util/index.js";
28
28
  import { TreeStatus } from "../flex-tree/index.js";
29
29
 
30
+ import type { TreeIndex, TreeIndexKey, TreeIndexNodes } from "./types.js";
31
+
30
32
  /**
31
33
  * A function that gets the value to index a node on, must be pure and functional.
32
34
  * The given cursor should point to the node that will be indexed.
@@ -10,6 +10,7 @@ import type {
10
10
  RevisionTag,
11
11
  } from "../../core/index.js";
12
12
  import type { RangeQueryResult } from "../../util/index.js";
13
+
13
14
  import type { NodeId } from "./modularChangeTypes.js";
14
15
 
15
16
  export type CrossFieldMap<T> = ChangeAtomIdRangeMap<T>;
@@ -18,8 +18,8 @@ import type {
18
18
  import type { IdAllocator, Invariant } from "../../util/index.js";
19
19
 
20
20
  import type { CrossFieldManager } from "./crossFieldQueries.js";
21
- import type { CrossFieldKeyRange, NodeId } from "./modularChangeTypes.js";
22
21
  import type { EncodedNodeChangeset } from "./modularChangeFormat.js";
22
+ import type { CrossFieldKeyRange, NodeId } from "./modularChangeTypes.js";
23
23
 
24
24
  export type NestedChangesIndices = [
25
25
  NodeId,
@@ -66,7 +66,7 @@ export class FieldKindWithEditor<
66
66
  }
67
67
 
68
68
  /**
69
- * @returns true iff `superset` permits a (non-strict) superset of the subtrees
69
+ * Returns true if and only if `superset` permits a (non-strict) superset of the subtrees
70
70
  * allowed by field made from `this` and `originalTypes`.
71
71
  */
72
72
  public allowsFieldSuperset(
@@ -3,6 +3,9 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import { assert } from "@fluidframework/core-utils/internal";
7
+ import { BTree } from "@tylerbu/sorted-btree-es6";
8
+
6
9
  import {
7
10
  type DeltaDetachedNodeId,
8
11
  type DeltaMark,
@@ -10,7 +13,7 @@ import {
10
13
  type RevisionTag,
11
14
  replaceAtomRevisions,
12
15
  } from "../../core/index.js";
13
- import { assert } from "@fluidframework/core-utils/internal";
16
+
14
17
  import type {
15
18
  FieldChangeDelta,
16
19
  FieldChangeHandler,
@@ -25,7 +28,6 @@ import { FieldKindWithEditor } from "./fieldKindWithEditor.js";
25
28
  import { makeGenericChangeCodec } from "./genericFieldKindCodecs.js";
26
29
  import { newGenericChangeset, type GenericChangeset } from "./genericFieldKindTypes.js";
27
30
  import type { NodeId } from "./modularChangeTypes.js";
28
- import { BTree } from "@tylerbu/sorted-btree-es6";
29
31
 
30
32
  /**
31
33
  * {@link FieldChangeHandler} implementation for {@link GenericChangeset}.
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import { type ICodecFamily, type IJsonCodec, makeCodecFamily } from "../../codec/index.js";
7
+
7
8
  import type { FieldChangeEncodingContext } from "./fieldChangeHandler.js";
8
9
  import { EncodedGenericChangeset } from "./genericFieldKindFormat.js";
9
10
  import { newGenericChangeset, type GenericChangeset } from "./genericFieldKindTypes.js";
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import { BTree } from "@tylerbu/sorted-btree-es6";
7
+
7
8
  import type { NodeId } from "./modularChangeTypes.js";
8
9
 
9
10
  /**
@@ -17,8 +17,6 @@ import {
17
17
 
18
18
  import type { FullSchemaPolicy } from "./fieldKind.js";
19
19
 
20
- /**
21
- */
22
20
  export function isNeverField(
23
21
  policy: FullSchemaPolicy,
24
22
  originalData: TreeStoredSchema,
@@ -41,6 +41,7 @@ import {
41
41
  } from "../chunked-forest/index.js";
42
42
  import { TreeCompressionStrategy } from "../treeCompressionUtils.js";
43
43
 
44
+ import type { FieldChangeEncodingContext, FieldChangeHandler } from "./fieldChangeHandler.js";
44
45
  import type {
45
46
  FieldKindConfiguration,
46
47
  FieldKindConfigurationEntry,
@@ -65,7 +66,6 @@ import {
65
66
  type NodeChangeset,
66
67
  type NodeId,
67
68
  } from "./modularChangeTypes.js";
68
- import type { FieldChangeEncodingContext, FieldChangeHandler } from "./fieldChangeHandler.js";
69
69
 
70
70
  export function makeModularChangeCodecFamily(
71
71
  fieldKindConfigurations: ReadonlyMap<number, FieldKindConfiguration>,
@@ -2651,6 +2651,8 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
2651
2651
  }
2652
2652
 
2653
2653
  /**
2654
+ * Builds a new tree to use in an edit.
2655
+ *
2654
2656
  * @param firstId - The ID to associate with the first node
2655
2657
  * @param content - The node(s) to build.
2656
2658
  * @param revision - The revision to use for the build.