@fluidframework/tree 2.0.0-dev-rc.5.0.0.271045 → 2.0.0-dev-rc.5.0.0.271717

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 (1607) hide show
  1. package/.eslintrc.cjs +5 -0
  2. package/api-report/tree.alpha.api.md +10 -21
  3. package/api-report/tree.beta.api.md +10 -21
  4. package/api-report/tree.public.api.md +10 -21
  5. package/dist/beta.d.ts +0 -1
  6. package/dist/codec/codec.d.ts +2 -2
  7. package/dist/codec/codec.d.ts.map +1 -1
  8. package/dist/codec/codec.js +0 -1
  9. package/dist/codec/codec.js.map +1 -1
  10. package/dist/codec/discriminatedUnions.d.ts +2 -2
  11. package/dist/codec/discriminatedUnions.d.ts.map +1 -1
  12. package/dist/codec/discriminatedUnions.js +0 -1
  13. package/dist/codec/discriminatedUnions.js.map +1 -1
  14. package/dist/codec/noopValidator.d.ts +1 -1
  15. package/dist/codec/noopValidator.d.ts.map +1 -1
  16. package/dist/codec/noopValidator.js.map +1 -1
  17. package/dist/codec/versioned/codec.d.ts +3 -3
  18. package/dist/codec/versioned/codec.d.ts.map +1 -1
  19. package/dist/codec/versioned/codec.js.map +1 -1
  20. package/dist/codec/versioned/format.d.ts +1 -1
  21. package/dist/codec/versioned/format.d.ts.map +1 -1
  22. package/dist/codec/versioned/format.js.map +1 -1
  23. package/dist/core/change-family/changeFamily.d.ts +5 -5
  24. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  25. package/dist/core/change-family/changeFamily.js.map +1 -1
  26. package/dist/core/change-family/editBuilder.d.ts +1 -1
  27. package/dist/core/change-family/editBuilder.d.ts.map +1 -1
  28. package/dist/core/change-family/editBuilder.js +0 -2
  29. package/dist/core/change-family/editBuilder.js.map +1 -1
  30. package/dist/core/forest/editableForest.d.ts +5 -5
  31. package/dist/core/forest/editableForest.d.ts.map +1 -1
  32. package/dist/core/forest/editableForest.js.map +1 -1
  33. package/dist/core/forest/forest.d.ts +3 -3
  34. package/dist/core/forest/forest.d.ts.map +1 -1
  35. package/dist/core/forest/forest.js.map +1 -1
  36. package/dist/core/rebase/changeRebaser.d.ts +1 -1
  37. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  38. package/dist/core/rebase/changeRebaser.js.map +1 -1
  39. package/dist/core/rebase/revisionTagCodec.d.ts +4 -4
  40. package/dist/core/rebase/revisionTagCodec.d.ts.map +1 -1
  41. package/dist/core/rebase/revisionTagCodec.js +0 -2
  42. package/dist/core/rebase/revisionTagCodec.js.map +1 -1
  43. package/dist/core/rebase/types.d.ts +3 -3
  44. package/dist/core/rebase/types.d.ts.map +1 -1
  45. package/dist/core/rebase/types.js.map +1 -1
  46. package/dist/core/rebase/utils.d.ts +2 -2
  47. package/dist/core/rebase/utils.d.ts.map +1 -1
  48. package/dist/core/rebase/utils.js.map +1 -1
  49. package/dist/core/schema-stored/format.d.ts +2 -2
  50. package/dist/core/schema-stored/format.d.ts.map +1 -1
  51. package/dist/core/schema-stored/format.js.map +1 -1
  52. package/dist/core/schema-stored/schema.d.ts +3 -3
  53. package/dist/core/schema-stored/schema.d.ts.map +1 -1
  54. package/dist/core/schema-stored/schema.js +0 -4
  55. package/dist/core/schema-stored/schema.js.map +1 -1
  56. package/dist/core/schema-stored/storedSchemaRepository.d.ts +3 -3
  57. package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  58. package/dist/core/schema-stored/storedSchemaRepository.js +1 -3
  59. package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
  60. package/dist/core/schema-view/view.d.ts +1 -1
  61. package/dist/core/schema-view/view.d.ts.map +1 -1
  62. package/dist/core/schema-view/view.js +0 -2
  63. package/dist/core/schema-view/view.js.map +1 -1
  64. package/dist/core/tree/anchorSet.d.ts +56 -18
  65. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  66. package/dist/core/tree/anchorSet.js +97 -52
  67. package/dist/core/tree/anchorSet.js.map +1 -1
  68. package/dist/core/tree/cursor.d.ts +3 -3
  69. package/dist/core/tree/cursor.d.ts.map +1 -1
  70. package/dist/core/tree/cursor.js.map +1 -1
  71. package/dist/core/tree/delta.d.ts +3 -3
  72. package/dist/core/tree/delta.d.ts.map +1 -1
  73. package/dist/core/tree/delta.js.map +1 -1
  74. package/dist/core/tree/deltaUtil.d.ts +2 -2
  75. package/dist/core/tree/deltaUtil.d.ts.map +1 -1
  76. package/dist/core/tree/deltaUtil.js.map +1 -1
  77. package/dist/core/tree/detachedFieldIndex.d.ts +7 -7
  78. package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
  79. package/dist/core/tree/detachedFieldIndex.js +2 -8
  80. package/dist/core/tree/detachedFieldIndex.js.map +1 -1
  81. package/dist/core/tree/detachedFieldIndexCodec.d.ts +4 -4
  82. package/dist/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  83. package/dist/core/tree/detachedFieldIndexCodec.js +0 -3
  84. package/dist/core/tree/detachedFieldIndexCodec.js.map +1 -1
  85. package/dist/core/tree/detachedFieldIndexFormat.d.ts +2 -2
  86. package/dist/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  87. package/dist/core/tree/detachedFieldIndexFormat.js.map +1 -1
  88. package/dist/core/tree/detachedFieldIndexTypes.d.ts +3 -3
  89. package/dist/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  90. package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
  91. package/dist/core/tree/mapTree.d.ts +2 -2
  92. package/dist/core/tree/mapTree.d.ts.map +1 -1
  93. package/dist/core/tree/mapTree.js.map +1 -1
  94. package/dist/core/tree/pathTree.d.ts +3 -3
  95. package/dist/core/tree/pathTree.d.ts.map +1 -1
  96. package/dist/core/tree/pathTree.js.map +1 -1
  97. package/dist/core/tree/persistedTreeTextFormat.d.ts +1 -1
  98. package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  99. package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
  100. package/dist/core/tree/sparseTree.d.ts +2 -2
  101. package/dist/core/tree/sparseTree.d.ts.map +1 -1
  102. package/dist/core/tree/sparseTree.js +11 -15
  103. package/dist/core/tree/sparseTree.js.map +1 -1
  104. package/dist/core/tree/treeTextFormat.d.ts +2 -2
  105. package/dist/core/tree/treeTextFormat.d.ts.map +1 -1
  106. package/dist/core/tree/treeTextFormat.js.map +1 -1
  107. package/dist/core/tree/types.d.ts +3 -3
  108. package/dist/core/tree/types.d.ts.map +1 -1
  109. package/dist/core/tree/types.js +0 -1
  110. package/dist/core/tree/types.js.map +1 -1
  111. package/dist/core/tree/visitDelta.d.ts +5 -5
  112. package/dist/core/tree/visitDelta.d.ts.map +1 -1
  113. package/dist/core/tree/visitDelta.js.map +1 -1
  114. package/dist/core/tree/visitPath.d.ts +2 -2
  115. package/dist/core/tree/visitPath.d.ts.map +1 -1
  116. package/dist/core/tree/visitPath.js.map +1 -1
  117. package/dist/core/tree/visitorUtils.d.ts +7 -7
  118. package/dist/core/tree/visitorUtils.d.ts.map +1 -1
  119. package/dist/core/tree/visitorUtils.js.map +1 -1
  120. package/dist/domains/json/jsonCursor.d.ts +2 -2
  121. package/dist/domains/json/jsonCursor.d.ts.map +1 -1
  122. package/dist/domains/json/jsonCursor.js.map +1 -1
  123. package/dist/domains/json/jsonDomainSchema.js.map +1 -1
  124. package/dist/domains/schemaBuilder.d.ts +2 -2
  125. package/dist/domains/schemaBuilder.d.ts.map +1 -1
  126. package/dist/domains/schemaBuilder.js +70 -70
  127. package/dist/domains/schemaBuilder.js.map +1 -1
  128. package/dist/events/events.js +1 -2
  129. package/dist/events/events.js.map +1 -1
  130. package/dist/feature-libraries/changeAtomIdCodec.d.ts +2 -2
  131. package/dist/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  132. package/dist/feature-libraries/changeAtomIdCodec.js.map +1 -1
  133. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts +2 -2
  134. package/dist/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  135. package/dist/feature-libraries/chunked-forest/basicChunk.js +1 -14
  136. package/dist/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  137. package/dist/feature-libraries/chunked-forest/chunk.d.ts +2 -2
  138. package/dist/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
  139. package/dist/feature-libraries/chunked-forest/chunk.js.map +1 -1
  140. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts +4 -4
  141. package/dist/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  142. package/dist/feature-libraries/chunked-forest/chunkTree.js +6 -13
  143. package/dist/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  144. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -4
  145. package/dist/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  146. package/dist/feature-libraries/chunked-forest/chunkedForest.js +2 -9
  147. package/dist/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  148. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +3 -3
  149. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  150. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +3 -1
  151. package/dist/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  152. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +17 -7
  153. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  154. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -11
  155. package/dist/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  156. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +8 -8
  157. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  158. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +2 -5
  159. package/dist/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  160. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +3 -3
  161. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  162. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +0 -1
  163. package/dist/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  164. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts +6 -5
  165. package/dist/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  166. package/dist/feature-libraries/chunked-forest/codec/codecs.js +4 -1
  167. package/dist/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  168. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
  169. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  170. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +13 -25
  171. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  172. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +1 -1
  173. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -1
  174. package/dist/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -1
  175. package/dist/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
  176. package/dist/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  177. package/dist/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  178. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
  179. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
  180. package/dist/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
  181. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts +5 -5
  182. package/dist/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  183. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js +5 -8
  184. package/dist/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  185. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +6 -6
  186. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
  187. package/dist/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
  188. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +2 -2
  189. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  190. package/dist/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  191. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts +1 -1
  192. package/dist/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
  193. package/dist/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
  194. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
  195. package/dist/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
  196. package/dist/feature-libraries/chunked-forest/sequenceChunk.js +0 -1
  197. package/dist/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
  198. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts +2 -2
  199. package/dist/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  200. package/dist/feature-libraries/chunked-forest/uniformChunk.js +5 -40
  201. package/dist/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  202. package/dist/feature-libraries/contextuallyTyped.d.ts +5 -5
  203. package/dist/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  204. package/dist/feature-libraries/contextuallyTyped.js.map +1 -1
  205. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -3
  206. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  207. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +0 -2
  208. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  209. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
  210. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  211. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  212. package/dist/feature-libraries/default-schema/defaultSchema.d.ts +1 -1
  213. package/dist/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
  214. package/dist/feature-libraries/default-schema/defaultSchema.js.map +1 -1
  215. package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts +2 -2
  216. package/dist/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
  217. package/dist/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
  218. package/dist/feature-libraries/deltaUtils.d.ts +1 -1
  219. package/dist/feature-libraries/deltaUtils.d.ts.map +1 -1
  220. package/dist/feature-libraries/deltaUtils.js.map +1 -1
  221. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +4 -4
  222. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  223. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +1 -2
  224. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  225. package/dist/feature-libraries/editableTreeBinder.d.ts +3 -3
  226. package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  227. package/dist/feature-libraries/editableTreeBinder.js +12 -13
  228. package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
  229. package/dist/feature-libraries/fieldGenerator.d.ts +2 -2
  230. package/dist/feature-libraries/fieldGenerator.d.ts.map +1 -1
  231. package/dist/feature-libraries/fieldGenerator.js.map +1 -1
  232. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +5 -5
  233. package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  234. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js +11 -12
  235. package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  236. package/dist/feature-libraries/flex-tree/context.d.ts +8 -8
  237. package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
  238. package/dist/feature-libraries/flex-tree/context.js +3 -7
  239. package/dist/feature-libraries/flex-tree/context.js.map +1 -1
  240. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +9 -9
  241. package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  242. package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  243. package/dist/feature-libraries/flex-tree/index.d.ts +1 -1
  244. package/dist/feature-libraries/flex-tree/index.d.ts.map +1 -1
  245. package/dist/feature-libraries/flex-tree/index.js +1 -4
  246. package/dist/feature-libraries/flex-tree/index.js.map +1 -1
  247. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +4 -4
  248. package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  249. package/dist/feature-libraries/flex-tree/lazyEntity.js +22 -13
  250. package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  251. package/dist/feature-libraries/flex-tree/lazyField.d.ts +6 -6
  252. package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  253. package/dist/feature-libraries/flex-tree/lazyField.js +0 -6
  254. package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
  255. package/dist/feature-libraries/flex-tree/lazyNode.d.ts +5 -5
  256. package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  257. package/dist/feature-libraries/flex-tree/lazyNode.js +19 -13
  258. package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  259. package/dist/feature-libraries/flex-tree/treeEvents.d.ts +1 -13
  260. package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  261. package/dist/feature-libraries/flex-tree/treeEvents.js +0 -31
  262. package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  263. package/dist/feature-libraries/flex-tree/unboxed.d.ts +5 -5
  264. package/dist/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  265. package/dist/feature-libraries/flex-tree/unboxed.js.map +1 -1
  266. package/dist/feature-libraries/flex-tree/utilities.d.ts +1 -1
  267. package/dist/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  268. package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
  269. package/dist/feature-libraries/forest-summary/codec.d.ts +3 -3
  270. package/dist/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  271. package/dist/feature-libraries/forest-summary/codec.js.map +1 -1
  272. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +7 -7
  273. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  274. package/dist/feature-libraries/forest-summary/forestSummarizer.js +1 -6
  275. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  276. package/dist/feature-libraries/forest-summary/format.d.ts +1 -1
  277. package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
  278. package/dist/feature-libraries/forest-summary/format.js.map +1 -1
  279. package/dist/feature-libraries/index.d.ts +1 -1
  280. package/dist/feature-libraries/index.d.ts.map +1 -1
  281. package/dist/feature-libraries/index.js +1 -3
  282. package/dist/feature-libraries/index.js.map +1 -1
  283. package/dist/feature-libraries/mapTreeCursor.d.ts +2 -2
  284. package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  285. package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
  286. package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts +1 -1
  287. package/dist/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
  288. package/dist/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
  289. package/dist/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
  290. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  291. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  292. package/dist/feature-libraries/modular-schema/comparison.d.ts +2 -2
  293. package/dist/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  294. package/dist/feature-libraries/modular-schema/comparison.js.map +1 -1
  295. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts +2 -2
  296. package/dist/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  297. package/dist/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  298. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -7
  299. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  300. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  301. package/dist/feature-libraries/modular-schema/fieldKind.d.ts +1 -1
  302. package/dist/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  303. package/dist/feature-libraries/modular-schema/fieldKind.js +0 -2
  304. package/dist/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  305. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
  306. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
  307. package/dist/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
  308. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +3 -3
  309. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
  310. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -3
  311. package/dist/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  312. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +4 -4
  313. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  314. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  315. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
  316. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  317. package/dist/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  318. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
  319. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  320. package/dist/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  321. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +1 -1
  322. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  323. package/dist/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  324. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts +2 -2
  325. package/dist/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  326. package/dist/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  327. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts +5 -5
  328. package/dist/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  329. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js +2 -0
  330. package/dist/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  331. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +6 -6
  332. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  333. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +2 -5
  334. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  335. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +3 -3
  336. package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  337. package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  338. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts +3 -3
  339. package/dist/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  340. package/dist/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  341. package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts +2 -2
  342. package/dist/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +1 -1
  343. package/dist/feature-libraries/node-key/mockNodeKeyManager.js +4 -2
  344. package/dist/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  345. package/dist/feature-libraries/node-key/nodeKey.d.ts +3 -3
  346. package/dist/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  347. package/dist/feature-libraries/node-key/nodeKey.js.map +1 -1
  348. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts +4 -4
  349. package/dist/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
  350. package/dist/feature-libraries/node-key/nodeKeyIndex.js +0 -3
  351. package/dist/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
  352. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts +1 -1
  353. package/dist/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  354. package/dist/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  355. package/dist/feature-libraries/object-forest/objectForest.d.ts +2 -2
  356. package/dist/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  357. package/dist/feature-libraries/object-forest/objectForest.js +28 -23
  358. package/dist/feature-libraries/object-forest/objectForest.js.map +1 -1
  359. package/dist/feature-libraries/optional-field/optionalField.d.ts +3 -3
  360. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  361. package/dist/feature-libraries/optional-field/optionalField.js +3 -1
  362. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  363. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
  364. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  365. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  366. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
  367. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
  368. package/dist/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  369. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +2 -2
  370. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  371. package/dist/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  372. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +3 -3
  373. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
  374. package/dist/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
  375. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +3 -3
  376. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  377. package/dist/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  378. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
  379. package/dist/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  380. package/dist/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  381. package/dist/feature-libraries/schema-aware/schemaAware.d.ts +4 -4
  382. package/dist/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  383. package/dist/feature-libraries/schema-aware/schemaAware.js +0 -2
  384. package/dist/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  385. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
  386. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  387. package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  388. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +1 -1
  389. package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  390. package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  391. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts +1 -1
  392. package/dist/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
  393. package/dist/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
  394. package/dist/feature-libraries/schema-index/codec.d.ts +2 -2
  395. package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
  396. package/dist/feature-libraries/schema-index/codec.js.map +1 -1
  397. package/dist/feature-libraries/schema-index/format.d.ts +1 -1
  398. package/dist/feature-libraries/schema-index/format.d.ts.map +1 -1
  399. package/dist/feature-libraries/schema-index/format.js.map +1 -1
  400. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +7 -7
  401. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  402. package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -5
  403. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  404. package/dist/feature-libraries/schemaBuilder.d.ts +2 -2
  405. package/dist/feature-libraries/schemaBuilder.d.ts.map +1 -1
  406. package/dist/feature-libraries/schemaBuilder.js.map +1 -1
  407. package/dist/feature-libraries/schemaBuilderBase.d.ts +4 -4
  408. package/dist/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
  409. package/dist/feature-libraries/schemaBuilderBase.js +3 -14
  410. package/dist/feature-libraries/schemaBuilderBase.js.map +1 -1
  411. package/dist/feature-libraries/sequence-field/compose.d.ts +5 -5
  412. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  413. package/dist/feature-libraries/sequence-field/compose.js +0 -6
  414. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  415. package/dist/feature-libraries/sequence-field/formatV1.d.ts +1 -1
  416. package/dist/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
  417. package/dist/feature-libraries/sequence-field/formatV1.js.map +1 -1
  418. package/dist/feature-libraries/sequence-field/formatV2.d.ts +1 -1
  419. package/dist/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  420. package/dist/feature-libraries/sequence-field/formatV2.js.map +1 -1
  421. package/dist/feature-libraries/sequence-field/helperTypes.d.ts +1 -1
  422. package/dist/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  423. package/dist/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  424. package/dist/feature-libraries/sequence-field/invert.d.ts +3 -3
  425. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  426. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  427. package/dist/feature-libraries/sequence-field/markListFactory.d.ts +1 -1
  428. package/dist/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
  429. package/dist/feature-libraries/sequence-field/markListFactory.js +4 -3
  430. package/dist/feature-libraries/sequence-field/markListFactory.js.map +1 -1
  431. package/dist/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  432. package/dist/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  433. package/dist/feature-libraries/sequence-field/markQueue.js +2 -4
  434. package/dist/feature-libraries/sequence-field/markQueue.js.map +1 -1
  435. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts +5 -5
  436. package/dist/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  437. package/dist/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  438. package/dist/feature-libraries/sequence-field/prune.d.ts +2 -2
  439. package/dist/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  440. package/dist/feature-libraries/sequence-field/prune.js.map +1 -1
  441. package/dist/feature-libraries/sequence-field/rebase.d.ts +3 -3
  442. package/dist/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  443. package/dist/feature-libraries/sequence-field/rebase.js +0 -6
  444. package/dist/feature-libraries/sequence-field/rebase.js.map +1 -1
  445. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +3 -3
  446. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  447. package/dist/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  448. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
  449. package/dist/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  450. package/dist/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  451. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +3 -3
  452. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  453. package/dist/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  454. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
  455. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  456. package/dist/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  457. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +5 -5
  458. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
  459. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
  460. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +5 -5
  461. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  462. package/dist/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  463. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +4 -4
  464. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  465. package/dist/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  466. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +3 -3
  467. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  468. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  469. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
  470. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  471. package/dist/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  472. package/dist/feature-libraries/sequence-field/types.d.ts +2 -2
  473. package/dist/feature-libraries/sequence-field/types.d.ts.map +1 -1
  474. package/dist/feature-libraries/sequence-field/types.js.map +1 -1
  475. package/dist/feature-libraries/sequence-field/utils.d.ts +5 -5
  476. package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  477. package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
  478. package/dist/feature-libraries/storedToViewSchema.d.ts +2 -2
  479. package/dist/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  480. package/dist/feature-libraries/storedToViewSchema.js.map +1 -1
  481. package/dist/feature-libraries/treeCursorUtils.d.ts +1 -1
  482. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  483. package/dist/feature-libraries/treeCursorUtils.js +9 -13
  484. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  485. package/dist/feature-libraries/treeTextCursor.d.ts +2 -2
  486. package/dist/feature-libraries/treeTextCursor.d.ts.map +1 -1
  487. package/dist/feature-libraries/treeTextCursor.js.map +1 -1
  488. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +3 -3
  489. package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  490. package/dist/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  491. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +4 -4
  492. package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  493. package/dist/feature-libraries/typed-schema/typedTreeSchema.js +4 -23
  494. package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  495. package/dist/feature-libraries/typed-schema/view.d.ts +4 -4
  496. package/dist/feature-libraries/typed-schema/view.d.ts.map +1 -1
  497. package/dist/feature-libraries/typed-schema/view.js +0 -7
  498. package/dist/feature-libraries/typed-schema/view.js.map +1 -1
  499. package/dist/feature-libraries/valueUtilities.d.ts +2 -2
  500. package/dist/feature-libraries/valueUtilities.d.ts.map +1 -1
  501. package/dist/feature-libraries/valueUtilities.js.map +1 -1
  502. package/dist/index.d.ts +1 -1
  503. package/dist/index.d.ts.map +1 -1
  504. package/dist/index.js +1 -2
  505. package/dist/index.js.map +1 -1
  506. package/dist/packageVersion.d.ts +1 -1
  507. package/dist/packageVersion.js +1 -1
  508. package/dist/packageVersion.js.map +1 -1
  509. package/dist/public.d.ts +0 -1
  510. package/dist/shared-tree/schematizeTree.d.ts +3 -3
  511. package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
  512. package/dist/shared-tree/schematizeTree.js.map +1 -1
  513. package/dist/shared-tree/schematizingTreeView.d.ts +4 -4
  514. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  515. package/dist/shared-tree/schematizingTreeView.js +10 -27
  516. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  517. package/dist/shared-tree/sharedTree.d.ts +15 -11
  518. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  519. package/dist/shared-tree/sharedTree.js +13 -10
  520. package/dist/shared-tree/sharedTree.js.map +1 -1
  521. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts +4 -4
  522. package/dist/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  523. package/dist/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  524. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts +3 -3
  525. package/dist/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  526. package/dist/shared-tree/sharedTreeChangeEnricher.js +11 -14
  527. package/dist/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  528. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  529. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  530. package/dist/shared-tree/sharedTreeChangeFamily.js +3 -5
  531. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  532. package/dist/shared-tree/sharedTreeChangeFormat.d.ts +1 -1
  533. package/dist/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  534. package/dist/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  535. package/dist/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
  536. package/dist/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -1
  537. package/dist/shared-tree/sharedTreeChangeTypes.js.map +1 -1
  538. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +3 -3
  539. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  540. package/dist/shared-tree/sharedTreeEditBuilder.js +0 -2
  541. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  542. package/dist/shared-tree/treeApi.d.ts +1 -1
  543. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  544. package/dist/shared-tree/treeApi.js.map +1 -1
  545. package/dist/shared-tree/treeCheckout.d.ts +7 -7
  546. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  547. package/dist/shared-tree/treeCheckout.js +11 -22
  548. package/dist/shared-tree/treeCheckout.js.map +1 -1
  549. package/dist/shared-tree/treeView.d.ts +3 -3
  550. package/dist/shared-tree/treeView.d.ts.map +1 -1
  551. package/dist/shared-tree/treeView.js +0 -6
  552. package/dist/shared-tree/treeView.js.map +1 -1
  553. package/dist/shared-tree-core/branch.d.ts +2 -2
  554. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  555. package/dist/shared-tree-core/branch.js +25 -31
  556. package/dist/shared-tree-core/branch.js.map +1 -1
  557. package/dist/shared-tree-core/branchCommitEnricher.d.ts +2 -2
  558. package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  559. package/dist/shared-tree-core/branchCommitEnricher.js +9 -12
  560. package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
  561. package/dist/shared-tree-core/changeEnricher.d.ts +1 -1
  562. package/dist/shared-tree-core/changeEnricher.d.ts.map +1 -1
  563. package/dist/shared-tree-core/changeEnricher.js.map +1 -1
  564. package/dist/shared-tree-core/defaultResubmitMachine.d.ts +2 -2
  565. package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  566. package/dist/shared-tree-core/defaultResubmitMachine.js +19 -21
  567. package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  568. package/dist/shared-tree-core/editManager.d.ts +3 -3
  569. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  570. package/dist/shared-tree-core/editManager.js +37 -53
  571. package/dist/shared-tree-core/editManager.js.map +1 -1
  572. package/dist/shared-tree-core/editManagerCodecs.d.ts +5 -5
  573. package/dist/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  574. package/dist/shared-tree-core/editManagerCodecs.js.map +1 -1
  575. package/dist/shared-tree-core/editManagerFormat.d.ts +4 -4
  576. package/dist/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  577. package/dist/shared-tree-core/editManagerFormat.js.map +1 -1
  578. package/dist/shared-tree-core/editManagerSummarizer.d.ts +9 -9
  579. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  580. package/dist/shared-tree-core/editManagerSummarizer.js +1 -5
  581. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  582. package/dist/shared-tree-core/messageCodecs.d.ts +5 -5
  583. package/dist/shared-tree-core/messageCodecs.d.ts.map +1 -1
  584. package/dist/shared-tree-core/messageCodecs.js.map +1 -1
  585. package/dist/shared-tree-core/messageFormat.d.ts +4 -4
  586. package/dist/shared-tree-core/messageFormat.d.ts.map +1 -1
  587. package/dist/shared-tree-core/messageFormat.js.map +1 -1
  588. package/dist/shared-tree-core/messageTypes.d.ts +2 -2
  589. package/dist/shared-tree-core/messageTypes.d.ts.map +1 -1
  590. package/dist/shared-tree-core/messageTypes.js.map +1 -1
  591. package/dist/shared-tree-core/resubmitMachine.d.ts +1 -1
  592. package/dist/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  593. package/dist/shared-tree-core/resubmitMachine.js.map +1 -1
  594. package/dist/shared-tree-core/sequenceIdUtils.d.ts +1 -1
  595. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  596. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  597. package/dist/shared-tree-core/sharedTreeCore.d.ts +10 -10
  598. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  599. package/dist/shared-tree-core/sharedTreeCore.js +7 -24
  600. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  601. package/dist/shared-tree-core/transactionEnricher.d.ts +2 -2
  602. package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  603. package/dist/shared-tree-core/transactionEnricher.js +1 -3
  604. package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
  605. package/dist/shared-tree-core/transactionStack.d.ts +1 -1
  606. package/dist/shared-tree-core/transactionStack.d.ts.map +1 -1
  607. package/dist/shared-tree-core/transactionStack.js +3 -1
  608. package/dist/shared-tree-core/transactionStack.js.map +1 -1
  609. package/dist/simple-tree/arrayNode.d.ts +2 -2
  610. package/dist/simple-tree/arrayNode.d.ts.map +1 -1
  611. package/dist/simple-tree/arrayNode.js +34 -26
  612. package/dist/simple-tree/arrayNode.js.map +1 -1
  613. package/dist/simple-tree/leafNodeSchema.d.ts +1 -1
  614. package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
  615. package/dist/simple-tree/leafNodeSchema.js +2 -4
  616. package/dist/simple-tree/leafNodeSchema.js.map +1 -1
  617. package/dist/simple-tree/mapNode.d.ts +2 -2
  618. package/dist/simple-tree/mapNode.d.ts.map +1 -1
  619. package/dist/simple-tree/mapNode.js +5 -5
  620. package/dist/simple-tree/mapNode.js.map +1 -1
  621. package/dist/simple-tree/nodeKeys.d.ts +2 -2
  622. package/dist/simple-tree/nodeKeys.d.ts.map +1 -1
  623. package/dist/simple-tree/nodeKeys.js.map +1 -1
  624. package/dist/simple-tree/objectNode.d.ts +5 -5
  625. package/dist/simple-tree/objectNode.d.ts.map +1 -1
  626. package/dist/simple-tree/objectNode.js +6 -6
  627. package/dist/simple-tree/objectNode.js.map +1 -1
  628. package/dist/simple-tree/proxies.d.ts +4 -4
  629. package/dist/simple-tree/proxies.d.ts.map +1 -1
  630. package/dist/simple-tree/proxies.js +6 -4
  631. package/dist/simple-tree/proxies.js.map +1 -1
  632. package/dist/simple-tree/proxyBinding.d.ts +6 -6
  633. package/dist/simple-tree/proxyBinding.d.ts.map +1 -1
  634. package/dist/simple-tree/proxyBinding.js.map +1 -1
  635. package/dist/simple-tree/schemaCaching.d.ts +2 -2
  636. package/dist/simple-tree/schemaCaching.d.ts.map +1 -1
  637. package/dist/simple-tree/schemaCaching.js.map +1 -1
  638. package/dist/simple-tree/schemaCreationUtilities.d.ts +5 -5
  639. package/dist/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
  640. package/dist/simple-tree/schemaCreationUtilities.js.map +1 -1
  641. package/dist/simple-tree/schemaFactory.d.ts +25 -12
  642. package/dist/simple-tree/schemaFactory.d.ts.map +1 -1
  643. package/dist/simple-tree/schemaFactory.js +65 -53
  644. package/dist/simple-tree/schemaFactory.js.map +1 -1
  645. package/dist/simple-tree/schemaFactoryRecursive.d.ts +6 -6
  646. package/dist/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  647. package/dist/simple-tree/schemaFactoryRecursive.js.map +1 -1
  648. package/dist/simple-tree/schemaTypes.d.ts +6 -6
  649. package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
  650. package/dist/simple-tree/schemaTypes.js +3 -12
  651. package/dist/simple-tree/schemaTypes.js.map +1 -1
  652. package/dist/simple-tree/testRecursiveDomain.d.ts +1 -1
  653. package/dist/simple-tree/testRecursiveDomain.d.ts.map +1 -1
  654. package/dist/simple-tree/testRecursiveDomain.js.map +1 -1
  655. package/dist/simple-tree/toFlexSchema.d.ts +4 -4
  656. package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
  657. package/dist/simple-tree/toFlexSchema.js.map +1 -1
  658. package/dist/simple-tree/toMapTree.d.ts +2 -2
  659. package/dist/simple-tree/toMapTree.d.ts.map +1 -1
  660. package/dist/simple-tree/toMapTree.js.map +1 -1
  661. package/dist/simple-tree/tree.d.ts +6 -27
  662. package/dist/simple-tree/tree.d.ts.map +1 -1
  663. package/dist/simple-tree/tree.js +0 -21
  664. package/dist/simple-tree/tree.js.map +1 -1
  665. package/dist/simple-tree/treeNodeApi.d.ts +30 -27
  666. package/dist/simple-tree/treeNodeApi.d.ts.map +1 -1
  667. package/dist/simple-tree/treeNodeApi.js +8 -3
  668. package/dist/simple-tree/treeNodeApi.js.map +1 -1
  669. package/dist/simple-tree/types.d.ts +29 -9
  670. package/dist/simple-tree/types.d.ts.map +1 -1
  671. package/dist/simple-tree/types.js +79 -54
  672. package/dist/simple-tree/types.js.map +1 -1
  673. package/dist/simple-tree/typesUnsafe.d.ts +5 -5
  674. package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
  675. package/dist/simple-tree/typesUnsafe.js.map +1 -1
  676. package/dist/treeFactory.d.ts +5 -5
  677. package/dist/treeFactory.d.ts.map +1 -1
  678. package/dist/treeFactory.js +10 -9
  679. package/dist/treeFactory.js.map +1 -1
  680. package/dist/util/brand.js +0 -1
  681. package/dist/util/brand.js.map +1 -1
  682. package/dist/util/brandedMap.d.ts +1 -1
  683. package/dist/util/brandedMap.d.ts.map +1 -1
  684. package/dist/util/brandedMap.js.map +1 -1
  685. package/dist/util/nestedMap.d.ts +1 -1
  686. package/dist/util/nestedMap.d.ts.map +1 -1
  687. package/dist/util/nestedMap.js +4 -2
  688. package/dist/util/nestedMap.js.map +1 -1
  689. package/dist/util/nestedSet.d.ts +1 -1
  690. package/dist/util/nestedSet.d.ts.map +1 -1
  691. package/dist/util/nestedSet.js.map +1 -1
  692. package/dist/util/offsetList.js +4 -2
  693. package/dist/util/offsetList.js.map +1 -1
  694. package/dist/util/referenceCounting.js +0 -1
  695. package/dist/util/referenceCounting.js.map +1 -1
  696. package/dist/util/stackyIterator.js +2 -3
  697. package/dist/util/stackyIterator.js.map +1 -1
  698. package/dist/util/typeboxBrand.d.ts +1 -1
  699. package/dist/util/typeboxBrand.d.ts.map +1 -1
  700. package/dist/util/typeboxBrand.js.map +1 -1
  701. package/lib/beta.d.ts +0 -1
  702. package/lib/codec/codec.d.ts +2 -2
  703. package/lib/codec/codec.d.ts.map +1 -1
  704. package/lib/codec/codec.js +0 -1
  705. package/lib/codec/codec.js.map +1 -1
  706. package/lib/codec/discriminatedUnions.d.ts +2 -2
  707. package/lib/codec/discriminatedUnions.d.ts.map +1 -1
  708. package/lib/codec/discriminatedUnions.js +0 -1
  709. package/lib/codec/discriminatedUnions.js.map +1 -1
  710. package/lib/codec/noopValidator.d.ts +1 -1
  711. package/lib/codec/noopValidator.d.ts.map +1 -1
  712. package/lib/codec/noopValidator.js.map +1 -1
  713. package/lib/codec/versioned/codec.d.ts +3 -3
  714. package/lib/codec/versioned/codec.d.ts.map +1 -1
  715. package/lib/codec/versioned/codec.js.map +1 -1
  716. package/lib/codec/versioned/format.d.ts +1 -1
  717. package/lib/codec/versioned/format.d.ts.map +1 -1
  718. package/lib/codec/versioned/format.js.map +1 -1
  719. package/lib/core/change-family/changeFamily.d.ts +5 -5
  720. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  721. package/lib/core/change-family/changeFamily.js.map +1 -1
  722. package/lib/core/change-family/editBuilder.d.ts +1 -1
  723. package/lib/core/change-family/editBuilder.d.ts.map +1 -1
  724. package/lib/core/change-family/editBuilder.js +0 -2
  725. package/lib/core/change-family/editBuilder.js.map +1 -1
  726. package/lib/core/forest/editableForest.d.ts +5 -5
  727. package/lib/core/forest/editableForest.d.ts.map +1 -1
  728. package/lib/core/forest/editableForest.js.map +1 -1
  729. package/lib/core/forest/forest.d.ts +3 -3
  730. package/lib/core/forest/forest.d.ts.map +1 -1
  731. package/lib/core/forest/forest.js.map +1 -1
  732. package/lib/core/rebase/changeRebaser.d.ts +1 -1
  733. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  734. package/lib/core/rebase/changeRebaser.js.map +1 -1
  735. package/lib/core/rebase/revisionTagCodec.d.ts +4 -4
  736. package/lib/core/rebase/revisionTagCodec.d.ts.map +1 -1
  737. package/lib/core/rebase/revisionTagCodec.js +0 -2
  738. package/lib/core/rebase/revisionTagCodec.js.map +1 -1
  739. package/lib/core/rebase/types.d.ts +3 -3
  740. package/lib/core/rebase/types.d.ts.map +1 -1
  741. package/lib/core/rebase/types.js.map +1 -1
  742. package/lib/core/rebase/utils.d.ts +2 -2
  743. package/lib/core/rebase/utils.d.ts.map +1 -1
  744. package/lib/core/rebase/utils.js.map +1 -1
  745. package/lib/core/schema-stored/format.d.ts +2 -2
  746. package/lib/core/schema-stored/format.d.ts.map +1 -1
  747. package/lib/core/schema-stored/format.js.map +1 -1
  748. package/lib/core/schema-stored/schema.d.ts +3 -3
  749. package/lib/core/schema-stored/schema.d.ts.map +1 -1
  750. package/lib/core/schema-stored/schema.js +0 -4
  751. package/lib/core/schema-stored/schema.js.map +1 -1
  752. package/lib/core/schema-stored/storedSchemaRepository.d.ts +3 -3
  753. package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
  754. package/lib/core/schema-stored/storedSchemaRepository.js +1 -3
  755. package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
  756. package/lib/core/schema-view/view.d.ts +1 -1
  757. package/lib/core/schema-view/view.d.ts.map +1 -1
  758. package/lib/core/schema-view/view.js +0 -2
  759. package/lib/core/schema-view/view.js.map +1 -1
  760. package/lib/core/tree/anchorSet.d.ts +56 -18
  761. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  762. package/lib/core/tree/anchorSet.js +97 -52
  763. package/lib/core/tree/anchorSet.js.map +1 -1
  764. package/lib/core/tree/cursor.d.ts +3 -3
  765. package/lib/core/tree/cursor.d.ts.map +1 -1
  766. package/lib/core/tree/cursor.js.map +1 -1
  767. package/lib/core/tree/delta.d.ts +3 -3
  768. package/lib/core/tree/delta.d.ts.map +1 -1
  769. package/lib/core/tree/delta.js.map +1 -1
  770. package/lib/core/tree/deltaUtil.d.ts +2 -2
  771. package/lib/core/tree/deltaUtil.d.ts.map +1 -1
  772. package/lib/core/tree/deltaUtil.js.map +1 -1
  773. package/lib/core/tree/detachedFieldIndex.d.ts +7 -7
  774. package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
  775. package/lib/core/tree/detachedFieldIndex.js +2 -8
  776. package/lib/core/tree/detachedFieldIndex.js.map +1 -1
  777. package/lib/core/tree/detachedFieldIndexCodec.d.ts +4 -4
  778. package/lib/core/tree/detachedFieldIndexCodec.d.ts.map +1 -1
  779. package/lib/core/tree/detachedFieldIndexCodec.js +1 -4
  780. package/lib/core/tree/detachedFieldIndexCodec.js.map +1 -1
  781. package/lib/core/tree/detachedFieldIndexFormat.d.ts +2 -2
  782. package/lib/core/tree/detachedFieldIndexFormat.d.ts.map +1 -1
  783. package/lib/core/tree/detachedFieldIndexFormat.js.map +1 -1
  784. package/lib/core/tree/detachedFieldIndexTypes.d.ts +3 -3
  785. package/lib/core/tree/detachedFieldIndexTypes.d.ts.map +1 -1
  786. package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
  787. package/lib/core/tree/mapTree.d.ts +2 -2
  788. package/lib/core/tree/mapTree.d.ts.map +1 -1
  789. package/lib/core/tree/mapTree.js.map +1 -1
  790. package/lib/core/tree/pathTree.d.ts +3 -3
  791. package/lib/core/tree/pathTree.d.ts.map +1 -1
  792. package/lib/core/tree/pathTree.js.map +1 -1
  793. package/lib/core/tree/persistedTreeTextFormat.d.ts +1 -1
  794. package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
  795. package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
  796. package/lib/core/tree/sparseTree.d.ts +2 -2
  797. package/lib/core/tree/sparseTree.d.ts.map +1 -1
  798. package/lib/core/tree/sparseTree.js +11 -15
  799. package/lib/core/tree/sparseTree.js.map +1 -1
  800. package/lib/core/tree/treeTextFormat.d.ts +2 -2
  801. package/lib/core/tree/treeTextFormat.d.ts.map +1 -1
  802. package/lib/core/tree/treeTextFormat.js.map +1 -1
  803. package/lib/core/tree/types.d.ts +3 -3
  804. package/lib/core/tree/types.d.ts.map +1 -1
  805. package/lib/core/tree/types.js +1 -2
  806. package/lib/core/tree/types.js.map +1 -1
  807. package/lib/core/tree/visitDelta.d.ts +5 -5
  808. package/lib/core/tree/visitDelta.d.ts.map +1 -1
  809. package/lib/core/tree/visitDelta.js.map +1 -1
  810. package/lib/core/tree/visitPath.d.ts +2 -2
  811. package/lib/core/tree/visitPath.d.ts.map +1 -1
  812. package/lib/core/tree/visitPath.js.map +1 -1
  813. package/lib/core/tree/visitorUtils.d.ts +7 -7
  814. package/lib/core/tree/visitorUtils.d.ts.map +1 -1
  815. package/lib/core/tree/visitorUtils.js.map +1 -1
  816. package/lib/domains/json/jsonCursor.d.ts +2 -2
  817. package/lib/domains/json/jsonCursor.d.ts.map +1 -1
  818. package/lib/domains/json/jsonCursor.js.map +1 -1
  819. package/lib/domains/json/jsonDomainSchema.js.map +1 -1
  820. package/lib/domains/schemaBuilder.d.ts +2 -2
  821. package/lib/domains/schemaBuilder.d.ts.map +1 -1
  822. package/lib/domains/schemaBuilder.js +70 -70
  823. package/lib/domains/schemaBuilder.js.map +1 -1
  824. package/lib/events/events.js +1 -2
  825. package/lib/events/events.js.map +1 -1
  826. package/lib/feature-libraries/changeAtomIdCodec.d.ts +2 -2
  827. package/lib/feature-libraries/changeAtomIdCodec.d.ts.map +1 -1
  828. package/lib/feature-libraries/changeAtomIdCodec.js.map +1 -1
  829. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts +2 -2
  830. package/lib/feature-libraries/chunked-forest/basicChunk.d.ts.map +1 -1
  831. package/lib/feature-libraries/chunked-forest/basicChunk.js +1 -14
  832. package/lib/feature-libraries/chunked-forest/basicChunk.js.map +1 -1
  833. package/lib/feature-libraries/chunked-forest/chunk.d.ts +2 -2
  834. package/lib/feature-libraries/chunked-forest/chunk.d.ts.map +1 -1
  835. package/lib/feature-libraries/chunked-forest/chunk.js.map +1 -1
  836. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts +4 -4
  837. package/lib/feature-libraries/chunked-forest/chunkTree.d.ts.map +1 -1
  838. package/lib/feature-libraries/chunked-forest/chunkTree.js +6 -13
  839. package/lib/feature-libraries/chunked-forest/chunkTree.js.map +1 -1
  840. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts +4 -4
  841. package/lib/feature-libraries/chunked-forest/chunkedForest.d.ts.map +1 -1
  842. package/lib/feature-libraries/chunked-forest/chunkedForest.js +2 -9
  843. package/lib/feature-libraries/chunked-forest/chunkedForest.js.map +1 -1
  844. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts +3 -3
  845. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.d.ts.map +1 -1
  846. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js +3 -1
  847. package/lib/feature-libraries/chunked-forest/codec/chunkCodecUtilities.js.map +1 -1
  848. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts +17 -7
  849. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.d.ts.map +1 -1
  850. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js +6 -11
  851. package/lib/feature-libraries/chunked-forest/codec/chunkDecoding.js.map +1 -1
  852. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts +8 -8
  853. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.d.ts.map +1 -1
  854. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js +3 -6
  855. package/lib/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.js.map +1 -1
  856. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts +3 -3
  857. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.d.ts.map +1 -1
  858. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js +0 -1
  859. package/lib/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.js.map +1 -1
  860. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts +6 -5
  861. package/lib/feature-libraries/chunked-forest/codec/codecs.d.ts.map +1 -1
  862. package/lib/feature-libraries/chunked-forest/codec/codecs.js +5 -2
  863. package/lib/feature-libraries/chunked-forest/codec/codecs.js.map +1 -1
  864. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts +7 -7
  865. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.d.ts.map +1 -1
  866. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +13 -25
  867. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  868. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts +1 -1
  869. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.d.ts.map +1 -1
  870. package/lib/feature-libraries/chunked-forest/codec/fieldBatch.js.map +1 -1
  871. package/lib/feature-libraries/chunked-forest/codec/format.d.ts +1 -1
  872. package/lib/feature-libraries/chunked-forest/codec/format.d.ts.map +1 -1
  873. package/lib/feature-libraries/chunked-forest/codec/format.js.map +1 -1
  874. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts +1 -1
  875. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.d.ts.map +1 -1
  876. package/lib/feature-libraries/chunked-forest/codec/formatGeneric.js.map +1 -1
  877. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts +5 -5
  878. package/lib/feature-libraries/chunked-forest/codec/nodeShape.d.ts.map +1 -1
  879. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js +5 -8
  880. package/lib/feature-libraries/chunked-forest/codec/nodeShape.js.map +1 -1
  881. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts +6 -6
  882. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.d.ts.map +1 -1
  883. package/lib/feature-libraries/chunked-forest/codec/schemaBasedEncoding.js.map +1 -1
  884. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts +2 -2
  885. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.d.ts.map +1 -1
  886. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js +1 -1
  887. package/lib/feature-libraries/chunked-forest/codec/uncompressedEncode.js.map +1 -1
  888. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts +1 -1
  889. package/lib/feature-libraries/chunked-forest/emptyChunk.d.ts.map +1 -1
  890. package/lib/feature-libraries/chunked-forest/emptyChunk.js.map +1 -1
  891. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts +1 -1
  892. package/lib/feature-libraries/chunked-forest/sequenceChunk.d.ts.map +1 -1
  893. package/lib/feature-libraries/chunked-forest/sequenceChunk.js +0 -1
  894. package/lib/feature-libraries/chunked-forest/sequenceChunk.js.map +1 -1
  895. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts +2 -2
  896. package/lib/feature-libraries/chunked-forest/uniformChunk.d.ts.map +1 -1
  897. package/lib/feature-libraries/chunked-forest/uniformChunk.js +5 -40
  898. package/lib/feature-libraries/chunked-forest/uniformChunk.js.map +1 -1
  899. package/lib/feature-libraries/contextuallyTyped.d.ts +5 -5
  900. package/lib/feature-libraries/contextuallyTyped.d.ts.map +1 -1
  901. package/lib/feature-libraries/contextuallyTyped.js.map +1 -1
  902. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +3 -3
  903. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  904. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +0 -2
  905. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  906. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +3 -3
  907. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  908. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  909. package/lib/feature-libraries/default-schema/defaultSchema.d.ts +1 -1
  910. package/lib/feature-libraries/default-schema/defaultSchema.d.ts.map +1 -1
  911. package/lib/feature-libraries/default-schema/defaultSchema.js.map +1 -1
  912. package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts +2 -2
  913. package/lib/feature-libraries/default-schema/noChangeCodecs.d.ts.map +1 -1
  914. package/lib/feature-libraries/default-schema/noChangeCodecs.js.map +1 -1
  915. package/lib/feature-libraries/deltaUtils.d.ts +1 -1
  916. package/lib/feature-libraries/deltaUtils.d.ts.map +1 -1
  917. package/lib/feature-libraries/deltaUtils.js +1 -1
  918. package/lib/feature-libraries/deltaUtils.js.map +1 -1
  919. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +4 -4
  920. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  921. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +1 -2
  922. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  923. package/lib/feature-libraries/editableTreeBinder.d.ts +3 -3
  924. package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
  925. package/lib/feature-libraries/editableTreeBinder.js +12 -13
  926. package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
  927. package/lib/feature-libraries/fieldGenerator.d.ts +2 -2
  928. package/lib/feature-libraries/fieldGenerator.d.ts.map +1 -1
  929. package/lib/feature-libraries/fieldGenerator.js.map +1 -1
  930. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +5 -5
  931. package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +1 -1
  932. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js +11 -12
  933. package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +1 -1
  934. package/lib/feature-libraries/flex-tree/context.d.ts +8 -8
  935. package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
  936. package/lib/feature-libraries/flex-tree/context.js +3 -7
  937. package/lib/feature-libraries/flex-tree/context.js.map +1 -1
  938. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +9 -9
  939. package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
  940. package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
  941. package/lib/feature-libraries/flex-tree/index.d.ts +1 -1
  942. package/lib/feature-libraries/flex-tree/index.d.ts.map +1 -1
  943. package/lib/feature-libraries/flex-tree/index.js +0 -1
  944. package/lib/feature-libraries/flex-tree/index.js.map +1 -1
  945. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +4 -4
  946. package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
  947. package/lib/feature-libraries/flex-tree/lazyEntity.js +23 -14
  948. package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
  949. package/lib/feature-libraries/flex-tree/lazyField.d.ts +6 -6
  950. package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
  951. package/lib/feature-libraries/flex-tree/lazyField.js +0 -6
  952. package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
  953. package/lib/feature-libraries/flex-tree/lazyNode.d.ts +5 -5
  954. package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
  955. package/lib/feature-libraries/flex-tree/lazyNode.js +19 -13
  956. package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
  957. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +1 -13
  958. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  959. package/lib/feature-libraries/flex-tree/treeEvents.js +1 -28
  960. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  961. package/lib/feature-libraries/flex-tree/unboxed.d.ts +5 -5
  962. package/lib/feature-libraries/flex-tree/unboxed.d.ts.map +1 -1
  963. package/lib/feature-libraries/flex-tree/unboxed.js.map +1 -1
  964. package/lib/feature-libraries/flex-tree/utilities.d.ts +1 -1
  965. package/lib/feature-libraries/flex-tree/utilities.d.ts.map +1 -1
  966. package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
  967. package/lib/feature-libraries/forest-summary/codec.d.ts +3 -3
  968. package/lib/feature-libraries/forest-summary/codec.d.ts.map +1 -1
  969. package/lib/feature-libraries/forest-summary/codec.js +1 -1
  970. package/lib/feature-libraries/forest-summary/codec.js.map +1 -1
  971. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +7 -7
  972. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  973. package/lib/feature-libraries/forest-summary/forestSummarizer.js +1 -6
  974. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  975. package/lib/feature-libraries/forest-summary/format.d.ts +1 -1
  976. package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
  977. package/lib/feature-libraries/forest-summary/format.js.map +1 -1
  978. package/lib/feature-libraries/index.d.ts +1 -1
  979. package/lib/feature-libraries/index.d.ts.map +1 -1
  980. package/lib/feature-libraries/index.js +1 -1
  981. package/lib/feature-libraries/index.js.map +1 -1
  982. package/lib/feature-libraries/mapTreeCursor.d.ts +2 -2
  983. package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
  984. package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
  985. package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts +1 -1
  986. package/lib/feature-libraries/memoizedIdRangeAllocator.d.ts.map +1 -1
  987. package/lib/feature-libraries/memoizedIdRangeAllocator.js.map +1 -1
  988. package/lib/feature-libraries/mitigatedChangeFamily.d.ts +1 -1
  989. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  990. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  991. package/lib/feature-libraries/modular-schema/comparison.d.ts +2 -2
  992. package/lib/feature-libraries/modular-schema/comparison.d.ts.map +1 -1
  993. package/lib/feature-libraries/modular-schema/comparison.js.map +1 -1
  994. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts +2 -2
  995. package/lib/feature-libraries/modular-schema/crossFieldQueries.d.ts.map +1 -1
  996. package/lib/feature-libraries/modular-schema/crossFieldQueries.js.map +1 -1
  997. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +7 -7
  998. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  999. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  1000. package/lib/feature-libraries/modular-schema/fieldKind.d.ts +1 -1
  1001. package/lib/feature-libraries/modular-schema/fieldKind.d.ts.map +1 -1
  1002. package/lib/feature-libraries/modular-schema/fieldKind.js +0 -2
  1003. package/lib/feature-libraries/modular-schema/fieldKind.js.map +1 -1
  1004. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts +2 -2
  1005. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.d.ts.map +1 -1
  1006. package/lib/feature-libraries/modular-schema/fieldKindConfiguration.js.map +1 -1
  1007. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts +3 -3
  1008. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.d.ts.map +1 -1
  1009. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js +0 -3
  1010. package/lib/feature-libraries/modular-schema/fieldKindWithEditor.js.map +1 -1
  1011. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +4 -4
  1012. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  1013. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  1014. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts +2 -2
  1015. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.d.ts.map +1 -1
  1016. package/lib/feature-libraries/modular-schema/genericFieldKindCodecs.js.map +1 -1
  1017. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts +1 -1
  1018. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.d.ts.map +1 -1
  1019. package/lib/feature-libraries/modular-schema/genericFieldKindFormat.js.map +1 -1
  1020. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts +1 -1
  1021. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.d.ts.map +1 -1
  1022. package/lib/feature-libraries/modular-schema/genericFieldKindTypes.js.map +1 -1
  1023. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts +2 -2
  1024. package/lib/feature-libraries/modular-schema/isNeverTree.d.ts.map +1 -1
  1025. package/lib/feature-libraries/modular-schema/isNeverTree.js.map +1 -1
  1026. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts +5 -5
  1027. package/lib/feature-libraries/modular-schema/modularChangeCodecs.d.ts.map +1 -1
  1028. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js +2 -0
  1029. package/lib/feature-libraries/modular-schema/modularChangeCodecs.js.map +1 -1
  1030. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +6 -6
  1031. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  1032. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +2 -5
  1033. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  1034. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +3 -3
  1035. package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
  1036. package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
  1037. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts +3 -3
  1038. package/lib/feature-libraries/modular-schema/modularChangeTypes.d.ts.map +1 -1
  1039. package/lib/feature-libraries/modular-schema/modularChangeTypes.js.map +1 -1
  1040. package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts +2 -2
  1041. package/lib/feature-libraries/node-key/mockNodeKeyManager.d.ts.map +1 -1
  1042. package/lib/feature-libraries/node-key/mockNodeKeyManager.js +4 -2
  1043. package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  1044. package/lib/feature-libraries/node-key/nodeKey.d.ts +3 -3
  1045. package/lib/feature-libraries/node-key/nodeKey.d.ts.map +1 -1
  1046. package/lib/feature-libraries/node-key/nodeKey.js.map +1 -1
  1047. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts +4 -4
  1048. package/lib/feature-libraries/node-key/nodeKeyIndex.d.ts.map +1 -1
  1049. package/lib/feature-libraries/node-key/nodeKeyIndex.js +0 -3
  1050. package/lib/feature-libraries/node-key/nodeKeyIndex.js.map +1 -1
  1051. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts +1 -1
  1052. package/lib/feature-libraries/node-key/nodeKeyManager.d.ts.map +1 -1
  1053. package/lib/feature-libraries/node-key/nodeKeyManager.js.map +1 -1
  1054. package/lib/feature-libraries/object-forest/objectForest.d.ts +2 -2
  1055. package/lib/feature-libraries/object-forest/objectForest.d.ts.map +1 -1
  1056. package/lib/feature-libraries/object-forest/objectForest.js +28 -23
  1057. package/lib/feature-libraries/object-forest/objectForest.js.map +1 -1
  1058. package/lib/feature-libraries/optional-field/optionalField.d.ts +3 -3
  1059. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  1060. package/lib/feature-libraries/optional-field/optionalField.js +3 -1
  1061. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  1062. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts +1 -1
  1063. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.d.ts.map +1 -1
  1064. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV1.js.map +1 -1
  1065. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts +1 -1
  1066. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.d.ts.map +1 -1
  1067. package/lib/feature-libraries/optional-field/optionalFieldChangeFormatV2.js.map +1 -1
  1068. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts +2 -2
  1069. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.d.ts.map +1 -1
  1070. package/lib/feature-libraries/optional-field/optionalFieldChangeTypes.js.map +1 -1
  1071. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts +3 -3
  1072. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.d.ts.map +1 -1
  1073. package/lib/feature-libraries/optional-field/optionalFieldCodecV1.js.map +1 -1
  1074. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts +3 -3
  1075. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.d.ts.map +1 -1
  1076. package/lib/feature-libraries/optional-field/optionalFieldCodecV2.js.map +1 -1
  1077. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts +2 -2
  1078. package/lib/feature-libraries/optional-field/optionalFieldCodecs.d.ts.map +1 -1
  1079. package/lib/feature-libraries/optional-field/optionalFieldCodecs.js.map +1 -1
  1080. package/lib/feature-libraries/schema-aware/schemaAware.d.ts +4 -4
  1081. package/lib/feature-libraries/schema-aware/schemaAware.d.ts.map +1 -1
  1082. package/lib/feature-libraries/schema-aware/schemaAware.js +1 -2
  1083. package/lib/feature-libraries/schema-aware/schemaAware.js.map +1 -1
  1084. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +2 -2
  1085. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
  1086. package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
  1087. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +1 -1
  1088. package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
  1089. package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
  1090. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts +1 -1
  1091. package/lib/feature-libraries/schema-edits/schemaChangeTypes.d.ts.map +1 -1
  1092. package/lib/feature-libraries/schema-edits/schemaChangeTypes.js.map +1 -1
  1093. package/lib/feature-libraries/schema-index/codec.d.ts +2 -2
  1094. package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
  1095. package/lib/feature-libraries/schema-index/codec.js +1 -1
  1096. package/lib/feature-libraries/schema-index/codec.js.map +1 -1
  1097. package/lib/feature-libraries/schema-index/format.d.ts +1 -1
  1098. package/lib/feature-libraries/schema-index/format.d.ts.map +1 -1
  1099. package/lib/feature-libraries/schema-index/format.js.map +1 -1
  1100. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +7 -7
  1101. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  1102. package/lib/feature-libraries/schema-index/schemaSummarizer.js +2 -6
  1103. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  1104. package/lib/feature-libraries/schemaBuilder.d.ts +2 -2
  1105. package/lib/feature-libraries/schemaBuilder.d.ts.map +1 -1
  1106. package/lib/feature-libraries/schemaBuilder.js.map +1 -1
  1107. package/lib/feature-libraries/schemaBuilderBase.d.ts +4 -4
  1108. package/lib/feature-libraries/schemaBuilderBase.d.ts.map +1 -1
  1109. package/lib/feature-libraries/schemaBuilderBase.js +3 -14
  1110. package/lib/feature-libraries/schemaBuilderBase.js.map +1 -1
  1111. package/lib/feature-libraries/sequence-field/compose.d.ts +5 -5
  1112. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  1113. package/lib/feature-libraries/sequence-field/compose.js +0 -6
  1114. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  1115. package/lib/feature-libraries/sequence-field/formatV1.d.ts +1 -1
  1116. package/lib/feature-libraries/sequence-field/formatV1.d.ts.map +1 -1
  1117. package/lib/feature-libraries/sequence-field/formatV1.js.map +1 -1
  1118. package/lib/feature-libraries/sequence-field/formatV2.d.ts +1 -1
  1119. package/lib/feature-libraries/sequence-field/formatV2.d.ts.map +1 -1
  1120. package/lib/feature-libraries/sequence-field/formatV2.js.map +1 -1
  1121. package/lib/feature-libraries/sequence-field/helperTypes.d.ts +1 -1
  1122. package/lib/feature-libraries/sequence-field/helperTypes.d.ts.map +1 -1
  1123. package/lib/feature-libraries/sequence-field/helperTypes.js.map +1 -1
  1124. package/lib/feature-libraries/sequence-field/invert.d.ts +3 -3
  1125. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  1126. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  1127. package/lib/feature-libraries/sequence-field/markListFactory.d.ts +1 -1
  1128. package/lib/feature-libraries/sequence-field/markListFactory.d.ts.map +1 -1
  1129. package/lib/feature-libraries/sequence-field/markListFactory.js +4 -3
  1130. package/lib/feature-libraries/sequence-field/markListFactory.js.map +1 -1
  1131. package/lib/feature-libraries/sequence-field/markQueue.d.ts +2 -2
  1132. package/lib/feature-libraries/sequence-field/markQueue.d.ts.map +1 -1
  1133. package/lib/feature-libraries/sequence-field/markQueue.js +2 -4
  1134. package/lib/feature-libraries/sequence-field/markQueue.js.map +1 -1
  1135. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts +5 -5
  1136. package/lib/feature-libraries/sequence-field/moveEffectTable.d.ts.map +1 -1
  1137. package/lib/feature-libraries/sequence-field/moveEffectTable.js.map +1 -1
  1138. package/lib/feature-libraries/sequence-field/prune.d.ts +2 -2
  1139. package/lib/feature-libraries/sequence-field/prune.d.ts.map +1 -1
  1140. package/lib/feature-libraries/sequence-field/prune.js.map +1 -1
  1141. package/lib/feature-libraries/sequence-field/rebase.d.ts +3 -3
  1142. package/lib/feature-libraries/sequence-field/rebase.d.ts.map +1 -1
  1143. package/lib/feature-libraries/sequence-field/rebase.js +0 -6
  1144. package/lib/feature-libraries/sequence-field/rebase.js.map +1 -1
  1145. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts +3 -3
  1146. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.d.ts.map +1 -1
  1147. package/lib/feature-libraries/sequence-field/relevantRemovedRoots.js.map +1 -1
  1148. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts +2 -2
  1149. package/lib/feature-libraries/sequence-field/replaceRevisions.d.ts.map +1 -1
  1150. package/lib/feature-libraries/sequence-field/replaceRevisions.js.map +1 -1
  1151. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts +3 -3
  1152. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.d.ts.map +1 -1
  1153. package/lib/feature-libraries/sequence-field/sequenceFieldChangeHandler.js.map +1 -1
  1154. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts +2 -2
  1155. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.d.ts.map +1 -1
  1156. package/lib/feature-libraries/sequence-field/sequenceFieldChangeRebaser.js.map +1 -1
  1157. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts +5 -5
  1158. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.d.ts.map +1 -1
  1159. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV1.js.map +1 -1
  1160. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts +5 -5
  1161. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.d.ts.map +1 -1
  1162. package/lib/feature-libraries/sequence-field/sequenceFieldCodecV2.js.map +1 -1
  1163. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts +4 -4
  1164. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.d.ts.map +1 -1
  1165. package/lib/feature-libraries/sequence-field/sequenceFieldCodecs.js.map +1 -1
  1166. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +3 -3
  1167. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  1168. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  1169. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts +3 -3
  1170. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.d.ts.map +1 -1
  1171. package/lib/feature-libraries/sequence-field/sequenceFieldToDelta.js.map +1 -1
  1172. package/lib/feature-libraries/sequence-field/types.d.ts +2 -2
  1173. package/lib/feature-libraries/sequence-field/types.d.ts.map +1 -1
  1174. package/lib/feature-libraries/sequence-field/types.js.map +1 -1
  1175. package/lib/feature-libraries/sequence-field/utils.d.ts +5 -5
  1176. package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
  1177. package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
  1178. package/lib/feature-libraries/storedToViewSchema.d.ts +2 -2
  1179. package/lib/feature-libraries/storedToViewSchema.d.ts.map +1 -1
  1180. package/lib/feature-libraries/storedToViewSchema.js.map +1 -1
  1181. package/lib/feature-libraries/treeCursorUtils.d.ts +1 -1
  1182. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  1183. package/lib/feature-libraries/treeCursorUtils.js +9 -13
  1184. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  1185. package/lib/feature-libraries/treeTextCursor.d.ts +2 -2
  1186. package/lib/feature-libraries/treeTextCursor.d.ts.map +1 -1
  1187. package/lib/feature-libraries/treeTextCursor.js +1 -1
  1188. package/lib/feature-libraries/treeTextCursor.js.map +1 -1
  1189. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +3 -3
  1190. package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +1 -1
  1191. package/lib/feature-libraries/typed-schema/schemaCollection.js +1 -1
  1192. package/lib/feature-libraries/typed-schema/schemaCollection.js.map +1 -1
  1193. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +4 -4
  1194. package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
  1195. package/lib/feature-libraries/typed-schema/typedTreeSchema.js +4 -23
  1196. package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
  1197. package/lib/feature-libraries/typed-schema/view.d.ts +4 -4
  1198. package/lib/feature-libraries/typed-schema/view.d.ts.map +1 -1
  1199. package/lib/feature-libraries/typed-schema/view.js +0 -7
  1200. package/lib/feature-libraries/typed-schema/view.js.map +1 -1
  1201. package/lib/feature-libraries/valueUtilities.d.ts +2 -2
  1202. package/lib/feature-libraries/valueUtilities.d.ts.map +1 -1
  1203. package/lib/feature-libraries/valueUtilities.js.map +1 -1
  1204. package/lib/index.d.ts +1 -1
  1205. package/lib/index.d.ts.map +1 -1
  1206. package/lib/index.js +1 -1
  1207. package/lib/index.js.map +1 -1
  1208. package/lib/packageVersion.d.ts +1 -1
  1209. package/lib/packageVersion.js +1 -1
  1210. package/lib/packageVersion.js.map +1 -1
  1211. package/lib/public.d.ts +0 -1
  1212. package/lib/shared-tree/schematizeTree.d.ts +3 -3
  1213. package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
  1214. package/lib/shared-tree/schematizeTree.js.map +1 -1
  1215. package/lib/shared-tree/schematizingTreeView.d.ts +4 -4
  1216. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  1217. package/lib/shared-tree/schematizingTreeView.js +11 -28
  1218. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  1219. package/lib/shared-tree/sharedTree.d.ts +15 -11
  1220. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  1221. package/lib/shared-tree/sharedTree.js +14 -11
  1222. package/lib/shared-tree/sharedTree.js.map +1 -1
  1223. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts +4 -4
  1224. package/lib/shared-tree/sharedTreeChangeCodecs.d.ts.map +1 -1
  1225. package/lib/shared-tree/sharedTreeChangeCodecs.js +1 -1
  1226. package/lib/shared-tree/sharedTreeChangeCodecs.js.map +1 -1
  1227. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts +3 -3
  1228. package/lib/shared-tree/sharedTreeChangeEnricher.d.ts.map +1 -1
  1229. package/lib/shared-tree/sharedTreeChangeEnricher.js +11 -14
  1230. package/lib/shared-tree/sharedTreeChangeEnricher.js.map +1 -1
  1231. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +4 -4
  1232. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  1233. package/lib/shared-tree/sharedTreeChangeFamily.js +4 -6
  1234. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  1235. package/lib/shared-tree/sharedTreeChangeFormat.d.ts +1 -1
  1236. package/lib/shared-tree/sharedTreeChangeFormat.d.ts.map +1 -1
  1237. package/lib/shared-tree/sharedTreeChangeFormat.js.map +1 -1
  1238. package/lib/shared-tree/sharedTreeChangeTypes.d.ts +1 -1
  1239. package/lib/shared-tree/sharedTreeChangeTypes.d.ts.map +1 -1
  1240. package/lib/shared-tree/sharedTreeChangeTypes.js.map +1 -1
  1241. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +3 -3
  1242. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  1243. package/lib/shared-tree/sharedTreeEditBuilder.js +0 -2
  1244. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  1245. package/lib/shared-tree/treeApi.d.ts +1 -1
  1246. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  1247. package/lib/shared-tree/treeApi.js.map +1 -1
  1248. package/lib/shared-tree/treeCheckout.d.ts +7 -7
  1249. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  1250. package/lib/shared-tree/treeCheckout.js +12 -23
  1251. package/lib/shared-tree/treeCheckout.js.map +1 -1
  1252. package/lib/shared-tree/treeView.d.ts +3 -3
  1253. package/lib/shared-tree/treeView.d.ts.map +1 -1
  1254. package/lib/shared-tree/treeView.js +0 -6
  1255. package/lib/shared-tree/treeView.js.map +1 -1
  1256. package/lib/shared-tree-core/branch.d.ts +2 -2
  1257. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  1258. package/lib/shared-tree-core/branch.js +25 -31
  1259. package/lib/shared-tree-core/branch.js.map +1 -1
  1260. package/lib/shared-tree-core/branchCommitEnricher.d.ts +2 -2
  1261. package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
  1262. package/lib/shared-tree-core/branchCommitEnricher.js +9 -12
  1263. package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
  1264. package/lib/shared-tree-core/changeEnricher.d.ts +1 -1
  1265. package/lib/shared-tree-core/changeEnricher.d.ts.map +1 -1
  1266. package/lib/shared-tree-core/changeEnricher.js.map +1 -1
  1267. package/lib/shared-tree-core/defaultResubmitMachine.d.ts +2 -2
  1268. package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  1269. package/lib/shared-tree-core/defaultResubmitMachine.js +19 -21
  1270. package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  1271. package/lib/shared-tree-core/editManager.d.ts +3 -3
  1272. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  1273. package/lib/shared-tree-core/editManager.js +37 -53
  1274. package/lib/shared-tree-core/editManager.js.map +1 -1
  1275. package/lib/shared-tree-core/editManagerCodecs.d.ts +5 -5
  1276. package/lib/shared-tree-core/editManagerCodecs.d.ts.map +1 -1
  1277. package/lib/shared-tree-core/editManagerCodecs.js +1 -1
  1278. package/lib/shared-tree-core/editManagerCodecs.js.map +1 -1
  1279. package/lib/shared-tree-core/editManagerFormat.d.ts +4 -4
  1280. package/lib/shared-tree-core/editManagerFormat.d.ts.map +1 -1
  1281. package/lib/shared-tree-core/editManagerFormat.js.map +1 -1
  1282. package/lib/shared-tree-core/editManagerSummarizer.d.ts +9 -9
  1283. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  1284. package/lib/shared-tree-core/editManagerSummarizer.js +1 -5
  1285. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  1286. package/lib/shared-tree-core/messageCodecs.d.ts +5 -5
  1287. package/lib/shared-tree-core/messageCodecs.d.ts.map +1 -1
  1288. package/lib/shared-tree-core/messageCodecs.js.map +1 -1
  1289. package/lib/shared-tree-core/messageFormat.d.ts +4 -4
  1290. package/lib/shared-tree-core/messageFormat.d.ts.map +1 -1
  1291. package/lib/shared-tree-core/messageFormat.js.map +1 -1
  1292. package/lib/shared-tree-core/messageTypes.d.ts +2 -2
  1293. package/lib/shared-tree-core/messageTypes.d.ts.map +1 -1
  1294. package/lib/shared-tree-core/messageTypes.js.map +1 -1
  1295. package/lib/shared-tree-core/resubmitMachine.d.ts +1 -1
  1296. package/lib/shared-tree-core/resubmitMachine.d.ts.map +1 -1
  1297. package/lib/shared-tree-core/resubmitMachine.js.map +1 -1
  1298. package/lib/shared-tree-core/sequenceIdUtils.d.ts +1 -1
  1299. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  1300. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  1301. package/lib/shared-tree-core/sharedTreeCore.d.ts +10 -10
  1302. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  1303. package/lib/shared-tree-core/sharedTreeCore.js +7 -24
  1304. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  1305. package/lib/shared-tree-core/transactionEnricher.d.ts +2 -2
  1306. package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
  1307. package/lib/shared-tree-core/transactionEnricher.js +1 -3
  1308. package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
  1309. package/lib/shared-tree-core/transactionStack.d.ts +1 -1
  1310. package/lib/shared-tree-core/transactionStack.d.ts.map +1 -1
  1311. package/lib/shared-tree-core/transactionStack.js +3 -1
  1312. package/lib/shared-tree-core/transactionStack.js.map +1 -1
  1313. package/lib/simple-tree/arrayNode.d.ts +2 -2
  1314. package/lib/simple-tree/arrayNode.d.ts.map +1 -1
  1315. package/lib/simple-tree/arrayNode.js +35 -27
  1316. package/lib/simple-tree/arrayNode.js.map +1 -1
  1317. package/lib/simple-tree/leafNodeSchema.d.ts +1 -1
  1318. package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
  1319. package/lib/simple-tree/leafNodeSchema.js +2 -4
  1320. package/lib/simple-tree/leafNodeSchema.js.map +1 -1
  1321. package/lib/simple-tree/mapNode.d.ts +2 -2
  1322. package/lib/simple-tree/mapNode.d.ts.map +1 -1
  1323. package/lib/simple-tree/mapNode.js +5 -5
  1324. package/lib/simple-tree/mapNode.js.map +1 -1
  1325. package/lib/simple-tree/nodeKeys.d.ts +2 -2
  1326. package/lib/simple-tree/nodeKeys.d.ts.map +1 -1
  1327. package/lib/simple-tree/nodeKeys.js.map +1 -1
  1328. package/lib/simple-tree/objectNode.d.ts +5 -5
  1329. package/lib/simple-tree/objectNode.d.ts.map +1 -1
  1330. package/lib/simple-tree/objectNode.js +6 -6
  1331. package/lib/simple-tree/objectNode.js.map +1 -1
  1332. package/lib/simple-tree/proxies.d.ts +4 -4
  1333. package/lib/simple-tree/proxies.d.ts.map +1 -1
  1334. package/lib/simple-tree/proxies.js +7 -5
  1335. package/lib/simple-tree/proxies.js.map +1 -1
  1336. package/lib/simple-tree/proxyBinding.d.ts +6 -6
  1337. package/lib/simple-tree/proxyBinding.d.ts.map +1 -1
  1338. package/lib/simple-tree/proxyBinding.js.map +1 -1
  1339. package/lib/simple-tree/schemaCaching.d.ts +2 -2
  1340. package/lib/simple-tree/schemaCaching.d.ts.map +1 -1
  1341. package/lib/simple-tree/schemaCaching.js.map +1 -1
  1342. package/lib/simple-tree/schemaCreationUtilities.d.ts +5 -5
  1343. package/lib/simple-tree/schemaCreationUtilities.d.ts.map +1 -1
  1344. package/lib/simple-tree/schemaCreationUtilities.js.map +1 -1
  1345. package/lib/simple-tree/schemaFactory.d.ts +25 -12
  1346. package/lib/simple-tree/schemaFactory.d.ts.map +1 -1
  1347. package/lib/simple-tree/schemaFactory.js +66 -54
  1348. package/lib/simple-tree/schemaFactory.js.map +1 -1
  1349. package/lib/simple-tree/schemaFactoryRecursive.d.ts +6 -6
  1350. package/lib/simple-tree/schemaFactoryRecursive.d.ts.map +1 -1
  1351. package/lib/simple-tree/schemaFactoryRecursive.js +1 -1
  1352. package/lib/simple-tree/schemaFactoryRecursive.js.map +1 -1
  1353. package/lib/simple-tree/schemaTypes.d.ts +6 -6
  1354. package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
  1355. package/lib/simple-tree/schemaTypes.js +3 -12
  1356. package/lib/simple-tree/schemaTypes.js.map +1 -1
  1357. package/lib/simple-tree/testRecursiveDomain.d.ts +1 -1
  1358. package/lib/simple-tree/testRecursiveDomain.d.ts.map +1 -1
  1359. package/lib/simple-tree/testRecursiveDomain.js.map +1 -1
  1360. package/lib/simple-tree/toFlexSchema.d.ts +4 -4
  1361. package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
  1362. package/lib/simple-tree/toFlexSchema.js.map +1 -1
  1363. package/lib/simple-tree/toMapTree.d.ts +2 -2
  1364. package/lib/simple-tree/toMapTree.d.ts.map +1 -1
  1365. package/lib/simple-tree/toMapTree.js.map +1 -1
  1366. package/lib/simple-tree/tree.d.ts +6 -27
  1367. package/lib/simple-tree/tree.d.ts.map +1 -1
  1368. package/lib/simple-tree/tree.js +0 -21
  1369. package/lib/simple-tree/tree.js.map +1 -1
  1370. package/lib/simple-tree/treeNodeApi.d.ts +30 -27
  1371. package/lib/simple-tree/treeNodeApi.d.ts.map +1 -1
  1372. package/lib/simple-tree/treeNodeApi.js +8 -3
  1373. package/lib/simple-tree/treeNodeApi.js.map +1 -1
  1374. package/lib/simple-tree/types.d.ts +29 -9
  1375. package/lib/simple-tree/types.d.ts.map +1 -1
  1376. package/lib/simple-tree/types.js +78 -54
  1377. package/lib/simple-tree/types.js.map +1 -1
  1378. package/lib/simple-tree/typesUnsafe.d.ts +5 -5
  1379. package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
  1380. package/lib/simple-tree/typesUnsafe.js.map +1 -1
  1381. package/lib/treeFactory.d.ts +5 -5
  1382. package/lib/treeFactory.d.ts.map +1 -1
  1383. package/lib/treeFactory.js +10 -9
  1384. package/lib/treeFactory.js.map +1 -1
  1385. package/lib/util/brand.js +0 -1
  1386. package/lib/util/brand.js.map +1 -1
  1387. package/lib/util/brandedMap.d.ts +1 -1
  1388. package/lib/util/brandedMap.d.ts.map +1 -1
  1389. package/lib/util/brandedMap.js.map +1 -1
  1390. package/lib/util/nestedMap.d.ts +1 -1
  1391. package/lib/util/nestedMap.d.ts.map +1 -1
  1392. package/lib/util/nestedMap.js +4 -2
  1393. package/lib/util/nestedMap.js.map +1 -1
  1394. package/lib/util/nestedSet.d.ts +1 -1
  1395. package/lib/util/nestedSet.d.ts.map +1 -1
  1396. package/lib/util/nestedSet.js.map +1 -1
  1397. package/lib/util/offsetList.js +4 -2
  1398. package/lib/util/offsetList.js.map +1 -1
  1399. package/lib/util/referenceCounting.js +0 -1
  1400. package/lib/util/referenceCounting.js.map +1 -1
  1401. package/lib/util/stackyIterator.js +2 -3
  1402. package/lib/util/stackyIterator.js.map +1 -1
  1403. package/lib/util/typeboxBrand.d.ts +1 -1
  1404. package/lib/util/typeboxBrand.d.ts.map +1 -1
  1405. package/lib/util/typeboxBrand.js.map +1 -1
  1406. package/package.json +20 -20
  1407. package/src/codec/codec.ts +2 -2
  1408. package/src/codec/discriminatedUnions.ts +2 -2
  1409. package/src/codec/noopValidator.ts +1 -1
  1410. package/src/codec/versioned/codec.ts +4 -4
  1411. package/src/codec/versioned/format.ts +1 -1
  1412. package/src/core/change-family/changeFamily.ts +5 -5
  1413. package/src/core/change-family/editBuilder.ts +1 -1
  1414. package/src/core/forest/editableForest.ts +9 -9
  1415. package/src/core/forest/forest.ts +8 -8
  1416. package/src/core/rebase/changeRebaser.ts +1 -1
  1417. package/src/core/rebase/revisionTagCodec.ts +4 -4
  1418. package/src/core/rebase/types.ts +5 -5
  1419. package/src/core/rebase/utils.ts +6 -6
  1420. package/src/core/schema-stored/format.ts +2 -2
  1421. package/src/core/schema-stored/schema.ts +7 -7
  1422. package/src/core/schema-stored/storedSchemaRepository.ts +6 -6
  1423. package/src/core/schema-view/view.ts +1 -1
  1424. package/src/core/tree/anchorSet.ts +115 -23
  1425. package/src/core/tree/cursor.ts +3 -3
  1426. package/src/core/tree/delta.ts +3 -3
  1427. package/src/core/tree/deltaUtil.ts +4 -4
  1428. package/src/core/tree/detachedFieldIndex.ts +11 -11
  1429. package/src/core/tree/detachedFieldIndexCodec.ts +11 -7
  1430. package/src/core/tree/detachedFieldIndexFormat.ts +2 -2
  1431. package/src/core/tree/detachedFieldIndexTypes.ts +3 -3
  1432. package/src/core/tree/mapTree.ts +2 -2
  1433. package/src/core/tree/pathTree.ts +3 -3
  1434. package/src/core/tree/persistedTreeTextFormat.ts +1 -1
  1435. package/src/core/tree/sparseTree.ts +2 -2
  1436. package/src/core/tree/treeTextFormat.ts +2 -2
  1437. package/src/core/tree/types.ts +10 -4
  1438. package/src/core/tree/visitDelta.ts +8 -8
  1439. package/src/core/tree/visitPath.ts +2 -2
  1440. package/src/core/tree/visitorUtils.ts +9 -9
  1441. package/src/domains/json/jsonCursor.ts +5 -5
  1442. package/src/domains/json/jsonDomainSchema.ts +2 -2
  1443. package/src/domains/schemaBuilder.ts +9 -9
  1444. package/src/feature-libraries/changeAtomIdCodec.ts +2 -2
  1445. package/src/feature-libraries/chunked-forest/basicChunk.ts +9 -9
  1446. package/src/feature-libraries/chunked-forest/chunk.ts +4 -4
  1447. package/src/feature-libraries/chunked-forest/chunkTree.ts +12 -12
  1448. package/src/feature-libraries/chunked-forest/chunkedForest.ts +17 -17
  1449. package/src/feature-libraries/chunked-forest/codec/chunkCodecUtilities.ts +3 -3
  1450. package/src/feature-libraries/chunked-forest/codec/chunkDecoding.ts +33 -17
  1451. package/src/feature-libraries/chunked-forest/codec/chunkDecodingGeneric.ts +12 -7
  1452. package/src/feature-libraries/chunked-forest/codec/chunkEncodingGeneric.ts +5 -5
  1453. package/src/feature-libraries/chunked-forest/codec/codecs.ts +14 -6
  1454. package/src/feature-libraries/chunked-forest/codec/compressedEncode.ts +16 -16
  1455. package/src/feature-libraries/chunked-forest/codec/fieldBatch.ts +1 -1
  1456. package/src/feature-libraries/chunked-forest/codec/format.ts +1 -1
  1457. package/src/feature-libraries/chunked-forest/codec/formatGeneric.ts +1 -1
  1458. package/src/feature-libraries/chunked-forest/codec/nodeShape.ts +19 -14
  1459. package/src/feature-libraries/chunked-forest/codec/schemaBasedEncoding.ts +11 -11
  1460. package/src/feature-libraries/chunked-forest/codec/uncompressedEncode.ts +10 -5
  1461. package/src/feature-libraries/chunked-forest/emptyChunk.ts +5 -5
  1462. package/src/feature-libraries/chunked-forest/sequenceChunk.ts +1 -1
  1463. package/src/feature-libraries/chunked-forest/uniformChunk.ts +8 -8
  1464. package/src/feature-libraries/contextuallyTyped.ts +12 -12
  1465. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +17 -17
  1466. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +11 -11
  1467. package/src/feature-libraries/default-schema/defaultSchema.ts +1 -1
  1468. package/src/feature-libraries/default-schema/noChangeCodecs.ts +2 -2
  1469. package/src/feature-libraries/deltaUtils.ts +7 -2
  1470. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +5 -5
  1471. package/src/feature-libraries/editableTreeBinder.ts +10 -10
  1472. package/src/feature-libraries/fieldGenerator.ts +2 -2
  1473. package/src/feature-libraries/flex-map-tree/mapTreeNode.ts +32 -32
  1474. package/src/feature-libraries/flex-tree/context.ts +11 -11
  1475. package/src/feature-libraries/flex-tree/flexTreeTypes.ts +15 -12
  1476. package/src/feature-libraries/flex-tree/index.ts +1 -1
  1477. package/src/feature-libraries/flex-tree/lazyEntity.ts +9 -4
  1478. package/src/feature-libraries/flex-tree/lazyField.ts +22 -22
  1479. package/src/feature-libraries/flex-tree/lazyNode.ts +32 -38
  1480. package/src/feature-libraries/flex-tree/treeEvents.ts +1 -38
  1481. package/src/feature-libraries/flex-tree/unboxed.ts +7 -7
  1482. package/src/feature-libraries/flex-tree/utilities.ts +2 -2
  1483. package/src/feature-libraries/forest-summary/codec.ts +7 -3
  1484. package/src/feature-libraries/forest-summary/forestSummarizer.ts +15 -15
  1485. package/src/feature-libraries/forest-summary/format.ts +1 -1
  1486. package/src/feature-libraries/index.ts +0 -2
  1487. package/src/feature-libraries/mapTreeCursor.ts +6 -6
  1488. package/src/feature-libraries/memoizedIdRangeAllocator.ts +3 -3
  1489. package/src/feature-libraries/mitigatedChangeFamily.ts +1 -1
  1490. package/src/feature-libraries/modular-schema/comparison.ts +6 -6
  1491. package/src/feature-libraries/modular-schema/crossFieldQueries.ts +3 -3
  1492. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +7 -7
  1493. package/src/feature-libraries/modular-schema/fieldKind.ts +1 -1
  1494. package/src/feature-libraries/modular-schema/fieldKindConfiguration.ts +2 -2
  1495. package/src/feature-libraries/modular-schema/fieldKindWithEditor.ts +3 -3
  1496. package/src/feature-libraries/modular-schema/genericFieldKind.ts +10 -10
  1497. package/src/feature-libraries/modular-schema/genericFieldKindCodecs.ts +3 -3
  1498. package/src/feature-libraries/modular-schema/genericFieldKindFormat.ts +1 -1
  1499. package/src/feature-libraries/modular-schema/genericFieldKindTypes.ts +1 -1
  1500. package/src/feature-libraries/modular-schema/isNeverTree.ts +4 -4
  1501. package/src/feature-libraries/modular-schema/modularChangeCodecs.ts +25 -20
  1502. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +34 -34
  1503. package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
  1504. package/src/feature-libraries/modular-schema/modularChangeTypes.ts +3 -3
  1505. package/src/feature-libraries/node-key/mockNodeKeyManager.ts +2 -2
  1506. package/src/feature-libraries/node-key/nodeKey.ts +3 -3
  1507. package/src/feature-libraries/node-key/nodeKeyIndex.ts +4 -4
  1508. package/src/feature-libraries/node-key/nodeKeyManager.ts +1 -1
  1509. package/src/feature-libraries/object-forest/objectForest.ts +22 -22
  1510. package/src/feature-libraries/optional-field/optionalField.ts +20 -20
  1511. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV1.ts +1 -1
  1512. package/src/feature-libraries/optional-field/optionalFieldChangeFormatV2.ts +1 -1
  1513. package/src/feature-libraries/optional-field/optionalFieldChangeTypes.ts +2 -2
  1514. package/src/feature-libraries/optional-field/optionalFieldCodecV1.ts +4 -4
  1515. package/src/feature-libraries/optional-field/optionalFieldCodecV2.ts +4 -4
  1516. package/src/feature-libraries/optional-field/optionalFieldCodecs.ts +2 -2
  1517. package/src/feature-libraries/schema-aware/schemaAware.ts +8 -4
  1518. package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +3 -3
  1519. package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +1 -1
  1520. package/src/feature-libraries/schema-edits/schemaChangeTypes.ts +1 -1
  1521. package/src/feature-libraries/schema-index/codec.ts +8 -4
  1522. package/src/feature-libraries/schema-index/format.ts +1 -1
  1523. package/src/feature-libraries/schema-index/schemaSummarizer.ts +11 -7
  1524. package/src/feature-libraries/schemaBuilder.ts +2 -2
  1525. package/src/feature-libraries/schemaBuilderBase.ts +12 -12
  1526. package/src/feature-libraries/sequence-field/compose.ts +18 -18
  1527. package/src/feature-libraries/sequence-field/formatV1.ts +1 -1
  1528. package/src/feature-libraries/sequence-field/formatV2.ts +1 -1
  1529. package/src/feature-libraries/sequence-field/helperTypes.ts +1 -1
  1530. package/src/feature-libraries/sequence-field/invert.ts +14 -14
  1531. package/src/feature-libraries/sequence-field/markListFactory.ts +1 -1
  1532. package/src/feature-libraries/sequence-field/markQueue.ts +2 -2
  1533. package/src/feature-libraries/sequence-field/moveEffectTable.ts +5 -5
  1534. package/src/feature-libraries/sequence-field/prune.ts +2 -2
  1535. package/src/feature-libraries/sequence-field/rebase.ts +18 -18
  1536. package/src/feature-libraries/sequence-field/relevantRemovedRoots.ts +3 -3
  1537. package/src/feature-libraries/sequence-field/replaceRevisions.ts +7 -7
  1538. package/src/feature-libraries/sequence-field/sequenceFieldChangeHandler.ts +3 -3
  1539. package/src/feature-libraries/sequence-field/sequenceFieldChangeRebaser.ts +2 -2
  1540. package/src/feature-libraries/sequence-field/sequenceFieldCodecV1.ts +17 -17
  1541. package/src/feature-libraries/sequence-field/sequenceFieldCodecV2.ts +16 -16
  1542. package/src/feature-libraries/sequence-field/sequenceFieldCodecs.ts +4 -4
  1543. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +12 -3
  1544. package/src/feature-libraries/sequence-field/sequenceFieldToDelta.ts +7 -7
  1545. package/src/feature-libraries/sequence-field/types.ts +2 -2
  1546. package/src/feature-libraries/sequence-field/utils.ts +25 -25
  1547. package/src/feature-libraries/storedToViewSchema.ts +7 -7
  1548. package/src/feature-libraries/treeCursorUtils.ts +8 -8
  1549. package/src/feature-libraries/treeTextCursor.ts +10 -6
  1550. package/src/feature-libraries/typed-schema/schemaCollection.ts +11 -6
  1551. package/src/feature-libraries/typed-schema/typedTreeSchema.ts +16 -16
  1552. package/src/feature-libraries/typed-schema/view.ts +8 -8
  1553. package/src/feature-libraries/valueUtilities.ts +2 -2
  1554. package/src/index.ts +0 -1
  1555. package/src/packageVersion.ts +1 -1
  1556. package/src/shared-tree/schematizeTree.ts +7 -7
  1557. package/src/shared-tree/schematizingTreeView.ts +19 -16
  1558. package/src/shared-tree/sharedTree.ts +28 -16
  1559. package/src/shared-tree/sharedTreeChangeCodecs.ts +11 -8
  1560. package/src/shared-tree/sharedTreeChangeEnricher.ts +8 -8
  1561. package/src/shared-tree/sharedTreeChangeFamily.ts +21 -15
  1562. package/src/shared-tree/sharedTreeChangeFormat.ts +1 -1
  1563. package/src/shared-tree/sharedTreeChangeTypes.ts +1 -1
  1564. package/src/shared-tree/sharedTreeEditBuilder.ts +4 -4
  1565. package/src/shared-tree/treeApi.ts +5 -5
  1566. package/src/shared-tree/treeCheckout.ts +28 -23
  1567. package/src/shared-tree/treeView.ts +8 -8
  1568. package/src/shared-tree-core/branch.ts +8 -8
  1569. package/src/shared-tree-core/branchCommitEnricher.ts +2 -2
  1570. package/src/shared-tree-core/changeEnricher.ts +1 -1
  1571. package/src/shared-tree-core/defaultResubmitMachine.ts +2 -2
  1572. package/src/shared-tree-core/editManager.ts +8 -8
  1573. package/src/shared-tree-core/editManagerCodecs.ts +13 -8
  1574. package/src/shared-tree-core/editManagerFormat.ts +5 -5
  1575. package/src/shared-tree-core/editManagerSummarizer.ts +13 -9
  1576. package/src/shared-tree-core/messageCodecs.ts +7 -7
  1577. package/src/shared-tree-core/messageFormat.ts +4 -4
  1578. package/src/shared-tree-core/messageTypes.ts +2 -2
  1579. package/src/shared-tree-core/resubmitMachine.ts +1 -1
  1580. package/src/shared-tree-core/sequenceIdUtils.ts +1 -1
  1581. package/src/shared-tree-core/sharedTreeCore.ts +20 -20
  1582. package/src/shared-tree-core/transactionEnricher.ts +2 -2
  1583. package/src/shared-tree-core/transactionStack.ts +1 -1
  1584. package/src/simple-tree/arrayNode.ts +32 -28
  1585. package/src/simple-tree/leafNodeSchema.ts +4 -4
  1586. package/src/simple-tree/mapNode.ts +10 -10
  1587. package/src/simple-tree/nodeKeys.ts +2 -2
  1588. package/src/simple-tree/objectNode.ts +18 -18
  1589. package/src/simple-tree/proxies.ts +21 -27
  1590. package/src/simple-tree/proxyBinding.ts +14 -14
  1591. package/src/simple-tree/schemaCaching.ts +5 -5
  1592. package/src/simple-tree/schemaCreationUtilities.ts +5 -5
  1593. package/src/simple-tree/schemaFactory.ts +39 -22
  1594. package/src/simple-tree/schemaFactoryRecursive.ts +13 -13
  1595. package/src/simple-tree/schemaTypes.ts +8 -8
  1596. package/src/simple-tree/testRecursiveDomain.ts +1 -1
  1597. package/src/simple-tree/toFlexSchema.ts +13 -13
  1598. package/src/simple-tree/toMapTree.ts +4 -4
  1599. package/src/simple-tree/tree.ts +6 -31
  1600. package/src/simple-tree/treeNodeApi.ts +45 -33
  1601. package/src/simple-tree/types.ts +60 -12
  1602. package/src/simple-tree/typesUnsafe.ts +6 -6
  1603. package/src/treeFactory.ts +5 -5
  1604. package/src/util/brandedMap.ts +1 -1
  1605. package/src/util/nestedMap.ts +1 -1
  1606. package/src/util/nestedSet.ts +1 -1
  1607. package/src/util/typeboxBrand.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemaCollection.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/schemaCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAA0C,MAAM,qBAAqB,CAAC;AAKpG,OAAO,EAEN,eAAe,EAKf,gBAAgB,EAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;CACzC;AAMD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,EAAE,uBAG/B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,uBAAuB,EAC1C,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACtC,eAAe,CAAC,EAAE,eAAe,GAC/B,iBAAiB,CAuDnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,iBAAiB,EAAE,uBAAuB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,eAAe,CAAC,EAAE,eAAe,GAC/B,MAAM,EAAE,CA8CV;AAED,wBAAgB,iBAAiB,CAChC,iBAAiB,EAAE,uBAAuB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,MAAM,EAAE,GACd,IAAI,CAGN;AAED,wBAAgB,aAAa,CAC5B,iBAAiB,EAAE,uBAAuB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,MAAM,EAC3B,MAAM,EAAE,MAAM,EAAE,GACd,IAAI,CA0CN"}
