@fluidframework/tree 2.0.0-dev-rc.5.0.0.271045 → 2.0.0-dev-rc.5.0.0.271717

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 (1607) hide show
  1. package/.eslintrc.cjs +5 -0
  2. package/api-report/tree.alpha.api.md +10 -21
  3. package/api-report/tree.beta.api.md +10 -21
  4. package/api-report/tree.public.api.md +10 -21
  5. package/dist/beta.d.ts +0 -1
  6. package/dist/codec/codec.d.ts +2 -2
  7. package/dist/codec/codec.d.ts.map +1 -1
  8. package/dist/codec/codec.js +0 -1
  9. package/dist/codec/codec.js.map +1 -1
  10. package/dist/codec/discriminatedUnions.d.ts +2 -2
  11. package/dist/codec/discriminatedUnions.d.ts.map +1 -1
  12. package/dist/codec/discriminatedUnions.js +0 -1
  13. package/dist/codec/discriminatedUnions.js.map +1 -1
  14. package/dist/codec/noopValidator.d.ts +1 -1
  15. package/dist/codec/noopValidator.d.ts.map +1 -1
  16. package/dist/codec/noopValidator.js.map +1 -1
  17. package/dist/codec/versioned/codec.d.ts +3 -3
  18. package/dist/codec/versioned/codec.d.ts.map +1 -1
  19. package/dist/codec/versioned/codec.js.map +1 -1
  20. package/dist/codec/versioned/format.d.ts +1 -1
  21. package/dist/codec/versioned/format.d.ts.map +1 -1
  22. package/dist/codec/versioned/format.js.map +1 -1
  23. package/dist/core/change-family/changeFamily.d.ts +5 -5
  24. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  25. package/dist/core/change-family/changeFamily.js.map +1 -1
  26. package/dist/core/change-family/editBuilder.d.ts +1 -1
  27. package/dist/core/change-family/editBuilder.d.ts.map +1 -1
  28. package/dist/core/change-family/editBuilder.js +0 -2
  29. package/dist/core/change-family/editBuilder.js.map +1 -1
  30. package/dist/core/forest/editableForest.d.ts +5 -5
  31. package/dist/core/forest/editableForest.d.ts.map +1 -1
  32. package/dist/core/forest/editableForest.js.map +1 -1
  33. package/dist/core/forest/forest.d.ts +3 -3
  34. package/dist/core/forest/forest.d.ts.map +1 -1
  35. package/dist/core/forest/forest.js.map +1 -1
  36. package/dist/core/rebase/changeRebaser.d.ts +1 -1
  37. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  38. package/dist/core/rebase/changeRebaser.js.map +1 -1
  39. package/dist/core/rebase/revisionTagCodec.d.ts +4 -4
  40. package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
  41. package/dist/core/rebase/revisionTagCodec.js +0 -2
  42. package/dist/core/rebase/revisionTagCodec.js.map +1 -1
  43. package/dist/core/rebase/types.d.ts +3 -3
  44. package/dist/core/rebase/types.d.ts.map +1 -1
  45. package/dist/core/rebase/types.js.map +1 -1
  46. package/dist/core/rebase/utils.d.ts +2 -2
  47. package/dist/core/rebase/utils.d.ts.map +1 -1
  48. package/dist/core/rebase/utils.js.map +1 -1
  49. package/dist/core/schema-stored/format.d.ts +2 -2
  50. package/dist/core/schema-stored/format.d.ts.map +1 -1
  51. package/dist/core/schema-stored/format.js.map +1 -1
  52. package/dist/core/schema-stored/schema.d.ts +3 -3
  53. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  54. package/dist/core/schema-stored/schema.js +0 -4
  55. package/dist/core/schema-stored/schema.js.map +1 -1
  56. package/dist/core/schema-stored/storedSchemaRepository.d.ts +3 -3
  57. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  58. package/dist/core/schema-stored/storedSchemaRepository.js +1 -3
  59. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
  60. package/dist/core/schema-view/view.d.ts +1 -1
  61. package/dist/core/schema-view/view.d.ts.map +1 -1
  62. package/dist/core/schema-view/view.js +0 -2
  63. package/dist/core/schema-view/view.js.map +1 -1
  64. package/dist/core/tree/anchorSet.d.ts +56 -18
  65. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  66. package/dist/core/tree/anchorSet.js +97 -52
  67. package/dist/core/tree/anchorSet.js.map +1 -1
  68. package/dist/core/tree/cursor.d.ts +3 -3
  69. package/dist/core/tree/cursor.d.ts.map +1 -1
  70. package/dist/core/tree/cursor.js.map +1 -1
  71. package/dist/core/tree/delta.d.ts +3 -3
  72. package/dist/core/tree/delta.d.ts.map +1 -1
  73. package/dist/core/tree/delta.js.map +1 -1
  74. package/dist/core/tree/deltaUtil.d.ts +2 -2
  75. package/dist/core/tree/deltaUtil.d.ts.map +1 -1
  76. package/dist/core/tree/deltaUtil.js.map +1 -1
  77. package/dist/core/tree/detachedFieldIndex.d.ts +7 -7
  78. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  79. package/dist/core/tree/detachedFieldIndex.js +2 -8
  80. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  81. package/dist/core/tree/detachedFieldIndexCodec.d.ts +4 -4
  82. package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  83. package/dist/core/tree/detachedFieldIndexCodec.js +0 -3
  84. package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
  85. package/dist/core/tree/detachedFieldIndexFormat.d.ts +2 -2
  86. package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  87. package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -1
  88. package/dist/core/tree/detachedFieldIndexTypes.d.ts +3 -3
  89. package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  90. package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
  91. package/dist/core/tree/mapTree.d.ts +2 -2
  92. package/dist/core/tree/mapTree.d.ts.map +1 -1
  93. package/dist/core/tree/mapTree.js.map +1 -1
  94. package/dist/core/tree/pathTree.d.ts +3 -3
  95. package/dist/core/tree/pathTree.d.ts.map +1 -1
  96. package/dist/core/tree/pathTree.js.map +1 -1
  97. package/dist/core/tree/persistedTreeTextFormat.d.ts +1 -1
  98. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  99. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  100. package/dist/core/tree/sparseTree.d.ts +2 -2
  101. package/dist/core/tree/sparseTree.d.ts.map +1 -1
  102. package/dist/core/tree/sparseTree.js +11 -15
  103. package/dist/core/tree/sparseTree.js.map +1 -1
  104. package/dist/core/tree/treeTextFormat.d.ts +2 -2
  105. package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
  106. package/dist/core/tree/treeTextFormat.js.map +1 -1
  107. package/dist/core/tree/types.d.ts +3 -3
  108. package/dist/core/tree/types.d.ts.map +1 -1
  109. package/dist/core/tree/types.js +0 -1
  110. package/dist/core/tree/types.js.map +1 -1
  111. package/dist/core/tree/visitDelta.d.ts +5 -5
  112. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  113. package/dist/core/tree/visitDelta.js.map +1 -1
  114. package/dist/core/tree/visitPath.d.ts +2 -2
  115. package/dist/core/tree/visitPath.d.ts.map +1 -1
  116. package/dist/core/tree/visitPath.js.map +1 -1
  117. package/dist/core/tree/visitorUtils.d.ts +7 -7
  118. package/dist/core/tree/visitorUtils.d.ts.map +1 -1
  119. package/dist/core/tree/visitorUtils.js.map +1 -1
  120. package/dist/domains/json/jsonCursor.d.ts +2 -2
  121. package/dist/domains/json/jsonCursor.d.ts.map +1 -1
  122. package/dist/domains/json/jsonCursor.js.map +1 -1
  123. package/dist/domains/json/jsonDomainSchema.js.map +1 -1
  124. package/dist/domains/schemaBuilder.d.ts +2 -2
  125. package/dist/domains/schemaBuilder.d.ts.map +1 -1
  126. package/dist/domains/schemaBuilder.js +70 -70
  127. package/dist/domains/schemaBuilder.js.map +1 -1
  128. package/dist/events/events.js +1 -2
  129. package/dist/events/events.js.map +1 -1
  130. package/dist/feature-libraries/changeAtomIdCodec.d.ts +2 -2
  131. package/dist/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  132. package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
  133. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +2 -2
  134. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  135. package/dist/feature-libraries/chunked-forest/basicChunk.js +1 -14
  136. package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  137. package/dist/feature-libraries/chunked-forest/chunk.d.ts +2 -2
  138. package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
  139. package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -1
  140. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +4 -4
  141. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  142. package/dist/feature-libraries/chunked-forest/chunkTree.js +6 -13
  143. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  144. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -4
  145. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  146. package/dist/feature-libraries/chunked-forest/chunkedForest.js +2 -9
  147. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  148. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +3 -3
  149. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  150. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +3 -1
  151. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  152. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +17 -7
  153. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  154. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -11
  155. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  156. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +8 -8
  157. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  158. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +2 -5
  159. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  160. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +3 -3
  161. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  162. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +0 -1
  163. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  164. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +6 -5
  165. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  166. package/dist/feature-libraries/chunked-forest/codec/codecs.js +4 -1
  167. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  168. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
  169. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  170. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +13 -25
  171. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  172. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +1 -1
  173. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -1
  174. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -1
  175. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
  176. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  177. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  178. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
  179. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
  180. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
  181. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +5 -5
  182. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  183. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +5 -8
  184. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  185. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +6 -6
  186. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
  187. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
  188. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +2 -2
  189. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  190. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  191. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts +1 -1
  192. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
  193. package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
  194. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
  195. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
  196. package/dist/feature-libraries/chunked-forest/sequenceChunk.js +0 -1
  197. package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
  198. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +2 -2
  199. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  200. package/dist/feature-libraries/chunked-forest/uniformChunk.js +5 -40
  201. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  202. package/dist/feature-libraries/contextuallyTyped.d.ts +5 -5
  203. package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  204. package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
  205. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -3
  206. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  207. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +0 -2
  208. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  209. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
  210. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  211. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  212. package/dist/feature-libraries/default-schema/defaultSchema.d.ts +1 -1
  213. package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
  214. package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
  215. package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts +2 -2
  216. package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
  217. package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
  218. package/dist/feature-libraries/deltaUtils.d.ts +1 -1
  219. package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
  220. package/dist/feature-libraries/deltaUtils.js.map +1 -1
  221. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +4 -4
  222. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  223. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +1 -2
  224. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  225. package/dist/feature-libraries/editableTreeBinder.d.ts +3 -3
  226. package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  227. package/dist/feature-libraries/editableTreeBinder.js +12 -13
  228. package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
  229. package/dist/feature-libraries/fieldGenerator.d.ts +2 -2
  230. package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -1
  231. package/dist/feature-libraries/fieldGenerator.js.map +1 -1
  232. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +5 -5
  233. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  234. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +11 -12
  235. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  236. package/dist/feature-libraries/flex-tree/context.d.ts +8 -8
  237. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  238. package/dist/feature-libraries/flex-tree/context.js +3 -7
  239. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  240. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +9 -9
  241. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  242. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  243. package/dist/feature-libraries/flex-tree/index.d.ts +1 -1
  244. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  245. package/dist/feature-libraries/flex-tree/index.js +1 -4
  246. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  247. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +4 -4
  248. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  249. package/dist/feature-libraries/flex-tree/lazyEntity.js +22 -13
  250. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  251. package/dist/feature-libraries/flex-tree/lazyField.d.ts +6 -6
  252. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  253. package/dist/feature-libraries/flex-tree/lazyField.js +0 -6
  254. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  255. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +5 -5
  256. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  257. package/dist/feature-libraries/flex-tree/lazyNode.js +19 -13
  258. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  259. package/dist/feature-libraries/flex-tree/treeEvents.d.ts +1 -13
  260. package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  261. package/dist/feature-libraries/flex-tree/treeEvents.js +0 -31
  262. package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  263. package/dist/feature-libraries/flex-tree/unboxed.d.ts +5 -5
  264. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  265. package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
  266. package/dist/feature-libraries/flex-tree/utilities.d.ts +1 -1
  267. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  268. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  269. package/dist/feature-libraries/forest-summary/codec.d.ts +3 -3
  270. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  271. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  272. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +7 -7
  273. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  274. package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -6
  275. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  276. package/dist/feature-libraries/forest-summary/format.d.ts +1 -1
  277. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  278. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  279. package/dist/feature-libraries/index.d.ts +1 -1
  280. package/dist/feature-libraries/index.d.ts.map +1 -1
  281. package/dist/feature-libraries/index.js +1 -3
  282. package/dist/feature-libraries/index.js.map +1 -1
  283. package/dist/feature-libraries/mapTreeCursor.d.ts +2 -2
  284. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  285. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  286. package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts +1 -1
  287. package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
  288. package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
  289. package/dist/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
  290. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  291. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  292. package/dist/feature-libraries/modular-schema/comparison.d.ts +2 -2
  293. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  294. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  295. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +2 -2
  296. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  297. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  298. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -7
  299. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  300. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  301. package/dist/feature-libraries/modular-schema/fieldKind.d.ts +1 -1
  302. package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  303. package/dist/feature-libraries/modular-schema/fieldKind.js +0 -2
  304. package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  305. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
  306. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
  307. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
  308. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +3 -3
  309. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
  310. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -3
  311. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  312. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +4 -4
  313. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  314. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  315. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
  316. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  317. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  318. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
  319. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  320. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  321. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +1 -1
  322. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  323. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  324. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +2 -2
  325. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  326. package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  327. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +5 -5
  328. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  329. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +2 -0
  330. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  331. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +6 -6
  332. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  333. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +2 -5
  334. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  335. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +3 -3
  336. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  337. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  338. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +3 -3
  339. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  340. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  341. package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts +2 -2
  342. package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +1 -1
  343. package/dist/feature-libraries/node-key/mockNodeKeyManager.js +4 -2
  344. package/dist/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  345. package/dist/feature-libraries/node-key/nodeKey.d.ts +3 -3
  346. package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  347. package/dist/feature-libraries/node-key/nodeKey.js.map +1 -1
  348. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +4 -4
  349. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
  350. package/dist/feature-libraries/node-key/nodeKeyIndex.js +0 -3
  351. package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
  352. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +1 -1
  353. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  354. package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  355. package/dist/feature-libraries/object-forest/objectForest.d.ts +2 -2
  356. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  357. package/dist/feature-libraries/object-forest/objectForest.js +28 -23
  358. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  359. package/dist/feature-libraries/optional-field/optionalField.d.ts +3 -3
  360. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  361. package/dist/feature-libraries/optional-field/optionalField.js +3 -1
  362. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  363. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
  364. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  365. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  366. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
  367. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
  368. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  369. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +2 -2
  370. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  371. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  372. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +3 -3
  373. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
  374. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
  375. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +3 -3
  376. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  377. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  378. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
  379. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  380. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  381. package/dist/feature-libraries/schema-aware/schemaAware.d.ts +4 -4
  382. package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  383. package/dist/feature-libraries/schema-aware/schemaAware.js +0 -2
  384. package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  385. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
  386. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  387. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  388. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +1 -1
  389. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  390. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  391. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts +1 -1
  392. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
  393. package/dist/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
  394. package/dist/feature-libraries/schema-index/codec.d.ts +2 -2
  395. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  396. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  397. package/dist/feature-libraries/schema-index/format.d.ts +1 -1
  398. package/dist/feature-libraries/schema-index/format.d.ts.map +1 -1
  399. package/dist/feature-libraries/schema-index/format.js.map +1 -1
  400. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +7 -7
  401. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  402. package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -5
  403. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  404. package/dist/feature-libraries/schemaBuilder.d.ts +2 -2
  405. package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -1
  406. package/dist/feature-libraries/schemaBuilder.js.map +1 -1
  407. package/dist/feature-libraries/schemaBuilderBase.d.ts +4 -4
  408. package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
  409. package/dist/feature-libraries/schemaBuilderBase.js +3 -14
  410. package/dist/feature-libraries/schemaBuilderBase.js.map +1 -1
  411. package/dist/feature-libraries/sequence-field/compose.d.ts +5 -5
  412. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  413. package/dist/feature-libraries/sequence-field/compose.js +0 -6
  414. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  415. package/dist/feature-libraries/sequence-field/formatV1.d.ts +1 -1
  416. package/dist/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
  417. package/dist/feature-libraries/sequence-field/formatV1.js.map +1 -1
  418. package/dist/feature-libraries/sequence-field/formatV2.d.ts +1 -1
  419. package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  420. package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
  421. package/dist/feature-libraries/sequence-field/helperTypes.d.ts +1 -1
  422. package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  423. package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  424. package/dist/feature-libraries/sequence-field/invert.d.ts +3 -3
  425. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  426. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  427. package/dist/feature-libraries/sequence-field/markListFactory.d.ts +1 -1
  428. package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
  429. package/dist/feature-libraries/sequence-field/markListFactory.js +4 -3
  430. package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -1
  431. package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  432. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  433. package/dist/feature-libraries/sequence-field/markQueue.js +2 -4
  434. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  435. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +5 -5
  436. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  437. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  438. package/dist/feature-libraries/sequence-field/prune.d.ts +2 -2
  439. package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  440. package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
  441. package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -3
  442. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  443. package/dist/feature-libraries/sequence-field/rebase.js +0 -6
  444. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  445. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +3 -3
  446. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  447. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  448. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
  449. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  450. package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  451. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +3 -3
  452. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  453. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  454. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
  455. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  456. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  457. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +5 -5
  458. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
  459. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
  460. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +5 -5
  461. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  462. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  463. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +4 -4
  464. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  465. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  466. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +3 -3
  467. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  468. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  469. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
  470. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  471. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  472. package/dist/feature-libraries/sequence-field/types.d.ts +2 -2
  473. package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
  474. package/dist/feature-libraries/sequence-field/types.js.map +1 -1
  475. package/dist/feature-libraries/sequence-field/utils.d.ts +5 -5
  476. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  477. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  478. package/dist/feature-libraries/storedToViewSchema.d.ts +2 -2
  479. package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  480. package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
  481. package/dist/feature-libraries/treeCursorUtils.d.ts +1 -1
  482. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  483. package/dist/feature-libraries/treeCursorUtils.js +9 -13
  484. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  485. package/dist/feature-libraries/treeTextCursor.d.ts +2 -2
  486. package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
  487. package/dist/feature-libraries/treeTextCursor.js.map +1 -1
  488. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +3 -3
  489. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  490. package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  491. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +4 -4
  492. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  493. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +4 -23
  494. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  495. package/dist/feature-libraries/typed-schema/view.d.ts +4 -4
  496. package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
  497. package/dist/feature-libraries/typed-schema/view.js +0 -7
  498. package/dist/feature-libraries/typed-schema/view.js.map +1 -1
  499. package/dist/feature-libraries/valueUtilities.d.ts +2 -2
  500. package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
  501. package/dist/feature-libraries/valueUtilities.js.map +1 -1
  502. package/dist/index.d.ts +1 -1
  503. package/dist/index.d.ts.map +1 -1
  504. package/dist/index.js +1 -2
  505. package/dist/index.js.map +1 -1
  506. package/dist/packageVersion.d.ts +1 -1
  507. package/dist/packageVersion.js +1 -1
  508. package/dist/packageVersion.js.map +1 -1
  509. package/dist/public.d.ts +0 -1
  510. package/dist/shared-tree/schematizeTree.d.ts +3 -3
  511. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  512. package/dist/shared-tree/schematizeTree.js.map +1 -1
  513. package/dist/shared-tree/schematizingTreeView.d.ts +4 -4
  514. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  515. package/dist/shared-tree/schematizingTreeView.js +10 -27
  516. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  517. package/dist/shared-tree/sharedTree.d.ts +15 -11
  518. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  519. package/dist/shared-tree/sharedTree.js +13 -10
  520. package/dist/shared-tree/sharedTree.js.map +1 -1
  521. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +4 -4
  522. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  523. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  524. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +3 -3
  525. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  526. package/dist/shared-tree/sharedTreeChangeEnricher.js +11 -14
  527. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  528. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  529. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  530. package/dist/shared-tree/sharedTreeChangeFamily.js +3 -5
  531. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  532. package/dist/shared-tree/sharedTreeChangeFormat.d.ts +1 -1
  533. package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  534. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  535. package/dist/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
  536. package/dist/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -1
  537. package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -1
  538. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +3 -3
  539. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  540. package/dist/shared-tree/sharedTreeEditBuilder.js +0 -2
  541. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  542. package/dist/shared-tree/treeApi.d.ts +1 -1
  543. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  544. package/dist/shared-tree/treeApi.js.map +1 -1
  545. package/dist/shared-tree/treeCheckout.d.ts +7 -7
  546. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  547. package/dist/shared-tree/treeCheckout.js +11 -22
  548. package/dist/shared-tree/treeCheckout.js.map +1 -1
  549. package/dist/shared-tree/treeView.d.ts +3 -3
  550. package/dist/shared-tree/treeView.d.ts.map +1 -1
  551. package/dist/shared-tree/treeView.js +0 -6
  552. package/dist/shared-tree/treeView.js.map +1 -1
  553. package/dist/shared-tree-core/branch.d.ts +2 -2
  554. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  555. package/dist/shared-tree-core/branch.js +25 -31
  556. package/dist/shared-tree-core/branch.js.map +1 -1
  557. package/dist/shared-tree-core/branchCommitEnricher.d.ts +2 -2
  558. package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  559. package/dist/shared-tree-core/branchCommitEnricher.js +9 -12
  560. package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
  561. package/dist/shared-tree-core/changeEnricher.d.ts +1 -1
  562. package/dist/shared-tree-core/changeEnricher.d.ts.map +1 -1
  563. package/dist/shared-tree-core/changeEnricher.js.map +1 -1
  564. package/dist/shared-tree-core/defaultResubmitMachine.d.ts +2 -2
  565. package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  566. package/dist/shared-tree-core/defaultResubmitMachine.js +19 -21
  567. package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  568. package/dist/shared-tree-core/editManager.d.ts +3 -3
  569. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  570. package/dist/shared-tree-core/editManager.js +37 -53
  571. package/dist/shared-tree-core/editManager.js.map +1 -1
  572. package/dist/shared-tree-core/editManagerCodecs.d.ts +5 -5
  573. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  574. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  575. package/dist/shared-tree-core/editManagerFormat.d.ts +4 -4
  576. package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  577. package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
  578. package/dist/shared-tree-core/editManagerSummarizer.d.ts +9 -9
  579. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  580. package/dist/shared-tree-core/editManagerSummarizer.js +1 -5
  581. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  582. package/dist/shared-tree-core/messageCodecs.d.ts +5 -5
  583. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  584. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  585. package/dist/shared-tree-core/messageFormat.d.ts +4 -4
  586. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  587. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  588. package/dist/shared-tree-core/messageTypes.d.ts +2 -2
  589. package/dist/shared-tree-core/messageTypes.d.ts.map +1 -1
  590. package/dist/shared-tree-core/messageTypes.js.map +1 -1
  591. package/dist/shared-tree-core/resubmitMachine.d.ts +1 -1
  592. package/dist/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  593. package/dist/shared-tree-core/resubmitMachine.js.map +1 -1
  594. package/dist/shared-tree-core/sequenceIdUtils.d.ts +1 -1
  595. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  596. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  597. package/dist/shared-tree-core/sharedTreeCore.d.ts +10 -10
  598. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  599. package/dist/shared-tree-core/sharedTreeCore.js +7 -24
  600. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  601. package/dist/shared-tree-core/transactionEnricher.d.ts +2 -2
  602. package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  603. package/dist/shared-tree-core/transactionEnricher.js +1 -3
  604. package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
  605. package/dist/shared-tree-core/transactionStack.d.ts +1 -1
  606. package/dist/shared-tree-core/transactionStack.d.ts.map +1 -1
  607. package/dist/shared-tree-core/transactionStack.js +3 -1
  608. package/dist/shared-tree-core/transactionStack.js.map +1 -1
  609. package/dist/simple-tree/arrayNode.d.ts +2 -2
  610. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  611. package/dist/simple-tree/arrayNode.js +34 -26
  612. package/dist/simple-tree/arrayNode.js.map +1 -1
  613. package/dist/simple-tree/leafNodeSchema.d.ts +1 -1
  614. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  615. package/dist/simple-tree/leafNodeSchema.js +2 -4
  616. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  617. package/dist/simple-tree/mapNode.d.ts +2 -2
  618. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  619. package/dist/simple-tree/mapNode.js +5 -5
  620. package/dist/simple-tree/mapNode.js.map +1 -1
  621. package/dist/simple-tree/nodeKeys.d.ts +2 -2
  622. package/dist/simple-tree/nodeKeys.d.ts.map +1 -1
  623. package/dist/simple-tree/nodeKeys.js.map +1 -1
  624. package/dist/simple-tree/objectNode.d.ts +5 -5
  625. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  626. package/dist/simple-tree/objectNode.js +6 -6
  627. package/dist/simple-tree/objectNode.js.map +1 -1
  628. package/dist/simple-tree/proxies.d.ts +4 -4
  629. package/dist/simple-tree/proxies.d.ts.map +1 -1
  630. package/dist/simple-tree/proxies.js +6 -4
  631. package/dist/simple-tree/proxies.js.map +1 -1
  632. package/dist/simple-tree/proxyBinding.d.ts +6 -6
  633. package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
  634. package/dist/simple-tree/proxyBinding.js.map +1 -1
  635. package/dist/simple-tree/schemaCaching.d.ts +2 -2
  636. package/dist/simple-tree/schemaCaching.d.ts.map +1 -1
  637. package/dist/simple-tree/schemaCaching.js.map +1 -1
  638. package/dist/simple-tree/schemaCreationUtilities.d.ts +5 -5
  639. package/dist/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
  640. package/dist/simple-tree/schemaCreationUtilities.js.map +1 -1
  641. package/dist/simple-tree/schemaFactory.d.ts +25 -12
  642. package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
  643. package/dist/simple-tree/schemaFactory.js +65 -53
  644. package/dist/simple-tree/schemaFactory.js.map +1 -1
  645. package/dist/simple-tree/schemaFactoryRecursive.d.ts +6 -6
  646. package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  647. package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
  648. package/dist/simple-tree/schemaTypes.d.ts +6 -6
  649. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  650. package/dist/simple-tree/schemaTypes.js +3 -12
  651. package/dist/simple-tree/schemaTypes.js.map +1 -1
  652. package/dist/simple-tree/testRecursiveDomain.d.ts +1 -1
  653. package/dist/simple-tree/testRecursiveDomain.d.ts.map +1 -1
  654. package/dist/simple-tree/testRecursiveDomain.js.map +1 -1
  655. package/dist/simple-tree/toFlexSchema.d.ts +4 -4
  656. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  657. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  658. package/dist/simple-tree/toMapTree.d.ts +2 -2
  659. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  660. package/dist/simple-tree/toMapTree.js.map +1 -1
  661. package/dist/simple-tree/tree.d.ts +6 -27
  662. package/dist/simple-tree/tree.d.ts.map +1 -1
  663. package/dist/simple-tree/tree.js +0 -21
  664. package/dist/simple-tree/tree.js.map +1 -1
  665. package/dist/simple-tree/treeNodeApi.d.ts +30 -27
  666. package/dist/simple-tree/treeNodeApi.d.ts.map +1 -1
  667. package/dist/simple-tree/treeNodeApi.js +8 -3
  668. package/dist/simple-tree/treeNodeApi.js.map +1 -1
  669. package/dist/simple-tree/types.d.ts +29 -9
  670. package/dist/simple-tree/types.d.ts.map +1 -1
  671. package/dist/simple-tree/types.js +79 -54
  672. package/dist/simple-tree/types.js.map +1 -1
  673. package/dist/simple-tree/typesUnsafe.d.ts +5 -5
  674. package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
  675. package/dist/simple-tree/typesUnsafe.js.map +1 -1
  676. package/dist/treeFactory.d.ts +5 -5
  677. package/dist/treeFactory.d.ts.map +1 -1
  678. package/dist/treeFactory.js +10 -9
  679. package/dist/treeFactory.js.map +1 -1
  680. package/dist/util/brand.js +0 -1
  681. package/dist/util/brand.js.map +1 -1
  682. package/dist/util/brandedMap.d.ts +1 -1
  683. package/dist/util/brandedMap.d.ts.map +1 -1
  684. package/dist/util/brandedMap.js.map +1 -1
  685. package/dist/util/nestedMap.d.ts +1 -1
  686. package/dist/util/nestedMap.d.ts.map +1 -1
  687. package/dist/util/nestedMap.js +4 -2
  688. package/dist/util/nestedMap.js.map +1 -1
  689. package/dist/util/nestedSet.d.ts +1 -1
  690. package/dist/util/nestedSet.d.ts.map +1 -1
  691. package/dist/util/nestedSet.js.map +1 -1
  692. package/dist/util/offsetList.js +4 -2
  693. package/dist/util/offsetList.js.map +1 -1
  694. package/dist/util/referenceCounting.js +0 -1
  695. package/dist/util/referenceCounting.js.map +1 -1
  696. package/dist/util/stackyIterator.js +2 -3
  697. package/dist/util/stackyIterator.js.map +1 -1
  698. package/dist/util/typeboxBrand.d.ts +1 -1
  699. package/dist/util/typeboxBrand.d.ts.map +1 -1
  700. package/dist/util/typeboxBrand.js.map +1 -1
  701. package/lib/beta.d.ts +0 -1
  702. package/lib/codec/codec.d.ts +2 -2
  703. package/lib/codec/codec.d.ts.map +1 -1
  704. package/lib/codec/codec.js +0 -1
  705. package/lib/codec/codec.js.map +1 -1
  706. package/lib/codec/discriminatedUnions.d.ts +2 -2
  707. package/lib/codec/discriminatedUnions.d.ts.map +1 -1
  708. package/lib/codec/discriminatedUnions.js +0 -1
  709. package/lib/codec/discriminatedUnions.js.map +1 -1
  710. package/lib/codec/noopValidator.d.ts +1 -1
  711. package/lib/codec/noopValidator.d.ts.map +1 -1
  712. package/lib/codec/noopValidator.js.map +1 -1
  713. package/lib/codec/versioned/codec.d.ts +3 -3
  714. package/lib/codec/versioned/codec.d.ts.map +1 -1
  715. package/lib/codec/versioned/codec.js.map +1 -1
  716. package/lib/codec/versioned/format.d.ts +1 -1
  717. package/lib/codec/versioned/format.d.ts.map +1 -1
  718. package/lib/codec/versioned/format.js.map +1 -1
  719. package/lib/core/change-family/changeFamily.d.ts +5 -5
  720. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  721. package/lib/core/change-family/changeFamily.js.map +1 -1
  722. package/lib/core/change-family/editBuilder.d.ts +1 -1
  723. package/lib/core/change-family/editBuilder.d.ts.map +1 -1
  724. package/lib/core/change-family/editBuilder.js +0 -2
  725. package/lib/core/change-family/editBuilder.js.map +1 -1
  726. package/lib/core/forest/editableForest.d.ts +5 -5
  727. package/lib/core/forest/editableForest.d.ts.map +1 -1
  728. package/lib/core/forest/editableForest.js.map +1 -1
  729. package/lib/core/forest/forest.d.ts +3 -3
  730. package/lib/core/forest/forest.d.ts.map +1 -1
  731. package/lib/core/forest/forest.js.map +1 -1
  732. package/lib/core/rebase/changeRebaser.d.ts +1 -1
  733. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  734. package/lib/core/rebase/changeRebaser.js.map +1 -1
  735. package/lib/core/rebase/revisionTagCodec.d.ts +4 -4
  736. package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
  737. package/lib/core/rebase/revisionTagCodec.js +0 -2
  738. package/lib/core/rebase/revisionTagCodec.js.map +1 -1
  739. package/lib/core/rebase/types.d.ts +3 -3
  740. package/lib/core/rebase/types.d.ts.map +1 -1
  741. package/lib/core/rebase/types.js.map +1 -1
  742. package/lib/core/rebase/utils.d.ts +2 -2
  743. package/lib/core/rebase/utils.d.ts.map +1 -1
  744. package/lib/core/rebase/utils.js.map +1 -1
  745. package/lib/core/schema-stored/format.d.ts +2 -2
  746. package/lib/core/schema-stored/format.d.ts.map +1 -1
  747. package/lib/core/schema-stored/format.js.map +1 -1
  748. package/lib/core/schema-stored/schema.d.ts +3 -3
  749. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  750. package/lib/core/schema-stored/schema.js +0 -4
  751. package/lib/core/schema-stored/schema.js.map +1 -1
  752. package/lib/core/schema-stored/storedSchemaRepository.d.ts +3 -3
  753. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  754. package/lib/core/schema-stored/storedSchemaRepository.js +1 -3
  755. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  756. package/lib/core/schema-view/view.d.ts +1 -1
  757. package/lib/core/schema-view/view.d.ts.map +1 -1
  758. package/lib/core/schema-view/view.js +0 -2
  759. package/lib/core/schema-view/view.js.map +1 -1
  760. package/lib/core/tree/anchorSet.d.ts +56 -18
  761. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  762. package/lib/core/tree/anchorSet.js +97 -52
  763. package/lib/core/tree/anchorSet.js.map +1 -1
  764. package/lib/core/tree/cursor.d.ts +3 -3
  765. package/lib/core/tree/cursor.d.ts.map +1 -1
  766. package/lib/core/tree/cursor.js.map +1 -1
  767. package/lib/core/tree/delta.d.ts +3 -3
  768. package/lib/core/tree/delta.d.ts.map +1 -1
  769. package/lib/core/tree/delta.js.map +1 -1
  770. package/lib/core/tree/deltaUtil.d.ts +2 -2
  771. package/lib/core/tree/deltaUtil.d.ts.map +1 -1
  772. package/lib/core/tree/deltaUtil.js.map +1 -1
  773. package/lib/core/tree/detachedFieldIndex.d.ts +7 -7
  774. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  775. package/lib/core/tree/detachedFieldIndex.js +2 -8
  776. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  777. package/lib/core/tree/detachedFieldIndexCodec.d.ts +4 -4
  778. package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  779. package/lib/core/tree/detachedFieldIndexCodec.js +1 -4
  780. package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
  781. package/lib/core/tree/detachedFieldIndexFormat.d.ts +2 -2
  782. package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  783. package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -1
  784. package/lib/core/tree/detachedFieldIndexTypes.d.ts +3 -3
  785. package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  786. package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
  787. package/lib/core/tree/mapTree.d.ts +2 -2
  788. package/lib/core/tree/mapTree.d.ts.map +1 -1
  789. package/lib/core/tree/mapTree.js.map +1 -1
  790. package/lib/core/tree/pathTree.d.ts +3 -3
  791. package/lib/core/tree/pathTree.d.ts.map +1 -1
  792. package/lib/core/tree/pathTree.js.map +1 -1
  793. package/lib/core/tree/persistedTreeTextFormat.d.ts +1 -1
  794. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  795. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  796. package/lib/core/tree/sparseTree.d.ts +2 -2
  797. package/lib/core/tree/sparseTree.d.ts.map +1 -1
  798. package/lib/core/tree/sparseTree.js +11 -15
  799. package/lib/core/tree/sparseTree.js.map +1 -1
  800. package/lib/core/tree/treeTextFormat.d.ts +2 -2
  801. package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
  802. package/lib/core/tree/treeTextFormat.js.map +1 -1
  803. package/lib/core/tree/types.d.ts +3 -3
  804. package/lib/core/tree/types.d.ts.map +1 -1
  805. package/lib/core/tree/types.js +1 -2
  806. package/lib/core/tree/types.js.map +1 -1
  807. package/lib/core/tree/visitDelta.d.ts +5 -5
  808. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  809. package/lib/core/tree/visitDelta.js.map +1 -1
  810. package/lib/core/tree/visitPath.d.ts +2 -2
  811. package/lib/core/tree/visitPath.d.ts.map +1 -1
  812. package/lib/core/tree/visitPath.js.map +1 -1
  813. package/lib/core/tree/visitorUtils.d.ts +7 -7
  814. package/lib/core/tree/visitorUtils.d.ts.map +1 -1
  815. package/lib/core/tree/visitorUtils.js.map +1 -1
  816. package/lib/domains/json/jsonCursor.d.ts +2 -2
  817. package/lib/domains/json/jsonCursor.d.ts.map +1 -1
  818. package/lib/domains/json/jsonCursor.js.map +1 -1
  819. package/lib/domains/json/jsonDomainSchema.js.map +1 -1
  820. package/lib/domains/schemaBuilder.d.ts +2 -2
  821. package/lib/domains/schemaBuilder.d.ts.map +1 -1
  822. package/lib/domains/schemaBuilder.js +70 -70
  823. package/lib/domains/schemaBuilder.js.map +1 -1
  824. package/lib/events/events.js +1 -2
  825. package/lib/events/events.js.map +1 -1
  826. package/lib/feature-libraries/changeAtomIdCodec.d.ts +2 -2
  827. package/lib/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  828. package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
  829. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +2 -2
  830. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  831. package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -14
  832. package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  833. package/lib/feature-libraries/chunked-forest/chunk.d.ts +2 -2
  834. package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
  835. package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -1
  836. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +4 -4
  837. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  838. package/lib/feature-libraries/chunked-forest/chunkTree.js +6 -13
  839. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  840. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -4
  841. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  842. package/lib/feature-libraries/chunked-forest/chunkedForest.js +2 -9
  843. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  844. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +3 -3
  845. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  846. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +3 -1
  847. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  848. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +17 -7
  849. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  850. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -11
  851. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  852. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +8 -8
  853. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  854. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +3 -6
  855. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  856. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +3 -3
  857. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  858. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +0 -1
  859. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  860. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +6 -5
  861. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  862. package/lib/feature-libraries/chunked-forest/codec/codecs.js +5 -2
  863. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  864. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
  865. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  866. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +13 -25
  867. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  868. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +1 -1
  869. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -1
  870. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -1
  871. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
  872. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  873. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  874. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
  875. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
  876. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
  877. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +5 -5
  878. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  879. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +5 -8
  880. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  881. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +6 -6
  882. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
  883. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
  884. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +2 -2
  885. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  886. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +1 -1
  887. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  888. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts +1 -1
  889. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
  890. package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
  891. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
  892. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
  893. package/lib/feature-libraries/chunked-forest/sequenceChunk.js +0 -1
  894. package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
  895. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +2 -2
  896. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  897. package/lib/feature-libraries/chunked-forest/uniformChunk.js +5 -40
  898. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  899. package/lib/feature-libraries/contextuallyTyped.d.ts +5 -5
  900. package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  901. package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
  902. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -3
  903. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  904. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +0 -2
  905. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  906. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
  907. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  908. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  909. package/lib/feature-libraries/default-schema/defaultSchema.d.ts +1 -1
  910. package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
  911. package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
  912. package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts +2 -2
  913. package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
  914. package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
  915. package/lib/feature-libraries/deltaUtils.d.ts +1 -1
  916. package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
  917. package/lib/feature-libraries/deltaUtils.js +1 -1
  918. package/lib/feature-libraries/deltaUtils.js.map +1 -1
  919. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +4 -4
  920. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  921. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +1 -2
  922. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  923. package/lib/feature-libraries/editableTreeBinder.d.ts +3 -3
  924. package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  925. package/lib/feature-libraries/editableTreeBinder.js +12 -13
  926. package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
  927. package/lib/feature-libraries/fieldGenerator.d.ts +2 -2
  928. package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -1
  929. package/lib/feature-libraries/fieldGenerator.js.map +1 -1
  930. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +5 -5
  931. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  932. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +11 -12
  933. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  934. package/lib/feature-libraries/flex-tree/context.d.ts +8 -8
  935. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  936. package/lib/feature-libraries/flex-tree/context.js +3 -7
  937. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  938. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +9 -9
  939. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  940. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  941. package/lib/feature-libraries/flex-tree/index.d.ts +1 -1
  942. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  943. package/lib/feature-libraries/flex-tree/index.js +0 -1
  944. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  945. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +4 -4
  946. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  947. package/lib/feature-libraries/flex-tree/lazyEntity.js +23 -14
  948. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  949. package/lib/feature-libraries/flex-tree/lazyField.d.ts +6 -6
  950. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  951. package/lib/feature-libraries/flex-tree/lazyField.js +0 -6
  952. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  953. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +5 -5
  954. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  955. package/lib/feature-libraries/flex-tree/lazyNode.js +19 -13
  956. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  957. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +1 -13
  958. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  959. package/lib/feature-libraries/flex-tree/treeEvents.js +1 -28
  960. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  961. package/lib/feature-libraries/flex-tree/unboxed.d.ts +5 -5
  962. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  963. package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
  964. package/lib/feature-libraries/flex-tree/utilities.d.ts +1 -1
  965. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  966. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  967. package/lib/feature-libraries/forest-summary/codec.d.ts +3 -3
  968. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  969. package/lib/feature-libraries/forest-summary/codec.js +1 -1
  970. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  971. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +7 -7
  972. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  973. package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -6
  974. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  975. package/lib/feature-libraries/forest-summary/format.d.ts +1 -1
  976. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  977. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  978. package/lib/feature-libraries/index.d.ts +1 -1
  979. package/lib/feature-libraries/index.d.ts.map +1 -1
  980. package/lib/feature-libraries/index.js +1 -1
  981. package/lib/feature-libraries/index.js.map +1 -1
  982. package/lib/feature-libraries/mapTreeCursor.d.ts +2 -2
  983. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  984. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  985. package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts +1 -1
  986. package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
  987. package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
  988. package/lib/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
  989. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  990. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  991. package/lib/feature-libraries/modular-schema/comparison.d.ts +2 -2
  992. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  993. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  994. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +2 -2
  995. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  996. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  997. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -7
  998. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  999. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  1000. package/lib/feature-libraries/modular-schema/fieldKind.d.ts +1 -1
  1001. package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  1002. package/lib/feature-libraries/modular-schema/fieldKind.js +0 -2
  1003. package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  1004. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
  1005. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
  1006. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
  1007. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +3 -3
  1008. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
  1009. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -3
  1010. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  1011. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +4 -4
  1012. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  1013. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  1014. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
  1015. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  1016. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  1017. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
  1018. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  1019. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  1020. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +1 -1
  1021. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  1022. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  1023. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +2 -2
  1024. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  1025. package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  1026. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +5 -5
  1027. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  1028. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +2 -0
  1029. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  1030. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +6 -6
  1031. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  1032. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +2 -5
  1033. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  1034. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +3 -3
  1035. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  1036. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  1037. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +3 -3
  1038. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  1039. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  1040. package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts +2 -2
  1041. package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +1 -1
  1042. package/lib/feature-libraries/node-key/mockNodeKeyManager.js +4 -2
  1043. package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  1044. package/lib/feature-libraries/node-key/nodeKey.d.ts +3 -3
  1045. package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  1046. package/lib/feature-libraries/node-key/nodeKey.js.map +1 -1
  1047. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +4 -4
  1048. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
  1049. package/lib/feature-libraries/node-key/nodeKeyIndex.js +0 -3
  1050. package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
  1051. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +1 -1
  1052. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  1053. package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  1054. package/lib/feature-libraries/object-forest/objectForest.d.ts +2 -2
  1055. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  1056. package/lib/feature-libraries/object-forest/objectForest.js +28 -23
  1057. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  1058. package/lib/feature-libraries/optional-field/optionalField.d.ts +3 -3
  1059. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  1060. package/lib/feature-libraries/optional-field/optionalField.js +3 -1
  1061. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  1062. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
  1063. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  1064. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  1065. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
  1066. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
  1067. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  1068. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +2 -2
  1069. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  1070. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  1071. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +3 -3
  1072. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
  1073. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
  1074. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +3 -3
  1075. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  1076. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  1077. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
  1078. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  1079. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  1080. package/lib/feature-libraries/schema-aware/schemaAware.d.ts +4 -4
  1081. package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  1082. package/lib/feature-libraries/schema-aware/schemaAware.js +1 -2
  1083. package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  1084. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
  1085. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  1086. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  1087. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +1 -1
  1088. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  1089. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  1090. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts +1 -1
  1091. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
  1092. package/lib/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
  1093. package/lib/feature-libraries/schema-index/codec.d.ts +2 -2
  1094. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  1095. package/lib/feature-libraries/schema-index/codec.js +1 -1
  1096. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  1097. package/lib/feature-libraries/schema-index/format.d.ts +1 -1
  1098. package/lib/feature-libraries/schema-index/format.d.ts.map +1 -1
  1099. package/lib/feature-libraries/schema-index/format.js.map +1 -1
  1100. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +7 -7
  1101. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  1102. package/lib/feature-libraries/schema-index/schemaSummarizer.js +2 -6
  1103. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  1104. package/lib/feature-libraries/schemaBuilder.d.ts +2 -2
  1105. package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -1
  1106. package/lib/feature-libraries/schemaBuilder.js.map +1 -1
  1107. package/lib/feature-libraries/schemaBuilderBase.d.ts +4 -4
  1108. package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
  1109. package/lib/feature-libraries/schemaBuilderBase.js +3 -14
  1110. package/lib/feature-libraries/schemaBuilderBase.js.map +1 -1
  1111. package/lib/feature-libraries/sequence-field/compose.d.ts +5 -5
  1112. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  1113. package/lib/feature-libraries/sequence-field/compose.js +0 -6
  1114. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  1115. package/lib/feature-libraries/sequence-field/formatV1.d.ts +1 -1
  1116. package/lib/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
  1117. package/lib/feature-libraries/sequence-field/formatV1.js.map +1 -1
  1118. package/lib/feature-libraries/sequence-field/formatV2.d.ts +1 -1
  1119. package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  1120. package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
  1121. package/lib/feature-libraries/sequence-field/helperTypes.d.ts +1 -1
  1122. package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  1123. package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  1124. package/lib/feature-libraries/sequence-field/invert.d.ts +3 -3
  1125. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  1126. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  1127. package/lib/feature-libraries/sequence-field/markListFactory.d.ts +1 -1
  1128. package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
  1129. package/lib/feature-libraries/sequence-field/markListFactory.js +4 -3
  1130. package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -1
  1131. package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  1132. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  1133. package/lib/feature-libraries/sequence-field/markQueue.js +2 -4
  1134. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  1135. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +5 -5
  1136. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  1137. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  1138. package/lib/feature-libraries/sequence-field/prune.d.ts +2 -2
  1139. package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  1140. package/lib/feature-libraries/sequence-field/prune.js.map +1 -1
  1141. package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -3
  1142. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  1143. package/lib/feature-libraries/sequence-field/rebase.js +0 -6
  1144. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  1145. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +3 -3
  1146. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  1147. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  1148. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
  1149. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  1150. package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  1151. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +3 -3
  1152. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  1153. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  1154. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
  1155. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  1156. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  1157. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +5 -5
  1158. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
  1159. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
  1160. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +5 -5
  1161. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  1162. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  1163. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +4 -4
  1164. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  1165. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  1166. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +3 -3
  1167. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  1168. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  1169. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
  1170. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  1171. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  1172. package/lib/feature-libraries/sequence-field/types.d.ts +2 -2
  1173. package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
  1174. package/lib/feature-libraries/sequence-field/types.js.map +1 -1
  1175. package/lib/feature-libraries/sequence-field/utils.d.ts +5 -5
  1176. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  1177. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  1178. package/lib/feature-libraries/storedToViewSchema.d.ts +2 -2
  1179. package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  1180. package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
  1181. package/lib/feature-libraries/treeCursorUtils.d.ts +1 -1
  1182. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  1183. package/lib/feature-libraries/treeCursorUtils.js +9 -13
  1184. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  1185. package/lib/feature-libraries/treeTextCursor.d.ts +2 -2
  1186. package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
  1187. package/lib/feature-libraries/treeTextCursor.js +1 -1
  1188. package/lib/feature-libraries/treeTextCursor.js.map +1 -1
  1189. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +3 -3
  1190. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  1191. package/lib/feature-libraries/typed-schema/schemaCollection.js +1 -1
  1192. package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  1193. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +4 -4
  1194. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  1195. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +4 -23
  1196. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  1197. package/lib/feature-libraries/typed-schema/view.d.ts +4 -4
  1198. package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
  1199. package/lib/feature-libraries/typed-schema/view.js +0 -7
  1200. package/lib/feature-libraries/typed-schema/view.js.map +1 -1
  1201. package/lib/feature-libraries/valueUtilities.d.ts +2 -2
  1202. package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
  1203. package/lib/feature-libraries/valueUtilities.js.map +1 -1
  1204. package/lib/index.d.ts +1 -1
  1205. package/lib/index.d.ts.map +1 -1
  1206. package/lib/index.js +1 -1
  1207. package/lib/index.js.map +1 -1
  1208. package/lib/packageVersion.d.ts +1 -1
  1209. package/lib/packageVersion.js +1 -1
  1210. package/lib/packageVersion.js.map +1 -1
  1211. package/lib/public.d.ts +0 -1
  1212. package/lib/shared-tree/schematizeTree.d.ts +3 -3
  1213. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  1214. package/lib/shared-tree/schematizeTree.js.map +1 -1
  1215. package/lib/shared-tree/schematizingTreeView.d.ts +4 -4
  1216. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  1217. package/lib/shared-tree/schematizingTreeView.js +11 -28
  1218. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  1219. package/lib/shared-tree/sharedTree.d.ts +15 -11
  1220. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  1221. package/lib/shared-tree/sharedTree.js +14 -11
  1222. package/lib/shared-tree/sharedTree.js.map +1 -1
  1223. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +4 -4
  1224. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  1225. package/lib/shared-tree/sharedTreeChangeCodecs.js +1 -1
  1226. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  1227. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +3 -3
  1228. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  1229. package/lib/shared-tree/sharedTreeChangeEnricher.js +11 -14
  1230. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  1231. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  1232. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  1233. package/lib/shared-tree/sharedTreeChangeFamily.js +4 -6
  1234. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  1235. package/lib/shared-tree/sharedTreeChangeFormat.d.ts +1 -1
  1236. package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  1237. package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  1238. package/lib/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
  1239. package/lib/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -1
  1240. package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -1
  1241. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +3 -3
  1242. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  1243. package/lib/shared-tree/sharedTreeEditBuilder.js +0 -2
  1244. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  1245. package/lib/shared-tree/treeApi.d.ts +1 -1
  1246. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  1247. package/lib/shared-tree/treeApi.js.map +1 -1
  1248. package/lib/shared-tree/treeCheckout.d.ts +7 -7
  1249. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  1250. package/lib/shared-tree/treeCheckout.js +12 -23
  1251. package/lib/shared-tree/treeCheckout.js.map +1 -1
  1252. package/lib/shared-tree/treeView.d.ts +3 -3
  1253. package/lib/shared-tree/treeView.d.ts.map +1 -1
  1254. package/lib/shared-tree/treeView.js +0 -6
  1255. package/lib/shared-tree/treeView.js.map +1 -1
  1256. package/lib/shared-tree-core/branch.d.ts +2 -2
  1257. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  1258. package/lib/shared-tree-core/branch.js +25 -31
  1259. package/lib/shared-tree-core/branch.js.map +1 -1
  1260. package/lib/shared-tree-core/branchCommitEnricher.d.ts +2 -2
  1261. package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  1262. package/lib/shared-tree-core/branchCommitEnricher.js +9 -12
  1263. package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
  1264. package/lib/shared-tree-core/changeEnricher.d.ts +1 -1
  1265. package/lib/shared-tree-core/changeEnricher.d.ts.map +1 -1
  1266. package/lib/shared-tree-core/changeEnricher.js.map +1 -1
  1267. package/lib/shared-tree-core/defaultResubmitMachine.d.ts +2 -2
  1268. package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  1269. package/lib/shared-tree-core/defaultResubmitMachine.js +19 -21
  1270. package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  1271. package/lib/shared-tree-core/editManager.d.ts +3 -3
  1272. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  1273. package/lib/shared-tree-core/editManager.js +37 -53
  1274. package/lib/shared-tree-core/editManager.js.map +1 -1
  1275. package/lib/shared-tree-core/editManagerCodecs.d.ts +5 -5
  1276. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  1277. package/lib/shared-tree-core/editManagerCodecs.js +1 -1
  1278. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  1279. package/lib/shared-tree-core/editManagerFormat.d.ts +4 -4
  1280. package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  1281. package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
  1282. package/lib/shared-tree-core/editManagerSummarizer.d.ts +9 -9
  1283. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  1284. package/lib/shared-tree-core/editManagerSummarizer.js +1 -5
  1285. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  1286. package/lib/shared-tree-core/messageCodecs.d.ts +5 -5
  1287. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  1288. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  1289. package/lib/shared-tree-core/messageFormat.d.ts +4 -4
  1290. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  1291. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  1292. package/lib/shared-tree-core/messageTypes.d.ts +2 -2
  1293. package/lib/shared-tree-core/messageTypes.d.ts.map +1 -1
  1294. package/lib/shared-tree-core/messageTypes.js.map +1 -1
  1295. package/lib/shared-tree-core/resubmitMachine.d.ts +1 -1
  1296. package/lib/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  1297. package/lib/shared-tree-core/resubmitMachine.js.map +1 -1
  1298. package/lib/shared-tree-core/sequenceIdUtils.d.ts +1 -1
  1299. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  1300. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  1301. package/lib/shared-tree-core/sharedTreeCore.d.ts +10 -10
  1302. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  1303. package/lib/shared-tree-core/sharedTreeCore.js +7 -24
  1304. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  1305. package/lib/shared-tree-core/transactionEnricher.d.ts +2 -2
  1306. package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  1307. package/lib/shared-tree-core/transactionEnricher.js +1 -3
  1308. package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
  1309. package/lib/shared-tree-core/transactionStack.d.ts +1 -1
  1310. package/lib/shared-tree-core/transactionStack.d.ts.map +1 -1
  1311. package/lib/shared-tree-core/transactionStack.js +3 -1
  1312. package/lib/shared-tree-core/transactionStack.js.map +1 -1
  1313. package/lib/simple-tree/arrayNode.d.ts +2 -2
  1314. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  1315. package/lib/simple-tree/arrayNode.js +35 -27
  1316. package/lib/simple-tree/arrayNode.js.map +1 -1
  1317. package/lib/simple-tree/leafNodeSchema.d.ts +1 -1
  1318. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  1319. package/lib/simple-tree/leafNodeSchema.js +2 -4
  1320. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  1321. package/lib/simple-tree/mapNode.d.ts +2 -2
  1322. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  1323. package/lib/simple-tree/mapNode.js +5 -5
  1324. package/lib/simple-tree/mapNode.js.map +1 -1
  1325. package/lib/simple-tree/nodeKeys.d.ts +2 -2
  1326. package/lib/simple-tree/nodeKeys.d.ts.map +1 -1
  1327. package/lib/simple-tree/nodeKeys.js.map +1 -1
  1328. package/lib/simple-tree/objectNode.d.ts +5 -5
  1329. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  1330. package/lib/simple-tree/objectNode.js +6 -6
  1331. package/lib/simple-tree/objectNode.js.map +1 -1
  1332. package/lib/simple-tree/proxies.d.ts +4 -4
  1333. package/lib/simple-tree/proxies.d.ts.map +1 -1
  1334. package/lib/simple-tree/proxies.js +7 -5
  1335. package/lib/simple-tree/proxies.js.map +1 -1
  1336. package/lib/simple-tree/proxyBinding.d.ts +6 -6
  1337. package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
  1338. package/lib/simple-tree/proxyBinding.js.map +1 -1
  1339. package/lib/simple-tree/schemaCaching.d.ts +2 -2
  1340. package/lib/simple-tree/schemaCaching.d.ts.map +1 -1
  1341. package/lib/simple-tree/schemaCaching.js.map +1 -1
  1342. package/lib/simple-tree/schemaCreationUtilities.d.ts +5 -5
  1343. package/lib/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
  1344. package/lib/simple-tree/schemaCreationUtilities.js.map +1 -1
  1345. package/lib/simple-tree/schemaFactory.d.ts +25 -12
  1346. package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
  1347. package/lib/simple-tree/schemaFactory.js +66 -54
  1348. package/lib/simple-tree/schemaFactory.js.map +1 -1
  1349. package/lib/simple-tree/schemaFactoryRecursive.d.ts +6 -6
  1350. package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  1351. package/lib/simple-tree/schemaFactoryRecursive.js +1 -1
  1352. package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
  1353. package/lib/simple-tree/schemaTypes.d.ts +6 -6
  1354. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  1355. package/lib/simple-tree/schemaTypes.js +3 -12
  1356. package/lib/simple-tree/schemaTypes.js.map +1 -1
  1357. package/lib/simple-tree/testRecursiveDomain.d.ts +1 -1
  1358. package/lib/simple-tree/testRecursiveDomain.d.ts.map +1 -1
  1359. package/lib/simple-tree/testRecursiveDomain.js.map +1 -1
  1360. package/lib/simple-tree/toFlexSchema.d.ts +4 -4
  1361. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  1362. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  1363. package/lib/simple-tree/toMapTree.d.ts +2 -2
  1364. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  1365. package/lib/simple-tree/toMapTree.js.map +1 -1
  1366. package/lib/simple-tree/tree.d.ts +6 -27
  1367. package/lib/simple-tree/tree.d.ts.map +1 -1
  1368. package/lib/simple-tree/tree.js +0 -21
  1369. package/lib/simple-tree/tree.js.map +1 -1
  1370. package/lib/simple-tree/treeNodeApi.d.ts +30 -27
  1371. package/lib/simple-tree/treeNodeApi.d.ts.map +1 -1
  1372. package/lib/simple-tree/treeNodeApi.js +8 -3
  1373. package/lib/simple-tree/treeNodeApi.js.map +1 -1
  1374. package/lib/simple-tree/types.d.ts +29 -9
  1375. package/lib/simple-tree/types.d.ts.map +1 -1
  1376. package/lib/simple-tree/types.js +78 -54
  1377. package/lib/simple-tree/types.js.map +1 -1
  1378. package/lib/simple-tree/typesUnsafe.d.ts +5 -5
  1379. package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
  1380. package/lib/simple-tree/typesUnsafe.js.map +1 -1
  1381. package/lib/treeFactory.d.ts +5 -5
  1382. package/lib/treeFactory.d.ts.map +1 -1
  1383. package/lib/treeFactory.js +10 -9
  1384. package/lib/treeFactory.js.map +1 -1
  1385. package/lib/util/brand.js +0 -1
  1386. package/lib/util/brand.js.map +1 -1
  1387. package/lib/util/brandedMap.d.ts +1 -1
  1388. package/lib/util/brandedMap.d.ts.map +1 -1
  1389. package/lib/util/brandedMap.js.map +1 -1
  1390. package/lib/util/nestedMap.d.ts +1 -1
  1391. package/lib/util/nestedMap.d.ts.map +1 -1
  1392. package/lib/util/nestedMap.js +4 -2
  1393. package/lib/util/nestedMap.js.map +1 -1
  1394. package/lib/util/nestedSet.d.ts +1 -1
  1395. package/lib/util/nestedSet.d.ts.map +1 -1
  1396. package/lib/util/nestedSet.js.map +1 -1
  1397. package/lib/util/offsetList.js +4 -2
  1398. package/lib/util/offsetList.js.map +1 -1
  1399. package/lib/util/referenceCounting.js +0 -1
  1400. package/lib/util/referenceCounting.js.map +1 -1
  1401. package/lib/util/stackyIterator.js +2 -3
  1402. package/lib/util/stackyIterator.js.map +1 -1
  1403. package/lib/util/typeboxBrand.d.ts +1 -1
  1404. package/lib/util/typeboxBrand.d.ts.map +1 -1
  1405. package/lib/util/typeboxBrand.js.map +1 -1
  1406. package/package.json +20 -20
  1407. package/src/codec/codec.ts +2 -2
  1408. package/src/codec/discriminatedUnions.ts +2 -2
  1409. package/src/codec/noopValidator.ts +1 -1
  1410. package/src/codec/versioned/codec.ts +4 -4
  1411. package/src/codec/versioned/format.ts +1 -1
  1412. package/src/core/change-family/changeFamily.ts +5 -5
  1413. package/src/core/change-family/editBuilder.ts +1 -1
  1414. package/src/core/forest/editableForest.ts +9 -9
  1415. package/src/core/forest/forest.ts +8 -8
  1416. package/src/core/rebase/changeRebaser.ts +1 -1
  1417. package/src/core/rebase/revisionTagCodec.ts +4 -4
  1418. package/src/core/rebase/types.ts +5 -5
  1419. package/src/core/rebase/utils.ts +6 -6
  1420. package/src/core/schema-stored/format.ts +2 -2
  1421. package/src/core/schema-stored/schema.ts +7 -7
  1422. package/src/core/schema-stored/storedSchemaRepository.ts +6 -6
  1423. package/src/core/schema-view/view.ts +1 -1
  1424. package/src/core/tree/anchorSet.ts +115 -23
  1425. package/src/core/tree/cursor.ts +3 -3
  1426. package/src/core/tree/delta.ts +3 -3
  1427. package/src/core/tree/deltaUtil.ts +4 -4
  1428. package/src/core/tree/detachedFieldIndex.ts +11 -11
  1429. package/src/core/tree/detachedFieldIndexCodec.ts +11 -7
  1430. package/src/core/tree/detachedFieldIndexFormat.ts +2 -2
  1431. package/src/core/tree/detachedFieldIndexTypes.ts +3 -3
  1432. package/src/core/tree/mapTree.ts +2 -2
  1433. package/src/core/tree/pathTree.ts +3 -3
  1434. package/src/core/tree/persistedTreeTextFormat.ts +1 -1
  1435. package/src/core/tree/sparseTree.ts +2 -2
  1436. package/src/core/tree/treeTextFormat.ts +2 -2
  1437. package/src/core/tree/types.ts +10 -4
  1438. package/src/core/tree/visitDelta.ts +8 -8
  1439. package/src/core/tree/visitPath.ts +2 -2
  1440. package/src/core/tree/visitorUtils.ts +9 -9
  1441. package/src/domains/json/jsonCursor.ts +5 -5
  1442. package/src/domains/json/jsonDomainSchema.ts +2 -2
  1443. package/src/domains/schemaBuilder.ts +9 -9
  1444. package/src/feature-libraries/changeAtomIdCodec.ts +2 -2
  1445. package/src/feature-libraries/chunked-forest/basicChunk.ts +9 -9
  1446. package/src/feature-libraries/chunked-forest/chunk.ts +4 -4
  1447. package/src/feature-libraries/chunked-forest/chunkTree.ts +12 -12
  1448. package/src/feature-libraries/chunked-forest/chunkedForest.ts +17 -17
  1449. package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +3 -3
  1450. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +33 -17
  1451. package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +12 -7
  1452. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +5 -5
  1453. package/src/feature-libraries/chunked-forest/codec/codecs.ts +14 -6
  1454. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +16 -16
  1455. package/src/feature-libraries/chunked-forest/codec/fieldBatch.ts +1 -1
  1456. package/src/feature-libraries/chunked-forest/codec/format.ts +1 -1
  1457. package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +1 -1
  1458. package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +19 -14
  1459. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +11 -11
  1460. package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +10 -5
  1461. package/src/feature-libraries/chunked-forest/emptyChunk.ts +5 -5
  1462. package/src/feature-libraries/chunked-forest/sequenceChunk.ts +1 -1
  1463. package/src/feature-libraries/chunked-forest/uniformChunk.ts +8 -8
  1464. package/src/feature-libraries/contextuallyTyped.ts +12 -12
  1465. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +17 -17
  1466. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +11 -11
  1467. package/src/feature-libraries/default-schema/defaultSchema.ts +1 -1
  1468. package/src/feature-libraries/default-schema/noChangeCodecs.ts +2 -2
  1469. package/src/feature-libraries/deltaUtils.ts +7 -2
  1470. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +5 -5
  1471. package/src/feature-libraries/editableTreeBinder.ts +10 -10
  1472. package/src/feature-libraries/fieldGenerator.ts +2 -2
  1473. package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +32 -32
  1474. package/src/feature-libraries/flex-tree/context.ts +11 -11
  1475. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +15 -12
  1476. package/src/feature-libraries/flex-tree/index.ts +1 -1
  1477. package/src/feature-libraries/flex-tree/lazyEntity.ts +9 -4
  1478. package/src/feature-libraries/flex-tree/lazyField.ts +22 -22
  1479. package/src/feature-libraries/flex-tree/lazyNode.ts +32 -38
  1480. package/src/feature-libraries/flex-tree/treeEvents.ts +1 -38
  1481. package/src/feature-libraries/flex-tree/unboxed.ts +7 -7
  1482. package/src/feature-libraries/flex-tree/utilities.ts +2 -2
  1483. package/src/feature-libraries/forest-summary/codec.ts +7 -3
  1484. package/src/feature-libraries/forest-summary/forestSummarizer.ts +15 -15
  1485. package/src/feature-libraries/forest-summary/format.ts +1 -1
  1486. package/src/feature-libraries/index.ts +0 -2
  1487. package/src/feature-libraries/mapTreeCursor.ts +6 -6
  1488. package/src/feature-libraries/memoizedIdRangeAllocator.ts +3 -3
  1489. package/src/feature-libraries/mitigatedChangeFamily.ts +1 -1
  1490. package/src/feature-libraries/modular-schema/comparison.ts +6 -6
  1491. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +3 -3
  1492. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +7 -7
  1493. package/src/feature-libraries/modular-schema/fieldKind.ts +1 -1
  1494. package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +2 -2
  1495. package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +3 -3
  1496. package/src/feature-libraries/modular-schema/genericFieldKind.ts +10 -10
  1497. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +3 -3
  1498. package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +1 -1
  1499. package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +1 -1
  1500. package/src/feature-libraries/modular-schema/isNeverTree.ts +4 -4
  1501. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +25 -20
  1502. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +34 -34
  1503. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
  1504. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +3 -3
  1505. package/src/feature-libraries/node-key/mockNodeKeyManager.ts +2 -2
  1506. package/src/feature-libraries/node-key/nodeKey.ts +3 -3
  1507. package/src/feature-libraries/node-key/nodeKeyIndex.ts +4 -4
  1508. package/src/feature-libraries/node-key/nodeKeyManager.ts +1 -1
  1509. package/src/feature-libraries/object-forest/objectForest.ts +22 -22
  1510. package/src/feature-libraries/optional-field/optionalField.ts +20 -20
  1511. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV1.ts +1 -1
  1512. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV2.ts +1 -1
  1513. package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +2 -2
  1514. package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +4 -4
  1515. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +4 -4
  1516. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +2 -2
  1517. package/src/feature-libraries/schema-aware/schemaAware.ts +8 -4
  1518. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +3 -3
  1519. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +1 -1
  1520. package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +1 -1
  1521. package/src/feature-libraries/schema-index/codec.ts +8 -4
  1522. package/src/feature-libraries/schema-index/format.ts +1 -1
  1523. package/src/feature-libraries/schema-index/schemaSummarizer.ts +11 -7
  1524. package/src/feature-libraries/schemaBuilder.ts +2 -2
  1525. package/src/feature-libraries/schemaBuilderBase.ts +12 -12
  1526. package/src/feature-libraries/sequence-field/compose.ts +18 -18
  1527. package/src/feature-libraries/sequence-field/formatV1.ts +1 -1
  1528. package/src/feature-libraries/sequence-field/formatV2.ts +1 -1
  1529. package/src/feature-libraries/sequence-field/helperTypes.ts +1 -1
  1530. package/src/feature-libraries/sequence-field/invert.ts +14 -14
  1531. package/src/feature-libraries/sequence-field/markListFactory.ts +1 -1
  1532. package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
  1533. package/src/feature-libraries/sequence-field/moveEffectTable.ts +5 -5
  1534. package/src/feature-libraries/sequence-field/prune.ts +2 -2
  1535. package/src/feature-libraries/sequence-field/rebase.ts +18 -18
  1536. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +3 -3
  1537. package/src/feature-libraries/sequence-field/replaceRevisions.ts +7 -7
  1538. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -3
  1539. package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +2 -2
  1540. package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +17 -17
  1541. package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +16 -16
  1542. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +4 -4
  1543. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +12 -3
  1544. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +7 -7
  1545. package/src/feature-libraries/sequence-field/types.ts +2 -2
  1546. package/src/feature-libraries/sequence-field/utils.ts +25 -25
  1547. package/src/feature-libraries/storedToViewSchema.ts +7 -7
  1548. package/src/feature-libraries/treeCursorUtils.ts +8 -8
  1549. package/src/feature-libraries/treeTextCursor.ts +10 -6
  1550. package/src/feature-libraries/typed-schema/schemaCollection.ts +11 -6
  1551. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +16 -16
  1552. package/src/feature-libraries/typed-schema/view.ts +8 -8
  1553. package/src/feature-libraries/valueUtilities.ts +2 -2
  1554. package/src/index.ts +0 -1
  1555. package/src/packageVersion.ts +1 -1
  1556. package/src/shared-tree/schematizeTree.ts +7 -7
  1557. package/src/shared-tree/schematizingTreeView.ts +19 -16
  1558. package/src/shared-tree/sharedTree.ts +28 -16
  1559. package/src/shared-tree/sharedTreeChangeCodecs.ts +11 -8
  1560. package/src/shared-tree/sharedTreeChangeEnricher.ts +8 -8
  1561. package/src/shared-tree/sharedTreeChangeFamily.ts +21 -15
  1562. package/src/shared-tree/sharedTreeChangeFormat.ts +1 -1
  1563. package/src/shared-tree/sharedTreeChangeTypes.ts +1 -1
  1564. package/src/shared-tree/sharedTreeEditBuilder.ts +4 -4
  1565. package/src/shared-tree/treeApi.ts +5 -5
  1566. package/src/shared-tree/treeCheckout.ts +28 -23
  1567. package/src/shared-tree/treeView.ts +8 -8
  1568. package/src/shared-tree-core/branch.ts +8 -8
  1569. package/src/shared-tree-core/branchCommitEnricher.ts +2 -2
  1570. package/src/shared-tree-core/changeEnricher.ts +1 -1
  1571. package/src/shared-tree-core/defaultResubmitMachine.ts +2 -2
  1572. package/src/shared-tree-core/editManager.ts +8 -8
  1573. package/src/shared-tree-core/editManagerCodecs.ts +13 -8
  1574. package/src/shared-tree-core/editManagerFormat.ts +5 -5
  1575. package/src/shared-tree-core/editManagerSummarizer.ts +13 -9
  1576. package/src/shared-tree-core/messageCodecs.ts +7 -7
  1577. package/src/shared-tree-core/messageFormat.ts +4 -4
  1578. package/src/shared-tree-core/messageTypes.ts +2 -2
  1579. package/src/shared-tree-core/resubmitMachine.ts +1 -1
  1580. package/src/shared-tree-core/sequenceIdUtils.ts +1 -1
  1581. package/src/shared-tree-core/sharedTreeCore.ts +20 -20
  1582. package/src/shared-tree-core/transactionEnricher.ts +2 -2
  1583. package/src/shared-tree-core/transactionStack.ts +1 -1
  1584. package/src/simple-tree/arrayNode.ts +32 -28
  1585. package/src/simple-tree/leafNodeSchema.ts +4 -4
  1586. package/src/simple-tree/mapNode.ts +10 -10
  1587. package/src/simple-tree/nodeKeys.ts +2 -2
  1588. package/src/simple-tree/objectNode.ts +18 -18
  1589. package/src/simple-tree/proxies.ts +21 -27
  1590. package/src/simple-tree/proxyBinding.ts +14 -14
  1591. package/src/simple-tree/schemaCaching.ts +5 -5
  1592. package/src/simple-tree/schemaCreationUtilities.ts +5 -5
  1593. package/src/simple-tree/schemaFactory.ts +39 -22
  1594. package/src/simple-tree/schemaFactoryRecursive.ts +13 -13
  1595. package/src/simple-tree/schemaTypes.ts +8 -8
  1596. package/src/simple-tree/testRecursiveDomain.ts +1 -1
  1597. package/src/simple-tree/toFlexSchema.ts +13 -13
  1598. package/src/simple-tree/toMapTree.ts +4 -4
  1599. package/src/simple-tree/tree.ts +6 -31
  1600. package/src/simple-tree/treeNodeApi.ts +45 -33
  1601. package/src/simple-tree/types.ts +60 -12
  1602. package/src/simple-tree/typesUnsafe.ts +6 -6
  1603. package/src/treeFactory.ts +5 -5
  1604. package/src/util/brandedMap.ts +1 -1
  1605. package/src/util/nestedMap.ts +1 -1
  1606. package/src/util/nestedSet.ts +1 -1
  1607. package/src/util/typeboxBrand.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fieldGenerator.js","sourceRoot":"","sources":["../../src/feature-libraries/fieldGenerator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAwCH;;;;;;GAMG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FieldKey, MapTree, TreeFieldStoredSchema } from \"../core/index.js\";\n\nimport { FlexTreeSchema } from \"./typed-schema/index.js\";\n\n/**\n * Information needed to interpret a subtree described by {@link ContextuallyTypedNodeData} and {@link ContextuallyTypedFieldData}.\n * TODO:\n * Currently being exposed at the package level which also requires us to export MapTree at the package level.\n * Refactor the FieldGenerator to use JsonableTree instead of MapTree, and convert them internally.\n * @internal\n */\nexport interface TreeDataContext {\n\t/**\n\t * Schema for the document which the tree will be used in.\n\t */\n\treadonly schema: FlexTreeSchema;\n\n\t/**\n\t * Procedural data generator for fields.\n\t * Fields which provide generators here can be omitted in the input contextually typed data.\n\t *\n\t * @remarks\n\t * TODO:\n\t * For implementers of this which are not pure (like identifier generation),\n\t * order of invocation should be made consistent and documented.\n\t * This will be important for identifier elision optimizations in tree encoding for session based identifier generation.\n\t */\n\tfieldSource?(key: FieldKey, schema: TreeFieldStoredSchema): undefined | FieldGenerator;\n}\n\n/**\n * Generates field content for a MapTree on demand.\n * TODO:\n * Currently being exposed at the package level which also requires us to export MapTree at the package level.\n * Refactor the FieldGenerator to use JsonableTree instead of MapTree, and convert them internally.\n * @internal\n */\nexport type FieldGenerator = () => MapTree[];\n/**\n * Information needed to interpret a subtree described by {@link ContextuallyTypedNodeData} and {@link ContextuallyTypedFieldData}.\n * TODO:\n * Currently being exposed at the package level which also requires us to export MapTree at the package level.\n * Refactor the FieldGenerator to use JsonableTree instead of MapTree, and convert them internally.\n * @internal\n */\n"]}
