@fluidframework/tree 2.4.0-297385 → 2.4.0-299374

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 (394) hide show
  1. package/.dependency-cruiser-known-violations.json +0 -14
  2. package/.vscode/settings.json +9 -1
  3. package/api-report/tree.alpha.api.md +178 -21
  4. package/api-report/tree.beta.api.md +46 -21
  5. package/api-report/tree.legacy.alpha.api.md +46 -21
  6. package/api-report/tree.legacy.public.api.md +46 -21
  7. package/api-report/tree.public.api.md +46 -21
  8. package/dist/alpha.d.ts +29 -1
  9. package/dist/beta.d.ts +2 -0
  10. package/dist/codec/codec.d.ts +4 -4
  11. package/dist/codec/codec.js.map +1 -1
  12. package/dist/codec/noopValidator.d.ts +1 -1
  13. package/dist/codec/noopValidator.js +1 -1
  14. package/dist/codec/noopValidator.js.map +1 -1
  15. package/dist/core/tree/anchorSet.d.ts +159 -2
  16. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  17. package/dist/core/tree/anchorSet.js +54 -12
  18. package/dist/core/tree/anchorSet.js.map +1 -1
  19. package/dist/external-utilities/typeboxValidator.d.ts +1 -1
  20. package/dist/external-utilities/typeboxValidator.js +1 -1
  21. package/dist/external-utilities/typeboxValidator.js.map +1 -1
  22. package/dist/feature-libraries/flex-tree/lazyField.d.ts +4 -0
  23. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  24. package/dist/feature-libraries/flex-tree/lazyField.js +38 -6
  25. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  26. package/dist/feature-libraries/index.d.ts +0 -1
  27. package/dist/feature-libraries/index.d.ts.map +1 -1
  28. package/dist/feature-libraries/index.js +46 -49
  29. package/dist/feature-libraries/index.js.map +1 -1
  30. package/dist/feature-libraries/treeCompressionUtils.d.ts +1 -1
  31. package/dist/feature-libraries/treeCompressionUtils.js +1 -1
  32. package/dist/feature-libraries/treeCompressionUtils.js.map +1 -1
  33. package/dist/index.d.ts +6 -5
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +4 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/internalTypes.d.ts +2 -2
  38. package/dist/internalTypes.d.ts.map +1 -1
  39. package/dist/internalTypes.js.map +1 -1
  40. package/dist/legacy.d.ts +2 -0
  41. package/dist/packageVersion.d.ts +1 -1
  42. package/dist/packageVersion.js +1 -1
  43. package/dist/packageVersion.js.map +1 -1
  44. package/dist/public.d.ts +2 -0
  45. package/dist/shared-tree/index.d.ts +2 -1
  46. package/dist/shared-tree/index.d.ts.map +1 -1
  47. package/dist/shared-tree/index.js +5 -1
  48. package/dist/shared-tree/index.js.map +1 -1
  49. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  50. package/dist/shared-tree/schematizingTreeView.js +1 -14
  51. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  52. package/dist/shared-tree/sharedTree.d.ts +24 -9
  53. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  54. package/dist/shared-tree/sharedTree.js +20 -8
  55. package/dist/shared-tree/sharedTree.js.map +1 -1
  56. package/dist/shared-tree/treeApi.d.ts +6 -6
  57. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  58. package/dist/shared-tree/treeApi.js.map +1 -1
  59. package/dist/simple-tree/api/conciseTree.d.ts +29 -0
  60. package/dist/simple-tree/api/conciseTree.d.ts.map +1 -0
  61. package/dist/simple-tree/api/conciseTree.js +25 -0
  62. package/dist/simple-tree/api/conciseTree.js.map +1 -0
  63. package/dist/simple-tree/api/customTree.d.ts +44 -0
  64. package/dist/simple-tree/api/customTree.d.ts.map +1 -0
  65. package/dist/simple-tree/api/customTree.js +63 -0
  66. package/dist/simple-tree/api/customTree.js.map +1 -0
  67. package/dist/simple-tree/api/index.d.ts +7 -2
  68. package/dist/simple-tree/api/index.d.ts.map +1 -1
  69. package/dist/simple-tree/api/index.js +5 -1
  70. package/dist/simple-tree/api/index.js.map +1 -1
  71. package/dist/simple-tree/api/schemaCreationUtilities.d.ts +41 -26
  72. package/dist/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
  73. package/dist/simple-tree/api/schemaCreationUtilities.js +43 -15
  74. package/dist/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  75. package/dist/simple-tree/api/schemaFactory.d.ts +1 -2
  76. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  77. package/dist/simple-tree/api/schemaFactory.js +8 -8
  78. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  79. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +1 -2
  80. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  81. package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  82. package/dist/simple-tree/api/storedSchema.d.ts +78 -0
  83. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -0
  84. package/dist/simple-tree/api/storedSchema.js +107 -0
  85. package/dist/simple-tree/api/storedSchema.js.map +1 -0
  86. package/dist/simple-tree/api/testRecursiveDomain.d.ts +10 -10
  87. package/dist/simple-tree/api/tree.d.ts +12 -3
  88. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  89. package/dist/simple-tree/api/tree.js.map +1 -1
  90. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  91. package/dist/simple-tree/api/treeNodeApi.js +5 -5
  92. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  93. package/dist/simple-tree/{typesUnsafe.d.ts → api/typesUnsafe.d.ts} +58 -10
  94. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -0
  95. package/dist/simple-tree/api/typesUnsafe.js.map +1 -0
  96. package/dist/simple-tree/api/verboseTree.d.ts +6 -20
  97. package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
  98. package/dist/simple-tree/api/verboseTree.js +10 -48
  99. package/dist/simple-tree/api/verboseTree.js.map +1 -1
  100. package/dist/simple-tree/arrayNode.d.ts +14 -3
  101. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  102. package/dist/simple-tree/arrayNode.js +1 -2
  103. package/dist/simple-tree/arrayNode.js.map +1 -1
  104. package/dist/simple-tree/core/index.d.ts +1 -1
  105. package/dist/simple-tree/core/index.d.ts.map +1 -1
  106. package/dist/simple-tree/core/index.js +2 -1
  107. package/dist/simple-tree/core/index.js.map +1 -1
  108. package/dist/simple-tree/core/treeNodeKernel.d.ts +9 -0
  109. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  110. package/dist/simple-tree/core/treeNodeKernel.js +14 -1
  111. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  112. package/dist/simple-tree/core/treeNodeSchema.d.ts +6 -5
  113. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  114. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  115. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  116. package/dist/simple-tree/core/unhydratedFlexTree.js +3 -1
  117. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  118. package/dist/simple-tree/core/withType.d.ts +3 -1
  119. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  120. package/dist/simple-tree/core/withType.js.map +1 -1
  121. package/dist/simple-tree/flexList.d.ts.map +1 -0
  122. package/dist/simple-tree/flexList.js.map +1 -0
  123. package/dist/simple-tree/index.d.ts +6 -7
  124. package/dist/simple-tree/index.d.ts.map +1 -1
  125. package/dist/simple-tree/index.js +5 -3
  126. package/dist/simple-tree/index.js.map +1 -1
  127. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  128. package/dist/simple-tree/mapNode.js +2 -3
  129. package/dist/simple-tree/mapNode.js.map +1 -1
  130. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  131. package/dist/simple-tree/objectNode.js +3 -4
  132. package/dist/simple-tree/objectNode.js.map +1 -1
  133. package/dist/simple-tree/schemaTypes.d.ts +60 -7
  134. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  135. package/dist/simple-tree/schemaTypes.js +11 -6
  136. package/dist/simple-tree/schemaTypes.js.map +1 -1
  137. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  138. package/dist/simple-tree/toFlexSchema.js +13 -15
  139. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  140. package/dist/simple-tree/toMapTree.d.ts +4 -2
  141. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  142. package/dist/simple-tree/toMapTree.js +3 -3
  143. package/dist/simple-tree/toMapTree.js.map +1 -1
  144. package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
  145. package/dist/simple-tree/treeNodeValid.js +2 -1
  146. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  147. package/dist/treeFactory.d.ts +1 -0
  148. package/dist/treeFactory.d.ts.map +1 -1
  149. package/dist/treeFactory.js +1 -0
  150. package/dist/treeFactory.js.map +1 -1
  151. package/dist/util/utils.d.ts +10 -8
  152. package/dist/util/utils.d.ts.map +1 -1
  153. package/dist/util/utils.js.map +1 -1
  154. package/docs/main/detached-trees.md +8 -8
  155. package/lib/alpha.d.ts +29 -1
  156. package/lib/beta.d.ts +2 -0
  157. package/lib/codec/codec.d.ts +4 -4
  158. package/lib/codec/codec.js.map +1 -1
  159. package/lib/codec/noopValidator.d.ts +1 -1
  160. package/lib/codec/noopValidator.js +1 -1
  161. package/lib/codec/noopValidator.js.map +1 -1
  162. package/lib/core/tree/anchorSet.d.ts +159 -2
  163. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  164. package/lib/core/tree/anchorSet.js +54 -12
  165. package/lib/core/tree/anchorSet.js.map +1 -1
  166. package/lib/external-utilities/typeboxValidator.d.ts +1 -1
  167. package/lib/external-utilities/typeboxValidator.js +1 -1
  168. package/lib/external-utilities/typeboxValidator.js.map +1 -1
  169. package/lib/feature-libraries/flex-tree/lazyField.d.ts +4 -0
  170. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  171. package/lib/feature-libraries/flex-tree/lazyField.js +36 -5
  172. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  173. package/lib/feature-libraries/index.d.ts +0 -1
  174. package/lib/feature-libraries/index.d.ts.map +1 -1
  175. package/lib/feature-libraries/index.js +0 -1
  176. package/lib/feature-libraries/index.js.map +1 -1
  177. package/lib/feature-libraries/treeCompressionUtils.d.ts +1 -1
  178. package/lib/feature-libraries/treeCompressionUtils.js +1 -1
  179. package/lib/feature-libraries/treeCompressionUtils.js.map +1 -1
  180. package/lib/index.d.ts +6 -5
  181. package/lib/index.d.ts.map +1 -1
  182. package/lib/index.js +3 -3
  183. package/lib/index.js.map +1 -1
  184. package/lib/internalTypes.d.ts +2 -2
  185. package/lib/internalTypes.d.ts.map +1 -1
  186. package/lib/internalTypes.js.map +1 -1
  187. package/lib/legacy.d.ts +2 -0
  188. package/lib/packageVersion.d.ts +1 -1
  189. package/lib/packageVersion.js +1 -1
  190. package/lib/packageVersion.js.map +1 -1
  191. package/lib/public.d.ts +2 -0
  192. package/lib/shared-tree/index.d.ts +2 -1
  193. package/lib/shared-tree/index.d.ts.map +1 -1
  194. package/lib/shared-tree/index.js +2 -1
  195. package/lib/shared-tree/index.js.map +1 -1
  196. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  197. package/lib/shared-tree/schematizingTreeView.js +2 -15
  198. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  199. package/lib/shared-tree/sharedTree.d.ts +24 -9
  200. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  201. package/lib/shared-tree/sharedTree.js +19 -8
  202. package/lib/shared-tree/sharedTree.js.map +1 -1
  203. package/lib/shared-tree/treeApi.d.ts +6 -6
  204. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  205. package/lib/shared-tree/treeApi.js.map +1 -1
  206. package/lib/simple-tree/api/conciseTree.d.ts +29 -0
  207. package/lib/simple-tree/api/conciseTree.d.ts.map +1 -0
  208. package/lib/simple-tree/api/conciseTree.js +21 -0
  209. package/lib/simple-tree/api/conciseTree.js.map +1 -0
  210. package/lib/simple-tree/api/customTree.d.ts +44 -0
  211. package/lib/simple-tree/api/customTree.d.ts.map +1 -0
  212. package/lib/simple-tree/api/customTree.js +59 -0
  213. package/lib/simple-tree/api/customTree.js.map +1 -0
  214. package/lib/simple-tree/api/index.d.ts +7 -2
  215. package/lib/simple-tree/api/index.d.ts.map +1 -1
  216. package/lib/simple-tree/api/index.js +1 -0
  217. package/lib/simple-tree/api/index.js.map +1 -1
  218. package/lib/simple-tree/api/schemaCreationUtilities.d.ts +41 -26
  219. package/lib/simple-tree/api/schemaCreationUtilities.d.ts.map +1 -1
  220. package/lib/simple-tree/api/schemaCreationUtilities.js +43 -15
  221. package/lib/simple-tree/api/schemaCreationUtilities.js.map +1 -1
  222. package/lib/simple-tree/api/schemaFactory.d.ts +1 -2
  223. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  224. package/lib/simple-tree/api/schemaFactory.js +1 -1
  225. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  226. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +1 -2
  227. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  228. package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  229. package/lib/simple-tree/api/storedSchema.d.ts +78 -0
  230. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -0
  231. package/lib/simple-tree/api/storedSchema.js +101 -0
  232. package/lib/simple-tree/api/storedSchema.js.map +1 -0
  233. package/lib/simple-tree/api/testRecursiveDomain.d.ts +10 -10
  234. package/lib/simple-tree/api/tree.d.ts +12 -3
  235. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  236. package/lib/simple-tree/api/tree.js.map +1 -1
  237. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  238. package/lib/simple-tree/api/treeNodeApi.js +3 -3
  239. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  240. package/lib/simple-tree/{typesUnsafe.d.ts → api/typesUnsafe.d.ts} +58 -10
  241. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -0
  242. package/lib/simple-tree/api/typesUnsafe.js.map +1 -0
  243. package/lib/simple-tree/api/verboseTree.d.ts +6 -20
  244. package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
  245. package/lib/simple-tree/api/verboseTree.js +11 -49
  246. package/lib/simple-tree/api/verboseTree.js.map +1 -1
  247. package/lib/simple-tree/arrayNode.d.ts +14 -3
  248. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  249. package/lib/simple-tree/arrayNode.js +1 -2
  250. package/lib/simple-tree/arrayNode.js.map +1 -1
  251. package/lib/simple-tree/core/index.d.ts +1 -1
  252. package/lib/simple-tree/core/index.d.ts.map +1 -1
  253. package/lib/simple-tree/core/index.js +1 -1
  254. package/lib/simple-tree/core/index.js.map +1 -1
  255. package/lib/simple-tree/core/treeNodeKernel.d.ts +9 -0
  256. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  257. package/lib/simple-tree/core/treeNodeKernel.js +12 -0
  258. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  259. package/lib/simple-tree/core/treeNodeSchema.d.ts +6 -5
  260. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  261. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  262. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  263. package/lib/simple-tree/core/unhydratedFlexTree.js +3 -1
  264. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  265. package/lib/simple-tree/core/withType.d.ts +3 -1
  266. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  267. package/lib/simple-tree/core/withType.js.map +1 -1
  268. package/lib/simple-tree/flexList.d.ts.map +1 -0
  269. package/lib/simple-tree/flexList.js.map +1 -0
  270. package/lib/simple-tree/index.d.ts +6 -7
  271. package/lib/simple-tree/index.d.ts.map +1 -1
  272. package/lib/simple-tree/index.js +3 -4
  273. package/lib/simple-tree/index.js.map +1 -1
  274. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  275. package/lib/simple-tree/mapNode.js +1 -2
  276. package/lib/simple-tree/mapNode.js.map +1 -1
  277. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  278. package/lib/simple-tree/objectNode.js +1 -2
  279. package/lib/simple-tree/objectNode.js.map +1 -1
  280. package/lib/simple-tree/schemaTypes.d.ts +60 -7
  281. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  282. package/lib/simple-tree/schemaTypes.js +6 -1
  283. package/lib/simple-tree/schemaTypes.js.map +1 -1
  284. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  285. package/lib/simple-tree/toFlexSchema.js +1 -3
  286. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  287. package/lib/simple-tree/toMapTree.d.ts +4 -2
  288. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  289. package/lib/simple-tree/toMapTree.js +3 -3
  290. package/lib/simple-tree/toMapTree.js.map +1 -1
  291. package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
  292. package/lib/simple-tree/treeNodeValid.js +2 -1
  293. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  294. package/lib/treeFactory.d.ts +1 -0
  295. package/lib/treeFactory.d.ts.map +1 -1
  296. package/lib/treeFactory.js +1 -0
  297. package/lib/treeFactory.js.map +1 -1
  298. package/lib/util/utils.d.ts +10 -8
  299. package/lib/util/utils.d.ts.map +1 -1
  300. package/lib/util/utils.js.map +1 -1
  301. package/package.json +41 -24
  302. package/src/codec/codec.ts +4 -4
  303. package/src/codec/noopValidator.ts +1 -1
  304. package/src/core/tree/anchorSet.ts +63 -13
  305. package/src/external-utilities/typeboxValidator.ts +1 -1
  306. package/src/feature-libraries/flex-tree/lazyField.ts +44 -7
  307. package/src/feature-libraries/index.ts +0 -10
  308. package/src/feature-libraries/treeCompressionUtils.ts +1 -1
  309. package/src/index.ts +26 -6
  310. package/src/internalTypes.ts +4 -1
  311. package/src/packageVersion.ts +1 -1
  312. package/src/shared-tree/index.ts +5 -0
  313. package/src/shared-tree/schematizingTreeView.ts +7 -16
  314. package/src/shared-tree/sharedTree.ts +52 -22
  315. package/src/shared-tree/treeApi.ts +19 -9
  316. package/src/simple-tree/api/conciseTree.ts +58 -0
  317. package/src/simple-tree/api/customTree.ts +119 -0
  318. package/src/simple-tree/api/index.ts +39 -1
  319. package/src/simple-tree/api/schemaCreationUtilities.ts +55 -36
  320. package/src/simple-tree/api/schemaFactory.ts +4 -6
  321. package/src/simple-tree/api/schemaFactoryRecursive.ts +1 -2
  322. package/src/simple-tree/api/storedSchema.ts +126 -0
  323. package/src/simple-tree/api/tree.ts +24 -2
  324. package/src/simple-tree/api/treeNodeApi.ts +3 -8
  325. package/src/simple-tree/{typesUnsafe.ts → api/typesUnsafe.ts} +95 -21
  326. package/src/simple-tree/api/verboseTree.ts +21 -76
  327. package/src/simple-tree/arrayNode.ts +35 -15
  328. package/src/simple-tree/core/index.ts +1 -0
  329. package/src/simple-tree/core/treeNodeKernel.ts +13 -0
  330. package/src/simple-tree/core/treeNodeSchema.ts +7 -5
  331. package/src/simple-tree/core/unhydratedFlexTree.ts +6 -1
  332. package/src/simple-tree/core/withType.ts +10 -1
  333. package/src/simple-tree/index.ts +41 -21
  334. package/src/simple-tree/mapNode.ts +1 -1
  335. package/src/simple-tree/objectNode.ts +1 -1
  336. package/src/simple-tree/schemaTypes.ts +70 -11
  337. package/src/simple-tree/toFlexSchema.ts +1 -3
  338. package/src/simple-tree/toMapTree.ts +7 -4
  339. package/src/simple-tree/treeNodeValid.ts +2 -1
  340. package/src/treeFactory.ts +1 -0
  341. package/src/util/utils.ts +10 -8
  342. package/dist/feature-libraries/flex-tree/unboxed.d.ts +0 -12
  343. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +0 -1
  344. package/dist/feature-libraries/flex-tree/unboxed.js +0 -20
  345. package/dist/feature-libraries/flex-tree/unboxed.js.map +0 -1
  346. package/dist/feature-libraries/typed-schema/flexList.d.ts.map +0 -1
  347. package/dist/feature-libraries/typed-schema/flexList.js.map +0 -1
  348. package/dist/feature-libraries/typed-schema/index.d.ts +0 -7
  349. package/dist/feature-libraries/typed-schema/index.d.ts.map +0 -1
  350. package/dist/feature-libraries/typed-schema/index.js +0 -12
  351. package/dist/feature-libraries/typed-schema/index.js.map +0 -1
  352. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -14
  353. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +0 -1
  354. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +0 -7
  355. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +0 -1
  356. package/dist/simple-tree/proxyBinding.d.ts +0 -15
  357. package/dist/simple-tree/proxyBinding.d.ts.map +0 -1
  358. package/dist/simple-tree/proxyBinding.js +0 -22
  359. package/dist/simple-tree/proxyBinding.js.map +0 -1
  360. package/dist/simple-tree/typesUnsafe.d.ts.map +0 -1
  361. package/dist/simple-tree/typesUnsafe.js.map +0 -1
  362. package/lib/feature-libraries/flex-tree/unboxed.d.ts +0 -12
  363. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +0 -1
  364. package/lib/feature-libraries/flex-tree/unboxed.js +0 -16
  365. package/lib/feature-libraries/flex-tree/unboxed.js.map +0 -1
  366. package/lib/feature-libraries/typed-schema/flexList.d.ts.map +0 -1
  367. package/lib/feature-libraries/typed-schema/flexList.js.map +0 -1
  368. package/lib/feature-libraries/typed-schema/index.d.ts +0 -7
  369. package/lib/feature-libraries/typed-schema/index.d.ts.map +0 -1
  370. package/lib/feature-libraries/typed-schema/index.js +0 -6
  371. package/lib/feature-libraries/typed-schema/index.js.map +0 -1
  372. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -14
  373. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +0 -1
  374. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +0 -6
  375. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +0 -1
  376. package/lib/simple-tree/proxyBinding.d.ts +0 -15
  377. package/lib/simple-tree/proxyBinding.d.ts.map +0 -1
  378. package/lib/simple-tree/proxyBinding.js +0 -18
  379. package/lib/simple-tree/proxyBinding.js.map +0 -1
  380. package/lib/simple-tree/typesUnsafe.d.ts.map +0 -1
  381. package/lib/simple-tree/typesUnsafe.js.map +0 -1
  382. package/src/feature-libraries/flex-tree/unboxed.ts +0 -24
  383. package/src/feature-libraries/typed-schema/README.md +0 -6
  384. package/src/feature-libraries/typed-schema/index.ts +0 -16
  385. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +0 -14
  386. package/src/simple-tree/proxyBinding.ts +0 -20
  387. /package/dist/simple-tree/{typesUnsafe.js → api/typesUnsafe.js} +0 -0
  388. /package/dist/{feature-libraries/typed-schema → simple-tree}/flexList.d.ts +0 -0
  389. /package/dist/{feature-libraries/typed-schema → simple-tree}/flexList.js +0 -0
  390. /package/lib/simple-tree/{typesUnsafe.js → api/typesUnsafe.js} +0 -0
  391. /package/lib/{feature-libraries/typed-schema → simple-tree}/flexList.d.ts +0 -0
  392. /package/lib/{feature-libraries/typed-schema → simple-tree}/flexList.js +0 -0
  393. /package/src/simple-tree/{ProxyBinding.md → core/TreeNodeBinding.md} +0 -0
  394. /package/src/{feature-libraries/typed-schema → simple-tree}/flexList.ts +0 -0
