@fluidframework/tree 2.20.0 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -0
  3. package/api-report/tree.alpha.api.md +29 -4
  4. package/api-report/tree.beta.api.md +29 -4
  5. package/api-report/tree.legacy.alpha.api.md +35 -4
  6. package/api-report/tree.legacy.public.api.md +29 -4
  7. package/api-report/tree.public.api.md +29 -4
  8. package/dist/alpha.d.ts +1 -0
  9. package/dist/beta.d.ts +1 -0
  10. package/dist/core/forest/editableForest.js +1 -1
  11. package/dist/core/forest/editableForest.js.map +1 -1
  12. package/dist/core/index.d.ts +1 -1
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/core/tree/anchorSet.d.ts +2 -5
  16. package/dist/core/tree/anchorSet.d.ts.map +1 -1
  17. package/dist/core/tree/anchorSet.js +1 -151
  18. package/dist/core/tree/anchorSet.js.map +1 -1
  19. package/dist/core/tree/index.d.ts +1 -2
  20. package/dist/core/tree/index.d.ts.map +1 -1
  21. package/dist/core/tree/index.js.map +1 -1
  22. package/dist/core/tree/pathTree.d.ts +0 -11
  23. package/dist/core/tree/pathTree.d.ts.map +1 -1
  24. package/dist/core/tree/pathTree.js.map +1 -1
  25. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  26. package/dist/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  27. package/dist/feature-libraries/default-schema/defaultFieldKinds.js +1 -1
  28. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  29. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -2
  30. package/dist/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  31. package/dist/feature-libraries/detachedFieldIndexSummarizer.js +0 -9
  32. package/dist/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  33. package/dist/feature-libraries/flex-tree/treeEvents.d.ts +2 -4
  34. package/dist/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  35. package/dist/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  36. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -2
  37. package/dist/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  38. package/dist/feature-libraries/forest-summary/forestSummarizer.js +0 -9
  39. package/dist/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  40. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +6 -2
  41. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  42. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  43. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -4
  44. package/dist/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  45. package/dist/feature-libraries/modular-schema/genericFieldKind.js +4 -19
  46. package/dist/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  47. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  48. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +11 -12
  49. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  50. package/dist/feature-libraries/node-key/mockNodeKeyManager.js +1 -1
  51. package/dist/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  52. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  53. package/dist/feature-libraries/optional-field/optionalField.js +7 -3
  54. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  55. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -5
  56. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  57. package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -11
  58. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  59. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +1 -1
  60. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  61. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -1
  62. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  63. package/dist/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  64. package/dist/feature-libraries/treeCursorUtils.js +1 -1
  65. package/dist/feature-libraries/treeCursorUtils.js.map +1 -1
  66. package/dist/index.d.ts +3 -3
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +4 -2
  69. package/dist/index.js.map +1 -1
  70. package/dist/legacy.d.ts +4 -1
  71. package/dist/packageVersion.d.ts +1 -1
  72. package/dist/packageVersion.js +1 -1
  73. package/dist/packageVersion.js.map +1 -1
  74. package/dist/public.d.ts +1 -0
  75. package/dist/shared-tree/index.d.ts +1 -2
  76. package/dist/shared-tree/index.d.ts.map +1 -1
  77. package/dist/shared-tree/index.js +1 -4
  78. package/dist/shared-tree/index.js.map +1 -1
  79. package/dist/shared-tree/schematizingTreeView.d.ts +4 -5
  80. package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
  81. package/dist/shared-tree/schematizingTreeView.js +9 -10
  82. package/dist/shared-tree/schematizingTreeView.js.map +1 -1
  83. package/dist/shared-tree/sharedTree.d.ts +39 -39
  84. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  85. package/dist/shared-tree/sharedTree.js +81 -55
  86. package/dist/shared-tree/sharedTree.js.map +1 -1
  87. package/dist/shared-tree/treeApi.d.ts +2 -2
  88. package/dist/shared-tree/treeApi.d.ts.map +1 -1
  89. package/dist/shared-tree/treeApi.js +9 -3
  90. package/dist/shared-tree/treeApi.js.map +1 -1
  91. package/dist/shared-tree/treeCheckout.d.ts +3 -3
  92. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  93. package/dist/shared-tree/treeCheckout.js +3 -2
  94. package/dist/shared-tree/treeCheckout.js.map +1 -1
  95. package/dist/shared-tree-core/editManager.js +1 -1
  96. package/dist/shared-tree-core/editManager.js.map +1 -1
  97. package/dist/shared-tree-core/editManagerSummarizer.d.ts +1 -2
  98. package/dist/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  99. package/dist/shared-tree-core/editManagerSummarizer.js +0 -9
  100. package/dist/shared-tree-core/editManagerSummarizer.js.map +1 -1
  101. package/dist/shared-tree-core/sequenceIdUtils.d.ts +12 -1
  102. package/dist/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  103. package/dist/shared-tree-core/sequenceIdUtils.js +25 -7
  104. package/dist/shared-tree-core/sequenceIdUtils.js.map +1 -1
  105. package/dist/shared-tree-core/sharedTreeCore.d.ts +25 -30
  106. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  107. package/dist/shared-tree-core/sharedTreeCore.js +20 -49
  108. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  109. package/dist/simple-tree/api/index.d.ts +3 -2
  110. package/dist/simple-tree/api/index.d.ts.map +1 -1
  111. package/dist/simple-tree/api/index.js +3 -1
  112. package/dist/simple-tree/api/index.js.map +1 -1
  113. package/dist/simple-tree/api/schemaFactory.d.ts +158 -63
  114. package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
  115. package/dist/simple-tree/api/schemaFactory.js +181 -86
  116. package/dist/simple-tree/api/schemaFactory.js.map +1 -1
  117. package/dist/{shared-tree → simple-tree/api}/transactionTypes.d.ts +1 -1
  118. package/dist/simple-tree/api/transactionTypes.d.ts.map +1 -0
  119. package/dist/{shared-tree → simple-tree/api}/transactionTypes.js.map +1 -1
  120. package/dist/simple-tree/api/tree.d.ts +27 -2
  121. package/dist/simple-tree/api/tree.d.ts.map +1 -1
  122. package/dist/simple-tree/api/tree.js.map +1 -1
  123. package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  124. package/dist/simple-tree/core/getOrCreateNode.js +1 -1
  125. package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
  126. package/dist/simple-tree/core/index.d.ts +1 -1
  127. package/dist/simple-tree/core/index.d.ts.map +1 -1
  128. package/dist/simple-tree/core/index.js +2 -2
  129. package/dist/simple-tree/core/index.js.map +1 -1
  130. package/dist/simple-tree/core/treeNodeKernel.d.ts +2 -6
  131. package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  132. package/dist/simple-tree/core/treeNodeKernel.js +10 -13
  133. package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
  134. package/dist/simple-tree/index.d.ts +1 -1
  135. package/dist/simple-tree/index.d.ts.map +1 -1
  136. package/dist/simple-tree/index.js +3 -2
  137. package/dist/simple-tree/index.js.map +1 -1
  138. package/dist/simple-tree/proxies.js +1 -1
  139. package/dist/simple-tree/proxies.js.map +1 -1
  140. package/dist/simple-tree/schemaTypes.d.ts +2 -2
  141. package/dist/simple-tree/schemaTypes.js +1 -1
  142. package/dist/simple-tree/schemaTypes.js.map +1 -1
  143. package/dist/simple-tree/treeNodeValid.js +1 -2
  144. package/dist/simple-tree/treeNodeValid.js.map +1 -1
  145. package/dist/treeFactory.d.ts +16 -5
  146. package/dist/treeFactory.d.ts.map +1 -1
  147. package/dist/treeFactory.js +21 -12
  148. package/dist/treeFactory.js.map +1 -1
  149. package/dist/util/breakable.d.ts +1 -1
  150. package/dist/util/breakable.d.ts.map +1 -1
  151. package/dist/util/breakable.js.map +1 -1
  152. package/dist/util/rangeMap.d.ts +11 -2
  153. package/dist/util/rangeMap.d.ts.map +1 -1
  154. package/dist/util/rangeMap.js +36 -8
  155. package/dist/util/rangeMap.js.map +1 -1
  156. package/lib/alpha.d.ts +1 -0
  157. package/lib/beta.d.ts +1 -0
  158. package/lib/core/forest/editableForest.js +1 -1
  159. package/lib/core/forest/editableForest.js.map +1 -1
  160. package/lib/core/index.d.ts +1 -1
  161. package/lib/core/index.d.ts.map +1 -1
  162. package/lib/core/index.js.map +1 -1
  163. package/lib/core/tree/anchorSet.d.ts +2 -5
  164. package/lib/core/tree/anchorSet.d.ts.map +1 -1
  165. package/lib/core/tree/anchorSet.js +1 -151
  166. package/lib/core/tree/anchorSet.js.map +1 -1
  167. package/lib/core/tree/index.d.ts +1 -2
  168. package/lib/core/tree/index.d.ts.map +1 -1
  169. package/lib/core/tree/index.js.map +1 -1
  170. package/lib/core/tree/pathTree.d.ts +0 -11
  171. package/lib/core/tree/pathTree.d.ts.map +1 -1
  172. package/lib/core/tree/pathTree.js.map +1 -1
  173. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js +1 -1
  174. package/lib/feature-libraries/chunked-forest/codec/compressedEncode.js.map +1 -1
  175. package/lib/feature-libraries/default-schema/defaultFieldKinds.js +1 -1
  176. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  177. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts +1 -2
  178. package/lib/feature-libraries/detachedFieldIndexSummarizer.d.ts.map +1 -1
  179. package/lib/feature-libraries/detachedFieldIndexSummarizer.js +0 -9
  180. package/lib/feature-libraries/detachedFieldIndexSummarizer.js.map +1 -1
  181. package/lib/feature-libraries/flex-tree/treeEvents.d.ts +2 -4
  182. package/lib/feature-libraries/flex-tree/treeEvents.d.ts.map +1 -1
  183. package/lib/feature-libraries/flex-tree/treeEvents.js.map +1 -1
  184. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts +1 -2
  185. package/lib/feature-libraries/forest-summary/forestSummarizer.d.ts.map +1 -1
  186. package/lib/feature-libraries/forest-summary/forestSummarizer.js +0 -9
  187. package/lib/feature-libraries/forest-summary/forestSummarizer.js.map +1 -1
  188. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +6 -2
  189. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  190. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  191. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts +2 -4
  192. package/lib/feature-libraries/modular-schema/genericFieldKind.d.ts.map +1 -1
  193. package/lib/feature-libraries/modular-schema/genericFieldKind.js +4 -19
  194. package/lib/feature-libraries/modular-schema/genericFieldKind.js.map +1 -1
  195. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  196. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +11 -12
  197. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  198. package/lib/feature-libraries/node-key/mockNodeKeyManager.js +1 -1
  199. package/lib/feature-libraries/node-key/mockNodeKeyManager.js.map +1 -1
  200. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  201. package/lib/feature-libraries/optional-field/optionalField.js +7 -3
  202. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  203. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -5
  204. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  205. package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -11
  206. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  207. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +1 -1
  208. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  209. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +13 -1
  210. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  211. package/lib/feature-libraries/treeCursorUtils.d.ts.map +1 -1
  212. package/lib/feature-libraries/treeCursorUtils.js +2 -2
  213. package/lib/feature-libraries/treeCursorUtils.js.map +1 -1
  214. package/lib/index.d.ts +3 -3
  215. package/lib/index.d.ts.map +1 -1
  216. package/lib/index.js +3 -3
  217. package/lib/index.js.map +1 -1
  218. package/lib/legacy.d.ts +4 -1
  219. package/lib/packageVersion.d.ts +1 -1
  220. package/lib/packageVersion.js +1 -1
  221. package/lib/packageVersion.js.map +1 -1
  222. package/lib/public.d.ts +1 -0
  223. package/lib/shared-tree/index.d.ts +1 -2
  224. package/lib/shared-tree/index.d.ts.map +1 -1
  225. package/lib/shared-tree/index.js +1 -2
  226. package/lib/shared-tree/index.js.map +1 -1
  227. package/lib/shared-tree/schematizingTreeView.d.ts +4 -5
  228. package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
  229. package/lib/shared-tree/schematizingTreeView.js +4 -5
  230. package/lib/shared-tree/schematizingTreeView.js.map +1 -1
  231. package/lib/shared-tree/sharedTree.d.ts +39 -39
  232. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  233. package/lib/shared-tree/sharedTree.js +79 -53
  234. package/lib/shared-tree/sharedTree.js.map +1 -1
  235. package/lib/shared-tree/treeApi.d.ts +2 -2
  236. package/lib/shared-tree/treeApi.d.ts.map +1 -1
  237. package/lib/shared-tree/treeApi.js +8 -2
  238. package/lib/shared-tree/treeApi.js.map +1 -1
  239. package/lib/shared-tree/treeCheckout.d.ts +3 -3
  240. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  241. package/lib/shared-tree/treeCheckout.js +4 -3
  242. package/lib/shared-tree/treeCheckout.js.map +1 -1
  243. package/lib/shared-tree-core/editManager.js +2 -2
  244. package/lib/shared-tree-core/editManager.js.map +1 -1
  245. package/lib/shared-tree-core/editManagerSummarizer.d.ts +1 -2
  246. package/lib/shared-tree-core/editManagerSummarizer.d.ts.map +1 -1
  247. package/lib/shared-tree-core/editManagerSummarizer.js +0 -9
  248. package/lib/shared-tree-core/editManagerSummarizer.js.map +1 -1
  249. package/lib/shared-tree-core/sequenceIdUtils.d.ts +12 -1
  250. package/lib/shared-tree-core/sequenceIdUtils.d.ts.map +1 -1
  251. package/lib/shared-tree-core/sequenceIdUtils.js +23 -5
  252. package/lib/shared-tree-core/sequenceIdUtils.js.map +1 -1
  253. package/lib/shared-tree-core/sharedTreeCore.d.ts +25 -30
  254. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  255. package/lib/shared-tree-core/sharedTreeCore.js +19 -48
  256. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  257. package/lib/simple-tree/api/index.d.ts +3 -2
  258. package/lib/simple-tree/api/index.d.ts.map +1 -1
  259. package/lib/simple-tree/api/index.js +1 -0
  260. package/lib/simple-tree/api/index.js.map +1 -1
  261. package/lib/simple-tree/api/schemaFactory.d.ts +158 -63
  262. package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
  263. package/lib/simple-tree/api/schemaFactory.js +180 -85
  264. package/lib/simple-tree/api/schemaFactory.js.map +1 -1
  265. package/lib/{shared-tree → simple-tree/api}/transactionTypes.d.ts +1 -1
  266. package/lib/simple-tree/api/transactionTypes.d.ts.map +1 -0
  267. package/lib/{shared-tree → simple-tree/api}/transactionTypes.js.map +1 -1
  268. package/lib/simple-tree/api/tree.d.ts +27 -2
  269. package/lib/simple-tree/api/tree.d.ts.map +1 -1
  270. package/lib/simple-tree/api/tree.js.map +1 -1
  271. package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
  272. package/lib/simple-tree/core/getOrCreateNode.js +2 -2
  273. package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
  274. package/lib/simple-tree/core/index.d.ts +1 -1
  275. package/lib/simple-tree/core/index.d.ts.map +1 -1
  276. package/lib/simple-tree/core/index.js +1 -1
  277. package/lib/simple-tree/core/index.js.map +1 -1
  278. package/lib/simple-tree/core/treeNodeKernel.d.ts +2 -6
  279. package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
  280. package/lib/simple-tree/core/treeNodeKernel.js +9 -11
  281. package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
  282. package/lib/simple-tree/index.d.ts +1 -1
  283. package/lib/simple-tree/index.d.ts.map +1 -1
  284. package/lib/simple-tree/index.js +1 -1
  285. package/lib/simple-tree/index.js.map +1 -1
  286. package/lib/simple-tree/proxies.js +2 -2
  287. package/lib/simple-tree/proxies.js.map +1 -1
  288. package/lib/simple-tree/schemaTypes.d.ts +2 -2
  289. package/lib/simple-tree/schemaTypes.js +1 -1
  290. package/lib/simple-tree/schemaTypes.js.map +1 -1
  291. package/lib/simple-tree/treeNodeValid.js +1 -2
  292. package/lib/simple-tree/treeNodeValid.js.map +1 -1
  293. package/lib/treeFactory.d.ts +16 -5
  294. package/lib/treeFactory.d.ts.map +1 -1
  295. package/lib/treeFactory.js +20 -11
  296. package/lib/treeFactory.js.map +1 -1
  297. package/lib/util/breakable.d.ts +1 -1
  298. package/lib/util/breakable.d.ts.map +1 -1
  299. package/lib/util/breakable.js.map +1 -1
  300. package/lib/util/rangeMap.d.ts +11 -2
  301. package/lib/util/rangeMap.d.ts.map +1 -1
  302. package/lib/util/rangeMap.js +36 -8
  303. package/lib/util/rangeMap.js.map +1 -1
  304. package/package.json +23 -23
  305. package/src/core/forest/editableForest.ts +1 -1
  306. package/src/core/index.ts +0 -3
  307. package/src/core/tree/anchorSet.ts +4 -197
  308. package/src/core/tree/index.ts +0 -3
  309. package/src/core/tree/pathTree.ts +0 -13
  310. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +1 -1
  311. package/src/feature-libraries/detachedFieldIndexSummarizer.ts +0 -11
  312. package/src/feature-libraries/flex-tree/treeEvents.ts +2 -4
  313. package/src/feature-libraries/forest-summary/forestSummarizer.ts +0 -11
  314. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +6 -2
  315. package/src/feature-libraries/modular-schema/genericFieldKind.ts +3 -35
  316. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +9 -42
  317. package/src/feature-libraries/optional-field/optionalField.ts +10 -3
  318. package/src/feature-libraries/schema-index/schemaSummarizer.ts +1 -16
  319. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +13 -2
  320. package/src/feature-libraries/treeCursorUtils.ts +4 -2
  321. package/src/index.ts +15 -10
  322. package/src/packageVersion.ts +1 -1
  323. package/src/shared-tree/index.ts +3 -14
  324. package/src/shared-tree/schematizingTreeView.ts +18 -16
  325. package/src/shared-tree/sharedTree.ts +203 -103
  326. package/src/shared-tree/treeApi.ts +10 -1
  327. package/src/shared-tree/treeCheckout.ts +11 -8
  328. package/src/shared-tree-core/editManager.ts +2 -2
  329. package/src/shared-tree-core/editManagerSummarizer.ts +0 -11
  330. package/src/shared-tree-core/sequenceIdUtils.ts +26 -5
  331. package/src/shared-tree-core/sharedTreeCore.ts +30 -87
  332. package/src/simple-tree/api/index.ts +15 -0
  333. package/src/simple-tree/api/schemaFactory.ts +205 -89
  334. package/src/{shared-tree → simple-tree/api}/transactionTypes.ts +1 -1
  335. package/src/simple-tree/api/tree.ts +35 -6
  336. package/src/simple-tree/core/getOrCreateNode.ts +6 -2
  337. package/src/simple-tree/core/index.ts +1 -1
  338. package/src/simple-tree/core/treeNodeKernel.ts +16 -14
  339. package/src/simple-tree/index.ts +12 -0
  340. package/src/simple-tree/proxies.ts +2 -2
  341. package/src/simple-tree/schemaTypes.ts +2 -2
  342. package/src/treeFactory.ts +29 -11
  343. package/src/util/breakable.ts +1 -1
  344. package/src/util/rangeMap.ts +36 -7
  345. package/dist/core/tree/visitPath.d.ts +0 -101
  346. package/dist/core/tree/visitPath.d.ts.map +0 -1
  347. package/dist/core/tree/visitPath.js +0 -7
  348. package/dist/core/tree/visitPath.js.map +0 -1
  349. package/dist/shared-tree/transactionTypes.d.ts.map +0 -1
  350. package/lib/core/tree/visitPath.d.ts +0 -101
  351. package/lib/core/tree/visitPath.d.ts.map +0 -1
  352. package/lib/core/tree/visitPath.js +0 -6
  353. package/lib/core/tree/visitPath.js.map +0 -1
  354. package/lib/shared-tree/transactionTypes.d.ts.map +0 -1
  355. package/src/core/tree/visitPath.ts +0 -124
  356. /package/dist/{shared-tree → simple-tree/api}/transactionTypes.js +0 -0
  357. /package/lib/{shared-tree → simple-tree/api}/transactionTypes.js +0 -0