1
+ {"version":3,"file":"fieldGenerator.js","sourceRoot":"","sources":["../../src/feature-libraries/fieldGenerator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAwCH;;;;;;GAMG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { FieldKey, MapTree, TreeFieldStoredSchema } from \"../core/index.js\";\n\nimport type { FlexTreeSchema } from \"./typed-schema/index.js\";\n\n/**\n * Information needed to interpret a subtree described by {@link ContextuallyTypedNodeData} and {@link ContextuallyTypedFieldData}.\n * TODO:\n * Currently being exposed at the package level which also requires us to export MapTree at the package level.\n * Refactor the FieldGenerator to use JsonableTree instead of MapTree, and convert them internally.\n * @internal\n */\nexport interface TreeDataContext {\n\t/**\n\t * Schema for the document which the tree will be used in.\n\t */\n\treadonly schema: FlexTreeSchema;\n\n\t/**\n\t * Procedural data generator for fields.\n\t * Fields which provide generators here can be omitted in the input contextually typed data.\n\t *\n\t * @remarks\n\t * TODO:\n\t * For implementers of this which are not pure (like identifier generation),\n\t * order of invocation should be made consistent and documented.\n\t * This will be important for identifier elision optimizations in tree encoding for session based identifier generation.\n\t */\n\tfieldSource?(key: FieldKey, schema: TreeFieldStoredSchema): undefined | FieldGenerator;\n}\n\n/**\n * Generates field content for a MapTree on demand.\n * TODO:\n * Currently being exposed at the package level which also requires us to export MapTree at the package level.\n * Refactor the FieldGenerator to use JsonableTree instead of MapTree, and convert them internally.\n * @internal\n */\nexport type FieldGenerator = () => MapTree[];\n/**\n * Information needed to interpret a subtree described by {@link ContextuallyTypedNodeData} and {@link ContextuallyTypedFieldData}.\n * TODO:\n * Currently being exposed at the package level which also requires us to export MapTree at the package level.\n * Refactor the FieldGenerator to use JsonableTree instead of MapTree, and convert them internally.\n * @internal\n */\n"]}
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { AnchorNode, FieldKey, MapTree, TreeNodeSchemaIdentifier, TreeValue, Value } from "../../core/index.js";
6
- import { FlexTreeContext, FlexTreeEntityKind, FlexTreeField, FlexTreeFieldNode, FlexTreeLeafNode, FlexTreeMapNode, FlexTreeNode, FlexTreeNodeEvents, FlexTreeTypedField, FlexTreeTypedNode, FlexTreeTypedNodeUnion, FlexTreeUnboxField, FlexibleFieldContent, TreeStatus, flexTreeMarker } from "../flex-tree/index.js";
7
- import { FlexAllowedTypes, FlexFieldNodeSchema, FlexFieldSchema, FlexMapNodeSchema, FlexTreeNodeSchema, LeafNodeSchema } from "../typed-schema/index.js";
8
- import { FlexFieldKind } from "../modular-schema/index.js";
9
- import { Listenable } from "../../events/index.js";
5
+ import { type AnchorNode, type FieldKey, type MapTree, type TreeNodeSchemaIdentifier, type TreeValue, type Value } from "../../core/index.js";
6
+ import { type FlexTreeContext, FlexTreeEntityKind, type FlexTreeField, type FlexTreeFieldNode, type FlexTreeLeafNode, type FlexTreeMapNode, type FlexTreeNode, type FlexTreeNodeEvents, type FlexTreeTypedField, type FlexTreeTypedNode, type FlexTreeTypedNodeUnion, type FlexTreeUnboxField, type FlexibleFieldContent, TreeStatus, flexTreeMarker } from "../flex-tree/index.js";
7
+ import { type FlexAllowedTypes, type FlexFieldNodeSchema, FlexFieldSchema, type FlexMapNodeSchema, type FlexTreeNodeSchema, type LeafNodeSchema } from "../typed-schema/index.js";
8
+ import type { FlexFieldKind } from "../modular-schema/index.js";
9
+ import { type Listenable } from "../../events/index.js";
10
10
  /**
11
11
  * A readonly {@link FlexTreeNode} which wraps a {@link MapTree}.
12
12
  * @remarks Reading data from the MapTreeNode will read the corresponding data from the {@link MapTree}.
@@ -1 +1 @@
1
- {"version":3,"file":"mapTreeNode.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-map-tree/mapTreeNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapTreeNode.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-map-tree/mapTreeNode.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
4
  * Licensed under the MIT License.
5
5
  */