@@ -7,6 +7,9 @@
7
7
  // @public
8
8
  export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
9
9
 
10
+ // @public
11
+ type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
12
+
10
13
  // @public
11
14
  type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
12
15
  [FieldKind.Required]: T;
@@ -113,7 +116,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
113
116
  };
114
117
 
115
118
  // @public
116
- export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
119
+ export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
117
120
 
118
121
  // @public
119
122
  export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
@@ -122,7 +125,7 @@ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforce
122
125
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
123
126
 
124
127
  // @public
125
- export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
128
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypesUnsafe ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
126
129
 
127
130
  // @public
128
131
  export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
@@ -167,6 +170,9 @@ declare namespace InternalTypes {
167
170
  NodeBuilderDataUnsafe,
168
171
  NodeFromSchemaUnsafe,
169
172
  ReadonlyMapInlined,
173
+ TreeNodeSchemaUnsafe,
174
+ AllowedTypesUnsafe,
175
+ TreeNodeSchemaNonClassUnsafe,
170
176
  FlexList,
171
177
  FlexListToUnion,
172
178
  ExtractItemType,
@@ -219,16 +225,16 @@ export interface MakeNominal {
219
225
  export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
220
226
 
221
227
  // @public
222
- type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
228
+ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
223
229
 
224
230
  // @public
225
- type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
231
+ type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
226
232
 
227
233
  // @public
228
234
  export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
229
235
 
230
236
  // @public
231
- type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
237
+ type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
232
238
 
233
239
  // @public
234
240
  export interface NodeInDocumentConstraint {
@@ -259,6 +265,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
259
265
  // @public
260
266
  export type Off = () => void;
261
267
 
268
+ // @public @sealed
269
+ export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
270
+ }
271
+
262
272
  // @public @sealed
263
273
  interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
264
274
  [Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
@@ -310,17 +320,17 @@ export const rollback: unique symbol;
310
320
  // @public @sealed
311
321
  export interface RunTransaction {
312
322
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
313
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
323
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
314
324
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
315
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
325
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
316
326
  <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
317
- <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
327
+ <TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
318
328
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
319
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
329
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
320
330
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
321
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
331
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
322
332
  <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
323
- <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
333
+ <TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
324
334
  readonly rollback: typeof rollback;
325
335
  }
326
336
 
@@ -383,7 +393,7 @@ interface TreeApi extends TreeNodeApi {
383
393
  }
384
394
 
385
395
  // @public @sealed
386
- export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
396
+ export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
387
397
  }
388
398
 
389
399
  // @public
@@ -392,7 +402,7 @@ export const TreeArrayNode: {
392
402
  };
393
403
 
394
404
  // @public @sealed
395
- interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
405
+ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
396
406
  insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
397
407
  insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
398
408
  insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
@@ -414,7 +424,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
414
424
  }
415
425
 
416
426
  // @public @sealed
417
- export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
427
+ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
418
428
  }
