@fluidframework/tree 2.3.0-288113 → 2.4.0-294316

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 (900) hide show
  1. package/.dependency-cruiser-known-violations.json +28 -40
  2. package/.vscode/Tree.code-workspace +0 -2
  3. package/CHANGELOG.md +92 -0
  4. package/README.md +6 -0
  5. package/alpha.d.ts +11 -0
  6. package/api-extractor/api-extractor-lint-alpha.cjs.json +5 -0
  7. package/api-extractor/api-extractor-lint-alpha.esm.json +5 -0
  8. package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
  9. package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
  10. package/api-extractor/api-extractor.current.json +8 -0
  11. package/api-extractor/api-extractor.legacy.json +4 -0
  12. package/api-extractor.json +1 -1
  13. package/api-report/tree.alpha.api.md +42 -54
  14. package/api-report/tree.beta.api.md +35 -16
  15. package/api-report/tree.legacy.alpha.api.md +571 -0
  16. package/api-report/tree.legacy.public.api.md +568 -0
  17. package/api-report/tree.public.api.md +22 -18
  18. package/dist/alpha.d.ts +103 -0
  19. package/dist/beta.d.ts +7 -2
  20. package/dist/core/index.d.ts +2 -2
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +4 -3
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/rebase/index.d.ts +1 -1
  25. package/dist/core/rebase/index.d.ts.map +1 -1
  26. package/dist/core/rebase/index.js +2 -1
  27. package/dist/core/rebase/index.js.map +1 -1
  28. package/dist/core/rebase/types.d.ts +1 -0
  29. package/dist/core/rebase/types.d.ts.map +1 -1
  30. package/dist/core/rebase/types.js +8 -1
  31. package/dist/core/rebase/types.js.map +1 -1
  32. package/dist/core/{revertible/revertible.d.ts → revertible.d.ts} +12 -0
  33. package/dist/core/revertible.d.ts.map +1 -0
  34. package/dist/core/revertible.js.map +1 -0
  35. package/dist/core/schema-stored/format.d.ts +3 -3
  36. package/dist/core/schema-stored/format.js +1 -1
  37. package/dist/core/schema-stored/format.js.map +1 -1
  38. package/dist/core/schema-stored/schema.d.ts +2 -7
  39. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  40. package/dist/core/schema-stored/schema.js +4 -6
  41. package/dist/core/schema-stored/schema.js.map +1 -1
  42. package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  43. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  44. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  45. package/dist/core/tree/anchorSet.js +6 -2
  46. package/dist/core/tree/anchorSet.js.map +1 -1
  47. package/dist/core/tree/detachedFieldIndex.d.ts +0 -1
  48. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  49. package/dist/core/tree/detachedFieldIndex.js +1 -0
  50. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  51. package/dist/core/tree/visitDelta.d.ts +7 -2
  52. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  53. package/dist/core/tree/visitDelta.js.map +1 -1
  54. package/dist/events/emitter.d.ts +127 -0
  55. package/dist/events/emitter.d.ts.map +1 -0
  56. package/dist/events/{events.js → emitter.js} +48 -30
  57. package/dist/events/emitter.js.map +1 -0
  58. package/dist/events/index.d.ts +2 -1
  59. package/dist/events/index.d.ts.map +1 -1
  60. package/dist/events/index.js +4 -5
  61. package/dist/events/index.js.map +1 -1
  62. package/dist/events/interop.d.ts +36 -0
  63. package/dist/events/interop.d.ts.map +1 -0
  64. package/dist/{core/revertible/index.d.ts → events/interop.js} +3 -2
  65. package/dist/events/interop.js.map +1 -0
  66. package/dist/events/listeners.d.ts +65 -0
  67. package/dist/events/listeners.d.ts.map +1 -0
  68. package/{lib/core/revertible/index.d.ts → dist/events/listeners.js} +3 -2
  69. package/dist/events/listeners.js.map +1 -0
  70. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +25 -7
  71. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  72. package/dist/feature-libraries/chunked-forest/chunkTree.js +36 -15
  73. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  74. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -2
  75. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  76. package/dist/feature-libraries/chunked-forest/chunkedForest.js +12 -5
  77. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  78. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +15 -2
  79. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  80. package/dist/feature-libraries/chunked-forest/uniformChunk.js +28 -2
  81. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  82. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -1
  83. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  84. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +5 -4
  85. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  86. package/dist/feature-libraries/flex-map-tree/index.d.ts +1 -1
  87. package/dist/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
  88. package/dist/feature-libraries/flex-map-tree/index.js +2 -1
  89. package/dist/feature-libraries/flex-map-tree/index.js.map +1 -1
  90. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +35 -33
  91. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  92. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +82 -103
  93. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  94. package/dist/feature-libraries/flex-tree/context.d.ts +30 -14
  95. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  96. package/dist/feature-libraries/flex-tree/context.js +10 -7
  97. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  98. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +57 -190
  99. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  100. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +15 -3
  101. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  102. package/dist/feature-libraries/flex-tree/index.d.ts +2 -3
  103. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  104. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  105. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +3 -3
  106. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  107. package/dist/feature-libraries/flex-tree/lazyEntity.js +2 -10
  108. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  109. package/dist/feature-libraries/flex-tree/lazyField.d.ts +26 -28
  110. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  111. package/dist/feature-libraries/flex-tree/lazyField.js +11 -14
  112. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  113. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +5 -26
  114. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  115. package/dist/feature-libraries/flex-tree/lazyNode.js +23 -74
  116. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  117. package/dist/feature-libraries/flex-tree/unboxed.d.ts +4 -16
  118. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  119. package/dist/feature-libraries/flex-tree/unboxed.js +7 -41
  120. package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
  121. package/dist/feature-libraries/flex-tree/utilities.d.ts +2 -2
  122. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  123. package/dist/feature-libraries/flex-tree/utilities.js +3 -6
  124. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  125. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  126. package/dist/feature-libraries/forest-summary/forestSummarizer.js +4 -1
  127. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  128. package/dist/feature-libraries/index.d.ts +3 -5
  129. package/dist/feature-libraries/index.d.ts.map +1 -1
  130. package/dist/feature-libraries/index.js +5 -11
  131. package/dist/feature-libraries/index.js.map +1 -1
  132. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  133. package/dist/feature-libraries/modular-schema/comparison.js +3 -6
  134. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  135. package/dist/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
  136. package/dist/feature-libraries/modular-schema/discrepancies.js +3 -13
  137. package/dist/feature-libraries/modular-schema/discrepancies.js.map +1 -1
  138. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +4 -1
  139. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  140. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +9 -1
  141. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  142. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +73 -22
  143. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  144. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +6 -6
  145. package/dist/feature-libraries/schema-index/format.d.ts +3 -3
  146. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  147. package/dist/feature-libraries/sequence-field/compose.js +3 -0
  148. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  149. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  150. package/dist/feature-libraries/sequence-field/utils.js +1 -4
  151. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  152. package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  153. package/dist/feature-libraries/storedToViewSchema.js +2 -4
  154. package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
  155. package/dist/feature-libraries/typed-schema/flexList.d.ts +3 -3
  156. package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
  157. package/dist/feature-libraries/typed-schema/index.d.ts +2 -2
  158. package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
  159. package/dist/feature-libraries/typed-schema/index.js +2 -2
  160. package/dist/feature-libraries/typed-schema/index.js.map +1 -1
  161. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  162. package/dist/feature-libraries/typed-schema/schemaCollection.js +8 -10
  163. package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  164. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +17 -48
  165. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  166. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +5 -37
  167. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  168. package/dist/feature-libraries/typed-schema/view.d.ts +4 -6
  169. package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
  170. package/dist/feature-libraries/typed-schema/view.js +5 -4
  171. package/dist/feature-libraries/typed-schema/view.js.map +1 -1
  172. package/dist/index.d.ts +4 -4
  173. package/dist/index.d.ts.map +1 -1
  174. package/dist/index.js +33 -36
  175. package/dist/index.js.map +1 -1
  176. package/dist/legacy.d.ts +84 -0
  177. package/dist/packageVersion.d.ts +1 -1
  178. package/dist/packageVersion.js +1 -1
  179. package/dist/packageVersion.js.map +1 -1
  180. package/dist/public.d.ts +1 -1
  181. package/dist/shared-tree/checkoutFlexTreeView.d.ts +53 -0
  182. package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
  183. package/dist/shared-tree/{treeView.js → checkoutFlexTreeView.js} +28 -6
  184. package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -0
  185. package/dist/shared-tree/index.d.ts +3 -3
  186. package/dist/shared-tree/index.d.ts.map +1 -1
  187. package/dist/shared-tree/index.js +2 -2
  188. package/dist/shared-tree/index.js.map +1 -1
  189. package/dist/shared-tree/schematizeTree.d.ts +15 -4
  190. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  191. package/dist/shared-tree/schematizeTree.js +7 -8
  192. package/dist/shared-tree/schematizeTree.js.map +1 -1
  193. package/dist/shared-tree/schematizingTreeView.d.ts +10 -4
  194. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  195. package/dist/shared-tree/schematizingTreeView.js +28 -12
  196. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  197. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  198. package/dist/shared-tree/sharedTree.js +2 -2
  199. package/dist/shared-tree/sharedTree.js.map +1 -1
  200. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +3 -1
  201. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  202. package/dist/shared-tree/sharedTreeChangeEnricher.js +6 -2
  203. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  204. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +3 -1
  205. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  206. package/dist/shared-tree/sharedTreeChangeFamily.js +3 -2
  207. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  208. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -1
  209. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  210. package/dist/shared-tree/sharedTreeEditBuilder.js +2 -2
  211. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  212. package/dist/shared-tree/treeApi.d.ts +1 -3
  213. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  214. package/dist/shared-tree/treeApi.js +6 -4
  215. package/dist/shared-tree/treeApi.js.map +1 -1
  216. package/dist/shared-tree/treeCheckout.d.ts +2 -13
  217. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  218. package/dist/shared-tree/treeCheckout.js +17 -1
  219. package/dist/shared-tree/treeCheckout.js.map +1 -1
  220. package/dist/shared-tree-core/branch.js +1 -1
  221. package/dist/shared-tree-core/branch.js.map +1 -1
  222. package/dist/simple-tree/api/create.d.ts.map +1 -1
  223. package/dist/simple-tree/api/create.js +1 -1
  224. package/dist/simple-tree/api/create.js.map +1 -1
  225. package/{lib/simple-tree → dist/simple-tree/api}/getJsonSchema.d.ts +1 -1
  226. package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -0
  227. package/dist/simple-tree/{getJsonSchema.js → api/getJsonSchema.js} +1 -1
  228. package/dist/simple-tree/api/getJsonSchema.js.map +1 -0
  229. package/{lib/simple-tree → dist/simple-tree/api}/getSimpleSchema.d.ts +1 -1
  230. package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -0
  231. package/dist/simple-tree/{getSimpleSchema.js → api/getSimpleSchema.js} +1 -1
  232. package/dist/simple-tree/api/getSimpleSchema.js.map +1 -0
  233. package/dist/simple-tree/api/index.d.ts +5 -0
  234. package/dist/simple-tree/api/index.d.ts.map +1 -1
  235. package/dist/simple-tree/api/index.js +7 -1
  236. package/dist/simple-tree/api/index.js.map +1 -1
  237. package/{lib/simple-tree → dist/simple-tree/api}/jsonSchema.d.ts +14 -15
  238. package/dist/simple-tree/api/jsonSchema.d.ts.map +1 -0
  239. package/dist/simple-tree/api/jsonSchema.js.map +1 -0
  240. package/dist/simple-tree/api/schemaFactory.d.ts +53 -16
  241. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  242. package/dist/simple-tree/api/schemaFactory.js +49 -12
  243. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  244. package/dist/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +8 -4
  245. package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -0
  246. package/dist/simple-tree/api/simpleSchema.js.map +1 -0
  247. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -0
  248. package/dist/simple-tree/{simpleSchemaToJsonSchema.js → api/simpleSchemaToJsonSchema.js} +34 -21
  249. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
  250. package/dist/simple-tree/api/tree.d.ts +5 -21
  251. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  252. package/dist/simple-tree/api/tree.js +3 -38
  253. package/dist/simple-tree/api/tree.js.map +1 -1
  254. package/dist/simple-tree/api/treeApiBeta.d.ts +79 -0
  255. package/dist/simple-tree/api/treeApiBeta.d.ts.map +1 -0
  256. package/dist/simple-tree/api/treeApiBeta.js +26 -0
  257. package/dist/simple-tree/api/treeApiBeta.js.map +1 -0
  258. package/dist/simple-tree/api/treeNodeApi.d.ts +1 -1
  259. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  260. package/dist/simple-tree/api/treeNodeApi.js +21 -19
  261. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  262. package/dist/simple-tree/api/verboseTree.js +2 -2
  263. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  264. package/dist/simple-tree/{viewSchemaToSimpleSchema.d.ts → api/viewSchemaToSimpleSchema.d.ts} +1 -1
  265. package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -0
  266. package/dist/simple-tree/{viewSchemaToSimpleSchema.js → api/viewSchemaToSimpleSchema.js} +8 -4
  267. package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -0
  268. package/dist/simple-tree/arrayNode.d.ts +2 -2
  269. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  270. package/dist/simple-tree/arrayNode.js +30 -21
  271. package/dist/simple-tree/arrayNode.js.map +1 -1
  272. package/dist/simple-tree/core/index.d.ts +3 -3
  273. package/dist/simple-tree/core/index.d.ts.map +1 -1
  274. package/dist/simple-tree/core/index.js +4 -1
  275. package/dist/simple-tree/core/index.js.map +1 -1
  276. package/dist/simple-tree/core/schemaCaching.d.ts +5 -0
  277. package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
  278. package/dist/simple-tree/core/schemaCaching.js +10 -1
  279. package/dist/simple-tree/core/schemaCaching.js.map +1 -1
  280. package/dist/simple-tree/core/treeNodeKernel.d.ts +61 -3
  281. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  282. package/dist/simple-tree/core/treeNodeKernel.js +166 -13
  283. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  284. package/dist/simple-tree/core/treeNodeSchema.d.ts +1 -1
  285. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  286. package/dist/simple-tree/core/types.d.ts +17 -20
  287. package/dist/simple-tree/core/types.d.ts.map +1 -1
  288. package/dist/simple-tree/core/types.js.map +1 -1
  289. package/dist/simple-tree/core/withType.d.ts +3 -2
  290. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  291. package/dist/simple-tree/core/withType.js.map +1 -1
  292. package/dist/simple-tree/index.d.ts +8 -10
  293. package/dist/simple-tree/index.d.ts.map +1 -1
  294. package/dist/simple-tree/index.js +15 -6
  295. package/dist/simple-tree/index.js.map +1 -1
  296. package/dist/simple-tree/leafNodeSchema.d.ts +7 -9
  297. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  298. package/dist/simple-tree/leafNodeSchema.js +13 -11
  299. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  300. package/dist/simple-tree/mapNode.d.ts +1 -1
  301. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  302. package/dist/simple-tree/mapNode.js +38 -29
  303. package/dist/simple-tree/mapNode.js.map +1 -1
  304. package/dist/simple-tree/objectNode.d.ts +9 -7
  305. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  306. package/dist/simple-tree/objectNode.js +37 -31
  307. package/dist/simple-tree/objectNode.js.map +1 -1
  308. package/dist/simple-tree/proxies.d.ts +1 -14
  309. package/dist/simple-tree/proxies.d.ts.map +1 -1
  310. package/dist/simple-tree/proxies.js +12 -15
  311. package/dist/simple-tree/proxies.js.map +1 -1
  312. package/dist/simple-tree/proxyBinding.d.ts +2 -62
  313. package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
  314. package/dist/simple-tree/proxyBinding.js +8 -181
  315. package/dist/simple-tree/proxyBinding.js.map +1 -1
  316. package/dist/simple-tree/schemaTypes.d.ts +51 -11
  317. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  318. package/dist/simple-tree/schemaTypes.js +14 -4
  319. package/dist/simple-tree/schemaTypes.js.map +1 -1
  320. package/dist/simple-tree/toFlexSchema.d.ts +11 -1
  321. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  322. package/dist/simple-tree/toFlexSchema.js +54 -31
  323. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  324. package/dist/simple-tree/toMapTree.d.ts +25 -37
  325. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  326. package/dist/simple-tree/toMapTree.js +53 -16
  327. package/dist/simple-tree/toMapTree.js.map +1 -1
  328. package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
  329. package/dist/simple-tree/treeNodeValid.js +7 -10
  330. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  331. package/dist/simple-tree/typesUnsafe.d.ts +13 -13
  332. package/dist/simple-tree/typesUnsafe.js.map +1 -1
  333. package/dist/simple-tree/walkSchema.d.ts +26 -0
  334. package/dist/simple-tree/walkSchema.d.ts.map +1 -0
  335. package/dist/simple-tree/walkSchema.js +49 -0
  336. package/dist/simple-tree/walkSchema.js.map +1 -0
  337. package/dist/treeFactory.d.ts +2 -1
  338. package/dist/treeFactory.d.ts.map +1 -1
  339. package/dist/treeFactory.js +2 -1
  340. package/dist/treeFactory.js.map +1 -1
  341. package/dist/util/typeUtils.d.ts +2 -2
  342. package/dist/util/typeUtils.js.map +1 -1
  343. package/legacy.d.ts +11 -0
  344. package/lib/alpha.d.ts +103 -0
  345. package/lib/beta.d.ts +7 -2
  346. package/lib/core/index.d.ts +2 -2
  347. package/lib/core/index.d.ts.map +1 -1
  348. package/lib/core/index.js +2 -2
  349. package/lib/core/index.js.map +1 -1
  350. package/lib/core/rebase/index.d.ts +1 -1
  351. package/lib/core/rebase/index.d.ts.map +1 -1
  352. package/lib/core/rebase/index.js +1 -1
  353. package/lib/core/rebase/index.js.map +1 -1
  354. package/lib/core/rebase/types.d.ts +1 -0
  355. package/lib/core/rebase/types.d.ts.map +1 -1
  356. package/lib/core/rebase/types.js +6 -0
  357. package/lib/core/rebase/types.js.map +1 -1
  358. package/lib/core/{revertible/revertible.d.ts → revertible.d.ts} +12 -0
  359. package/lib/core/revertible.d.ts.map +1 -0
  360. package/lib/core/revertible.js.map +1 -0
  361. package/lib/core/schema-stored/format.d.ts +3 -3
  362. package/lib/core/schema-stored/format.js +1 -1
  363. package/lib/core/schema-stored/format.js.map +1 -1
  364. package/lib/core/schema-stored/schema.d.ts +2 -7
  365. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  366. package/lib/core/schema-stored/schema.js +4 -6
  367. package/lib/core/schema-stored/schema.js.map +1 -1
  368. package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  369. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  370. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  371. package/lib/core/tree/anchorSet.js +6 -2
  372. package/lib/core/tree/anchorSet.js.map +1 -1
  373. package/lib/core/tree/detachedFieldIndex.d.ts +0 -1
  374. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  375. package/lib/core/tree/detachedFieldIndex.js +1 -0
  376. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  377. package/lib/core/tree/visitDelta.d.ts +7 -2
  378. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  379. package/lib/core/tree/visitDelta.js.map +1 -1
  380. package/lib/events/emitter.d.ts +127 -0
  381. package/lib/events/emitter.d.ts.map +1 -0
  382. package/lib/events/{events.js → emitter.js} +48 -29
  383. package/lib/events/emitter.js.map +1 -0
  384. package/lib/events/index.d.ts +2 -1
  385. package/lib/events/index.d.ts.map +1 -1
  386. package/lib/events/index.js +1 -1
  387. package/lib/events/index.js.map +1 -1
  388. package/lib/events/interop.d.ts +36 -0
  389. package/lib/events/interop.d.ts.map +1 -0
  390. package/{src/core/revertible/index.ts → lib/events/interop.js} +2 -2
  391. package/lib/events/interop.js.map +1 -0
  392. package/lib/events/listeners.d.ts +65 -0
  393. package/lib/events/listeners.d.ts.map +1 -0
  394. package/lib/{core/revertible/index.js → events/listeners.js} +2 -2
  395. package/lib/events/listeners.js.map +1 -0
  396. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +25 -7
  397. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  398. package/lib/feature-libraries/chunked-forest/chunkTree.js +37 -16
  399. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  400. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -2
  401. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  402. package/lib/feature-libraries/chunked-forest/chunkedForest.js +12 -5
  403. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  404. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +15 -2
  405. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  406. package/lib/feature-libraries/chunked-forest/uniformChunk.js +28 -2
  407. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  408. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -1
  409. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  410. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +5 -4
  411. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  412. package/lib/feature-libraries/flex-map-tree/index.d.ts +1 -1
  413. package/lib/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
  414. package/lib/feature-libraries/flex-map-tree/index.js +1 -1
  415. package/lib/feature-libraries/flex-map-tree/index.js.map +1 -1
  416. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +35 -33
  417. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  418. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +83 -104
  419. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  420. package/lib/feature-libraries/flex-tree/context.d.ts +30 -14
  421. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  422. package/lib/feature-libraries/flex-tree/context.js +10 -7
  423. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  424. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +57 -190
  425. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  426. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +15 -2
  427. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  428. package/lib/feature-libraries/flex-tree/index.d.ts +2 -3
  429. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  430. package/lib/feature-libraries/flex-tree/index.js +1 -1
  431. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  432. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +3 -3
  433. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  434. package/lib/feature-libraries/flex-tree/lazyEntity.js +2 -10
  435. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  436. package/lib/feature-libraries/flex-tree/lazyField.d.ts +26 -28
  437. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  438. package/lib/feature-libraries/flex-tree/lazyField.js +11 -13
  439. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  440. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +5 -26
  441. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  442. package/lib/feature-libraries/flex-tree/lazyNode.js +23 -72
  443. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  444. package/lib/feature-libraries/flex-tree/unboxed.d.ts +4 -16
  445. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  446. package/lib/feature-libraries/flex-tree/unboxed.js +5 -37
  447. package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
  448. package/lib/feature-libraries/flex-tree/utilities.d.ts +2 -2
  449. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  450. package/lib/feature-libraries/flex-tree/utilities.js +3 -6
  451. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  452. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  453. package/lib/feature-libraries/forest-summary/forestSummarizer.js +4 -1
  454. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  455. package/lib/feature-libraries/index.d.ts +3 -5
  456. package/lib/feature-libraries/index.d.ts.map +1 -1
  457. package/lib/feature-libraries/index.js +5 -5
  458. package/lib/feature-libraries/index.js.map +1 -1
  459. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  460. package/lib/feature-libraries/modular-schema/comparison.js +3 -6
  461. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  462. package/lib/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
  463. package/lib/feature-libraries/modular-schema/discrepancies.js +3 -13
  464. package/lib/feature-libraries/modular-schema/discrepancies.js.map +1 -1
  465. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +4 -1
  466. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  467. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +9 -1
  468. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  469. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +74 -23
  470. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  471. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +6 -6
  472. package/lib/feature-libraries/schema-index/format.d.ts +3 -3
  473. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  474. package/lib/feature-libraries/sequence-field/compose.js +3 -0
  475. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  476. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  477. package/lib/feature-libraries/sequence-field/utils.js +2 -5
  478. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  479. package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  480. package/lib/feature-libraries/storedToViewSchema.js +3 -5
  481. package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
  482. package/lib/feature-libraries/typed-schema/flexList.d.ts +3 -3
  483. package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
  484. package/lib/feature-libraries/typed-schema/index.d.ts +2 -2
  485. package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
  486. package/lib/feature-libraries/typed-schema/index.js +2 -2
  487. package/lib/feature-libraries/typed-schema/index.js.map +1 -1
  488. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  489. package/lib/feature-libraries/typed-schema/schemaCollection.js +9 -11
  490. package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  491. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +17 -48
  492. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  493. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +5 -36
  494. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  495. package/lib/feature-libraries/typed-schema/view.d.ts +4 -6
  496. package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
  497. package/lib/feature-libraries/typed-schema/view.js +5 -4
  498. package/lib/feature-libraries/typed-schema/view.js.map +1 -1
  499. package/lib/index.d.ts +4 -4
  500. package/lib/index.d.ts.map +1 -1
  501. package/lib/index.js +3 -5
  502. package/lib/index.js.map +1 -1
  503. package/lib/legacy.d.ts +84 -0
  504. package/lib/packageVersion.d.ts +1 -1
  505. package/lib/packageVersion.js +1 -1
  506. package/lib/packageVersion.js.map +1 -1
  507. package/lib/public.d.ts +1 -1
  508. package/lib/shared-tree/checkoutFlexTreeView.d.ts +53 -0
  509. package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
  510. package/lib/shared-tree/{treeView.js → checkoutFlexTreeView.js} +26 -5
  511. package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -0
  512. package/lib/shared-tree/index.d.ts +3 -3
  513. package/lib/shared-tree/index.d.ts.map +1 -1
  514. package/lib/shared-tree/index.js +1 -1
  515. package/lib/shared-tree/index.js.map +1 -1
  516. package/lib/shared-tree/schematizeTree.d.ts +15 -4
  517. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  518. package/lib/shared-tree/schematizeTree.js +8 -9
  519. package/lib/shared-tree/schematizeTree.js.map +1 -1
  520. package/lib/shared-tree/schematizingTreeView.d.ts +10 -4
  521. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  522. package/lib/shared-tree/schematizingTreeView.js +29 -13
  523. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  524. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  525. package/lib/shared-tree/sharedTree.js +2 -2
  526. package/lib/shared-tree/sharedTree.js.map +1 -1
  527. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +3 -1
  528. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  529. package/lib/shared-tree/sharedTreeChangeEnricher.js +6 -2
  530. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  531. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +3 -1
  532. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  533. package/lib/shared-tree/sharedTreeChangeFamily.js +3 -2
  534. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  535. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -1
  536. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  537. package/lib/shared-tree/sharedTreeEditBuilder.js +2 -2
  538. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  539. package/lib/shared-tree/treeApi.d.ts +1 -3
  540. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  541. package/lib/shared-tree/treeApi.js +7 -5
  542. package/lib/shared-tree/treeApi.js.map +1 -1
  543. package/lib/shared-tree/treeCheckout.d.ts +2 -13
  544. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  545. package/lib/shared-tree/treeCheckout.js +18 -2
  546. package/lib/shared-tree/treeCheckout.js.map +1 -1
  547. package/lib/shared-tree-core/branch.js +1 -1
  548. package/lib/shared-tree-core/branch.js.map +1 -1
  549. package/lib/simple-tree/api/create.d.ts.map +1 -1
  550. package/lib/simple-tree/api/create.js +2 -2
  551. package/lib/simple-tree/api/create.js.map +1 -1
  552. package/{dist/simple-tree → lib/simple-tree/api}/getJsonSchema.d.ts +1 -1
  553. package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -0
  554. package/lib/simple-tree/{getJsonSchema.js → api/getJsonSchema.js} +1 -1
  555. package/lib/simple-tree/api/getJsonSchema.js.map +1 -0
  556. package/{dist/simple-tree → lib/simple-tree/api}/getSimpleSchema.d.ts +1 -1
  557. package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -0
  558. package/lib/simple-tree/{getSimpleSchema.js → api/getSimpleSchema.js} +1 -1
  559. package/lib/simple-tree/api/getSimpleSchema.js.map +1 -0
  560. package/lib/simple-tree/api/index.d.ts +5 -0
  561. package/lib/simple-tree/api/index.d.ts.map +1 -1
  562. package/lib/simple-tree/api/index.js +3 -0
  563. package/lib/simple-tree/api/index.js.map +1 -1
  564. package/{dist/simple-tree → lib/simple-tree/api}/jsonSchema.d.ts +14 -15
  565. package/lib/simple-tree/api/jsonSchema.d.ts.map +1 -0
  566. package/lib/simple-tree/api/jsonSchema.js.map +1 -0
  567. package/lib/simple-tree/api/schemaFactory.d.ts +53 -16
  568. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  569. package/lib/simple-tree/api/schemaFactory.js +49 -12
  570. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  571. package/lib/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +8 -4
  572. package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -0
  573. package/lib/simple-tree/api/simpleSchema.js.map +1 -0
  574. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -0
  575. package/lib/simple-tree/{simpleSchemaToJsonSchema.js → api/simpleSchemaToJsonSchema.js} +35 -22
  576. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
  577. package/lib/simple-tree/api/tree.d.ts +5 -21
  578. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  579. package/lib/simple-tree/api/tree.js +2 -34
  580. package/lib/simple-tree/api/tree.js.map +1 -1
  581. package/lib/simple-tree/api/treeApiBeta.d.ts +79 -0
  582. package/lib/simple-tree/api/treeApiBeta.d.ts.map +1 -0
  583. package/lib/simple-tree/api/treeApiBeta.js +23 -0
  584. package/lib/simple-tree/api/treeApiBeta.js.map +1 -0
  585. package/lib/simple-tree/api/treeNodeApi.d.ts +1 -1
  586. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  587. package/lib/simple-tree/api/treeNodeApi.js +23 -21
  588. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  589. package/lib/simple-tree/api/verboseTree.js +1 -1
  590. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  591. package/lib/simple-tree/{viewSchemaToSimpleSchema.d.ts → api/viewSchemaToSimpleSchema.d.ts} +1 -1
  592. package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -0
  593. package/lib/simple-tree/{viewSchemaToSimpleSchema.js → api/viewSchemaToSimpleSchema.js} +8 -4
  594. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -0
  595. package/lib/simple-tree/arrayNode.d.ts +2 -2
  596. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  597. package/lib/simple-tree/arrayNode.js +33 -24
  598. package/lib/simple-tree/arrayNode.js.map +1 -1
  599. package/lib/simple-tree/core/index.d.ts +3 -3
  600. package/lib/simple-tree/core/index.d.ts.map +1 -1
  601. package/lib/simple-tree/core/index.js +2 -2
  602. package/lib/simple-tree/core/index.js.map +1 -1
  603. package/lib/simple-tree/core/schemaCaching.d.ts +5 -0
  604. package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
  605. package/lib/simple-tree/core/schemaCaching.js +8 -0
  606. package/lib/simple-tree/core/schemaCaching.js.map +1 -1
  607. package/lib/simple-tree/core/treeNodeKernel.d.ts +61 -3
  608. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  609. package/lib/simple-tree/core/treeNodeKernel.js +156 -5
  610. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  611. package/lib/simple-tree/core/treeNodeSchema.d.ts +1 -1
  612. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  613. package/lib/simple-tree/core/types.d.ts +17 -20
  614. package/lib/simple-tree/core/types.d.ts.map +1 -1
  615. package/lib/simple-tree/core/types.js.map +1 -1
  616. package/lib/simple-tree/core/withType.d.ts +3 -2
  617. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  618. package/lib/simple-tree/core/withType.js.map +1 -1
  619. package/lib/simple-tree/index.d.ts +8 -10
  620. package/lib/simple-tree/index.d.ts.map +1 -1
  621. package/lib/simple-tree/index.js +5 -5
  622. package/lib/simple-tree/index.js.map +1 -1
  623. package/lib/simple-tree/leafNodeSchema.d.ts +7 -9
  624. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  625. package/lib/simple-tree/leafNodeSchema.js +14 -12
  626. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  627. package/lib/simple-tree/mapNode.d.ts +1 -1
  628. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  629. package/lib/simple-tree/mapNode.js +38 -29
  630. package/lib/simple-tree/mapNode.js.map +1 -1
  631. package/lib/simple-tree/objectNode.d.ts +9 -7
  632. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  633. package/lib/simple-tree/objectNode.js +40 -34
  634. package/lib/simple-tree/objectNode.js.map +1 -1
  635. package/lib/simple-tree/proxies.d.ts +1 -14
  636. package/lib/simple-tree/proxies.d.ts.map +1 -1
  637. package/lib/simple-tree/proxies.js +11 -14
  638. package/lib/simple-tree/proxies.js.map +1 -1
  639. package/lib/simple-tree/proxyBinding.d.ts +2 -62
  640. package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
  641. package/lib/simple-tree/proxyBinding.js +6 -174
  642. package/lib/simple-tree/proxyBinding.js.map +1 -1
  643. package/lib/simple-tree/schemaTypes.d.ts +51 -11
  644. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  645. package/lib/simple-tree/schemaTypes.js +14 -4
  646. package/lib/simple-tree/schemaTypes.js.map +1 -1
  647. package/lib/simple-tree/toFlexSchema.d.ts +11 -1
  648. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  649. package/lib/simple-tree/toFlexSchema.js +29 -8
  650. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  651. package/lib/simple-tree/toMapTree.d.ts +25 -37
  652. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  653. package/lib/simple-tree/toMapTree.js +54 -17
  654. package/lib/simple-tree/toMapTree.js.map +1 -1
  655. package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
  656. package/lib/simple-tree/treeNodeValid.js +8 -11
  657. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  658. package/lib/simple-tree/typesUnsafe.d.ts +13 -13
  659. package/lib/simple-tree/typesUnsafe.js.map +1 -1
  660. package/lib/simple-tree/walkSchema.d.ts +26 -0
  661. package/lib/simple-tree/walkSchema.d.ts.map +1 -0
  662. package/lib/simple-tree/walkSchema.js +43 -0
  663. package/lib/simple-tree/walkSchema.js.map +1 -0
  664. package/lib/treeFactory.d.ts +2 -1
  665. package/lib/treeFactory.d.ts.map +1 -1
  666. package/lib/treeFactory.js +2 -1
  667. package/lib/treeFactory.js.map +1 -1
  668. package/lib/tsdoc-metadata.json +1 -1
  669. package/lib/util/typeUtils.d.ts +2 -2
  670. package/lib/util/typeUtils.js.map +1 -1
  671. package/package.json +68 -26
  672. package/src/core/index.ts +2 -1
  673. package/src/core/rebase/index.ts +1 -0
  674. package/src/core/rebase/types.ts +11 -0
  675. package/src/core/{revertible/revertible.ts → revertible.ts} +15 -0
  676. package/src/core/schema-stored/format.ts +1 -1
  677. package/src/core/schema-stored/schema.ts +7 -13
  678. package/src/core/tree/anchorSet.ts +18 -3
  679. package/src/core/tree/detachedFieldIndex.ts +6 -5
  680. package/src/core/tree/visitDelta.ts +7 -2
  681. package/src/events/{events.ts → emitter.ts} +52 -139
  682. package/src/events/index.ts +7 -7
  683. package/src/events/interop.ts +49 -0
  684. package/src/events/listeners.ts +68 -0
  685. package/src/feature-libraries/chunked-forest/chunkTree.ts +63 -18
  686. package/src/feature-libraries/chunked-forest/chunkedForest.ts +18 -4
  687. package/src/feature-libraries/chunked-forest/uniformChunk.ts +33 -0
  688. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +5 -3
  689. package/src/feature-libraries/flex-map-tree/index.ts +1 -0
  690. package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +135 -210
  691. package/src/feature-libraries/flex-tree/README.md +4 -75
  692. package/src/feature-libraries/flex-tree/context.ts +37 -16
  693. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +69 -291
  694. package/src/feature-libraries/flex-tree/index.ts +7 -13
  695. package/src/feature-libraries/flex-tree/lazyEntity.ts +2 -11
  696. package/src/feature-libraries/flex-tree/lazyField.ts +49 -73
  697. package/src/feature-libraries/flex-tree/lazyNode.ts +25 -154
  698. package/src/feature-libraries/flex-tree/unboxed.ts +9 -68
  699. package/src/feature-libraries/flex-tree/utilities.ts +4 -8
  700. package/src/feature-libraries/forest-summary/forestSummarizer.ts +4 -1
  701. package/src/feature-libraries/index.ts +2 -27
  702. package/src/feature-libraries/modular-schema/comparison.ts +4 -6
  703. package/src/feature-libraries/modular-schema/discrepancies.ts +7 -16
  704. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +4 -1
  705. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +111 -14
  706. package/src/feature-libraries/sequence-field/compose.ts +3 -0
  707. package/src/feature-libraries/sequence-field/utils.ts +2 -4
  708. package/src/feature-libraries/storedToViewSchema.ts +5 -6
  709. package/src/feature-libraries/typed-schema/flexList.ts +3 -3
  710. package/src/feature-libraries/typed-schema/index.ts +1 -3
  711. package/src/feature-libraries/typed-schema/schemaCollection.ts +15 -17
  712. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +35 -127
  713. package/src/feature-libraries/typed-schema/view.ts +4 -13
  714. package/src/index.ts +5 -8
  715. package/src/packageVersion.ts +1 -1
  716. package/src/shared-tree/checkoutFlexTreeView.ts +89 -0
  717. package/src/shared-tree/index.ts +2 -7
  718. package/src/shared-tree/schematizeTree.ts +23 -12
  719. package/src/shared-tree/schematizingTreeView.ts +38 -24
  720. package/src/shared-tree/sharedTree.ts +6 -1
  721. package/src/shared-tree/sharedTreeChangeEnricher.ts +6 -1
  722. package/src/shared-tree/sharedTreeChangeFamily.ts +7 -1
  723. package/src/shared-tree/sharedTreeEditBuilder.ts +9 -4
  724. package/src/shared-tree/treeApi.ts +10 -10
  725. package/src/shared-tree/treeCheckout.ts +26 -15
  726. package/src/shared-tree-core/branch.ts +1 -1
  727. package/src/simple-tree/ProxyBinding.md +23 -23
  728. package/src/simple-tree/api/create.ts +8 -3
  729. package/src/simple-tree/{getJsonSchema.ts → api/getJsonSchema.ts} +3 -3
  730. package/src/simple-tree/{getSimpleSchema.ts → api/getSimpleSchema.ts} +3 -3
  731. package/src/simple-tree/api/index.ts +20 -0
  732. package/src/simple-tree/{jsonSchema.ts → api/jsonSchema.ts} +20 -18
  733. package/src/simple-tree/api/schemaFactory.ts +56 -19
  734. package/src/simple-tree/{simpleSchema.ts → api/simpleSchema.ts} +9 -4
  735. package/src/simple-tree/{simpleSchemaToJsonSchema.ts → api/simpleSchemaToJsonSchema.ts} +43 -22
  736. package/src/simple-tree/api/tree.ts +7 -71
  737. package/src/simple-tree/api/treeApiBeta.ts +101 -0
  738. package/src/simple-tree/api/treeNodeApi.ts +32 -23
  739. package/src/simple-tree/api/verboseTree.ts +1 -1
  740. package/src/simple-tree/{viewSchemaToSimpleSchema.ts → api/viewSchemaToSimpleSchema.ts} +11 -6
  741. package/src/simple-tree/arrayNode.ts +37 -31
  742. package/src/simple-tree/core/index.ts +4 -1
  743. package/src/simple-tree/core/schemaCaching.ts +10 -0
  744. package/src/simple-tree/core/treeNodeKernel.ts +198 -5
  745. package/src/simple-tree/core/treeNodeSchema.ts +1 -1
  746. package/src/simple-tree/core/types.ts +16 -27
  747. package/src/simple-tree/core/withType.ts +3 -1
  748. package/src/simple-tree/index.ts +30 -21
  749. package/src/simple-tree/leafNodeSchema.ts +24 -28
  750. package/src/simple-tree/mapNode.ts +47 -29
  751. package/src/simple-tree/objectNode.ts +51 -46
  752. package/src/simple-tree/proxies.ts +22 -51
  753. package/src/simple-tree/proxyBinding.ts +3 -254
  754. package/src/simple-tree/schemaTypes.ts +63 -13
  755. package/src/simple-tree/toFlexSchema.ts +40 -7
  756. package/src/simple-tree/toMapTree.ts +113 -79
  757. package/src/simple-tree/treeNodeValid.ts +10 -13
  758. package/src/simple-tree/typesUnsafe.ts +13 -13
  759. package/src/simple-tree/walkSchema.ts +81 -0
  760. package/src/treeFactory.ts +2 -1
  761. package/src/util/typeUtils.ts +2 -2
  762. package/dist/core/revertible/index.d.ts.map +0 -1
  763. package/dist/core/revertible/index.js +0 -10
  764. package/dist/core/revertible/index.js.map +0 -1
  765. package/dist/core/revertible/revertible.d.ts.map +0 -1
  766. package/dist/core/revertible/revertible.js.map +0 -1
  767. package/dist/domains/index.d.ts +0 -8
  768. package/dist/domains/index.d.ts.map +0 -1
  769. package/dist/domains/index.js +0 -20
  770. package/dist/domains/index.js.map +0 -1
  771. package/dist/domains/json/index.d.ts +0 -7
  772. package/dist/domains/json/index.d.ts.map +0 -1
  773. package/dist/domains/json/index.js +0 -17
  774. package/dist/domains/json/index.js.map +0 -1
  775. package/dist/domains/json/jsonCursor.d.ts +0 -52
  776. package/dist/domains/json/jsonCursor.d.ts.map +0 -1
  777. package/dist/domains/json/jsonCursor.js +0 -197
  778. package/dist/domains/json/jsonCursor.js.map +0 -1
  779. package/dist/domains/json/jsonDomainSchema.d.ts +0 -24
  780. package/dist/domains/json/jsonDomainSchema.d.ts.map +0 -1
  781. package/dist/domains/json/jsonDomainSchema.js +0 -32
  782. package/dist/domains/json/jsonDomainSchema.js.map +0 -1
  783. package/dist/domains/leafDomain.d.ts +0 -72
  784. package/dist/domains/leafDomain.d.ts.map +0 -1
  785. package/dist/domains/leafDomain.js +0 -88
  786. package/dist/domains/leafDomain.js.map +0 -1
  787. package/dist/domains/schemaBuilder.d.ts +0 -103
  788. package/dist/domains/schemaBuilder.d.ts.map +0 -1
  789. package/dist/domains/schemaBuilder.js +0 -121
  790. package/dist/domains/schemaBuilder.js.map +0 -1
  791. package/dist/domains/testRecursiveDomain.d.ts +0 -17
  792. package/dist/domains/testRecursiveDomain.d.ts.map +0 -1
  793. package/dist/domains/testRecursiveDomain.js +0 -35
  794. package/dist/domains/testRecursiveDomain.js.map +0 -1
  795. package/dist/events/events.d.ts +0 -207
  796. package/dist/events/events.d.ts.map +0 -1
  797. package/dist/events/events.js.map +0 -1
  798. package/dist/feature-libraries/schemaBuilder.d.ts +0 -31
  799. package/dist/feature-libraries/schemaBuilder.d.ts.map +0 -1
  800. package/dist/feature-libraries/schemaBuilder.js +0 -40
  801. package/dist/feature-libraries/schemaBuilder.js.map +0 -1
  802. package/dist/feature-libraries/schemaBuilderBase.d.ts +0 -191
  803. package/dist/feature-libraries/schemaBuilderBase.d.ts.map +0 -1
  804. package/dist/feature-libraries/schemaBuilderBase.js +0 -201
  805. package/dist/feature-libraries/schemaBuilderBase.js.map +0 -1
  806. package/dist/shared-tree/treeView.d.ts +0 -73
  807. package/dist/shared-tree/treeView.d.ts.map +0 -1
  808. package/dist/shared-tree/treeView.js.map +0 -1
  809. package/dist/simple-tree/getJsonSchema.d.ts.map +0 -1
  810. package/dist/simple-tree/getJsonSchema.js.map +0 -1
  811. package/dist/simple-tree/getSimpleSchema.d.ts.map +0 -1
  812. package/dist/simple-tree/getSimpleSchema.js.map +0 -1
  813. package/dist/simple-tree/jsonSchema.d.ts.map +0 -1
  814. package/dist/simple-tree/jsonSchema.js.map +0 -1
  815. package/dist/simple-tree/simpleSchema.d.ts.map +0 -1
  816. package/dist/simple-tree/simpleSchema.js.map +0 -1
  817. package/dist/simple-tree/simpleSchemaToJsonSchema.d.ts.map +0 -1
  818. package/dist/simple-tree/simpleSchemaToJsonSchema.js.map +0 -1
  819. package/dist/simple-tree/viewSchemaToSimpleSchema.d.ts.map +0 -1
  820. package/dist/simple-tree/viewSchemaToSimpleSchema.js.map +0 -1
  821. package/lib/core/revertible/index.d.ts.map +0 -1
  822. package/lib/core/revertible/index.js.map +0 -1
  823. package/lib/core/revertible/revertible.d.ts.map +0 -1
  824. package/lib/core/revertible/revertible.js.map +0 -1
  825. package/lib/domains/index.d.ts +0 -8
  826. package/lib/domains/index.d.ts.map +0 -1
  827. package/lib/domains/index.js +0 -8
  828. package/lib/domains/index.js.map +0 -1
  829. package/lib/domains/json/index.d.ts +0 -7
  830. package/lib/domains/json/index.d.ts.map +0 -1
  831. package/lib/domains/json/index.js +0 -7
  832. package/lib/domains/json/index.js.map +0 -1
  833. package/lib/domains/json/jsonCursor.d.ts +0 -52
  834. package/lib/domains/json/jsonCursor.d.ts.map +0 -1
  835. package/lib/domains/json/jsonCursor.js +0 -192
  836. package/lib/domains/json/jsonCursor.js.map +0 -1
  837. package/lib/domains/json/jsonDomainSchema.d.ts +0 -24
  838. package/lib/domains/json/jsonDomainSchema.d.ts.map +0 -1
  839. package/lib/domains/json/jsonDomainSchema.js +0 -29
  840. package/lib/domains/json/jsonDomainSchema.js.map +0 -1
  841. package/lib/domains/leafDomain.d.ts +0 -72
  842. package/lib/domains/leafDomain.d.ts.map +0 -1
  843. package/lib/domains/leafDomain.js +0 -85
  844. package/lib/domains/leafDomain.js.map +0 -1
  845. package/lib/domains/schemaBuilder.d.ts +0 -103
  846. package/lib/domains/schemaBuilder.d.ts.map +0 -1
  847. package/lib/domains/schemaBuilder.js +0 -117
  848. package/lib/domains/schemaBuilder.js.map +0 -1
  849. package/lib/domains/testRecursiveDomain.d.ts +0 -17
  850. package/lib/domains/testRecursiveDomain.d.ts.map +0 -1
  851. package/lib/domains/testRecursiveDomain.js +0 -32
  852. package/lib/domains/testRecursiveDomain.js.map +0 -1
  853. package/lib/events/events.d.ts +0 -207
  854. package/lib/events/events.d.ts.map +0 -1
  855. package/lib/events/events.js.map +0 -1
  856. package/lib/feature-libraries/schemaBuilder.d.ts +0 -31
  857. package/lib/feature-libraries/schemaBuilder.d.ts.map +0 -1
  858. package/lib/feature-libraries/schemaBuilder.js +0 -36
  859. package/lib/feature-libraries/schemaBuilder.js.map +0 -1
  860. package/lib/feature-libraries/schemaBuilderBase.d.ts +0 -191
  861. package/lib/feature-libraries/schemaBuilderBase.d.ts.map +0 -1
  862. package/lib/feature-libraries/schemaBuilderBase.js +0 -195
  863. package/lib/feature-libraries/schemaBuilderBase.js.map +0 -1
  864. package/lib/shared-tree/treeView.d.ts +0 -73
  865. package/lib/shared-tree/treeView.d.ts.map +0 -1
  866. package/lib/shared-tree/treeView.js.map +0 -1
  867. package/lib/simple-tree/getJsonSchema.d.ts.map +0 -1
  868. package/lib/simple-tree/getJsonSchema.js.map +0 -1
  869. package/lib/simple-tree/getSimpleSchema.d.ts.map +0 -1
  870. package/lib/simple-tree/getSimpleSchema.js.map +0 -1
  871. package/lib/simple-tree/jsonSchema.d.ts.map +0 -1
  872. package/lib/simple-tree/jsonSchema.js.map +0 -1
  873. package/lib/simple-tree/simpleSchema.d.ts.map +0 -1
  874. package/lib/simple-tree/simpleSchema.js.map +0 -1
  875. package/lib/simple-tree/simpleSchemaToJsonSchema.d.ts.map +0 -1
  876. package/lib/simple-tree/simpleSchemaToJsonSchema.js.map +0 -1
  877. package/lib/simple-tree/viewSchemaToSimpleSchema.d.ts.map +0 -1
  878. package/lib/simple-tree/viewSchemaToSimpleSchema.js.map +0 -1
  879. package/src/domains/README.md +0 -6
  880. package/src/domains/fence.json +0 -5
  881. package/src/domains/index.ts +0 -19
  882. package/src/domains/json/fence.json +0 -5
  883. package/src/domains/json/index.ts +0 -13
  884. package/src/domains/json/jsonCursor.ts +0 -247
  885. package/src/domains/json/jsonDomainSchema.ts +0 -47
  886. package/src/domains/leafDomain.ts +0 -97
  887. package/src/domains/schemaBuilder.ts +0 -153
  888. package/src/domains/testRecursiveDomain.ts +0 -38
  889. package/src/events/fence.json +0 -5
  890. package/src/feature-libraries/schemaBuilder.ts +0 -45
  891. package/src/feature-libraries/schemaBuilderBase.ts +0 -393
  892. package/src/shared-tree/treeView.ts +0 -113
  893. /package/dist/core/{revertible/revertible.js → revertible.js} +0 -0
  894. /package/dist/simple-tree/{jsonSchema.js → api/jsonSchema.js} +0 -0
  895. /package/dist/simple-tree/{simpleSchema.js → api/simpleSchema.js} +0 -0
  896. /package/dist/simple-tree/{simpleSchemaToJsonSchema.d.ts → api/simpleSchemaToJsonSchema.d.ts} +0 -0
  897. /package/lib/core/{revertible/revertible.js → revertible.js} +0 -0
  898. /package/lib/simple-tree/{jsonSchema.js → api/jsonSchema.js} +0 -0
  899. /package/lib/simple-tree/{simpleSchema.js → api/simpleSchema.js} +0 -0
  900. /package/lib/simple-tree/{simpleSchemaToJsonSchema.d.ts → api/simpleSchemaToJsonSchema.d.ts} +0 -0