1
+ {"version":3,"file":"schemaCollection.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/schemaCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,WAAW,EAGhB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAEN,KAAK,eAAe,EAKpB,KAAK,gBAAgB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC;CACzC;AAMD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,EAAE,uBAG/B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,uBAAuB,EAC1C,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACtC,eAAe,CAAC,EAAE,eAAe,GAC/B,iBAAiB,CAuDnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,iBAAiB,EAAE,uBAAuB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,eAAe,CAAC,EAAE,eAAe,GAC/B,MAAM,EAAE,CA8CV;AAED,wBAAgB,iBAAiB,CAChC,iBAAiB,EAAE,uBAAuB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,MAAM,EAAE,GACd,IAAI,CAGN;AAED,wBAAgB,aAAa,CAC5B,iBAAiB,EAAE,uBAAuB,EAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,MAAM,EAC3B,MAAM,EAAE,MAAM,EAAE,GACd,IAAI,CA0CN"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemaCollection.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/schemaCollection.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 } from \"@fluidframework/core-utils/internal\";\n\nimport { Adapters, TreeAdapter, TreeNodeSchemaIdentifier, Multiplicity } from \"../../core/index.js\";\nimport { fail, requireAssignableTo } from \"../../util/index.js\";\nimport { FieldKinds, defaultSchemaPolicy } from \"../default-schema/index.js\";\n\nimport { normalizeFlexListEager } from \"./flexList.js\";\nimport {\n\tFlexFieldNodeSchema,\n\tFlexFieldSchema,\n\tFlexMapNodeSchema,\n\tFlexObjectNodeSchema,\n\tFlexTreeNodeSchema,\n\tLeafNodeSchema,\n\tSchemaCollection,\n\tallowedTypesIsAny,\n} from \"./typedTreeSchema.js\";\nimport { Sourced } from \"./view.js\";\n\n// TODO: tests for this file\n\n/**\n * Schema data collected by a single SchemaBuilder (does not include referenced libraries).\n * @internal\n */\nexport interface SchemaLibraryData extends SchemaCollection {\n\treadonly name: string;\n\treadonly adapters: Adapters;\n}\n\n/**\n * Mutable adapter collection which records the associated factory.\n * See {@link Adapters}.\n */\nexport interface SourcedAdapters {\n\treadonly tree: (Sourced & TreeAdapter)[];\n}\n\n{\n\ttype _check = requireAssignableTo<SourcedAdapters, Adapters>;\n}\n\n/**\n * Allows opting into and out of errors for some unusual schema patterns which are usually bugs.\n * @internal\n */\nexport interface SchemaLintConfiguration {\n\treadonly rejectForbidden: boolean;\n\treadonly rejectEmpty: boolean;\n}\n\nexport const schemaLintDefault: SchemaLintConfiguration = {\n\trejectForbidden: true,\n\trejectEmpty: true,\n};\n\n/**\n * Build and validate a SchemaCollection.\n *\n * As much as possible tries to detect anything that might be a mistake made by the schema author.\n * This will error on some valid but probably never intended to be used patterns\n * (like libraries with the same name, nodes which are impossible to create etc).\n *\n * @param name - Name of the resulting library.\n * @param lintConfiguration - configuration for what errors to generate.\n * @param libraries - Data to aggregate into the SchemaCollection.\n * @param rootFieldSchema - Only validated: not included in the result.\n *\n * @privateRemarks\n * This checks that input works with defaultSchemaPolicy.\n * If support fo other policies is added, this will need to take in the policy.\n */\nexport function aggregateSchemaLibraries(\n\tname: string,\n\tlintConfiguration: SchemaLintConfiguration,\n\tlibraries: Iterable<SchemaLibraryData>,\n\trootFieldSchema?: FlexFieldSchema,\n): SchemaLibraryData {\n\tconst nodeSchema: Map<TreeNodeSchemaIdentifier, FlexTreeNodeSchema> = new Map();\n\tconst adapters: SourcedAdapters = { tree: [] };\n\n\tconst errors: string[] = [];\n\tconst librarySet: Set<SchemaLibraryData> = new Set();\n\tconst libraryNames: Set<string> = new Set();\n\n\tfor (const library of libraries) {\n\t\tif (librarySet.has(library)) {\n\t\t\t// SchemaBuilder should ensure this doesn't happen, but include it here for completeness.\n\t\t\terrors.push(`Duplicate library named \"${library.name}\"`);\n\t\t\tcontinue;\n\t\t}\n\t\tlibrarySet.add(library);\n\t\tif (libraryNames.has(library.name)) {\n\t\t\t// This wouldn't break anything, but could make error messages confusing, so its better to avoid duplicates.\n\t\t\terrors.push(`Found another library with name \"${library.name}\"`);\n\t\t}\n\n\t\tfor (const [key, tree] of library.nodeSchema) {\n\t\t\t// This check is an assert since if it fails, the other error messages would be incorrect.\n\t\t\tassert(\n\t\t\t\ttree.builder.name === library.name,\n\t\t\t\t0x6a9 /* tree must be part by the library its in */,\n\t\t\t);\n\t\t\tconst existing = nodeSchema.get(key);\n\t\t\tif (existing !== undefined) {\n\t\t\t\terrors.push(\n\t\t\t\t\t`Multiple tree schema for identifier \"${key}\". One from library \"${existing.builder.name}\" and one from \"${tree.builder.name}\"`,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tnodeSchema.set(key, tree);\n\t\t\t}\n\t\t}\n\t\tfor (const _adapter of library.adapters.tree ?? []) {\n\t\t\tfail(\"Adapters not yet supported\");\n\t\t}\n\t}\n\n\tif (errors.length !== 0) {\n\t\tfail(errors.join(\"\\n\"));\n\t}\n\n\tconst result = { rootFieldSchema, nodeSchema, adapters, policy: defaultSchemaPolicy };\n\tconst errors2 = validateSchemaCollection(lintConfiguration, result, rootFieldSchema);\n\tif (errors2.length !== 0) {\n\t\tfail(errors2.join(\"\\n\"));\n\t}\n\n\treturn {\n\t\tname,\n\t\tnodeSchema,\n\t\tadapters,\n\t};\n}\n\n/**\n * Returns an array of descriptions of errors in the collection.\n *\n * As much as possible tries to detect anything that might be a mistake made by the schema author.\n * This will error on some valid but probably never intended to be used patterns (like never nodes).\n */\nexport function validateSchemaCollection(\n\tlintConfiguration: SchemaLintConfiguration,\n\tcollection: SchemaCollection,\n\trootFieldSchema?: FlexFieldSchema,\n): string[] {\n\tconst errors: string[] = [];\n\n\t// TODO: make this check specific to document schema. Replace check here for no tre or field schema (empty library).\n\tif (collection.nodeSchema.size === 0 && lintConfiguration.rejectEmpty) {\n\t\terrors.push(\"No tree schema are included, meaning no data can possibly be stored.\");\n\t}\n\n\t// Validate that all schema referenced are included, and none are \"never\".\n\tif (rootFieldSchema !== undefined) {\n\t\tvalidateRootField(lintConfiguration, collection, rootFieldSchema, errors);\n\t}\n\tfor (const [identifier, tree] of collection.nodeSchema) {\n\t\tif (tree instanceof FlexMapNodeSchema) {\n\t\t\tvalidateField(\n\t\t\t\tlintConfiguration,\n\t\t\t\tcollection,\n\t\t\t\ttree.info,\n\t\t\t\t() => `Map fields of \"${identifier}\" schema from library \"${tree.builder.name}\"`,\n\t\t\t\terrors,\n\t\t\t);\n\t\t\tif ((tree.info.kind.multiplicity as Multiplicity) === Multiplicity.Single) {\n\t\t\t\terrors.push(\n\t\t\t\t\t`Map fields of \"${identifier}\" schema from library \"${tree.builder.name}\" has kind with multiplicity \"Single\". This is invalid since it requires all possible field keys to have a value under them.`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (tree instanceof LeafNodeSchema) {\n\t\t\t// No validation for now.\n\t\t} else if (tree instanceof FlexFieldNodeSchema) {\n\t\t\tconst description = (): string =>\n\t\t\t\t`Field node field of \"${identifier}\" schema from library \"${tree.builder.name}\"`;\n\t\t\tvalidateField(lintConfiguration, collection, tree.info, description, errors);\n\t\t} else if (tree instanceof FlexObjectNodeSchema) {\n\t\t\tfor (const [key, field] of tree.objectNodeFields) {\n\t\t\t\tconst description = (): string =>\n\t\t\t\t\t`Object node field \"${key}\" of \"${identifier}\" schema from library \"${tree.builder.name}\"`;\n\t\t\t\tvalidateField(lintConfiguration, collection, field, description, errors);\n\t\t\t}\n\t\t} else {\n\t\t\t// TODO: there should be a common fallback that works for cases without a specialized implementation.\n\t\t\tfail(\"unrecognized node kind\");\n\t\t}\n\t}\n\n\t// TODO: validate adapters\n\treturn errors;\n}\n\nexport function validateRootField(\n\tlintConfiguration: SchemaLintConfiguration,\n\tcollection: SchemaCollection,\n\tfield: FlexFieldSchema,\n\terrors: string[],\n): void {\n\tconst describeField = (): string => `Root field schema`;\n\tvalidateField(lintConfiguration, collection, field, describeField, errors);\n}\n\nexport function validateField(\n\tlintConfiguration: SchemaLintConfiguration,\n\tcollection: SchemaCollection,\n\tfield: FlexFieldSchema,\n\tdescribeField: () => string,\n\terrors: string[],\n): void {\n\tconst types = field.allowedTypes;\n\tif (!allowedTypesIsAny(types)) {\n\t\tconst normalizedTypes = normalizeFlexListEager(types);\n\t\tfor (const type of normalizedTypes) {\n\t\t\tconst referenced = collection.nodeSchema.get(type.name);\n\t\t\tif (referenced === undefined) {\n\t\t\t\terrors.push(\n\t\t\t\t\t`${describeField()} references type \"${type.name}\" from library \"${\n\t\t\t\t\t\ttype.builder.name\n\t\t\t\t\t}\" which is not defined. Perhaps another type was intended, or that library needs to be added.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (types.length === 0 && lintConfiguration.rejectEmpty) {\n\t\t\terrors.push(\n\t\t\t\t`${describeField()} requires children to have a type from a set of zero types. This means the field must always be empty.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst kind = field.kind;\n\tconst kindFromPolicy = defaultSchemaPolicy.fieldKinds.get(kind.identifier);\n\tif (kindFromPolicy === undefined) {\n\t\terrors.push(`\"${describeField()}\" has unknown field kind \"${kind.identifier}\".`);\n\t} else if (kindFromPolicy !== kind) {\n\t\terrors.push(\n\t\t\t`${describeField()} has field kind \"${\n\t\t\t\tkind.identifier\n\t\t\t}\" which isn't a reference to the default kind with that identifier.`,\n\t\t);\n\t} else if (kind === FieldKinds.forbidden) {\n\t\tif (lintConfiguration.rejectForbidden) {\n\t\t\terrors.push(\n\t\t\t\t`${describeField()} explicitly uses \"forbidden\" kind, which is not recommended.`,\n\t\t\t);\n\t\t}\n\t} // else if (kind !== counter) {\n\t// \terrors.push(\n\t// \t\t`${describeField()} explicitly uses \"counter\" kind, which is finished.`,\n\t// \t);\n\t// }\n}\n"]}
1
+ {"version":3,"file":"schemaCollection.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/schemaCollection.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 } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\ttype Adapters,\n\ttype TreeAdapter,\n\ttype TreeNodeSchemaIdentifier,\n\tMultiplicity,\n} from \"../../core/index.js\";\nimport { fail, type requireAssignableTo } from \"../../util/index.js\";\nimport { FieldKinds, defaultSchemaPolicy } from \"../default-schema/index.js\";\n\nimport { normalizeFlexListEager } from \"./flexList.js\";\nimport {\n\tFlexFieldNodeSchema,\n\ttype FlexFieldSchema,\n\tFlexMapNodeSchema,\n\tFlexObjectNodeSchema,\n\ttype FlexTreeNodeSchema,\n\tLeafNodeSchema,\n\ttype SchemaCollection,\n\tallowedTypesIsAny,\n} from \"./typedTreeSchema.js\";\nimport type { Sourced } from \"./view.js\";\n\n// TODO: tests for this file\n\n/**\n * Schema data collected by a single SchemaBuilder (does not include referenced libraries).\n * @internal\n */\nexport interface SchemaLibraryData extends SchemaCollection {\n\treadonly name: string;\n\treadonly adapters: Adapters;\n}\n\n/**\n * Mutable adapter collection which records the associated factory.\n * See {@link Adapters}.\n */\nexport interface SourcedAdapters {\n\treadonly tree: (Sourced & TreeAdapter)[];\n}\n\n{\n\ttype _check = requireAssignableTo<SourcedAdapters, Adapters>;\n}\n\n/**\n * Allows opting into and out of errors for some unusual schema patterns which are usually bugs.\n * @internal\n */\nexport interface SchemaLintConfiguration {\n\treadonly rejectForbidden: boolean;\n\treadonly rejectEmpty: boolean;\n}\n\nexport const schemaLintDefault: SchemaLintConfiguration = {\n\trejectForbidden: true,\n\trejectEmpty: true,\n};\n\n/**\n * Build and validate a SchemaCollection.\n *\n * As much as possible tries to detect anything that might be a mistake made by the schema author.\n * This will error on some valid but probably never intended to be used patterns\n * (like libraries with the same name, nodes which are impossible to create etc).\n *\n * @param name - Name of the resulting library.\n * @param lintConfiguration - configuration for what errors to generate.\n * @param libraries - Data to aggregate into the SchemaCollection.\n * @param rootFieldSchema - Only validated: not included in the result.\n *\n * @privateRemarks\n * This checks that input works with defaultSchemaPolicy.\n * If support fo other policies is added, this will need to take in the policy.\n */\nexport function aggregateSchemaLibraries(\n\tname: string,\n\tlintConfiguration: SchemaLintConfiguration,\n\tlibraries: Iterable<SchemaLibraryData>,\n\trootFieldSchema?: FlexFieldSchema,\n): SchemaLibraryData {\n\tconst nodeSchema: Map<TreeNodeSchemaIdentifier, FlexTreeNodeSchema> = new Map();\n\tconst adapters: SourcedAdapters = { tree: [] };\n\n\tconst errors: string[] = [];\n\tconst librarySet: Set<SchemaLibraryData> = new Set();\n\tconst libraryNames: Set<string> = new Set();\n\n\tfor (const library of libraries) {\n\t\tif (librarySet.has(library)) {\n\t\t\t// SchemaBuilder should ensure this doesn't happen, but include it here for completeness.\n\t\t\terrors.push(`Duplicate library named \"${library.name}\"`);\n\t\t\tcontinue;\n\t\t}\n\t\tlibrarySet.add(library);\n\t\tif (libraryNames.has(library.name)) {\n\t\t\t// This wouldn't break anything, but could make error messages confusing, so its better to avoid duplicates.\n\t\t\terrors.push(`Found another library with name \"${library.name}\"`);\n\t\t}\n\n\t\tfor (const [key, tree] of library.nodeSchema) {\n\t\t\t// This check is an assert since if it fails, the other error messages would be incorrect.\n\t\t\tassert(\n\t\t\t\ttree.builder.name === library.name,\n\t\t\t\t0x6a9 /* tree must be part by the library its in */,\n\t\t\t);\n\t\t\tconst existing = nodeSchema.get(key);\n\t\t\tif (existing !== undefined) {\n\t\t\t\terrors.push(\n\t\t\t\t\t`Multiple tree schema for identifier \"${key}\". One from library \"${existing.builder.name}\" and one from \"${tree.builder.name}\"`,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tnodeSchema.set(key, tree);\n\t\t\t}\n\t\t}\n\t\tfor (const _adapter of library.adapters.tree ?? []) {\n\t\t\tfail(\"Adapters not yet supported\");\n\t\t}\n\t}\n\n\tif (errors.length !== 0) {\n\t\tfail(errors.join(\"\\n\"));\n\t}\n\n\tconst result = { rootFieldSchema, nodeSchema, adapters, policy: defaultSchemaPolicy };\n\tconst errors2 = validateSchemaCollection(lintConfiguration, result, rootFieldSchema);\n\tif (errors2.length !== 0) {\n\t\tfail(errors2.join(\"\\n\"));\n\t}\n\n\treturn {\n\t\tname,\n\t\tnodeSchema,\n\t\tadapters,\n\t};\n}\n\n/**\n * Returns an array of descriptions of errors in the collection.\n *\n * As much as possible tries to detect anything that might be a mistake made by the schema author.\n * This will error on some valid but probably never intended to be used patterns (like never nodes).\n */\nexport function validateSchemaCollection(\n\tlintConfiguration: SchemaLintConfiguration,\n\tcollection: SchemaCollection,\n\trootFieldSchema?: FlexFieldSchema,\n): string[] {\n\tconst errors: string[] = [];\n\n\t// TODO: make this check specific to document schema. Replace check here for no tre or field schema (empty library).\n\tif (collection.nodeSchema.size === 0 && lintConfiguration.rejectEmpty) {\n\t\terrors.push(\"No tree schema are included, meaning no data can possibly be stored.\");\n\t}\n\n\t// Validate that all schema referenced are included, and none are \"never\".\n\tif (rootFieldSchema !== undefined) {\n\t\tvalidateRootField(lintConfiguration, collection, rootFieldSchema, errors);\n\t}\n\tfor (const [identifier, tree] of collection.nodeSchema) {\n\t\tif (tree instanceof FlexMapNodeSchema) {\n\t\t\tvalidateField(\n\t\t\t\tlintConfiguration,\n\t\t\t\tcollection,\n\t\t\t\ttree.info,\n\t\t\t\t() => `Map fields of \"${identifier}\" schema from library \"${tree.builder.name}\"`,\n\t\t\t\terrors,\n\t\t\t);\n\t\t\tif ((tree.info.kind.multiplicity as Multiplicity) === Multiplicity.Single) {\n\t\t\t\terrors.push(\n\t\t\t\t\t`Map fields of \"${identifier}\" schema from library \"${tree.builder.name}\" has kind with multiplicity \"Single\". This is invalid since it requires all possible field keys to have a value under them.`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (tree instanceof LeafNodeSchema) {\n\t\t\t// No validation for now.\n\t\t} else if (tree instanceof FlexFieldNodeSchema) {\n\t\t\tconst description = (): string =>\n\t\t\t\t`Field node field of \"${identifier}\" schema from library \"${tree.builder.name}\"`;\n\t\t\tvalidateField(lintConfiguration, collection, tree.info, description, errors);\n\t\t} else if (tree instanceof FlexObjectNodeSchema) {\n\t\t\tfor (const [key, field] of tree.objectNodeFields) {\n\t\t\t\tconst description = (): string =>\n\t\t\t\t\t`Object node field \"${key}\" of \"${identifier}\" schema from library \"${tree.builder.name}\"`;\n\t\t\t\tvalidateField(lintConfiguration, collection, field, description, errors);\n\t\t\t}\n\t\t} else {\n\t\t\t// TODO: there should be a common fallback that works for cases without a specialized implementation.\n\t\t\tfail(\"unrecognized node kind\");\n\t\t}\n\t}\n\n\t// TODO: validate adapters\n\treturn errors;\n}\n\nexport function validateRootField(\n\tlintConfiguration: SchemaLintConfiguration,\n\tcollection: SchemaCollection,\n\tfield: FlexFieldSchema,\n\terrors: string[],\n): void {\n\tconst describeField = (): string => `Root field schema`;\n\tvalidateField(lintConfiguration, collection, field, describeField, errors);\n}\n\nexport function validateField(\n\tlintConfiguration: SchemaLintConfiguration,\n\tcollection: SchemaCollection,\n\tfield: FlexFieldSchema,\n\tdescribeField: () => string,\n\terrors: string[],\n): void {\n\tconst types = field.allowedTypes;\n\tif (!allowedTypesIsAny(types)) {\n\t\tconst normalizedTypes = normalizeFlexListEager(types);\n\t\tfor (const type of normalizedTypes) {\n\t\t\tconst referenced = collection.nodeSchema.get(type.name);\n\t\t\tif (referenced === undefined) {\n\t\t\t\terrors.push(\n\t\t\t\t\t`${describeField()} references type \"${type.name}\" from library \"${\n\t\t\t\t\t\ttype.builder.name\n\t\t\t\t\t}\" which is not defined. Perhaps another type was intended, or that library needs to be added.`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (types.length === 0 && lintConfiguration.rejectEmpty) {\n\t\t\terrors.push(\n\t\t\t\t`${describeField()} requires children to have a type from a set of zero types. This means the field must always be empty.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst kind = field.kind;\n\tconst kindFromPolicy = defaultSchemaPolicy.fieldKinds.get(kind.identifier);\n\tif (kindFromPolicy === undefined) {\n\t\terrors.push(`\"${describeField()}\" has unknown field kind \"${kind.identifier}\".`);\n\t} else if (kindFromPolicy !== kind) {\n\t\terrors.push(\n\t\t\t`${describeField()} has field kind \"${\n\t\t\t\tkind.identifier\n\t\t\t}\" which isn't a reference to the default kind with that identifier.`,\n\t\t);\n\t} else if (kind === FieldKinds.forbidden) {\n\t\tif (lintConfiguration.rejectForbidden) {\n\t\t\terrors.push(\n\t\t\t\t`${describeField()} explicitly uses \"forbidden\" kind, which is not recommended.`,\n\t\t\t);\n\t\t}\n\t} // else if (kind !== counter) {\n\t// \terrors.push(\n\t// \t\t`${describeField()} explicitly uses \"counter\" kind, which is finished.`,\n\t// \t);\n\t// }\n}\n"]}
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { Adapters, FieldKey, StoredSchemaCollection, TreeFieldStoredSchema, TreeNodeSchemaIdentifier, TreeNodeStoredSchema, TreeStoredSchema, TreeTypeSet, ValueSchema } from "../../core/index.js";
6
- import { Assume, MakeNominal, Named } from "../../util/index.js";
5
+ import { type Adapters, type FieldKey, type StoredSchemaCollection, type TreeFieldStoredSchema, type TreeNodeSchemaIdentifier, type TreeNodeStoredSchema, type TreeStoredSchema, type TreeTypeSet, type ValueSchema } from "../../core/index.js";
6
+ import { type Assume, type MakeNominal, type Named } from "../../util/index.js";
7
7
  import { FieldKinds } from "../default-schema/index.js";