419
429
 
420
430
  // @public @sealed
@@ -424,7 +434,7 @@ export interface TreeChangeEvents {
424
434
  }
425
435
 
426
436
  // @public
427
- export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
437
+ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
428
438
 
429
439
  // @public
430
440
  type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
@@ -473,13 +483,19 @@ export interface TreeNodeApi {
473
483
  export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
474
484
 
475
485
  // @public
476
- type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
486
+ type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
477
487
 
478
488
  // @public @sealed
479
- export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
489
+ export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
480
490
 
481
491
  // @public @sealed
482
- export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
492
+ export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
493
+ // @sealed
494
+ new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
495
+ }
496
+
497
+ // @public
498
+ export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
483
499
  // @sealed
484
500
  new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
485
501
  }
@@ -495,11 +511,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
495
511
  }
496
512
 
497
513
  // @public @sealed
498
- export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
514
+ export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
515
+ // (undocumented)
516
+ create(data: TInsertable): TNode;
517
+ }
518
+
519
+ // @public
520
+ interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
499
521
  // (undocumented)
500
522
  create(data: TInsertable): TNode;
501
523
  }
502
524
 
525
+ // @public
526
+ type TreeNodeSchemaUnsafe<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends Unenforced<TreeNode | TreeLeafValue> = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
527
+
503
528
  // @public