@@ -138,7 +138,10 @@ export class ForestSummarizer implements Summarizable {
138
138
  const fieldChanges: [FieldKey, DeltaFieldChanges][] = [];
139
139
  const build: DeltaDetachedNodeBuild[] = [];
140
140
  for (const [fieldKey, field] of fields) {
141
- const chunked = chunkField(field, defaultChunkPolicy);
141
+ const chunked = chunkField(field, {
142
+ policy: defaultChunkPolicy,
143
+ idCompressor: this.idCompressor,
144
+ });
142
145
  const nodeCursors = chunked.flatMap((chunk) =>
143
146
  mapCursorField(chunk.cursor(), (cursor) => cursor.fork()),
144
147
  );
@@ -120,7 +120,6 @@ export {
120
120
  type FlexAllowedTypes,
121
121
  FlexFieldSchema,
122
122
  type FlexTreeSchema,
123
- Any,
124
123
  type SchemaLibraryData,
125
124
  type LazyTreeNodeSchema,
126
125
  ViewSchema,
@@ -141,8 +140,6 @@ export {
141
140
  type FlexListToUnion,
142
141
  type ExtractItemType,
143
142
  isLazy,
144
- type NormalizeObjectNodeFields,
145
- type NormalizeField as NormalizeFieldSchema,
146
143
  type FlexObjectNodeFields,
147
144
  intoStoredSchema,
148
145
  intoStoredSchemaCollection,
@@ -150,19 +147,6 @@ export {
150
147
  type FlexList,
151
148
  } from "./typed-schema/index.js";
152
149
 
153
- export {
154
- SchemaBuilderBase,
155
- type SchemaLibrary,
156
- type FlexImplicitFieldSchema,
157
- type NormalizeField,
158
- type FlexImplicitAllowedTypes,
159
- type NormalizeAllowedTypes,
160
- type SchemaBuilderOptions,
161
- normalizeAllowedTypes,
162
- normalizeField,
163
- } from "./schemaBuilderBase.js";
164
- export { SchemaBuilderInternal } from "./schemaBuilder.js";
165
-
166
150
  export { mapRootChanges } from "./deltaUtils.js";
167
151
 
168
152
  export {
@@ -214,25 +198,17 @@ export {
214
198
  } from "./default-schema/index.js";
215
199
 
216
200
  export {
217
- type AssignableFieldKinds,
218
- type FlexibleFieldContent,
219
- type FlexibleNodeContent,
220
- type FlexTreeLeafNode,
221
- type FlexTreeMapNode,
222
201
  type FlexTreeOptionalField,
223
202
  type FlexTreeRequiredField,
224
203
  type FlexTreeSequenceField,
225
204
  Skip,
226
- type FlexTreeObjectNode,
227
205
  type FlexTreeContext,
206
+ type FlexTreeHydratedContext,
228
207
  type FlexTreeTypedField,
229
- type FlexTreeTypedNode,
230
- type FlexTreeTypedNodeUnion,
231
208
  type FlexTreeEntity,
232
209
  type FlexTreeField,
233
210
  type FlexTreeNode,
234
211
  getTreeContext,
235
- type CheckTypesOverlap,
236
212
  TreeStatus,
237
213
  Context,
238
214
  type FlexTreeNodeEvents,
@@ -240,9 +216,7 @@ export {
240
216
  isFlexTreeNode,
241
217
  ContextSlot,
242
218
  // Internal
243
- type FlexTreeUnboxField,
244
219
  flexTreeMarker,
245
- FlexTreeEntityKind,
246
220
  assertFlexTreeEntityNotFreed,
247
221
  flexTreeSlot,
248
222
  getSchemaAndPolicy,
@@ -274,4 +248,5 @@ export {
274
248
  isMapTreeSequenceField,
275
249
  getOrCreateMapTreeNode,
276
250
  tryGetMapTreeNode,
251
+ UnhydratedContext,
277
252
  } from "./flex-map-tree/index.js";
@@ -22,6 +22,10 @@ import type { FullSchemaPolicy } from "./fieldKind.js";
22
22
  import { withEditor } from "./fieldKindWithEditor.js";
23
23
  import { isNeverTree } from "./isNeverTree.js";
24
24
 
25
+ // TODO:
26
+ // The comparisons in this file seem redundant with those in discrepancies.ts.
27
+ // Rather than both existing, one of which just returns boolean and the other which returns additional details, a simple comparison which returns everything needed should be used.
28
+
25
29
  /**
26
30
  * @returns true iff `superset` is a superset of `original`.
27
31
  *
@@ -153,12 +157,6 @@ export function allowsTreeSchemaIdentifierSuperset(
153
157
  original: TreeTypeSet,
154
158
  superset: TreeTypeSet,
155
159
  ): boolean {
156
- if (superset === undefined) {
157
- return true;
158
- }
159
- if (original === undefined) {
160
- return false;
161
- }
162
160
  for (const originalType of original) {
163
161
  if (!superset.has(originalType)) {
164
162
  return false;
@@ -18,6 +18,10 @@ import {
18
18
  type ValueSchema,
19
19
  } from "../../core/index.js";
20
20
 
21
+ // TODO:
22
+ // The comparisons in this file seem redundant with those in comparison.ts.
23
+ // Rather than both existing, one of which just returns boolean and the other which returns additional details, a simple comparison which returns everything needed should be used.
24
+
21
25
  /**
22
26
  * @remarks
23
27
  *
@@ -298,22 +302,9 @@ function trackFieldDiscrepancies(
298
302
  a: TreeTypeSet,
299
303
  b: TreeTypeSet,
300
304
  ): [TreeNodeSchemaIdentifier[], TreeNodeSchemaIdentifier[]] => {
301
- if (a === undefined && b === undefined) {
302
- return [[], []];
303
- }
304
-
305
- if (a !== undefined && b !== undefined) {
306
- const aDiff = [...a].filter((value) => !b.has(value));
307
- const bDiff = [...b].filter((value) => !a.has(value));
308
- return [aDiff, bDiff];
309
- }
310
-
311
- if (a !== undefined) {
312
- return [[...a], []];
313
- }
314
-
315
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
316
- return [[], [...b!]];
305
+ const aDiff = [...a].filter((value) => !b.has(value));
306
+ const bDiff = [...b].filter((value) => !a.has(value));
307
+ return [aDiff, bDiff];
317
308
  };
318
309
 
319
310
  const allowedTypesDiscrepancies = findSetDiscrepancies(view.types, stored.types);
@@ -382,7 +382,10 @@ function makeModularChangeCodec(
382
382
  });
383
383
  const getChunk = (index: number): TreeChunk => {
384
384
  assert(index < chunks.length, 0x898 /* out of bounds index for build chunk */);
385
- return chunkFieldSingle(chunks[index] ?? oob(), defaultChunkPolicy);
385
+ return chunkFieldSingle(chunks[index] ?? oob(), {
386
+ policy: defaultChunkPolicy,
387
+ idCompressor: context.idCompressor,
388
+ });
386
389
  };
387
390
 
388
391
  const map: ModularChangeset["builds"] = newTupleBTree();
@@ -38,6 +38,7 @@ import {
38
38
  revisionMetadataSourceFromInfo,
39
39
  areEqualChangeAtomIds,
40
40
  type ChangeAtomId,
41
+ areEqualChangeAtomIdOpts,
41
42
  } from "../../core/index.js";
42
43
  import {
43
44
  type IdAllocationState,
@@ -87,6 +88,7 @@ import type {
87
88
  NodeId,
88
89
  TupleBTree,
89
90
  } from "./modularChangeTypes.js";
91
+ import type { IIdCompressor } from "@fluidframework/id-compressor";
90
92
 
91
93
  /**
92
94
  * Implementation of ChangeFamily which delegates work in a given field to the appropriate FieldKind
@@ -262,8 +264,6 @@ export class ModularChangeFamily
262
264
  const genId: IdAllocator = idAllocatorFromState(idState);
263
265
  const revisionMetadata: RevisionMetadataSource = revisionMetadataSourceFromInfo(revInfos);
264
266
 
265
- const crossFieldTable = newComposeTable(change1, change2);
266
-
267
267
  // We merge nodeChanges, nodeToParent, and nodeAliases from the two changesets.
268
268
  // The merged tables will have correct entries for all nodes which are only referenced in one of the input changesets.
269
269
  // During composeFieldMaps and composeInvalidatedElements we will find all nodes referenced in both input changesets
@@ -283,9 +283,12 @@ export class ModularChangeFamily
283
283
  mergeBTrees(change1.nodeAliases, change2.nodeAliases),
284
284
  );
285
285
 
286
+ const crossFieldTable = newComposeTable(change1, change2, composedNodeToParent);
287
+
286
288
  const composedFields = this.composeFieldMaps(
287
289
  change1.fieldChanges,
288
290
  change2.fieldChanges,
291
+ undefined,
289
292
  genId,
290
293
  crossFieldTable,
291
294
  revisionMetadata,
@@ -320,7 +323,7 @@ export class ModularChangeFamily
320
323
  ): void {
321
324
  const context = crossFieldTable.fieldToContext.get(fieldChange);
322
325
  assert(context !== undefined, 0x8cc /* Should have context for every invalidated field */);
323
- const { change1: fieldChange1, change2: fieldChange2, composedChange } = context;
326
+ const { fieldId, change1: fieldChange1, change2: fieldChange2, composedChange } = context;
324
327
 
325
328
  const rebaser = getChangeHandler(this.fieldKinds, composedChange.fieldKind).rebaser;
326
329
  const composeNodes = (child1: NodeId | undefined, child2: NodeId | undefined): NodeId => {
@@ -341,7 +344,7 @@ export class ModularChangeFamily
341
344
  fieldChange2,
342
345
  composeNodes,
343
346
  genId,
344
- new ComposeManager(crossFieldTable, fieldChange, false),
347
+ new ComposeManager(crossFieldTable, fieldChange, fieldId, false),
345
348
  revisionMetadata,
346
349
  );
347
350
  composedChange.change = brand(amendedChange);
@@ -469,7 +472,14 @@ export class ModularChangeFamily
469
472
  ? [fieldChange, emptyChange]
470
473
  : [emptyChange, fieldChange];
471
474
 
472
- const composedField = this.composeFieldChanges(change1, change2, genId, table, metadata);
475
+ const composedField = this.composeFieldChanges(
476
+ fieldId,
477
+ change1,
478
+ change2,
479
+ genId,
480
+ table,
481
+ metadata,
482
+ );
473
483
 
474
484
  if (fieldId.nodeId === undefined) {
475
485
  composedFields.set(fieldId.field, composedField);
@@ -498,6 +508,7 @@ export class ModularChangeFamily
498
508
  private composeFieldMaps(
499
509
  change1: FieldChangeMap | undefined,
500
510
  change2: FieldChangeMap | undefined,
511
+ parentId: NodeId | undefined,
501
512
  genId: IdAllocator,
502
513
  crossFieldTable: ComposeTable,
503
514
  revisionMetadata: RevisionMetadataSource,
@@ -508,10 +519,12 @@ export class ModularChangeFamily
508
519
  }
509
520
 
510
521
  for (const [field, fieldChange1] of change1) {
522
+ const fieldId: FieldId = { nodeId: parentId, field };
511
523
  const fieldChange2 = change2.get(field);
512
524
  const composedField =
513
525
  fieldChange2 !== undefined
514
526
  ? this.composeFieldChanges(
527
+ fieldId,
515
528
  fieldChange1,
516
529
  fieldChange2,
517
530
  genId,
@@ -544,6 +557,7 @@ export class ModularChangeFamily
544
557
  * Any composed `FieldChange` which is invalidated by new cross-field information will be added to `crossFieldTable.invalidatedFields`.
545
558
  */
546
559
  private composeFieldChanges(
560
+ fieldId: FieldId,
547
561
  change1: FieldChange,
548
562
  change2: FieldChange,
549
563
  idAllocator: IdAllocator,
@@ -557,7 +571,7 @@ export class ModularChangeFamily
557
571
  change2: change2Normalized,
558
572
  } = this.normalizeFieldChanges(change1, change2, idAllocator, revisionMetadata);
559
573
 
560
- const manager = new ComposeManager(crossFieldTable, change1);
574
+ const manager = new ComposeManager(crossFieldTable, change1, fieldId);
561
575
 
562
576
  const composedChange = changeHandler.rebaser.compose(
563
577
  change1Normalized,
@@ -580,6 +594,7 @@ export class ModularChangeFamily
580
594
  };
581
595
 
582
596
  crossFieldTable.fieldToContext.set(change1, {
597
+ fieldId,
583
598
  change1: change1Normalized,
584
599
  change2: change2Normalized,
585
600
  composedChange: composedField,
@@ -604,6 +619,7 @@ export class ModularChangeFamily
604
619
  const nodeChangeset1 = nodeChangeFromId(nodeChanges1, id1);
605
620
  const nodeChangeset2 = nodeChangeFromId(nodeChanges2, id2);
606
621
  const composedNodeChangeset = this.composeNodeChanges(
622
+ id1,
607
623
  nodeChangeset1,
608
624
  nodeChangeset2,
609
625
  idAllocator,
@@ -626,6 +642,7 @@ export class ModularChangeFamily
626
642
  }
627
643
 
628
644
  private composeNodeChanges(
645
+ nodeId: NodeId,
629
646
  change1: NodeChangeset,
630
647
  change2: NodeChangeset,
631
648
  genId: IdAllocator,
@@ -637,6 +654,7 @@ export class ModularChangeFamily
637
654
  const composedFieldChanges = this.composeFieldMaps(
638
655
  change1.fieldChanges,
639
656
  change2.fieldChanges,
657
+ nodeId,
640
658
  genId,
641
659
  crossFieldTable,
642
660
  revisionMetadata,
@@ -673,7 +691,7 @@ export class ModularChangeFamily
673
691
  0x89a /* Unexpected destroys in change to invert */,
674
692
  );
675
693
 
676
- if ((change.change.constraintViolationCount ?? 0) > 0) {
694
+ if (hasConflicts(change.change)) {
677
695
  return makeModularChangeset(
678
696
  undefined,
679
697
  undefined,
@@ -827,6 +845,10 @@ export class ModularChangeFamily
827
845
  over: TaggedChange<ModularChangeset>,
828
846
  revisionMetadata: RevisionMetadataSource,
829
847
  ): ModularChangeset {
848
+ if (hasConflicts(over.change)) {
849
+ return taggedChange.change;
850
+ }
851
+
830
852
  const change = taggedChange.change;
831
853
  const maxId = Math.max(change.maxId ?? -1, over.change.maxId ?? -1);
832
854
  const idState: IdAllocationState = { maxId };
@@ -882,7 +904,7 @@ export class ModularChangeFamily
882
904
  rebasedNodes,
883
905
  );
884
906
 
885
- return makeModularChangeset(
907
+ const rebased = makeModularChangeset(
886
908
  this.pruneFieldMap(rebasedFields, rebasedNodes),
887
909
  rebasedNodes,
888
910
  crossFieldTable.rebasedNodeToParent,
@@ -895,6 +917,8 @@ export class ModularChangeFamily
895
917
  change.destroys,
896
918
  change.refreshers,
897
919
  );
920
+
921
+ return rebased;
898
922
  }
899
923
 
900
924
  // This performs a first pass on all fields which have both new and base changes.
@@ -1579,6 +1603,57 @@ export class ModularChangeFamily
1579
1603
  const emptyChange = getChangeHandler(this.fieldKinds, fieldKind).createEmpty();
1580
1604
  return { fieldKind, change: brand(emptyChange) };
1581
1605
  }
1606
+
1607
+ public validateChangeset(change: ModularChangeset): void {
1608
+ let numNodes = this.validateFieldChanges(change, change.fieldChanges, undefined);
1609
+
1610
+ for (const [[revision, localId], node] of change.nodeChanges.entries()) {
1611
+ if (node.fieldChanges === undefined) {
1612
+ continue;
1613
+ }
1614
+
1615
+ const nodeId: NodeId = { revision, localId };
1616
+ const numChildren = this.validateFieldChanges(change, node.fieldChanges, nodeId);
1617
+
1618
+ numNodes += numChildren;
1619
+ }
1620
+
1621
+ assert(numNodes === change.nodeChanges.size, "Node table contains unparented nodes");
1622
+ }
1623
+
1624
+ /**
1625
+ * Asserts that each child and cross field key in each field has a correct entry in
1626
+ * `nodeToParent` or `crossFieldKeyTable`.
1627
+ * @returns the number of children found.
1628
+ */
1629
+ private validateFieldChanges(
1630
+ change: ModularChangeset,
1631
+ fieldChanges: FieldChangeMap,
1632
+ nodeParent: NodeId | undefined,
1633
+ ): number {
1634
+ let numChildren = 0;
1635
+ for (const [field, fieldChange] of fieldChanges.entries()) {
1636
+ const fieldId = { nodeId: nodeParent, field };
1637
+ const handler = getChangeHandler(this.fieldKinds, fieldChange.fieldKind);
1638
+ for (const [child, _index] of handler.getNestedChanges(fieldChange.change)) {
1639
+ const parentFieldId = getParentFieldId(change, child);
1640
+ assert(areEqualFieldIds(parentFieldId, fieldId), "Inconsistent node parentage");
1641
+ numChildren += 1;
1642
+ }
1643
+
1644
+ for (const keyRange of handler.getCrossFieldKeys(fieldChange.change)) {
1645
+ const fields = getFieldsForCrossFieldKey(change, keyRange);
1646
+ assert(
1647
+ fields.length === 1 &&
1648
+ fields[0] !== undefined &&
1649
+ areEqualFieldIds(fields[0], fieldId),
1650
+ "Inconsistent cross field keys",
1651
+ );
1652
+ }
1653
+ }
1654
+
1655
+ return numChildren;
1656
+ }
1582
1657
  }
1583
1658
 
1584
1659
  function replaceCrossFieldKeyTableRevisions(
@@ -1845,7 +1920,7 @@ export function intoDelta(
1845
1920
  const idAllocator = MemoizedIdRangeAllocator.fromNextId();
1846
1921
  const rootDelta: Mutable<DeltaRoot> = {};
1847
1922
 
1848
- if ((change.constraintViolationCount ?? 0) === 0) {
1923
+ if (!hasConflicts(change)) {
1849
1924
  // If there are no constraint violations, then tree changes apply.
1850
1925
  const fieldDeltas = intoDeltaImpl(
1851
1926
  change.fieldChanges,
@@ -2054,6 +2129,7 @@ interface RebaseFieldContext {
2054
2129
  function newComposeTable(
2055
2130
  baseChange: ModularChangeset,
2056
2131
  newChange: ModularChangeset,
2132
+ composedNodeToParent: ChangeAtomIdBTree<FieldId>,
2057
2133
  ): ComposeTable {
2058
2134
  return {
2059
2135
  ...newCrossFieldTable<FieldChange>(),
@@ -2063,6 +2139,7 @@ function newComposeTable(
2063
2139
  newFieldToBaseField: new Map(),
2064
2140
  newToBaseNodeId: newTupleBTree(),
2065
2141
  composedNodes: new Set(),
2142
+ composedNodeToParent,
2066
2143
  pendingCompositions: {
2067
2144
  nodeIdsToCompose: [],
2068
2145
  affectedBaseFields: newTupleBTree(),
@@ -2082,6 +2159,7 @@ interface ComposeTable extends CrossFieldTable<FieldChange> {
2082
2159
  readonly newFieldToBaseField: Map<FieldChange, FieldChange>;
2083
2160
  readonly newToBaseNodeId: ChangeAtomIdBTree<NodeId>;
2084
2161
  readonly composedNodes: Set<NodeChangeset>;
2162
+ readonly composedNodeToParent: ChangeAtomIdBTree<FieldId>;
2085
2163
  readonly pendingCompositions: PendingCompositions;
2086
2164
  }
2087
2165
 
@@ -2104,6 +2182,10 @@ interface PendingCompositions {
2104
2182
  }
2105
2183
 
2106
2184
  interface ComposeFieldContext {
2185
+ /**
2186
+ * The field ID for this field in the composed changeset.
2187
+ */
2188
+ fieldId: FieldId;
2107
2189
  change1: FieldChangeset;
2108
2190
  change2: FieldChangeset;
2109
2191
  composedChange: FieldChange;
@@ -2319,7 +2401,12 @@ class RebaseManager extends CrossFieldManagerI<FieldChange> {
2319
2401
 
2320
2402
  // TODO: Deduplicate this with RebaseTable
2321
2403
  class ComposeManager extends CrossFieldManagerI<FieldChange> {
2322
- public constructor(table: ComposeTable, currentField: FieldChange, allowInval = true) {
2404
+ public constructor(
2405
+ table: ComposeTable,
2406
+ currentField: FieldChange,
2407
+ private readonly fieldId: FieldId,
2408
+ allowInval = true,
2409
+ ) {
2323
2410
  super(table, currentField, allowInval);
2324
2411
  }
2325
2412
 
@@ -2372,15 +2459,16 @@ class ComposeManager extends CrossFieldManagerI<FieldChange> {
2372
2459
  }
2373
2460
 
2374
2461
  public override onMoveIn(id: ChangeAtomId): void {
2375
- throw new Error("Method not implemented.");
2462
+ setInChangeAtomIdMap(this.table.composedNodeToParent, id, this.fieldId);
2376
2463
  }
2464
+
2377
2465
  public override moveKey(
2378
2466
  target: CrossFieldTarget,
2379
2467
  revision: RevisionTag | undefined,
2380
2468
  id: ChangesetLocalId,
2381
2469
  count: number,
2382
2470
  ): void {
2383
- throw new Error("Method not implemented.");
2471
+ throw new Error("Moving cross-field keys during compose is currently unsupported");
2384
2472
  }
2385
2473
 
2386
2474
  private get table(): ComposeTable {
@@ -2466,15 +2554,20 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
2466
2554
  public buildTrees(
2467
2555
  firstId: ChangesetLocalId,
2468
2556
  content: ITreeCursorSynchronous,
2557
+ idCompressor?: IIdCompressor,
2469
2558
  ): GlobalEditDescription {
2470
2559
  if (content.mode === CursorLocationType.Fields && content.getFieldLength() === 0) {
2471
2560
  return { type: "global" };
2472
2561
  }
2473
2562
  const builds: ChangeAtomIdBTree<TreeChunk> = newTupleBTree();
2563
+ const chunkCompressor = {
2564
+ policy: defaultChunkPolicy,
2565
+ idCompressor,
2566
+ };
2474
2567
  const chunk =
2475
2568
  content.mode === CursorLocationType.Fields
2476
- ? chunkFieldSingle(content, defaultChunkPolicy)
2477
- : chunkTree(content, defaultChunkPolicy);
2569
+ ? chunkFieldSingle(content, chunkCompressor)
2570
+ : chunkTree(content, chunkCompressor);
2478
2571
  builds.set([undefined, firstId], chunk);
2479
2572
 
2480
2573
  return {
@@ -3012,3 +3105,7 @@ function getFromChangeAtomIdMap<T>(
3012
3105
  function setInChangeAtomIdMap<T>(map: ChangeAtomIdBTree<T>, id: ChangeAtomId, value: T): void {
3013
3106
  map.set([id.revision, id.localId], value);
3014
3107
  }
3108
+
3109
+ function areEqualFieldIds(a: FieldId, b: FieldId): boolean {
3110
+ return areEqualChangeAtomIdOpts(a.nodeId, b.nodeId) && a.field === b.field;
3111
+ }
@@ -576,6 +576,9 @@ export class ComposeQueue {
576
576
  private dequeueBase(length: number = Infinity): ComposeMarks {
577
577
  const baseMark = this.baseMarks.dequeueUpTo(length);
578
578
  const movedChanges = getMovedChangesFromMark(this.moveEffects, baseMark);
579
+ if (movedChanges !== undefined) {
580
+ this.moveEffects.onMoveIn(movedChanges);
581
+ }
579
582
 
580
583
  const newMark = createNoopMark(baseMark.count, movedChanges, getOutputCellId(baseMark));
581
584
  return { baseMark, newMark };
@@ -10,6 +10,7 @@ import {
10
10
  type ChangesetLocalId,
11
11
  type RevisionMetadataSource,
12
12
  type RevisionTag,
13
+ areEqualChangeAtomIdOpts,
13
14
  areEqualChangeAtomIds,
14
15
  makeChangeAtomId,
15
16
  } from "../../core/index.js";
@@ -118,10 +119,7 @@ export function isActiveReattach(
118
119
  }
119
120
 
120
121
  export function areEqualCellIds(a: CellId | undefined, b: CellId | undefined): boolean {
121
- if (a === undefined || b === undefined) {
122
- return a === b;
123
- }
124
- return areEqualChangeAtomIds(a, b);
122
+ return areEqualChangeAtomIdOpts(a, b);
125
123
  }
126
124
 
127
125
  export function getInputCellId(mark: Mark): CellId | undefined {
@@ -17,7 +17,6 @@ import { fail } from "../util/index.js";
17
17
 
18
18
  import { defaultSchemaPolicy } from "./default-schema/index.js";
19
19
  import {
20
- Any,
21
20
  type FlexAllowedTypes,
22
21
  FlexFieldSchema,
23
22
  type FlexMapFieldSchema,
@@ -42,7 +41,7 @@ export function treeSchemaFromStoredSchema(schema: TreeStoredSchema): FlexTreeSc
42
41
  if (innerSchema instanceof LeafNodeStoredSchema) {
43
42
  map.set(
44
43
  identifier,
45
- LeafNodeSchema.create({ name: "intoTypedSchema" }, identifier, innerSchema.leafValue),
44
+ new LeafNodeSchema({ name: "intoTypedSchema" }, identifier, innerSchema.leafValue),
46
45
  );
47
46
  } else if (innerSchema instanceof MapNodeStoredSchema) {
48
47
  map.set(
@@ -93,9 +92,9 @@ export function fieldSchemaFromStoredSchema(
93
92
  map: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>,
94
93
  ): FlexFieldSchema {
95
94
  const kind = defaultSchemaPolicy.fieldKinds.get(schema.kind) ?? fail("missing field kind");
96
- const types: FlexAllowedTypes =
97
- schema.types === undefined
98
- ? [Any]
99
- : Array.from(schema.types, (v) => () => map.get(v) ?? fail("missing schema"));
95
+ const types: FlexAllowedTypes = Array.from(
96
+ schema.types,
97
+ (v) => () => map.get(v) ?? fail("missing schema"),
98
+ );
100
99
  return FlexFieldSchema.create(kind, types);
101
100
  }
@@ -45,7 +45,7 @@ export function markEager<T>(t: T): T {
45
45
  * To force a `"function"` item to be treated as an eager item, call `markEager` before putting it in the list.
46
46
  * This is necessary e.g. when the eager list items are function types and the lazy items are functions that _return_ function types.
47
47
  * `FlexList`s are processed by `normalizeFlexList` and `normalizeFlexListEager`.
48
- * @public
48
+ * @system @public
49
49
  */
50
50
  export type FlexList<Item = unknown> = readonly LazyItem<Item>[];
51
51
 
@@ -94,7 +94,7 @@ export type NormalizedLazyFlexList<Item> = (() => Item)[];
94
94
 
95
95
  /**
96
96
  * Get the `Item` type from a `LazyItem<Item>`.
97
- * @public
97
+ * @system @public
98
98
  */
99
99
  export type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result
100
100
  ? Result
@@ -120,7 +120,7 @@ export type FlexListToNonLazyArray<List extends FlexList> =
120
120
 
121
121
  /**
122
122
  * Normalize FlexList type to a union.
123
- * @public
123
+ * @system @public
124
124
  */
125
125
  export type FlexListToUnion<TList extends FlexList> = ExtractItemType<TList[number]>;
126
126
 
@@ -6,7 +6,6 @@
6
6
  export {
7
7
  type FlexTreeNodeSchema,
8
8
  FlexFieldSchema,
9
- Any,
10
9
  allowedTypesToTypeSet,
11
10
  type FlexAllowedTypes,
12
11
  type LazyTreeNodeSchema,
@@ -23,8 +22,6 @@ export {
23
22
  schemaIsLeaf,
24
23
  schemaIsMap,
25
24
  schemaIsObjectNode,
26
- type NormalizeObjectNodeFields,
27
- type NormalizeField,
28
25
  intoStoredSchema,
29
26
  allowedTypesSchemaSet,
30
27
  intoStoredSchemaCollection,
@@ -47,4 +44,5 @@ export {
47
44
  type NormalizeLazyItem,
48
45
  type FlexListToUnion,
49
46
  type ExtractItemType,
47
+ normalizeFlexListEager,
50
48
  } from "./flexList.js";
@@ -22,7 +22,6 @@ import {
22
22
  type FlexTreeNodeSchema,
23
23
  LeafNodeSchema,
24
24
  type SchemaCollection,
25
- allowedTypesIsAny,
26
25
  } from "./typedTreeSchema.js";
27
26
  import type { Sourced } from "./view.js";
28
27
 
@@ -168,11 +167,11 @@ export function validateSchemaCollection(
168
167
  validateField(
169
168
  lintConfiguration,
170
169
  collection,
171
- tree.info,
170
+ tree.info as FlexFieldSchema,
172
171
  () => `Map fields of "${identifier}" schema from library "${tree.builder.name}"`,
173
172
  errors,
174
173
  );
175
- if ((tree.info.kind.multiplicity as Multiplicity) === Multiplicity.Single) {
174
+ if ((tree.info as FlexFieldSchema).kind.multiplicity === Multiplicity.Single) {
176
175
  errors.push(
177
176
  `Map fields of "${identifier}" schema from library "${tree.builder.name}" has kind with multiplicity "Single". This is invalid since it requires all possible field keys to have a value under them.`,
178
177
  );
@@ -213,24 +212,23 @@ export function validateField(
213
212
  errors: string[],
214
213
  ): void {
215
214
  const types = field.allowedTypes;
216
- if (!allowedTypesIsAny(types)) {
217
- const normalizedTypes = normalizeFlexListEager(types);
218
- for (const type of normalizedTypes) {
219
- const referenced = collection.nodeSchema.get(type.name);
220
- if (referenced === undefined) {
221
- errors.push(
222
- `${describeField()} references type "${type.name}" from library "${
223
- type.builder.name
224
- }" which is not defined. Perhaps another type was intended, or that library needs to be added.`,
225
- );
226
- }
227
- }
228
- if (types.length === 0 && lintConfiguration.rejectEmpty) {
215
+
216
+ const normalizedTypes = normalizeFlexListEager(types);
217
+ for (const type of normalizedTypes) {
218
+ const referenced = collection.nodeSchema.get(type.name);
219
+ if (referenced === undefined) {
229
220
  errors.push(
230
- `${describeField()} requires children to have a type from a set of zero types. This means the field must always be empty.`,
221
+ `${describeField()} references type "${type.name}" from library "${
222
+ type.builder.name
223
+ }" which is not defined. Perhaps another type was intended, or that library needs to be added.`,
231
224
  );
232
225
  }
233
226
  }
227
+ if (types.length === 0 && lintConfiguration.rejectEmpty) {
228
+ errors.push(
229
+ `${describeField()} requires children to have a type from a set of zero types. This means the field must always be empty.`,
230
+ );
231
+ }
234
232
 
235
233
  const kind = field.kind;
236
234
  const kindFromPolicy = defaultSchemaPolicy.fieldKinds.get(kind.identifier);