@fluidframework/tree 2.33.2 → 2.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (621) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/CHANGELOG.md +64 -0
  3. package/api-report/tree.alpha.api.md +124 -51
  4. package/api-report/tree.beta.api.md +31 -27
  5. package/api-report/tree.legacy.alpha.api.md +24 -23
  6. package/api-report/tree.legacy.public.api.md +24 -23
  7. package/api-report/tree.public.api.md +24 -23
  8. package/dist/alpha.d.ts +17 -1
  9. package/dist/beta.d.ts +2 -0
  10. package/dist/codec/codec.d.ts +5 -1
  11. package/dist/codec/codec.d.ts.map +1 -1
  12. package/dist/codec/codec.js +6 -2
  13. package/dist/codec/codec.js.map +1 -1
  14. package/dist/codec/index.d.ts +1 -1
  15. package/dist/codec/index.d.ts.map +1 -1
  16. package/dist/codec/index.js +2 -1
  17. package/dist/codec/index.js.map +1 -1
  18. package/dist/core/index.d.ts +2 -2
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/index.js +2 -3
  21. package/dist/core/index.js.map +1 -1
  22. package/dist/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
  23. package/dist/core/schema-stored/formatV1.d.ts.map +1 -0
  24. package/dist/core/schema-stored/{format.js → formatV1.js} +1 -1
  25. package/dist/core/schema-stored/formatV1.js.map +1 -0
  26. package/dist/core/schema-stored/index.d.ts +3 -3
  27. package/dist/core/schema-stored/index.d.ts.map +1 -1
  28. package/dist/core/schema-stored/index.js +3 -3
  29. package/dist/core/schema-stored/index.js.map +1 -1
  30. package/dist/core/schema-stored/schema.d.ts +3 -1
  31. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  32. package/dist/core/schema-stored/schema.js +8 -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/schema-stored/storedSchemaRepository.js.map +1 -1
  37. package/dist/core/schema-view/index.d.ts +1 -1
  38. package/dist/core/schema-view/index.d.ts.map +1 -1
  39. package/dist/core/schema-view/index.js +1 -2
  40. package/dist/core/schema-view/index.js.map +1 -1
  41. package/dist/core/schema-view/view.d.ts +0 -27
  42. package/dist/core/schema-view/view.d.ts.map +1 -1
  43. package/dist/core/schema-view/view.js +1 -35
  44. package/dist/core/schema-view/view.js.map +1 -1
  45. package/dist/core/tree/persistedTreeTextFormat.d.ts +4 -4
  46. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  47. package/dist/core/tree/persistedTreeTextFormat.js +1 -1
  48. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  49. package/dist/feature-libraries/forest-summary/format.d.ts +2 -2
  50. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  51. package/dist/feature-libraries/forest-summary/format.js +1 -1
  52. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  53. package/dist/feature-libraries/index.d.ts +1 -1
  54. package/dist/feature-libraries/index.d.ts.map +1 -1
  55. package/dist/feature-libraries/index.js +4 -2
  56. package/dist/feature-libraries/index.js.map +1 -1
  57. package/dist/feature-libraries/mapTreeCursor.d.ts +3 -3
  58. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  59. package/dist/feature-libraries/mapTreeCursor.js +2 -2
  60. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  61. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
  62. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  63. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +2 -2
  64. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  65. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
  66. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  67. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -5
  68. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  69. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  70. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  71. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  72. package/dist/feature-libraries/schema-index/codec.d.ts +34 -5
  73. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  74. package/dist/feature-libraries/schema-index/codec.js +63 -9
  75. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  76. package/{lib/feature-libraries/schema-index/format.d.ts → dist/feature-libraries/schema-index/formatV1.d.ts} +9 -9
  77. package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
  78. package/dist/feature-libraries/schema-index/{format.js → formatV1.js} +4 -4
  79. package/dist/feature-libraries/schema-index/formatV1.js.map +1 -0
  80. package/dist/feature-libraries/schema-index/index.d.ts +2 -2
  81. package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
  82. package/dist/feature-libraries/schema-index/index.js +6 -3
  83. package/dist/feature-libraries/schema-index/index.js.map +1 -1
  84. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
  85. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  86. package/dist/feature-libraries/schema-index/schemaSummarizer.js +4 -4
  87. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  88. package/dist/index.d.ts +3 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +10 -8
  91. package/dist/index.js.map +1 -1
  92. package/dist/internalTypes.d.ts +0 -1
  93. package/dist/internalTypes.d.ts.map +1 -1
  94. package/dist/internalTypes.js.map +1 -1
  95. package/dist/jsonDomainSchema.d.ts +2 -2
  96. package/dist/jsonDomainSchema.js +2 -2
  97. package/dist/jsonDomainSchema.js.map +1 -1
  98. package/dist/legacy.d.ts +2 -0
  99. package/dist/packageVersion.d.ts +1 -1
  100. package/dist/packageVersion.js +1 -1
  101. package/dist/packageVersion.js.map +1 -1
  102. package/dist/public.d.ts +2 -0
  103. package/dist/serializableDomainSchema.d.ts +3 -3
  104. package/dist/serializableDomainSchema.js +2 -2
  105. package/dist/serializableDomainSchema.js.map +1 -1
  106. package/dist/shared-tree/independentView.d.ts +1 -1
  107. package/dist/shared-tree/independentView.d.ts.map +1 -1
  108. package/dist/shared-tree/independentView.js +1 -1
  109. package/dist/shared-tree/independentView.js.map +1 -1
  110. package/dist/shared-tree/index.d.ts +4 -3
  111. package/dist/shared-tree/index.d.ts.map +1 -1
  112. package/dist/shared-tree/index.js +6 -5
  113. package/dist/shared-tree/index.js.map +1 -1
  114. package/dist/shared-tree/schematizeTree.d.ts +10 -11
  115. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  116. package/dist/shared-tree/schematizeTree.js +11 -36
  117. package/dist/shared-tree/schematizeTree.js.map +1 -1
  118. package/dist/shared-tree/schematizingTreeView.d.ts +3 -3
  119. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  120. package/dist/shared-tree/schematizingTreeView.js +4 -7
  121. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  122. package/dist/shared-tree/sharedTree.d.ts +28 -3
  123. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  124. package/dist/shared-tree/sharedTree.js +29 -3
  125. package/dist/shared-tree/sharedTree.js.map +1 -1
  126. package/dist/shared-tree/{treeApi.d.ts → tree.d.ts} +58 -34
  127. package/dist/shared-tree/tree.d.ts.map +1 -0
  128. package/dist/shared-tree/{treeApi.js → tree.js} +6 -6
  129. package/dist/shared-tree/tree.js.map +1 -0
  130. package/{lib/shared-tree/treeApiAlpha.d.ts → dist/shared-tree/treeAlpha.d.ts} +24 -14
  131. package/dist/shared-tree/treeAlpha.d.ts.map +1 -0
  132. package/dist/shared-tree/{treeApiAlpha.js → treeAlpha.js} +7 -5
  133. package/dist/shared-tree/treeAlpha.js.map +1 -0
  134. package/dist/shared-tree-core/branchCommitEnricher.d.ts +0 -1
  135. package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  136. package/dist/shared-tree-core/branchCommitEnricher.js +0 -1
  137. package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
  138. package/dist/shared-tree-core/transactionEnricher.d.ts +1 -1
  139. package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  140. package/dist/shared-tree-core/transactionEnricher.js +4 -1
  141. package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
  142. package/dist/simple-tree/api/conciseTree.d.ts +1 -1
  143. package/dist/simple-tree/api/conciseTree.js.map +1 -1
  144. package/dist/simple-tree/api/configuration.d.ts +177 -0
  145. package/dist/simple-tree/api/configuration.d.ts.map +1 -0
  146. package/dist/simple-tree/api/configuration.js +163 -0
  147. package/dist/simple-tree/api/configuration.js.map +1 -0
  148. package/dist/simple-tree/api/getJsonSchema.js +2 -2
  149. package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
  150. package/dist/simple-tree/api/index.d.ts +9 -5
  151. package/dist/simple-tree/api/index.d.ts.map +1 -1
  152. package/dist/simple-tree/api/index.js +9 -7
  153. package/dist/simple-tree/api/index.js.map +1 -1
  154. package/dist/simple-tree/api/{view.d.ts → schemaCompatibilityTester.d.ts} +8 -10
  155. package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -0
  156. package/dist/simple-tree/api/{view.js → schemaCompatibilityTester.js} +9 -9
  157. package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -0
  158. package/dist/simple-tree/api/schemaFactory.d.ts +25 -10
  159. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  160. package/dist/simple-tree/api/schemaFactory.js +27 -12
  161. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  162. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +12 -6
  163. package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  164. package/dist/simple-tree/api/schemaFactoryAlpha.js +2 -2
  165. package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  166. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +67 -4
  167. package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  168. package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  169. package/dist/simple-tree/api/schemaFromSimple.d.ts +1 -1
  170. package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  171. package/dist/simple-tree/api/schemaFromSimple.js +1 -1
  172. package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
  173. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  174. package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  175. package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  176. package/dist/simple-tree/api/storedSchema.d.ts +11 -10
  177. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  178. package/dist/simple-tree/api/storedSchema.js +16 -11
  179. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  180. package/dist/simple-tree/api/tree.d.ts +30 -174
  181. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  182. package/dist/simple-tree/api/tree.js +1 -156
  183. package/dist/simple-tree/api/tree.js.map +1 -1
  184. package/{lib/simple-tree/api/treeApiBeta.d.ts → dist/simple-tree/api/treeBeta.d.ts} +17 -6
  185. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -0
  186. package/dist/simple-tree/api/{treeApiBeta.js → treeBeta.js} +5 -4
  187. package/dist/simple-tree/api/treeBeta.js.map +1 -0
  188. package/dist/simple-tree/api/treeChangeEvents.d.ts +83 -0
  189. package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
  190. package/dist/simple-tree/api/treeChangeEvents.js +7 -0
  191. package/dist/simple-tree/api/treeChangeEvents.js.map +1 -0
  192. package/dist/simple-tree/api/treeNodeApi.d.ts +2 -1
  193. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  194. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  195. package/dist/simple-tree/api/typesUnsafe.d.ts +4 -9
  196. package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  197. package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
  198. package/dist/simple-tree/arrayNode.d.ts +30 -2
  199. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  200. package/dist/simple-tree/arrayNode.js +3 -2
  201. package/dist/simple-tree/arrayNode.js.map +1 -1
  202. package/dist/simple-tree/arrayNodeTypes.d.ts +3 -3
  203. package/dist/simple-tree/arrayNodeTypes.d.ts.map +1 -1
  204. package/dist/simple-tree/arrayNodeTypes.js.map +1 -1
  205. package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
  206. package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  207. package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
  208. package/dist/simple-tree/core/index.d.ts +2 -1
  209. package/dist/simple-tree/core/index.d.ts.map +1 -1
  210. package/dist/simple-tree/core/index.js +5 -5
  211. package/dist/simple-tree/core/index.js.map +1 -1
  212. package/dist/simple-tree/core/treeNode.d.ts +94 -0
  213. package/dist/simple-tree/core/treeNode.d.ts.map +1 -0
  214. package/dist/simple-tree/core/treeNode.js +123 -0
  215. package/dist/simple-tree/core/treeNode.js.map +1 -0
  216. package/dist/simple-tree/core/treeNodeKernel.d.ts +2 -1
  217. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  218. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  219. package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -1
  220. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  221. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  222. package/dist/simple-tree/core/types.d.ts +0 -165
  223. package/dist/simple-tree/core/types.d.ts.map +1 -1
  224. package/dist/simple-tree/core/types.js +1 -113
  225. package/dist/simple-tree/core/types.js.map +1 -1
  226. package/dist/simple-tree/core/withType.d.ts +1 -1
  227. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  228. package/dist/simple-tree/core/withType.js.map +1 -1
  229. package/dist/simple-tree/index.d.ts +4 -4
  230. package/dist/simple-tree/index.d.ts.map +1 -1
  231. package/dist/simple-tree/index.js +4 -3
  232. package/dist/simple-tree/index.js.map +1 -1
  233. package/dist/simple-tree/mapNode.d.ts +2 -2
  234. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  235. package/dist/simple-tree/mapNode.js +1 -1
  236. package/dist/simple-tree/mapNode.js.map +1 -1
  237. package/dist/simple-tree/mapNodeTypes.d.ts +3 -3
  238. package/dist/simple-tree/mapNodeTypes.d.ts.map +1 -1
  239. package/dist/simple-tree/mapNodeTypes.js.map +1 -1
  240. package/dist/simple-tree/objectNode.d.ts +18 -5
  241. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  242. package/dist/simple-tree/objectNode.js +4 -3
  243. package/dist/simple-tree/objectNode.js.map +1 -1
  244. package/dist/simple-tree/objectNodeTypes.d.ts +4 -4
  245. package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
  246. package/dist/simple-tree/objectNodeTypes.js.map +1 -1
  247. package/dist/simple-tree/schemaTypes.d.ts +164 -13
  248. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  249. package/dist/simple-tree/schemaTypes.js +107 -8
  250. package/dist/simple-tree/schemaTypes.js.map +1 -1
  251. package/dist/simple-tree/toStoredSchema.d.ts +8 -8
  252. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  253. package/dist/simple-tree/toStoredSchema.js +27 -32
  254. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  255. package/dist/simple-tree/treeNodeValid.js +2 -2
  256. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  257. package/dist/tableSchema.d.ts +455 -125
  258. package/dist/tableSchema.d.ts.map +1 -1
  259. package/dist/tableSchema.js +398 -101
  260. package/dist/tableSchema.js.map +1 -1
  261. package/dist/treeFactory.d.ts +1 -1
  262. package/dist/treeFactory.d.ts.map +1 -1
  263. package/dist/treeFactory.js +30 -75
  264. package/dist/treeFactory.js.map +1 -1
  265. package/dist/util/typeUtils.d.ts +1 -1
  266. package/dist/util/typeUtils.js.map +1 -1
  267. package/lib/alpha.d.ts +17 -1
  268. package/lib/beta.d.ts +2 -0
  269. package/lib/codec/codec.d.ts +5 -1
  270. package/lib/codec/codec.d.ts.map +1 -1
  271. package/lib/codec/codec.js +5 -1
  272. package/lib/codec/codec.js.map +1 -1
  273. package/lib/codec/index.d.ts +1 -1
  274. package/lib/codec/index.d.ts.map +1 -1
  275. package/lib/codec/index.js +1 -1
  276. package/lib/codec/index.js.map +1 -1
  277. package/lib/core/index.d.ts +2 -2
  278. package/lib/core/index.d.ts.map +1 -1
  279. package/lib/core/index.js +2 -2
  280. package/lib/core/index.js.map +1 -1
  281. package/lib/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
  282. package/lib/core/schema-stored/formatV1.d.ts.map +1 -0
  283. package/lib/core/schema-stored/{format.js → formatV1.js} +1 -1
  284. package/lib/core/schema-stored/formatV1.js.map +1 -0
  285. package/lib/core/schema-stored/index.d.ts +3 -3
  286. package/lib/core/schema-stored/index.d.ts.map +1 -1
  287. package/lib/core/schema-stored/index.js +2 -2
  288. package/lib/core/schema-stored/index.js.map +1 -1
  289. package/lib/core/schema-stored/schema.d.ts +3 -1
  290. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  291. package/lib/core/schema-stored/schema.js +3 -1
  292. package/lib/core/schema-stored/schema.js.map +1 -1
  293. package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  294. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  295. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  296. package/lib/core/schema-view/index.d.ts +1 -1
  297. package/lib/core/schema-view/index.d.ts.map +1 -1
  298. package/lib/core/schema-view/index.js +1 -1
  299. package/lib/core/schema-view/index.js.map +1 -1
  300. package/lib/core/schema-view/view.d.ts +0 -27
  301. package/lib/core/schema-view/view.d.ts.map +1 -1
  302. package/lib/core/schema-view/view.js +0 -34
  303. package/lib/core/schema-view/view.js.map +1 -1
  304. package/lib/core/tree/persistedTreeTextFormat.d.ts +4 -4
  305. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  306. package/lib/core/tree/persistedTreeTextFormat.js +2 -2
  307. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  308. package/lib/feature-libraries/forest-summary/format.d.ts +2 -2
  309. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  310. package/lib/feature-libraries/forest-summary/format.js +2 -2
  311. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  312. package/lib/feature-libraries/index.d.ts +1 -1
  313. package/lib/feature-libraries/index.d.ts.map +1 -1
  314. package/lib/feature-libraries/index.js +1 -1
  315. package/lib/feature-libraries/index.js.map +1 -1
  316. package/lib/feature-libraries/mapTreeCursor.d.ts +3 -3
  317. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  318. package/lib/feature-libraries/mapTreeCursor.js +2 -2
  319. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  320. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
  321. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  322. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +3 -3
  323. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  324. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
  325. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  326. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -6
  327. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  328. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  329. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  330. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +3 -3
  331. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  332. package/lib/feature-libraries/schema-index/codec.d.ts +34 -5
  333. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  334. package/lib/feature-libraries/schema-index/codec.js +61 -9
  335. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  336. package/{dist/feature-libraries/schema-index/format.d.ts → lib/feature-libraries/schema-index/formatV1.d.ts} +9 -9
  337. package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
  338. package/lib/feature-libraries/schema-index/{format.js → formatV1.js} +5 -5
  339. package/lib/feature-libraries/schema-index/formatV1.js.map +1 -0
  340. package/lib/feature-libraries/schema-index/index.d.ts +2 -2
  341. package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
  342. package/lib/feature-libraries/schema-index/index.js +2 -2
  343. package/lib/feature-libraries/schema-index/index.js.map +1 -1
  344. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
  345. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  346. package/lib/feature-libraries/schema-index/schemaSummarizer.js +5 -5
  347. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  348. package/lib/index.d.ts +3 -2
  349. package/lib/index.d.ts.map +1 -1
  350. package/lib/index.js +1 -0
  351. package/lib/index.js.map +1 -1
  352. package/lib/internalTypes.d.ts +0 -1
  353. package/lib/internalTypes.d.ts.map +1 -1
  354. package/lib/internalTypes.js.map +1 -1
  355. package/lib/jsonDomainSchema.d.ts +2 -2
  356. package/lib/jsonDomainSchema.js +2 -2
  357. package/lib/jsonDomainSchema.js.map +1 -1
  358. package/lib/legacy.d.ts +2 -0
  359. package/lib/packageVersion.d.ts +1 -1
  360. package/lib/packageVersion.js +1 -1
  361. package/lib/packageVersion.js.map +1 -1
  362. package/lib/public.d.ts +2 -0
  363. package/lib/serializableDomainSchema.d.ts +3 -3
  364. package/lib/serializableDomainSchema.js +2 -2
  365. package/lib/serializableDomainSchema.js.map +1 -1
  366. package/lib/shared-tree/independentView.d.ts +1 -1
  367. package/lib/shared-tree/independentView.d.ts.map +1 -1
  368. package/lib/shared-tree/independentView.js +2 -2
  369. package/lib/shared-tree/independentView.js.map +1 -1
  370. package/lib/shared-tree/index.d.ts +4 -3
  371. package/lib/shared-tree/index.d.ts.map +1 -1
  372. package/lib/shared-tree/index.js +3 -3
  373. package/lib/shared-tree/index.js.map +1 -1
  374. package/lib/shared-tree/schematizeTree.d.ts +10 -11
  375. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  376. package/lib/shared-tree/schematizeTree.js +12 -37
  377. package/lib/shared-tree/schematizeTree.js.map +1 -1
  378. package/lib/shared-tree/schematizingTreeView.d.ts +3 -3
  379. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  380. package/lib/shared-tree/schematizingTreeView.js +6 -9
  381. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  382. package/lib/shared-tree/sharedTree.d.ts +28 -3
  383. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  384. package/lib/shared-tree/sharedTree.js +29 -4
  385. package/lib/shared-tree/sharedTree.js.map +1 -1
  386. package/lib/shared-tree/{treeApi.d.ts → tree.d.ts} +58 -34
  387. package/lib/shared-tree/tree.d.ts.map +1 -0
  388. package/lib/shared-tree/{treeApi.js → tree.js} +5 -5
  389. package/lib/shared-tree/tree.js.map +1 -0
  390. package/{dist/shared-tree/treeApiAlpha.d.ts → lib/shared-tree/treeAlpha.d.ts} +24 -14
  391. package/lib/shared-tree/treeAlpha.d.ts.map +1 -0
  392. package/lib/shared-tree/{treeApiAlpha.js → treeAlpha.js} +8 -6
  393. package/lib/shared-tree/treeAlpha.js.map +1 -0
  394. package/lib/shared-tree-core/branchCommitEnricher.d.ts +0 -1
  395. package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  396. package/lib/shared-tree-core/branchCommitEnricher.js +0 -1
  397. package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
  398. package/lib/shared-tree-core/transactionEnricher.d.ts +1 -1
  399. package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  400. package/lib/shared-tree-core/transactionEnricher.js +4 -1
  401. package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
  402. package/lib/simple-tree/api/conciseTree.d.ts +1 -1
  403. package/lib/simple-tree/api/conciseTree.js.map +1 -1
  404. package/lib/simple-tree/api/configuration.d.ts +177 -0
  405. package/lib/simple-tree/api/configuration.d.ts.map +1 -0
  406. package/lib/simple-tree/api/configuration.js +157 -0
  407. package/lib/simple-tree/api/configuration.js.map +1 -0
  408. package/lib/simple-tree/api/getJsonSchema.js +1 -1
  409. package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
  410. package/lib/simple-tree/api/index.d.ts +9 -5
  411. package/lib/simple-tree/api/index.d.ts.map +1 -1
  412. package/lib/simple-tree/api/index.js +5 -4
  413. package/lib/simple-tree/api/index.js.map +1 -1
  414. package/lib/simple-tree/api/{view.d.ts → schemaCompatibilityTester.d.ts} +8 -10
  415. package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -0
  416. package/lib/simple-tree/api/{view.js → schemaCompatibilityTester.js} +7 -7
  417. package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -0
  418. package/lib/simple-tree/api/schemaFactory.d.ts +25 -10
  419. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  420. package/lib/simple-tree/api/schemaFactory.js +27 -12
  421. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  422. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +12 -6
  423. package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
  424. package/lib/simple-tree/api/schemaFactoryAlpha.js +2 -2
  425. package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
  426. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +67 -4
  427. package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
  428. package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
  429. package/lib/simple-tree/api/schemaFromSimple.d.ts +1 -1
  430. package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
  431. package/lib/simple-tree/api/schemaFromSimple.js +1 -1
  432. package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
  433. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
  434. package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
  435. package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
  436. package/lib/simple-tree/api/storedSchema.d.ts +11 -10
  437. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  438. package/lib/simple-tree/api/storedSchema.js +20 -13
  439. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  440. package/lib/simple-tree/api/tree.d.ts +30 -174
  441. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  442. package/lib/simple-tree/api/tree.js +0 -152
  443. package/lib/simple-tree/api/tree.js.map +1 -1
  444. package/{dist/simple-tree/api/treeApiBeta.d.ts → lib/simple-tree/api/treeBeta.d.ts} +17 -6
  445. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -0
  446. package/lib/simple-tree/api/{treeApiBeta.js → treeBeta.js} +5 -4
  447. package/lib/simple-tree/api/treeBeta.js.map +1 -0
  448. package/lib/simple-tree/api/treeChangeEvents.d.ts +83 -0
  449. package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
  450. package/lib/simple-tree/api/treeChangeEvents.js +6 -0
  451. package/lib/simple-tree/api/treeChangeEvents.js.map +1 -0
  452. package/lib/simple-tree/api/treeNodeApi.d.ts +2 -1
  453. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  454. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  455. package/lib/simple-tree/api/typesUnsafe.d.ts +4 -9
  456. package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
  457. package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
  458. package/lib/simple-tree/arrayNode.d.ts +30 -2
  459. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  460. package/lib/simple-tree/arrayNode.js +4 -3
  461. package/lib/simple-tree/arrayNode.js.map +1 -1
  462. package/lib/simple-tree/arrayNodeTypes.d.ts +3 -3
  463. package/lib/simple-tree/arrayNodeTypes.d.ts.map +1 -1
  464. package/lib/simple-tree/arrayNodeTypes.js.map +1 -1
  465. package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
  466. package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  467. package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
  468. package/lib/simple-tree/core/index.d.ts +2 -1
  469. package/lib/simple-tree/core/index.d.ts.map +1 -1
  470. package/lib/simple-tree/core/index.js +1 -1
  471. package/lib/simple-tree/core/index.js.map +1 -1
  472. package/lib/simple-tree/core/treeNode.d.ts +94 -0
  473. package/lib/simple-tree/core/treeNode.d.ts.map +1 -0
  474. package/lib/simple-tree/core/treeNode.js +118 -0
  475. package/lib/simple-tree/core/treeNode.js.map +1 -0
  476. package/lib/simple-tree/core/treeNodeKernel.d.ts +2 -1
  477. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  478. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  479. package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -1
  480. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  481. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  482. package/lib/simple-tree/core/types.d.ts +0 -165
  483. package/lib/simple-tree/core/types.d.ts.map +1 -1
  484. package/lib/simple-tree/core/types.js +0 -110
  485. package/lib/simple-tree/core/types.js.map +1 -1
  486. package/lib/simple-tree/core/withType.d.ts +1 -1
  487. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  488. package/lib/simple-tree/core/withType.js.map +1 -1
  489. package/lib/simple-tree/index.d.ts +4 -4
  490. package/lib/simple-tree/index.d.ts.map +1 -1
  491. package/lib/simple-tree/index.js +1 -1
  492. package/lib/simple-tree/index.js.map +1 -1
  493. package/lib/simple-tree/mapNode.d.ts +2 -2
  494. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  495. package/lib/simple-tree/mapNode.js +2 -2
  496. package/lib/simple-tree/mapNode.js.map +1 -1
  497. package/lib/simple-tree/mapNodeTypes.d.ts +3 -3
  498. package/lib/simple-tree/mapNodeTypes.d.ts.map +1 -1
  499. package/lib/simple-tree/mapNodeTypes.js.map +1 -1
  500. package/lib/simple-tree/objectNode.d.ts +18 -5
  501. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  502. package/lib/simple-tree/objectNode.js +5 -4
  503. package/lib/simple-tree/objectNode.js.map +1 -1
  504. package/lib/simple-tree/objectNodeTypes.d.ts +4 -4
  505. package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
  506. package/lib/simple-tree/objectNodeTypes.js.map +1 -1
  507. package/lib/simple-tree/schemaTypes.d.ts +164 -13
  508. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  509. package/lib/simple-tree/schemaTypes.js +96 -8
  510. package/lib/simple-tree/schemaTypes.js.map +1 -1
  511. package/lib/simple-tree/toStoredSchema.d.ts +8 -8
  512. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  513. package/lib/simple-tree/toStoredSchema.js +26 -31
  514. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  515. package/lib/simple-tree/treeNodeValid.js +2 -2
  516. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  517. package/lib/tableSchema.d.ts +455 -125
  518. package/lib/tableSchema.d.ts.map +1 -1
  519. package/lib/tableSchema.js +398 -101
  520. package/lib/tableSchema.js.map +1 -1
  521. package/lib/treeFactory.d.ts +1 -1
  522. package/lib/treeFactory.d.ts.map +1 -1
  523. package/lib/treeFactory.js +30 -75
  524. package/lib/treeFactory.js.map +1 -1
  525. package/lib/util/typeUtils.d.ts +1 -1
  526. package/lib/util/typeUtils.js.map +1 -1
  527. package/package.json +21 -21
  528. package/src/codec/codec.ts +6 -1
  529. package/src/codec/index.ts +1 -0
  530. package/src/core/index.ts +1 -2
  531. package/src/core/schema-stored/index.ts +3 -3
  532. package/src/core/schema-stored/schema.ts +3 -1
  533. package/src/core/schema-stored/storedSchemaRepository.ts +1 -1
  534. package/src/core/schema-view/index.ts +0 -1
  535. package/src/core/schema-view/view.ts +0 -31
  536. package/src/core/tree/persistedTreeTextFormat.ts +2 -2
  537. package/src/feature-libraries/forest-summary/format.ts +2 -2
  538. package/src/feature-libraries/index.ts +7 -1
  539. package/src/feature-libraries/mapTreeCursor.ts +3 -3
  540. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
  541. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +38 -9
  542. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +3 -4
  543. package/src/feature-libraries/schema-index/codec.ts +80 -12
  544. package/src/feature-libraries/schema-index/{format.ts → formatV1.ts} +4 -4
  545. package/src/feature-libraries/schema-index/index.ts +7 -2
  546. package/src/feature-libraries/schema-index/schemaSummarizer.ts +9 -9
  547. package/src/index.ts +18 -1
  548. package/src/internalTypes.ts +0 -2
  549. package/src/jsonDomainSchema.ts +2 -2
  550. package/src/packageVersion.ts +1 -1
  551. package/src/serializableDomainSchema.ts +3 -3
  552. package/src/shared-tree/independentView.ts +4 -3
  553. package/src/shared-tree/index.ts +5 -6
  554. package/src/shared-tree/schematizeTree.ts +10 -40
  555. package/src/shared-tree/schematizingTreeView.ts +12 -17
  556. package/src/shared-tree/sharedTree.ts +67 -6
  557. package/src/shared-tree/{treeApi.ts → tree.ts} +75 -51
  558. package/src/shared-tree/{treeApiAlpha.ts → treeAlpha.ts} +28 -16
  559. package/src/shared-tree-core/branchCommitEnricher.ts +0 -1
  560. package/src/shared-tree-core/transactionEnricher.ts +4 -1
  561. package/src/simple-tree/api/conciseTree.ts +1 -1
  562. package/src/simple-tree/api/configuration.ts +353 -0
  563. package/src/simple-tree/api/getJsonSchema.ts +1 -1
  564. package/src/simple-tree/api/index.ts +23 -15
  565. package/src/simple-tree/api/{view.ts → schemaCompatibilityTester.ts} +8 -15
  566. package/src/simple-tree/api/schemaFactory.ts +139 -19
  567. package/src/simple-tree/api/schemaFactoryAlpha.ts +7 -5
  568. package/src/simple-tree/api/schemaFactoryRecursive.ts +102 -38
  569. package/src/simple-tree/api/schemaFromSimple.ts +2 -2
  570. package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -1
  571. package/src/simple-tree/api/storedSchema.ts +32 -17
  572. package/src/simple-tree/api/tree.ts +38 -354
  573. package/src/simple-tree/api/{treeApiBeta.ts → treeBeta.ts} +20 -6
  574. package/src/simple-tree/api/treeChangeEvents.ts +84 -0
  575. package/src/simple-tree/api/treeNodeApi.ts +1 -1
  576. package/src/simple-tree/api/typesUnsafe.ts +15 -11
  577. package/src/simple-tree/arrayNode.ts +38 -5
  578. package/src/simple-tree/arrayNodeTypes.ts +8 -7
  579. package/src/simple-tree/core/getOrCreateNode.ts +1 -1
  580. package/src/simple-tree/core/index.ts +5 -4
  581. package/src/simple-tree/core/treeNode.ts +163 -0
  582. package/src/simple-tree/core/treeNodeKernel.ts +2 -1
  583. package/src/simple-tree/core/treeNodeSchema.ts +3 -1
  584. package/src/simple-tree/core/types.ts +0 -234
  585. package/src/simple-tree/core/withType.ts +1 -1
  586. package/src/simple-tree/index.ts +19 -2
  587. package/src/simple-tree/mapNode.ts +11 -3
  588. package/src/simple-tree/mapNodeTypes.ts +10 -7
  589. package/src/simple-tree/objectNode.ts +39 -15
  590. package/src/simple-tree/objectNodeTypes.ts +9 -5
  591. package/src/simple-tree/schemaTypes.ts +354 -25
  592. package/src/simple-tree/toStoredSchema.ts +42 -41
  593. package/src/simple-tree/treeNodeValid.ts +2 -2
  594. package/src/tableSchema.ts +1206 -434
  595. package/src/treeFactory.ts +56 -173
  596. package/src/util/typeUtils.ts +1 -1
  597. package/dist/core/schema-stored/format.d.ts.map +0 -1
  598. package/dist/core/schema-stored/format.js.map +0 -1
  599. package/dist/feature-libraries/schema-index/format.d.ts.map +0 -1
  600. package/dist/feature-libraries/schema-index/format.js.map +0 -1
  601. package/dist/shared-tree/treeApi.d.ts.map +0 -1
  602. package/dist/shared-tree/treeApi.js.map +0 -1
  603. package/dist/shared-tree/treeApiAlpha.d.ts.map +0 -1
  604. package/dist/shared-tree/treeApiAlpha.js.map +0 -1
  605. package/dist/simple-tree/api/treeApiBeta.d.ts.map +0 -1
  606. package/dist/simple-tree/api/treeApiBeta.js.map +0 -1
  607. package/dist/simple-tree/api/view.d.ts.map +0 -1
  608. package/dist/simple-tree/api/view.js.map +0 -1
  609. package/lib/core/schema-stored/format.d.ts.map +0 -1
  610. package/lib/core/schema-stored/format.js.map +0 -1
  611. package/lib/feature-libraries/schema-index/format.d.ts.map +0 -1
  612. package/lib/feature-libraries/schema-index/format.js.map +0 -1
  613. package/lib/shared-tree/treeApi.d.ts.map +0 -1
  614. package/lib/shared-tree/treeApi.js.map +0 -1
  615. package/lib/shared-tree/treeApiAlpha.d.ts.map +0 -1
  616. package/lib/shared-tree/treeApiAlpha.js.map +0 -1
  617. package/lib/simple-tree/api/treeApiBeta.d.ts.map +0 -1
  618. package/lib/simple-tree/api/treeApiBeta.js.map +0 -1
  619. package/lib/simple-tree/api/view.d.ts.map +0 -1
  620. package/lib/simple-tree/api/view.js.map +0 -1
  621. /package/src/core/schema-stored/{format.ts → formatV1.ts} +0 -0