504
529
  export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
505
530
 
@@ -515,7 +540,7 @@ export enum TreeStatus {
515
540
  }
516
541
 
517
542
  // @public @sealed
518
- export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
543
+ export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
519
544
  readonly compatibility: SchemaCompatibilityStatus;
520
545
  readonly events: Listenable<TreeViewEvents>;
521
546
  initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
@@ -574,7 +599,7 @@ export interface ViewableTree {
574
599
  export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
575
600
  // @deprecated
576
601
  get [typeNameSymbol](): TName;
577
- get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
602
+ get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
578
603
  }
579
604
 
580
605
  // (No @packageDocumentation comment for this package)
@@ -7,6 +7,9 @@
7
7
  // @public
8
8
  export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
9
9
 
10
+ // @public
11
+ type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
12
+
10
13
  // @public
11
14
  type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
12
15
  [FieldKind.Required]: T;
@@ -113,7 +116,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
113
116
  };
114
117
 
115
118
  // @public
116
- export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
119
+ export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
117
120
 
118
121
  // @public
119
122
  export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
@@ -122,7 +125,7 @@ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforce
122
125
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
123
126
 
124
127
  // @public
125
- export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
128
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypesUnsafe ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
126
129
 
127
130
  // @public
128
131
  export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
@@ -167,6 +170,9 @@ declare namespace InternalTypes {
167
170
  NodeBuilderDataUnsafe,
168
171
  NodeFromSchemaUnsafe,
169
172
  ReadonlyMapInlined,
173
+ TreeNodeSchemaUnsafe,
174
+ AllowedTypesUnsafe,
175
+ TreeNodeSchemaNonClassUnsafe,
170
176
  FlexList,
171
177
  FlexListToUnion,
172
178
  ExtractItemType,
@@ -219,16 +225,16 @@ export interface MakeNominal {
219
225
  export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
220
226
 
221
227
  // @public
222
- type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
228
+ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
223
229
 
224
230
  // @public
225
- type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
231
+ type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
226
232
 
227
233
  // @public
228
234
  export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
229
235
 
230
236
  // @public
231
- type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
237
+ type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
232
238
 
233
239
  // @public
234
240
  export interface NodeInDocumentConstraint {
@@ -259,6 +265,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
259
265
  // @public
260
266
  export type Off = () => void;
261
267
 
268
+ // @public @sealed
269
+ export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
270
+ }
271
+
262
272
  // @public @sealed
263
273
  interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
264
274
  [Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
@@ -310,17 +320,17 @@ export const rollback: unique symbol;
310
320
  // @public @sealed
311
321
  export interface RunTransaction {
312
322
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
313
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
323
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
314
324
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
315
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
325
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
316
326
  <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
317
- <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
327
+ <TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
318
328
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
319
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
329
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
320
330
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
321
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
331
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
322
332
  <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
323
- <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
333
+ <TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
324
334
  readonly rollback: typeof rollback;
325
335
  }
326
336
 
@@ -380,7 +390,7 @@ interface TreeApi extends TreeNodeApi {
380
390
  }
381
391
 
382
392
  // @public @sealed
383
- export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
393
+ export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
384
394
  }
385
395
 
386
396
  // @public
@@ -389,7 +399,7 @@ export const TreeArrayNode: {
389
399
  };
390
400
 
391
401
  // @public @sealed
392
- interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
402
+ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
393
403
  insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
394
404
  insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
395
405
  insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
@@ -411,7 +421,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
411
421
  }
412
422
 
413
423
  // @public @sealed
414
- export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
424
+ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
415
425
  }