@@ -72,6 +72,105 @@ export declare const defaultSchemaFactoryObjectOptions: Required<Omit<SchemaFact
72
72
  * @system @public
73
73
  */
74
74
  export type ScopedSchemaName<TScope extends string | undefined, TName extends number | string> = TScope extends undefined ? `${TName}` : `${TScope}.${TName}`;
75
+ /**
76
+ * Stateless APIs exposed via {@link SchemaFactory} as both instance properties and as statics.
77
+ * @privateRemarks
78
+ * We have no way to make linkable members which exist both as statics and instance properties since API-Extractor does not support this.
79
+ * As a workaround, we have this type as a third place which can be linked.
80
+ * @system @sealed @public
81
+ */
82
+ export declare const schemaStatics: {
83
+ /**
84
+ * {@link TreeNodeSchema} for holding a JavaScript `string`.
85
+ *
86
+ * @remarks
87
+ * Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
88
+ *
89
+ * These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
90
+ * JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
91
+ * @privateRemarks
92
+ * TODO:
93
+ * We should be much more clear about what happens if you use problematic values.
94
+ * We should validate and/or normalize them when inserting content.
95
+ */
96
+ readonly string: TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never, unknown>;
97
+ /**
98
+ * {@link TreeNodeSchema} for holding a JavaScript `number`.
99
+ *
100
+ * @remarks
101
+ * The number is a {@link https://en.wikipedia.org/wiki/Double-precision_floating-point_format | double-precision 64-bit binary format IEEE 754} value, however there are some exceptions:
102
+ * - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).
103
+ * - `-0` may be converted to `0` in some cases.
104
+ *
105
+ * These limitations match the limitations of JSON.
106
+ * @privateRemarks
107
+ * TODO:
108
+ * We should be much more clear about what happens if you use problematic values.
109
+ * We should validate and/or normalize them when inserting content.
110
+ */
111
+ readonly number: TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never, unknown>;
112
+ /**
113
+ * {@link TreeNodeSchema} for holding a boolean.
114
+ */
115
+ readonly boolean: TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never, unknown>;
116
+ /**
117
+ * {@link TreeNodeSchema} for JavaScript `null`.
118
+ *
119
+ * @remarks
120
+ * There are good {@link https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null | reasons to avoid using null} in JavaScript, however sometimes it is desired.
121
+ * This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.
122
+ * Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
123
+ */
124
+ readonly null: TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never, unknown>;
125
+ /**
126
+ * {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#(IFluidHandle:interface)}.
127
+ */
128
+ readonly handle: TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, _dummyImport<unknown>, _dummyImport<unknown>, true, unknown, never, unknown>;
129
+ /**
130
+ * {@link AllowedTypes} for holding any of the leaf types.
131
+ */
132
+ readonly leaves: readonly [TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, _dummyImport<unknown>, _dummyImport<unknown>, true, unknown, never, unknown>];
133
+ /**
134
+ * Make a field optional instead of the default, which is required.
135
+ *
136
+ * @param t - The types allowed under the field.
137
+ * @param props - Optional properties to associate with the field.
138
+ *
139
+ * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
140
+ * See {@link FieldSchemaMetadata.custom}.
141
+ */
142
+ readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
143
+ /**
144
+ * Make a field explicitly required.
145
+ *
146
+ * @param t - The types allowed under the field.
147
+ * @param props - Optional properties to associate with the field.
148
+ *
149
+ * @remarks
150
+ * Fields are required by default, but this API can be used to make the required nature explicit in the schema,
151
+ * and allows associating custom {@link FieldProps | properties} with the field.
152
+ *
153
+ * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
154
+ * See {@link FieldSchemaMetadata.custom}.
155
+ */
156
+ readonly required: <const T_1 extends ImplicitAllowedTypes, const TCustomMetadata_1 = unknown>(t: T_1, props?: Omit<FieldProps<TCustomMetadata_1>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T_1, TCustomMetadata_1>;
157
+ /**
158
+ * {@link schemaStatics.optional} except tweaked to work better for recursive types.
159
+ * Use with {@link ValidateRecursiveSchema} for improved type safety.
160
+ * @remarks
161
+ * This version of {@link schemaStatics.optional} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
162
+ * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
163
+ */
164
+ readonly optionalRecursive: <const T_2 extends unknown>(t: T_2, props?: Omit<FieldProps, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Optional, T_2>;
165
+ /**
166
+ * {@link schemaStatics.required} except tweaked to work better for recursive types.
167
+ * Use with {@link ValidateRecursiveSchema} for improved type safety.
168
+ * @remarks
169
+ * This version of {@link schemaStatics.required} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
170
+ * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
171
+ */
172
+ readonly requiredRecursive: <const T_3 extends unknown>(t: T_3, props?: Omit<FieldProps, "defaultProvider">) => FieldSchemaUnsafe<FieldKind.Required, T_3>;
173
+ };
75
174
  /**
76
175
  * Creates various types of {@link TreeNodeSchema|schema} for {@link TreeNode}s.
77
176
  *
@@ -160,6 +259,8 @@ export type ScopedSchemaName<TScope extends string | undefined, TName extends nu
160
259
  *
161
260
  * Note: the comparison between the customizable and POJO modes is not done in a table because TSDoc does not currently have support for embedded markdown.
162
261
  *
262
+ * @see {@link SchemaFactoryAlpha}
263
+ *
163
264
  * @sealed @public
164
265
  */
165
266
  export declare class SchemaFactory<out TScope extends string | undefined = string | undefined, TName extends number | string = string> {
@@ -244,51 +345,53 @@ export declare class SchemaFactory<out TScope extends string | undefined = strin
244
345
  scope: TScope);
245
346
  private scoped;
246
347
  /**
247
- * {@link TreeNodeSchema} for holding a JavaScript `string`.
248
- *
249
- * @remarks
250
- * Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
251
- *
252
- * These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
253
- * JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
254
- * @privateRemarks
255
- * TODO:
256
- * We should be much more clear about what happens if you use problematic values.
257
- * We should validate and/or normalize them when inserting content.
348
+ * {@inheritDoc schemaStatics.string}
258
349
  */
259
350
  readonly string: TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never, unknown>;
260
351
  /**
261
- * {@link TreeNodeSchema} for holding a JavaScript `number`.
262
- *
263
- * @remarks
264
- * The number is a [double-precision 64-bit binary format IEEE 754](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) value, however there are some exceptions:
265
- * - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).
266
- * - `-0` may be converted to `0` in some cases.
267
- *
268
- * These limitations match the limitations of JSON.
269
- * @privateRemarks
270
- * TODO:
271
- * We should be much more clear about what happens if you use problematic values.
272
- * We should validate and/or normalize them when inserting content.
352
+ * {@inheritDoc schemaStatics.number}
273
353
  */
274
354
  readonly number: TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never, unknown>;
275
355
  /**
276
- * {@link TreeNodeSchema} for holding a boolean.
356
+ * {@inheritDoc schemaStatics.boolean}
277
357
  */
278
358
  readonly boolean: TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never, unknown>;
279
359
  /**
280
- * {@link TreeNodeSchema} for JavaScript `null`.
281
- *
282
- * @remarks
283
- * There are good [reasons to avoid using null](https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null) in JavaScript, however sometimes it is desired.
284
- * This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.
285
- * Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
360
+ * {@inheritDoc schemaStatics.null}
286
361
  */
287
362
  readonly null: TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never, unknown>;
288
363
  /**
289
- * {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#(IFluidHandle:interface)}.
364
+ * {@inheritDoc schemaStatics.handle}
290
365
  */
291
366
  readonly handle: TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, _dummyImport<unknown>, _dummyImport<unknown>, true, unknown, never, unknown>;
367
+ /**
368
+ * {@inheritDoc schemaStatics.leaves}
369
+ */
370
+ readonly leaves: readonly [TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, _dummyImport<unknown>, _dummyImport<unknown>, true, unknown, never, unknown>];
371
+ /**
372
+ * {@inheritDoc schemaStatics.string}
373
+ */
374
+ static readonly string: TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never, unknown>;
375
+ /**
376
+ * {@inheritDoc schemaStatics.number}
377
+ */
378
+ static readonly number: TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never, unknown>;
379
+ /**
380
+ * {@inheritDoc schemaStatics.boolean}
381
+ */
382
+ static readonly boolean: TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never, unknown>;
383
+ /**
384
+ * {@inheritDoc schemaStatics.null}
385
+ */
386
+ static readonly null: TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never, unknown>;
387
+ /**
388
+ * {@inheritDoc schemaStatics.handle}
389
+ */
390
+ static readonly handle: TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, _dummyImport<unknown>, _dummyImport<unknown>, true, unknown, never, unknown>;
391
+ /**
392
+ * {@inheritDoc schemaStatics.leaves}
393
+ */
394
+ static readonly leaves: readonly [TreeNodeSchemaNonClass<"com.fluidframework.leaf.string", NodeKind.Leaf, string, string, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.number", NodeKind.Leaf, number, number, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.boolean", NodeKind.Leaf, boolean, boolean, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.null", NodeKind.Leaf, null, null, true, unknown, never, unknown>, TreeNodeSchemaNonClass<"com.fluidframework.leaf.handle", NodeKind.Leaf, _dummyImport<unknown>, _dummyImport<unknown>, true, unknown, never, unknown>];
292
395
  /**
293
396
  * Define a {@link TreeNodeSchemaClass} for a {@link TreeObjectNode}.
294
397
  *
@@ -401,45 +504,37 @@ export declare class SchemaFactory<out TScope extends string | undefined = strin
401
504
  */
402
505
  private namedArray;
403
506
  /**
404
- * Make a field optional instead of the default, which is required.
405
- *
406
- * @param t - The types allowed under the field.
407
- * @param props - Optional properties to associate with the field.
408
- *
409
- * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
410
- * See {@link FieldSchemaMetadata.custom}.
507
+ * {@inheritDoc schemaStatics.optional}
411
508
  */
412
- optional<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
509
+ readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
413
510
  /**
414
- * Make a field explicitly required.
415
- *
416
- * @param t - The types allowed under the field.
417
- * @param props - Optional properties to associate with the field.
418
- *
419
- * @remarks
420
- * Fields are required by default, but this API can be used to make the required nature explicit in the schema,
421
- * and allows associating custom {@link FieldProps | properties} with the field.
422
- *
423
- * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
424
- * See {@link FieldSchemaMetadata.custom}.
511
+ * {@inheritDoc schemaStatics.required}
425
512
  */
426
- required<const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider">): FieldSchema<FieldKind.Required, T, TCustomMetadata>;
513
+ readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
427
514
  /**
428
- * {@link SchemaFactory.optional} except tweaked to work better for recursive types.
429
- * Use with {@link ValidateRecursiveSchema} for improved type safety.
430
- * @remarks
431
- * This version of {@link SchemaFactory.optional} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
432
- * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
515
+ * {@inheritDoc schemaStatics.optionalRecursive}
433
516
  */
434
- optionalRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Optional, T>;
517
+ readonly optionalRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<unknown>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Optional, T>;
435
518
  /**
436
- * {@link SchemaFactory.required} except tweaked to work better for recursive types.
437
- * Use with {@link ValidateRecursiveSchema} for improved type safety.
438
- * @remarks
439
- * This version of {@link SchemaFactory.required} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
440
- * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
519
+ * {@inheritDoc schemaStatics.requiredRecursive}
520
+ */
521
+ readonly requiredRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<unknown>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Required, T>;
522
+ /**
523
+ * {@inheritDoc schemaStatics.optional}
524
+ */
525
+ static readonly optional: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Optional, T, TCustomMetadata>;
526
+ /**
527
+ * {@inheritDoc schemaStatics.required}
528
+ */
529
+ static readonly required: <const T extends ImplicitAllowedTypes, const TCustomMetadata = unknown>(t: T, props?: Omit<FieldProps<TCustomMetadata>, "defaultProvider"> | undefined) => FieldSchema<FieldKind.Required, T, TCustomMetadata>;
530
+ /**
531
+ * {@inheritDoc schemaStatics.optionalRecursive}
532
+ */
533
+ static readonly optionalRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<unknown>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Optional, T>;
534
+ /**
535
+ * {@inheritDoc schemaStatics.requiredRecursive}
441
536
  */
442
- requiredRecursive<const T extends Unenforced<ImplicitAllowedTypes>>(t: T, props?: Omit<FieldProps, "defaultProvider">): FieldSchemaUnsafe<FieldKind.Required, T>;
537
+ static readonly requiredRecursive: <const T extends unknown>(t: T, props?: Omit<FieldProps<unknown>, "defaultProvider"> | undefined) => FieldSchemaUnsafe<FieldKind.Required, T>;
443
538
  /**
444
539
  * A special field which holds a unique identifier for an object node.
445
540
  * @remarks
@@ -1 +1 @@
1
- {"version":3,"file":"schemaFactory.d.ts","sourceRoot":"","sources":["../../../src/simple-tree/api/schemaFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaFactory.d.ts","sourceRoot":"","sources":["../../../src/simple-tree/api/schemaFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAIpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EACN,KAAK,uBAAuB,EAG5B,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EACN,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,0CAA0C,EAC/C,KAAK,UAAU,EAIf,KAAK,iBAAiB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EAEtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACN,KAAK,gCAAgC,EACrC,KAAK,cAAc,EAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAa,MAAM,eAAe,CAAC;AACxF,OAAO,KAAK,EACX,iBAAiB,EASjB,sCAAsC,EACtC,gDAAgD,EAChD,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,MAAM,kBAAkB,CAAC;AAK1B;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CAkBhE;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B,CAAC,eAAe,GAAG,OAAO,CACpE,SAAQ,iBAAiB,CAAC,eAAe,CAAC;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CACvD,IAAI,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAG5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAC3B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,KAAK,SAAS,MAAM,GAAG,MAAM,IAC1B,MAAM,SAAS,SAAS,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;AAGjE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;IACzB;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;OAEG;;IAGH;;;;;;;OAOG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;OAQG;kGAEC,CAAC,UACI,KAAK,WAAW,eAAe,CAAC,EAAE,iBAAiB,CAAC,KAC1D,YAAY,UAAU,QAAQ,EAAE,CAAC,EAAE,eAAe,CAAC;IAUtD;;;;;;;;;;;;OAYG;;IAQH;;;;;;OAMG;4EAGM,KAAK,UAAU,EAAE,iBAAiB,CAAC;IAK5C;;;;;;OAMG;4EAGM,KAAK,UAAU,EAAE,iBAAiB,CAAC;CAInC,CAAC;AAMX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,qBAAa,aAAa,CACzB,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EAC1D,KAAK,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAkBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;aACa,KAAK,EAAE,MAAM;IA/C9B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAE1E;;;;;OAKG;;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACa,KAAK,EAAE,MAAM;IAG9B,OAAO,CAAC,MAAM;IAMd;;OAEG;IACH,SAAgB,MAAM,yHAAgB;IAEtC;;OAEG;IACH,SAAgB,MAAM,yHAAgB;IAEtC;;OAEG;IACH,SAAgB,OAAO,4HAAiB;IAExC;;OAEG;IACH,SAAgB,IAAI,mHAAc;IAElC;;OAEG;IACH,SAAgB,MAAM,uJAAgB;IAEtC;;OAEG;IACH,SAAgB,MAAM,+nBAAwB;IAE9C;;OAEG;IACH,gBAAuB,MAAM,yHAAgB;IAE7C;;OAEG;IACH,gBAAuB,MAAM,yHAAgB;IAE7C;;OAEG;IACH,gBAAuB,OAAO,4HAAiB;IAE/C;;OAEG;IACH,gBAAuB,IAAI,mHAAc;IAEzC;;OAEG;IACH,gBAAuB,MAAM,uJAAgB;IAE7C;;OAEG;IACH,gBAAuB,MAAM,+nBAAwB;IAErD;;;;;OAKG;IACI,MAAM,CACZ,KAAK,CAAC,IAAI,SAAS,KAAK,EACxB,KAAK,CAAC,CAAC,SAAS,uBAAuB,CAAC,mBAAmB,CAAC,EAE5D,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,GACP,mBAAmB,CACrB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAC9B,QAAQ,CAAC,MAAM,EACf,cAAc,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EACjD,MAAM,GAAG,gCAAgC,CAAC,CAAC,CAAC,EAC5C,IAAI,EACJ,CAAC,CACD;IASD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,SAAS,cAAc,EAAE,EACpE,YAAY,EAAE,CAAC,GACb,sBAAsB,CACxB,gBAAgB,CAAC,MAAM,EAAE,OAAO,MAAM,GAAG,CAAC,EAC1C,QAAQ,CAAC,GAAG,EACZ,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EACnF,qBAAqB,CAAC,CAAC,CAAC,EACxB,IAAI,EACJ,CAAC,EACD,SAAS,CACT;IAED;;;;;;;;;;OAUG;IACI,GAAG,CAAC,IAAI,SAAS,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAClE,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,GACb,mBAAmB,CACrB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAC9B,QAAQ,CAAC,GAAG,EACZ,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EACvE,qBAAqB,CAAC,CAAC,CAAC,EACxB,IAAI,EACJ,CAAC,EACD,SAAS,CACT;IAkDD;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IA4BhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACI,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,SAAS,cAAc,EAAE,EACtE,YAAY,EAAE,CAAC,GACb,sBAAsB,CACxB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG,CAAC,EAC5C,QAAQ,CAAC,KAAK,EACd,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EACzF,QAAQ,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,EACvD,IAAI,EACJ,CAAC,EACD,SAAS,CACT;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAC1E,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,GACb,mBAAmB,CACrB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAC9B,QAAQ,CAAC,KAAK,EACd,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC3E,QAAQ,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,EACvD,IAAI,EACJ,CAAC,EACD,SAAS,CACT;IA8CD;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAqBlB;;OAEG;IACH,SAAgB,QAAQ,iNAA0B;IAElD;;OAEG;IACH,SAAgB,QAAQ,iNAA0B;IAElD;;OAEG;IACH,SAAgB,iBAAiB,gJAAmC;IAEpE;;OAEG;IACH,SAAgB,iBAAiB,gJAAmC;IAEpE;;OAEG;IACH,gBAAuB,QAAQ,iNAA0B;IAEzD;;OAEG;IACH,gBAAuB,QAAQ,iNAA0B;IAEzD;;OAEG;IACH,gBAAuB,iBAAiB,gJAAmC;IAE3E;;OAEG;IACH,gBAAuB,iBAAiB,gJAAmC;IAE3E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAW,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAS7E;IAED;;;;;;;;;;OAUG;IACI,eAAe,CACrB,KAAK,CAAC,IAAI,SAAS,KAAK,EACxB,KAAK,CAAC,CAAC,SAAS,UAAU,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC,EAExE,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,CAAC,GACF,mBAAmB,CACrB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,EAC9B,QAAQ,CAAC,MAAM,EACf,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EACvD,MAAM,GAAG,sCAAsC,CAAC,CAAC,CAAC,EAClD,KAAK,EACL,CAAC,CACD;IAeD;;;;;;OAMG;IAEI,cAAc,CACpB,KAAK,CAAC,IAAI,SAAS,KAAK,EACxB,KAAK,CAAC,CAAC,SAAS,UAAU,CAAC,oBAAoB,CAAC,EAC/C,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAa1B;;;;;;;;;;WAUG;6BACkB,SAAS,iDAAiD,CAAC,CAAC,CAAC;;IAQrF;;;;;;OAMG;IAEI,YAAY,CAAC,IAAI,SAAS,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,UAAU,CAAC,oBAAoB,CAAC,EACvF,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC;QAgBZ;;;;;;;;;;WAUG;6BACkB,SACpB;YAAC,MAAM;YAAE,iDAAiD,CAAC,CAAC;SAAC,CAC7D;;;;CAcL;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EACpD,cAAc,EAAE,CAAC,EACjB,YAAY,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GACtD,GAAG,CAAC,IAAI,MAAM,GAAG,CAmBnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAelE"}
@@ -41,6 +41,119 @@ export const defaultSchemaFactoryObjectOptions = {
41
41
  allowUnknownOptionalFields: false,
42
42
  };
43
43
  // > = `${TScope extends undefined ? "" : `${TScope}.`}${TName}`;
44
+ /**
45
+ * Stateless APIs exposed via {@link SchemaFactory} as both instance properties and as statics.
46
+ * @privateRemarks
47
+ * We have no way to make linkable members which exist both as statics and instance properties since API-Extractor does not support this.
48
+ * As a workaround, we have this type as a third place which can be linked.
49
+ * @system @sealed @public
50
+ */
51
+ export const schemaStatics = {
52
+ /**
53
+ * {@link TreeNodeSchema} for holding a JavaScript `string`.
54
+ *
55
+ * @remarks
56
+ * Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
57
+ *
58
+ * These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
59
+ * JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
60
+ * @privateRemarks
61
+ * TODO:
62
+ * We should be much more clear about what happens if you use problematic values.
63
+ * We should validate and/or normalize them when inserting content.
64
+ */
65
+ string: stringSchema,
66
+ /**
67
+ * {@link TreeNodeSchema} for holding a JavaScript `number`.
68
+ *
69
+ * @remarks
70
+ * The number is a {@link https://en.wikipedia.org/wiki/Double-precision_floating-point_format | double-precision 64-bit binary format IEEE 754} value, however there are some exceptions:
71
+ * - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).
72
+ * - `-0` may be converted to `0` in some cases.
73
+ *
74
+ * These limitations match the limitations of JSON.
75
+ * @privateRemarks
76
+ * TODO:
77
+ * We should be much more clear about what happens if you use problematic values.
78
+ * We should validate and/or normalize them when inserting content.
79
+ */
80
+ number: numberSchema,
81
+ /**
82
+ * {@link TreeNodeSchema} for holding a boolean.
83
+ */
84
+ boolean: booleanSchema,
85
+ /**
86
+ * {@link TreeNodeSchema} for JavaScript `null`.
87
+ *
88
+ * @remarks
89
+ * There are good {@link https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null | reasons to avoid using null} in JavaScript, however sometimes it is desired.
90
+ * This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.
91
+ * Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
92
+ */
93
+ null: nullSchema,
94
+ /**
95
+ * {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#(IFluidHandle:interface)}.
96
+ */
97
+ handle: handleSchema,
98
+ /**
99
+ * {@link AllowedTypes} for holding any of the leaf types.
100
+ */
101
+ leaves: [stringSchema, numberSchema, booleanSchema, nullSchema, handleSchema],
102
+ /**
103
+ * Make a field optional instead of the default, which is required.
104
+ *
105
+ * @param t - The types allowed under the field.
106
+ * @param props - Optional properties to associate with the field.
107
+ *
108
+ * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
109
+ * See {@link FieldSchemaMetadata.custom}.
110
+ */
111
+ optional: (t, props) => {
112
+ const defaultOptionalProvider = getDefaultProvider(() => {
113
+ return undefined;
114
+ });
115
+ return createFieldSchema(FieldKind.Optional, t, {
116
+ defaultProvider: defaultOptionalProvider,
117
+ ...props,
118
+ });
119
+ },
120
+ /**
121
+ * Make a field explicitly required.
122
+ *
123
+ * @param t - The types allowed under the field.
124
+ * @param props - Optional properties to associate with the field.
125
+ *
126
+ * @remarks
127
+ * Fields are required by default, but this API can be used to make the required nature explicit in the schema,
128
+ * and allows associating custom {@link FieldProps | properties} with the field.
129
+ *
130
+ * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
131
+ * See {@link FieldSchemaMetadata.custom}.
132
+ */
133
+ required: (t, props) => {
134
+ return createFieldSchema(FieldKind.Required, t, props);
135
+ },
136
+ /**
137
+ * {@link schemaStatics.optional} except tweaked to work better for recursive types.
138
+ * Use with {@link ValidateRecursiveSchema} for improved type safety.
139
+ * @remarks
140
+ * This version of {@link schemaStatics.optional} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
141
+ * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
142
+ */
143
+ optionalRecursive: (t, props) => {
144
+ return createFieldSchemaUnsafe(FieldKind.Optional, t, props);
145
+ },
146
+ /**
147
+ * {@link schemaStatics.required} except tweaked to work better for recursive types.
148
+ * Use with {@link ValidateRecursiveSchema} for improved type safety.
149
+ * @remarks
150
+ * This version of {@link schemaStatics.required} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
151
+ * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
152
+ */
153
+ requiredRecursive: (t, props) => {
154
+ return createFieldSchemaUnsafe(FieldKind.Required, t, props);
155
+ },
156
+ };
44
157
  // TODO:
45
158
  // SchemaFactory.array references should link to the correct overloads, however the syntax for this does not seems to work currently for methods unless the they are not qualified with the class.
46
159
  // API-Extractor requires such links to be qualified with the class, so it can't work.
@@ -133,6 +246,8 @@ export const defaultSchemaFactoryObjectOptions = {
133
246
  *
134
247
  * Note: the comparison between the customizable and POJO modes is not done in a table because TSDoc does not currently have support for embedded markdown.
135
248
  *
249
+ * @see {@link SchemaFactoryAlpha}
250
+ *
136
251
  * @sealed @public
137
252
  */
138
253
  export class SchemaFactory {
@@ -185,51 +300,45 @@ export class SchemaFactory {
185
300
  */
186
301
  this.structuralTypes = new Map();
187
302
  /**
188
- * {@link TreeNodeSchema} for holding a JavaScript `string`.
189
- *
190
- * @remarks
191
- * Strings containing unpaired UTF-16 surrogate pair code units may not be handled correctly.
192
- *
193
- * These limitations come from the use of UTF-8 encoding of the strings, which requires them to be valid unicode.
194
- * JavaScript does not make this requirement for its strings so not all possible JavaScript strings are supported.
195
- * @privateRemarks
196
- * TODO:
197
- * We should be much more clear about what happens if you use problematic values.
198
- * We should validate and/or normalize them when inserting content.
303
+ * {@inheritDoc schemaStatics.string}
199
304
  */
200
305
  this.string = stringSchema;
201
306
  /**
202
- * {@link TreeNodeSchema} for holding a JavaScript `number`.
203
- *
204
- * @remarks
205
- * The number is a [double-precision 64-bit binary format IEEE 754](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) value, however there are some exceptions:
206
- * - `NaN`, and the infinities are converted to `null` (and may therefore only be used where `null` is allowed by the schema).
207
- * - `-0` may be converted to `0` in some cases.
208
- *
209
- * These limitations match the limitations of JSON.
210
- * @privateRemarks
211
- * TODO:
212
- * We should be much more clear about what happens if you use problematic values.
213
- * We should validate and/or normalize them when inserting content.
307
+ * {@inheritDoc schemaStatics.number}
214
308
  */
215
309
  this.number = numberSchema;
216
310
  /**
217
- * {@link TreeNodeSchema} for holding a boolean.
311
+ * {@inheritDoc schemaStatics.boolean}
218
312
  */
219
313
  this.boolean = booleanSchema;
220
314
  /**
221
- * {@link TreeNodeSchema} for JavaScript `null`.
222
- *
223
- * @remarks
224
- * There are good [reasons to avoid using null](https://www.npmjs.com/package/%40rushstack/eslint-plugin#rushstackno-new-null) in JavaScript, however sometimes it is desired.
225
- * This {@link TreeNodeSchema} node provides the option to include nulls in trees when desired.
226
- * Unless directly inter-operating with existing data using null, consider other approaches, like wrapping the value in an optional field, or using a more specifically named empty object node.
315
+ * {@inheritDoc schemaStatics.null}
227
316
  */
228
317
  this.null = nullSchema;
229
318
  /**
230
- * {@link TreeNodeSchema} for holding an {@link @fluidframework/core-interfaces#(IFluidHandle:interface)}.
319
+ * {@inheritDoc schemaStatics.handle}
231
320
  */
232
321
  this.handle = handleSchema;
322
+ /**
323
+ * {@inheritDoc schemaStatics.leaves}
324
+ */
325
+ this.leaves = schemaStatics.leaves;
326
+ /**
327
+ * {@inheritDoc schemaStatics.optional}
328
+ */
329
+ this.optional = schemaStatics.optional;
330
+ /**
331
+ * {@inheritDoc schemaStatics.required}
332
+ */
333
+ this.required = schemaStatics.required;
334
+ /**
335
+ * {@inheritDoc schemaStatics.optionalRecursive}
336
+ */
337
+ this.optionalRecursive = schemaStatics.optionalRecursive;
338
+ /**
339
+ * {@inheritDoc schemaStatics.requiredRecursive}
340
+ */
341
+ this.requiredRecursive = schemaStatics.requiredRecursive;
233
342
  }
234
343
  scoped(name) {
235
344
  return (this.scope === undefined ? `${name}` : `${this.scope}.${name}`);
@@ -298,60 +407,6 @@ export class SchemaFactory {
298
407
  namedArray(name, allowedTypes, customizable, implicitlyConstructable) {
299
408
  return arraySchema(this.scoped(name), allowedTypes, implicitlyConstructable, customizable);
300
409
  }
301
- /**
302
- * Make a field optional instead of the default, which is required.
303
- *
304
- * @param t - The types allowed under the field.
305
- * @param props - Optional properties to associate with the field.
306
- *
307
- * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
308
- * See {@link FieldSchemaMetadata.custom}.
309
- */
310
- optional(t, props) {
311
- const defaultOptionalProvider = getDefaultProvider(() => {
312
- return undefined;
313
- });
314
- return createFieldSchema(FieldKind.Optional, t, {
315
- defaultProvider: defaultOptionalProvider,
316
- ...props,
317
- });
318
- }
319
- /**
320
- * Make a field explicitly required.
321
- *
322
- * @param t - The types allowed under the field.
323
- * @param props - Optional properties to associate with the field.
324
- *
325
- * @remarks
326
- * Fields are required by default, but this API can be used to make the required nature explicit in the schema,
327
- * and allows associating custom {@link FieldProps | properties} with the field.
328
- *
329
- * @typeParam TCustomMetadata - Custom metadata properties to associate with the field.
330
- * See {@link FieldSchemaMetadata.custom}.
331
- */
332
- required(t, props) {
333
- return createFieldSchema(FieldKind.Required, t, props);
334
- }
335
- /**
336
- * {@link SchemaFactory.optional} except tweaked to work better for recursive types.
337
- * Use with {@link ValidateRecursiveSchema} for improved type safety.
338
- * @remarks
339
- * This version of {@link SchemaFactory.optional} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
340
- * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
341
- */
342
- optionalRecursive(t, props) {
343
- return createFieldSchemaUnsafe(FieldKind.Optional, t, props);
344
- }
345
- /**
346
- * {@link SchemaFactory.required} except tweaked to work better for recursive types.
347
- * Use with {@link ValidateRecursiveSchema} for improved type safety.
348
- * @remarks
349
- * This version of {@link SchemaFactory.required} has fewer type constraints to work around TypeScript limitations, see {@link Unenforced}.
350
- * See {@link ValidateRecursiveSchema} for additional information about using recursive schema.
351
- */
352
- requiredRecursive(t, props) {
353
- return createFieldSchemaUnsafe(FieldKind.Required, t, props);
354
- }
355
410
  /**
356
411
  * A special field which holds a unique identifier for an object node.
357
412
  * @remarks
@@ -422,6 +477,46 @@ export class SchemaFactory {
422
477
  return MapSchema;
423
478
  }
424
479
  }
480
+ /**
481
+ * {@inheritDoc schemaStatics.string}
482
+ */
483
+ SchemaFactory.string = stringSchema;
484
+ /**
485
+ * {@inheritDoc schemaStatics.number}
486
+ */
487
+ SchemaFactory.number = numberSchema;
488
+ /**
489
+ * {@inheritDoc schemaStatics.boolean}
490
+ */
491
+ SchemaFactory.boolean = booleanSchema;
492
+ /**
493
+ * {@inheritDoc schemaStatics.null}
494
+ */
495
+ SchemaFactory.null = nullSchema;
496
+ /**
497
+ * {@inheritDoc schemaStatics.handle}
498
+ */
499
+ SchemaFactory.handle = handleSchema;
500
+ /**
501
+ * {@inheritDoc schemaStatics.leaves}
502
+ */
503
+ SchemaFactory.leaves = schemaStatics.leaves;
504
+ /**
505
+ * {@inheritDoc schemaStatics.optional}
506
+ */
507
+ SchemaFactory.optional = schemaStatics.optional;
508
+ /**
509
+ * {@inheritDoc schemaStatics.required}
510
+ */
511
+ SchemaFactory.required = schemaStatics.required;
512
+ /**
513
+ * {@inheritDoc schemaStatics.optionalRecursive}
514
+ */
515
+ SchemaFactory.optionalRecursive = schemaStatics.optionalRecursive;
516
+ /**
517
+ * {@inheritDoc schemaStatics.requiredRecursive}
518
+ */
519
+ SchemaFactory.requiredRecursive = schemaStatics.requiredRecursive;
425
520
  export function structuralName(collectionName, allowedTypes) {
426
521
  let inner;
427
522
  if (!isReadonlyArray(allowedTypes)) {