@fluidframework/tree 2.40.0-336023 → 2.41.0-337492

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 (457) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/api-report/tree.alpha.api.md +4 -1
  3. package/dist/alpha.d.ts +1 -0
  4. package/dist/codec/codec.d.ts +5 -1
  5. package/dist/codec/codec.d.ts.map +1 -1
  6. package/dist/codec/codec.js +6 -2
  7. package/dist/codec/codec.js.map +1 -1
  8. package/dist/codec/index.d.ts +1 -1
  9. package/dist/codec/index.d.ts.map +1 -1
  10. package/dist/codec/index.js +2 -1
  11. package/dist/codec/index.js.map +1 -1
  12. package/dist/core/index.d.ts +2 -2
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +2 -3
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
  17. package/dist/core/schema-stored/formatV1.d.ts.map +1 -0
  18. package/dist/core/schema-stored/{format.js → formatV1.js} +1 -1
  19. package/dist/core/schema-stored/formatV1.js.map +1 -0
  20. package/dist/core/schema-stored/index.d.ts +3 -3
  21. package/dist/core/schema-stored/index.d.ts.map +1 -1
  22. package/dist/core/schema-stored/index.js +3 -3
  23. package/dist/core/schema-stored/index.js.map +1 -1
  24. package/dist/core/schema-stored/schema.d.ts +3 -1
  25. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  26. package/dist/core/schema-stored/schema.js +8 -6
  27. package/dist/core/schema-stored/schema.js.map +1 -1
  28. package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  29. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  30. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
  31. package/dist/core/schema-view/index.d.ts +1 -1
  32. package/dist/core/schema-view/index.d.ts.map +1 -1
  33. package/dist/core/schema-view/index.js +1 -2
  34. package/dist/core/schema-view/index.js.map +1 -1
  35. package/dist/core/schema-view/view.d.ts +0 -27
  36. package/dist/core/schema-view/view.d.ts.map +1 -1
  37. package/dist/core/schema-view/view.js +1 -35
  38. package/dist/core/schema-view/view.js.map +1 -1
  39. package/dist/core/tree/persistedTreeTextFormat.d.ts +4 -4
  40. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  41. package/dist/core/tree/persistedTreeTextFormat.js +1 -1
  42. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  43. package/dist/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
  44. package/dist/feature-libraries/default-schema/schemaChecker.js +0 -7
  45. package/dist/feature-libraries/default-schema/schemaChecker.js.map +1 -1
  46. package/dist/feature-libraries/forest-summary/format.d.ts +2 -2
  47. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  48. package/dist/feature-libraries/forest-summary/format.js +1 -1
  49. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  50. package/dist/feature-libraries/index.d.ts +1 -1
  51. package/dist/feature-libraries/index.d.ts.map +1 -1
  52. package/dist/feature-libraries/index.js +4 -2
  53. package/dist/feature-libraries/index.js.map +1 -1
  54. package/dist/feature-libraries/mapTreeCursor.d.ts +3 -3
  55. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  56. package/dist/feature-libraries/mapTreeCursor.js +2 -2
  57. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  58. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
  59. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  60. package/dist/feature-libraries/modular-schema/modularChangeFormat.js +2 -2
  61. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  62. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
  63. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  64. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -5
  65. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  66. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  67. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  68. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  69. package/dist/feature-libraries/schema-index/codec.d.ts +34 -5
  70. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  71. package/dist/feature-libraries/schema-index/codec.js +63 -9
  72. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  73. package/{lib/feature-libraries/schema-index/format.d.ts → dist/feature-libraries/schema-index/formatV1.d.ts} +9 -9
  74. package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
  75. package/dist/feature-libraries/schema-index/{format.js → formatV1.js} +4 -4
  76. package/dist/feature-libraries/schema-index/formatV1.js.map +1 -0
  77. package/dist/feature-libraries/schema-index/index.d.ts +2 -2
  78. package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
  79. package/dist/feature-libraries/schema-index/index.js +6 -3
  80. package/dist/feature-libraries/schema-index/index.js.map +1 -1
  81. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
  82. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  83. package/dist/feature-libraries/schema-index/schemaSummarizer.js +4 -4
  84. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  85. package/dist/index.d.ts +1 -0
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +10 -8
  88. package/dist/index.js.map +1 -1
  89. package/dist/packageVersion.d.ts +1 -1
  90. package/dist/packageVersion.js +1 -1
  91. package/dist/packageVersion.js.map +1 -1
  92. package/dist/shared-tree/independentView.d.ts.map +1 -1
  93. package/dist/shared-tree/independentView.js +1 -1
  94. package/dist/shared-tree/independentView.js.map +1 -1
  95. package/dist/shared-tree/index.d.ts +1 -1
  96. package/dist/shared-tree/index.d.ts.map +1 -1
  97. package/dist/shared-tree/index.js +2 -1
  98. package/dist/shared-tree/index.js.map +1 -1
  99. package/dist/shared-tree/schematizeTree.d.ts +9 -10
  100. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  101. package/dist/shared-tree/schematizeTree.js +10 -34
  102. package/dist/shared-tree/schematizeTree.js.map +1 -1
  103. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  104. package/dist/shared-tree/schematizingTreeView.js +4 -6
  105. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  106. package/dist/shared-tree/sharedTree.d.ts +28 -3
  107. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  108. package/dist/shared-tree/sharedTree.js +29 -3
  109. package/dist/shared-tree/sharedTree.js.map +1 -1
  110. package/dist/shared-tree/tree.d.ts +24 -0
  111. package/dist/shared-tree/tree.d.ts.map +1 -1
  112. package/dist/shared-tree/tree.js.map +1 -1
  113. package/dist/shared-tree/treeAlpha.d.ts +2 -0
  114. package/dist/shared-tree/treeAlpha.d.ts.map +1 -1
  115. package/dist/shared-tree/treeAlpha.js +3 -2
  116. package/dist/shared-tree/treeAlpha.js.map +1 -1
  117. package/dist/shared-tree-core/branchCommitEnricher.d.ts +0 -1
  118. package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  119. package/dist/shared-tree-core/branchCommitEnricher.js +0 -1
  120. package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
  121. package/dist/shared-tree-core/transactionEnricher.d.ts +1 -1
  122. package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  123. package/dist/shared-tree-core/transactionEnricher.js +4 -1
  124. package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
  125. package/dist/simple-tree/api/index.d.ts +2 -1
  126. package/dist/simple-tree/api/index.d.ts.map +1 -1
  127. package/dist/simple-tree/api/index.js +2 -1
  128. package/dist/simple-tree/api/index.js.map +1 -1
  129. package/dist/simple-tree/api/schemaFactory.d.ts +9 -0
  130. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  131. package/dist/simple-tree/api/schemaFactory.js +7 -0
  132. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  133. package/dist/simple-tree/api/storedSchema.d.ts +8 -7
  134. package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
  135. package/dist/simple-tree/api/storedSchema.js +13 -9
  136. package/dist/simple-tree/api/storedSchema.js.map +1 -1
  137. package/dist/simple-tree/api/tree.d.ts +25 -0
  138. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  139. package/dist/simple-tree/api/tree.js.map +1 -1
  140. package/dist/simple-tree/api/treeBeta.d.ts +4 -1
  141. package/dist/simple-tree/api/treeBeta.d.ts.map +1 -1
  142. package/dist/simple-tree/api/treeBeta.js.map +1 -1
  143. package/dist/simple-tree/api/treeChangeEvents.d.ts +83 -0
  144. package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
  145. package/dist/simple-tree/api/treeChangeEvents.js +7 -0
  146. package/dist/simple-tree/api/treeChangeEvents.js.map +1 -0
  147. package/dist/simple-tree/api/treeNodeApi.d.ts +2 -1
  148. package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  149. package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
  150. package/dist/simple-tree/arrayNode.d.ts +28 -0
  151. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  152. package/dist/simple-tree/arrayNode.js.map +1 -1
  153. package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
  154. package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  155. package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
  156. package/dist/simple-tree/core/index.d.ts +2 -1
  157. package/dist/simple-tree/core/index.d.ts.map +1 -1
  158. package/dist/simple-tree/core/index.js +5 -5
  159. package/dist/simple-tree/core/index.js.map +1 -1
  160. package/dist/simple-tree/core/treeNode.d.ts +94 -0
  161. package/dist/simple-tree/core/treeNode.d.ts.map +1 -0
  162. package/dist/simple-tree/core/treeNode.js +123 -0
  163. package/dist/simple-tree/core/treeNode.js.map +1 -0
  164. package/dist/simple-tree/core/treeNodeKernel.d.ts +2 -1
  165. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  166. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  167. package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -1
  168. package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  169. package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
  170. package/dist/simple-tree/core/types.d.ts +0 -165
  171. package/dist/simple-tree/core/types.d.ts.map +1 -1
  172. package/dist/simple-tree/core/types.js +1 -113
  173. package/dist/simple-tree/core/types.js.map +1 -1
  174. package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  175. package/dist/simple-tree/core/unhydratedFlexTree.js +5 -1
  176. package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  177. package/dist/simple-tree/core/withType.d.ts +1 -1
  178. package/dist/simple-tree/core/withType.d.ts.map +1 -1
  179. package/dist/simple-tree/core/withType.js.map +1 -1
  180. package/dist/simple-tree/index.d.ts +2 -2
  181. package/dist/simple-tree/index.d.ts.map +1 -1
  182. package/dist/simple-tree/index.js +3 -2
  183. package/dist/simple-tree/index.js.map +1 -1
  184. package/dist/simple-tree/schemaTypes.d.ts +1 -0
  185. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  186. package/dist/simple-tree/schemaTypes.js.map +1 -1
  187. package/dist/simple-tree/toStoredSchema.d.ts +8 -8
  188. package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
  189. package/dist/simple-tree/toStoredSchema.js +27 -32
  190. package/dist/simple-tree/toStoredSchema.js.map +1 -1
  191. package/dist/tableSchema.d.ts +309 -91
  192. package/dist/tableSchema.d.ts.map +1 -1
  193. package/dist/tableSchema.js +319 -78
  194. package/dist/tableSchema.js.map +1 -1
  195. package/dist/treeFactory.d.ts +1 -1
  196. package/dist/treeFactory.d.ts.map +1 -1
  197. package/dist/treeFactory.js +30 -75
  198. package/dist/treeFactory.js.map +1 -1
  199. package/lib/alpha.d.ts +1 -0
  200. package/lib/codec/codec.d.ts +5 -1
  201. package/lib/codec/codec.d.ts.map +1 -1
  202. package/lib/codec/codec.js +5 -1
  203. package/lib/codec/codec.js.map +1 -1
  204. package/lib/codec/index.d.ts +1 -1
  205. package/lib/codec/index.d.ts.map +1 -1
  206. package/lib/codec/index.js +1 -1
  207. package/lib/codec/index.js.map +1 -1
  208. package/lib/core/index.d.ts +2 -2
  209. package/lib/core/index.d.ts.map +1 -1
  210. package/lib/core/index.js +2 -2
  211. package/lib/core/index.js.map +1 -1
  212. package/lib/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
  213. package/lib/core/schema-stored/formatV1.d.ts.map +1 -0
  214. package/lib/core/schema-stored/{format.js → formatV1.js} +1 -1
  215. package/lib/core/schema-stored/formatV1.js.map +1 -0
  216. package/lib/core/schema-stored/index.d.ts +3 -3
  217. package/lib/core/schema-stored/index.d.ts.map +1 -1
  218. package/lib/core/schema-stored/index.js +2 -2
  219. package/lib/core/schema-stored/index.js.map +1 -1
  220. package/lib/core/schema-stored/schema.d.ts +3 -1
  221. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  222. package/lib/core/schema-stored/schema.js +3 -1
  223. package/lib/core/schema-stored/schema.js.map +1 -1
  224. package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
  225. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  226. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  227. package/lib/core/schema-view/index.d.ts +1 -1
  228. package/lib/core/schema-view/index.d.ts.map +1 -1
  229. package/lib/core/schema-view/index.js +1 -1
  230. package/lib/core/schema-view/index.js.map +1 -1
  231. package/lib/core/schema-view/view.d.ts +0 -27
  232. package/lib/core/schema-view/view.d.ts.map +1 -1
  233. package/lib/core/schema-view/view.js +0 -34
  234. package/lib/core/schema-view/view.js.map +1 -1
  235. package/lib/core/tree/persistedTreeTextFormat.d.ts +4 -4
  236. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  237. package/lib/core/tree/persistedTreeTextFormat.js +2 -2
  238. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  239. package/lib/feature-libraries/default-schema/schemaChecker.d.ts.map +1 -1
  240. package/lib/feature-libraries/default-schema/schemaChecker.js +0 -7
  241. package/lib/feature-libraries/default-schema/schemaChecker.js.map +1 -1
  242. package/lib/feature-libraries/forest-summary/format.d.ts +2 -2
  243. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  244. package/lib/feature-libraries/forest-summary/format.js +2 -2
  245. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  246. package/lib/feature-libraries/index.d.ts +1 -1
  247. package/lib/feature-libraries/index.d.ts.map +1 -1
  248. package/lib/feature-libraries/index.js +1 -1
  249. package/lib/feature-libraries/index.js.map +1 -1
  250. package/lib/feature-libraries/mapTreeCursor.d.ts +3 -3
  251. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  252. package/lib/feature-libraries/mapTreeCursor.js +2 -2
  253. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  254. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
  255. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  256. package/lib/feature-libraries/modular-schema/modularChangeFormat.js +3 -3
  257. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  258. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
  259. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  260. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -6
  261. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  262. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
  263. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  264. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +3 -3
  265. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  266. package/lib/feature-libraries/schema-index/codec.d.ts +34 -5
  267. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  268. package/lib/feature-libraries/schema-index/codec.js +61 -9
  269. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  270. package/{dist/feature-libraries/schema-index/format.d.ts → lib/feature-libraries/schema-index/formatV1.d.ts} +9 -9
  271. package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
  272. package/lib/feature-libraries/schema-index/{format.js → formatV1.js} +5 -5
  273. package/lib/feature-libraries/schema-index/formatV1.js.map +1 -0
  274. package/lib/feature-libraries/schema-index/index.d.ts +2 -2
  275. package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
  276. package/lib/feature-libraries/schema-index/index.js +2 -2
  277. package/lib/feature-libraries/schema-index/index.js.map +1 -1
  278. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
  279. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  280. package/lib/feature-libraries/schema-index/schemaSummarizer.js +5 -5
  281. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  282. package/lib/index.d.ts +1 -0
  283. package/lib/index.d.ts.map +1 -1
  284. package/lib/index.js +1 -0
  285. package/lib/index.js.map +1 -1
  286. package/lib/packageVersion.d.ts +1 -1
  287. package/lib/packageVersion.js +1 -1
  288. package/lib/packageVersion.js.map +1 -1
  289. package/lib/shared-tree/independentView.d.ts.map +1 -1
  290. package/lib/shared-tree/independentView.js +2 -2
  291. package/lib/shared-tree/independentView.js.map +1 -1
  292. package/lib/shared-tree/index.d.ts +1 -1
  293. package/lib/shared-tree/index.d.ts.map +1 -1
  294. package/lib/shared-tree/index.js +1 -1
  295. package/lib/shared-tree/index.js.map +1 -1
  296. package/lib/shared-tree/schematizeTree.d.ts +9 -10
  297. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  298. package/lib/shared-tree/schematizeTree.js +11 -35
  299. package/lib/shared-tree/schematizeTree.js.map +1 -1
  300. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  301. package/lib/shared-tree/schematizingTreeView.js +5 -7
  302. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  303. package/lib/shared-tree/sharedTree.d.ts +28 -3
  304. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  305. package/lib/shared-tree/sharedTree.js +29 -4
  306. package/lib/shared-tree/sharedTree.js.map +1 -1
  307. package/lib/shared-tree/tree.d.ts +24 -0
  308. package/lib/shared-tree/tree.d.ts.map +1 -1
  309. package/lib/shared-tree/tree.js.map +1 -1
  310. package/lib/shared-tree/treeAlpha.d.ts +2 -0
  311. package/lib/shared-tree/treeAlpha.d.ts.map +1 -1
  312. package/lib/shared-tree/treeAlpha.js +4 -3
  313. package/lib/shared-tree/treeAlpha.js.map +1 -1
  314. package/lib/shared-tree-core/branchCommitEnricher.d.ts +0 -1
  315. package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  316. package/lib/shared-tree-core/branchCommitEnricher.js +0 -1
  317. package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
  318. package/lib/shared-tree-core/transactionEnricher.d.ts +1 -1
  319. package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  320. package/lib/shared-tree-core/transactionEnricher.js +4 -1
  321. package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
  322. package/lib/simple-tree/api/index.d.ts +2 -1
  323. package/lib/simple-tree/api/index.d.ts.map +1 -1
  324. package/lib/simple-tree/api/index.js +1 -1
  325. package/lib/simple-tree/api/index.js.map +1 -1
  326. package/lib/simple-tree/api/schemaFactory.d.ts +9 -0
  327. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  328. package/lib/simple-tree/api/schemaFactory.js +7 -0
  329. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  330. package/lib/simple-tree/api/storedSchema.d.ts +8 -7
  331. package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
  332. package/lib/simple-tree/api/storedSchema.js +17 -11
  333. package/lib/simple-tree/api/storedSchema.js.map +1 -1
  334. package/lib/simple-tree/api/tree.d.ts +25 -0
  335. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  336. package/lib/simple-tree/api/tree.js.map +1 -1
  337. package/lib/simple-tree/api/treeBeta.d.ts +4 -1
  338. package/lib/simple-tree/api/treeBeta.d.ts.map +1 -1
  339. package/lib/simple-tree/api/treeBeta.js.map +1 -1
  340. package/lib/simple-tree/api/treeChangeEvents.d.ts +83 -0
  341. package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
  342. package/lib/simple-tree/api/treeChangeEvents.js +6 -0
  343. package/lib/simple-tree/api/treeChangeEvents.js.map +1 -0
  344. package/lib/simple-tree/api/treeNodeApi.d.ts +2 -1
  345. package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
  346. package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
  347. package/lib/simple-tree/arrayNode.d.ts +28 -0
  348. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  349. package/lib/simple-tree/arrayNode.js.map +1 -1
  350. package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
  351. package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  352. package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
  353. package/lib/simple-tree/core/index.d.ts +2 -1
  354. package/lib/simple-tree/core/index.d.ts.map +1 -1
  355. package/lib/simple-tree/core/index.js +1 -1
  356. package/lib/simple-tree/core/index.js.map +1 -1
  357. package/lib/simple-tree/core/treeNode.d.ts +94 -0
  358. package/lib/simple-tree/core/treeNode.d.ts.map +1 -0
  359. package/lib/simple-tree/core/treeNode.js +118 -0
  360. package/lib/simple-tree/core/treeNode.js.map +1 -0
  361. package/lib/simple-tree/core/treeNodeKernel.d.ts +2 -1
  362. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  363. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  364. package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -1
  365. package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
  366. package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
  367. package/lib/simple-tree/core/types.d.ts +0 -165
  368. package/lib/simple-tree/core/types.d.ts.map +1 -1
  369. package/lib/simple-tree/core/types.js +0 -110
  370. package/lib/simple-tree/core/types.js.map +1 -1
  371. package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -1
  372. package/lib/simple-tree/core/unhydratedFlexTree.js +5 -1
  373. package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -1
  374. package/lib/simple-tree/core/withType.d.ts +1 -1
  375. package/lib/simple-tree/core/withType.d.ts.map +1 -1
  376. package/lib/simple-tree/core/withType.js.map +1 -1
  377. package/lib/simple-tree/index.d.ts +2 -2
  378. package/lib/simple-tree/index.d.ts.map +1 -1
  379. package/lib/simple-tree/index.js +1 -1
  380. package/lib/simple-tree/index.js.map +1 -1
  381. package/lib/simple-tree/schemaTypes.d.ts +1 -0
  382. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  383. package/lib/simple-tree/schemaTypes.js.map +1 -1
  384. package/lib/simple-tree/toStoredSchema.d.ts +8 -8
  385. package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
  386. package/lib/simple-tree/toStoredSchema.js +26 -31
  387. package/lib/simple-tree/toStoredSchema.js.map +1 -1
  388. package/lib/tableSchema.d.ts +309 -91
  389. package/lib/tableSchema.d.ts.map +1 -1
  390. package/lib/tableSchema.js +319 -78
  391. package/lib/tableSchema.js.map +1 -1
  392. package/lib/treeFactory.d.ts +1 -1
  393. package/lib/treeFactory.d.ts.map +1 -1
  394. package/lib/treeFactory.js +30 -75
  395. package/lib/treeFactory.js.map +1 -1
  396. package/package.json +21 -21
  397. package/src/codec/codec.ts +6 -1
  398. package/src/codec/index.ts +1 -0
  399. package/src/core/index.ts +1 -2
  400. package/src/core/schema-stored/index.ts +3 -3
  401. package/src/core/schema-stored/schema.ts +3 -1
  402. package/src/core/schema-stored/storedSchemaRepository.ts +1 -1
  403. package/src/core/schema-view/index.ts +0 -1
  404. package/src/core/schema-view/view.ts +0 -31
  405. package/src/core/tree/persistedTreeTextFormat.ts +2 -2
  406. package/src/feature-libraries/default-schema/schemaChecker.ts +0 -8
  407. package/src/feature-libraries/forest-summary/format.ts +2 -2
  408. package/src/feature-libraries/index.ts +7 -1
  409. package/src/feature-libraries/mapTreeCursor.ts +3 -3
  410. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
  411. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +38 -9
  412. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +3 -4
  413. package/src/feature-libraries/schema-index/codec.ts +80 -12
  414. package/src/feature-libraries/schema-index/{format.ts → formatV1.ts} +4 -4
  415. package/src/feature-libraries/schema-index/index.ts +7 -2
  416. package/src/feature-libraries/schema-index/schemaSummarizer.ts +9 -9
  417. package/src/index.ts +1 -0
  418. package/src/packageVersion.ts +1 -1
  419. package/src/shared-tree/independentView.ts +3 -2
  420. package/src/shared-tree/index.ts +2 -0
  421. package/src/shared-tree/schematizeTree.ts +6 -36
  422. package/src/shared-tree/schematizingTreeView.ts +5 -12
  423. package/src/shared-tree/sharedTree.ts +67 -6
  424. package/src/shared-tree/tree.ts +24 -0
  425. package/src/shared-tree/treeAlpha.ts +6 -3
  426. package/src/shared-tree-core/branchCommitEnricher.ts +0 -1
  427. package/src/shared-tree-core/transactionEnricher.ts +4 -1
  428. package/src/simple-tree/api/index.ts +2 -0
  429. package/src/simple-tree/api/schemaFactory.ts +9 -0
  430. package/src/simple-tree/api/storedSchema.ts +24 -13
  431. package/src/simple-tree/api/tree.ts +25 -0
  432. package/src/simple-tree/api/treeBeta.ts +3 -1
  433. package/src/simple-tree/api/treeChangeEvents.ts +84 -0
  434. package/src/simple-tree/api/treeNodeApi.ts +1 -1
  435. package/src/simple-tree/arrayNode.ts +28 -0
  436. package/src/simple-tree/core/getOrCreateNode.ts +1 -1
  437. package/src/simple-tree/core/index.ts +5 -4
  438. package/src/simple-tree/core/treeNode.ts +163 -0
  439. package/src/simple-tree/core/treeNodeKernel.ts +2 -1
  440. package/src/simple-tree/core/treeNodeSchema.ts +3 -1
  441. package/src/simple-tree/core/types.ts +0 -234
  442. package/src/simple-tree/core/unhydratedFlexTree.ts +6 -1
  443. package/src/simple-tree/core/withType.ts +1 -1
  444. package/src/simple-tree/index.ts +2 -1
  445. package/src/simple-tree/schemaTypes.ts +1 -0
  446. package/src/simple-tree/toStoredSchema.ts +42 -41
  447. package/src/tableSchema.ts +713 -259
  448. package/src/treeFactory.ts +56 -173
  449. package/dist/core/schema-stored/format.d.ts.map +0 -1
  450. package/dist/core/schema-stored/format.js.map +0 -1
  451. package/dist/feature-libraries/schema-index/format.d.ts.map +0 -1
  452. package/dist/feature-libraries/schema-index/format.js.map +0 -1
  453. package/lib/core/schema-stored/format.d.ts.map +0 -1
  454. package/lib/core/schema-stored/format.js.map +0 -1
  455. package/lib/feature-libraries/schema-index/format.d.ts.map +0 -1
  456. package/lib/feature-libraries/schema-index/format.js.map +0 -1
  457. /package/src/core/schema-stored/{format.ts → formatV1.ts} +0 -0