416
426
 
417
427
  // @public @sealed
@@ -421,7 +431,7 @@ export interface TreeChangeEvents {
421
431
  }
422
432
 
423
433
  // @public
424
- export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
434
+ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
425
435
 
426
436
  // @public
427
437
  type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
@@ -470,13 +480,19 @@ export interface TreeNodeApi {
470
480
  export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
471
481
 
472
482
  // @public
473
- type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
483
+ type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
474
484
 
475
485
  // @public @sealed
476
- export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
486
+ export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
477
487
 
478
488
  // @public @sealed
479
- export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
489
+ export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
490
+ // @sealed
491
+ new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
492
+ }
493
+
494
+ // @public
495
+ export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
480
496
  // @sealed
481
497
  new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
482
498
  }
@@ -492,11 +508,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
492
508
  }
493
509
 
494
510
  // @public @sealed
495
- export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
511
+ export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
512
+ // (undocumented)
513
+ create(data: TInsertable): TNode;
514
+ }
515
+
516
+ // @public
517
+ interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
496
518
  // (undocumented)
497
519
  create(data: TInsertable): TNode;
498
520
  }
499
521
 
522
+ // @public
523
+ type TreeNodeSchemaUnsafe<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends Unenforced<TreeNode | TreeLeafValue> = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
524
+
500
525
  // @public