@@ -4,13 +4,8 @@
4
4
  */
5
5
 
6
6
  import { assert } from "@fluidframework/core-utils/internal";
7
- import { UsageError } from "@fluidframework/telemetry-utils/internal";
8
7
  import type { ErasedType } from "@fluidframework/core-interfaces";
9
8
 
10
- import { NodeKind, type TreeNodeSchemaClass } from "./treeNodeSchema.js";
11
- // eslint-disable-next-line import/no-deprecated
12
- import { type WithType, typeNameSymbol, type typeSchemaSymbol } from "./withType.js";
13
- import { tryGetTreeNodeSchema } from "./treeNodeKernel.js";
14
9
  import { isFlexTreeNode, type FlexTreeNode } from "../../feature-libraries/index.js";
15
10
 
16
11
  /**
@@ -29,235 +24,6 @@ import { isFlexTreeNode, type FlexTreeNode } from "../../feature-libraries/index
29
24
  */
30
25
  export type Unhydrated<T> = T;
31
26
 
32
- /**
33
- * A collection of events that can be emitted by a {@link TreeNode}.
34
- *
35
- * @privateRemarks
36
- * TODO: add a way to subscribe to a specific field (for nodeChanged and treeChanged).
37
- * Probably have object node and map node specific APIs for this.
38
- *
39
- * TODO: ensure that subscription API for fields aligns with API for subscribing to the root.
40
- *
41
- * TODO: add more wider area (avoid needing tons of nodeChanged registration) events for use-cases other than treeChanged.
42
- * Some ideas:
43
- *
44
- * - treeChanged, but with some subtrees/fields/paths excluded
45
- * - helper to batch several nodeChanged calls to a treeChanged scope
46
- * - parent change (ex: registration on the parent field for a specific index: maybe allow it for a range. Ex: node event takes optional field and optional index range?)
47
- * - new content inserted into subtree. Either provide event for this and/or enough info to treeChanged to find and search the new sub-trees.
48
- * Add separate (non event related) API to efficiently scan tree for given set of types (using low level cursor and schema based filtering)
49
- * to allow efficiently searching for new content (and initial content) of a given type.
50
- *
51
- * @sealed @public
52
- */
53
- export interface TreeChangeEvents {
54
- /**
55
- * Emitted by a node after a batch of changes has been applied to the tree, if any of the changes affected the node.
56
- *
57
- * - Object nodes define a change as being when the value of one of its properties changes (i.e., the property's value is set, including when set to `undefined`).
58
- *
59
- * - Array nodes define a change as when an element is added, removed, moved or replaced.
60
- *
61
- * - Map nodes define a change as when an entry is added, updated, or removed.
62
- *
63
- * @param unstable - Future versions of this API (such as the one in beta on TreeBeta) may use this argument to provide additional data to the event.
64
- * users of this event should ensure that they do not provide a listener callback which has an optional parameter in this position, since unexpected data might get provided to it.
65
- * This parameter exists to capture this fact in the type system.
66
- * Using an inline lambda expression as the listener callback is a good pattern to avoid cases like this were arguments are added from breaking due to optional arguments.
67
- *
68
- * @remarks
69
- * This event is not emitted when:
70
- *
71
- * - Properties of a child node change. Notably, updates to an array node or a map node (like adding or removing
72
- * elements/entries) will emit this event on the array/map node itself, but not on the node that contains the
73
- * array/map node as one of its properties.
74
- *
75
- * - The node is moved to a different location in the tree or removed from the tree.
76
- * In this case the event is emitted on the _parent_ node, not the node itself.
77
- *
78
- * For remote edits, this event is not guaranteed to occur in the same order or quantity that it did in
79
- * the client that made the original edit.
80
- *
81
- * When the event is emitted, the tree is guaranteed to be in-schema.
82
- *
83
- * @privateRemarks
84
- * This event occurs whenever the apparent contents of the node instance change, regardless of what caused the change.
85
- * For example, it will fire when the local client reassigns a child, when part of a remote edit is applied to the
86
- * node, or when the node has to be updated due to resolution of a merge conflict
87
- * (for example a previously applied local change might be undone, then reapplied differently or not at all).
88
- *
89
- * TODO: define and document event ordering (ex: bottom up, with nodeChanged before treeChange on each level).
90
- */
91
- nodeChanged(unstable?: unknown): void;
92
-
93
- /**
94
- * Emitted by a node after a batch of changes has been applied to the tree, when something changed anywhere in the
95
- * subtree rooted at it.
96
- *
97
- * @remarks
98
- * This event is not emitted when the node itself is moved to a different location in the tree or removed from the tree.
99
- * In that case it is emitted on the _parent_ node, not the node itself.
100
- *
101
- * The node itself is part of the subtree, so this event will be emitted even if the only changes are to the properties
102
- * of the node itself.
103
- *
104
- * For remote edits, this event is not guaranteed to occur in the same order or quantity that it did in
105
- * the client that made the original edit.
106
- *
107
- * When it is emitted, the tree is guaranteed to be in-schema.
108
- */
109
- treeChanged(): void;
110
- }
111
-
112
- /**
113
- * A non-{@link NodeKind.Leaf|leaf} SharedTree node. Includes objects, arrays, and maps.
114
- *
115
- * @remarks
116
- * Base type which all nodes extend.
117
- *
118
- * This type can be used as a type to indicate/document values which should be tree nodes.
119
- * Runtime use of this class object (for example when used with `instanceof` or extending it), is not currently supported.
120
- *
121
- * There are three ways to get instances of TreeNode:
122
- *
123
- * 1. From a {@link TreeView} loading nodes from an existing document, or creating local copies of nodes inserted by a remote collaborator.
124
- * This case provides an {@link InternalTreeNode} to the constructor: subclasses must not modify how the constructor handles this case.
125
- * 2. Explicit construction of {@link Unhydrated} nodes using either {@link TreeNodeSchemaClass} as a constructor or {@link TreeNodeSchemaNonClass|TreeNodeSchemaNonClass.create}.
126
- * Either way the {@link TreeNodeSchema} produced must be produced using a {@link SchemaFactory}.
127
- * 3. Implicit construction: Several APIs which logically require an unhydrated TreeNode also allow passing in a value which could be used to explicitly construct the node instead.
128
- * These APIs internally call the constructor with the provided value, so it's really just a special case of the above option.
129
- * Note that when constructing nodes, sometimes implicit construction is not allowed
130
- * (either at runtime due to ambiguous types or at compile time due to TypeScript limitations):
131
- * in such cases, explicit construction must be used.
132
- *
133
- * @privateRemarks
134
- * This is a class not an interface to enable stricter type checking (see {@link TreeNode.#brand})
135
- * and some runtime enforcement of schema class policy (see the the validation in the constructor).
136
- * This class is however only `type` exported not value exported, preventing the class object from being used,
137
- * similar to how interfaces work.
138
- *
139
- * Not all node implementations include this in their prototype chain (some hide it with a proxy),
140
- * and thus cause the default/built in `instanceof` to return false despite our type checking and all other APIs treating them as TreeNodes.
141
- * This class provides a custom `Symbol.hasInstance` to fix `instanceof` for this class and all classes extending it.
142
- * For now the type-only export prevents use of `instanceof` on this class (but allows it in subclasses like schema classes).
143
- * @sealed @public
144
- */
145
- export abstract class TreeNode implements WithType {
146
- /**
147
- * This is added to prevent TypeScript from implicitly allowing non-TreeNode types to be used as TreeNodes.
148
- * @remarks
149
- * This field forces TypeScript to use nominal instead of structural typing,
150
- * preventing compiler error messages and tools like "add missing properties"
151
- * from adding the [type] field as a solution when using a non-TreeNode object where a TreeNode is required.
152
- * Instead TreeNodes must be created through the appropriate APIs, see the documentation on {@link TreeNode} for details.
153
- *
154
- * @privateRemarks
155
- * This is a JavaScript private field, so is not accessible from outside this class.
156
- * This prevents it from having name collisions with object fields.
157
- * Since this is private, the type of this field is stripped in the d.ts file.
158
- * To get matching type checking within and from outside the package, the least informative type (`unknown`) is used.
159
- * To avoid this having any runtime impact, the field is uninitialized.
160
- *
161
- * Making this field optional results in different type checking within this project than outside of it, since the d.ts file drops the optional aspect of the field.
162
- * This is extra confusing since since the tests get in-project typing for intellisense and separate project checking at build time.
163
- * To avoid all this mess, this field is required, not optional.
164
- *
165
- * Another option would be to use a symbol (possibly as a private field).
166
- * That approach ran into some strange difficulties causing SchemaFactory to fail to compile, and was not investigated further.
167
- *
168
- * The [type] symbol provides a lot of the value this private brand does, but is not all of it:
169
- * someone could manually (or via Intellisense auto-implement completion, or in response to a type error)
170
- * make an object literal with the [type] field and pass it off as a node: this private brand prevents that.
171
- */
172
- readonly #brand!: unknown;
173
-
174
- /**
175
- * Adds a type symbol for stronger typing.
176
- * @privateRemarks
177
- * Subclasses provide more specific strings for this to get strong typing of otherwise type compatible nodes.
178
- * @deprecated Use {@link typeSchemaSymbol} instead.
179
- */
180
- // eslint-disable-next-line import/no-deprecated
181
- public abstract get [typeNameSymbol](): string;
182
-
183
- /**
184
- * Adds a type symbol for stronger typing.
185
- * @privateRemarks
186
- * Subclasses provide more specific strings for this to get strong typing of otherwise type compatible nodes.
187
- */
188
- public abstract get [typeSchemaSymbol](): TreeNodeSchemaClass;
189
-
190
- /**
191
- * Provides `instanceof` support for testing if a value is a `TreeNode`.
192
- * @remarks
193
- * For more options, like including leaf values or narrowing to collections of schema, use `is` or `schema` from {@link TreeNodeApi}.
194
- * @privateRemarks
195
- * Due to type-only export, this functionality is not available outside the package.
196
- */
197
- public static [Symbol.hasInstance](value: unknown): value is TreeNode;
198
-
199
- /**
200
- * Provides `instanceof` support for all schema classes with public constructors.
201
- * @remarks
202
- * For more options, like including leaf values or narrowing to collections of schema, use `is` or `schema` from {@link TreeNodeApi}.
203
- * @privateRemarks
204
- * Despite type-only export, this functionality is available outside the package since it is inherited by subclasses.
205
- */
206
- public static [Symbol.hasInstance]<
207
- TSchema extends abstract new (
208
- ...args: any[]
209
- ) => TreeNode,
210
- >(this: TSchema, value: unknown): value is InstanceType<TSchema>;
211
-
212
- public static [Symbol.hasInstance](this: { prototype: object }, value: unknown): boolean {
213
- const schema = tryGetTreeNodeSchema(value);
214
-
215
- if (schema === undefined || schema.kind === NodeKind.Leaf) {
216
- return false;
217
- }
218
-
219
- assert("prototype" in schema, 0x98a /* expected class based schema */);
220
- return inPrototypeChain(schema.prototype, this.prototype);
221
- }
222
-
223
- /**
224
- * TreeNodes must extend schema classes created by SchemaFactory, and therefore this constructor should not be invoked directly by code outside this package.
225
- * @privateRemarks
226
- * `token` must be the {@link privateToken} value, which is not package exported.
227
- * This is used to detect invalid subclasses.
228
- *
229
- * All valid subclass should use {@link TreeNodeValid}, but this code doesn't directly reference it to avoid cyclic dependencies.
230
- */
231
- protected constructor(token: unknown) {
232
- if (token !== privateToken) {
233
- throw new UsageError("TreeNodes must extend schema classes created by SchemaFactory");
234
- }
235
- }
236
- }
237
-
238
- /**
239
- * `token` to pass to {@link TreeNode}'s constructor used to detect invalid subclasses.
240
- */
241
- export const privateToken = {};
242
-
243
- /**
244
- * Check if the prototype derived's prototype chain contains `base`.
245
- * @param derived - prototype to check
246
- * @param base - prototype to search for
247
- * @returns true iff `base` is in the prototype chain starting at `derived`.
248
- */
249
- // eslint-disable-next-line @rushstack/no-new-null
250
- export function inPrototypeChain(derived: object | null, base: object): boolean {
251
- let checking = derived;
252
- while (checking !== null) {
253
- if (base === checking) {
254
- return true;
255
- }
256
- checking = Reflect.getPrototypeOf(checking);
257
- }
258
- return false;
259
- }
260
-
261
27
  /**
262
28
  * A node type internal to `@fluidframework/tree`.
263
29
  * @remarks
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import type { NodeKind, TreeNodeSchemaClass } from "./treeNodeSchema.js";
7
- import type { TreeNode } from "./types.js";
7
+ import type { TreeNode } from "./treeNode.js";
8
8
 
9
9
  /**
10
10
  * The type of a {@link TreeNode}.
@@ -12,7 +12,6 @@ export {
12
12
  type TreeNodeSchemaClass,
13
13
  type TreeNodeSchemaNonClass,
14
14
  type TreeNodeSchemaCore,
15
- type TreeChangeEvents,
16
15
  // TreeNode is only type exported, which prevents use of the class object for unsupported use-cases like direct sub-classing and instanceof.
17
16
  // See docs on TreeNode for more details.
18
17
  type TreeNode,
@@ -81,7 +80,7 @@ export {
81
80
  comparePersistedSchema,
82
81
  type ConciseTree,
83
82
  comparePersistedSchemaInternal,
84
- ViewSchema,
83
+ SchemaCompatibilityTester,
85
84
  type Unenforced,
86
85
  type System_Unsafe,
87
86
  type ArrayNodeCustomizableSchemaUnsafe,
@@ -120,6 +119,10 @@ export {
120
119
  allowUnused,
121
120
  type FieldSchemaAlphaUnsafe,
122
121
  type TreeSchema,
122
+ type ValidateRecursiveSchemaTemplate,
123
+ type FixRecursiveRecursionLimit,
124
+ schemaStatics,
125
+ type TreeChangeEvents,
123
126
  } from "./api/index.js";
124
127
  export type {
125
128
  SimpleTreeSchema,
@@ -135,13 +138,26 @@ export type {
135
138
  export {
136
139
  type NodeFromSchema,
137
140
  isTreeNodeSchemaClass,
141
+ type AnnotatedAllowedType,
142
+ type AnnotatedAllowedTypes,
138
143
  type ImplicitFieldSchema,
144
+ type ImplicitAnnotatedFieldSchema,
139
145
  type TreeFieldFromImplicitField,
140
146
  type ImplicitAllowedTypes,
147
+ type ImplicitAnnotatedAllowedTypes,
148
+ type UnannotateImplicitAllowedTypes,
149
+ type UnannotateAllowedTypes,
150
+ type UnannotateAllowedType,
151
+ type UnannotateAllowedTypesList,
152
+ type UnannotateAllowedTypeOrLazyItem,
153
+ type UnannotateImplicitFieldSchema,
154
+ type UnannotateSchemaRecord,
141
155
  type TreeNodeFromImplicitAllowedTypes,
142
156
  type InsertableTreeNodeFromImplicitAllowedTypes,
143
157
  type TreeLeafValue,
144
158
  type AllowedTypes,
159
+ type AllowedTypeMetadata,
160
+ type AllowedTypesMetadata,
145
161
  FieldKind,
146
162
  FieldSchema,
147
163
  type FieldSchemaAlpha,
@@ -191,6 +207,7 @@ export {
191
207
  type FieldHasDefault,
192
208
  type InsertableObjectFromSchemaRecord,
193
209
  type ObjectFromSchemaRecord,
210
+ type InsertableObjectFromAnnotatedSchemaRecord,
194
211
  type TreeObjectNode,
195
212
  setField,
196
213
  createUnknownOptionalFieldPolicy,
@@ -15,10 +15,13 @@ import {
15
15
  createFieldSchema,
16
16
  FieldKind,
17
17
  normalizeAllowedTypes,
18
+ unannotateImplicitAllowedTypes,
18
19
  type ImplicitAllowedTypes,
20
+ type ImplicitAnnotatedAllowedTypes,
19
21
  type InsertableTreeNodeFromImplicitAllowedTypes,
20
22
  type NodeSchemaMetadata,
21
23
  type TreeNodeFromImplicitAllowedTypes,
24
+ type UnannotateImplicitAllowedTypes,
22
25
  } from "./schemaTypes.js";
23
26
  import {
24
27
  getKernel,
@@ -233,7 +236,7 @@ abstract class CustomMapNodeBase<const T extends ImplicitAllowedTypes> extends T
233
236
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
234
237
  export function mapSchema<
235
238
  TName extends string,
236
- const T extends ImplicitAllowedTypes,
239
+ const T extends ImplicitAnnotatedAllowedTypes,
237
240
  const ImplicitlyConstructable extends boolean,
238
241
  const TCustomMetadata = unknown,
239
242
  >(
@@ -243,14 +246,19 @@ export function mapSchema<
243
246
  useMapPrototype: boolean,
244
247
  metadata?: NodeSchemaMetadata<TCustomMetadata>,
245
248
  ) {
246
- const lazyChildTypes = new Lazy(() => normalizeAllowedTypes(info));
249
+ const lazyChildTypes = new Lazy(() =>
250
+ normalizeAllowedTypes(unannotateImplicitAllowedTypes(info)),
251
+ );
247
252
  const lazyAllowedTypesIdentifiers = new Lazy(
248
253
  () => new Set([...lazyChildTypes.value].map((type) => type.identifier)),
249
254
  );
250
255
 
251
256
  let unhydratedContext: Context;
252
257
 
253
- class Schema extends CustomMapNodeBase<T> implements TreeMapNode<T> {
258
+ class Schema
259
+ extends CustomMapNodeBase<UnannotateImplicitAllowedTypes<T>>
260
+ implements TreeMapNode<UnannotateImplicitAllowedTypes<T>>
261
+ {
254
262
  public static override prepareInstance<T2>(
255
263
  this: typeof TreeNodeValid<T2>,
256
264
  instance: TreeNodeValid<T2>,
@@ -4,7 +4,10 @@
4
4
  */