@@ -4,7 +4,7 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.getStoredSchema = exports.convertAllowedTypes = exports.convertField = exports.toStoredSchema = void 0;
7
+ exports.getStoredSchema = exports.convertField = exports.simpleToStoredSchema = exports.toStoredSchema = void 0;
8
8
  const internal_1 = require("@fluidframework/core-utils/internal");
9
9
  const internal_2 = require("@fluidframework/telemetry-utils/internal");
10
10
  const index_js_1 = require("../core/index.js");
@@ -14,15 +14,15 @@ const index_js_4 = require("./core/index.js");
14
14
  const schemaTypes_js_1 = require("./schemaTypes.js");
15
15
  const walkFieldSchema_js_1 = require("./walkFieldSchema.js");
16
16
  const leafNodeSchema_js_1 = require("./leafNodeSchema.js");
17
- const objectNodeTypes_js_1 = require("./objectNodeTypes.js");
18
17
  const viewToStoredCache = new WeakMap();
19
18
  /**
20
19
  * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema}.
21
20
  */
22
21
  function toStoredSchema(root) {
23
22
  return (0, index_js_3.getOrCreate)(viewToStoredCache, root, () => {
23
+ const normalized = (0, schemaTypes_js_1.normalizeFieldSchema)(root);
24
24
  const nodeSchema = new Map();
25
- (0, walkFieldSchema_js_1.walkFieldSchema)(root, {
25
+ (0, walkFieldSchema_js_1.walkFieldSchema)(normalized, {
26
26
  node(schema) {
27
27
  if (nodeSchema.has((0, index_js_3.brand)(schema.identifier))) {
28
28
  // Use JSON.stringify to quote and escape identifier string.
@@ -33,29 +33,33 @@ function toStoredSchema(root) {
33
33
  });
34
34
  const result = {
35
35
  nodeSchema,
36
- rootFieldSchema: convertField(root),
36
+ rootFieldSchema: convertField(normalized),
37
37
  };
38
- viewToStoredCache.set(root, result);
39
38
  return result;
40
39
  });
41
40
  }
42
41
  exports.toStoredSchema = toStoredSchema;
42
+ /**
43
+ * Converts a {@link SimpleTreeSchema} into a {@link TreeStoredSchema}.
44
+ */
45
+ function simpleToStoredSchema(root) {
46
+ const nodeSchema = new Map();
47
+ for (const [identifier, schema] of root.definitions) {
48
+ nodeSchema.set((0, index_js_3.brand)(identifier), getStoredSchema(schema));
49
+ }
50
+ const result = {
51
+ nodeSchema,
52
+ rootFieldSchema: convertField(root.root),
53
+ };
54
+ return result;
55
+ }
56
+ exports.simpleToStoredSchema = simpleToStoredSchema;
43
57
  /**
44
58
  * Normalizes an {@link ImplicitFieldSchema} into a {@link TreeFieldSchema}.
45
59
  */
46
60
  function convertField(schema) {
47
- let kind;
48
- let allowedTypes;
49
- if (schema instanceof schemaTypes_js_1.FieldSchema) {
50
- kind =
51
- convertFieldKind.get(schema.kind)?.identifier ?? (0, internal_1.fail)(0xae3 /* Invalid field kind */);
52
- allowedTypes = schema.allowedTypes;
53
- }
54
- else {
55
- kind = index_js_2.FieldKinds.required.identifier;
56
- allowedTypes = schema;
57
- }
58
- const types = convertAllowedTypes(allowedTypes);
61
+ const kind = convertFieldKind.get(schema.kind)?.identifier ?? (0, internal_1.fail)(0xae3 /* Invalid field kind */);
62
+ const types = schema.allowedTypesIdentifiers;
59
63
  return { kind, types };
60
64
  }
61
65
  exports.convertField = convertField;
@@ -64,13 +68,6 @@ const convertFieldKind = new Map([
64
68
  [schemaTypes_js_1.FieldKind.Required, index_js_2.FieldKinds.required],
65
69
  [schemaTypes_js_1.FieldKind.Identifier, index_js_2.FieldKinds.identifier],
66
70
  ]);
67
- /**
68
- * Normalizes an {@link ImplicitAllowedTypes} into an {@link TreeTypeSet}.
69
- */
70
- function convertAllowedTypes(schema) {
71
- return new Set([...(0, schemaTypes_js_1.normalizeAllowedTypes)(schema)].map((item) => (0, index_js_3.brand)(item.identifier)));
72
- }
73
- exports.convertAllowedTypes = convertAllowedTypes;
74
71
  /**
75
72
  * Converts a {@link TreeNodeSchema} into a {@link TreeNodeStoredSchema}.
76
73
  */
@@ -79,27 +76,25 @@ function getStoredSchema(schema) {
79
76
  switch (kind) {
80
77
  case index_js_4.NodeKind.Leaf: {
81
78
  (0, internal_1.assert)(schema instanceof leafNodeSchema_js_1.LeafNodeSchema, 0xa4a /* invalid kind */);
82
- return new index_js_1.LeafNodeStoredSchema(schema.info);
79
+ return new index_js_1.LeafNodeStoredSchema(schema.leafKind);
83
80
  }
84
81
  case index_js_4.NodeKind.Map: {
85
- const fieldInfo = schema.info;
86
- const types = convertAllowedTypes(fieldInfo);
82
+ const types = schema.allowedTypesIdentifiers;
87
83
  return new index_js_1.MapNodeStoredSchema({ kind: index_js_2.FieldKinds.optional.identifier, types });
88
84
  }
89
85
  case index_js_4.NodeKind.Array: {
90
- const fieldInfo = schema.info;
86
+ const types = schema.allowedTypesIdentifiers;
91
87
  const field = {
92
88
  kind: index_js_2.FieldKinds.sequence.identifier,
93
- types: convertAllowedTypes(fieldInfo),
89
+ types,
94
90
  };
95
91
  const fields = new Map([[index_js_1.EmptyKey, field]]);
96
92
  return new index_js_1.ObjectNodeStoredSchema(fields);
97
93
  }
98
94
  case index_js_4.NodeKind.Object: {
99
- (0, internal_1.assert)((0, objectNodeTypes_js_1.isObjectNodeSchema)(schema), 0xa4b /* invalid kind */);
100
95
  const fields = new Map();
101
- for (const field of schema.flexKeyMap.values()) {
102
- fields.set(field.storedKey, convertField(field.schema));
96
+ for (const fieldSchema of schema.fields.values()) {
97
+ fields.set((0, index_js_3.brand)(fieldSchema.storedKey), convertField(fieldSchema));
103
98
  }
104
99
  return new index_js_1.ObjectNodeStoredSchema(fields);
105
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toStoredSchema.js","sourceRoot":"","sources":["../../src/simple-tree/toStoredSchema.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, unreachableCase, fail } from \"@fluidframework/core-utils/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport {\n\tEmptyKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\ttype FieldKey,\n\ttype FieldKindIdentifier,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n\ttype TreeTypeSet,\n} from \"../core/index.js\";\nimport { FieldKinds, type FlexFieldKind } from \"../feature-libraries/index.js\";\nimport { brand, getOrCreate } from \"../util/index.js\";\nimport { NodeKind, type TreeNodeSchema } from \"./core/index.js\";\nimport {\n\tFieldKind,\n\tFieldSchema,\n\tnormalizeAllowedTypes,\n\ttype ImplicitAllowedTypes,\n\ttype ImplicitFieldSchema,\n} from \"./schemaTypes.js\";\nimport { walkFieldSchema } from \"./walkFieldSchema.js\";\nimport { LeafNodeSchema } from \"./leafNodeSchema.js\";\nimport { isObjectNodeSchema } from \"./objectNodeTypes.js\";\n\nconst viewToStoredCache = new WeakMap<ImplicitFieldSchema, TreeStoredSchema>();\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema}.\n */\nexport function toStoredSchema(root: ImplicitFieldSchema): TreeStoredSchema {\n\treturn getOrCreate(viewToStoredCache, root, () => {\n\t\tconst nodeSchema: Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema> = new Map();\n\t\twalkFieldSchema(root, {\n\t\t\tnode(schema) {\n\t\t\t\tif (nodeSchema.has(brand(schema.identifier))) {\n\t\t\t\t\t// Use JSON.stringify to quote and escape identifier string.\n\t\t\t\t\tthrow new UsageError(\n\t\t\t\t\t\t`Multiple schema encountered with the identifier ${JSON.stringify(\n\t\t\t\t\t\t\tschema.identifier,\n\t\t\t\t\t\t)}. Remove or rename them to avoid the collision.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tnodeSchema.set(brand(schema.identifier), getStoredSchema(schema));\n\t\t\t},\n\t\t});\n\n\t\tconst result: TreeStoredSchema = {\n\t\t\tnodeSchema,\n\t\t\trootFieldSchema: convertField(root),\n\t\t};\n\t\tviewToStoredCache.set(root, result);\n\t\treturn result;\n\t});\n}\n\n/**\n * Normalizes an {@link ImplicitFieldSchema} into a {@link TreeFieldSchema}.\n */\nexport function convertField(schema: ImplicitFieldSchema): TreeFieldStoredSchema {\n\tlet kind: FieldKindIdentifier;\n\tlet allowedTypes: ImplicitAllowedTypes;\n\tif (schema instanceof FieldSchema) {\n\t\tkind =\n\t\t\tconvertFieldKind.get(schema.kind)?.identifier ?? fail(0xae3 /* Invalid field kind */);\n\t\tallowedTypes = schema.allowedTypes;\n\t} else {\n\t\tkind = FieldKinds.required.identifier;\n\t\tallowedTypes = schema;\n\t}\n\tconst types = convertAllowedTypes(allowedTypes);\n\treturn { kind, types };\n}\n\nconst convertFieldKind = new Map<FieldKind, FlexFieldKind>([\n\t[FieldKind.Optional, FieldKinds.optional],\n\t[FieldKind.Required, FieldKinds.required],\n\t[FieldKind.Identifier, FieldKinds.identifier],\n]);\n\n/**\n * Normalizes an {@link ImplicitAllowedTypes} into an {@link TreeTypeSet}.\n */\nexport function convertAllowedTypes(schema: ImplicitAllowedTypes): TreeTypeSet {\n\treturn new Set([...normalizeAllowedTypes(schema)].map((item) => brand(item.identifier)));\n}\n\n/**\n * Converts a {@link TreeNodeSchema} into a {@link TreeNodeStoredSchema}.\n */\nexport function getStoredSchema(schema: TreeNodeSchema): TreeNodeStoredSchema {\n\tconst kind = schema.kind;\n\tswitch (kind) {\n\t\tcase NodeKind.Leaf: {\n\t\t\tassert(schema instanceof LeafNodeSchema, 0xa4a /* invalid kind */);\n\t\t\treturn new LeafNodeStoredSchema(schema.info);\n\t\t}\n\t\tcase NodeKind.Map: {\n\t\t\tconst fieldInfo = schema.info as ImplicitAllowedTypes;\n\t\t\tconst types = convertAllowedTypes(fieldInfo);\n\t\t\treturn new MapNodeStoredSchema({ kind: FieldKinds.optional.identifier, types });\n\t\t}\n\t\tcase NodeKind.Array: {\n\t\t\tconst fieldInfo = schema.info as ImplicitAllowedTypes;\n\t\t\tconst field = {\n\t\t\t\tkind: FieldKinds.sequence.identifier,\n\t\t\t\ttypes: convertAllowedTypes(fieldInfo),\n\t\t\t};\n\t\t\tconst fields = new Map([[EmptyKey, field]]);\n\t\t\treturn new ObjectNodeStoredSchema(fields);\n\t\t}\n\t\tcase NodeKind.Object: {\n\t\t\tassert(isObjectNodeSchema(schema), 0xa4b /* invalid kind */);\n\t\t\tconst fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();\n\t\t\tfor (const field of schema.flexKeyMap.values()) {\n\t\t\t\tfields.set(field.storedKey, convertField(field.schema));\n\t\t\t}\n\t\t\treturn new ObjectNodeStoredSchema(fields);\n\t\t}\n\t\tdefault:\n\t\t\tunreachableCase(kind);\n\t}\n}\n"]}
1
+ {"version":3,"file":"toStoredSchema.js","sourceRoot":"","sources":["../../src/simple-tree/toStoredSchema.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAAoF;AACpF,uEAAsE;AAEtE,+CAY0B;AAC1B,4DAA+E;AAC/E,+CAAsD;AACtD,8CAA2C;AAC3C,qDAA6F;AAC7F,6DAAuD;AACvD,2DAAqD;AAQrD,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAyC,CAAC;AAE/E;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAyB;IACvD,OAAO,IAAA,sBAAW,EAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE;QAChD,MAAM,UAAU,GAAG,IAAA,qCAAoB,EAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAwD,IAAI,GAAG,EAAE,CAAC;QAClF,IAAA,oCAAe,EAAC,UAAU,EAAE;YAC3B,IAAI,CAAC,MAAM;gBACV,IAAI,UAAU,CAAC,GAAG,CAAC,IAAA,gBAAK,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBAC9C,4DAA4D;oBAC5D,MAAM,IAAI,qBAAU,CACnB,mDAAmD,IAAI,CAAC,SAAS,CAChE,MAAM,CAAC,UAAU,CACjB,iDAAiD,CAClD,CAAC;gBACH,CAAC;gBACD,UAAU,CAAC,GAAG,CACb,IAAA,gBAAK,EAAC,MAAM,CAAC,UAAU,CAAC,EACxB,eAAe,CAAC,MAA4D,CAAC,CAC7E,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAqB;YAChC,UAAU;YACV,eAAe,EAAE,YAAY,CAAC,UAAU,CAAC;SACzC,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;AACJ,CAAC;AA3BD,wCA2BC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAsB;IAC1D,MAAM,UAAU,GAAwD,IAAI,GAAG,EAAE,CAAC;IAClF,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrD,UAAU,CAAC,GAAG,CAAC,IAAA,gBAAK,EAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAqB;QAChC,UAAU;QACV,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;KACxC,CAAC;IACF,OAAO,MAAM,CAAC;AACf,CAAC;AAXD,oDAWC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAyB;IACrD,MAAM,IAAI,GACT,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,IAAI,IAAA,eAAI,EAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvF,MAAM,KAAK,GAAgB,MAAM,CAAC,uBAAsC,CAAC;IACzE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AALD,oCAKC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAA2B;IAC1D,CAAC,0BAAS,CAAC,QAAQ,EAAE,qBAAU,CAAC,QAAQ,CAAC;IACzC,CAAC,0BAAS,CAAC,QAAQ,EAAE,qBAAU,CAAC,QAAQ,CAAC;IACzC,CAAC,0BAAS,CAAC,UAAU,EAAE,qBAAU,CAAC,UAAU,CAAC;CAC7C,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAwB;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,mBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACpB,IAAA,iBAAM,EAAC,MAAM,YAAY,kCAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACnE,OAAO,IAAI,+BAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,mBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAsC,CAAC;YAC5D,OAAO,IAAI,8BAAmB,CAAC,EAAE,IAAI,EAAE,qBAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,KAAK,mBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAsC,CAAC;YAC5D,MAAM,KAAK,GAAG;gBACb,IAAI,EAAE,qBAAU,CAAC,QAAQ,CAAC,UAAU;gBACpC,KAAK;aACL,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,mBAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,iCAAsB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAyC,IAAI,GAAG,EAAE,CAAC;YAC/D,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,CAAC,IAAA,gBAAK,EAAC,WAAW,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,IAAI,iCAAsB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD;YACC,IAAA,0BAAe,EAAC,IAAI,CAAC,CAAC;IACxB,CAAC;AACF,CAAC;AA9BD,0CA8BC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert, unreachableCase, fail } from \"@fluidframework/core-utils/internal\";\nimport { UsageError } from \"@fluidframework/telemetry-utils/internal\";\n\nimport {\n\tEmptyKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\ttype FieldKey,\n\ttype FieldKindIdentifier,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n\ttype TreeTypeSet,\n} from \"../core/index.js\";\nimport { FieldKinds, type FlexFieldKind } from \"../feature-libraries/index.js\";\nimport { brand, getOrCreate } from \"../util/index.js\";\nimport { NodeKind } from \"./core/index.js\";\nimport { FieldKind, normalizeFieldSchema, type ImplicitFieldSchema } from \"./schemaTypes.js\";\nimport { walkFieldSchema } from \"./walkFieldSchema.js\";\nimport { LeafNodeSchema } from \"./leafNodeSchema.js\";\nimport type {\n\tSimpleFieldSchema,\n\tSimpleNodeSchema,\n\tSimpleNodeSchemaBase,\n\tSimpleTreeSchema,\n} from \"./simpleSchema.js\";\n\nconst viewToStoredCache = new WeakMap<ImplicitFieldSchema, TreeStoredSchema>();\n\n/**\n * Converts a {@link ImplicitFieldSchema} into a {@link TreeStoredSchema}.\n */\nexport function toStoredSchema(root: ImplicitFieldSchema): TreeStoredSchema {\n\treturn getOrCreate(viewToStoredCache, root, () => {\n\t\tconst normalized = normalizeFieldSchema(root);\n\t\tconst nodeSchema: Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema> = new Map();\n\t\twalkFieldSchema(normalized, {\n\t\t\tnode(schema) {\n\t\t\t\tif (nodeSchema.has(brand(schema.identifier))) {\n\t\t\t\t\t// Use JSON.stringify to quote and escape identifier string.\n\t\t\t\t\tthrow new UsageError(\n\t\t\t\t\t\t`Multiple schema encountered with the identifier ${JSON.stringify(\n\t\t\t\t\t\t\tschema.identifier,\n\t\t\t\t\t\t)}. Remove or rename them to avoid the collision.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tnodeSchema.set(\n\t\t\t\t\tbrand(schema.identifier),\n\t\t\t\t\tgetStoredSchema(schema as SimpleNodeSchemaBase<NodeKind> as SimpleNodeSchema),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\tconst result: TreeStoredSchema = {\n\t\t\tnodeSchema,\n\t\t\trootFieldSchema: convertField(normalized),\n\t\t};\n\t\treturn result;\n\t});\n}\n\n/**\n * Converts a {@link SimpleTreeSchema} into a {@link TreeStoredSchema}.\n */\nexport function simpleToStoredSchema(root: SimpleTreeSchema): TreeStoredSchema {\n\tconst nodeSchema: Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema> = new Map();\n\tfor (const [identifier, schema] of root.definitions) {\n\t\tnodeSchema.set(brand(identifier), getStoredSchema(schema));\n\t}\n\n\tconst result: TreeStoredSchema = {\n\t\tnodeSchema,\n\t\trootFieldSchema: convertField(root.root),\n\t};\n\treturn result;\n}\n\n/**\n * Normalizes an {@link ImplicitFieldSchema} into a {@link TreeFieldSchema}.\n */\nexport function convertField(schema: SimpleFieldSchema): TreeFieldStoredSchema {\n\tconst kind: FieldKindIdentifier =\n\t\tconvertFieldKind.get(schema.kind)?.identifier ?? fail(0xae3 /* Invalid field kind */);\n\tconst types: TreeTypeSet = schema.allowedTypesIdentifiers as TreeTypeSet;\n\treturn { kind, types };\n}\n\nconst convertFieldKind = new Map<FieldKind, FlexFieldKind>([\n\t[FieldKind.Optional, FieldKinds.optional],\n\t[FieldKind.Required, FieldKinds.required],\n\t[FieldKind.Identifier, FieldKinds.identifier],\n]);\n\n/**\n * Converts a {@link TreeNodeSchema} into a {@link TreeNodeStoredSchema}.\n */\nexport function getStoredSchema(schema: SimpleNodeSchema): TreeNodeStoredSchema {\n\tconst kind = schema.kind;\n\tswitch (kind) {\n\t\tcase NodeKind.Leaf: {\n\t\t\tassert(schema instanceof LeafNodeSchema, 0xa4a /* invalid kind */);\n\t\t\treturn new LeafNodeStoredSchema(schema.leafKind);\n\t\t}\n\t\tcase NodeKind.Map: {\n\t\t\tconst types = schema.allowedTypesIdentifiers as TreeTypeSet;\n\t\t\treturn new MapNodeStoredSchema({ kind: FieldKinds.optional.identifier, types });\n\t\t}\n\t\tcase NodeKind.Array: {\n\t\t\tconst types = schema.allowedTypesIdentifiers as TreeTypeSet;\n\t\t\tconst field = {\n\t\t\t\tkind: FieldKinds.sequence.identifier,\n\t\t\t\ttypes,\n\t\t\t};\n\t\t\tconst fields = new Map([[EmptyKey, field]]);\n\t\t\treturn new ObjectNodeStoredSchema(fields);\n\t\t}\n\t\tcase NodeKind.Object: {\n\t\t\tconst fields: Map<FieldKey, TreeFieldStoredSchema> = new Map();\n\t\t\tfor (const fieldSchema of schema.fields.values()) {\n\t\t\t\tfields.set(brand(fieldSchema.storedKey), convertField(fieldSchema));\n\t\t\t}\n\t\t\treturn new ObjectNodeStoredSchema(fields);\n\t\t}\n\t\tdefault:\n\t\t\tunreachableCase(kind);\n\t}\n}\n"]}