8
- import { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
9
- import { LazyItem } from "./flexList.js";
8
+ import type { FlexFieldKind, FullSchemaPolicy } from "../modular-schema/index.js";
9
+ import type { LazyItem } from "./flexList.js";
10
10
  /**
11
11
  * @internal
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"typedTreeSchema.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,QAAQ,EAER,QAAQ,EAIR,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,MAAM,EACN,WAAW,EACX,KAAK,EAKL,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,oBAAoB,IAAI;IACvE,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC3D,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CAAC,yBAAyB,IAAI,OAAO,CAAC;AAM5D;;;;;GAKG;AACH,8BAAsB,kBAAkB,CACvC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO;aAIhB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;aACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC;aACpC,IAAI,EAAE,aAAa;aACnB,MAAM,EAAE,oBAAoB;IAL7C,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;IACnC,SAAS,aACQ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,oBAAoB;aAE7B,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;CAChE;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAC7B,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,SAAS,UAAU,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAClF,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;IAChD,IAAW,SAAS,IAAI,kBAAkB,CAEzC;IAED,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WACtB,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,kBAAkB,EAC7F,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC;IASzB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,kBAAkB;CAGnE;AAED;;GAEG;AACH,qBAAa,cAAc,CAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,SAAS,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,CACpE,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;IAChD,IAAW,SAAS,IAAI,WAAW,CAElC;IAED,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WACtB,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,WAAW,EACtF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC;IAStB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;CAGhE;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAChC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,SAAS,UAAU,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CACtF,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;aA+B/B,sBAAsB,EAAE,yBAAyB,CAChE,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAC3C;aAGe,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC;IAnCzE,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WAEtB,MAAM,CACnB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,aAAa,SAAS,oBAAoB,EAEhD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC;IAiB5C,OAAO;IAeS,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;CAGhE;AAED;;;GAGG;AACH,qBAAa,mBAAmB,CAC/B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,aAAa,SAAS,UAAU,CAAC,eAAe,CAAC,GAAG,eAAe,CAClE,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WACtB,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,eAAe,EAC1F,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC;IAI3C,OAAO;IASS,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,eAAe;CAKjE;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,eAAe,GAAG,SAAS,IAAI,CAAC,SAAS,eAAe,GAC1F,CAAC,GACD,eAAe,CAAC,OAAO,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAyBpD;;;GAGG;AACH,eAAO,MAAM,GAAG,OAAiB,CAAC;AAClC;;;GAGG;AACH,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;AAExF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAE1E;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAC/C,OAAO,UAAU,CAAC,QAAQ,GAAG,OAAO,UAAU,CAAC,QAAQ,CACvD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAC3B,GAAG,CAAC,KAAK,SAAS,aAAa,GAAG,aAAa,EAC/C,KAAK,CAAC,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;aAiDvD,IAAI,EAAE,KAAK;aACX,YAAY,EAAE,MAAM;IAhDrC;;OAEG;IACH,gBAAuB,KAAK,2FAAoD;IAEhF;;;;OAIG;WACW,MAAM,CAAC,KAAK,SAAS,aAAa,EAAE,KAAK,CAAC,KAAK,SAAS,gBAAgB,EACrF,IAAI,EAAE,KAAK,EACX,YAAY,EAAE,KAAK,GACjB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAIhC;;;;;OAKG;WACW,YAAY,CACzB,KAAK,SAAS,aAAa,EAC3B,KAAK,CAAC,KAAK,SAAS,UAAU,CAAC,gBAAgB,CAAC,EAC/C,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAIlE,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIvB;IAEH;;;;OAIG;IACH,OAAO;IAqCP,SAAgB,MAAM,EAAE,qBAAqB,CAAC;IAE9C;;;OAGG;IACH,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED;;;;;;;;OAQG;IACH,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED;;;;;OAKG;IACH,IAAW,oBAAoB,IAAI,kBAAkB,GAAG,SAAS,CAEhE;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;CAiB9C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAWzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUtE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,CAC9E,SAAQ,gBAAgB;IACxB;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,gBAAgB,CAK7E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,gBAAgB,GAAG,sBAAsB,CAM/F;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAC;CAC/E;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,iBAAiB,CAEnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,cAAc,CAEjF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,mBAAmB,CAE3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,oBAAoB,CAE7F"}
1
+ {"version":3,"file":"typedTreeSchema.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,KAAK,QAAQ,EAEb,KAAK,QAAQ,EAIb,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,KAAK,EAKV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,oBAAoB,IAAI;IACvE,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC3D,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,CAAC,yBAAyB,IAAI,OAAO,CAAC;AAM5D;;;;;GAKG;AACH,8BAAsB,kBAAkB,CACvC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO;aAIhB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;aACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC;aACpC,IAAI,EAAE,aAAa;aACnB,MAAM,EAAE,oBAAoB;IAL7C,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;IACnC,SAAS,aACQ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,oBAAoB;aAE7B,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;CAChE;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAC7B,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,SAAS,UAAU,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAClF,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;IAChD,IAAW,SAAS,IAAI,kBAAkB,CAEzC;IAED,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WACtB,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,kBAAkB,EAC7F,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC;IASzB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,kBAAkB;CAGnE;AAED;;GAEG;AACH,qBAAa,cAAc,CAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,SAAS,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,CACpE,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;IAChD,IAAW,SAAS,IAAI,WAAW,CAElC;IAED,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WACtB,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,WAAW,EACtF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC;IAStB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;CAGhE;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAChC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EACtC,KAAK,CAAC,GAAG,CAAC,aAAa,SAAS,UAAU,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CACtF,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;aA+B/B,sBAAsB,EAAE,yBAAyB,CAChE,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAC3C;aAGe,gBAAgB,EAAE,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC;IAnCzE,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WAEtB,MAAM,CACnB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,aAAa,SAAS,oBAAoB,EAEhD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC;IAiB5C,OAAO;IAeS,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe;CAGhE;AAED;;;GAGG;AACH,qBAAa,mBAAmB,CAC/B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,aAAa,SAAS,UAAU,CAAC,eAAe,CAAC,GAAG,eAAe,CAClE,SAAQ,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;WACtB,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,eAAe,EAC1F,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EACpC,aAAa,EAAE,aAAa,GAC1B,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC;IAI3C,OAAO;IASS,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,eAAe;CAKjE;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,eAAe,GAAG,SAAS,IAAI,CAAC,SAAS,eAAe,GAC1F,CAAC,GACD,eAAe,CAAC,OAAO,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAyBpD;;;GAGG;AACH,eAAO,MAAM,GAAG,OAAiB,CAAC;AAClC;;;GAGG;AACH,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;AAExF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAE1E;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAC/C,OAAO,UAAU,CAAC,QAAQ,GAAG,OAAO,UAAU,CAAC,QAAQ,CACvD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAC3B,GAAG,CAAC,KAAK,SAAS,aAAa,GAAG,aAAa,EAC/C,KAAK,CAAC,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;aAiDvD,IAAI,EAAE,KAAK;aACX,YAAY,EAAE,MAAM;IAhDrC;;OAEG;IACH,gBAAuB,KAAK,2FAAoD;IAEhF;;;;OAIG;WACW,MAAM,CAAC,KAAK,SAAS,aAAa,EAAE,KAAK,CAAC,KAAK,SAAS,gBAAgB,EACrF,IAAI,EAAE,KAAK,EACX,YAAY,EAAE,KAAK,GACjB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAIhC;;;;;OAKG;WACW,YAAY,CACzB,KAAK,SAAS,aAAa,EAC3B,KAAK,CAAC,KAAK,SAAS,UAAU,CAAC,gBAAgB,CAAC,EAC/C,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAIlE,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIvB;IAEH;;;;OAIG;IACH,OAAO;IAqCP,SAAgB,MAAM,EAAE,qBAAqB,CAAC;IAE9C;;;OAGG;IACH,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED;;;;;;;;OAQG;IACH,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED;;;;;OAKG;IACH,IAAW,oBAAoB,IAAI,kBAAkB,GAAG,SAAS,CAEhE;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;CAiB9C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAWzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUtE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,CAC9E,SAAQ,gBAAgB;IACxB;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,gBAAgB,CAK7E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,gBAAgB,GAAG,sBAAsB,CAM/F;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAC;CAC/E;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,iBAAiB,CAEnF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,cAAc,CAEjF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,mBAAmB,CAE3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,oBAAoB,CAE7F"}
@@ -19,11 +19,6 @@ const typeUtils_js_1 = require("./typeUtils.js");
19
19
  * @internal
20
20
  */
21
21
  class TreeNodeSchemaBase {
22
- builder;
23
- name;
24
- info;
25
- stored;
26
- _typeCheck;
27
22
  constructor(builder, name, info, stored) {
28
23
  this.builder = builder;
29
24
  this.name = name;
@@ -39,7 +34,6 @@ class FlexMapNodeSchema extends TreeNodeSchemaBase {
39
34
  get mapFields() {
40
35
  return this.info;
41
36
  }
42
- _typeCheck2;
43
37
  static create(builder, name, specification) {
44
38
  return new FlexMapNodeSchema(builder, name, specification, new index_js_1.MapNodeStoredSchema(specification.stored));
45
39
  }
@@ -55,7 +49,6 @@ class LeafNodeSchema extends TreeNodeSchemaBase {
55
49
  get leafValue() {
56
50
  return this.info;
57
51
  }
58
- _typeCheck2;
59
52
  static create(builder, name, specification) {
60
53
  return new LeafNodeSchema(builder, name, specification, new index_js_1.LeafNodeStoredSchema(specification));
61
54
  }
@@ -68,9 +61,6 @@ exports.LeafNodeSchema = LeafNodeSchema;
68
61
  * @internal
69
62
  */
70
63
  class FlexObjectNodeSchema extends TreeNodeSchemaBase {
71
- objectNodeFieldsObject;
72
- objectNodeFields;
73
- _typeCheck2;
74
64
  static create(builder, name, specification) {
75
65
  const objectNodeFieldsObject = normalizeStructFields(specification);
76
66
  const objectNodeFields = (0, typeUtils_js_1.objectToMapTyped)(objectNodeFieldsObject);
@@ -95,7 +85,6 @@ exports.FlexObjectNodeSchema = FlexObjectNodeSchema;
95
85
  * @internal
96
86
  */
97
87
  class FlexFieldNodeSchema extends TreeNodeSchemaBase {
98
- _typeCheck2;
99
88
  static create(builder, name, specification) {
100
89
  return new FlexFieldNodeSchema(builder, name, specification);
101
90
  }
@@ -157,12 +146,6 @@ exports.allowedTypesIsAny = allowedTypesIsAny;
157
146
  * @internal
158
147
  */
159
148
  class FlexFieldSchema {
160
- kind;
161
- allowedTypes;
162
- /**
163
- * Schema for a field which must always be empty.
164
- */
165
- static empty = FlexFieldSchema.create(index_js_3.FieldKinds.forbidden, []);
166
149
  /**
167
150
  * Constructs a TreeFieldSchema.
168
151
  * @privateRemarks
@@ -180,11 +163,6 @@ class FlexFieldSchema {
180
163
  static createUnsafe(kind, allowedTypes) {
181
164
  return new FlexFieldSchema(kind, allowedTypes);
182
165
  }
183
- _typeCheck;
184
- /**
185
- * This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.
186
- */
187
- lazyTypes;
188
166
  /**
189
167
  * @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.
190
168
  * Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.
@@ -220,7 +198,6 @@ class FlexFieldSchema {
220
198
  },
221
199
  };
222
200
  }
223
- stored;
224
201
  /**
225
202
  * Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.
226
203
  * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.
@@ -273,6 +250,10 @@ class FlexFieldSchema {
273
250
  }
274
251
  }
275
252
  exports.FlexFieldSchema = FlexFieldSchema;
253
+ /**
254
+ * Schema for a field which must always be empty.
255
+ */
256
+ FlexFieldSchema.empty = FlexFieldSchema.create(index_js_3.FieldKinds.forbidden, []);
276
257
  /**
277
258
  * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.
278
259
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"typedTreeSchema.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.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, Lazy } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\tAdapters,\n\tEmptyKey,\n\tFieldKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\tStoredSchemaCollection,\n\tTreeFieldStoredSchema,\n\tTreeNodeSchemaIdentifier,\n\tTreeNodeStoredSchema,\n\tTreeStoredSchema,\n\tTreeTypeSet,\n\tValueSchema,\n} from \"../../core/index.js\";\nimport {\n\tAssume,\n\tMakeNominal,\n\tNamed,\n\tcompareSets,\n\tmapIterable,\n\toneFromSet,\n\trequireAssignableTo,\n} from \"../../util/index.js\";\nimport { FieldKinds } from \"../default-schema/index.js\";\nimport { FlexFieldKind, FullSchemaPolicy } from \"../modular-schema/index.js\";\n\nimport { LazyItem } from \"./flexList.js\";\nimport { ObjectToMap, objectToMapTyped } from \"./typeUtils.js\";\n\n/**\n * @internal\n */\nexport interface FlexObjectNodeFields {\n\treadonly [key: string]: FlexFieldSchema;\n}\n\n/**\n * @internal\n */\nexport type NormalizeObjectNodeFields<T extends FlexObjectNodeFields> = {\n\treadonly [Property in keyof T]: NormalizeField<T[Property]>;\n};\n\n/**\n * A placeholder to use in {@link https://www.typescriptlang.org/docs/handbook/2/generics.html#generic-constraints | extends constraints} when using the real type breaks compilation of some recursive types due to {@link https://github.com/microsoft/TypeScript/issues/55758 | a design limitation of TypeScript}.\n *\n * These extends constraints only serve as documentation:\n * to avoid breaking compilation, this type has to not actually enforce anything, and thus is just `unknown`.\n * Therefore the type safety is the responsibility of the user of the API.\n * @public\n */\nexport type Unenforced<_DesiredExtendsConstraint> = unknown;\n\n{\n\ttype _check = requireAssignableTo<FlexTreeNodeSchema, Unenforced<FlexTreeNodeSchema>>;\n}\n\n/**\n * T must extend TreeSchemaSpecification.\n * This can not be enforced using TypeScript since doing so breaks recursive type support.\n * See note on SchemaBuilder.fieldRecursive.\n * @internal\n */\nexport abstract class TreeNodeSchemaBase<\n\tconst out Name extends string = string,\n\tconst out Specification = unknown,\n> {\n\tprotected _typeCheck?: MakeNominal;\n\tprotected constructor(\n\t\tpublic readonly builder: Named<string>,\n\t\tpublic readonly name: TreeNodeSchemaIdentifier<Name>,\n\t\tpublic readonly info: Specification,\n\t\tpublic readonly stored: TreeNodeStoredSchema,\n\t) {}\n\tpublic abstract getFieldSchema(field: FieldKey): FlexFieldSchema;\n}\n\n/**\n * @internal\n */\nexport class FlexMapNodeSchema<\n\tconst out Name extends string = string,\n\tconst out Specification extends Unenforced<FlexMapFieldSchema> = FlexMapFieldSchema,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tpublic get mapFields(): FlexMapFieldSchema {\n\t\treturn this.info as FlexMapFieldSchema;\n\t}\n\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string, const Specification extends FlexMapFieldSchema>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): FlexMapNodeSchema<Name, Specification> {\n\t\treturn new FlexMapNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tnew MapNodeStoredSchema(specification.stored),\n\t\t);\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexMapFieldSchema {\n\t\treturn this.info as FlexMapFieldSchema;\n\t}\n}\n\n/**\n * @internal\n */\nexport class LeafNodeSchema<\n\tconst out Name extends string = string,\n\tconst out Specification extends Unenforced<ValueSchema> = ValueSchema,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tpublic get leafValue(): ValueSchema {\n\t\treturn this.info as ValueSchema;\n\t}\n\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string, const Specification extends ValueSchema>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): LeafNodeSchema<Name, Specification> {\n\t\treturn new LeafNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tnew LeafNodeStoredSchema(specification),\n\t\t);\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexFieldSchema {\n\t\treturn FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * @internal\n */\nexport class FlexObjectNodeSchema<\n\tconst out Name extends string = string,\n\tconst out Specification extends Unenforced<FlexObjectNodeFields> = FlexObjectNodeFields,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tprotected _typeCheck2?: MakeNominal;\n\n\tpublic static create<\n\t\tconst Name extends string,\n\t\tconst Specification extends FlexObjectNodeFields,\n\t>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): FlexObjectNodeSchema<Name, Specification> {\n\t\tconst objectNodeFieldsObject: NormalizeObjectNodeFields<Specification> =\n\t\t\tnormalizeStructFields<Specification>(specification);\n\t\tconst objectNodeFields: ObjectToMap<\n\t\t\tNormalizeObjectNodeFields<Specification>,\n\t\t\tFieldKey,\n\t\t\tFlexFieldSchema\n\t\t> = objectToMapTyped(objectNodeFieldsObject);\n\t\treturn new FlexObjectNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tobjectNodeFieldsObject,\n\t\t\tobjectNodeFields,\n\t\t);\n\t}\n\n\tprivate constructor(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tinfo: Specification,\n\t\tpublic readonly objectNodeFieldsObject: NormalizeObjectNodeFields<\n\t\t\tAssume<Specification, FlexObjectNodeFields>\n\t\t>,\n\t\t// Allows reading fields through the normal map.\n\t\t// Stricter typing caused Specification to no longer be covariant, so has been removed.\n\t\tpublic readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,\n\t) {\n\t\tconst fields = mapIterable(objectNodeFields, ([k, v]) => [k, v.stored] as const);\n\t\tsuper(builder, name, info, new ObjectNodeStoredSchema(new Map(fields)));\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexFieldSchema {\n\t\treturn this.objectNodeFields.get(field) ?? FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * TODO: remove or replace (or subclass) this with more specific types, like \"List\".\n * @internal\n */\nexport class FlexFieldNodeSchema<\n\tName extends string = string,\n\tSpecification extends Unenforced<FlexFieldSchema> = FlexFieldSchema,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string, const Specification extends FlexFieldSchema>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): FlexFieldNodeSchema<Name, Specification> {\n\t\treturn new FlexFieldNodeSchema(builder, name, specification);\n\t}\n\n\tprivate constructor(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tinfo: Specification,\n\t) {\n\t\tconst objectNodeFields = new Map([[EmptyKey, (info as FlexFieldSchema).stored]]);\n\t\tsuper(builder, name, info, new ObjectNodeStoredSchema(objectNodeFields));\n\t}\n\n\tpublic override getFieldSchema(field?: FieldKey): FlexFieldSchema {\n\t\treturn (field ?? EmptyKey) === EmptyKey\n\t\t\t? (this.info as FlexFieldSchema)\n\t\t\t: FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * @internal\n * @privateRemarks\n * This could be an exhaustive union, or just the common base type.\n * Using just the base type prevents exhaustive matching, which has both pros and cons.\n *\n * For now this is using just the base type since the union is causing issues with schema aware typing, likely due to it being a union and thus distributing over extends clauses.\n */\nexport type FlexTreeNodeSchema = TreeNodeSchemaBase;\n\n/**\n * Convert FieldSchemaSpecification | undefined into TreeFieldSchema.\n * @internal\n */\nexport type NormalizeField<T extends FlexFieldSchema | undefined> = T extends FlexFieldSchema\n\t? T\n\t: FlexFieldSchema<typeof FieldKinds.forbidden, []>;\n\nfunction normalizeStructFields<T extends FlexObjectNodeFields>(\n\tfields: T,\n): NormalizeObjectNodeFields<T> {\n\tconst out: Record<string, FlexFieldSchema> = {};\n\t// eslint-disable-next-line no-restricted-syntax\n\tfor (const key in fields) {\n\t\tif (Object.prototype.hasOwnProperty.call(fields, key)) {\n\t\t\tconst element = fields[key];\n\t\t\tout[key] = normalizeField(element);\n\t\t}\n\t}\n\treturn out as NormalizeObjectNodeFields<T>;\n}\n\nfunction normalizeField<T extends FlexFieldSchema | undefined>(t: T): NormalizeField<T> {\n\tif (t === undefined) {\n\t\treturn FlexFieldSchema.empty as unknown as NormalizeField<T>;\n\t}\n\n\tassert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);\n\treturn t as NormalizeField<T>;\n}\n\n/**\n * Allow any node (as long as it meets the schema for its own type).\n * @internal\n */\nexport const Any = \"Any\" as const;\n/**\n * Allow any node (as long as it meets the schema for its own type).\n * @internal\n */\nexport type Any = typeof Any;\n\n/**\n * Tree type, but can be wrapped in a function to allow referring to types before they are declared.\n * This makes recursive and co-recursive types possible.\n * @internal\n */\nexport type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema);\n\n/**\n * Types for use in fields.\n *\n * \"Any\" is boxed in an array to allow use as variadic parameter.\n * @internal\n */\nexport type FlexAllowedTypes = readonly [Any] | readonly LazyItem<FlexTreeNodeSchema>[];\n\n/**\n * Checks if an {@link FlexAllowedTypes} is {@link (Any:type)}.\n * @internal\n */\nexport function allowedTypesIsAny(t: FlexAllowedTypes): t is readonly [Any] {\n\treturn t.length === 1 && t[0] === Any;\n}\n\n/**\n * Subset of TreeFieldSchema thats legal in maps.\n * This requires empty to be a valid value for the map.\n * @internal\n */\nexport type FlexMapFieldSchema = FlexFieldSchema<\n\ttypeof FieldKinds.optional | typeof FieldKinds.sequence\n>;\n\n/**\n * All policy for a specific field,\n * including functionality that does not have to be kept consistent across versions or deterministic.\n *\n * This can include policy for how to use this schema for \"view\" purposes, and well as how to expose editing APIs.\n *\n * @remarks\n * `Types` here must extend `AllowedTypes`, but this cannot be enforced with an \"extends\" clause: see {@link Unenforced} for details.\n *\n * @typeParam TKind - The kind of field.\n * @typeParam TTypes - The types allowed by the field.\n *\n * @sealed\n * @internal\n */\nexport class FlexFieldSchema<\n\tout TKind extends FlexFieldKind = FlexFieldKind,\n\tconst out TTypes extends Unenforced<FlexAllowedTypes> = FlexAllowedTypes,\n> {\n\t/**\n\t * Schema for a field which must always be empty.\n\t */\n\tpublic static readonly empty = FlexFieldSchema.create(FieldKinds.forbidden, []);\n\n\t/**\n\t * Constructs a TreeFieldSchema.\n\t * @privateRemarks\n\t * Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).\n\t */\n\tpublic static create<TKind extends FlexFieldKind, const Types extends FlexAllowedTypes>(\n\t\tkind: TKind,\n\t\tallowedTypes: Types,\n\t): FlexFieldSchema<TKind, Types> {\n\t\treturn new FlexFieldSchema(kind, allowedTypes);\n\t}\n\n\t/**\n\t * Constructs a TreeFieldSchema, but missing the extends clause which breaks most recursive types.\n\t * @remarks\n\t * `Types` here must extend `AllowedTypes`, but this cannot be enforced with an \"extends\" clause: see {@link Unenforced} for details.\n\t * Prefer {@link FlexFieldSchema.create} when possible.\n\t */\n\tpublic static createUnsafe<\n\t\tTKind extends FlexFieldKind,\n\t\tconst Types extends Unenforced<FlexAllowedTypes>,\n\t>(kind: TKind, allowedTypes: Types): FlexFieldSchema<TKind, Types> {\n\t\treturn new FlexFieldSchema(kind, allowedTypes);\n\t}\n\n\tprotected _typeCheck?: MakeNominal;\n\n\t/**\n\t * This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.\n\t */\n\tprivate readonly lazyTypes: Lazy<{\n\t\tnames: TreeTypeSet;\n\t\tschema: AllowedTypeSet;\n\t\tmonomorphicChildType?: FlexTreeNodeSchema;\n\t}>;\n\n\t/**\n\t * @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.\n\t * Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.\n\t * @param allowedTypes - What types of tree nodes are allowed in this field.\n\t */\n\tprivate constructor(\n\t\tpublic readonly kind: TKind,\n\t\tpublic readonly allowedTypes: TTypes,\n\t) {\n\t\t// Since this class can't have the desired extends clause, do some extra runtime validation:\n\t\tassert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);\n\t\tfor (const allowedType of allowedTypes) {\n\t\t\tif (allowedType === Any) {\n\t\t\t\tassert(allowedTypes.length === 1, 0x7bd /* Invalid Any in allowedTypes */);\n\t\t\t} else if (typeof allowedType !== \"function\") {\n\t\t\t\tassert(\n\t\t\t\t\tallowedType instanceof TreeNodeSchemaBase,\n\t\t\t\t\t0x7be /* Invalid entry in allowedTypes */,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst lazy = new Lazy(() => {\n\t\t\tconst input = this.allowedTypes as unknown as FlexAllowedTypes;\n\t\t\tconst schema = allowedTypesSchemaSet(input);\n\t\t\treturn {\n\t\t\t\tnames: allowedTypesToTypeSet(input),\n\t\t\t\tschema,\n\t\t\t\tmonomorphicChildType: schema !== Any ? oneFromSet(schema) : undefined,\n\t\t\t};\n\t\t});\n\n\t\tthis.lazyTypes = lazy;\n\n\t\tthis.stored = {\n\t\t\tkind: this.kind.identifier,\n\t\t\tget types() {\n\t\t\t\treturn lazy.value.names;\n\t\t\t},\n\t\t};\n\t}\n\n\tpublic readonly stored: TreeFieldStoredSchema;\n\n\t/**\n\t * Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.\n\t * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.\n\t */\n\tpublic get types(): TreeTypeSet {\n\t\treturn this.lazyTypes.value.names;\n\t}\n\n\t/**\n\t * Types which are allowed in this field.\n\t * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.\n\t * @privateRemarks\n\t * TODO:\n\t * 3 ways to access the allowed types are now exposed.\n\t * Reducing this and/or renaming the more friendly options to take the shorter name (`types`)\n\t * would be a good idea.\n\t */\n\tpublic get allowedTypeSet(): AllowedTypeSet {\n\t\treturn this.lazyTypes.value.schema;\n\t}\n\n\t/**\n\t * If exactly one type of child is allowed in this field, it is provided here.\n\t * @remarks\n\t * Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.\n\t * This field allows for simple and optimized handling of this case.\n\t */\n\tpublic get monomorphicChildType(): FlexTreeNodeSchema | undefined {\n\t\treturn this.lazyTypes.value.monomorphicChildType;\n\t}\n\n\t/**\n\t * Compare this schema to another.\n\t *\n\t * @returns true iff the schema are identical.\n\t */\n\tpublic equals(other: FlexFieldSchema): boolean {\n\t\tif (other.kind !== this.kind) {\n\t\t\treturn false;\n\t\t}\n\t\tif (other.types === undefined) {\n\t\t\treturn this.types === undefined;\n\t\t}\n\t\tif (this.types === undefined) {\n\t\t\treturn false;\n\t\t}\n\t\treturn compareSets({\n\t\t\ta: this.types,\n\t\t\tb: other.types,\n\t\t\taExtra: () => false,\n\t\t\tbExtra: () => false,\n\t\t});\n\t}\n}\n\n/**\n * Types for use in fields.\n * This representation is optimized for runtime use in view-schema.\n *\n * @remarks\n * See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.\n * See {@link FlexAllowedTypes} for a compile time optimized version.\n * @internal\n */\nexport type AllowedTypeSet = Any | ReadonlySet<FlexTreeNodeSchema>;\n\n/**\n * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.\n * @internal\n */\nexport function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {\n\tif (allowedTypesIsAny(t)) {\n\t\treturn Any;\n\t}\n\tconst list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {\n\t\tif (typeof value === \"function\") {\n\t\t\treturn value();\n\t\t}\n\t\treturn value;\n\t});\n\treturn new Set(list);\n}\n\n/**\n * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.\n * @internal\n */\nexport function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {\n\tconst list = allowedTypesSchemaSet(t);\n\tif (list === Any) {\n\t\treturn undefined;\n\t}\n\tconst names = Array.from(list, (type) => {\n\t\tassert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);\n\t\treturn type.name;\n\t});\n\treturn new Set(names);\n}\n\n/**\n * Schema data that can be be used to view a document.\n * Strongly typed over its rootFieldSchema.\n *\n * @remarks\n * The type of the rootFieldSchema is used to implement SchemaAware APIs.\n * Cases that do not require being compile time schema aware can omit the explicit type for it.\n *\n * @internal\n */\nexport interface FlexTreeSchema<out T extends FlexFieldSchema = FlexFieldSchema>\n\textends SchemaCollection {\n\t/**\n\t * Schema for the root field which contains the whole tree.\n\t */\n\treadonly rootFieldSchema: T;\n\t/**\n\t * Extra configuration for how this schema is handled at runtime.\n\t */\n\treadonly policy: FullSchemaPolicy;\n\t/**\n\t * Compatibility information how how to interact with content who's stored schema is not directly compatible with this schema.\n\t */\n\treadonly adapters: Adapters;\n}\n\n/**\n * Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.\n */\nexport function intoStoredSchema(treeSchema: FlexTreeSchema): TreeStoredSchema {\n\treturn {\n\t\trootFieldSchema: treeSchema.rootFieldSchema.stored,\n\t\t...intoStoredSchemaCollection(treeSchema),\n\t};\n}\n\n/**\n * Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.\n */\nexport function intoStoredSchemaCollection(treeSchema: SchemaCollection): StoredSchemaCollection {\n\treturn {\n\t\tnodeSchema: new Map(\n\t\t\tmapIterable(treeSchema.nodeSchema.entries(), ([k, v]) => [k, v.stored]),\n\t\t),\n\t};\n}\n\n/**\n * Schema data that can be be used to view a document.\n * @internal\n *\n * @privateRemarks\n * It is convenient that this can be used as a StoredSchemaCollection with no conversion.\n * There there isn't a design requirement for this however, so this extends clause can be removed later if needed.\n */\nexport interface SchemaCollection {\n\t/**\n\t * {@inheritdoc SchemaCollection}\n\t */\n\treadonly nodeSchema: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>;\n}\n\n// These schema type narrowing functions are preferred over `instanceof` due to being easier to migrate to class based schema.\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.\n * @internal\n */\nexport function schemaIsMap(schema: FlexTreeNodeSchema): schema is FlexMapNodeSchema {\n\treturn schema instanceof FlexMapNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.\n * @internal\n */\nexport function schemaIsLeaf(schema: FlexTreeNodeSchema): schema is LeafNodeSchema {\n\treturn schema instanceof LeafNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexFieldNodeSchema}.\n * @internal\n */\nexport function schemaIsFieldNode(schema: FlexTreeNodeSchema): schema is FlexFieldNodeSchema {\n\treturn schema instanceof FlexFieldNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.\n * @internal\n */\nexport function schemaIsObjectNode(schema: FlexTreeNodeSchema): schema is FlexObjectNodeSchema {\n\treturn schema instanceof FlexObjectNodeSchema;\n}\n"]}
1
+ {"version":3,"file":"typedTreeSchema.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/typedTreeSchema.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, Lazy } from \"@fluidframework/core-utils/internal\";\n\nimport {\n\ttype Adapters,\n\tEmptyKey,\n\ttype FieldKey,\n\tLeafNodeStoredSchema,\n\tMapNodeStoredSchema,\n\tObjectNodeStoredSchema,\n\ttype StoredSchemaCollection,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n\ttype TreeTypeSet,\n\ttype ValueSchema,\n} from \"../../core/index.js\";\nimport {\n\ttype Assume,\n\ttype MakeNominal,\n\ttype Named,\n\tcompareSets,\n\tmapIterable,\n\toneFromSet,\n\ttype requireAssignableTo,\n} from \"../../util/index.js\";\nimport { FieldKinds } from \"../default-schema/index.js\";\nimport type { FlexFieldKind, FullSchemaPolicy } from \"../modular-schema/index.js\";\n\nimport type { LazyItem } from \"./flexList.js\";\nimport { type ObjectToMap, objectToMapTyped } from \"./typeUtils.js\";\n\n/**\n * @internal\n */\nexport interface FlexObjectNodeFields {\n\treadonly [key: string]: FlexFieldSchema;\n}\n\n/**\n * @internal\n */\nexport type NormalizeObjectNodeFields<T extends FlexObjectNodeFields> = {\n\treadonly [Property in keyof T]: NormalizeField<T[Property]>;\n};\n\n/**\n * A placeholder to use in {@link https://www.typescriptlang.org/docs/handbook/2/generics.html#generic-constraints | extends constraints} when using the real type breaks compilation of some recursive types due to {@link https://github.com/microsoft/TypeScript/issues/55758 | a design limitation of TypeScript}.\n *\n * These extends constraints only serve as documentation:\n * to avoid breaking compilation, this type has to not actually enforce anything, and thus is just `unknown`.\n * Therefore the type safety is the responsibility of the user of the API.\n * @public\n */\nexport type Unenforced<_DesiredExtendsConstraint> = unknown;\n\n{\n\ttype _check = requireAssignableTo<FlexTreeNodeSchema, Unenforced<FlexTreeNodeSchema>>;\n}\n\n/**\n * T must extend TreeSchemaSpecification.\n * This can not be enforced using TypeScript since doing so breaks recursive type support.\n * See note on SchemaBuilder.fieldRecursive.\n * @internal\n */\nexport abstract class TreeNodeSchemaBase<\n\tconst out Name extends string = string,\n\tconst out Specification = unknown,\n> {\n\tprotected _typeCheck?: MakeNominal;\n\tprotected constructor(\n\t\tpublic readonly builder: Named<string>,\n\t\tpublic readonly name: TreeNodeSchemaIdentifier<Name>,\n\t\tpublic readonly info: Specification,\n\t\tpublic readonly stored: TreeNodeStoredSchema,\n\t) {}\n\tpublic abstract getFieldSchema(field: FieldKey): FlexFieldSchema;\n}\n\n/**\n * @internal\n */\nexport class FlexMapNodeSchema<\n\tconst out Name extends string = string,\n\tconst out Specification extends Unenforced<FlexMapFieldSchema> = FlexMapFieldSchema,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tpublic get mapFields(): FlexMapFieldSchema {\n\t\treturn this.info as FlexMapFieldSchema;\n\t}\n\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string, const Specification extends FlexMapFieldSchema>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): FlexMapNodeSchema<Name, Specification> {\n\t\treturn new FlexMapNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tnew MapNodeStoredSchema(specification.stored),\n\t\t);\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexMapFieldSchema {\n\t\treturn this.info as FlexMapFieldSchema;\n\t}\n}\n\n/**\n * @internal\n */\nexport class LeafNodeSchema<\n\tconst out Name extends string = string,\n\tconst out Specification extends Unenforced<ValueSchema> = ValueSchema,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tpublic get leafValue(): ValueSchema {\n\t\treturn this.info as ValueSchema;\n\t}\n\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string, const Specification extends ValueSchema>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): LeafNodeSchema<Name, Specification> {\n\t\treturn new LeafNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tnew LeafNodeStoredSchema(specification),\n\t\t);\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexFieldSchema {\n\t\treturn FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * @internal\n */\nexport class FlexObjectNodeSchema<\n\tconst out Name extends string = string,\n\tconst out Specification extends Unenforced<FlexObjectNodeFields> = FlexObjectNodeFields,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tprotected _typeCheck2?: MakeNominal;\n\n\tpublic static create<\n\t\tconst Name extends string,\n\t\tconst Specification extends FlexObjectNodeFields,\n\t>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): FlexObjectNodeSchema<Name, Specification> {\n\t\tconst objectNodeFieldsObject: NormalizeObjectNodeFields<Specification> =\n\t\t\tnormalizeStructFields<Specification>(specification);\n\t\tconst objectNodeFields: ObjectToMap<\n\t\t\tNormalizeObjectNodeFields<Specification>,\n\t\t\tFieldKey,\n\t\t\tFlexFieldSchema\n\t\t> = objectToMapTyped(objectNodeFieldsObject);\n\t\treturn new FlexObjectNodeSchema(\n\t\t\tbuilder,\n\t\t\tname,\n\t\t\tspecification,\n\t\t\tobjectNodeFieldsObject,\n\t\t\tobjectNodeFields,\n\t\t);\n\t}\n\n\tprivate constructor(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tinfo: Specification,\n\t\tpublic readonly objectNodeFieldsObject: NormalizeObjectNodeFields<\n\t\t\tAssume<Specification, FlexObjectNodeFields>\n\t\t>,\n\t\t// Allows reading fields through the normal map.\n\t\t// Stricter typing caused Specification to no longer be covariant, so has been removed.\n\t\tpublic readonly objectNodeFields: ReadonlyMap<FieldKey, FlexFieldSchema>,\n\t) {\n\t\tconst fields = mapIterable(objectNodeFields, ([k, v]) => [k, v.stored] as const);\n\t\tsuper(builder, name, info, new ObjectNodeStoredSchema(new Map(fields)));\n\t}\n\n\tpublic override getFieldSchema(field: FieldKey): FlexFieldSchema {\n\t\treturn this.objectNodeFields.get(field) ?? FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * TODO: remove or replace (or subclass) this with more specific types, like \"List\".\n * @internal\n */\nexport class FlexFieldNodeSchema<\n\tName extends string = string,\n\tSpecification extends Unenforced<FlexFieldSchema> = FlexFieldSchema,\n> extends TreeNodeSchemaBase<Name, Specification> {\n\tprotected _typeCheck2?: MakeNominal;\n\tpublic static create<const Name extends string, const Specification extends FlexFieldSchema>(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tspecification: Specification,\n\t): FlexFieldNodeSchema<Name, Specification> {\n\t\treturn new FlexFieldNodeSchema(builder, name, specification);\n\t}\n\n\tprivate constructor(\n\t\tbuilder: Named<string>,\n\t\tname: TreeNodeSchemaIdentifier<Name>,\n\t\tinfo: Specification,\n\t) {\n\t\tconst objectNodeFields = new Map([[EmptyKey, (info as FlexFieldSchema).stored]]);\n\t\tsuper(builder, name, info, new ObjectNodeStoredSchema(objectNodeFields));\n\t}\n\n\tpublic override getFieldSchema(field?: FieldKey): FlexFieldSchema {\n\t\treturn (field ?? EmptyKey) === EmptyKey\n\t\t\t? (this.info as FlexFieldSchema)\n\t\t\t: FlexFieldSchema.empty;\n\t}\n}\n\n/**\n * @internal\n * @privateRemarks\n * This could be an exhaustive union, or just the common base type.\n * Using just the base type prevents exhaustive matching, which has both pros and cons.\n *\n * For now this is using just the base type since the union is causing issues with schema aware typing, likely due to it being a union and thus distributing over extends clauses.\n */\nexport type FlexTreeNodeSchema = TreeNodeSchemaBase;\n\n/**\n * Convert FieldSchemaSpecification | undefined into TreeFieldSchema.\n * @internal\n */\nexport type NormalizeField<T extends FlexFieldSchema | undefined> = T extends FlexFieldSchema\n\t? T\n\t: FlexFieldSchema<typeof FieldKinds.forbidden, []>;\n\nfunction normalizeStructFields<T extends FlexObjectNodeFields>(\n\tfields: T,\n): NormalizeObjectNodeFields<T> {\n\tconst out: Record<string, FlexFieldSchema> = {};\n\t// eslint-disable-next-line no-restricted-syntax\n\tfor (const key in fields) {\n\t\tif (Object.prototype.hasOwnProperty.call(fields, key)) {\n\t\t\tconst element = fields[key];\n\t\t\tout[key] = normalizeField(element);\n\t\t}\n\t}\n\treturn out as NormalizeObjectNodeFields<T>;\n}\n\nfunction normalizeField<T extends FlexFieldSchema | undefined>(t: T): NormalizeField<T> {\n\tif (t === undefined) {\n\t\treturn FlexFieldSchema.empty as unknown as NormalizeField<T>;\n\t}\n\n\tassert(t instanceof FlexFieldSchema, 0x6ae /* invalid TreeFieldSchema */);\n\treturn t as NormalizeField<T>;\n}\n\n/**\n * Allow any node (as long as it meets the schema for its own type).\n * @internal\n */\nexport const Any = \"Any\" as const;\n/**\n * Allow any node (as long as it meets the schema for its own type).\n * @internal\n */\nexport type Any = typeof Any;\n\n/**\n * Tree type, but can be wrapped in a function to allow referring to types before they are declared.\n * This makes recursive and co-recursive types possible.\n * @internal\n */\nexport type LazyTreeNodeSchema = FlexTreeNodeSchema | (() => FlexTreeNodeSchema);\n\n/**\n * Types for use in fields.\n *\n * \"Any\" is boxed in an array to allow use as variadic parameter.\n * @internal\n */\nexport type FlexAllowedTypes = readonly [Any] | readonly LazyItem<FlexTreeNodeSchema>[];\n\n/**\n * Checks if an {@link FlexAllowedTypes} is {@link (Any:type)}.\n * @internal\n */\nexport function allowedTypesIsAny(t: FlexAllowedTypes): t is readonly [Any] {\n\treturn t.length === 1 && t[0] === Any;\n}\n\n/**\n * Subset of TreeFieldSchema thats legal in maps.\n * This requires empty to be a valid value for the map.\n * @internal\n */\nexport type FlexMapFieldSchema = FlexFieldSchema<\n\ttypeof FieldKinds.optional | typeof FieldKinds.sequence\n>;\n\n/**\n * All policy for a specific field,\n * including functionality that does not have to be kept consistent across versions or deterministic.\n *\n * This can include policy for how to use this schema for \"view\" purposes, and well as how to expose editing APIs.\n *\n * @remarks\n * `Types` here must extend `AllowedTypes`, but this cannot be enforced with an \"extends\" clause: see {@link Unenforced} for details.\n *\n * @typeParam TKind - The kind of field.\n * @typeParam TTypes - The types allowed by the field.\n *\n * @sealed\n * @internal\n */\nexport class FlexFieldSchema<\n\tout TKind extends FlexFieldKind = FlexFieldKind,\n\tconst out TTypes extends Unenforced<FlexAllowedTypes> = FlexAllowedTypes,\n> {\n\t/**\n\t * Schema for a field which must always be empty.\n\t */\n\tpublic static readonly empty = FlexFieldSchema.create(FieldKinds.forbidden, []);\n\n\t/**\n\t * Constructs a TreeFieldSchema.\n\t * @privateRemarks\n\t * Alias for the constructor, but with extends clause for the `Types` parameter that {@link FlexFieldSchema} can not have (due to recursive type issues).\n\t */\n\tpublic static create<TKind extends FlexFieldKind, const Types extends FlexAllowedTypes>(\n\t\tkind: TKind,\n\t\tallowedTypes: Types,\n\t): FlexFieldSchema<TKind, Types> {\n\t\treturn new FlexFieldSchema(kind, allowedTypes);\n\t}\n\n\t/**\n\t * Constructs a TreeFieldSchema, but missing the extends clause which breaks most recursive types.\n\t * @remarks\n\t * `Types` here must extend `AllowedTypes`, but this cannot be enforced with an \"extends\" clause: see {@link Unenforced} for details.\n\t * Prefer {@link FlexFieldSchema.create} when possible.\n\t */\n\tpublic static createUnsafe<\n\t\tTKind extends FlexFieldKind,\n\t\tconst Types extends Unenforced<FlexAllowedTypes>,\n\t>(kind: TKind, allowedTypes: Types): FlexFieldSchema<TKind, Types> {\n\t\treturn new FlexFieldSchema(kind, allowedTypes);\n\t}\n\n\tprotected _typeCheck?: MakeNominal;\n\n\t/**\n\t * This is computed lazily since types can be recursive, which makes evaluating this have to happen after all the schema are defined.\n\t */\n\tprivate readonly lazyTypes: Lazy<{\n\t\tnames: TreeTypeSet;\n\t\tschema: AllowedTypeSet;\n\t\tmonomorphicChildType?: FlexTreeNodeSchema;\n\t}>;\n\n\t/**\n\t * @param kind - The {@link https://en.wikipedia.org/wiki/Kind_(type_theory) | kind} of this field.\n\t * Determine the multiplicity, viewing and editing APIs as well as the merge resolution policy.\n\t * @param allowedTypes - What types of tree nodes are allowed in this field.\n\t */\n\tprivate constructor(\n\t\tpublic readonly kind: TKind,\n\t\tpublic readonly allowedTypes: TTypes,\n\t) {\n\t\t// Since this class can't have the desired extends clause, do some extra runtime validation:\n\t\tassert(Array.isArray(allowedTypes), 0x7bc /* Invalid allowedTypes */);\n\t\tfor (const allowedType of allowedTypes) {\n\t\t\tif (allowedType === Any) {\n\t\t\t\tassert(allowedTypes.length === 1, 0x7bd /* Invalid Any in allowedTypes */);\n\t\t\t} else if (typeof allowedType !== \"function\") {\n\t\t\t\tassert(\n\t\t\t\t\tallowedType instanceof TreeNodeSchemaBase,\n\t\t\t\t\t0x7be /* Invalid entry in allowedTypes */,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst lazy = new Lazy(() => {\n\t\t\tconst input = this.allowedTypes as unknown as FlexAllowedTypes;\n\t\t\tconst schema = allowedTypesSchemaSet(input);\n\t\t\treturn {\n\t\t\t\tnames: allowedTypesToTypeSet(input),\n\t\t\t\tschema,\n\t\t\t\tmonomorphicChildType: schema !== Any ? oneFromSet(schema) : undefined,\n\t\t\t};\n\t\t});\n\n\t\tthis.lazyTypes = lazy;\n\n\t\tthis.stored = {\n\t\t\tkind: this.kind.identifier,\n\t\t\tget types() {\n\t\t\t\treturn lazy.value.names;\n\t\t\t},\n\t\t};\n\t}\n\n\tpublic readonly stored: TreeFieldStoredSchema;\n\n\t/**\n\t * Types which are allowed in this field (by {@link TreeNodeSchemaIdentifier}), in a format optimized for stored schema.\n\t * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just in a different format.\n\t */\n\tpublic get types(): TreeTypeSet {\n\t\treturn this.lazyTypes.value.names;\n\t}\n\n\t/**\n\t * Types which are allowed in this field.\n\t * This is the same set of types in {@link FlexFieldSchema.allowedTypes}, just as a set with laziness removed.\n\t * @privateRemarks\n\t * TODO:\n\t * 3 ways to access the allowed types are now exposed.\n\t * Reducing this and/or renaming the more friendly options to take the shorter name (`types`)\n\t * would be a good idea.\n\t */\n\tpublic get allowedTypeSet(): AllowedTypeSet {\n\t\treturn this.lazyTypes.value.schema;\n\t}\n\n\t/**\n\t * If exactly one type of child is allowed in this field, it is provided here.\n\t * @remarks\n\t * Some code paths (like unboxing and compressed tree encoding) special case schema with exactly one allowed type.\n\t * This field allows for simple and optimized handling of this case.\n\t */\n\tpublic get monomorphicChildType(): FlexTreeNodeSchema | undefined {\n\t\treturn this.lazyTypes.value.monomorphicChildType;\n\t}\n\n\t/**\n\t * Compare this schema to another.\n\t *\n\t * @returns true iff the schema are identical.\n\t */\n\tpublic equals(other: FlexFieldSchema): boolean {\n\t\tif (other.kind !== this.kind) {\n\t\t\treturn false;\n\t\t}\n\t\tif (other.types === undefined) {\n\t\t\treturn this.types === undefined;\n\t\t}\n\t\tif (this.types === undefined) {\n\t\t\treturn false;\n\t\t}\n\t\treturn compareSets({\n\t\t\ta: this.types,\n\t\t\tb: other.types,\n\t\t\taExtra: () => false,\n\t\t\tbExtra: () => false,\n\t\t});\n\t}\n}\n\n/**\n * Types for use in fields.\n * This representation is optimized for runtime use in view-schema.\n *\n * @remarks\n * See {@link TreeTypeSet} for a stored-schema compatible version using the {@link TreeNodeSchemaIdentifier}.\n * See {@link FlexAllowedTypes} for a compile time optimized version.\n * @internal\n */\nexport type AllowedTypeSet = Any | ReadonlySet<FlexTreeNodeSchema>;\n\n/**\n * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.\n * @internal\n */\nexport function allowedTypesSchemaSet(t: FlexAllowedTypes): AllowedTypeSet {\n\tif (allowedTypesIsAny(t)) {\n\t\treturn Any;\n\t}\n\tconst list: FlexTreeNodeSchema[] = t.map((value: LazyItem<FlexTreeNodeSchema>) => {\n\t\tif (typeof value === \"function\") {\n\t\t\treturn value();\n\t\t}\n\t\treturn value;\n\t});\n\treturn new Set(list);\n}\n\n/**\n * Convert {@link FlexAllowedTypes} to {@link TreeTypeSet}.\n * @internal\n */\nexport function allowedTypesToTypeSet(t: FlexAllowedTypes): TreeTypeSet {\n\tconst list = allowedTypesSchemaSet(t);\n\tif (list === Any) {\n\t\treturn undefined;\n\t}\n\tconst names = Array.from(list, (type) => {\n\t\tassert(type instanceof TreeNodeSchemaBase, 0x7bf /* invalid allowed type */);\n\t\treturn type.name;\n\t});\n\treturn new Set(names);\n}\n\n/**\n * Schema data that can be be used to view a document.\n * Strongly typed over its rootFieldSchema.\n *\n * @remarks\n * The type of the rootFieldSchema is used to implement SchemaAware APIs.\n * Cases that do not require being compile time schema aware can omit the explicit type for it.\n *\n * @internal\n */\nexport interface FlexTreeSchema<out T extends FlexFieldSchema = FlexFieldSchema>\n\textends SchemaCollection {\n\t/**\n\t * Schema for the root field which contains the whole tree.\n\t */\n\treadonly rootFieldSchema: T;\n\t/**\n\t * Extra configuration for how this schema is handled at runtime.\n\t */\n\treadonly policy: FullSchemaPolicy;\n\t/**\n\t * Compatibility information how how to interact with content who's stored schema is not directly compatible with this schema.\n\t */\n\treadonly adapters: Adapters;\n}\n\n/**\n * Converts a {@link FlexTreeSchema} into a {@link TreeStoredSchema}.\n */\nexport function intoStoredSchema(treeSchema: FlexTreeSchema): TreeStoredSchema {\n\treturn {\n\t\trootFieldSchema: treeSchema.rootFieldSchema.stored,\n\t\t...intoStoredSchemaCollection(treeSchema),\n\t};\n}\n\n/**\n * Converts a {@link SchemaCollection} into a {@link StoredSchemaCollection}.\n */\nexport function intoStoredSchemaCollection(treeSchema: SchemaCollection): StoredSchemaCollection {\n\treturn {\n\t\tnodeSchema: new Map(\n\t\t\tmapIterable(treeSchema.nodeSchema.entries(), ([k, v]) => [k, v.stored]),\n\t\t),\n\t};\n}\n\n/**\n * Schema data that can be be used to view a document.\n * @internal\n *\n * @privateRemarks\n * It is convenient that this can be used as a StoredSchemaCollection with no conversion.\n * There there isn't a design requirement for this however, so this extends clause can be removed later if needed.\n */\nexport interface SchemaCollection {\n\t/**\n\t * {@inheritdoc SchemaCollection}\n\t */\n\treadonly nodeSchema: ReadonlyMap<TreeNodeSchemaIdentifier, FlexTreeNodeSchema>;\n}\n\n// These schema type narrowing functions are preferred over `instanceof` due to being easier to migrate to class based schema.\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexMapNodeSchema}.\n * @internal\n */\nexport function schemaIsMap(schema: FlexTreeNodeSchema): schema is FlexMapNodeSchema {\n\treturn schema instanceof FlexMapNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link LeafNodeSchema}.\n * @internal\n */\nexport function schemaIsLeaf(schema: FlexTreeNodeSchema): schema is LeafNodeSchema {\n\treturn schema instanceof LeafNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexFieldNodeSchema}.\n * @internal\n */\nexport function schemaIsFieldNode(schema: FlexTreeNodeSchema): schema is FlexFieldNodeSchema {\n\treturn schema instanceof FlexFieldNodeSchema;\n}\n\n/**\n * Checks if a {@link FlexTreeNodeSchema} is a {@link FlexObjectNodeSchema}.\n * @internal\n */\nexport function schemaIsObjectNode(schema: FlexTreeNodeSchema): schema is FlexObjectNodeSchema {\n\treturn schema instanceof FlexObjectNodeSchema;\n}\n"]}
@@ -2,10 +2,10 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { AdaptedViewSchema, Adapters, Compatibility, TreeStoredSchema } from "../../core/index.js";
6
- import { Named } from "../../util/index.js";
7
- import { FullSchemaPolicy } from "../modular-schema/index.js";
8
- import { FlexFieldSchema, FlexTreeSchema } from "./typedTreeSchema.js";
5
+ import { AdaptedViewSchema, type Adapters, Compatibility, type TreeStoredSchema } from "../../core/index.js";
6
+ import { type Named } from "../../util/index.js";
7
+ import { type FullSchemaPolicy } from "../modular-schema/index.js";
8
+ import { type FlexFieldSchema, type FlexTreeSchema } from "./typedTreeSchema.js";
9
9
  /**
10
10
  * A collection of View information for schema, including policy.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/view.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,iBAAiB,EACjB,QAAQ,EACR,aAAa,EAIb,gBAAgB,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAQ,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAmC,MAAM,4BAA4B,CAAC;AAE/F,OAAO,EAAE,eAAe,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AAEzF;;GAEG;AACH,qBAAa,UAAU,CAAC,GAAG,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe;aAM3D,MAAM,EAAE,gBAAgB;aACxB,QAAQ,EAAE,QAAQ;aAClB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;IAPhD;;OAEG;IACH,SAAgB,YAAY,EAAE,gBAAgB,CAAC;gBAE9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;IAKhD;;;;;;;;;OASG;IACI,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG;QACpD,IAAI,EAAE,aAAa,CAAC;QACpB,KAAK,EAAE,aAAa,CAAC;QACrB,gCAAgC,EAAE,aAAa,CAAC;KAChD;IA6CD;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB;IAgC7D;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;CAIjB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAChC"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/view.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,iBAAiB,EACjB,KAAK,QAAQ,EACb,aAAa,EAIb,KAAK,gBAAgB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,KAAK,EAAQ,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAmC,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AAEnG;;GAEG;AACH,qBAAa,UAAU,CAAC,GAAG,CAAC,OAAO,SAAS,eAAe,GAAG,eAAe;aAM3D,MAAM,EAAE,gBAAgB;aACxB,QAAQ,EAAE,QAAQ;aAClB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;IAPhD;;OAEG;IACH,SAAgB,YAAY,EAAE,gBAAgB,CAAC;gBAE9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;IAKhD;;;;;;;;;OASG;IACI,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG;QACpD,IAAI,EAAE,aAAa,CAAC;QACpB,KAAK,EAAE,aAAa,CAAC;QACrB,gCAAgC,EAAE,aAAa,CAAC;KAChD;IA6CD;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB;IAgC7D;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,SAAS;CAIjB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAChC"}
@@ -13,13 +13,6 @@ const typedTreeSchema_js_1 = require("./typedTreeSchema.js");
13
13
  * A collection of View information for schema, including policy.
14
14
  */
15
15
  class ViewSchema {
16
- policy;
17
- adapters;
18
- schema;
19
- /**
20
- * Cached conversion of `schema` into a stored schema.
21
- */
22
- storedSchema;
23
16
  constructor(policy, adapters, schema) {
24
17
  this.policy = policy;
25
18
  this.adapters = adapters;
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/view.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 {\n\tAdaptedViewSchema,\n\tAdapters,\n\tCompatibility,\n\tTreeFieldStoredSchema,\n\tTreeNodeSchemaIdentifier,\n\tTreeNodeStoredSchema,\n\tTreeStoredSchema,\n} from \"../../core/index.js\";\nimport { Named, fail } from \"../../util/index.js\";\nimport { FullSchemaPolicy, allowsRepoSuperset, isNeverTree } from \"../modular-schema/index.js\";\n\nimport { FlexFieldSchema, FlexTreeSchema, intoStoredSchema } from \"./typedTreeSchema.js\";\n\n/**\n * A collection of View information for schema, including policy.\n */\nexport class ViewSchema<out TSchema extends FlexFieldSchema = FlexFieldSchema> {\n\t/**\n\t * Cached conversion of `schema` into a stored schema.\n\t */\n\tpublic readonly storedSchema: TreeStoredSchema;\n\tpublic constructor(\n\t\tpublic readonly policy: FullSchemaPolicy,\n\t\tpublic readonly adapters: Adapters,\n\t\tpublic readonly schema: FlexTreeSchema<TSchema>,\n\t) {\n\t\tthis.storedSchema = intoStoredSchema(schema);\n\t}\n\n\t/**\n\t * Determines the compatibility of a stored document\n\t * (based on its stored schema) with a viewer (based on its view schema).\n\t *\n\t * Adapters can be provided to handle differences between the two schema.\n\t * Adapters should only use to types in the `view` SchemaRepository.\n\t *\n\t * TODO: this API violates the parse don't validate design philosophy.\n\t * It should be wrapped with (or replaced by) a parse style API.\n\t */\n\tpublic checkCompatibility(stored: TreeStoredSchema): {\n\t\tread: Compatibility;\n\t\twrite: Compatibility;\n\t\twriteAllowingStoredSchemaUpdates: Compatibility;\n\t} {\n\t\t// TODO: support adapters\n\t\t// const adapted = this.adaptRepo(stored);\n\n\t\tconst read = allowsRepoSuperset(this.policy, stored, this.storedSchema)\n\t\t\t? Compatibility.Compatible\n\t\t\t: // TODO: support adapters\n\t\t\t // : allowsRepoSuperset(this.policy, adapted.adaptedForViewSchema, this.storedSchema)\n\t\t\t // ? Compatibility.RequiresAdapters\n\t\t\t Compatibility.Incompatible;\n\t\t// TODO: Extract subset of adapters that are valid to use on stored\n\t\t// TODO: separate adapters from schema updates\n\t\tconst write = allowsRepoSuperset(this.policy, this.storedSchema, stored)\n\t\t\t? Compatibility.Compatible\n\t\t\t: // TODO: support adapters\n\t\t\t // : allowsRepoSuperset(this.policy, this.storedSchema, adapted.adaptedForViewSchema)\n\t\t\t // TODO: IThis assumes adapters are bidirectional.\n\t\t\t // Compatibility.RequiresAdapters\n\t\t\t Compatibility.Incompatible;\n\n\t\t// TODO: compute this properly (and maybe include the set of schema changes needed for it?).\n\t\t// Maybe updates would happen lazily when needed to store data?\n\t\t// When willingness to updates can avoid need for some adapters,\n\t\t// how should it be decided if the adapter should be used to avoid the update?\n\t\t// TODO: is this case actually bi-variant, making this correct if we did it for each schema independently?\n\t\tlet writeAllowingStoredSchemaUpdates =\n\t\t\t// TODO: This should consider just the updates needed\n\t\t\t// (ex: when view covers a subset of stored after stored has a update to that subset).\n\t\t\tallowsRepoSuperset(this.policy, stored, this.storedSchema)\n\t\t\t\t? Compatibility.Compatible\n\t\t\t\t: // TODO: this assumes adapters can translate in both directions. In general this will not be true.\n\t\t\t\t // TODO: this also assumes that schema updates to the adapted repo would translate to\n\t\t\t\t // updates on the stored schema, which is also likely untrue.\n\t\t\t\t // // TODO: support adapters\n\t\t\t\t // allowsRepoSuperset(this.policy, adapted.adaptedForViewSchema, this.storedSchema)\n\t\t\t\t // ? Compatibility.RequiresAdapters // Requires schema updates. TODO: consider adapters that can update writes.\n\t\t\t\t Compatibility.Incompatible;\n\n\t\t// Since the above does not consider partial updates,\n\t\t// we can improve the tolerance a bit by considering the op-op update:\n\t\twriteAllowingStoredSchemaUpdates = Math.max(writeAllowingStoredSchemaUpdates, write);\n\n\t\treturn { read, write, writeAllowingStoredSchemaUpdates };\n\t}\n\n\t/**\n\t * Compute a schema that `original` could be viewed as using adapters as needed.\n\t *\n\t * TODO: have a way for callers to get invalidated on schema updates.\n\t */\n\tpublic adaptRepo(stored: TreeStoredSchema): AdaptedViewSchema {\n\t\t// Sanity check on adapters:\n\t\t// it's probably a bug it they use the never types,\n\t\t// since there never is a reason to have a never type as an adapter input,\n\t\t// and its impossible for an adapter to be correctly implemented if its output type is never\n\t\t// (unless its input is also never).\n\t\tfor (const adapter of this.adapters?.tree ?? []) {\n\t\t\tif (\n\t\t\t\tisNeverTree(\n\t\t\t\t\tthis.policy,\n\t\t\t\t\tthis.storedSchema,\n\t\t\t\t\tthis.storedSchema.nodeSchema.get(adapter.output),\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tfail(\"tree adapter for stored adapter.output should not be never\");\n\t\t\t}\n\t\t}\n\n\t\tconst adapted = {\n\t\t\trootFieldSchema: this.adaptField(stored.rootFieldSchema),\n\t\t\tnodeSchema: new Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema>(),\n\t\t};\n\n\t\tfor (const [key, schema] of stored.nodeSchema) {\n\t\t\tconst adapatedTree = this.adaptTree(schema);\n\t\t\tadapted.nodeSchema.set(key, adapatedTree);\n\t\t}\n\n\t\t// TODO: subset these adapters to the ones that were needed/used.\n\t\treturn new AdaptedViewSchema(this.adapters, adapted);\n\t}\n\n\t/**\n\t * Adapt original such that it allows member types which can be adapted to its specified types.\n\t */\n\tprivate adaptField(original: TreeFieldStoredSchema): TreeFieldStoredSchema {\n\t\tif (original.types !== undefined) {\n\t\t\tconst types: Set<TreeNodeSchemaIdentifier> = new Set(original.types);\n\t\t\tfor (const treeAdapter of this.adapters?.tree ?? []) {\n\t\t\t\tif (types.has(treeAdapter.input)) {\n\t\t\t\t\ttypes.delete(treeAdapter.input);\n\t\t\t\t\ttypes.add(treeAdapter.output);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { kind: original.kind, types };\n\t\t}\n\t\treturn original;\n\t}\n\n\tprivate adaptTree(original: TreeNodeStoredSchema): TreeNodeStoredSchema {\n\t\t// TODO: support adapters like missing field adapters.\n\t\treturn original;\n\t}\n}\n\n/**\n * Record where a schema came from for error reporting purposes.\n * @internal\n */\nexport interface Sourced {\n\treadonly builder: Named<string>;\n}\n"]}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/feature-libraries/typed-schema/view.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 {\n\tAdaptedViewSchema,\n\ttype Adapters,\n\tCompatibility,\n\ttype TreeFieldStoredSchema,\n\ttype TreeNodeSchemaIdentifier,\n\ttype TreeNodeStoredSchema,\n\ttype TreeStoredSchema,\n} from \"../../core/index.js\";\nimport { type Named, fail } from \"../../util/index.js\";\nimport { type FullSchemaPolicy, allowsRepoSuperset, isNeverTree } from \"../modular-schema/index.js\";\n\nimport { type FlexFieldSchema, type FlexTreeSchema, intoStoredSchema } from \"./typedTreeSchema.js\";\n\n/**\n * A collection of View information for schema, including policy.\n */\nexport class ViewSchema<out TSchema extends FlexFieldSchema = FlexFieldSchema> {\n\t/**\n\t * Cached conversion of `schema` into a stored schema.\n\t */\n\tpublic readonly storedSchema: TreeStoredSchema;\n\tpublic constructor(\n\t\tpublic readonly policy: FullSchemaPolicy,\n\t\tpublic readonly adapters: Adapters,\n\t\tpublic readonly schema: FlexTreeSchema<TSchema>,\n\t) {\n\t\tthis.storedSchema = intoStoredSchema(schema);\n\t}\n\n\t/**\n\t * Determines the compatibility of a stored document\n\t * (based on its stored schema) with a viewer (based on its view schema).\n\t *\n\t * Adapters can be provided to handle differences between the two schema.\n\t * Adapters should only use to types in the `view` SchemaRepository.\n\t *\n\t * TODO: this API violates the parse don't validate design philosophy.\n\t * It should be wrapped with (or replaced by) a parse style API.\n\t */\n\tpublic checkCompatibility(stored: TreeStoredSchema): {\n\t\tread: Compatibility;\n\t\twrite: Compatibility;\n\t\twriteAllowingStoredSchemaUpdates: Compatibility;\n\t} {\n\t\t// TODO: support adapters\n\t\t// const adapted = this.adaptRepo(stored);\n\n\t\tconst read = allowsRepoSuperset(this.policy, stored, this.storedSchema)\n\t\t\t? Compatibility.Compatible\n\t\t\t: // TODO: support adapters\n\t\t\t // : allowsRepoSuperset(this.policy, adapted.adaptedForViewSchema, this.storedSchema)\n\t\t\t // ? Compatibility.RequiresAdapters\n\t\t\t Compatibility.Incompatible;\n\t\t// TODO: Extract subset of adapters that are valid to use on stored\n\t\t// TODO: separate adapters from schema updates\n\t\tconst write = allowsRepoSuperset(this.policy, this.storedSchema, stored)\n\t\t\t? Compatibility.Compatible\n\t\t\t: // TODO: support adapters\n\t\t\t // : allowsRepoSuperset(this.policy, this.storedSchema, adapted.adaptedForViewSchema)\n\t\t\t // TODO: IThis assumes adapters are bidirectional.\n\t\t\t // Compatibility.RequiresAdapters\n\t\t\t Compatibility.Incompatible;\n\n\t\t// TODO: compute this properly (and maybe include the set of schema changes needed for it?).\n\t\t// Maybe updates would happen lazily when needed to store data?\n\t\t// When willingness to updates can avoid need for some adapters,\n\t\t// how should it be decided if the adapter should be used to avoid the update?\n\t\t// TODO: is this case actually bi-variant, making this correct if we did it for each schema independently?\n\t\tlet writeAllowingStoredSchemaUpdates =\n\t\t\t// TODO: This should consider just the updates needed\n\t\t\t// (ex: when view covers a subset of stored after stored has a update to that subset).\n\t\t\tallowsRepoSuperset(this.policy, stored, this.storedSchema)\n\t\t\t\t? Compatibility.Compatible\n\t\t\t\t: // TODO: this assumes adapters can translate in both directions. In general this will not be true.\n\t\t\t\t // TODO: this also assumes that schema updates to the adapted repo would translate to\n\t\t\t\t // updates on the stored schema, which is also likely untrue.\n\t\t\t\t // // TODO: support adapters\n\t\t\t\t // allowsRepoSuperset(this.policy, adapted.adaptedForViewSchema, this.storedSchema)\n\t\t\t\t // ? Compatibility.RequiresAdapters // Requires schema updates. TODO: consider adapters that can update writes.\n\t\t\t\t Compatibility.Incompatible;\n\n\t\t// Since the above does not consider partial updates,\n\t\t// we can improve the tolerance a bit by considering the op-op update:\n\t\twriteAllowingStoredSchemaUpdates = Math.max(writeAllowingStoredSchemaUpdates, write);\n\n\t\treturn { read, write, writeAllowingStoredSchemaUpdates };\n\t}\n\n\t/**\n\t * Compute a schema that `original` could be viewed as using adapters as needed.\n\t *\n\t * TODO: have a way for callers to get invalidated on schema updates.\n\t */\n\tpublic adaptRepo(stored: TreeStoredSchema): AdaptedViewSchema {\n\t\t// Sanity check on adapters:\n\t\t// it's probably a bug it they use the never types,\n\t\t// since there never is a reason to have a never type as an adapter input,\n\t\t// and its impossible for an adapter to be correctly implemented if its output type is never\n\t\t// (unless its input is also never).\n\t\tfor (const adapter of this.adapters?.tree ?? []) {\n\t\t\tif (\n\t\t\t\tisNeverTree(\n\t\t\t\t\tthis.policy,\n\t\t\t\t\tthis.storedSchema,\n\t\t\t\t\tthis.storedSchema.nodeSchema.get(adapter.output),\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tfail(\"tree adapter for stored adapter.output should not be never\");\n\t\t\t}\n\t\t}\n\n\t\tconst adapted = {\n\t\t\trootFieldSchema: this.adaptField(stored.rootFieldSchema),\n\t\t\tnodeSchema: new Map<TreeNodeSchemaIdentifier, TreeNodeStoredSchema>(),\n\t\t};\n\n\t\tfor (const [key, schema] of stored.nodeSchema) {\n\t\t\tconst adapatedTree = this.adaptTree(schema);\n\t\t\tadapted.nodeSchema.set(key, adapatedTree);\n\t\t}\n\n\t\t// TODO: subset these adapters to the ones that were needed/used.\n\t\treturn new AdaptedViewSchema(this.adapters, adapted);\n\t}\n\n\t/**\n\t * Adapt original such that it allows member types which can be adapted to its specified types.\n\t */\n\tprivate adaptField(original: TreeFieldStoredSchema): TreeFieldStoredSchema {\n\t\tif (original.types !== undefined) {\n\t\t\tconst types: Set<TreeNodeSchemaIdentifier> = new Set(original.types);\n\t\t\tfor (const treeAdapter of this.adapters?.tree ?? []) {\n\t\t\t\tif (types.has(treeAdapter.input)) {\n\t\t\t\t\ttypes.delete(treeAdapter.input);\n\t\t\t\t\ttypes.add(treeAdapter.output);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { kind: original.kind, types };\n\t\t}\n\t\treturn original;\n\t}\n\n\tprivate adaptTree(original: TreeNodeStoredSchema): TreeNodeStoredSchema {\n\t\t// TODO: support adapters like missing field adapters.\n\t\treturn original;\n\t}\n}\n\n/**\n * Record where a schema came from for error reporting purposes.\n * @internal\n */\nexport interface Sourced {\n\treadonly builder: Named<string>;\n}\n"]}
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IFluidHandle } from "@fluidframework/core-interfaces";
6
- import { TreeValue, Value, ValueSchema } from "../core/index.js";
5
+ import type { IFluidHandle } from "@fluidframework/core-interfaces";
6
+ import { type TreeValue, type Value, ValueSchema } from "../core/index.js";
7
7
  export declare function allowsValue(schema: ValueSchema | undefined, nodeValue: Value): boolean;
8
8
  export declare function valueSchemaAllows<TSchema extends ValueSchema>(schema: TSchema, nodeValue: Value): nodeValue is TreeValue<TSchema>;
9
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"valueUtilities.d.ts","sourceRoot":"","sources":["../../src/feature-libraries/valueUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEjE,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO,CAKtF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,WAAW,EAC5D,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,KAAK,GACd,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,CAejC;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAClC,YAAY,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GAEP,IAAI,GACJ,SAAS,yBAAyB,EAAE,GACpC;IACA,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,yBAAyB;CACjD,CAAC;AAEL,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,SAAS,GAAG,yBAAyB,GAC1C,OAAO,CAAC,KAAK,IAAI,SAAS,CAE5B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,SAAS,CAStE"}
1
+ {"version":3,"file":"valueUtilities.d.ts","sourceRoot":"","sources":["../../src/feature-libraries/valueUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3E,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,GAAG,OAAO,CAKtF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,WAAW,EAC5D,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,KAAK,GACd,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,CAejC;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAClC,YAAY,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GAEP,IAAI,GACJ,SAAS,yBAAyB,EAAE,GACpC;IACA,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,yBAAyB;CACjD,CAAC;AAEL,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,SAAS,GAAG,yBAAyB,GAC1C,OAAO,CAAC,KAAK,IAAI,SAAS,CAE5B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,SAAS,CAStE"}
@@ -1 +1 @@
1
- {"version":3,"file":"valueUtilities.js","sourceRoot":"","sources":["../../src/feature-libraries/valueUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qEAAuE;AAEvE,kEAA8E;AAE9E,+CAAiE;AAEjE,SAAgB,WAAW,CAAC,MAA+B,EAAE,SAAgB;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,KAAK,SAAS,CAAC;IAChC,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AALD,kCAKC;AAED,SAAgB,iBAAiB,CAChC,MAAe,EACf,SAAgB;IAEhB,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,sBAAW,CAAC,MAAM;YACtB,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC;QACtC,KAAK,sBAAW,CAAC,MAAM;YACtB,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC;QACtC,KAAK,sBAAW,CAAC,OAAO;YACvB,OAAO,OAAO,SAAS,KAAK,SAAS,CAAC;QACvC,KAAK,sBAAW,CAAC,WAAW;YAC3B,OAAO,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC;QACjC,KAAK,sBAAW,CAAC,IAAI;YACpB,OAAO,SAAS,KAAK,IAAI,CAAC;QAC3B;YACC,IAAA,0BAAe,EAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC;AAlBD,8CAkBC;AAoBD,SAAgB,kBAAkB,CACjC,KAA4C;IAE5C,IAAA,iBAAM,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAJD,gDAIC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,SAAkB;IAC7C,QAAQ,OAAO,SAAS,EAAE,CAAC;QAC1B,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACb,OAAO,IAAI,CAAC;QACb;YACC,OAAO,SAAS,KAAK,IAAI,IAAI,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC;IACxD,CAAC;AACF,CAAC;AATD,kCASC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { isFluidHandle } from \"@fluidframework/runtime-utils/internal\";\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { assert, unreachableCase } from \"@fluidframework/core-utils/internal\";\n\nimport { TreeValue, Value, ValueSchema } from \"../core/index.js\";\n\nexport function allowsValue(schema: ValueSchema | undefined, nodeValue: Value): boolean {\n\tif (schema === undefined) {\n\t\treturn nodeValue === undefined;\n\t}\n\treturn valueSchemaAllows(schema, nodeValue);\n}\n\nexport function valueSchemaAllows<TSchema extends ValueSchema>(\n\tschema: TSchema,\n\tnodeValue: Value,\n): nodeValue is TreeValue<TSchema> {\n\tswitch (schema) {\n\t\tcase ValueSchema.String:\n\t\t\treturn typeof nodeValue === \"string\";\n\t\tcase ValueSchema.Number:\n\t\t\treturn typeof nodeValue === \"number\";\n\t\tcase ValueSchema.Boolean:\n\t\t\treturn typeof nodeValue === \"boolean\";\n\t\tcase ValueSchema.FluidHandle:\n\t\t\treturn isFluidHandle(nodeValue);\n\t\tcase ValueSchema.Null:\n\t\t\treturn nodeValue === null;\n\t\tdefault:\n\t\t\tunreachableCase(schema);\n\t}\n}\n\n/**\n * Use for readonly view of Json compatible data that can also contain IFluidHandles.\n *\n * Note that this does not robustly forbid non json comparable data via type checking,\n * but instead mostly restricts access to it.\n */\nexport type FluidSerializableReadOnly =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| readonly FluidSerializableReadOnly[]\n\t| {\n\t\t\treadonly [P in string]?: FluidSerializableReadOnly;\n\t };\n\nexport function assertAllowedValue(\n\tvalue: undefined | FluidSerializableReadOnly,\n): asserts value is TreeValue {\n\tassert(isTreeValue(value), 0x843 /* invalid value */);\n}\n\n/**\n * Checks if a value is a {@link TreeValue}.\n */\nexport function isTreeValue(nodeValue: unknown): nodeValue is TreeValue {\n\tswitch (typeof nodeValue) {\n\t\tcase \"string\":\n\t\tcase \"number\":\n\t\tcase \"boolean\":\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn nodeValue === null || isFluidHandle(nodeValue);\n\t}\n}\n"]}
1
+ {"version":3,"file":"valueUtilities.js","sourceRoot":"","sources":["../../src/feature-libraries/valueUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qEAAuE;AAEvE,kEAA8E;AAE9E,+CAA2E;AAE3E,SAAgB,WAAW,CAAC,MAA+B,EAAE,SAAgB;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,KAAK,SAAS,CAAC;IAChC,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AALD,kCAKC;AAED,SAAgB,iBAAiB,CAChC,MAAe,EACf,SAAgB;IAEhB,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,sBAAW,CAAC,MAAM;YACtB,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC;QACtC,KAAK,sBAAW,CAAC,MAAM;YACtB,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC;QACtC,KAAK,sBAAW,CAAC,OAAO;YACvB,OAAO,OAAO,SAAS,KAAK,SAAS,CAAC;QACvC,KAAK,sBAAW,CAAC,WAAW;YAC3B,OAAO,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC;QACjC,KAAK,sBAAW,CAAC,IAAI;YACpB,OAAO,SAAS,KAAK,IAAI,CAAC;QAC3B;YACC,IAAA,0BAAe,EAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;AACF,CAAC;AAlBD,8CAkBC;AAoBD,SAAgB,kBAAkB,CACjC,KAA4C;IAE5C,IAAA,iBAAM,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAJD,gDAIC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,SAAkB;IAC7C,QAAQ,OAAO,SAAS,EAAE,CAAC;QAC1B,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACb,OAAO,IAAI,CAAC;QACb;YACC,OAAO,SAAS,KAAK,IAAI,IAAI,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC;IACxD,CAAC;AACF,CAAC;AATD,kCASC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { isFluidHandle } from \"@fluidframework/runtime-utils/internal\";\nimport type { IFluidHandle } from \"@fluidframework/core-interfaces\";\nimport { assert, unreachableCase } from \"@fluidframework/core-utils/internal\";\n\nimport { type TreeValue, type Value, ValueSchema } from \"../core/index.js\";\n\nexport function allowsValue(schema: ValueSchema | undefined, nodeValue: Value): boolean {\n\tif (schema === undefined) {\n\t\treturn nodeValue === undefined;\n\t}\n\treturn valueSchemaAllows(schema, nodeValue);\n}\n\nexport function valueSchemaAllows<TSchema extends ValueSchema>(\n\tschema: TSchema,\n\tnodeValue: Value,\n): nodeValue is TreeValue<TSchema> {\n\tswitch (schema) {\n\t\tcase ValueSchema.String:\n\t\t\treturn typeof nodeValue === \"string\";\n\t\tcase ValueSchema.Number:\n\t\t\treturn typeof nodeValue === \"number\";\n\t\tcase ValueSchema.Boolean:\n\t\t\treturn typeof nodeValue === \"boolean\";\n\t\tcase ValueSchema.FluidHandle:\n\t\t\treturn isFluidHandle(nodeValue);\n\t\tcase ValueSchema.Null:\n\t\t\treturn nodeValue === null;\n\t\tdefault:\n\t\t\tunreachableCase(schema);\n\t}\n}\n\n/**\n * Use for readonly view of Json compatible data that can also contain IFluidHandles.\n *\n * Note that this does not robustly forbid non json comparable data via type checking,\n * but instead mostly restricts access to it.\n */\nexport type FluidSerializableReadOnly =\n\t| IFluidHandle\n\t| string\n\t| number\n\t| boolean\n\t// eslint-disable-next-line @rushstack/no-new-null\n\t| null\n\t| readonly FluidSerializableReadOnly[]\n\t| {\n\t\t\treadonly [P in string]?: FluidSerializableReadOnly;\n\t };\n\nexport function assertAllowedValue(\n\tvalue: undefined | FluidSerializableReadOnly,\n): asserts value is TreeValue {\n\tassert(isTreeValue(value), 0x843 /* invalid value */);\n}\n\n/**\n * Checks if a value is a {@link TreeValue}.\n */\nexport function isTreeValue(nodeValue: unknown): nodeValue is TreeValue {\n\tswitch (typeof nodeValue) {\n\t\tcase \"string\":\n\t\tcase \"number\":\n\t\tcase \"boolean\":\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn nodeValue === null || isFluidHandle(nodeValue);\n\t}\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { type Listeners, type IsListener, type Listenable, type Off, createEmitt
8
8
  export { leaf } from "./domains/index.js";
9
9
  export { FlexFieldKind, isNeverField, type FullSchemaPolicy, typeNameSymbol, valueSymbol, type ContextuallyTypedNodeDataObject, type ContextuallyTypedNodeData, type MarkedArrayLike, isContextuallyTypedNodeDataObject, defaultSchemaPolicy, jsonableTreeFromCursor, type StableNodeKey, type LocalNodeKey, compareLocalNodeKeys, type IDefaultEditBuilder, type ValueFieldEditBuilder, type OptionalFieldEditBuilder, type SequenceFieldEditBuilder, prefixPath, prefixFieldPath, cursorForJsonableTreeNode, stackTreeNodeCursor, type CursorAdapter, type CursorWithNode, type FlexTreeNodeEvents, type ArrayLikeMut, FieldKinds, type ContextuallyTypedFieldData, cursorFromContextualData, type FlexAllowedTypes, type FlexTreeNodeSchema, type FlexTreeSchema, type SchemaLibrary, type SchemaLibraryData, FlexFieldSchema, Any, type NewFieldContent, type NodeExistsConstraint, cursorForTypedTreeData, type LazyTreeNodeSchema, type FieldGenerator, type TreeDataContext, type SchemaLintConfiguration, TreeStatus, type FlexTreeFieldNode, type FlexibleFieldContent, type FlexibleNodeContent, type FlexTreeLeafNode, type FlexTreeMapNode, type FlexTreeOptionalField, type FlexTreeRequiredField, type FlexTreeSequenceField, type FlexTreeObjectNode, type FlexTreeObjectNodeTyped, type AssignableFieldKinds, type FlexTreeContext, type FlexTreeTypedField, type FlexTreeTypedNode, type FlexTreeTypedNodeUnion, type FlexTreeEntity, type FlexTreeField, type FlexTreeNode, TreeNodeSchemaBase, FlexFieldNodeSchema, LeafNodeSchema, FlexMapNodeSchema, FlexObjectNodeSchema, type CheckTypesOverlap, SchemaBuilderBase, type FlexImplicitFieldSchema, type FlexImplicitAllowedTypes, type Unenforced, schemaIsFieldNode, schemaIsLeaf, schemaIsMap, schemaIsObjectNode, type AllowedTypeSet, type SchemaBuilderOptions, type SchemaCollection, TreeCompressionStrategy, treeSchemaFromStoredSchema, encodeTreeSchema, stackTreeFieldCursor, type FlexTreeUnknownUnboxed, type InsertableFlexNode, type InsertableFlexField, type AllowedTypesToFlexInsertableTree, type ApplyMultiplicity, type NormalizeObjectNodeFields, type NormalizeFieldSchema, type FlexObjectNodeFields, type FlexMapFieldSchema, type LazyItem, type PropertyNameFromFieldKey, type ReservedObjectNodeFieldPropertyNames, type ReservedObjectNodeFieldPropertyNamePrefixes, reservedObjectNodeFieldPropertyNames, reservedObjectNodeFieldPropertyNamePrefixes, type FlexTreeObjectNodeFieldsInner, } from "./feature-libraries/index.js";
10
10
  export { type ISharedTree, type ITreeCheckout, type ITransaction, runSynchronous, type SharedTreeOptions, type ITreeCheckoutFork, type CheckoutEvents, type SchematizeConfiguration, type TreeContent, type InitializeAndSchematizeConfiguration, type SchemaConfiguration, ForestType, type SharedTreeContentSnapshot, type FlexTreeView, type ITreeViewFork, buildTreeConfiguration, type ISharedTreeEditor, type ISchemaEditor, type RevertibleFactory, type SharedTreeFormatOptions, SharedTreeFormatVersion, Tree, type TreeApi, type TransactionConstraint, type NodeInDocumentConstraint, type RunTransaction, rollback, } from "./shared-tree/index.js";
11
- export { TreeArrayNode, type Unhydrated, IterableTreeArrayContent, TreeNode, type TreeArrayNodeBase, type ITree, type TreeNodeSchema, TreeConfiguration, TreeViewConfiguration, type ITreeViewConfiguration, type ITreeConfigurationOptions, type TreeView, type TreeViewEvents, SchemaFactory, type ScopedSchemaName, type TreeNodeApi, type ImplicitFieldSchema, type TreeFieldFromImplicitField, type TreeChangeEvents, type NodeFromSchema, type TreeMapNode, type InsertableTreeNodeFromImplicitAllowedTypes, type TreeLeafValue, type, type WithType, type AllowedTypes, FieldKind, FieldSchema, type FieldHasDefault, type FieldHasDefaultUnsafe, type ImplicitAllowedTypes, type InsertableObjectFromSchemaRecord, type InsertableTreeFieldFromImplicitField, type InsertableTypedNode, InternalSimpleTreeTypes, type NodeBuilderData, NodeKind, type ObjectFromSchemaRecord, type TreeObjectNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type TreeNodeSchemaCore, type TreeNodeSchemaNonClass, type SchemaCompatibilityStatus, type DefaultProvider, type FieldProps, type InternalTreeNode, type ValidateRecursiveSchema, type ObjectFromSchemaRecordUnsafe, type TreeObjectNodeUnsafe, type TreeFieldFromImplicitFieldUnsafe, type TreeNodeFromImplicitAllowedTypesUnsafe, type FieldSchemaUnsafe, type InsertableTreeNodeFromImplicitAllowedTypesUnsafe, type TreeArrayNodeUnsafe, type TreeMapNodeUnsafe, type InsertableObjectFromSchemaRecordUnsafe, type InsertableTreeFieldFromImplicitFieldUnsafe, type InsertableTypedNodeUnsafe, type NodeBuilderDataUnsafe, type NodeFromSchemaUnsafe, adaptEnum, enumFromStrings, singletonSchema, typedObjectValues, test_RecursiveObject, test_RecursiveObject_base, test_RecursiveObjectPojoMode, } from "./simple-tree/index.js";
11
+ export { TreeArrayNode, type Unhydrated, IterableTreeArrayContent, TreeNode, type TreeArrayNodeBase, type ITree, type TreeNodeSchema, TreeViewConfiguration, type ITreeViewConfiguration, type ITreeConfigurationOptions, type TreeView, type TreeViewEvents, SchemaFactory, type ScopedSchemaName, type TreeNodeApi, type ImplicitFieldSchema, type TreeFieldFromImplicitField, type TreeChangeEvents, type NodeFromSchema, type TreeMapNode, type InsertableTreeNodeFromImplicitAllowedTypes, type TreeLeafValue, type, type WithType, type AllowedTypes, FieldKind, FieldSchema, type FieldHasDefault, type FieldHasDefaultUnsafe, type ImplicitAllowedTypes, type InsertableObjectFromSchemaRecord, type InsertableTreeFieldFromImplicitField, type InsertableTypedNode, InternalSimpleTreeTypes, type NodeBuilderData, NodeKind, type ObjectFromSchemaRecord, type TreeObjectNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type TreeNodeSchemaCore, type TreeNodeSchemaNonClass, type SchemaCompatibilityStatus, type DefaultProvider, type FieldProps, type InternalTreeNode, type ValidateRecursiveSchema, type ObjectFromSchemaRecordUnsafe, type TreeObjectNodeUnsafe, type TreeFieldFromImplicitFieldUnsafe, type TreeNodeFromImplicitAllowedTypesUnsafe, type FieldSchemaUnsafe, type InsertableTreeNodeFromImplicitAllowedTypesUnsafe, type TreeArrayNodeUnsafe, type TreeMapNodeUnsafe, type InsertableObjectFromSchemaRecordUnsafe, type InsertableTreeFieldFromImplicitFieldUnsafe, type InsertableTypedNodeUnsafe, type NodeBuilderDataUnsafe, type NodeFromSchemaUnsafe, adaptEnum, enumFromStrings, singletonSchema, typedObjectValues, test_RecursiveObject, test_RecursiveObject_base, test_RecursiveObjectPojoMode, } from "./simple-tree/index.js";
12
12
  export { SharedTree, configuredSharedTree } from "./treeFactory.js";
13
13
  export type { ICodecOptions, JsonValidator, SchemaValidationFunction } from "./codec/index.js";
14
14
  export { noopValidator } from "./codec/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.FlexObjectNodeSchema = exports.FlexMapNodeSchema = exports.LeafNodeSchema = exports.FlexFieldNodeSchema = exports.TreeNodeSchemaBase = exports.TreeStatus = exports.cursorForTypedTreeData = exports.Any = exports.FlexFieldSchema = exports.cursorFromContextualData = exports.FieldKinds = exports.stackTreeNodeCursor = exports.cursorForJsonableTreeNode = exports.prefixFieldPath = exports.prefixPath = exports.compareLocalNodeKeys = exports.jsonableTreeFromCursor = exports.defaultSchemaPolicy = exports.isContextuallyTypedNodeDataObject = exports.valueSymbol = exports.typeNameSymbol = exports.isNeverField = exports.FlexFieldKind = exports.leaf = exports.createEmitter = exports.disposeSymbol = exports.oneFromSet = exports.TransactionResult = exports.fail = exports.brand = exports.extractFromOpaque = exports.Multiplicity = exports.LeafNodeStoredSchema = exports.MapNodeStoredSchema = exports.ObjectNodeStoredSchema = exports.identifierFieldKindIdentifier = exports.forbiddenFieldKindIdentifier = exports.RevertibleStatus = exports.CommitKind = exports.AllowedUpdateType = exports.anchorSlot = exports.TreeNodeStoredSchema = exports.ValueSchema = exports.ITreeSubscriptionCursorState = exports.TreeNavigationResult = exports.CursorLocationType = exports.rootField = exports.rootFieldKey = exports.AnchorSet = exports.EmptyKey = void 0;
8
- exports.InternalFlexListTypes = exports.FlexTreeEntityKind = exports.flexTreeMarker = exports.BrandedType = exports.typeboxValidator = exports.noopValidator = exports.configuredSharedTree = exports.SharedTree = exports.test_RecursiveObjectPojoMode = exports.test_RecursiveObject_base = exports.test_RecursiveObject = exports.typedObjectValues = exports.singletonSchema = exports.enumFromStrings = exports.adaptEnum = exports.NodeKind = exports.InternalSimpleTreeTypes = exports.FieldSchema = exports.FieldKind = exports.type = exports.SchemaFactory = exports.TreeViewConfiguration = exports.TreeConfiguration = exports.IterableTreeArrayContent = exports.TreeArrayNode = exports.rollback = exports.Tree = exports.SharedTreeFormatVersion = exports.buildTreeConfiguration = exports.ForestType = exports.runSynchronous = exports.reservedObjectNodeFieldPropertyNamePrefixes = exports.reservedObjectNodeFieldPropertyNames = exports.stackTreeFieldCursor = exports.encodeTreeSchema = exports.treeSchemaFromStoredSchema = exports.TreeCompressionStrategy = exports.schemaIsObjectNode = exports.schemaIsMap = exports.schemaIsLeaf = exports.schemaIsFieldNode = exports.SchemaBuilderBase = void 0;
8
+ exports.InternalFlexListTypes = exports.FlexTreeEntityKind = exports.flexTreeMarker = exports.BrandedType = exports.typeboxValidator = exports.noopValidator = exports.configuredSharedTree = exports.SharedTree = exports.test_RecursiveObjectPojoMode = exports.test_RecursiveObject_base = exports.test_RecursiveObject = exports.typedObjectValues = exports.singletonSchema = exports.enumFromStrings = exports.adaptEnum = exports.NodeKind = exports.InternalSimpleTreeTypes = exports.FieldSchema = exports.FieldKind = exports.type = exports.SchemaFactory = exports.TreeViewConfiguration = exports.IterableTreeArrayContent = exports.TreeArrayNode = exports.rollback = exports.Tree = exports.SharedTreeFormatVersion = exports.buildTreeConfiguration = exports.ForestType = exports.runSynchronous = exports.reservedObjectNodeFieldPropertyNamePrefixes = exports.reservedObjectNodeFieldPropertyNames = exports.stackTreeFieldCursor = exports.encodeTreeSchema = exports.treeSchemaFromStoredSchema = exports.TreeCompressionStrategy = exports.schemaIsObjectNode = exports.schemaIsMap = exports.schemaIsLeaf = exports.schemaIsFieldNode = exports.SchemaBuilderBase = void 0;
9
9
  var index_js_1 = require("./core/index.js");
10
10
  Object.defineProperty(exports, "EmptyKey", { enumerable: true, get: function () { return index_js_1.EmptyKey; } });
11
11
  Object.defineProperty(exports, "AnchorSet", { enumerable: true, get: function () { return index_js_1.AnchorSet; } });
@@ -82,7 +82,6 @@ Object.defineProperty(exports, "rollback", { enumerable: true, get: function ()
82
82
  var index_js_7 = require("./simple-tree/index.js");
83
83
  Object.defineProperty(exports, "TreeArrayNode", { enumerable: true, get: function () { return index_js_7.TreeArrayNode; } });
84
84
  Object.defineProperty(exports, "IterableTreeArrayContent", { enumerable: true, get: function () { return index_js_7.IterableTreeArrayContent; } });
85
- Object.defineProperty(exports, "TreeConfiguration", { enumerable: true, get: function () { return index_js_7.TreeConfiguration; } });
86
85
  Object.defineProperty(exports, "TreeViewConfiguration", { enumerable: true, get: function () { return index_js_7.TreeViewConfiguration; } });
87
86
  Object.defineProperty(exports, "SchemaFactory", { enumerable: true, get: function () { return index_js_7.SchemaFactory; } });
88
87
  Object.defineProperty(exports, "type", { enumerable: true, get: function () { return index_js_7.type; } });