5
5
 
6
6
  import type { MapNodeInsertableData, TreeMapNode } from "./mapNode.js";
7
- import type { ImplicitAllowedTypes } from "./schemaTypes.js";
7
+ import type {
8
+ ImplicitAnnotatedAllowedTypes,
9
+ UnannotateImplicitAllowedTypes,
10
+ } from "./schemaTypes.js";
8
11
  import {
9
12
  NodeKind,
10
13
  type TreeNodeSchemaClass,
@@ -21,14 +24,14 @@ import type { SimpleMapNodeSchema } from "./simpleSchema.js";
21
24
  */
22
25
  export interface MapNodeCustomizableSchema<
23
26
  out TName extends string = string,
24
- in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes,
27
+ in out T extends ImplicitAnnotatedAllowedTypes = ImplicitAnnotatedAllowedTypes,
25
28
  out ImplicitlyConstructable extends boolean = true,
26
29
  out TCustomMetadata = unknown,
27
30
  > extends TreeNodeSchemaClass<
28
31
  TName,
29
32
  NodeKind.Map,
30
- TreeMapNode<T> & WithType<TName, NodeKind.Map, T>,
31
- MapNodeInsertableData<T>,
33
+ TreeMapNode<UnannotateImplicitAllowedTypes<T>> & WithType<TName, NodeKind.Map, T>,
34
+ MapNodeInsertableData<UnannotateImplicitAllowedTypes<T>>,
32
35
  ImplicitlyConstructable,
33
36
  T,
34
37
  undefined,
@@ -42,14 +45,14 @@ export interface MapNodeCustomizableSchema<
42
45
  */
43
46
  export interface MapNodePojoEmulationSchema<
44
47
  out TName extends string = string,
45
- in out T extends ImplicitAllowedTypes = ImplicitAllowedTypes,
48
+ in out T extends ImplicitAnnotatedAllowedTypes = ImplicitAnnotatedAllowedTypes,
46
49
  out ImplicitlyConstructable extends boolean = true,
47
50
  out TCustomMetadata = unknown,
48
51
  > extends TreeNodeSchemaNonClass<
49
52
  TName,
50
53
  NodeKind.Map,
51
- TreeMapNode<T> & WithType<TName, NodeKind.Map, T>,
52
- MapNodeInsertableData<T>,
54
+ TreeMapNode<UnannotateImplicitAllowedTypes<T>> & WithType<TName, NodeKind.Map, T>,
55
+ MapNodeInsertableData<UnannotateImplicitAllowedTypes<T>>,
53
56
  ImplicitlyConstructable,
54
57
  T,
55
58
  undefined,
@@ -29,6 +29,9 @@ import {
29
29
  type NodeSchemaMetadata,
30
30
  type FieldSchemaAlpha,
31
31
  ObjectFieldSchema,
32
+ type ImplicitAnnotatedFieldSchema,
33
+ unannotateSchemaRecord,
34
+ type UnannotateSchemaRecord,
32
35
  } from "./schemaTypes.js";
33
36
  import {
34
37
  type TreeNodeSchema,
@@ -59,7 +62,7 @@ import type { SimpleObjectFieldSchema } from "./simpleSchema.js";
59
62
  * @remarks
60
63
  * Due to {@link https://github.com/microsoft/TypeScript/issues/43826}, we can't enable implicit construction of {@link TreeNode|TreeNodes} for setters.
61
64
  * Therefore code assigning to these fields must explicitly construct nodes using the schema's constructor or create method,
62
- * or using some other method like {@link TreeAlpha.create}.
65
+ * or using some other method like {@link (TreeAlpha:interface).create}.
63
66
  * @system @public
64
67
  */
65
68
  export type ObjectFromSchemaRecord<T extends RestrictiveStringRecord<ImplicitFieldSchema>> =
@@ -92,7 +95,9 @@ export type TreeObjectNode<
92
95
  > = TreeNode & ObjectFromSchemaRecord<T> & WithType<TypeName, NodeKind.Object, T>;
93
96
 
94
97
  /**
95
- * Type utility for determining whether or not an implicit field schema has a default value.
98
+ * Type utility for determining if an implicit field schema is known to have a default value.
99
+ *
100
+ * @remarks Yields `false` when unknown.
96
101
  *
97
102
  * @privateRemarks
98
103
  * TODO: Account for field schemas with default value providers.
@@ -100,9 +105,9 @@ export type TreeObjectNode<
100
105
  *
101
106
  * @system @public
102
107
  */
103
- export type FieldHasDefault<T extends ImplicitFieldSchema> = T extends FieldSchema<
104
- FieldKind.Optional | FieldKind.Identifier
105
- >
108
+ export type FieldHasDefault<T extends ImplicitFieldSchema> = [T] extends [
109
+ FieldSchema<FieldKind.Optional | FieldKind.Identifier>,
110
+ ]
106
111
  ? true
107
112
  : false;
108
113
 
@@ -154,6 +159,18 @@ export type InsertableObjectFromSchemaRecord<
154
159
  }
155
160
  >;
156
161
 
162
+ /**
163
+ * Helper used to remove annotations from a schema record and produce insertable objects,
164
+ *
165
+ * @privateremarks
166
+ * This calls {@link InsertableObjectFromSchemaRecord} in order to produce the insertable objects.
167
+ *
168
+ * @system @alpha
169
+ */
170
+ export type InsertableObjectFromAnnotatedSchemaRecord<
171
+ T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>,
172
+ > = InsertableObjectFromSchemaRecord<UnannotateSchemaRecord<T>>;
173
+
157
174
  /**
158
175
  * Maps from simple field keys ("property" keys) to information about the field.
159
176
  *
@@ -354,7 +371,7 @@ abstract class CustomObjectNodeBase<
354
371
  */
355
372
  export function objectSchema<
356
373
  TName extends string,
357
- const T extends RestrictiveStringRecord<ImplicitFieldSchema>,
374
+ const T extends RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>,
358
375
  const ImplicitlyConstructable extends boolean,
359
376
  const TCustomMetadata = unknown,
360
377
  >(
@@ -368,12 +385,14 @@ export function objectSchema<
368
385
  // Field set can't be modified after this since derived data is stored in maps.
369
386
  Object.freeze(info);
370
387
 
388
+ const unannotatedInfo = unannotateSchemaRecord(info);
389
+
371
390
  // Ensure no collisions between final set of property keys, and final set of stored keys (including those
372
391
  // implicitly derived from property keys)
373
- assertUniqueKeys(identifier, info);
392
+ assertUniqueKeys(identifier, unannotatedInfo);
374
393
 
375
394
  // Performance optimization: cache property key => stored key and schema.
376
- const flexKeyMap: SimpleKeyMap = createFlexKeyMapping(info);
395
+ const flexKeyMap: SimpleKeyMap = createFlexKeyMapping(unannotatedInfo);
377
396
 
378
397
  const identifierFieldKeys: FieldKey[] = [];
379
398
  for (const item of flexKeyMap.values()) {
@@ -390,17 +409,22 @@ export function objectSchema<
390
409
  let customizable: boolean;
391
410
  let unhydratedContext: Context;
392
411
 
393
- class CustomObjectNode extends CustomObjectNodeBase<T> {
412
+ class CustomObjectNode extends CustomObjectNodeBase<UnannotateSchemaRecord<T>> {
394
413
  public static readonly fields: ReadonlyMap<
395
414
  string,
396
415
  FieldSchemaAlpha & SimpleObjectFieldSchema
397
416
  > = new Map(
398
417
  Array.from(flexKeyMap, ([key, value]) => [
399
418
  key as string,
400
- new ObjectFieldSchema(value.schema.kind, value.schema.allowedTypes, {
401
- ...value.schema.props,
402
- key: getStoredKey(key as string, value.schema),
403
- }),
419
+ new ObjectFieldSchema(
420
+ value.schema.kind,
421
+ value.schema.allowedTypes,
422
+ (value.schema as FieldSchemaAlpha).annotatedAllowedTypes,
423
+ {
424
+ ...value.schema.props,
425
+ key: getStoredKey(key as string, value.schema),
426
+ },
427
+ ),
404
428
  ]),
405
429
  );
406
430
  public static readonly flexKeyMap: SimpleKeyMap = flexKeyMap;
@@ -513,8 +537,8 @@ export function objectSchema<
513
537
  }
514
538
  type Output = typeof CustomObjectNode &
515
539
  (new (
516
- input: InsertableObjectFromSchemaRecord<T> | InternalTreeNode,
517
- ) => TreeObjectNode<T, TName>);
540
+ input: InsertableObjectFromAnnotatedSchemaRecord<T> | InternalTreeNode,
541
+ ) => TreeObjectNode<UnannotateSchemaRecord<T>, TName>);
518
542
  return CustomObjectNode as Output;
519
543
  }
520
544
 
@@ -6,10 +6,14 @@
6
6
  import type { RestrictiveStringRecord } from "../util/index.js";
7
7
  import type {
8
8
  TreeObjectNode,
9
- InsertableObjectFromSchemaRecord,
10
9
  SimpleKeyMap,
10
+ InsertableObjectFromAnnotatedSchemaRecord,
11
11
  } from "./objectNode.js";
12
- import type { ImplicitFieldSchema, FieldSchemaAlpha } from "./schemaTypes.js";
12
+ import type {
13
+ FieldSchemaAlpha,
14
+ ImplicitAnnotatedFieldSchema,
15
+ UnannotateSchemaRecord,
16
+ } from "./schemaTypes.js";
13
17
  import { NodeKind, type TreeNodeSchemaClass, type TreeNodeSchema } from "./core/index.js";
14
18
  import type { FieldKey } from "../core/index.js";
15
19
  import type { SimpleObjectFieldSchema, SimpleObjectNodeSchema } from "./simpleSchema.js";
@@ -22,14 +26,14 @@ import type { SimpleObjectFieldSchema, SimpleObjectNodeSchema } from "./simpleSc
22
26
  export interface ObjectNodeSchema<
23
27
  out TName extends string = string,
24
28
  in out T extends
25
- RestrictiveStringRecord<ImplicitFieldSchema> = RestrictiveStringRecord<ImplicitFieldSchema>,
29
+ RestrictiveStringRecord<ImplicitAnnotatedFieldSchema> = RestrictiveStringRecord<ImplicitAnnotatedFieldSchema>,
26
30
  ImplicitlyConstructable extends boolean = boolean,
27
31
  out TCustomMetadata = unknown,
28
32
  > extends TreeNodeSchemaClass<
29
33
  TName,
30
34
  NodeKind.Object,
31
- TreeObjectNode<T, TName>,
32
- InsertableObjectFromSchemaRecord<T>,
35
+ TreeObjectNode<UnannotateSchemaRecord<T>, TName>,
36
+ InsertableObjectFromAnnotatedSchemaRecord<T>,
33
37
  ImplicitlyConstructable,
34
38
  T,
35
39
  never,