@fluidframework/tree 2.3.0-288113 → 2.3.1

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 (869) 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 +21 -42
  14. package/api-report/tree.beta.api.md +21 -11
  15. package/api-report/tree.legacy.alpha.api.md +562 -0
  16. package/api-report/tree.legacy.public.api.md +559 -0
  17. package/api-report/tree.public.api.md +8 -13
  18. package/dist/alpha.d.ts +102 -0
  19. package/dist/beta.d.ts +6 -2
  20. package/dist/core/index.d.ts +1 -1
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +2 -2
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/{revertible/revertible.d.ts → revertible.d.ts} +12 -0
  25. package/dist/core/revertible.d.ts.map +1 -0
  26. package/dist/core/revertible.js.map +1 -0
  27. package/dist/core/schema-stored/format.d.ts +3 -3
  28. package/dist/core/schema-stored/format.js +1 -1
  29. package/dist/core/schema-stored/format.js.map +1 -1
  30. package/dist/core/schema-stored/schema.d.ts +2 -7
  31. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  32. package/dist/core/schema-stored/schema.js +4 -6
  33. package/dist/core/schema-stored/schema.js.map +1 -1
  34. package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  35. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  36. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  37. package/dist/core/tree/anchorSet.js +6 -2
  38. package/dist/core/tree/anchorSet.js.map +1 -1
  39. package/dist/core/tree/detachedFieldIndex.d.ts +0 -1
  40. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  41. package/dist/core/tree/detachedFieldIndex.js +1 -0
  42. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  43. package/dist/core/tree/visitDelta.d.ts +7 -2
  44. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  45. package/dist/core/tree/visitDelta.js.map +1 -1
  46. package/dist/events/emitter.d.ts +127 -0
  47. package/dist/events/emitter.d.ts.map +1 -0
  48. package/dist/events/{events.js → emitter.js} +48 -30
  49. package/dist/events/emitter.js.map +1 -0
  50. package/dist/events/index.d.ts +2 -1
  51. package/dist/events/index.d.ts.map +1 -1
  52. package/dist/events/index.js +4 -5
  53. package/dist/events/index.js.map +1 -1
  54. package/dist/events/interop.d.ts +36 -0
  55. package/dist/events/interop.d.ts.map +1 -0
  56. package/dist/{core/revertible/index.d.ts → events/interop.js} +3 -2
  57. package/dist/events/interop.js.map +1 -0
  58. package/dist/events/listeners.d.ts +65 -0
  59. package/dist/events/listeners.d.ts.map +1 -0
  60. package/{lib/core/revertible/index.d.ts → dist/events/listeners.js} +3 -2
  61. package/dist/events/listeners.js.map +1 -0
  62. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +25 -7
  63. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  64. package/dist/feature-libraries/chunked-forest/chunkTree.js +36 -15
  65. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  66. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -2
  67. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  68. package/dist/feature-libraries/chunked-forest/chunkedForest.js +12 -5
  69. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  70. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +15 -2
  71. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  72. package/dist/feature-libraries/chunked-forest/uniformChunk.js +28 -2
  73. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  74. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -1
  75. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  76. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +5 -4
  77. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  78. package/dist/feature-libraries/flex-map-tree/index.d.ts +1 -1
  79. package/dist/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
  80. package/dist/feature-libraries/flex-map-tree/index.js +2 -1
  81. package/dist/feature-libraries/flex-map-tree/index.js.map +1 -1
  82. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +35 -33
  83. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  84. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +82 -103
  85. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  86. package/dist/feature-libraries/flex-tree/context.d.ts +30 -14
  87. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  88. package/dist/feature-libraries/flex-tree/context.js +10 -7
  89. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  90. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +57 -190
  91. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  92. package/dist/feature-libraries/flex-tree/flexTreeTypes.js +15 -3
  93. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  94. package/dist/feature-libraries/flex-tree/index.d.ts +2 -3
  95. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  96. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  97. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +3 -3
  98. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  99. package/dist/feature-libraries/flex-tree/lazyEntity.js +2 -10
  100. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  101. package/dist/feature-libraries/flex-tree/lazyField.d.ts +26 -28
  102. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  103. package/dist/feature-libraries/flex-tree/lazyField.js +11 -14
  104. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  105. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +5 -26
  106. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  107. package/dist/feature-libraries/flex-tree/lazyNode.js +23 -74
  108. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  109. package/dist/feature-libraries/flex-tree/unboxed.d.ts +4 -16
  110. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  111. package/dist/feature-libraries/flex-tree/unboxed.js +7 -41
  112. package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
  113. package/dist/feature-libraries/flex-tree/utilities.d.ts +2 -2
  114. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  115. package/dist/feature-libraries/flex-tree/utilities.js +3 -6
  116. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  117. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  118. package/dist/feature-libraries/forest-summary/forestSummarizer.js +4 -1
  119. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  120. package/dist/feature-libraries/index.d.ts +3 -5
  121. package/dist/feature-libraries/index.d.ts.map +1 -1
  122. package/dist/feature-libraries/index.js +5 -11
  123. package/dist/feature-libraries/index.js.map +1 -1
  124. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  125. package/dist/feature-libraries/modular-schema/comparison.js +3 -6
  126. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  127. package/dist/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
  128. package/dist/feature-libraries/modular-schema/discrepancies.js +3 -13
  129. package/dist/feature-libraries/modular-schema/discrepancies.js.map +1 -1
  130. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +4 -1
  131. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  132. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -1
  133. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  134. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +12 -5
  135. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  136. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +6 -6
  137. package/dist/feature-libraries/schema-index/format.d.ts +3 -3
  138. package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  139. package/dist/feature-libraries/storedToViewSchema.js +2 -4
  140. package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
  141. package/dist/feature-libraries/typed-schema/flexList.d.ts +3 -3
  142. package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
  143. package/dist/feature-libraries/typed-schema/index.d.ts +2 -2
  144. package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
  145. package/dist/feature-libraries/typed-schema/index.js +2 -2
  146. package/dist/feature-libraries/typed-schema/index.js.map +1 -1
  147. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  148. package/dist/feature-libraries/typed-schema/schemaCollection.js +8 -10
  149. package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  150. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +17 -48
  151. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  152. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +5 -37
  153. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  154. package/dist/feature-libraries/typed-schema/view.d.ts +4 -6
  155. package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
  156. package/dist/feature-libraries/typed-schema/view.js +5 -4
  157. package/dist/feature-libraries/typed-schema/view.js.map +1 -1
  158. package/dist/index.d.ts +4 -4
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +33 -36
  161. package/dist/index.js.map +1 -1
  162. package/dist/legacy.d.ts +83 -0
  163. package/dist/packageVersion.d.ts +1 -1
  164. package/dist/packageVersion.d.ts.map +1 -1
  165. package/dist/packageVersion.js +1 -1
  166. package/dist/packageVersion.js.map +1 -1
  167. package/dist/public.d.ts +0 -1
  168. package/dist/shared-tree/checkoutFlexTreeView.d.ts +53 -0
  169. package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
  170. package/dist/shared-tree/{treeView.js → checkoutFlexTreeView.js} +28 -6
  171. package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -0
  172. package/dist/shared-tree/index.d.ts +3 -3
  173. package/dist/shared-tree/index.d.ts.map +1 -1
  174. package/dist/shared-tree/index.js +2 -2
  175. package/dist/shared-tree/index.js.map +1 -1
  176. package/dist/shared-tree/schematizeTree.d.ts +15 -4
  177. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  178. package/dist/shared-tree/schematizeTree.js +7 -8
  179. package/dist/shared-tree/schematizeTree.js.map +1 -1
  180. package/dist/shared-tree/schematizingTreeView.d.ts +9 -4
  181. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  182. package/dist/shared-tree/schematizingTreeView.js +25 -12
  183. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  184. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  185. package/dist/shared-tree/sharedTree.js +2 -2
  186. package/dist/shared-tree/sharedTree.js.map +1 -1
  187. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +3 -1
  188. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  189. package/dist/shared-tree/sharedTreeChangeEnricher.js +6 -2
  190. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  191. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +3 -1
  192. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  193. package/dist/shared-tree/sharedTreeChangeFamily.js +3 -2
  194. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  195. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -1
  196. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  197. package/dist/shared-tree/sharedTreeEditBuilder.js +2 -2
  198. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  199. package/dist/shared-tree/treeApi.d.ts +1 -3
  200. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  201. package/dist/shared-tree/treeApi.js +6 -4
  202. package/dist/shared-tree/treeApi.js.map +1 -1
  203. package/dist/shared-tree/treeCheckout.d.ts +2 -13
  204. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  205. package/dist/shared-tree/treeCheckout.js +17 -1
  206. package/dist/shared-tree/treeCheckout.js.map +1 -1
  207. package/dist/shared-tree-core/branch.js +1 -1
  208. package/dist/shared-tree-core/branch.js.map +1 -1
  209. package/dist/simple-tree/api/create.d.ts.map +1 -1
  210. package/dist/simple-tree/api/create.js +1 -1
  211. package/dist/simple-tree/api/create.js.map +1 -1
  212. package/{lib/simple-tree → dist/simple-tree/api}/getJsonSchema.d.ts +1 -1
  213. package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -0
  214. package/dist/simple-tree/{getJsonSchema.js → api/getJsonSchema.js} +1 -1
  215. package/dist/simple-tree/api/getJsonSchema.js.map +1 -0
  216. package/{lib/simple-tree → dist/simple-tree/api}/getSimpleSchema.d.ts +1 -1
  217. package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -0
  218. package/dist/simple-tree/{getSimpleSchema.js → api/getSimpleSchema.js} +1 -1
  219. package/dist/simple-tree/api/getSimpleSchema.js.map +1 -0
  220. package/dist/simple-tree/api/index.d.ts +5 -0
  221. package/dist/simple-tree/api/index.d.ts.map +1 -1
  222. package/dist/simple-tree/api/index.js +7 -1
  223. package/dist/simple-tree/api/index.js.map +1 -1
  224. package/{lib/simple-tree → dist/simple-tree/api}/jsonSchema.d.ts +1 -1
  225. package/dist/simple-tree/api/jsonSchema.d.ts.map +1 -0
  226. package/dist/simple-tree/api/jsonSchema.js.map +1 -0
  227. package/dist/simple-tree/api/schemaFactory.d.ts +45 -14
  228. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  229. package/dist/simple-tree/api/schemaFactory.js +43 -12
  230. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  231. package/dist/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +4 -4
  232. package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -0
  233. package/dist/simple-tree/api/simpleSchema.js.map +1 -0
  234. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -0
  235. package/dist/simple-tree/{simpleSchemaToJsonSchema.js → api/simpleSchemaToJsonSchema.js} +4 -4
  236. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
  237. package/dist/simple-tree/api/tree.d.ts +1 -21
  238. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  239. package/dist/simple-tree/api/tree.js +3 -38
  240. package/dist/simple-tree/api/tree.js.map +1 -1
  241. package/dist/simple-tree/api/treeApiBeta.d.ts +79 -0
  242. package/dist/simple-tree/api/treeApiBeta.d.ts.map +1 -0
  243. package/dist/simple-tree/api/treeApiBeta.js +26 -0
  244. package/dist/simple-tree/api/treeApiBeta.js.map +1 -0
  245. package/dist/simple-tree/api/treeNodeApi.d.ts +1 -1
  246. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  247. package/dist/simple-tree/api/treeNodeApi.js +21 -19
  248. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  249. package/dist/simple-tree/api/verboseTree.js +2 -2
  250. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  251. package/dist/simple-tree/{viewSchemaToSimpleSchema.d.ts → api/viewSchemaToSimpleSchema.d.ts} +1 -1
  252. package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -0
  253. package/dist/simple-tree/{viewSchemaToSimpleSchema.js → api/viewSchemaToSimpleSchema.js} +4 -4
  254. package/{lib/simple-tree → dist/simple-tree/api}/viewSchemaToSimpleSchema.js.map +1 -1
  255. package/dist/simple-tree/arrayNode.d.ts +2 -2
  256. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  257. package/dist/simple-tree/arrayNode.js +30 -21
  258. package/dist/simple-tree/arrayNode.js.map +1 -1
  259. package/dist/simple-tree/core/index.d.ts +3 -3
  260. package/dist/simple-tree/core/index.d.ts.map +1 -1
  261. package/dist/simple-tree/core/index.js +4 -1
  262. package/dist/simple-tree/core/index.js.map +1 -1
  263. package/dist/simple-tree/core/schemaCaching.d.ts +5 -0
  264. package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
  265. package/dist/simple-tree/core/schemaCaching.js +10 -1
  266. package/dist/simple-tree/core/schemaCaching.js.map +1 -1
  267. package/dist/simple-tree/core/treeNodeKernel.d.ts +61 -3
  268. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  269. package/dist/simple-tree/core/treeNodeKernel.js +166 -13
  270. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  271. package/dist/simple-tree/core/treeNodeSchema.d.ts +1 -1
  272. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  273. package/dist/simple-tree/core/types.d.ts +17 -20
  274. package/dist/simple-tree/core/types.d.ts.map +1 -1
  275. package/dist/simple-tree/core/types.js.map +1 -1
  276. package/dist/simple-tree/core/withType.d.ts +3 -2
  277. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  278. package/dist/simple-tree/core/withType.js.map +1 -1
  279. package/dist/simple-tree/index.d.ts +7 -9
  280. package/dist/simple-tree/index.d.ts.map +1 -1
  281. package/dist/simple-tree/index.js +15 -6
  282. package/dist/simple-tree/index.js.map +1 -1
  283. package/dist/simple-tree/leafNodeSchema.d.ts +7 -9
  284. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  285. package/dist/simple-tree/leafNodeSchema.js +13 -11
  286. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  287. package/dist/simple-tree/mapNode.d.ts +1 -1
  288. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  289. package/dist/simple-tree/mapNode.js +38 -29
  290. package/dist/simple-tree/mapNode.js.map +1 -1
  291. package/dist/simple-tree/objectNode.d.ts +9 -7
  292. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  293. package/dist/simple-tree/objectNode.js +37 -31
  294. package/dist/simple-tree/objectNode.js.map +1 -1
  295. package/dist/simple-tree/proxies.d.ts +1 -14
  296. package/dist/simple-tree/proxies.d.ts.map +1 -1
  297. package/dist/simple-tree/proxies.js +12 -15
  298. package/dist/simple-tree/proxies.js.map +1 -1
  299. package/dist/simple-tree/proxyBinding.d.ts +2 -62
  300. package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
  301. package/dist/simple-tree/proxyBinding.js +8 -181
  302. package/dist/simple-tree/proxyBinding.js.map +1 -1
  303. package/dist/simple-tree/schemaTypes.d.ts +7 -7
  304. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  305. package/dist/simple-tree/schemaTypes.js +4 -4
  306. package/dist/simple-tree/schemaTypes.js.map +1 -1
  307. package/dist/simple-tree/toFlexSchema.d.ts +11 -1
  308. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  309. package/dist/simple-tree/toFlexSchema.js +54 -31
  310. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  311. package/dist/simple-tree/toMapTree.d.ts +25 -37
  312. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  313. package/dist/simple-tree/toMapTree.js +53 -16
  314. package/dist/simple-tree/toMapTree.js.map +1 -1
  315. package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
  316. package/dist/simple-tree/treeNodeValid.js +7 -10
  317. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  318. package/dist/simple-tree/typesUnsafe.d.ts +13 -13
  319. package/dist/simple-tree/typesUnsafe.js.map +1 -1
  320. package/dist/simple-tree/walkSchema.d.ts +26 -0
  321. package/dist/simple-tree/walkSchema.d.ts.map +1 -0
  322. package/dist/simple-tree/walkSchema.js +49 -0
  323. package/dist/simple-tree/walkSchema.js.map +1 -0
  324. package/dist/treeFactory.d.ts +2 -1
  325. package/dist/treeFactory.d.ts.map +1 -1
  326. package/dist/treeFactory.js +2 -1
  327. package/dist/treeFactory.js.map +1 -1
  328. package/dist/util/typeUtils.d.ts +2 -2
  329. package/dist/util/typeUtils.js.map +1 -1
  330. package/legacy.d.ts +11 -0
  331. package/lib/alpha.d.ts +102 -0
  332. package/lib/beta.d.ts +6 -2
  333. package/lib/core/index.d.ts +1 -1
  334. package/lib/core/index.d.ts.map +1 -1
  335. package/lib/core/index.js +1 -1
  336. package/lib/core/index.js.map +1 -1
  337. package/lib/core/{revertible/revertible.d.ts → revertible.d.ts} +12 -0
  338. package/lib/core/revertible.d.ts.map +1 -0
  339. package/lib/core/revertible.js.map +1 -0
  340. package/lib/core/schema-stored/format.d.ts +3 -3
  341. package/lib/core/schema-stored/format.js +1 -1
  342. package/lib/core/schema-stored/format.js.map +1 -1
  343. package/lib/core/schema-stored/schema.d.ts +2 -7
  344. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  345. package/lib/core/schema-stored/schema.js +4 -6
  346. package/lib/core/schema-stored/schema.js.map +1 -1
  347. package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  348. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  349. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  350. package/lib/core/tree/anchorSet.js +6 -2
  351. package/lib/core/tree/anchorSet.js.map +1 -1
  352. package/lib/core/tree/detachedFieldIndex.d.ts +0 -1
  353. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  354. package/lib/core/tree/detachedFieldIndex.js +1 -0
  355. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  356. package/lib/core/tree/visitDelta.d.ts +7 -2
  357. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  358. package/lib/core/tree/visitDelta.js.map +1 -1
  359. package/lib/events/emitter.d.ts +127 -0
  360. package/lib/events/emitter.d.ts.map +1 -0
  361. package/lib/events/{events.js → emitter.js} +48 -29
  362. package/lib/events/emitter.js.map +1 -0
  363. package/lib/events/index.d.ts +2 -1
  364. package/lib/events/index.d.ts.map +1 -1
  365. package/lib/events/index.js +1 -1
  366. package/lib/events/index.js.map +1 -1
  367. package/lib/events/interop.d.ts +36 -0
  368. package/lib/events/interop.d.ts.map +1 -0
  369. package/{src/core/revertible/index.ts → lib/events/interop.js} +2 -2
  370. package/lib/events/interop.js.map +1 -0
  371. package/lib/events/listeners.d.ts +65 -0
  372. package/lib/events/listeners.d.ts.map +1 -0
  373. package/lib/{core/revertible/index.js → events/listeners.js} +2 -2
  374. package/lib/events/listeners.js.map +1 -0
  375. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +25 -7
  376. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  377. package/lib/feature-libraries/chunked-forest/chunkTree.js +37 -16
  378. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  379. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -2
  380. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  381. package/lib/feature-libraries/chunked-forest/chunkedForest.js +12 -5
  382. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  383. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +15 -2
  384. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  385. package/lib/feature-libraries/chunked-forest/uniformChunk.js +28 -2
  386. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  387. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -1
  388. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  389. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +5 -4
  390. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  391. package/lib/feature-libraries/flex-map-tree/index.d.ts +1 -1
  392. package/lib/feature-libraries/flex-map-tree/index.d.ts.map +1 -1
  393. package/lib/feature-libraries/flex-map-tree/index.js +1 -1
  394. package/lib/feature-libraries/flex-map-tree/index.js.map +1 -1
  395. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +35 -33
  396. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  397. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +83 -104
  398. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  399. package/lib/feature-libraries/flex-tree/context.d.ts +30 -14
  400. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  401. package/lib/feature-libraries/flex-tree/context.js +10 -7
  402. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  403. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +57 -190
  404. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  405. package/lib/feature-libraries/flex-tree/flexTreeTypes.js +15 -2
  406. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  407. package/lib/feature-libraries/flex-tree/index.d.ts +2 -3
  408. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  409. package/lib/feature-libraries/flex-tree/index.js +1 -1
  410. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  411. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +3 -3
  412. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  413. package/lib/feature-libraries/flex-tree/lazyEntity.js +2 -10
  414. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  415. package/lib/feature-libraries/flex-tree/lazyField.d.ts +26 -28
  416. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  417. package/lib/feature-libraries/flex-tree/lazyField.js +11 -13
  418. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  419. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +5 -26
  420. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  421. package/lib/feature-libraries/flex-tree/lazyNode.js +23 -72
  422. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  423. package/lib/feature-libraries/flex-tree/unboxed.d.ts +4 -16
  424. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  425. package/lib/feature-libraries/flex-tree/unboxed.js +5 -37
  426. package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
  427. package/lib/feature-libraries/flex-tree/utilities.d.ts +2 -2
  428. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  429. package/lib/feature-libraries/flex-tree/utilities.js +3 -6
  430. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  431. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  432. package/lib/feature-libraries/forest-summary/forestSummarizer.js +4 -1
  433. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  434. package/lib/feature-libraries/index.d.ts +3 -5
  435. package/lib/feature-libraries/index.d.ts.map +1 -1
  436. package/lib/feature-libraries/index.js +5 -5
  437. package/lib/feature-libraries/index.js.map +1 -1
  438. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  439. package/lib/feature-libraries/modular-schema/comparison.js +3 -6
  440. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  441. package/lib/feature-libraries/modular-schema/discrepancies.d.ts.map +1 -1
  442. package/lib/feature-libraries/modular-schema/discrepancies.js +3 -13
  443. package/lib/feature-libraries/modular-schema/discrepancies.js.map +1 -1
  444. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +4 -1
  445. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  446. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +2 -1
  447. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  448. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +12 -5
  449. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  450. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +6 -6
  451. package/lib/feature-libraries/schema-index/format.d.ts +3 -3
  452. package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  453. package/lib/feature-libraries/storedToViewSchema.js +3 -5
  454. package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
  455. package/lib/feature-libraries/typed-schema/flexList.d.ts +3 -3
  456. package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
  457. package/lib/feature-libraries/typed-schema/index.d.ts +2 -2
  458. package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
  459. package/lib/feature-libraries/typed-schema/index.js +2 -2
  460. package/lib/feature-libraries/typed-schema/index.js.map +1 -1
  461. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  462. package/lib/feature-libraries/typed-schema/schemaCollection.js +9 -11
  463. package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  464. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +17 -48
  465. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  466. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +5 -36
  467. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  468. package/lib/feature-libraries/typed-schema/view.d.ts +4 -6
  469. package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
  470. package/lib/feature-libraries/typed-schema/view.js +5 -4
  471. package/lib/feature-libraries/typed-schema/view.js.map +1 -1
  472. package/lib/index.d.ts +4 -4
  473. package/lib/index.d.ts.map +1 -1
  474. package/lib/index.js +3 -5
  475. package/lib/index.js.map +1 -1
  476. package/lib/legacy.d.ts +83 -0
  477. package/lib/packageVersion.d.ts +1 -1
  478. package/lib/packageVersion.d.ts.map +1 -1
  479. package/lib/packageVersion.js +1 -1
  480. package/lib/packageVersion.js.map +1 -1
  481. package/lib/public.d.ts +0 -1
  482. package/lib/shared-tree/checkoutFlexTreeView.d.ts +53 -0
  483. package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -0
  484. package/lib/shared-tree/{treeView.js → checkoutFlexTreeView.js} +26 -5
  485. package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -0
  486. package/lib/shared-tree/index.d.ts +3 -3
  487. package/lib/shared-tree/index.d.ts.map +1 -1
  488. package/lib/shared-tree/index.js +1 -1
  489. package/lib/shared-tree/index.js.map +1 -1
  490. package/lib/shared-tree/schematizeTree.d.ts +15 -4
  491. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  492. package/lib/shared-tree/schematizeTree.js +8 -9
  493. package/lib/shared-tree/schematizeTree.js.map +1 -1
  494. package/lib/shared-tree/schematizingTreeView.d.ts +9 -4
  495. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  496. package/lib/shared-tree/schematizingTreeView.js +26 -13
  497. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  498. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  499. package/lib/shared-tree/sharedTree.js +2 -2
  500. package/lib/shared-tree/sharedTree.js.map +1 -1
  501. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +3 -1
  502. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  503. package/lib/shared-tree/sharedTreeChangeEnricher.js +6 -2
  504. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  505. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +3 -1
  506. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  507. package/lib/shared-tree/sharedTreeChangeFamily.js +3 -2
  508. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  509. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -1
  510. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  511. package/lib/shared-tree/sharedTreeEditBuilder.js +2 -2
  512. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  513. package/lib/shared-tree/treeApi.d.ts +1 -3
  514. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  515. package/lib/shared-tree/treeApi.js +7 -5
  516. package/lib/shared-tree/treeApi.js.map +1 -1
  517. package/lib/shared-tree/treeCheckout.d.ts +2 -13
  518. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  519. package/lib/shared-tree/treeCheckout.js +18 -2
  520. package/lib/shared-tree/treeCheckout.js.map +1 -1
  521. package/lib/shared-tree-core/branch.js +1 -1
  522. package/lib/shared-tree-core/branch.js.map +1 -1
  523. package/lib/simple-tree/api/create.d.ts.map +1 -1
  524. package/lib/simple-tree/api/create.js +2 -2
  525. package/lib/simple-tree/api/create.js.map +1 -1
  526. package/{dist/simple-tree → lib/simple-tree/api}/getJsonSchema.d.ts +1 -1
  527. package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -0
  528. package/lib/simple-tree/{getJsonSchema.js → api/getJsonSchema.js} +1 -1
  529. package/lib/simple-tree/api/getJsonSchema.js.map +1 -0
  530. package/{dist/simple-tree → lib/simple-tree/api}/getSimpleSchema.d.ts +1 -1
  531. package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -0
  532. package/lib/simple-tree/{getSimpleSchema.js → api/getSimpleSchema.js} +1 -1
  533. package/lib/simple-tree/api/getSimpleSchema.js.map +1 -0
  534. package/lib/simple-tree/api/index.d.ts +5 -0
  535. package/lib/simple-tree/api/index.d.ts.map +1 -1
  536. package/lib/simple-tree/api/index.js +3 -0
  537. package/lib/simple-tree/api/index.js.map +1 -1
  538. package/{dist/simple-tree → lib/simple-tree/api}/jsonSchema.d.ts +1 -1
  539. package/lib/simple-tree/api/jsonSchema.d.ts.map +1 -0
  540. package/lib/simple-tree/api/jsonSchema.js.map +1 -0
  541. package/lib/simple-tree/api/schemaFactory.d.ts +45 -14
  542. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  543. package/lib/simple-tree/api/schemaFactory.js +43 -12
  544. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  545. package/lib/simple-tree/{simpleSchema.d.ts → api/simpleSchema.d.ts} +4 -4
  546. package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -0
  547. package/lib/simple-tree/api/simpleSchema.js.map +1 -0
  548. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -0
  549. package/lib/simple-tree/{simpleSchemaToJsonSchema.js → api/simpleSchemaToJsonSchema.js} +4 -4
  550. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -0
  551. package/lib/simple-tree/api/tree.d.ts +1 -21
  552. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  553. package/lib/simple-tree/api/tree.js +2 -34
  554. package/lib/simple-tree/api/tree.js.map +1 -1
  555. package/lib/simple-tree/api/treeApiBeta.d.ts +79 -0
  556. package/lib/simple-tree/api/treeApiBeta.d.ts.map +1 -0
  557. package/lib/simple-tree/api/treeApiBeta.js +23 -0
  558. package/lib/simple-tree/api/treeApiBeta.js.map +1 -0
  559. package/lib/simple-tree/api/treeNodeApi.d.ts +1 -1
  560. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  561. package/lib/simple-tree/api/treeNodeApi.js +23 -21
  562. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  563. package/lib/simple-tree/api/verboseTree.js +1 -1
  564. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  565. package/lib/simple-tree/{viewSchemaToSimpleSchema.d.ts → api/viewSchemaToSimpleSchema.d.ts} +1 -1
  566. package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -0
  567. package/lib/simple-tree/{viewSchemaToSimpleSchema.js → api/viewSchemaToSimpleSchema.js} +4 -4
  568. package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -0
  569. package/lib/simple-tree/arrayNode.d.ts +2 -2
  570. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  571. package/lib/simple-tree/arrayNode.js +33 -24
  572. package/lib/simple-tree/arrayNode.js.map +1 -1
  573. package/lib/simple-tree/core/index.d.ts +3 -3
  574. package/lib/simple-tree/core/index.d.ts.map +1 -1
  575. package/lib/simple-tree/core/index.js +2 -2
  576. package/lib/simple-tree/core/index.js.map +1 -1
  577. package/lib/simple-tree/core/schemaCaching.d.ts +5 -0
  578. package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
  579. package/lib/simple-tree/core/schemaCaching.js +8 -0
  580. package/lib/simple-tree/core/schemaCaching.js.map +1 -1
  581. package/lib/simple-tree/core/treeNodeKernel.d.ts +61 -3
  582. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  583. package/lib/simple-tree/core/treeNodeKernel.js +156 -5
  584. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  585. package/lib/simple-tree/core/treeNodeSchema.d.ts +1 -1
  586. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  587. package/lib/simple-tree/core/types.d.ts +17 -20
  588. package/lib/simple-tree/core/types.d.ts.map +1 -1
  589. package/lib/simple-tree/core/types.js.map +1 -1
  590. package/lib/simple-tree/core/withType.d.ts +3 -2
  591. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  592. package/lib/simple-tree/core/withType.js.map +1 -1
  593. package/lib/simple-tree/index.d.ts +7 -9
  594. package/lib/simple-tree/index.d.ts.map +1 -1
  595. package/lib/simple-tree/index.js +5 -5
  596. package/lib/simple-tree/index.js.map +1 -1
  597. package/lib/simple-tree/leafNodeSchema.d.ts +7 -9
  598. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  599. package/lib/simple-tree/leafNodeSchema.js +14 -12
  600. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  601. package/lib/simple-tree/mapNode.d.ts +1 -1
  602. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  603. package/lib/simple-tree/mapNode.js +38 -29
  604. package/lib/simple-tree/mapNode.js.map +1 -1
  605. package/lib/simple-tree/objectNode.d.ts +9 -7
  606. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  607. package/lib/simple-tree/objectNode.js +40 -34
  608. package/lib/simple-tree/objectNode.js.map +1 -1
  609. package/lib/simple-tree/proxies.d.ts +1 -14
  610. package/lib/simple-tree/proxies.d.ts.map +1 -1
  611. package/lib/simple-tree/proxies.js +11 -14
  612. package/lib/simple-tree/proxies.js.map +1 -1
  613. package/lib/simple-tree/proxyBinding.d.ts +2 -62
  614. package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
  615. package/lib/simple-tree/proxyBinding.js +6 -174
  616. package/lib/simple-tree/proxyBinding.js.map +1 -1
  617. package/lib/simple-tree/schemaTypes.d.ts +7 -7
  618. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  619. package/lib/simple-tree/schemaTypes.js +4 -4
  620. package/lib/simple-tree/schemaTypes.js.map +1 -1
  621. package/lib/simple-tree/toFlexSchema.d.ts +11 -1
  622. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  623. package/lib/simple-tree/toFlexSchema.js +29 -8
  624. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  625. package/lib/simple-tree/toMapTree.d.ts +25 -37
  626. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  627. package/lib/simple-tree/toMapTree.js +54 -17
  628. package/lib/simple-tree/toMapTree.js.map +1 -1
  629. package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
  630. package/lib/simple-tree/treeNodeValid.js +8 -11
  631. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  632. package/lib/simple-tree/typesUnsafe.d.ts +13 -13
  633. package/lib/simple-tree/typesUnsafe.js.map +1 -1
  634. package/lib/simple-tree/walkSchema.d.ts +26 -0
  635. package/lib/simple-tree/walkSchema.d.ts.map +1 -0
  636. package/lib/simple-tree/walkSchema.js +43 -0
  637. package/lib/simple-tree/walkSchema.js.map +1 -0
  638. package/lib/treeFactory.d.ts +2 -1
  639. package/lib/treeFactory.d.ts.map +1 -1
  640. package/lib/treeFactory.js +2 -1
  641. package/lib/treeFactory.js.map +1 -1
  642. package/lib/tsdoc-metadata.json +1 -1
  643. package/lib/util/typeUtils.d.ts +2 -2
  644. package/lib/util/typeUtils.js.map +1 -1
  645. package/package.json +57 -25
  646. package/src/core/index.ts +1 -1
  647. package/src/core/{revertible/revertible.ts → revertible.ts} +15 -0
  648. package/src/core/schema-stored/format.ts +1 -1
  649. package/src/core/schema-stored/schema.ts +6 -13
  650. package/src/core/tree/anchorSet.ts +18 -3
  651. package/src/core/tree/detachedFieldIndex.ts +6 -5
  652. package/src/core/tree/visitDelta.ts +7 -2
  653. package/src/events/{events.ts → emitter.ts} +52 -139
  654. package/src/events/index.ts +7 -7
  655. package/src/events/interop.ts +49 -0
  656. package/src/events/listeners.ts +68 -0
  657. package/src/feature-libraries/chunked-forest/chunkTree.ts +63 -18
  658. package/src/feature-libraries/chunked-forest/chunkedForest.ts +18 -4
  659. package/src/feature-libraries/chunked-forest/uniformChunk.ts +33 -0
  660. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +5 -3
  661. package/src/feature-libraries/flex-map-tree/index.ts +1 -0
  662. package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +135 -210
  663. package/src/feature-libraries/flex-tree/README.md +4 -75
  664. package/src/feature-libraries/flex-tree/context.ts +37 -16
  665. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +69 -291
  666. package/src/feature-libraries/flex-tree/index.ts +7 -13
  667. package/src/feature-libraries/flex-tree/lazyEntity.ts +2 -11
  668. package/src/feature-libraries/flex-tree/lazyField.ts +49 -73
  669. package/src/feature-libraries/flex-tree/lazyNode.ts +25 -154
  670. package/src/feature-libraries/flex-tree/unboxed.ts +9 -68
  671. package/src/feature-libraries/flex-tree/utilities.ts +4 -8
  672. package/src/feature-libraries/forest-summary/forestSummarizer.ts +4 -1
  673. package/src/feature-libraries/index.ts +2 -27
  674. package/src/feature-libraries/modular-schema/comparison.ts +4 -6
  675. package/src/feature-libraries/modular-schema/discrepancies.ts +7 -16
  676. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +4 -1
  677. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +14 -4
  678. package/src/feature-libraries/storedToViewSchema.ts +5 -6
  679. package/src/feature-libraries/typed-schema/flexList.ts +3 -3
  680. package/src/feature-libraries/typed-schema/index.ts +1 -3
  681. package/src/feature-libraries/typed-schema/schemaCollection.ts +15 -17
  682. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +35 -127
  683. package/src/feature-libraries/typed-schema/view.ts +4 -13
  684. package/src/index.ts +4 -8
  685. package/src/packageVersion.ts +1 -1
  686. package/src/shared-tree/checkoutFlexTreeView.ts +89 -0
  687. package/src/shared-tree/index.ts +2 -7
  688. package/src/shared-tree/schematizeTree.ts +23 -12
  689. package/src/shared-tree/schematizingTreeView.ts +34 -24
  690. package/src/shared-tree/sharedTree.ts +6 -1
  691. package/src/shared-tree/sharedTreeChangeEnricher.ts +6 -1
  692. package/src/shared-tree/sharedTreeChangeFamily.ts +7 -1
  693. package/src/shared-tree/sharedTreeEditBuilder.ts +9 -4
  694. package/src/shared-tree/treeApi.ts +10 -10
  695. package/src/shared-tree/treeCheckout.ts +26 -15
  696. package/src/shared-tree-core/branch.ts +1 -1
  697. package/src/simple-tree/ProxyBinding.md +23 -23
  698. package/src/simple-tree/api/create.ts +8 -3
  699. package/src/simple-tree/{getJsonSchema.ts → api/getJsonSchema.ts} +3 -3
  700. package/src/simple-tree/{getSimpleSchema.ts → api/getSimpleSchema.ts} +3 -3
  701. package/src/simple-tree/api/index.ts +20 -0
  702. package/src/simple-tree/{jsonSchema.ts → api/jsonSchema.ts} +1 -1
  703. package/src/simple-tree/api/schemaFactory.ts +44 -13
  704. package/src/simple-tree/{simpleSchema.ts → api/simpleSchema.ts} +4 -4
  705. package/src/simple-tree/{simpleSchemaToJsonSchema.ts → api/simpleSchemaToJsonSchema.ts} +4 -4
  706. package/src/simple-tree/api/tree.ts +2 -71
  707. package/src/simple-tree/api/treeApiBeta.ts +101 -0
  708. package/src/simple-tree/api/treeNodeApi.ts +32 -23
  709. package/src/simple-tree/api/verboseTree.ts +1 -1
  710. package/src/simple-tree/{viewSchemaToSimpleSchema.ts → api/viewSchemaToSimpleSchema.ts} +5 -5
  711. package/src/simple-tree/arrayNode.ts +37 -31
  712. package/src/simple-tree/core/index.ts +4 -1
  713. package/src/simple-tree/core/schemaCaching.ts +10 -0
  714. package/src/simple-tree/core/treeNodeKernel.ts +198 -5
  715. package/src/simple-tree/core/treeNodeSchema.ts +1 -1
  716. package/src/simple-tree/core/types.ts +16 -27
  717. package/src/simple-tree/core/withType.ts +3 -1
  718. package/src/simple-tree/index.ts +29 -21
  719. package/src/simple-tree/leafNodeSchema.ts +24 -28
  720. package/src/simple-tree/mapNode.ts +47 -29
  721. package/src/simple-tree/objectNode.ts +51 -46
  722. package/src/simple-tree/proxies.ts +22 -51
  723. package/src/simple-tree/proxyBinding.ts +3 -254
  724. package/src/simple-tree/schemaTypes.ts +8 -8
  725. package/src/simple-tree/toFlexSchema.ts +40 -7
  726. package/src/simple-tree/toMapTree.ts +113 -79
  727. package/src/simple-tree/treeNodeValid.ts +10 -13
  728. package/src/simple-tree/typesUnsafe.ts +13 -13
  729. package/src/simple-tree/walkSchema.ts +81 -0
  730. package/src/treeFactory.ts +2 -1
  731. package/src/util/typeUtils.ts +2 -2
  732. package/dist/core/revertible/index.d.ts.map +0 -1
  733. package/dist/core/revertible/index.js +0 -10
  734. package/dist/core/revertible/index.js.map +0 -1
  735. package/dist/core/revertible/revertible.d.ts.map +0 -1
  736. package/dist/core/revertible/revertible.js.map +0 -1
  737. package/dist/domains/index.d.ts +0 -8
  738. package/dist/domains/index.d.ts.map +0 -1
  739. package/dist/domains/index.js +0 -20
  740. package/dist/domains/index.js.map +0 -1
  741. package/dist/domains/json/index.d.ts +0 -7
  742. package/dist/domains/json/index.d.ts.map +0 -1
  743. package/dist/domains/json/index.js +0 -17
  744. package/dist/domains/json/index.js.map +0 -1
  745. package/dist/domains/json/jsonCursor.d.ts +0 -52
  746. package/dist/domains/json/jsonCursor.d.ts.map +0 -1
  747. package/dist/domains/json/jsonCursor.js +0 -197
  748. package/dist/domains/json/jsonCursor.js.map +0 -1
  749. package/dist/domains/json/jsonDomainSchema.d.ts +0 -24
  750. package/dist/domains/json/jsonDomainSchema.d.ts.map +0 -1
  751. package/dist/domains/json/jsonDomainSchema.js +0 -32
  752. package/dist/domains/json/jsonDomainSchema.js.map +0 -1
  753. package/dist/domains/leafDomain.d.ts +0 -72
  754. package/dist/domains/leafDomain.d.ts.map +0 -1
  755. package/dist/domains/leafDomain.js +0 -88
  756. package/dist/domains/leafDomain.js.map +0 -1
  757. package/dist/domains/schemaBuilder.d.ts +0 -103
  758. package/dist/domains/schemaBuilder.d.ts.map +0 -1
  759. package/dist/domains/schemaBuilder.js +0 -121
  760. package/dist/domains/schemaBuilder.js.map +0 -1
  761. package/dist/domains/testRecursiveDomain.d.ts +0 -17
  762. package/dist/domains/testRecursiveDomain.d.ts.map +0 -1
  763. package/dist/domains/testRecursiveDomain.js +0 -35
  764. package/dist/domains/testRecursiveDomain.js.map +0 -1
  765. package/dist/events/events.d.ts +0 -207
  766. package/dist/events/events.d.ts.map +0 -1
  767. package/dist/events/events.js.map +0 -1
  768. package/dist/feature-libraries/schemaBuilder.d.ts +0 -31
  769. package/dist/feature-libraries/schemaBuilder.d.ts.map +0 -1
  770. package/dist/feature-libraries/schemaBuilder.js +0 -40
  771. package/dist/feature-libraries/schemaBuilder.js.map +0 -1
  772. package/dist/feature-libraries/schemaBuilderBase.d.ts +0 -191
  773. package/dist/feature-libraries/schemaBuilderBase.d.ts.map +0 -1
  774. package/dist/feature-libraries/schemaBuilderBase.js +0 -201
  775. package/dist/feature-libraries/schemaBuilderBase.js.map +0 -1
  776. package/dist/shared-tree/treeView.d.ts +0 -73
  777. package/dist/shared-tree/treeView.d.ts.map +0 -1
  778. package/dist/shared-tree/treeView.js.map +0 -1
  779. package/dist/simple-tree/getJsonSchema.d.ts.map +0 -1
  780. package/dist/simple-tree/getJsonSchema.js.map +0 -1
  781. package/dist/simple-tree/getSimpleSchema.d.ts.map +0 -1
  782. package/dist/simple-tree/getSimpleSchema.js.map +0 -1
  783. package/dist/simple-tree/jsonSchema.d.ts.map +0 -1
  784. package/dist/simple-tree/jsonSchema.js.map +0 -1
  785. package/dist/simple-tree/simpleSchema.d.ts.map +0 -1
  786. package/dist/simple-tree/simpleSchema.js.map +0 -1
  787. package/dist/simple-tree/simpleSchemaToJsonSchema.d.ts.map +0 -1
  788. package/dist/simple-tree/simpleSchemaToJsonSchema.js.map +0 -1
  789. package/dist/simple-tree/viewSchemaToSimpleSchema.d.ts.map +0 -1
  790. package/dist/simple-tree/viewSchemaToSimpleSchema.js.map +0 -1
  791. package/lib/core/revertible/index.d.ts.map +0 -1
  792. package/lib/core/revertible/index.js.map +0 -1
  793. package/lib/core/revertible/revertible.d.ts.map +0 -1
  794. package/lib/core/revertible/revertible.js.map +0 -1
  795. package/lib/domains/index.d.ts +0 -8
  796. package/lib/domains/index.d.ts.map +0 -1
  797. package/lib/domains/index.js +0 -8
  798. package/lib/domains/index.js.map +0 -1
  799. package/lib/domains/json/index.d.ts +0 -7
  800. package/lib/domains/json/index.d.ts.map +0 -1
  801. package/lib/domains/json/index.js +0 -7
  802. package/lib/domains/json/index.js.map +0 -1
  803. package/lib/domains/json/jsonCursor.d.ts +0 -52
  804. package/lib/domains/json/jsonCursor.d.ts.map +0 -1
  805. package/lib/domains/json/jsonCursor.js +0 -192
  806. package/lib/domains/json/jsonCursor.js.map +0 -1
  807. package/lib/domains/json/jsonDomainSchema.d.ts +0 -24
  808. package/lib/domains/json/jsonDomainSchema.d.ts.map +0 -1
  809. package/lib/domains/json/jsonDomainSchema.js +0 -29
  810. package/lib/domains/json/jsonDomainSchema.js.map +0 -1
  811. package/lib/domains/leafDomain.d.ts +0 -72
  812. package/lib/domains/leafDomain.d.ts.map +0 -1
  813. package/lib/domains/leafDomain.js +0 -85
  814. package/lib/domains/leafDomain.js.map +0 -1
  815. package/lib/domains/schemaBuilder.d.ts +0 -103
  816. package/lib/domains/schemaBuilder.d.ts.map +0 -1
  817. package/lib/domains/schemaBuilder.js +0 -117
  818. package/lib/domains/schemaBuilder.js.map +0 -1
  819. package/lib/domains/testRecursiveDomain.d.ts +0 -17
  820. package/lib/domains/testRecursiveDomain.d.ts.map +0 -1
  821. package/lib/domains/testRecursiveDomain.js +0 -32
  822. package/lib/domains/testRecursiveDomain.js.map +0 -1
  823. package/lib/events/events.d.ts +0 -207
  824. package/lib/events/events.d.ts.map +0 -1
  825. package/lib/events/events.js.map +0 -1
  826. package/lib/feature-libraries/schemaBuilder.d.ts +0 -31
  827. package/lib/feature-libraries/schemaBuilder.d.ts.map +0 -1
  828. package/lib/feature-libraries/schemaBuilder.js +0 -36
  829. package/lib/feature-libraries/schemaBuilder.js.map +0 -1
  830. package/lib/feature-libraries/schemaBuilderBase.d.ts +0 -191
  831. package/lib/feature-libraries/schemaBuilderBase.d.ts.map +0 -1
  832. package/lib/feature-libraries/schemaBuilderBase.js +0 -195
  833. package/lib/feature-libraries/schemaBuilderBase.js.map +0 -1
  834. package/lib/shared-tree/treeView.d.ts +0 -73
  835. package/lib/shared-tree/treeView.d.ts.map +0 -1
  836. package/lib/shared-tree/treeView.js.map +0 -1
  837. package/lib/simple-tree/getJsonSchema.d.ts.map +0 -1
  838. package/lib/simple-tree/getJsonSchema.js.map +0 -1
  839. package/lib/simple-tree/getSimpleSchema.d.ts.map +0 -1
  840. package/lib/simple-tree/getSimpleSchema.js.map +0 -1
  841. package/lib/simple-tree/jsonSchema.d.ts.map +0 -1
  842. package/lib/simple-tree/jsonSchema.js.map +0 -1
  843. package/lib/simple-tree/simpleSchema.d.ts.map +0 -1
  844. package/lib/simple-tree/simpleSchema.js.map +0 -1
  845. package/lib/simple-tree/simpleSchemaToJsonSchema.d.ts.map +0 -1
  846. package/lib/simple-tree/simpleSchemaToJsonSchema.js.map +0 -1
  847. package/lib/simple-tree/viewSchemaToSimpleSchema.d.ts.map +0 -1
  848. package/src/domains/README.md +0 -6
  849. package/src/domains/fence.json +0 -5
  850. package/src/domains/index.ts +0 -19
  851. package/src/domains/json/fence.json +0 -5
  852. package/src/domains/json/index.ts +0 -13
  853. package/src/domains/json/jsonCursor.ts +0 -247
  854. package/src/domains/json/jsonDomainSchema.ts +0 -47
  855. package/src/domains/leafDomain.ts +0 -97
  856. package/src/domains/schemaBuilder.ts +0 -153
  857. package/src/domains/testRecursiveDomain.ts +0 -38
  858. package/src/events/fence.json +0 -5
  859. package/src/feature-libraries/schemaBuilder.ts +0 -45
  860. package/src/feature-libraries/schemaBuilderBase.ts +0 -393
  861. package/src/shared-tree/treeView.ts +0 -113
  862. /package/dist/core/{revertible/revertible.js → revertible.js} +0 -0
  863. /package/dist/simple-tree/{jsonSchema.js → api/jsonSchema.js} +0 -0
  864. /package/dist/simple-tree/{simpleSchema.js → api/simpleSchema.js} +0 -0
  865. /package/dist/simple-tree/{simpleSchemaToJsonSchema.d.ts → api/simpleSchemaToJsonSchema.d.ts} +0 -0
  866. /package/lib/core/{revertible/revertible.js → revertible.js} +0 -0
  867. /package/lib/simple-tree/{jsonSchema.js → api/jsonSchema.js} +0 -0
  868. /package/lib/simple-tree/{simpleSchema.js → api/simpleSchema.js} +0 -0
  869. /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();