501
526
  export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
502
527
 
@@ -512,7 +537,7 @@ export enum TreeStatus {
512
537
  }
513
538
 
514
539
  // @public @sealed
515
- export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
540
+ export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
516
541
  readonly compatibility: SchemaCompatibilityStatus;
517
542
  readonly events: Listenable<TreeViewEvents>;
518
543
  initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
@@ -571,7 +596,7 @@ export interface ViewableTree {
571
596
  export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
572
597
  // @deprecated
573
598
  get [typeNameSymbol](): TName;
574
- get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
599
+ get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
575
600
  }
576
601
 
577
602
  // (No @packageDocumentation comment for this package)
@@ -7,6 +7,9 @@
7
7
  // @public
8
8
  export type AllowedTypes = readonly LazyItem<TreeNodeSchema>[];
9
9
 
10
+ // @public
11
+ type AllowedTypesUnsafe = readonly LazyItem<TreeNodeSchemaUnsafe>[];
12
+
10
13
  // @public
11
14
  type ApplyKind<T, Kind extends FieldKind, DefaultsAreOptional extends boolean> = {
12
15
  [FieldKind.Required]: T;
@@ -113,7 +116,7 @@ export type InsertableObjectFromSchemaRecordUnsafe<T extends Unenforced<Restrict
113
116
  };