6
+ var _a, _b;
6
7
  Object.defineProperty(exports, "__esModule", { value: true });
7
8
  exports.unsupportedUsageError = exports.getOrCreateNode = exports.getOrCreateMapTreeNode = exports.tryGetMapTreeNode = exports.rootMapTreeField = exports.EagerMapTreeMapNode = exports.EagerMapTreeFieldNode = exports.EagerMapTreeNode = exports.isMapTreeNode = void 0;
8
9
  const internal_1 = require("@fluidframework/core-utils/internal");
@@ -26,8 +27,11 @@ exports.isMapTreeNode = isMapTreeNode;
26
27
  * @remarks TODO: After the eventing library is simplified, find a way to support this pattern elegantly in the library.
27
28
  */
28
29
  class ForwardingEventEmitter extends index_js_6.ComposableEventEmitter {
29
- // A map from deregistration functions produced by this class to deregistration functions of Listenables that have been forwarded to
30
- forwardedOffs = new Map();
30
+ constructor() {
31
+ super(...arguments);
32
+ // A map from deregistration functions produced by this class to deregistration functions of Listenables that have been forwarded to
33
+ this.forwardedOffs = new Map();
34
+ }
31
35
  on(eventName, listener) {
32
36
  const off = super.on(eventName, listener);
33
37
  // Return a deregister function which...
@@ -55,11 +59,6 @@ class ForwardingEventEmitter extends index_js_6.ComposableEventEmitter {
55
59
  * when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.
56
60
  */
57
61
  class EagerMapTreeNode {
58
- schema;
59
- mapTree;
60
- location;
61
- [index_js_3.flexTreeMarker] = index_js_3.FlexTreeEntityKind.Node;
62
- events = new ForwardingEventEmitter();
63
62
  forwardEvents(to) {
64
63
  this.events.forwardEvents(to);
65
64
  }
@@ -77,6 +76,8 @@ class EagerMapTreeNode {
77
76
  this.schema = schema;
78
77
  this.mapTree = mapTree;
79
78
  this.location = location;
79
+ this[_a] = index_js_3.FlexTreeEntityKind.Node;
80
+ this.events = new ForwardingEventEmitter();
80
81
  (0, internal_1.assert)(!nodeCache.has(mapTree), "A node already exists for the given MapTree");
81
82
  nodeCache.set(mapTree, this);
82
83
  // Fully demand the tree to ensure that parent pointers are present and accurate on all nodes.
@@ -170,6 +171,7 @@ class EagerMapTreeNode {
170
171
  }
171
172
  }
172
173
  exports.EagerMapTreeNode = EagerMapTreeNode;
174
+ _a = index_js_3.flexTreeMarker;
173
175
  /**
174
176
  * The implementation of a field node created by {@link getOrCreateNode}.
175
177
  */
@@ -285,16 +287,12 @@ exports.rootMapTreeField = {
285
287
  mapTrees: [],
286
288
  };
287
289
  class MapTreeField {
288
- schema;
289
- key;
290
- parent;
291
- mapTrees;
292
- [index_js_3.flexTreeMarker] = index_js_3.FlexTreeEntityKind.Field;
293
290
  constructor(schema, key, parent, mapTrees) {
294
291
  this.schema = schema;
295
292
  this.key = key;
296
293
  this.parent = parent;
297
294
  this.mapTrees = mapTrees;
295
+ this[_b] = index_js_3.FlexTreeEntityKind.Field;
298
296
  (0, internal_1.assert)(!fieldCache.has(mapTrees), "A field already exists for the given MapTrees");
299
297
  fieldCache.set(mapTrees, this);
300
298
  // When this field is created (which only happens one time, because it is cached), all the children become parented for the first time.
@@ -348,6 +346,7 @@ class MapTreeField {
348
346
  return index_js_3.TreeStatus.New;
349
347
  }
350
348
  }
349
+ _b = index_js_3.flexTreeMarker;
351
350
  class MapTreeRequiredField extends MapTreeField {
352
351
  get content() {
353
352
  return unboxedUnion(this.schema, this.mapTrees[0], { parent: this, index: 0 });
@@ -1 +1 @@
1
- {"version":3,"file":"mapTreeNode.js","sourceRoot":"","sources":["../../../src/feature-libraries/flex-map-tree/mapTreeNode.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\tAnchorNode,\n\tEmptyKey,\n\tFieldKey,\n\tMapTree,\n\tTreeNodeSchemaIdentifier,\n\tTreeValue,\n\tValue,\n} from \"../../core/index.js\";\nimport { brand, fail, getOrCreate, mapIterable } from \"../../util/index.js\";\nimport {\n\tFlexTreeContext,\n\tFlexTreeEntityKind,\n\tFlexTreeField,\n\tFlexTreeFieldNode,\n\tFlexTreeLeafNode,\n\tFlexTreeMapNode,\n\tFlexTreeNode,\n\tFlexTreeNodeEvents,\n\tFlexTreeOptionalField,\n\tFlexTreeRequiredField,\n\tFlexTreeSequenceField,\n\tFlexTreeTypedField,\n\tFlexTreeTypedNode,\n\tFlexTreeTypedNodeUnion,\n\tFlexTreeUnboxField,\n\tFlexTreeUnboxNodeUnion,\n\tFlexibleFieldContent,\n\tFlexibleNodeSubSequence,\n\tTreeStatus,\n\tflexTreeMarker,\n\tindexForAt,\n} from \"../flex-tree/index.js\";\nimport {\n\tFlexAllowedTypes,\n\tFlexFieldNodeSchema,\n\tFlexFieldSchema,\n\tFlexMapNodeSchema,\n\tFlexTreeNodeSchema,\n\tLeafNodeSchema,\n\tisLazy,\n\tschemaIsFieldNode,\n\tschemaIsLeaf,\n\tschemaIsMap,\n\tschemaIsObjectNode,\n} from \"../typed-schema/index.js\";\nimport { FlexImplicitAllowedTypes, normalizeAllowedTypes } from \"../schemaBuilderBase.js\";\nimport { FlexFieldKind } from \"../modular-schema/index.js\";\nimport { FieldKinds, SequenceFieldEditBuilder } from \"../default-schema/index.js\";\nimport { ComposableEventEmitter, Listenable, Off } from \"../../events/index.js\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\n// #region Nodes\n\n/**\n * A readonly {@link FlexTreeNode} which wraps a {@link MapTree}.\n * @remarks Reading data from the MapTreeNode will read the corresponding data from the {@link MapTree}.\n * Create a `MapTreeNode` by calling {@link getOrCreateMapTreeNode}.\n */\nexport interface MapTreeNode extends FlexTreeNode {\n\treadonly mapTree: MapTree;\n\tforwardEvents(to: Listenable<FlexTreeNodeEvents>): void;\n}\n\n/**\n * Checks if the given {@link FlexTreeNode} is a {@link MapTreeNode}.\n */\nexport function isMapTreeNode(flexNode: FlexTreeNode): flexNode is MapTreeNode {\n\treturn flexNode instanceof EagerMapTreeNode;\n}\n\n/** A node's parent field and its index in that field */\ninterface LocationInField {\n\treadonly parent: MapTreeField<FlexAllowedTypes>;\n\treadonly index: number;\n}\n\n/**\n * Allows events to be forwarded to another event emitter.\n * @remarks TODO: After the eventing library is simplified, find a way to support this pattern elegantly in the library.\n */\nclass ForwardingEventEmitter extends ComposableEventEmitter<FlexTreeNodeEvents> {\n\t// A map from deregistration functions produced by this class to deregistration functions of Listenables that have been forwarded to\n\tprivate readonly forwardedOffs = new Map<Off, Off[]>();\n\n\tpublic override on<K extends keyof FlexTreeNodeEvents>(\n\t\teventName: K,\n\t\tlistener: FlexTreeNodeEvents[K],\n\t): Off {\n\t\tconst off = super.on(eventName, listener);\n\t\t// Return a deregister function which...\n\t\treturn (): void => {\n\t\t\toff(); // ...deregisters the event in this emitter,\n\t\t\t// and also deregisters the event in any Listenable that it gets forwarded to\n\t\t\t(this.forwardedOffs.get(off) ?? []).forEach((f) => f());\n\t\t};\n\t}\n\n\tpublic forwardEvents(to: Listenable<FlexTreeNodeEvents>): void {\n\t\tfor (const [eventName, listeners] of this.listeners) {\n\t\t\tfor (const [off, listener] of listeners) {\n\t\t\t\t// For every one of our listeners, make the same subscription in the Listenable that we're forwarding to,\n\t\t\t\t// and then create a mapping from our deregistration function to theirs, so we can call it later if need be.\n\t\t\t\tgetOrCreate(this.forwardedOffs, off, () => []).push(to.on(eventName, listener));\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * A readonly implementation of {@link FlexTreeNode} which wraps a {@link MapTree}.\n * @remarks Any methods that would mutate the node will fail,\n * as will the querying of data specific to the {@link LazyTreeNode} implementation (e.g. {@link FlexTreeNode.context}).\n * MapTreeNodes are unconditionally cached -\n * when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.\n */\nexport class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements MapTreeNode {\n\tpublic readonly [flexTreeMarker] = FlexTreeEntityKind.Node as const;\n\tprivate readonly events = new ForwardingEventEmitter();\n\tpublic forwardEvents(to: Listenable<FlexTreeNodeEvents>): void {\n\t\tthis.events.forwardEvents(to);\n\t}\n\n\t/**\n\t * Create a new MapTreeNode.\n\t * @param location - the parentage of this node, if it is being created underneath an existing node and field, or undefined if not\n\t * @remarks This class (and its subclasses) should not be directly constructed outside of this module.\n\t * Instead, use {@link getOrCreateNode} to create a MapTreeNode from a {@link MapTree}.\n\t * A `MapTreeNode` may never be constructed more than once for the same {@link MapTree} object.\n\t * Instead, it should always be acquired via {@link getOrCreateNode}.\n\t */\n\tpublic constructor(\n\t\tpublic readonly schema: TSchema,\n\t\t/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */\n\t\tpublic readonly mapTree: MapTree,\n\t\tprivate location: LocationInField | undefined,\n\t) {\n\t\tassert(!nodeCache.has(mapTree), \"A node already exists for the given MapTree\");\n\t\tnodeCache.set(mapTree, this);\n\n\t\t// Fully demand the tree to ensure that parent pointers are present and accurate on all nodes.\n\t\t// When a MapTreeNode is constructed, its MapTree may contain nodes (anywhere below) that map (via the `nodeCache`) to pre-existing MapTreeNodes.\n\t\t// Put another way, for a given MapTree, some ancestor MapTreeNode can be created after any number of its descendant MapTreeNodes already exist.\n\t\t// In such a case, the spine of nodes between the descendant and ancestor need to exist in order for the ancestor to be able to walk upwards via the `parentField` property.\n\t\t// This needs to happen for all MapTreeNodes that are descendants of the ancestor MapTreeNode.\n\t\t// Demanding the entire tree is overkill to solve this problem since not all descendant MapTree nodes will have corresponding MapTreeNodes.\n\t\t// However, demanding the full tree also lets us eagerly validate that there are no duplicate MapTrees (i.e. same MapTree object) anywhere in the tree.\n\t\tthis.walkTree();\n\t}\n\n\tpublic get type(): TreeNodeSchemaIdentifier {\n\t\treturn this.schema.name;\n\t}\n\n\t/**\n\t * Set this node's parentage (see {@link FlexTreeNode.parentField}).\n\t * @remarks A node may only be adopted to a new parent one time, and only if it was not constructed with a parent.\n\t */\n\tpublic adopt(parent: MapTreeField<FlexAllowedTypes>, index: number): void {\n\t\tassert(this.location === undefined, \"Node may not be adopted if it already has a parent\");\n\t\tthis.location = { parent, index };\n\t}\n\n\t/**\n\t * The field this tree is in, and the index within that field.\n\t * @remarks If this node is unparented, this method will return the special {@link rootMapTreeField} as the parent.\n\t */\n\tpublic get parentField(): LocationInField {\n\t\tif (this.location === undefined) {\n\t\t\treturn {\n\t\t\t\tparent: rootMapTreeField,\n\t\t\t\tindex: -1,\n\t\t\t};\n\t\t}\n\n\t\treturn this.location;\n\t}\n\n\tpublic is<TSchemaInner extends FlexTreeNodeSchema>(\n\t\tschema: TSchemaInner,\n\t): this is FlexTreeTypedNode<TSchemaInner> {\n\t\treturn (schema as unknown) === this.schema;\n\t}\n\n\tpublic tryGetField(key: FieldKey): MapTreeField<FlexAllowedTypes> | undefined {\n\t\tconst field = this.mapTree.fields.get(key);\n\t\t// Only return the field if it is not empty, in order to fulfill the contract of `tryGetField`.\n\t\tif (field !== undefined && field.length > 0) {\n\t\t\treturn getOrCreateField(this, key, field, this.schema.getFieldSchema(key));\n\t\t}\n\t}\n\n\tpublic getBoxed(key: string): FlexTreeField {\n\t\tconst fieldKey: FieldKey = brand(key);\n\t\tconst field = this.mapTree.fields.get(fieldKey) ?? [];\n\t\treturn getOrCreateField(this, fieldKey, field, this.schema.getFieldSchema(fieldKey));\n\t}\n\n\tpublic boxedIterator(): IterableIterator<FlexTreeField> {\n\t\treturn mapIterable(this.mapTree.fields.entries(), ([key, field]) =>\n\t\t\tgetOrCreateField(this, key, field, this.schema.getFieldSchema(key)),\n\t\t);\n\t}\n\n\tpublic treeStatus(): TreeStatus {\n\t\treturn TreeStatus.New;\n\t}\n\n\tpublic get value(): Value {\n\t\treturn this.mapTree.value;\n\t}\n\n\tpublic on<K extends keyof FlexTreeNodeEvents>(\n\t\teventName: K,\n\t\tlistener: FlexTreeNodeEvents[K],\n\t): () => void {\n\t\tswitch (eventName) {\n\t\t\tcase \"nodeChanged\":\n\t\t\tcase \"treeChanged\":\n\t\t\t\treturn this.events.on(eventName, listener);\n\t\t\tdefault:\n\t\t\t\tthrow unsupportedUsageError(`Subscribing to ${eventName}`);\n\t\t}\n\t}\n\n\tpublic get context(): FlexTreeContext {\n\t\t// This API is relevant to `LazyTreeNode`s, but not `MapTreeNode`s.\n\t\t// TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.\n\t\treturn fail(\"MapTreeNode does not implement context\");\n\t}\n\n\tpublic get anchorNode(): AnchorNode {\n\t\t// This API is relevant to `LazyTreeNode`s, but not `MapTreeNode`s.\n\t\t// TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.\n\t\treturn fail(\"MapTreeNode does not implement anchorNode\");\n\t}\n\n\tprivate walkTree(): void {\n\t\tfor (const [key, mapTrees] of this.mapTree.fields) {\n\t\t\tconst field = getOrCreateField(this, key, mapTrees, this.schema.getFieldSchema(key));\n\t\t\tfor (let index = 0; index < field.length; index++) {\n\t\t\t\tconst child = getOrCreateChild(\n\t\t\t\t\tmapTrees[index],\n\t\t\t\t\tthis.schema.getFieldSchema(key).allowedTypes,\n\t\t\t\t\t{ parent: field, index },\n\t\t\t\t);\n\t\t\t\t// These next asserts detect the case where `getOrCreateChild` gets a cache hit of a different node than the one we're trying to create\n\t\t\t\tassert(child.location !== undefined, \"Expected node to have parent\");\n\t\t\t\tassert(child.location.parent.parent === this, \"Node may not be multi-parented\");\n\t\t\t\tassert(child.location.index === index, \"Node may not be multi-parented\");\n\t\t\t\tchild.walkTree();\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * The implementation of a field node created by {@link getOrCreateNode}.\n */\nexport class EagerMapTreeFieldNode<TSchema extends FlexFieldNodeSchema>\n\textends EagerMapTreeNode<TSchema>\n\timplements FlexTreeFieldNode<TSchema>\n{\n\tpublic get content(): FlexTreeUnboxField<TSchema[\"info\"]> {\n\t\tconst field = this.tryGetField(EmptyKey);\n\t\tif (field === undefined) {\n\t\t\treturn undefined as FlexTreeUnboxField<TSchema[\"info\"]>;\n\t\t}\n\t\treturn unboxedField(field, EmptyKey, this.mapTree, this);\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\tconst field = this.mapTree.fields.get(EmptyKey) ?? [];\n\t\treturn getOrCreateField(\n\t\t\tthis,\n\t\t\tEmptyKey,\n\t\t\tfield,\n\t\t\tthis.schema.info,\n\t\t) as unknown as FlexTreeTypedField<TSchema[\"info\"]>;\n\t}\n\n\tpublic override getBoxed(key: string): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\treturn super.getBoxed(key) as FlexTreeTypedField<TSchema[\"info\"]>;\n\t}\n}\n\n/**\n * The implementation of a map node created by {@link getOrCreateNode}.\n */\nexport class EagerMapTreeMapNode<TSchema extends FlexMapNodeSchema>\n\textends EagerMapTreeNode<TSchema>\n\timplements FlexTreeMapNode<TSchema>\n{\n\tpublic get size(): number {\n\t\treturn this.mapTree.fields.size;\n\t}\n\n\tpublic has(key: string): boolean {\n\t\treturn this.tryGetField(brand(key)) !== undefined;\n\t}\n\n\tpublic get(key: string): FlexTreeUnboxField<TSchema[\"info\"]> {\n\t\tconst field = this.tryGetField(brand(key));\n\t\tif (field === undefined) {\n\t\t\treturn undefined as FlexTreeUnboxField<TSchema[\"info\"]>;\n\t\t}\n\t\treturn unboxedField(field, brand(key), this.mapTree, this);\n\t}\n\n\tpublic keys(): IterableIterator<FieldKey> {\n\t\treturn this.mapTree.fields.keys();\n\t}\n\n\tpublic values(): IterableIterator<FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">> {\n\t\treturn mapIterable(\n\t\t\tthis.mapTree.fields.keys(),\n\t\t\t(key) =>\n\t\t\t\tunboxedField(\n\t\t\t\t\tthis.tryGetField(key) ?? fail(\"Unexpected empty map field\"),\n\t\t\t\t\tkey,\n\t\t\t\t\tthis.mapTree,\n\t\t\t\t\tthis,\n\t\t\t\t) as FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t);\n\t}\n\n\tpublic entries(): IterableIterator<\n\t\t[FieldKey, FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">]\n\t> {\n\t\treturn mapIterable(this.mapTree.fields.keys(), (key) => [\n\t\t\tkey,\n\t\t\tunboxedField(\n\t\t\t\tthis.tryGetField(key) ?? fail(\"Unexpected empty map field\"),\n\t\t\t\tkey,\n\t\t\t\tthis.mapTree,\n\t\t\t\tthis,\n\t\t\t) as FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t]);\n\t}\n\n\tpublic forEach(\n\t\tcallbackFn: (\n\t\t\tvalue: FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t\tkey: FieldKey,\n\t\t\tmap: FlexTreeMapNode<TSchema>,\n\t\t) => void,\n\t\tthisArg?: unknown,\n\t): void {\n\t\tconst fn = thisArg !== undefined ? callbackFn.bind(thisArg) : callbackFn;\n\t\tfor (const [key, value] of this.entries()) {\n\t\t\tfn(value, key, this);\n\t\t}\n\t}\n\n\tpublic override getBoxed(key: string): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\treturn super.getBoxed(key) as FlexTreeTypedField<TSchema[\"info\"]>;\n\t}\n\n\tpublic set(key: string, value: FlexibleFieldContent<TSchema[\"info\"]> | undefined): void {\n\t\t// `MapTreeNode`s cannot be mutated\n\t\tthrow unsupportedUsageError(\"Setting a map entry\");\n\t}\n\n\tpublic delete(key: string): void {\n\t\t// `MapTreeNode`s cannot be mutated\n\t\tthrow unsupportedUsageError(\"Deleting a map entry\");\n\t}\n\n\tpublic [Symbol.iterator](): IterableIterator<\n\t\t[FieldKey, FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">]\n\t> {\n\t\treturn this.entries();\n\t}\n\n\tpublic override boxedIterator(): IterableIterator<FlexTreeTypedField<TSchema[\"info\"]>> {\n\t\treturn super.boxedIterator() as IterableIterator<FlexTreeTypedField<TSchema[\"info\"]>>;\n\t}\n}\n\nclass EagerMapTreeLeafNode<TSchema extends LeafNodeSchema>\n\textends EagerMapTreeNode<TSchema>\n\timplements FlexTreeLeafNode<TSchema>\n{\n\tpublic override get value(): TreeValue<TSchema[\"info\"]> {\n\t\treturn super.value as TreeValue<TSchema[\"info\"]>;\n\t}\n}\n\n// #endregion Nodes\n\n// #region Fields\n\n/**\n * A special singleton that is the implicit parent field of all un-parented {@link EagerMapTreeNode}s.\n * @remarks This exists because {@link EagerMapTreeNode.parentField} must return a field.\n * If a {@link EagerMapTreeNode} is created without a parent, its {@link EagerMapTreeNode.parentField} property will point to this object.\n * However, this field cannot be used in any practical way because it is empty, i.e. it does not actually contain the children that claim to be parented under it.\n * It has the \"empty\" schema and it will always contain zero children if queried.\n */\nexport const rootMapTreeField: MapTreeField<FlexAllowedTypes> = {\n\t[flexTreeMarker]: FlexTreeEntityKind.Field as const,\n\tlength: 0,\n\tkey: EmptyKey,\n\tparent: undefined,\n\tis<TSchema extends FlexFieldSchema>(schema: TSchema) {\n\t\treturn schema === (FlexFieldSchema.empty as FlexFieldSchema);\n\t},\n\tisSameAs(other: FlexTreeField): boolean {\n\t\treturn other === this;\n\t},\n\tboxedIterator(): IterableIterator<FlexTreeNode> {\n\t\treturn [].values();\n\t},\n\tboxedAt(index: number): FlexTreeNode | undefined {\n\t\treturn undefined;\n\t},\n\tschema: FlexFieldSchema.empty,\n\tget context(): FlexTreeContext {\n\t\treturn fail(\"MapTreeField does not implement context\");\n\t},\n\ttreeStatus(): TreeStatus {\n\t\treturn TreeStatus.New;\n\t},\n\tmapTrees: [],\n};\n\nclass MapTreeField<T extends FlexAllowedTypes> implements FlexTreeField {\n\tpublic [flexTreeMarker] = FlexTreeEntityKind.Field as const;\n\n\tpublic constructor(\n\t\tpublic readonly schema: FlexFieldSchema<FlexFieldKind, T>,\n\t\tpublic readonly key: FieldKey,\n\t\tpublic readonly parent: FlexTreeNode | undefined,\n\t\tpublic readonly mapTrees: readonly MapTree[],\n\t) {\n\t\tassert(!fieldCache.has(mapTrees), \"A field already exists for the given MapTrees\");\n\t\tfieldCache.set(mapTrees, this);\n\n\t\t// When this field is created (which only happens one time, because it is cached), all the children become parented for the first time.\n\t\t// \"Adopt\" each child by updating its parent information to point to this field.\n\t\tfor (let i = 0; i < mapTrees.length; i++) {\n\t\t\tconst mapTreeNodeChild = nodeCache.get(mapTrees[i]);\n\t\t\tif (mapTreeNodeChild !== undefined) {\n\t\t\t\tassert(\n\t\t\t\t\tmapTreeNodeChild.parentField.parent === rootMapTreeField,\n\t\t\t\t\t\"Node is already parented under a different field\",\n\t\t\t\t);\n\t\t\t\tmapTreeNodeChild.adopt(this, i);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.mapTrees.length;\n\t}\n\n\tpublic is<TSchemaInner extends FlexFieldSchema>(\n\t\tschema: TSchemaInner,\n\t): this is FlexTreeTypedField<TSchemaInner> {\n\t\treturn this.schema.equals(schema);\n\t}\n\n\tpublic isSameAs(other: FlexTreeField): boolean {\n\t\tif (other.parent === this.parent && other.key === this.key) {\n\t\t\tassert(other === this, \"Expected field to be cached\");\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tpublic boxedIterator(): IterableIterator<FlexTreeTypedNodeUnion<T>> {\n\t\treturn this.mapTrees\n\t\t\t.map(\n\t\t\t\t(m, index) =>\n\t\t\t\t\tgetOrCreateChild(m, this.schema.allowedTypes, {\n\t\t\t\t\t\tparent: this,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t}) as FlexTreeNode as FlexTreeTypedNodeUnion<T>,\n\t\t\t)\n\t\t\t.values();\n\t}\n\n\tpublic boxedAt(index: number): FlexTreeTypedNodeUnion<T> | undefined {\n\t\tconst i = indexForAt(index, this.length);\n\t\tif (i === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst m = this.mapTrees[i];\n\t\tif (m !== undefined) {\n\t\t\treturn getOrCreateChild(m, this.schema.allowedTypes, {\n\t\t\t\tparent: this,\n\t\t\t\tindex: i,\n\t\t\t}) as FlexTreeNode as FlexTreeTypedNodeUnion<T>;\n\t\t}\n\t}\n\n\tpublic get context(): FlexTreeContext {\n\t\treturn fail(\"MapTreeField does not implement context\");\n\t}\n\n\tpublic treeStatus(): TreeStatus {\n\t\treturn TreeStatus.New;\n\t}\n}\n\nclass MapTreeRequiredField<T extends FlexAllowedTypes>\n\textends MapTreeField<T>\n\timplements FlexTreeRequiredField<T>\n{\n\tpublic get content(): FlexTreeUnboxNodeUnion<T> {\n\t\treturn unboxedUnion(this.schema, this.mapTrees[0], { parent: this, index: 0 });\n\t}\n\tpublic set content(_: FlexTreeUnboxNodeUnion<T>) {\n\t\tthrow unsupportedUsageError(\"Setting an optional field\");\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedNodeUnion<T> {\n\t\treturn this.boxedAt(0) ?? fail(\"Required field must have exactly one node\");\n\t}\n}\n\nclass MapTreeOptionalField<T extends FlexAllowedTypes>\n\textends MapTreeField<T>\n\timplements FlexTreeOptionalField<T>\n{\n\tpublic get content(): FlexTreeUnboxNodeUnion<T> | undefined {\n\t\treturn this.mapTrees.length > 0\n\t\t\t? unboxedUnion(this.schema, this.mapTrees[0], { parent: this, index: 0 })\n\t\t\t: undefined;\n\t}\n\tpublic set content(_: FlexTreeUnboxNodeUnion<T> | undefined) {\n\t\tthrow unsupportedUsageError(\"Setting an optional field\");\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedNodeUnion<T> | undefined {\n\t\treturn this.boxedAt(0);\n\t}\n}\n\nclass MapTreeSequenceField<T extends FlexAllowedTypes>\n\textends MapTreeField<T>\n\timplements FlexTreeSequenceField<T>\n{\n\tpublic at(index: number): FlexTreeUnboxNodeUnion<T> | undefined {\n\t\tconst i = indexForAt(index, this.length);\n\t\tif (i === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn unboxedUnion(this.schema, this.mapTrees[i], { parent: this, index: i });\n\t}\n\tpublic map<U>(callbackfn: (value: FlexTreeUnboxNodeUnion<T>, index: number) => U): U[] {\n\t\treturn Array.from(this, callbackfn);\n\t}\n\tpublic mapBoxed<U>(callbackfn: (value: FlexTreeTypedNodeUnion<T>, index: number) => U): U[] {\n\t\treturn Array.from(this.boxedIterator(), callbackfn);\n\t}\n\n\tpublic *[Symbol.iterator](): IterableIterator<FlexTreeUnboxNodeUnion<T>> {\n\t\tfor (let i = 0; i < this.mapTrees.length; i++) {\n\t\t\tyield unboxedUnion(this.schema, this.mapTrees[i], { parent: this, index: i });\n\t\t}\n\t}\n\n\tpublic sequenceEditor(): SequenceFieldEditBuilder {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic insertAt(index: number, value: FlexibleNodeSubSequence<T>): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic insertAtStart(value: FlexibleNodeSubSequence<T>): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic insertAtEnd(value: FlexibleNodeSubSequence<T>): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic removeAt(index: number): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveToStart(sourceIndex: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveToEnd(sourceIndex: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveToIndex(index: unknown, sourceIndex: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveRangeToStart(sourceStart: unknown, sourceEnd: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveRangeToEnd(sourceStart: unknown, sourceEnd: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveRangeToIndex(\n\t\tindex: unknown,\n\t\tsourceStart: unknown,\n\t\tsourceEnd: unknown,\n\t\tsource?: unknown,\n\t): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n}\n\n// #endregion Fields\n\n// #region Caching and unboxing utilities\n\nconst nodeCache = new WeakMap<MapTree, EagerMapTreeNode<FlexTreeNodeSchema>>();\nconst fieldCache = new WeakMap<readonly MapTree[], MapTreeField<FlexAllowedTypes>>();\n\n/**\n * If there exists a {@link EagerMapTreeNode} for the given {@link MapTree}, returns it, otherwise returns `undefined`.\n * @remarks {@link EagerMapTreeNode | MapTreeNodes} are created via {@link getOrCreateNode}.\n */\nexport function tryGetMapTreeNode(mapTree: MapTree): MapTreeNode | undefined {\n\treturn nodeCache.get(mapTree);\n}\n\n/**\n * Create a {@link MapTreeNode} that wraps the given {@link MapTree}, or get the node that already exists for that {@link MapTree} if there is one.\n * @param nodeSchema - the {@link FlexTreeNodeSchema | schema} that the node conforms to\n * @param mapTree - the {@link MapTree} containing the data for this node.\n * @remarks It must conform to the `nodeSchema`.\n */\nexport function getOrCreateMapTreeNode(\n\tnodeSchema: FlexTreeNodeSchema,\n\tmapTree: MapTree,\n): MapTreeNode {\n\treturn getOrCreateNode(nodeSchema, mapTree);\n}\n\n/**\n * Create a {@link EagerMapTreeNode} that wraps the given {@link MapTree}, or get the node that already exists for that {@link MapTree} if there is one.\n * @param nodeSchema - the {@link FlexTreeNodeSchema | schema} that the node conforms to\n * @param mapTree - the {@link MapTree} containing the data for this node.\n * @remarks It must conform to the `nodeSchema`.\n * This function is exported for the purposes of unit testing.\n */\nexport function getOrCreateNode<TSchema extends LeafNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeLeafNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexMapNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeMapNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexFieldNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeFieldNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeNode<TSchema> {\n\tconst cached = tryGetMapTreeNode(mapTree);\n\tif (cached !== undefined) {\n\t\treturn cached as EagerMapTreeNode<TSchema>;\n\t}\n\treturn createNode(nodeSchema, mapTree, undefined);\n}\n\n/** Helper for creating a `MapTreeNode` given the parent field (e.g. when \"walking down\") */\nfunction getOrCreateChild(\n\tmapTree: MapTree,\n\timplicitAllowedTypes: FlexImplicitAllowedTypes,\n\tparent: LocationInField | undefined,\n): EagerMapTreeNode<FlexTreeNodeSchema> {\n\tconst cached = nodeCache.get(mapTree);\n\tif (cached !== undefined) {\n\t\treturn cached;\n\t}\n\n\tconst allowedTypes = normalizeAllowedTypes(implicitAllowedTypes);\n\tconst nodeSchema =\n\t\tallowedTypes\n\t\t\t.map((t) => (isLazy(t) ? t() : t))\n\t\t\t.find((t): t is FlexTreeNodeSchema => {\n\t\t\t\tassert(t !== \"Any\", \"'Any' type is not supported\");\n\t\t\t\treturn t.name === mapTree.type;\n\t\t\t}) ?? fail(\"Unsupported node schema\");\n\n\treturn createNode(nodeSchema, mapTree, parent);\n}\n\n/** Always constructs a new node, therefore may not be called twice for the same `MapTree`. */\nfunction createNode<TSchema extends LeafNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeLeafNode<TSchema>;\nfunction createNode<TSchema extends FlexMapNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeMapNode<TSchema>;\nfunction createNode<TSchema extends FlexFieldNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeFieldNode<TSchema>;\nfunction createNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeNode<TSchema>;\nfunction createNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeNode<TSchema> {\n\tif (schemaIsLeaf(nodeSchema)) {\n\t\treturn new EagerMapTreeLeafNode(nodeSchema, mapTree, parentField);\n\t}\n\tif (schemaIsMap(nodeSchema)) {\n\t\treturn new EagerMapTreeMapNode(nodeSchema, mapTree, parentField);\n\t}\n\tif (schemaIsFieldNode(nodeSchema)) {\n\t\treturn new EagerMapTreeFieldNode(nodeSchema, mapTree, parentField);\n\t}\n\tif (schemaIsObjectNode(nodeSchema)) {\n\t\treturn new EagerMapTreeNode(nodeSchema, mapTree, parentField);\n\t}\n\tassert(false, \"Unrecognized node kind\");\n}\n\n/** Creates a field with the given attributes, or returns a cached field if there is one */\nfunction getOrCreateField(\n\tparent: FlexTreeNode,\n\tkey: FieldKey,\n\tmapTrees: readonly MapTree[],\n\tschema: FlexFieldSchema,\n): MapTreeField<FlexFieldSchema[\"allowedTypes\"]> {\n\tconst cached = fieldCache.get(mapTrees);\n\tif (cached !== undefined) {\n\t\treturn cached;\n\t}\n\n\tif (\n\t\tschema.kind.identifier === FieldKinds.required.identifier ||\n\t\tschema.kind.identifier === FieldKinds.identifier.identifier\n\t) {\n\t\treturn new MapTreeRequiredField(schema, key, parent, mapTrees);\n\t}\n\n\tif (schema.kind.identifier === FieldKinds.optional.identifier) {\n\t\treturn new MapTreeOptionalField(schema, key, parent, mapTrees);\n\t}\n\n\tif (schema.kind.identifier === FieldKinds.sequence.identifier) {\n\t\treturn new MapTreeSequenceField(schema, key, parent, mapTrees);\n\t}\n\n\treturn new MapTreeField(schema, key, parent, mapTrees);\n}\n\n/** Unboxes non-polymorphic leaf nodes to their values, if applicable */\nfunction unboxedUnion<TTypes extends FlexAllowedTypes>(\n\tschema: FlexFieldSchema<FlexFieldKind, TTypes>,\n\tmapTree: MapTree,\n\tparent: LocationInField,\n): FlexTreeUnboxNodeUnion<TTypes> {\n\tconst type = schema.monomorphicChildType;\n\tif (type !== undefined) {\n\t\tif (schemaIsLeaf(type)) {\n\t\t\treturn mapTree.value as FlexTreeUnboxNodeUnion<TTypes>;\n\t\t}\n\t\treturn getOrCreateChild(mapTree, type, parent) as FlexTreeUnboxNodeUnion<TTypes>;\n\t}\n\n\treturn getOrCreateChild(mapTree, schema.allowedTypes, parent) as FlexTreeUnboxNodeUnion<TTypes>;\n}\n\n/** Unboxes non-polymorphic required and optional fields holding leaf nodes to their values, if applicable */\nfunction unboxedField<TFieldSchema extends FlexFieldSchema>(\n\tfield: MapTreeField<FlexAllowedTypes>,\n\tkey: FieldKey,\n\tmapTree: MapTree,\n\tparentNode: FlexTreeNode,\n): FlexTreeUnboxField<TFieldSchema> {\n\tconst fieldSchema = field.schema;\n\tconst mapTrees = mapTree.fields.get(key) ?? fail(\"Key does not exist in unhydrated map tree\");\n\n\tif (fieldSchema.kind === FieldKinds.required) {\n\t\treturn unboxedUnion(fieldSchema, mapTrees[0], {\n\t\t\tparent: field,\n\t\t\tindex: 0,\n\t\t}) as FlexTreeUnboxField<TFieldSchema>;\n\t}\n\tif (fieldSchema.kind === FieldKinds.optional) {\n\t\treturn (\n\t\t\tmapTrees.length > 0\n\t\t\t\t? unboxedUnion(fieldSchema, mapTrees[0], { parent: field, index: 0 })\n\t\t\t\t: undefined\n\t\t) as FlexTreeUnboxField<TFieldSchema>;\n\t}\n\n\treturn getOrCreateField(\n\t\tparentNode,\n\t\tkey,\n\t\tmapTrees,\n\t\tfieldSchema,\n\t) as FlexTreeUnboxField<TFieldSchema>;\n}\n\n// #endregion Caching and unboxing utilities\n\nexport function unsupportedUsageError(message?: string): Error {\n\treturn new UsageError(\n\t\t`${\n\t\t\tmessage ?? \"Operation\"\n\t\t} is not supported for content that has not yet been inserted into the tree`,\n\t);\n}\n"]}
1
+ {"version":3,"file":"mapTreeNode.js","sourceRoot":"","sources":["../../../src/feature-libraries/flex-map-tree/mapTreeNode.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport {\n\ttype AnchorNode,\n\tEmptyKey,\n\ttype FieldKey,\n\ttype MapTree,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeValue,\n\ttype Value,\n} from \"../../core/index.js\";\nimport { brand, fail, getOrCreate, mapIterable } from \"../../util/index.js\";\nimport {\n\ttype FlexTreeContext,\n\tFlexTreeEntityKind,\n\ttype FlexTreeField,\n\ttype FlexTreeFieldNode,\n\ttype FlexTreeLeafNode,\n\ttype FlexTreeMapNode,\n\ttype FlexTreeNode,\n\ttype FlexTreeNodeEvents,\n\ttype FlexTreeOptionalField,\n\ttype FlexTreeRequiredField,\n\ttype FlexTreeSequenceField,\n\ttype FlexTreeTypedField,\n\ttype FlexTreeTypedNode,\n\ttype FlexTreeTypedNodeUnion,\n\ttype FlexTreeUnboxField,\n\ttype FlexTreeUnboxNodeUnion,\n\ttype FlexibleFieldContent,\n\ttype FlexibleNodeSubSequence,\n\tTreeStatus,\n\tflexTreeMarker,\n\tindexForAt,\n} from \"../flex-tree/index.js\";\nimport {\n\ttype FlexAllowedTypes,\n\ttype FlexFieldNodeSchema,\n\tFlexFieldSchema,\n\ttype FlexMapNodeSchema,\n\ttype FlexTreeNodeSchema,\n\ttype LeafNodeSchema,\n\tisLazy,\n\tschemaIsFieldNode,\n\tschemaIsLeaf,\n\tschemaIsMap,\n\tschemaIsObjectNode,\n} from \"../typed-schema/index.js\";\nimport { type FlexImplicitAllowedTypes, normalizeAllowedTypes } from \"../schemaBuilderBase.js\";\nimport type { FlexFieldKind } from \"../modular-schema/index.js\";\nimport { FieldKinds, type SequenceFieldEditBuilder } from \"../default-schema/index.js\";\nimport { ComposableEventEmitter, type Listenable, type Off } from \"../../events/index.js\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\n// #region Nodes\n\n/**\n * A readonly {@link FlexTreeNode} which wraps a {@link MapTree}.\n * @remarks Reading data from the MapTreeNode will read the corresponding data from the {@link MapTree}.\n * Create a `MapTreeNode` by calling {@link getOrCreateMapTreeNode}.\n */\nexport interface MapTreeNode extends FlexTreeNode {\n\treadonly mapTree: MapTree;\n\tforwardEvents(to: Listenable<FlexTreeNodeEvents>): void;\n}\n\n/**\n * Checks if the given {@link FlexTreeNode} is a {@link MapTreeNode}.\n */\nexport function isMapTreeNode(flexNode: FlexTreeNode): flexNode is MapTreeNode {\n\treturn flexNode instanceof EagerMapTreeNode;\n}\n\n/** A node's parent field and its index in that field */\ninterface LocationInField {\n\treadonly parent: MapTreeField<FlexAllowedTypes>;\n\treadonly index: number;\n}\n\n/**\n * Allows events to be forwarded to another event emitter.\n * @remarks TODO: After the eventing library is simplified, find a way to support this pattern elegantly in the library.\n */\nclass ForwardingEventEmitter extends ComposableEventEmitter<FlexTreeNodeEvents> {\n\t// A map from deregistration functions produced by this class to deregistration functions of Listenables that have been forwarded to\n\tprivate readonly forwardedOffs = new Map<Off, Off[]>();\n\n\tpublic override on<K extends keyof FlexTreeNodeEvents>(\n\t\teventName: K,\n\t\tlistener: FlexTreeNodeEvents[K],\n\t): Off {\n\t\tconst off = super.on(eventName, listener);\n\t\t// Return a deregister function which...\n\t\treturn (): void => {\n\t\t\toff(); // ...deregisters the event in this emitter,\n\t\t\t// and also deregisters the event in any Listenable that it gets forwarded to\n\t\t\t(this.forwardedOffs.get(off) ?? []).forEach((f) => f());\n\t\t};\n\t}\n\n\tpublic forwardEvents(to: Listenable<FlexTreeNodeEvents>): void {\n\t\tfor (const [eventName, listeners] of this.listeners) {\n\t\t\tfor (const [off, listener] of listeners) {\n\t\t\t\t// For every one of our listeners, make the same subscription in the Listenable that we're forwarding to,\n\t\t\t\t// and then create a mapping from our deregistration function to theirs, so we can call it later if need be.\n\t\t\t\tgetOrCreate(this.forwardedOffs, off, () => []).push(to.on(eventName, listener));\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * A readonly implementation of {@link FlexTreeNode} which wraps a {@link MapTree}.\n * @remarks Any methods that would mutate the node will fail,\n * as will the querying of data specific to the {@link LazyTreeNode} implementation (e.g. {@link FlexTreeNode.context}).\n * MapTreeNodes are unconditionally cached -\n * when retrieved via {@link getOrCreateNode}, the same {@link MapTree} object will always produce the same `MapTreeNode` object.\n */\nexport class EagerMapTreeNode<TSchema extends FlexTreeNodeSchema> implements MapTreeNode {\n\tpublic readonly [flexTreeMarker] = FlexTreeEntityKind.Node as const;\n\tprivate readonly events = new ForwardingEventEmitter();\n\tpublic forwardEvents(to: Listenable<FlexTreeNodeEvents>): void {\n\t\tthis.events.forwardEvents(to);\n\t}\n\n\t/**\n\t * Create a new MapTreeNode.\n\t * @param location - the parentage of this node, if it is being created underneath an existing node and field, or undefined if not\n\t * @remarks This class (and its subclasses) should not be directly constructed outside of this module.\n\t * Instead, use {@link getOrCreateNode} to create a MapTreeNode from a {@link MapTree}.\n\t * A `MapTreeNode` may never be constructed more than once for the same {@link MapTree} object.\n\t * Instead, it should always be acquired via {@link getOrCreateNode}.\n\t */\n\tpublic constructor(\n\t\tpublic readonly schema: TSchema,\n\t\t/** The underlying {@link MapTree} that this `MapTreeNode` reads its data from */\n\t\tpublic readonly mapTree: MapTree,\n\t\tprivate location: LocationInField | undefined,\n\t) {\n\t\tassert(!nodeCache.has(mapTree), \"A node already exists for the given MapTree\");\n\t\tnodeCache.set(mapTree, this);\n\n\t\t// Fully demand the tree to ensure that parent pointers are present and accurate on all nodes.\n\t\t// When a MapTreeNode is constructed, its MapTree may contain nodes (anywhere below) that map (via the `nodeCache`) to pre-existing MapTreeNodes.\n\t\t// Put another way, for a given MapTree, some ancestor MapTreeNode can be created after any number of its descendant MapTreeNodes already exist.\n\t\t// In such a case, the spine of nodes between the descendant and ancestor need to exist in order for the ancestor to be able to walk upwards via the `parentField` property.\n\t\t// This needs to happen for all MapTreeNodes that are descendants of the ancestor MapTreeNode.\n\t\t// Demanding the entire tree is overkill to solve this problem since not all descendant MapTree nodes will have corresponding MapTreeNodes.\n\t\t// However, demanding the full tree also lets us eagerly validate that there are no duplicate MapTrees (i.e. same MapTree object) anywhere in the tree.\n\t\tthis.walkTree();\n\t}\n\n\tpublic get type(): TreeNodeSchemaIdentifier {\n\t\treturn this.schema.name;\n\t}\n\n\t/**\n\t * Set this node's parentage (see {@link FlexTreeNode.parentField}).\n\t * @remarks A node may only be adopted to a new parent one time, and only if it was not constructed with a parent.\n\t */\n\tpublic adopt(parent: MapTreeField<FlexAllowedTypes>, index: number): void {\n\t\tassert(this.location === undefined, \"Node may not be adopted if it already has a parent\");\n\t\tthis.location = { parent, index };\n\t}\n\n\t/**\n\t * The field this tree is in, and the index within that field.\n\t * @remarks If this node is unparented, this method will return the special {@link rootMapTreeField} as the parent.\n\t */\n\tpublic get parentField(): LocationInField {\n\t\tif (this.location === undefined) {\n\t\t\treturn {\n\t\t\t\tparent: rootMapTreeField,\n\t\t\t\tindex: -1,\n\t\t\t};\n\t\t}\n\n\t\treturn this.location;\n\t}\n\n\tpublic is<TSchemaInner extends FlexTreeNodeSchema>(\n\t\tschema: TSchemaInner,\n\t): this is FlexTreeTypedNode<TSchemaInner> {\n\t\treturn (schema as unknown) === this.schema;\n\t}\n\n\tpublic tryGetField(key: FieldKey): MapTreeField<FlexAllowedTypes> | undefined {\n\t\tconst field = this.mapTree.fields.get(key);\n\t\t// Only return the field if it is not empty, in order to fulfill the contract of `tryGetField`.\n\t\tif (field !== undefined && field.length > 0) {\n\t\t\treturn getOrCreateField(this, key, field, this.schema.getFieldSchema(key));\n\t\t}\n\t}\n\n\tpublic getBoxed(key: string): FlexTreeField {\n\t\tconst fieldKey: FieldKey = brand(key);\n\t\tconst field = this.mapTree.fields.get(fieldKey) ?? [];\n\t\treturn getOrCreateField(this, fieldKey, field, this.schema.getFieldSchema(fieldKey));\n\t}\n\n\tpublic boxedIterator(): IterableIterator<FlexTreeField> {\n\t\treturn mapIterable(this.mapTree.fields.entries(), ([key, field]) =>\n\t\t\tgetOrCreateField(this, key, field, this.schema.getFieldSchema(key)),\n\t\t);\n\t}\n\n\tpublic treeStatus(): TreeStatus {\n\t\treturn TreeStatus.New;\n\t}\n\n\tpublic get value(): Value {\n\t\treturn this.mapTree.value;\n\t}\n\n\tpublic on<K extends keyof FlexTreeNodeEvents>(\n\t\teventName: K,\n\t\tlistener: FlexTreeNodeEvents[K],\n\t): () => void {\n\t\tswitch (eventName) {\n\t\t\tcase \"nodeChanged\":\n\t\t\tcase \"treeChanged\":\n\t\t\t\treturn this.events.on(eventName, listener);\n\t\t\tdefault:\n\t\t\t\tthrow unsupportedUsageError(`Subscribing to ${eventName}`);\n\t\t}\n\t}\n\n\tpublic get context(): FlexTreeContext {\n\t\t// This API is relevant to `LazyTreeNode`s, but not `MapTreeNode`s.\n\t\t// TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.\n\t\treturn fail(\"MapTreeNode does not implement context\");\n\t}\n\n\tpublic get anchorNode(): AnchorNode {\n\t\t// This API is relevant to `LazyTreeNode`s, but not `MapTreeNode`s.\n\t\t// TODO: Refactor the FlexTreeNode interface so that stubbing this out isn't necessary.\n\t\treturn fail(\"MapTreeNode does not implement anchorNode\");\n\t}\n\n\tprivate walkTree(): void {\n\t\tfor (const [key, mapTrees] of this.mapTree.fields) {\n\t\t\tconst field = getOrCreateField(this, key, mapTrees, this.schema.getFieldSchema(key));\n\t\t\tfor (let index = 0; index < field.length; index++) {\n\t\t\t\tconst child = getOrCreateChild(\n\t\t\t\t\tmapTrees[index],\n\t\t\t\t\tthis.schema.getFieldSchema(key).allowedTypes,\n\t\t\t\t\t{ parent: field, index },\n\t\t\t\t);\n\t\t\t\t// These next asserts detect the case where `getOrCreateChild` gets a cache hit of a different node than the one we're trying to create\n\t\t\t\tassert(child.location !== undefined, \"Expected node to have parent\");\n\t\t\t\tassert(child.location.parent.parent === this, \"Node may not be multi-parented\");\n\t\t\t\tassert(child.location.index === index, \"Node may not be multi-parented\");\n\t\t\t\tchild.walkTree();\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * The implementation of a field node created by {@link getOrCreateNode}.\n */\nexport class EagerMapTreeFieldNode<TSchema extends FlexFieldNodeSchema>\n\textends EagerMapTreeNode<TSchema>\n\timplements FlexTreeFieldNode<TSchema>\n{\n\tpublic get content(): FlexTreeUnboxField<TSchema[\"info\"]> {\n\t\tconst field = this.tryGetField(EmptyKey);\n\t\tif (field === undefined) {\n\t\t\treturn undefined as FlexTreeUnboxField<TSchema[\"info\"]>;\n\t\t}\n\t\treturn unboxedField(field, EmptyKey, this.mapTree, this);\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\tconst field = this.mapTree.fields.get(EmptyKey) ?? [];\n\t\treturn getOrCreateField(\n\t\t\tthis,\n\t\t\tEmptyKey,\n\t\t\tfield,\n\t\t\tthis.schema.info,\n\t\t) as unknown as FlexTreeTypedField<TSchema[\"info\"]>;\n\t}\n\n\tpublic override getBoxed(key: string): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\treturn super.getBoxed(key) as FlexTreeTypedField<TSchema[\"info\"]>;\n\t}\n}\n\n/**\n * The implementation of a map node created by {@link getOrCreateNode}.\n */\nexport class EagerMapTreeMapNode<TSchema extends FlexMapNodeSchema>\n\textends EagerMapTreeNode<TSchema>\n\timplements FlexTreeMapNode<TSchema>\n{\n\tpublic get size(): number {\n\t\treturn this.mapTree.fields.size;\n\t}\n\n\tpublic has(key: string): boolean {\n\t\treturn this.tryGetField(brand(key)) !== undefined;\n\t}\n\n\tpublic get(key: string): FlexTreeUnboxField<TSchema[\"info\"]> {\n\t\tconst field = this.tryGetField(brand(key));\n\t\tif (field === undefined) {\n\t\t\treturn undefined as FlexTreeUnboxField<TSchema[\"info\"]>;\n\t\t}\n\t\treturn unboxedField(field, brand(key), this.mapTree, this);\n\t}\n\n\tpublic keys(): IterableIterator<FieldKey> {\n\t\treturn this.mapTree.fields.keys();\n\t}\n\n\tpublic values(): IterableIterator<FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">> {\n\t\treturn mapIterable(\n\t\t\tthis.mapTree.fields.keys(),\n\t\t\t(key) =>\n\t\t\t\tunboxedField(\n\t\t\t\t\tthis.tryGetField(key) ?? fail(\"Unexpected empty map field\"),\n\t\t\t\t\tkey,\n\t\t\t\t\tthis.mapTree,\n\t\t\t\t\tthis,\n\t\t\t\t) as FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t);\n\t}\n\n\tpublic entries(): IterableIterator<\n\t\t[FieldKey, FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">]\n\t> {\n\t\treturn mapIterable(this.mapTree.fields.keys(), (key) => [\n\t\t\tkey,\n\t\t\tunboxedField(\n\t\t\t\tthis.tryGetField(key) ?? fail(\"Unexpected empty map field\"),\n\t\t\t\tkey,\n\t\t\t\tthis.mapTree,\n\t\t\t\tthis,\n\t\t\t) as FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t]);\n\t}\n\n\tpublic forEach(\n\t\tcallbackFn: (\n\t\t\tvalue: FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">,\n\t\t\tkey: FieldKey,\n\t\t\tmap: FlexTreeMapNode<TSchema>,\n\t\t) => void,\n\t\tthisArg?: unknown,\n\t): void {\n\t\tconst fn = thisArg !== undefined ? callbackFn.bind(thisArg) : callbackFn;\n\t\tfor (const [key, value] of this.entries()) {\n\t\t\tfn(value, key, this);\n\t\t}\n\t}\n\n\tpublic override getBoxed(key: string): FlexTreeTypedField<TSchema[\"info\"]> {\n\t\treturn super.getBoxed(key) as FlexTreeTypedField<TSchema[\"info\"]>;\n\t}\n\n\tpublic set(key: string, value: FlexibleFieldContent<TSchema[\"info\"]> | undefined): void {\n\t\t// `MapTreeNode`s cannot be mutated\n\t\tthrow unsupportedUsageError(\"Setting a map entry\");\n\t}\n\n\tpublic delete(key: string): void {\n\t\t// `MapTreeNode`s cannot be mutated\n\t\tthrow unsupportedUsageError(\"Deleting a map entry\");\n\t}\n\n\tpublic [Symbol.iterator](): IterableIterator<\n\t\t[FieldKey, FlexTreeUnboxField<TSchema[\"info\"], \"notEmpty\">]\n\t> {\n\t\treturn this.entries();\n\t}\n\n\tpublic override boxedIterator(): IterableIterator<FlexTreeTypedField<TSchema[\"info\"]>> {\n\t\treturn super.boxedIterator() as IterableIterator<FlexTreeTypedField<TSchema[\"info\"]>>;\n\t}\n}\n\nclass EagerMapTreeLeafNode<TSchema extends LeafNodeSchema>\n\textends EagerMapTreeNode<TSchema>\n\timplements FlexTreeLeafNode<TSchema>\n{\n\tpublic override get value(): TreeValue<TSchema[\"info\"]> {\n\t\treturn super.value as TreeValue<TSchema[\"info\"]>;\n\t}\n}\n\n// #endregion Nodes\n\n// #region Fields\n\n/**\n * A special singleton that is the implicit parent field of all un-parented {@link EagerMapTreeNode}s.\n * @remarks This exists because {@link EagerMapTreeNode.parentField} must return a field.\n * If a {@link EagerMapTreeNode} is created without a parent, its {@link EagerMapTreeNode.parentField} property will point to this object.\n * However, this field cannot be used in any practical way because it is empty, i.e. it does not actually contain the children that claim to be parented under it.\n * It has the \"empty\" schema and it will always contain zero children if queried.\n */\nexport const rootMapTreeField: MapTreeField<FlexAllowedTypes> = {\n\t[flexTreeMarker]: FlexTreeEntityKind.Field as const,\n\tlength: 0,\n\tkey: EmptyKey,\n\tparent: undefined,\n\tis<TSchema extends FlexFieldSchema>(schema: TSchema) {\n\t\treturn schema === (FlexFieldSchema.empty as FlexFieldSchema);\n\t},\n\tisSameAs(other: FlexTreeField): boolean {\n\t\treturn other === this;\n\t},\n\tboxedIterator(): IterableIterator<FlexTreeNode> {\n\t\treturn [].values();\n\t},\n\tboxedAt(index: number): FlexTreeNode | undefined {\n\t\treturn undefined;\n\t},\n\tschema: FlexFieldSchema.empty,\n\tget context(): FlexTreeContext {\n\t\treturn fail(\"MapTreeField does not implement context\");\n\t},\n\ttreeStatus(): TreeStatus {\n\t\treturn TreeStatus.New;\n\t},\n\tmapTrees: [],\n};\n\nclass MapTreeField<T extends FlexAllowedTypes> implements FlexTreeField {\n\tpublic [flexTreeMarker] = FlexTreeEntityKind.Field as const;\n\n\tpublic constructor(\n\t\tpublic readonly schema: FlexFieldSchema<FlexFieldKind, T>,\n\t\tpublic readonly key: FieldKey,\n\t\tpublic readonly parent: FlexTreeNode | undefined,\n\t\tpublic readonly mapTrees: readonly MapTree[],\n\t) {\n\t\tassert(!fieldCache.has(mapTrees), \"A field already exists for the given MapTrees\");\n\t\tfieldCache.set(mapTrees, this);\n\n\t\t// When this field is created (which only happens one time, because it is cached), all the children become parented for the first time.\n\t\t// \"Adopt\" each child by updating its parent information to point to this field.\n\t\tfor (let i = 0; i < mapTrees.length; i++) {\n\t\t\tconst mapTreeNodeChild = nodeCache.get(mapTrees[i]);\n\t\t\tif (mapTreeNodeChild !== undefined) {\n\t\t\t\tassert(\n\t\t\t\t\tmapTreeNodeChild.parentField.parent === rootMapTreeField,\n\t\t\t\t\t\"Node is already parented under a different field\",\n\t\t\t\t);\n\t\t\t\tmapTreeNodeChild.adopt(this, i);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.mapTrees.length;\n\t}\n\n\tpublic is<TSchemaInner extends FlexFieldSchema>(\n\t\tschema: TSchemaInner,\n\t): this is FlexTreeTypedField<TSchemaInner> {\n\t\treturn this.schema.equals(schema);\n\t}\n\n\tpublic isSameAs(other: FlexTreeField): boolean {\n\t\tif (other.parent === this.parent && other.key === this.key) {\n\t\t\tassert(other === this, \"Expected field to be cached\");\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tpublic boxedIterator(): IterableIterator<FlexTreeTypedNodeUnion<T>> {\n\t\treturn this.mapTrees\n\t\t\t.map(\n\t\t\t\t(m, index) =>\n\t\t\t\t\tgetOrCreateChild(m, this.schema.allowedTypes, {\n\t\t\t\t\t\tparent: this,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t}) as FlexTreeNode as FlexTreeTypedNodeUnion<T>,\n\t\t\t)\n\t\t\t.values();\n\t}\n\n\tpublic boxedAt(index: number): FlexTreeTypedNodeUnion<T> | undefined {\n\t\tconst i = indexForAt(index, this.length);\n\t\tif (i === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst m = this.mapTrees[i];\n\t\tif (m !== undefined) {\n\t\t\treturn getOrCreateChild(m, this.schema.allowedTypes, {\n\t\t\t\tparent: this,\n\t\t\t\tindex: i,\n\t\t\t}) as FlexTreeNode as FlexTreeTypedNodeUnion<T>;\n\t\t}\n\t}\n\n\tpublic get context(): FlexTreeContext {\n\t\treturn fail(\"MapTreeField does not implement context\");\n\t}\n\n\tpublic treeStatus(): TreeStatus {\n\t\treturn TreeStatus.New;\n\t}\n}\n\nclass MapTreeRequiredField<T extends FlexAllowedTypes>\n\textends MapTreeField<T>\n\timplements FlexTreeRequiredField<T>\n{\n\tpublic get content(): FlexTreeUnboxNodeUnion<T> {\n\t\treturn unboxedUnion(this.schema, this.mapTrees[0], { parent: this, index: 0 });\n\t}\n\tpublic set content(_: FlexTreeUnboxNodeUnion<T>) {\n\t\tthrow unsupportedUsageError(\"Setting an optional field\");\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedNodeUnion<T> {\n\t\treturn this.boxedAt(0) ?? fail(\"Required field must have exactly one node\");\n\t}\n}\n\nclass MapTreeOptionalField<T extends FlexAllowedTypes>\n\textends MapTreeField<T>\n\timplements FlexTreeOptionalField<T>\n{\n\tpublic get content(): FlexTreeUnboxNodeUnion<T> | undefined {\n\t\treturn this.mapTrees.length > 0\n\t\t\t? unboxedUnion(this.schema, this.mapTrees[0], { parent: this, index: 0 })\n\t\t\t: undefined;\n\t}\n\tpublic set content(_: FlexTreeUnboxNodeUnion<T> | undefined) {\n\t\tthrow unsupportedUsageError(\"Setting an optional field\");\n\t}\n\n\tpublic get boxedContent(): FlexTreeTypedNodeUnion<T> | undefined {\n\t\treturn this.boxedAt(0);\n\t}\n}\n\nclass MapTreeSequenceField<T extends FlexAllowedTypes>\n\textends MapTreeField<T>\n\timplements FlexTreeSequenceField<T>\n{\n\tpublic at(index: number): FlexTreeUnboxNodeUnion<T> | undefined {\n\t\tconst i = indexForAt(index, this.length);\n\t\tif (i === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn unboxedUnion(this.schema, this.mapTrees[i], { parent: this, index: i });\n\t}\n\tpublic map<U>(callbackfn: (value: FlexTreeUnboxNodeUnion<T>, index: number) => U): U[] {\n\t\treturn Array.from(this, callbackfn);\n\t}\n\tpublic mapBoxed<U>(callbackfn: (value: FlexTreeTypedNodeUnion<T>, index: number) => U): U[] {\n\t\treturn Array.from(this.boxedIterator(), callbackfn);\n\t}\n\n\tpublic *[Symbol.iterator](): IterableIterator<FlexTreeUnboxNodeUnion<T>> {\n\t\tfor (let i = 0; i < this.mapTrees.length; i++) {\n\t\t\tyield unboxedUnion(this.schema, this.mapTrees[i], { parent: this, index: i });\n\t\t}\n\t}\n\n\tpublic sequenceEditor(): SequenceFieldEditBuilder {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic insertAt(index: number, value: FlexibleNodeSubSequence<T>): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic insertAtStart(value: FlexibleNodeSubSequence<T>): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic insertAtEnd(value: FlexibleNodeSubSequence<T>): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic removeAt(index: number): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveToStart(sourceIndex: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveToEnd(sourceIndex: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveToIndex(index: unknown, sourceIndex: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveRangeToStart(sourceStart: unknown, sourceEnd: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveRangeToEnd(sourceStart: unknown, sourceEnd: unknown, source?: unknown): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n\tpublic moveRangeToIndex(\n\t\tindex: unknown,\n\t\tsourceStart: unknown,\n\t\tsourceEnd: unknown,\n\t\tsource?: unknown,\n\t): void {\n\t\tthrow unsupportedUsageError(\"Editing a sequence\");\n\t}\n}\n\n// #endregion Fields\n\n// #region Caching and unboxing utilities\n\nconst nodeCache = new WeakMap<MapTree, EagerMapTreeNode<FlexTreeNodeSchema>>();\nconst fieldCache = new WeakMap<readonly MapTree[], MapTreeField<FlexAllowedTypes>>();\n\n/**\n * If there exists a {@link EagerMapTreeNode} for the given {@link MapTree}, returns it, otherwise returns `undefined`.\n * @remarks {@link EagerMapTreeNode | MapTreeNodes} are created via {@link getOrCreateNode}.\n */\nexport function tryGetMapTreeNode(mapTree: MapTree): MapTreeNode | undefined {\n\treturn nodeCache.get(mapTree);\n}\n\n/**\n * Create a {@link MapTreeNode} that wraps the given {@link MapTree}, or get the node that already exists for that {@link MapTree} if there is one.\n * @param nodeSchema - the {@link FlexTreeNodeSchema | schema} that the node conforms to\n * @param mapTree - the {@link MapTree} containing the data for this node.\n * @remarks It must conform to the `nodeSchema`.\n */\nexport function getOrCreateMapTreeNode(\n\tnodeSchema: FlexTreeNodeSchema,\n\tmapTree: MapTree,\n): MapTreeNode {\n\treturn getOrCreateNode(nodeSchema, mapTree);\n}\n\n/**\n * Create a {@link EagerMapTreeNode} that wraps the given {@link MapTree}, or get the node that already exists for that {@link MapTree} if there is one.\n * @param nodeSchema - the {@link FlexTreeNodeSchema | schema} that the node conforms to\n * @param mapTree - the {@link MapTree} containing the data for this node.\n * @remarks It must conform to the `nodeSchema`.\n * This function is exported for the purposes of unit testing.\n */\nexport function getOrCreateNode<TSchema extends LeafNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeLeafNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexMapNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeMapNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexFieldNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeFieldNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeNode<TSchema>;\nexport function getOrCreateNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n): EagerMapTreeNode<TSchema> {\n\tconst cached = tryGetMapTreeNode(mapTree);\n\tif (cached !== undefined) {\n\t\treturn cached as EagerMapTreeNode<TSchema>;\n\t}\n\treturn createNode(nodeSchema, mapTree, undefined);\n}\n\n/** Helper for creating a `MapTreeNode` given the parent field (e.g. when \"walking down\") */\nfunction getOrCreateChild(\n\tmapTree: MapTree,\n\timplicitAllowedTypes: FlexImplicitAllowedTypes,\n\tparent: LocationInField | undefined,\n): EagerMapTreeNode<FlexTreeNodeSchema> {\n\tconst cached = nodeCache.get(mapTree);\n\tif (cached !== undefined) {\n\t\treturn cached;\n\t}\n\n\tconst allowedTypes = normalizeAllowedTypes(implicitAllowedTypes);\n\tconst nodeSchema =\n\t\tallowedTypes\n\t\t\t.map((t) => (isLazy(t) ? t() : t))\n\t\t\t.find((t): t is FlexTreeNodeSchema => {\n\t\t\t\tassert(t !== \"Any\", \"'Any' type is not supported\");\n\t\t\t\treturn t.name === mapTree.type;\n\t\t\t}) ?? fail(\"Unsupported node schema\");\n\n\treturn createNode(nodeSchema, mapTree, parent);\n}\n\n/** Always constructs a new node, therefore may not be called twice for the same `MapTree`. */\nfunction createNode<TSchema extends LeafNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeLeafNode<TSchema>;\nfunction createNode<TSchema extends FlexMapNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeMapNode<TSchema>;\nfunction createNode<TSchema extends FlexFieldNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeFieldNode<TSchema>;\nfunction createNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeNode<TSchema>;\nfunction createNode<TSchema extends FlexTreeNodeSchema>(\n\tnodeSchema: TSchema,\n\tmapTree: MapTree,\n\tparentField: LocationInField | undefined,\n): EagerMapTreeNode<TSchema> {\n\tif (schemaIsLeaf(nodeSchema)) {\n\t\treturn new EagerMapTreeLeafNode(nodeSchema, mapTree, parentField);\n\t}\n\tif (schemaIsMap(nodeSchema)) {\n\t\treturn new EagerMapTreeMapNode(nodeSchema, mapTree, parentField);\n\t}\n\tif (schemaIsFieldNode(nodeSchema)) {\n\t\treturn new EagerMapTreeFieldNode(nodeSchema, mapTree, parentField);\n\t}\n\tif (schemaIsObjectNode(nodeSchema)) {\n\t\treturn new EagerMapTreeNode(nodeSchema, mapTree, parentField);\n\t}\n\tassert(false, \"Unrecognized node kind\");\n}\n\n/** Creates a field with the given attributes, or returns a cached field if there is one */\nfunction getOrCreateField(\n\tparent: FlexTreeNode,\n\tkey: FieldKey,\n\tmapTrees: readonly MapTree[],\n\tschema: FlexFieldSchema,\n): MapTreeField<FlexFieldSchema[\"allowedTypes\"]> {\n\tconst cached = fieldCache.get(mapTrees);\n\tif (cached !== undefined) {\n\t\treturn cached;\n\t}\n\n\tif (\n\t\tschema.kind.identifier === FieldKinds.required.identifier ||\n\t\tschema.kind.identifier === FieldKinds.identifier.identifier\n\t) {\n\t\treturn new MapTreeRequiredField(schema, key, parent, mapTrees);\n\t}\n\n\tif (schema.kind.identifier === FieldKinds.optional.identifier) {\n\t\treturn new MapTreeOptionalField(schema, key, parent, mapTrees);\n\t}\n\n\tif (schema.kind.identifier === FieldKinds.sequence.identifier) {\n\t\treturn new MapTreeSequenceField(schema, key, parent, mapTrees);\n\t}\n\n\treturn new MapTreeField(schema, key, parent, mapTrees);\n}\n\n/** Unboxes non-polymorphic leaf nodes to their values, if applicable */\nfunction unboxedUnion<TTypes extends FlexAllowedTypes>(\n\tschema: FlexFieldSchema<FlexFieldKind, TTypes>,\n\tmapTree: MapTree,\n\tparent: LocationInField,\n): FlexTreeUnboxNodeUnion<TTypes> {\n\tconst type = schema.monomorphicChildType;\n\tif (type !== undefined) {\n\t\tif (schemaIsLeaf(type)) {\n\t\t\treturn mapTree.value as FlexTreeUnboxNodeUnion<TTypes>;\n\t\t}\n\t\treturn getOrCreateChild(mapTree, type, parent) as FlexTreeUnboxNodeUnion<TTypes>;\n\t}\n\n\treturn getOrCreateChild(mapTree, schema.allowedTypes, parent) as FlexTreeUnboxNodeUnion<TTypes>;\n}\n\n/** Unboxes non-polymorphic required and optional fields holding leaf nodes to their values, if applicable */\nfunction unboxedField<TFieldSchema extends FlexFieldSchema>(\n\tfield: MapTreeField<FlexAllowedTypes>,\n\tkey: FieldKey,\n\tmapTree: MapTree,\n\tparentNode: FlexTreeNode,\n): FlexTreeUnboxField<TFieldSchema> {\n\tconst fieldSchema = field.schema;\n\tconst mapTrees = mapTree.fields.get(key) ?? fail(\"Key does not exist in unhydrated map tree\");\n\n\tif (fieldSchema.kind === FieldKinds.required) {\n\t\treturn unboxedUnion(fieldSchema, mapTrees[0], {\n\t\t\tparent: field,\n\t\t\tindex: 0,\n\t\t}) as FlexTreeUnboxField<TFieldSchema>;\n\t}\n\tif (fieldSchema.kind === FieldKinds.optional) {\n\t\treturn (\n\t\t\tmapTrees.length > 0\n\t\t\t\t? unboxedUnion(fieldSchema, mapTrees[0], { parent: field, index: 0 })\n\t\t\t\t: undefined\n\t\t) as FlexTreeUnboxField<TFieldSchema>;\n\t}\n\n\treturn getOrCreateField(\n\t\tparentNode,\n\t\tkey,\n\t\tmapTrees,\n\t\tfieldSchema,\n\t) as FlexTreeUnboxField<TFieldSchema>;\n}\n\n// #endregion Caching and unboxing utilities\n\nexport function unsupportedUsageError(message?: string): Error {\n\treturn new UsageError(\n\t\t`${\n\t\t\tmessage ?? \"Operation\"\n\t\t} is not supported for content that has not yet been inserted into the tree`,\n\t);\n}\n"]}
@@ -2,14 +2,14 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { FieldKey, ForestEvents, TreeFieldStoredSchema } from "../../core/index.js";
6
- import { Listenable } from "../../events/index.js";
7
- import { IDisposable, disposeSymbol } from "../../util/index.js";
8
- import { FieldGenerator } from "../fieldGenerator.js";
9
- import { NodeKeyManager } from "../node-key/index.js";
10
- import { FlexTreeSchema } from "../typed-schema/index.js";
11
- import { FlexTreeField } from "./flexTreeTypes.js";
12
- import { LazyEntity } from "./lazyEntity.js";
5
+ import { type FieldKey, type ForestEvents, type TreeFieldStoredSchema } from "../../core/index.js";
6
+ import type { Listenable } from "../../events/index.js";
7
+ import { type IDisposable, disposeSymbol } from "../../util/index.js";
8
+ import type { FieldGenerator } from "../fieldGenerator.js";
9
+ import type { NodeKeyManager } from "../node-key/index.js";
10
+ import type { FlexTreeSchema } from "../typed-schema/index.js";
11
+ import type { FlexTreeField } from "./flexTreeTypes.js";
12
+ import { type LazyEntity } from "./lazyEntity.js";
13
13
  import type { ITreeCheckout } from "../../shared-tree/index.js";
14
14
  /**
15
15
  * A common context of a "forest" of FlexTrees.
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-tree/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,QAAQ,EACR,YAAY,EACZ,qBAAqB,EAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,CAAC,YAAY,CAAC;IAChE;;OAEG;IACH,IAAI,IAAI,IAAI,aAAa,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAMhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,mDAAwB,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe,EAAE,WAAW;aAa1C,MAAM,EAAE,cAAc;aACtB,QAAQ,EAAE,aAAa;aACvB,cAAc,EAAE,cAAc;IAd/C,SAAgB,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAa;IACzD,SAAgB,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAa;IAEzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;OAIG;gBAEc,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,cAAc;IAe/C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAQf,CAAC,aAAa,CAAC,IAAI,IAAI;IAa9B;;;;;OAKG;IACI,KAAK,IAAI,IAAI;IAQpB,IAAW,IAAI,IAAI,aAAa,CAO/B;IAEM,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAI5F;;OAEG;IAEI,WAAW,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,cAAc;CAC7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,cAAc,GAC5B,OAAO,CAET"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-tree/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,CAAC,YAAY,CAAC;IAChE;;OAEG;IACH,IAAI,IAAI,IAAI,aAAa,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAMhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,mDAAwB,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe,EAAE,WAAW;aAa1C,MAAM,EAAE,cAAc;aACtB,QAAQ,EAAE,aAAa;aACvB,cAAc,EAAE,cAAc;IAd/C,SAAgB,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAa;IACzD,SAAgB,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAa;IAEzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;OAIG;gBAEc,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,cAAc;IAe/C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAQf,CAAC,aAAa,CAAC,IAAI,IAAI;IAa9B;;;;;OAKG;IACI,KAAK,IAAI,IAAI;IAQpB,IAAW,IAAI,IAAI,aAAa,CAO/B;IAEM,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAI5F;;OAEG;IAEI,WAAW,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,cAAc;CAC7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,cAAc,GAC5B,OAAO,CAET"}
@@ -24,13 +24,6 @@ exports.ContextSlot = (0, index_js_1.anchorSlot)();
24
24
  * @remarks An editor is required to edit the FlexTree.
25
25
  */
26
26
  class Context {
27
- schema;
28
- checkout;
29
- nodeKeyManager;
30
- withCursors = new Set();
31
- withAnchors = new Set();
32
- eventUnregister;
33
- disposed = false;
34
27
  /**
35
28
  * @param schema - Schema to use when working with the tree.
36
29
  * @param checkout - The checkout.
@@ -40,6 +33,9 @@ class Context {
40
33
  this.schema = schema;
41
34
  this.checkout = checkout;
42
35
  this.nodeKeyManager = nodeKeyManager;
36
+ this.withCursors = new Set();
37
+ this.withAnchors = new Set();
38
+ this.disposed = false;
43
39
  this.eventUnregister = [
44
40
  this.checkout.forest.on("beforeChange", () => {
45
41
  this.prepareForEdit();
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/feature-libraries/flex-tree/context.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;AAE7D,kDAM6B;AAE7B,kDAAiE;AAMjE,mDAAmE;AACnE,iDAA2C;AAgC3C;;;;;;GAMG;AACU,QAAA,WAAW,GAAG,IAAA,qBAAU,GAAW,CAAC;AAEjD;;;;GAIG;AACH,MAAa,OAAO;IAaF;IACA;IACA;IAdD,WAAW,GAAoB,IAAI,GAAG,EAAE,CAAC;IACzC,WAAW,GAAoB,IAAI,GAAG,EAAE,CAAC;IAExC,eAAe,CAAiB;IACzC,QAAQ,GAAG,KAAK,CAAC;IAEzB;;;;OAIG;IACH,YACiB,MAAsB,EACtB,QAAuB,EACvB,cAA8B;QAF9B,WAAM,GAAN,MAAM,CAAgB;QACtB,aAAQ,GAAR,QAAQ,CAAe;QACvB,mBAAc,GAAd,cAAc,CAAgB;QAE9C,IAAI,CAAC,eAAe,GAAG;YACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC,CAAC;SACF,CAAC;QAEF,IAAA,iBAAM,EACL,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAW,CAAC,EACpD,KAAK,CAAC,kDAAkD,CACxD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAW,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,cAAc;QACrB,IAAA,iBAAM,EAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,oCAAoB,CAAC,EAAE,CAAC;QAChC,CAAC;QACD,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC3F,CAAC;IAEM,CAAC,wBAAa,CAAC;QACrB,IAAA,iBAAM,EAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,UAAU,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC;QACvE,IAAA,iBAAM,EAAC,OAAO,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACI,KAAK;QACX,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,wBAAa,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAChF,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACjF,CAAC;IAED,IAAW,IAAI;QACd,IAAA,iBAAM,EAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAA,8BAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAA,wBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,EAAE,CAA+B,SAAY,EAAE,QAAyB;QAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;CAOD;AAvFD,0BAuFC;AAED;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAC7B,MAAsB,EACtB,QAAuB,EACvB,cAA8B;IAE9B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACtD,CAAC;AAND,wCAMC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tFieldKey,\n\tForestEvents,\n\tTreeFieldStoredSchema,\n\tanchorSlot,\n\tmoveToDetachedField,\n} from \"../../core/index.js\";\nimport { Listenable } from \"../../events/index.js\";\nimport { IDisposable, disposeSymbol } from \"../../util/index.js\";\nimport { FieldGenerator } from \"../fieldGenerator.js\";\nimport { NodeKeyManager } from \"../node-key/index.js\";\nimport { FlexTreeSchema } from \"../typed-schema/index.js\";\n\nimport { FlexTreeField } from \"./flexTreeTypes.js\";\nimport { LazyEntity, prepareForEditSymbol } from \"./lazyEntity.js\";\nimport { makeField } from \"./lazyField.js\";\nimport type { ITreeCheckout } from \"../../shared-tree/index.js\";\n\n/**\n * A common context of a \"forest\" of FlexTrees.\n * It handles group operations like transforming cursors into anchors for edits.\n * @internal\n */\nexport interface FlexTreeContext extends Listenable<ForestEvents> {\n\t/**\n\t * Gets the root field of the tree.\n\t */\n\tget root(): FlexTreeField;\n\n\t/**\n\t * Schema used within this context.\n\t * All data must conform to these schema.\n\t */\n\treadonly schema: FlexTreeSchema;\n\n\t// TODO: Add more members:\n\t// - transaction APIs\n\t// - branching APIs\n\n\treadonly nodeKeyManager: NodeKeyManager;\n\n\t/**\n\t * The checkout object associated with this context.\n\t */\n\treadonly checkout: ITreeCheckout;\n}\n\n/**\n * Creating multiple flex tree contexts for the same branch, and thus with the same underlying AnchorSet does not work due to how TreeNode caching works.\n * This slot is used to detect if one already exists and error if creating a second.\n *\n * TODO:\n * 1. API docs need to reflect this limitation or the limitation has to be removed.\n */\nexport const ContextSlot = anchorSlot<Context>();\n\n/**\n * Implementation of `FlexTreeContext`.\n *\n * @remarks An editor is required to edit the FlexTree.\n */\nexport class Context implements FlexTreeContext, IDisposable {\n\tpublic readonly withCursors: Set<LazyEntity> = new Set();\n\tpublic readonly withAnchors: Set<LazyEntity> = new Set();\n\n\tprivate readonly eventUnregister: (() => void)[];\n\tprivate disposed = false;\n\n\t/**\n\t * @param schema - Schema to use when working with the tree.\n\t * @param checkout - The checkout.\n\t * @param nodeKeyManager - An object which handles node key generation and conversion\n\t */\n\tpublic constructor(\n\t\tpublic readonly schema: FlexTreeSchema,\n\t\tpublic readonly checkout: ITreeCheckout,\n\t\tpublic readonly nodeKeyManager: NodeKeyManager,\n\t) {\n\t\tthis.eventUnregister = [\n\t\t\tthis.checkout.forest.on(\"beforeChange\", () => {\n\t\t\t\tthis.prepareForEdit();\n\t\t\t}),\n\t\t];\n\n\t\tassert(\n\t\t\t!this.checkout.forest.anchors.slots.has(ContextSlot),\n\t\t\t0x92b /* Cannot create second flex-tree from checkout */,\n\t\t);\n\t\tthis.checkout.forest.anchors.slots.set(ContextSlot, this);\n\t}\n\n\t/**\n\t * Called before editing.\n\t * Clears all cursors so editing can proceed.\n\t */\n\tprivate prepareForEdit(): void {\n\t\tassert(this.disposed === false, 0x802 /* use after dispose */);\n\t\tfor (const target of this.withCursors) {\n\t\t\ttarget[prepareForEditSymbol]();\n\t\t}\n\t\tassert(this.withCursors.size === 0, 0x773 /* prepareForEdit should remove all cursors */);\n\t}\n\n\tpublic [disposeSymbol](): void {\n\t\tassert(this.disposed === false, 0x803 /* double dispose */);\n\t\tthis.disposed = true;\n\t\tthis.clear();\n\t\tfor (const unregister of this.eventUnregister) {\n\t\t\tunregister();\n\t\t}\n\t\tthis.eventUnregister.length = 0;\n\n\t\tconst deleted = this.checkout.forest.anchors.slots.delete(ContextSlot);\n\t\tassert(deleted, 0x8c4 /* unexpected dispose */);\n\t}\n\n\t/**\n\t * Release any cursors and anchors held by tree entities created in this context.\n\t * Ensures the cashed references to those entities on the Anchors are also cleared.\n\t * The tree entities are invalid to use after this, but the context may still be used\n\t * to create new trees starting from the root.\n\t */\n\tpublic clear(): void {\n\t\tfor (const target of this.withAnchors) {\n\t\t\ttarget[disposeSymbol]();\n\t\t}\n\t\tassert(this.withCursors.size === 0, 0x774 /* free should remove all cursors */);\n\t\tassert(this.withAnchors.size === 0, 0x775 /* free should remove all anchors */);\n\t}\n\n\tpublic get root(): FlexTreeField {\n\t\tassert(this.disposed === false, 0x804 /* use after dispose */);\n\t\tconst cursor = this.checkout.forest.allocateCursor(\"root\");\n\t\tmoveToDetachedField(this.checkout.forest, cursor);\n\t\tconst field = makeField(this, this.schema.rootFieldSchema, cursor);\n\t\tcursor.free();\n\t\treturn field;\n\t}\n\n\tpublic on<K extends keyof ForestEvents>(eventName: K, listener: ForestEvents[K]): () => void {\n\t\treturn this.checkout.forest.on(eventName, listener);\n\t}\n\n\t/**\n\t * FieldSource used to get a FieldGenerator to populate required fields during procedural contextual data generation.\n\t */\n\t// TODO: Use this to automatically provide node keys where required.\n\tpublic fieldSource?(key: FieldKey, schema: TreeFieldStoredSchema): undefined | FieldGenerator;\n}\n\n/**\n * A simple API for a Forest to interact with the tree.\n *\n * @param forest - the Forest\n * @param editor - an editor that makes changes to the forest.\n * @param nodeKeyManager - an object which handles node key generation and conversion.\n * @returns {@link FlexTreeContext} which is used to manage the cursors and anchors within the FlexTrees:\n * This is necessary for supporting using this tree across edits to the forest, and not leaking memory.\n */\nexport function getTreeContext(\n\tschema: FlexTreeSchema,\n\tcheckout: ITreeCheckout,\n\tnodeKeyManager: NodeKeyManager,\n): Context {\n\treturn new Context(schema, checkout, nodeKeyManager);\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/feature-libraries/flex-tree/context.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\ttype FieldKey,\n\ttype ForestEvents,\n\ttype TreeFieldStoredSchema,\n\tanchorSlot,\n\tmoveToDetachedField,\n} from \"../../core/index.js\";\nimport type { Listenable } from \"../../events/index.js\";\nimport { type IDisposable, disposeSymbol } from \"../../util/index.js\";\nimport type { FieldGenerator } from \"../fieldGenerator.js\";\nimport type { NodeKeyManager } from \"../node-key/index.js\";\nimport type { FlexTreeSchema } from \"../typed-schema/index.js\";\n\nimport type { FlexTreeField } from \"./flexTreeTypes.js\";\nimport { type LazyEntity, prepareForEditSymbol } from \"./lazyEntity.js\";\nimport { makeField } from \"./lazyField.js\";\nimport type { ITreeCheckout } from \"../../shared-tree/index.js\";\n\n/**\n * A common context of a \"forest\" of FlexTrees.\n * It handles group operations like transforming cursors into anchors for edits.\n * @internal\n */\nexport interface FlexTreeContext extends Listenable<ForestEvents> {\n\t/**\n\t * Gets the root field of the tree.\n\t */\n\tget root(): FlexTreeField;\n\n\t/**\n\t * Schema used within this context.\n\t * All data must conform to these schema.\n\t */\n\treadonly schema: FlexTreeSchema;\n\n\t// TODO: Add more members:\n\t// - transaction APIs\n\t// - branching APIs\n\n\treadonly nodeKeyManager: NodeKeyManager;\n\n\t/**\n\t * The checkout object associated with this context.\n\t */\n\treadonly checkout: ITreeCheckout;\n}\n\n/**\n * Creating multiple flex tree contexts for the same branch, and thus with the same underlying AnchorSet does not work due to how TreeNode caching works.\n * This slot is used to detect if one already exists and error if creating a second.\n *\n * TODO:\n * 1. API docs need to reflect this limitation or the limitation has to be removed.\n */\nexport const ContextSlot = anchorSlot<Context>();\n\n/**\n * Implementation of `FlexTreeContext`.\n *\n * @remarks An editor is required to edit the FlexTree.\n */\nexport class Context implements FlexTreeContext, IDisposable {\n\tpublic readonly withCursors: Set<LazyEntity> = new Set();\n\tpublic readonly withAnchors: Set<LazyEntity> = new Set();\n\n\tprivate readonly eventUnregister: (() => void)[];\n\tprivate disposed = false;\n\n\t/**\n\t * @param schema - Schema to use when working with the tree.\n\t * @param checkout - The checkout.\n\t * @param nodeKeyManager - An object which handles node key generation and conversion\n\t */\n\tpublic constructor(\n\t\tpublic readonly schema: FlexTreeSchema,\n\t\tpublic readonly checkout: ITreeCheckout,\n\t\tpublic readonly nodeKeyManager: NodeKeyManager,\n\t) {\n\t\tthis.eventUnregister = [\n\t\t\tthis.checkout.forest.on(\"beforeChange\", () => {\n\t\t\t\tthis.prepareForEdit();\n\t\t\t}),\n\t\t];\n\n\t\tassert(\n\t\t\t!this.checkout.forest.anchors.slots.has(ContextSlot),\n\t\t\t0x92b /* Cannot create second flex-tree from checkout */,\n\t\t);\n\t\tthis.checkout.forest.anchors.slots.set(ContextSlot, this);\n\t}\n\n\t/**\n\t * Called before editing.\n\t * Clears all cursors so editing can proceed.\n\t */\n\tprivate prepareForEdit(): void {\n\t\tassert(this.disposed === false, 0x802 /* use after dispose */);\n\t\tfor (const target of this.withCursors) {\n\t\t\ttarget[prepareForEditSymbol]();\n\t\t}\n\t\tassert(this.withCursors.size === 0, 0x773 /* prepareForEdit should remove all cursors */);\n\t}\n\n\tpublic [disposeSymbol](): void {\n\t\tassert(this.disposed === false, 0x803 /* double dispose */);\n\t\tthis.disposed = true;\n\t\tthis.clear();\n\t\tfor (const unregister of this.eventUnregister) {\n\t\t\tunregister();\n\t\t}\n\t\tthis.eventUnregister.length = 0;\n\n\t\tconst deleted = this.checkout.forest.anchors.slots.delete(ContextSlot);\n\t\tassert(deleted, 0x8c4 /* unexpected dispose */);\n\t}\n\n\t/**\n\t * Release any cursors and anchors held by tree entities created in this context.\n\t * Ensures the cashed references to those entities on the Anchors are also cleared.\n\t * The tree entities are invalid to use after this, but the context may still be used\n\t * to create new trees starting from the root.\n\t */\n\tpublic clear(): void {\n\t\tfor (const target of this.withAnchors) {\n\t\t\ttarget[disposeSymbol]();\n\t\t}\n\t\tassert(this.withCursors.size === 0, 0x774 /* free should remove all cursors */);\n\t\tassert(this.withAnchors.size === 0, 0x775 /* free should remove all anchors */);\n\t}\n\n\tpublic get root(): FlexTreeField {\n\t\tassert(this.disposed === false, 0x804 /* use after dispose */);\n\t\tconst cursor = this.checkout.forest.allocateCursor(\"root\");\n\t\tmoveToDetachedField(this.checkout.forest, cursor);\n\t\tconst field = makeField(this, this.schema.rootFieldSchema, cursor);\n\t\tcursor.free();\n\t\treturn field;\n\t}\n\n\tpublic on<K extends keyof ForestEvents>(eventName: K, listener: ForestEvents[K]): () => void {\n\t\treturn this.checkout.forest.on(eventName, listener);\n\t}\n\n\t/**\n\t * FieldSource used to get a FieldGenerator to populate required fields during procedural contextual data generation.\n\t */\n\t// TODO: Use this to automatically provide node keys where required.\n\tpublic fieldSource?(key: FieldKey, schema: TreeFieldStoredSchema): undefined | FieldGenerator;\n}\n\n/**\n * A simple API for a Forest to interact with the tree.\n *\n * @param forest - the Forest\n * @param editor - an editor that makes changes to the forest.\n * @param nodeKeyManager - an object which handles node key generation and conversion.\n * @returns {@link FlexTreeContext} which is used to manage the cursors and anchors within the FlexTrees:\n * This is necessary for supporting using this tree across edits to the forest, and not leaking memory.\n */\nexport function getTreeContext(\n\tschema: FlexTreeSchema,\n\tcheckout: ITreeCheckout,\n\tnodeKeyManager: NodeKeyManager,\n): Context {\n\treturn new Context(schema, checkout, nodeKeyManager);\n}\n"]}
@@ -2,15 +2,15 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { AnchorNode, FieldKey, ITreeCursorSynchronous, TreeValue } from "../../core/index.js";
6
- import { Assume, InternalUtilTypes } from "../../util/index.js";
7
- import { FieldKinds, SequenceFieldEditBuilder } from "../default-schema/index.js";
8
- import { FlexFieldKind } from "../modular-schema/index.js";
9
- import { LocalNodeKey, StableNodeKey } from "../node-key/index.js";
10
- import { AllowedTypesToFlexInsertableTree, InsertableFlexField } from "../schema-aware/index.js";
11
- import { Any, FlexAllowedTypes, FlexFieldNodeSchema, FlexFieldSchema, FlexList, FlexMapNodeSchema, FlexObjectNodeFields, FlexObjectNodeSchema, FlexTreeNodeSchema, InternalFlexListTypes, LazyItem, LeafNodeSchema } from "../typed-schema/index.js";
12
- import { FlexTreeContext } from "./context.js";
13
- import { FlexTreeNodeEvents } from "./treeEvents.js";
5
+ import { type AnchorNode, type FieldKey, type ITreeCursorSynchronous, type TreeValue } from "../../core/index.js";
6
+ import type { Assume, InternalUtilTypes } from "../../util/index.js";
7
+ import type { FieldKinds, SequenceFieldEditBuilder } from "../default-schema/index.js";
8
+ import type { FlexFieldKind } from "../modular-schema/index.js";
9
+ import type { LocalNodeKey, StableNodeKey } from "../node-key/index.js";
10
+ import type { AllowedTypesToFlexInsertableTree, InsertableFlexField } from "../schema-aware/index.js";
11
+ import type { Any, FlexAllowedTypes, FlexFieldNodeSchema, FlexFieldSchema, FlexList, FlexMapNodeSchema, FlexObjectNodeFields, FlexObjectNodeSchema, FlexTreeNodeSchema, InternalFlexListTypes, LazyItem, LeafNodeSchema } from "../typed-schema/index.js";
12
+ import type { FlexTreeContext } from "./context.js";
13
+ import type { FlexTreeNodeEvents } from "./treeEvents.js";
14
14
  /**
15
15
  * An anchor slot which records the {@link FlexTreeNode} associated with that anchor, if there is one.
16
16
  * @remarks This always points to a "real" {@link FlexTreeNode} (i.e. a `LazyTreeNode`), never to a "raw" node.
@@ -1 +1 @@
1
- {"version":3,"file":"flexTreeTypes.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-tree/flexTreeTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flexTreeTypes.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/flex-tree/flexTreeTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EACX,gCAAgC,EAChC,mBAAmB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACX,GAAG,EACH,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,YAAY,wDAA6B,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAEhE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAE5D;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC7B,IAAI,IAAA;IACJ,KAAK,IAAA;CACL;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO;IACpD;;;OAGG;IACH,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAElC;;;;;OAKG;IACH,UAAU,IAAI,UAAU,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,oBAAY,UAAU;IACrB;;OAEG;IACH,UAAU,IAAI;IAEd;;OAEG;IACH,OAAO,IAAI;IAEX;;OAEG;IACH,OAAO,IAAI;IAEX;;OAEG;IACH,GAAG,IAAI;CACP;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACvE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC;IAEnD;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAE3B;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACpC,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAEtD;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjF;;OAEG;IACH,EAAE,CAAC,OAAO,SAAS,kBAAkB,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE5F,aAAa,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEjD;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,eAAe,CAAC;IACrE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAE/B;;OAEG;IACH,EAAE,CAAC,OAAO,SAAS,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE1F,aAAa,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAEhD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IAExC;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;CACjD;AAID;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,SAAS,iBAAiB,CAAE,SAAQ,YAAY;IAC9F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1B;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtD;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D;;;;;;;OAOG;IACH,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEnC;;;;;;;OAOG;IACH,MAAM,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5E;;;;;;;;;OASG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzF;;;;;;;OAOG;IACH,OAAO,CACN,UAAU,EAAE,CACX,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,EACtD,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,KACzB,IAAI,EAET,OAAO,CAAC,EAAE,GAAG,GACX,IAAI,CAAC;IAER;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAErE;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;;;OAMG;IACH,aAAa,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CACpC;QAAC,QAAQ;QAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;KAAC,CAC3D,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,SAAS,mBAAmB,CAC5E,SAAQ,YAAY;IACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,SAAS,cAAc,CAAE,SAAQ,YAAY;IAC5F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,uBAAuB,CAAC,OAAO,SAAS,oBAAoB,IACvE,oBAAoB,SAAS,OAAO,GACjC,kBAAkB,GAClB,kBAAkB,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,oBAAoB,IACxE,6BAA6B,CAC5B,iBAAiB,CAAC,WAAW,CAC5B;KAEE,GAAG,IAAI,MAAM,OAAO,IAAI,GAAG,SAAS,wBAAwB,CAAC,GAAG,GAAG,MAAM,CAAC,GACxE,GAAG,GACH,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;CACvB,GAAG;KACF,GAAG,IAAI,MAAM,OAAO,IAAI,GAAG,SAAS,wBAAwB,CAAC,GAAG,GAAG,MAAM,CAAC,GACxE,KAAK,GACL,wBAAwB,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CACxD,CACD,CACD,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,CAAC,OAAO,SAAS,oBAAoB,IAC7E,iBAAiB,CAAC,WAAW,CAC5B;IAEC,QAAQ,EAAE,GAAG,IAAI,MAAM,OAAO,IAAI,QAAQ,UAAU,CACnD,GAAG,GAAG,MAAM,CACZ,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,GAAG;IAIH,QAAQ,EAAE,GAAG,IAAI,MAAM,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,oBAAoB,GAChF,KAAK,GACL,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CACzC,GAAG;IAIH,CAAC,UAAU,GAAG,IAAI,MAAM,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,oBAAoB,GACjF,GAAG,GACH,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CAC3C,GAAG;IAEH,QAAQ,EAAE,GAAG,IAAI,MAAM,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,oBAAoB,GAChF,MAAM,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,GAChC,KAAK,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;CAChE,CACD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oCAAoC,+KAevC,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,2CAA2C,6CAK9C,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,oCAAoC,GAC/C,CAAC,OAAO,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,2CAA2C,GACtD,CAAC,OAAO,2CAA2C,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,MAAM,IACpD,CAAC,SAAS,oCAAoC,GAC3C,QAAQ,UAAU,CAAC,CAAC,CAAC,EAAE,GACvB,CAAC,SAAS,GAAG,2CAA2C,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,GAC/E,QAAQ,UAAU,CAAC,CAAC,CAAC,EAAE,GACvB,CAAC,CAAC;AAEN;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,UAAU,CAAC,QAAQ,GAAG,OAAO,UAAU,CAAC,QAAQ,CAAC;AAM3F;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,IAC7D,mBAAmB,CAAC,OAAO,CAAC,GAC5B,sBAAsB,CAAC;AAE1B;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,gBAAgB,IAC5D,gCAAgC,CAAC,MAAM,CAAC,GACxC,sBAAsB,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,gBAAgB,IAChE,QAAQ,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC,GAClD,sBAAsB,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,SAAS,gBAAgB,CAC5E,SAAQ,aAAa;IACrB;;;;;;;;;OASG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAE9D;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAEnE;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAErF;;;OAGG;IACH,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAE1F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,IAAI,wBAAwB,CAAC;IAa3C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAEtE;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAE5D;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAE1D;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvC;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAExF;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAEtF;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD;;;;;;OAMG;IACH,WAAW,CACV,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC7C,IAAI,CAAC;IAER;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/D;;;;;;;OAOG;IACH,gBAAgB,CACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC7C,IAAI,CAAC;IAER;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D;;;;;;;OAOG;IACH,cAAc,CACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC7C,IAAI,CAAC;IAER;;;;;;;OAOG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9E;;;;;;;;OAQG;IACH,gBAAgB,CACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAC7C,IAAI,CAAC;IAIR,aAAa,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;CACtE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,SAAS,gBAAgB,CAC5E,SAAQ,aAAa;IACrB,IAAI,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;IAElD,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACtD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,SAAS,gBAAgB,CAC5E,SAAQ,aAAa;IACrB,IAAI,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1D,IAAI,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE;IAEjE,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACvD;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IAC1D,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACtC;AAMD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,eAAe,IAAI,uBAAuB,CACxF,OAAO,CAAC,MAAM,CAAC,EACf,OAAO,CAAC,cAAc,CAAC,CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAClC,IAAI,SAAS,aAAa,EAC1B,KAAK,SAAS,gBAAgB,IAC3B,IAAI,SAAS,OAAO,UAAU,CAAC,QAAQ,GACxC,qBAAqB,CAAC,KAAK,CAAC,GAC5B,IAAI,SAAS,OAAO,UAAU,CAAC,QAAQ,GACvC,qBAAqB,CAAC,KAAK,CAAC,GAC5B,IAAI,SAAS,OAAO,UAAU,CAAC,QAAQ,GACvC,qBAAqB,CAAC,KAAK,CAAC,GAC5B,aAAa,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,IAC5D,CAAC,SAAS,QAAQ,CAAC,kBAAkB,CAAC,GACnC,iBAAiB,CAAC,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,GACvF,YAAY,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,kBAAkB,IAAI,OAAO,SAAS,cAAc,GAC/F,gBAAgB,CAAC,OAAO,CAAC,GACzB,OAAO,SAAS,iBAAiB,GACjC,eAAe,CAAC,OAAO,CAAC,GACxB,OAAO,SAAS,mBAAmB,GACnC,iBAAiB,CAAC,OAAO,CAAC,GAC1B,OAAO,SAAS,oBAAoB,GACpC,uBAAuB,CAAC,OAAO,CAAC,GAChC,YAAY,CAAC;AAMhB;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAC7B,OAAO,SAAS,eAAe,EAE/B,SAAS,SAAS,YAAY,GAAG,UAAU,GAAG,YAAY,IACvD,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAClC,IAAI,SAAS,aAAa,EAC1B,MAAM,SAAS,gBAAgB,EAC/B,SAAS,SAAS,YAAY,GAAG,UAAU,IACxC,IAAI,SAAS,OAAO,UAAU,CAAC,QAAQ,GACxC,qBAAqB,CAAC,MAAM,CAAC,GAC7B,IAAI,SAAS,OAAO,UAAU,CAAC,QAAQ,GACvC,sBAAsB,CAAC,MAAM,CAAC,GAC9B,IAAI,SAAS,OAAO,UAAU,CAAC,QAAQ,GACvC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,SAAS,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC,GAEnF,OAAO,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,gBAAgB,IAAI,MAAM,SAAS,SAAS;IAC7F,QAAQ,CAAC,MAAM,SAAS,CAAC;CACzB,GACE,SAAS,SAAS,kBAAkB,GACnC,iBAAiB,CAAC,SAAS,CAAC,GAC5B,SAAS,SAAS,GAAG,GACrB,YAAY,GAEZ,OAAO,GACR,OAAO,SAAS,YAAY,CAAC,MAAM,CAAC,GACpC,sBAAsB,GACtB,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAElC;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3E,IAAI,GACJ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GACrB,OAAO,GACP,KAAK,CAAC;AAET;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,kBAAkB,IAAI,OAAO,SAAS,cAAc,GAC/F,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAC1B,OAAO,SAAS,iBAAiB,GACjC,eAAe,CAAC,OAAO,CAAC,GACxB,OAAO,SAAS,mBAAmB,GACnC,iBAAiB,CAAC,OAAO,CAAC,GAC1B,OAAO,SAAS,oBAAoB,GACpC,uBAAuB,CAAC,OAAO,CAAC,GAChC,sBAAsB,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,YAAY,CAAC"}