@@ -87,6 +87,7 @@ import type {
87
87
  NodeId,
88
88
  TupleBTree,
89
89
  } from "./modularChangeTypes.js";
90
+ import type { IIdCompressor } from "@fluidframework/id-compressor";
90
91
 
91
92
  /**
92
93
  * Implementation of ChangeFamily which delegates work in a given field to the appropriate FieldKind
@@ -673,7 +674,7 @@ export class ModularChangeFamily
673
674
  0x89a /* Unexpected destroys in change to invert */,
674
675
  );
675
676
 
676
- if ((change.change.constraintViolationCount ?? 0) > 0) {
677
+ if (hasConflicts(change.change)) {
677
678
  return makeModularChangeset(
678
679
  undefined,
679
680
  undefined,
@@ -827,6 +828,10 @@ export class ModularChangeFamily
827
828
  over: TaggedChange<ModularChangeset>,
828
829
  revisionMetadata: RevisionMetadataSource,
829
830
  ): ModularChangeset {
831
+ if (hasConflicts(over.change)) {
832
+ return taggedChange.change;
833
+ }
834
+
830
835
  const change = taggedChange.change;
831
836
  const maxId = Math.max(change.maxId ?? -1, over.change.maxId ?? -1);
832
837
  const idState: IdAllocationState = { maxId };
@@ -1845,7 +1850,7 @@ export function intoDelta(
1845
1850
  const idAllocator = MemoizedIdRangeAllocator.fromNextId();
1846
1851
  const rootDelta: Mutable<DeltaRoot> = {};
1847
1852
 
1848
- if ((change.constraintViolationCount ?? 0) === 0) {
1853
+ if (!hasConflicts(change)) {
1849
1854
  // If there are no constraint violations, then tree changes apply.
1850
1855
  const fieldDeltas = intoDeltaImpl(
1851
1856
  change.fieldChanges,
@@ -2466,15 +2471,20 @@ export class ModularEditBuilder extends EditBuilder<ModularChangeset> {
2466
2471
  public buildTrees(
2467
2472
  firstId: ChangesetLocalId,
2468
2473
  content: ITreeCursorSynchronous,
2474
+ idCompressor?: IIdCompressor,
2469
2475
  ): GlobalEditDescription {
2470
2476
  if (content.mode === CursorLocationType.Fields && content.getFieldLength() === 0) {
2471
2477
  return { type: "global" };
2472
2478
  }
2473
2479
  const builds: ChangeAtomIdBTree<TreeChunk> = newTupleBTree();
2480
+ const chunkCompressor = {
2481
+ policy: defaultChunkPolicy,
2482
+ idCompressor,
2483
+ };
2474
2484
  const chunk =
2475
2485
  content.mode === CursorLocationType.Fields
2476
- ? chunkFieldSingle(content, defaultChunkPolicy)
2477
- : chunkTree(content, defaultChunkPolicy);
2486
+ ? chunkFieldSingle(content, chunkCompressor)
2487
+ : chunkTree(content, chunkCompressor);
2478
2488
  builds.set([undefined, firstId], chunk);
2479
2489
 
2480
2490
  return {
@@ -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);
@@ -21,7 +21,6 @@ import {
21
21
  identifierFieldKindIdentifier,
22
22
  } from "../../core/index.js";
23
23
  import {
24
- type Assume,
25
24
  type MakeNominal,
26
25
  type Named,
27
26
  compareSets,
@@ -29,6 +28,7 @@ import {
29
28
  oneFromSet,
30
29
  type requireAssignableTo,
31
30
  filterIterable,
31
+ brand,
32
32
  } from "../../util/index.js";
33
33
  import { FieldKinds } from "../default-schema/index.js";
34
34
  import type { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
@@ -42,12 +42,6 @@ export interface FlexObjectNodeFields {
42
42
  readonly [key: string]: FlexFieldSchema;
43
43
  }
44
44
 
45
- /**
46
- */
47
- export type NormalizeObjectNodeFields<T extends FlexObjectNodeFields> = {
48
- readonly [Property in keyof T]: NormalizeField<T[Property]>;
49
- };
50
-
51
45
  /**
52
46
  * A placeholder to use in {@link https://www.typescriptlang.org/docs/handbook/2/generics.html#generic-constraints | extends constraints} when using the real type breaks compilation of some recursive types due to {@link https://github.com/microsoft/TypeScript/issues/55758 | a design limitation of TypeScript}.
53
47
  *
@@ -67,14 +61,11 @@ export type Unenforced<_DesiredExtendsConstraint> = unknown;
67
61
  * This can not be enforced using TypeScript since doing so breaks recursive type support.
68
62
  * See note on SchemaBuilder.fieldRecursive.
69
63
  */
70
- export abstract class TreeNodeSchemaBase<
71
- const out Name extends string = string,
72
- const out Specification = unknown,
73
- > {
64
+ export abstract class TreeNodeSchemaBase<const out Specification = unknown> {
74
65
  protected _typeCheck!: MakeNominal;
75
66
  protected constructor(
76
67
  public readonly builder: Named<string>,
77
- public readonly name: TreeNodeSchemaIdentifier<Name>,
68
+ public readonly name: TreeNodeSchemaIdentifier,
78
69
  public readonly info: Specification,
79
70
  public readonly stored: TreeNodeStoredSchema,
80
71
  ) {}
@@ -83,23 +74,17 @@ export abstract class TreeNodeSchemaBase<
83
74
 
84
75
  /**
85
76
  */
86
- export class FlexMapNodeSchema<
87
- const out Name extends string = string,
88
- const out Specification extends Unenforced<FlexMapFieldSchema> = FlexMapFieldSchema,
89
- > extends TreeNodeSchemaBase<Name, Specification> {
77
+ export class FlexMapNodeSchema extends TreeNodeSchemaBase {
90
78
  public get mapFields(): FlexMapFieldSchema {
91
79
  return this.info as FlexMapFieldSchema;
92
80
  }
93
81
 
94
82
  protected _typeCheck2?: MakeNominal;
95
- public static create<
96
- const Name extends string,
97
- const Specification extends FlexMapFieldSchema,
98
- >(
83
+ public static create<const Name extends string>(
99
84
  builder: Named<string>,
100
85
  name: TreeNodeSchemaIdentifier<Name>,
101
- specification: Specification,
102
- ): FlexMapNodeSchema<Name, Specification> {
86
+ specification: FlexMapFieldSchema,
87
+ ): FlexMapNodeSchema {
103
88
  return new FlexMapNodeSchema(
104
89
  builder,
105
90
  name,
@@ -115,26 +100,10 @@ export class FlexMapNodeSchema<
115
100
 
116
101
  /**
117
102
  */
118
- export class LeafNodeSchema<
119
- const out Name extends string = string,
120
- const out Specification extends Unenforced<ValueSchema> = ValueSchema,
121
- > extends TreeNodeSchemaBase<Name, Specification> {
122
- public get leafValue(): ValueSchema {
123
- return this.info as ValueSchema;
124
- }
125
-
103
+ export class LeafNodeSchema extends TreeNodeSchemaBase<ValueSchema> {
126
104
  protected _typeCheck2?: MakeNominal;
127
- public static create<const Name extends string, const Specification extends ValueSchema>(
128
- builder: Named<string>,
129
- name: TreeNodeSchemaIdentifier<Name>,
130
- specification: Specification,
131
- ): LeafNodeSchema<Name, Specification> {
132
- return new LeafNodeSchema(
133
- builder,
134
- name,
135
- specification,
136
- new LeafNodeStoredSchema(specification),
137
- );
105
+ public constructor(builder: Named<string>, name: string, specification: ValueSchema) {
106
+ super(builder, brand(name), specification, new LeafNodeStoredSchema(specification));
138
107
  }
139
108
 
140
109
  public override getFieldSchema(field: FieldKey): FlexFieldSchema {
@@ -144,28 +113,18 @@ export class LeafNodeSchema<
144
113
 
145
114
  /**
146
115
  */
147
- export class FlexObjectNodeSchema<
148
- const out Name extends string = string,
149
- const out Specification extends Unenforced<FlexObjectNodeFields> = FlexObjectNodeFields,
150
- > extends TreeNodeSchemaBase<Name, Specification> {
116
+ export class FlexObjectNodeSchema extends TreeNodeSchemaBase {
151
117
  protected _typeCheck2?: MakeNominal;
152
118
  public readonly identifierFieldKeys: readonly FieldKey[] = [];
153
119
 
154
- public static create<
155
- const Name extends string,
156
- const Specification extends FlexObjectNodeFields,
157
- >(
120
+ public static create(
158
121
  builder: Named<string>,
159
- name: TreeNodeSchemaIdentifier<Name>,
160
- specification: Specification,
161
- ): FlexObjectNodeSchema<Name, Specification> {
162
- const objectNodeFieldsObject: NormalizeObjectNodeFields<Specification> =
163
- normalizeStructFields<Specification>(specification);
164
- const objectNodeFields: ObjectToMap<
165
- NormalizeObjectNodeFields<Specification>,
166
- FieldKey,
167
- FlexFieldSchema
168
- > = objectToMapTyped(objectNodeFieldsObject);
122
+ name: TreeNodeSchemaIdentifier,
123
+ specification: FlexObjectNodeFields,
124
+ ): FlexObjectNodeSchema {
125
+ const objectNodeFieldsObject = normalizeStructFields(specification);
126
+ const objectNodeFields: ObjectToMap<FlexObjectNodeFields, FieldKey, FlexFieldSchema> =
127
+ objectToMapTyped(objectNodeFieldsObject);
169
128
  return new FlexObjectNodeSchema(
170
129
  builder,
171
130
  name,
@@ -177,11 +136,9 @@ export class FlexObjectNodeSchema<
177
136
 
178
137
  private constructor(
179
138
  builder: Named<string>,
180
- name: TreeNodeSchemaIdentifier<Name>,
181
- info: Specification,
182
- public readonly objectNodeFieldsObject: NormalizeObjectNodeFields<
183
- Assume<Specification, FlexObjectNodeFields>
184
- >,
139
+ name: TreeNodeSchemaIdentifier,
140
+ info: FlexObjectNodeFields,
141
+ public readonly objectNodeFieldsObject: FlexObjectNodeFields,
185
142
  // Allows reading fields through the normal map.
186
143
  // Stricter typing caused Specification to no longer be covariant, so has been removed.
187
144
  public readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,
@@ -211,16 +168,9 @@ export class FlexObjectNodeSchema<
211
168
  */
212
169
  export type FlexTreeNodeSchema = TreeNodeSchemaBase;
213
170
 
214
- /**
215
- * Convert FieldSchemaSpecification | undefined into TreeFieldSchema.
216
- */
217
- export type NormalizeField<T extends FlexFieldSchema | undefined> = T extends FlexFieldSchema
218
- ? T
219
- : FlexFieldSchema<typeof FieldKinds.forbidden, []>;
220
-
221
171
  function normalizeStructFields<T extends FlexObjectNodeFields>(
222
172
  fields: T,
223
- ): NormalizeObjectNodeFields<T> {
173
+ ): FlexObjectNodeFields {
224
174
  const out: Record<string, FlexFieldSchema> = {};
225
175
  // eslint-disable-next-line no-restricted-syntax
226
176
  for (const key in fields) {
@@ -229,27 +179,18 @@ function normalizeStructFields<T extends FlexObjectNodeFields>(
229
179
  out[key] = normalizeField(element);
230
180
  }
231
181
  }
232
- return out as NormalizeObjectNodeFields<T>;
182
+ return out;
233
183
  }
234
184
 
235
- function normalizeField<T extends FlexFieldSchema | undefined>(t: T): NormalizeField<T> {
185
+ function normalizeField(t: FlexFieldSchema | undefined): FlexFieldSchema {
236
186
  if (t === undefined) {
237
- return FlexFieldSchema.empty as unknown as NormalizeField<T>;
187
+ return FlexFieldSchema.empty;
238
188
  }
239
189
 
240
190
  assert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);
241
- return t as NormalizeField<T>;
191
+ return t;
242
192
  }
243
193
 
244
- /**
245
- * Allow any node (as long as it meets the schema for its own type).
246
- */
247
- export const Any = "Any" as const;
248
- /**
249
- * Allow any node (as long as it meets the schema for its own type).
250
- */
251
- export type Any = typeof Any;
252
-
253
194
  /**
254
195
  * Tree type, but can be wrapped in a function to allow referring to types before they are declared.
255
196
  * This makes recursive and co-recursive types possible.
@@ -258,17 +199,8 @@ export type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema)
258
199
 
259
200
  /**
260
201
  * Types for use in fields.
261
- *
262
- * "Any" is boxed in an array to allow use as variadic parameter.
263
202
  */
264
- export type FlexAllowedTypes = readonly [Any] | readonly LazyItem<FlexTreeNodeSchema>[];
265
-
266
- /**
267
- * Checks if an {@link FlexAllowedTypes} is {@link (Any:type)}.
268
- */
269
- export function allowedTypesIsAny(t: FlexAllowedTypes): t is readonly [Any] {
270
- return t.length === 1 && t[0] === Any;
271
- }
203
+ export type FlexAllowedTypes = readonly LazyItem<FlexTreeNodeSchema>[];
272
204
 
273
205
  /**
274
206
  * Subset of TreeFieldSchema thats legal in maps.
@@ -292,10 +224,7 @@ export type FlexMapFieldSchema = FlexFieldSchema<
292
224
  *
293
225
  * @sealed
294
226
  */
295
- export class FlexFieldSchema<
296
- out TKind extends FlexFieldKind = FlexFieldKind,
297
- const out TTypes extends Unenforced<FlexAllowedTypes> = FlexAllowedTypes,
298
- > {
227
+ export class FlexFieldSchema<out TKind extends FlexFieldKind = FlexFieldKind> {
299
228
  /**
300
229
  * Schema for a field which must always be empty.
301
230
  */
@@ -306,23 +235,10 @@ export class FlexFieldSchema<
306
235
  * @privateRemarks
307
236
  * Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).
308
237
  */
309
- public static create<TKind extends FlexFieldKind, const Types extends FlexAllowedTypes>(
238
+ public static create<TKind extends FlexFieldKind>(
310
239
  kind: TKind,
311
- allowedTypes: Types,
312
- ): FlexFieldSchema<TKind, Types> {
313
- return new FlexFieldSchema(kind, allowedTypes);
314
- }
315
-
316
- /**
317
- * Constructs a TreeFieldSchema, but missing the extends clause which breaks most recursive types.
318
- * @remarks
319
- * `Types` here must extend `AllowedTypes`, but this cannot be enforced with an "extends" clause: see {@link Unenforced} for details.
320
- * Prefer {@link FlexFieldSchema.create} when possible.
321
- */
322
- public static createUnsafe<
323
- TKind extends FlexFieldKind,
324
- const Types extends Unenforced<FlexAllowedTypes>,
325
- >(kind: TKind, allowedTypes: Types): FlexFieldSchema<TKind, Types> {
240
+ allowedTypes: FlexAllowedTypes,
241
+ ): FlexFieldSchema<TKind> {
326
242
  return new FlexFieldSchema(kind, allowedTypes);
327
243
  }
328
244
 
@@ -344,14 +260,12 @@ export class FlexFieldSchema<
344
260
  */
345
261
  private constructor(
346
262
  public readonly kind: TKind,
347
- public readonly allowedTypes: TTypes,
263
+ public readonly allowedTypes: FlexAllowedTypes,
348
264
  ) {
349
265
  // Since this class can't have the desired extends clause, do some extra runtime validation:
350
266
  assert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);
351
267
  for (const allowedType of allowedTypes) {
352
- if (allowedType === Any) {
353
- assert(allowedTypes.length === 1, 0x7bd /* Invalid Any in allowedTypes */);
354
- } else if (typeof allowedType !== "function") {
268
+ if (typeof allowedType !== "function") {
355
269
  assert(
356
270
  allowedType instanceof TreeNodeSchemaBase,
357
271
  0x7be /* Invalid entry in allowedTypes */,
@@ -365,7 +279,7 @@ export class FlexFieldSchema<
365
279
  return {
366
280
  names: allowedTypesToTypeSet(input),
367
281
  schema,
368
- monomorphicChildType: schema !== Any ? oneFromSet(schema) : undefined,
282
+ monomorphicChildType: oneFromSet(schema),
369
283
  };
370
284
  });
371
285
 
@@ -444,15 +358,12 @@ export class FlexFieldSchema<
444
358
  * See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.
445
359
  * See {@link FlexAllowedTypes} for a compile time optimized version.
446
360
  */
447
- export type AllowedTypeSet = Any | ReadonlySet<FlexTreeNodeSchema>;
361
+ export type AllowedTypeSet = ReadonlySet<FlexTreeNodeSchema>;
448
362
 
449
363
  /**
450
364
  * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
451
365
  */
452
366
  export function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {
453
- if (allowedTypesIsAny(t)) {
454
- return Any;
455
- }
456
367
  const list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {
457
368
  if (typeof value === "function") {
458
369
  return value();
@@ -467,9 +378,6 @@ export function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {
467
378
  */
468
379
  export function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {
469
380
  const list = allowedTypesSchemaSet(t);
470
- if (list === Any) {
471
- return undefined;
472
- }
473
381
  const names = Array.from(list, (type) => {
474
382
  assert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);
475
383
  return type.name;