114
117
 
115
118
  // @public
116
- export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
119
+ export type InsertableTreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypes<Types>, Kind, true> : TSchema extends ImplicitAllowedTypes ? InsertableTreeNodeFromImplicitAllowedTypes<TSchema> : never;
117
120
 
118
121
  // @public
119
122
  export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<InsertableTreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, true> : InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema>;
@@ -122,7 +125,7 @@ export type InsertableTreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforce
122
125
  export type InsertableTreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? InsertableTypedNode<TSchema> : TSchema extends AllowedTypes ? InsertableTypedNode<FlexListToUnion<TSchema>> : never;
123
126
 
124
127
  // @public
125
- export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypes ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
128
+ export type InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends AllowedTypesUnsafe ? InsertableTypedNodeUnsafe<FlexListToUnion<TSchema>> : InsertableTypedNodeUnsafe<TSchema>;
126
129
 
127
130
  // @public
128
131
  export type InsertableTypedNode<T extends TreeNodeSchema> = (T extends {
@@ -167,6 +170,9 @@ declare namespace InternalTypes {
167
170
  NodeBuilderDataUnsafe,
168
171
  NodeFromSchemaUnsafe,
169
172
  ReadonlyMapInlined,
173
+ TreeNodeSchemaUnsafe,
174
+ AllowedTypesUnsafe,
175
+ TreeNodeSchemaNonClassUnsafe,
170
176
  FlexList,
171
177
  FlexListToUnion,
172
178
  ExtractItemType,
@@ -219,16 +225,16 @@ export interface MakeNominal {
219
225
  export type MapNodeInsertableData<T extends ImplicitAllowedTypes> = Iterable<readonly [string, InsertableTreeNodeFromImplicitAllowedTypes<T>]> | RestrictiveStringRecord<InsertableTreeNodeFromImplicitAllowedTypes<T>>;
220
226
 
221
227
  // @public
222
- type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
228
+ type NodeBuilderData<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, infer TBuild> ? TBuild : never;
223
229
 
224
230
  // @public
225
- type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
231
+ type NodeBuilderDataUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, unknown, infer TBuild> ? TBuild : never;
226
232
 
227
233
  // @public
228
234
  export type NodeFromSchema<T extends TreeNodeSchema> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
229
235
 
230
236
  // @public
231
- type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchema<string, NodeKind, infer TNode> ? TNode : never;
237
+ type NodeFromSchemaUnsafe<T extends Unenforced<TreeNodeSchema>> = T extends TreeNodeSchemaUnsafe<string, NodeKind, infer TNode> ? TNode : never;
232
238
 
233
239
  // @public
234
240
  export interface NodeInDocumentConstraint {
@@ -259,6 +265,10 @@ type ObjectFromSchemaRecordUnsafe<T extends Unenforced<RestrictiveStringRecord<I
259
265
  // @public
260
266
  export type Off = () => void;
261
267
 
268
+ // @public @sealed
269
+ export interface ReadonlyArrayNode<out T = TreeNode | TreeLeafValue> extends ReadonlyArray<T>, Awaited<TreeNode & WithType<string, NodeKind.Array>> {
270
+ }
271
+
262
272
  // @public @sealed
263
273
  interface ReadonlyMapInlined<K, T extends Unenforced<ImplicitAllowedTypes>> {
264
274
  [Symbol.iterator](): IterableIterator<[K, TreeNodeFromImplicitAllowedTypesUnsafe<T>]>;
@@ -310,17 +320,17 @@ export const rollback: unique symbol;
310
320
  // @public @sealed
311
321
  export interface RunTransaction {
312
322
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult): TResult;
313
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
323
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult): TResult;
314
324
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback): TResult | typeof rollback;
315
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
325
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback): TResult | typeof rollback;
316
326
  <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void): void;
317
- <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void): void;
327
+ <TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void): void;
318
328
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
319
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
329
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult, preconditions?: readonly TransactionConstraint[]): TResult;
320
330
  <TNode extends TreeNode, TResult>(node: TNode, transaction: (node: TNode) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
321
- <TView extends TreeView<ImplicitFieldSchema>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
331
+ <TView extends TreeView<any>, TResult>(tree: TView, transaction: (root: TView["root"]) => TResult | typeof rollback, preconditions?: readonly TransactionConstraint[]): TResult | typeof rollback;
322
332
  <TNode extends TreeNode>(node: TNode, transaction: (node: TNode) => void, preconditions?: readonly TransactionConstraint[]): void;
323
- <TView extends TreeView<ImplicitFieldSchema>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
333
+ <TView extends TreeView<any>>(tree: TView, transaction: (root: TView["root"]) => void, preconditions?: readonly TransactionConstraint[]): void;
324
334
  readonly rollback: typeof rollback;
325
335
  }
326
336
 
@@ -380,7 +390,7 @@ interface TreeApi extends TreeNodeApi {
380
390
  }
381
391
 
382
392
  // @public @sealed
383
- export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>, TreeArrayNode> {
393
+ export interface TreeArrayNode<TAllowedTypes extends ImplicitAllowedTypes = ImplicitAllowedTypes> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypes<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypes<TAllowedTypes>> {
384
394
  }
385
395
 
386
396
  // @public
@@ -389,7 +399,7 @@ export const TreeArrayNode: {
389
399
  };
390
400
 
391
401
  // @public @sealed
392
- interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<T>, TreeNode {
402
+ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom = ReadonlyArrayNode> extends ReadonlyArrayNode<T> {
393
403
  insertAt(index: number, ...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
394
404
  insertAtEnd(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
395
405
  insertAtStart(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
@@ -411,7 +421,7 @@ interface TreeArrayNodeBase<out T, in TNew, in TMoveFrom> extends ReadonlyArray<
411
421
  }
412
422
 
413
423
  // @public @sealed
414
- export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, TreeArrayNode> {
424
+ export interface TreeArrayNodeUnsafe<TAllowedTypes extends Unenforced<ImplicitAllowedTypes>> extends TreeArrayNodeBase<TreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>, InsertableTreeNodeFromImplicitAllowedTypesUnsafe<TAllowedTypes>> {
415
425
  }
416
426
 
417
427
  // @public @sealed
@@ -421,7 +431,7 @@ export interface TreeChangeEvents {
421
431
  }
422
432
 
423
433
  // @public
424
- export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : unknown;
434
+ export type TreeFieldFromImplicitField<TSchema extends ImplicitFieldSchema = FieldSchema> = TSchema extends FieldSchema<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypes<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TreeNode | TreeLeafValue | undefined;
425
435
 
426
436
  // @public
427
437
  type TreeFieldFromImplicitFieldUnsafe<TSchema extends Unenforced<ImplicitFieldSchema>> = TSchema extends FieldSchemaUnsafe<infer Kind, infer Types> ? ApplyKind<TreeNodeFromImplicitAllowedTypesUnsafe<Types>, Kind, false> : TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypesUnsafe<TSchema> : unknown;
@@ -470,13 +480,19 @@ export interface TreeNodeApi {
470
480
  export type TreeNodeFromImplicitAllowedTypes<TSchema extends ImplicitAllowedTypes = TreeNodeSchema> = TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
471
481
 
472
482
  // @public
473
- type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends ImplicitAllowedTypes ? TreeNodeFromImplicitAllowedTypes<TSchema> : TSchema extends TreeNodeSchema ? NodeFromSchema<TSchema> : TSchema extends AllowedTypes ? NodeFromSchema<FlexListToUnion<TSchema>> : unknown;
483
+ type TreeNodeFromImplicitAllowedTypesUnsafe<TSchema extends Unenforced<ImplicitAllowedTypes>> = TSchema extends TreeNodeSchemaUnsafe ? NodeFromSchemaUnsafe<TSchema> : TSchema extends AllowedTypesUnsafe ? NodeFromSchemaUnsafe<FlexListToUnion<TSchema>> : unknown;
474
484
 
475
485
  // @public @sealed
476
- export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
486
+ export type TreeNodeSchema<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClass<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
477
487
 
478
488
  // @public @sealed
479
- export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
489
+ export interface TreeNodeSchemaClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
490
+ // @sealed
491
+ new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
492
+ }
493
+
494
+ // @public
495
+ export interface TreeNodeSchemaClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
480
496
  // @sealed
481
497
  new (data: TInsertable | InternalTreeNode): Unhydrated<TNode>;
482
498
  }
@@ -492,11 +508,20 @@ export interface TreeNodeSchemaCore<out Name extends string, out Kind extends No
492
508
  }
493
509
 
494
510
  // @public @sealed
495
- export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode = unknown, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
511
+ export interface TreeNodeSchemaNonClass<out Name extends string = string, out Kind extends NodeKind = NodeKind, out TNode extends TreeNode | TreeLeafValue = TreeNode | TreeLeafValue, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
512
+ // (undocumented)
513
+ create(data: TInsertable): TNode;
514
+ }
515
+
516
+ // @public
517
+ interface TreeNodeSchemaNonClassUnsafe<out Name extends string, out Kind extends NodeKind, out TNode extends Unenforced<TreeNode | TreeLeafValue>, in TInsertable = never, out ImplicitlyConstructable extends boolean = boolean, out Info = unknown> extends TreeNodeSchemaCore<Name, Kind, ImplicitlyConstructable, Info> {
496
518
  // (undocumented)
497
519
  create(data: TInsertable): TNode;
498
520
  }
499
521
 
522
+ // @public
523
+ type TreeNodeSchemaUnsafe<Name extends string = string, Kind extends NodeKind = NodeKind, TNode extends Unenforced<TreeNode | TreeLeafValue> = unknown, TBuild = never, ImplicitlyConstructable extends boolean = boolean, Info = unknown> = TreeNodeSchemaClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info> | TreeNodeSchemaNonClassUnsafe<Name, Kind, TNode, TBuild, ImplicitlyConstructable, Info>;
524
+
500
525
  // @public
501
526
  export type TreeObjectNode<T extends RestrictiveStringRecord<ImplicitFieldSchema>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
502
527
 
@@ -512,7 +537,7 @@ export enum TreeStatus {
512
537
  }
513
538
 
514
539
  // @public @sealed
515
- export interface TreeView<TSchema extends ImplicitFieldSchema> extends IDisposable {
540
+ export interface TreeView<in out TSchema extends ImplicitFieldSchema> extends IDisposable {
516
541
  readonly compatibility: SchemaCompatibilityStatus;
517
542
  readonly events: Listenable<TreeViewEvents>;
518
543
  initialize(content: InsertableTreeFieldFromImplicitField<TSchema>): void;
@@ -571,7 +596,7 @@ export interface ViewableTree {
571
596
  export interface WithType<out TName extends string = string, out TKind extends NodeKind = NodeKind, out TInfo = unknown> {
572
597
  // @deprecated
573
598
  get [typeNameSymbol](): TName;
574
- get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, unknown, never, boolean, TInfo>;
599
+ get [typeSchemaSymbol](): TreeNodeSchemaClass<TName, TKind, TreeNode | TreeLeafValue, never, boolean, TInfo>;
575
600
  }
576
601
 
577
602
  // (No @packageDocumentation comment for this package)